ETH Price: $2,610.46 (-0.61%)

Contract

0x49Cec80C2A383e8C9518b177EE535De6ab57213f
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve161912442022-12-15 16:19:23616 days ago1671121163IN
0x49Cec80C...6ab57213f
0 ETH0.0012826827.14055497
Approve161907922022-12-15 14:48:35616 days ago1671115715IN
0x49Cec80C...6ab57213f
0 ETH0.00538775114
Approve161907692022-12-15 14:43:59616 days ago1671115439IN
0x49Cec80C...6ab57213f
0 ETH0.0008422817.82202523
Approve161907662022-12-15 14:43:23616 days ago1671115403IN
0x49Cec80C...6ab57213f
0 ETH0.0009243519.55858265
Approve161907502022-12-15 14:40:11616 days ago1671115211IN
0x49Cec80C...6ab57213f
0 ETH0.0008777218.57195484
Approve161907482022-12-15 14:39:47616 days ago1671115187IN
0x49Cec80C...6ab57213f
0 ETH0.000919819.46218971
Approve161907362022-12-15 14:37:11616 days ago1671115031IN
0x49Cec80C...6ab57213f
0 ETH0.0008569818.13308528
Approve161907352022-12-15 14:36:59616 days ago1671115019IN
0x49Cec80C...6ab57213f
0 ETH0.000947620.05052665
Approve161907342022-12-15 14:36:47616 days ago1671115007IN
0x49Cec80C...6ab57213f
0 ETH0.0008757218.52948133
Approve161907332022-12-15 14:36:35616 days ago1671114995IN
0x49Cec80C...6ab57213f
0 ETH0.0009544320.19505061
Approve161907322022-12-15 14:36:23616 days ago1671114983IN
0x49Cec80C...6ab57213f
0 ETH0.001172224.96765687
Approve161907292022-12-15 14:35:47616 days ago1671114947IN
0x49Cec80C...6ab57213f
0 ETH0.0008916718.8669653
Approve161907272022-12-15 14:35:23616 days ago1671114923IN
0x49Cec80C...6ab57213f
0 ETH0.0009355619.79576605
Approve161907262022-12-15 14:35:11616 days ago1671114911IN
0x49Cec80C...6ab57213f
0 ETH0.0007804316.51328358
Approve161907262022-12-15 14:35:11616 days ago1671114911IN
0x49Cec80C...6ab57213f
0 ETH0.0008953818.94560097
Approve161907252022-12-15 14:34:59616 days ago1671114899IN
0x49Cec80C...6ab57213f
0 ETH0.0009291419.65980905
Approve161907242022-12-15 14:34:47616 days ago1671114887IN
0x49Cec80C...6ab57213f
0 ETH0.000929819.67391893
Approve161907242022-12-15 14:34:47616 days ago1671114887IN
0x49Cec80C...6ab57213f
0 ETH0.000929819.67391893
Approve161907242022-12-15 14:34:47616 days ago1671114887IN
0x49Cec80C...6ab57213f
0 ETH0.000929819.67391893
Approve161907242022-12-15 14:34:47616 days ago1671114887IN
0x49Cec80C...6ab57213f
0 ETH0.000929819.67391893
Set Trading161907232022-12-15 14:34:35616 days ago1671114875IN
0x49Cec80C...6ab57213f
0 ETH0.0004786916.51828358
Approve161907102022-12-15 14:31:59616 days ago1671114719IN
0x49Cec80C...6ab57213f
0 ETH0.0008593118.1823815
0x60806040161906862022-12-15 14:27:11616 days ago1671114431IN
 Create: Ryujinerc
0 ETH0.1025059416.44503763

Latest 18 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
161907922022-12-15 14:48:35616 days ago1671115715
0x49Cec80C...6ab57213f
0.00134363 ETH
161907922022-12-15 14:48:35616 days ago1671115715
0x49Cec80C...6ab57213f
0.00134363 ETH
161907922022-12-15 14:48:35616 days ago1671115715
0x49Cec80C...6ab57213f
0.00073172 ETH
161907922022-12-15 14:48:35616 days ago1671115715
0x49Cec80C...6ab57213f
0.00073172 ETH
161907922022-12-15 14:48:35616 days ago1671115715
0x49Cec80C...6ab57213f
0.00114756 ETH
161907922022-12-15 14:48:35616 days ago1671115715
0x49Cec80C...6ab57213f
0.00114756 ETH
161907892022-12-15 14:47:59616 days ago1671115679
0x49Cec80C...6ab57213f
0.00101222 ETH
161907892022-12-15 14:47:59616 days ago1671115679
0x49Cec80C...6ab57213f
0.00101222 ETH
161907762022-12-15 14:45:23616 days ago1671115523
0x49Cec80C...6ab57213f
0.00062453 ETH
161907762022-12-15 14:45:23616 days ago1671115523
0x49Cec80C...6ab57213f
0.00062453 ETH
161907742022-12-15 14:44:59616 days ago1671115499
0x49Cec80C...6ab57213f
0.00600939 ETH
161907742022-12-15 14:44:59616 days ago1671115499
0x49Cec80C...6ab57213f
0.00600939 ETH
161907382022-12-15 14:37:35616 days ago1671115055
0x49Cec80C...6ab57213f
0.01273583 ETH
161907382022-12-15 14:37:35616 days ago1671115055
0x49Cec80C...6ab57213f
0.01273583 ETH
161907232022-12-15 14:34:35616 days ago1671114875
0x49Cec80C...6ab57213f
0.00370327 ETH
161907232022-12-15 14:34:35616 days ago1671114875
0x49Cec80C...6ab57213f
0.00370327 ETH
161907232022-12-15 14:34:35616 days ago1671114875
0x49Cec80C...6ab57213f
0.01316524 ETH
161907232022-12-15 14:34:35616 days ago1671114875
0x49Cec80C...6ab57213f
0.01316524 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ryujinerc

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-15
*/

// SPDX-License-Identifier: Unlicensed
   

/*
                 /           /                                               
                /' .,,,,  ./                                                 
               /';'     ,/                                                   
              / /   ,,//,`'`                                                 
             ( ,, '_,  ,,,' ``                                               
             |    /@  ,,, ;" `                                               
            /    .   ,''/' `,``                                              
           /   .     ./, `,, ` ;                                             
        ,./  .   ,-,',` ,,/''\,'                                             
       |   /; ./,,'`,,'' |   |                                               
       |     /   ','    /    |                                               
        \___/'   '     |     |                                               
          `,,'  |      /     `\                                              
               /      |        ~\                                            
               '       (                                                      
             :                                                               
            ; .         \--                                                  
          :   \         ;

        Individually, we are one drop. 
          Together, we are an ocean.
                      
                      by Ryunosuke Satoro


        https://medium.com/@ryujinerc

*/

pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Ryujinerc is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Ryujinerc";
    string private constant _symbol = "RJI";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 2;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 2;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xb5009854784A1dFf25cb321A53829341c6303931);
    address payable private _marketingAddress = payable(0xb5009854784A1dFf25cb321A53829341c6303931);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 300000000 * 10**9;
    uint256 public _maxWalletSize = 300000000 * 10**9;
    uint256 public _swapTokensAtAmount = 10000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

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

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }


    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c91906200075b565b6000196200002b9190620007c2565b600655600060085560026009556000600a556002600b55600a54600c55600b54600d55600c54600e55600d54600f5573b5009854784a1dff25cb321a53829341c6303931601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b5009854784a1dff25cb321a53829341c6303931601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550670429d069189e0000601655670429d069189e00006017556509184e72a0006018553480156200018357600080fd5b50600062000196620006f160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024b620006f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032a57600080fd5b505afa1580156200033f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000365919062000867565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c857600080fd5b505afa158015620003dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000403919062000867565b6040518363ffffffff1660e01b815260040162000422929190620008aa565b602060405180830381600087803b1580156200043d57600080fd5b505af115801562000452573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000478919062000867565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004ce620006f960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067b620006f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006e29190620008e8565b60405180910390a35062000905565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007688262000722565b9150620007758362000722565b9250826200078857620007876200072c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007cf8262000722565b9150620007dc8362000722565b925082821015620007f257620007f162000793565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082f8262000802565b9050919050565b620008418162000822565b81146200084d57600080fd5b50565b600081519050620008618162000836565b92915050565b60006020828403121562000880576200087f620007fd565b5b6000620008908482850162000850565b91505092915050565b620008a48162000822565b82525050565b6000604082019050620008c1600083018562000899565b620008d0602083018462000899565b9392505050565b620008e28162000722565b82525050565b6000602082019050620008ff6000830184620008d7565b92915050565b613ba880620009156000396000f3fe6080604052600436106101ba5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f4578063dd62ed3e1461061d578063ea1644d51461065a578063f2fde38b14610683576101c1565b8063a9059cbb14610563578063bfd79284146105a0578063c3c8cd80146105dd576101c1565b80638f70ccf7116100c65780638f70ccf7146104bb5780638f9a55c0146104e457806395d89b411461050f57806398a5c3151461053a576101c1565b80637d1db4a5146104285780637f2feddc146104535780638da5cb5b14610490576101c1565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461039457806370a08231146103ab578063715018a6146103e857806374010ece146103ff576101c1565b8063313ce5671461031557806349bd5a5e146103405780636b9990531461036b576101c1565b80631694505e116101955780631694505e1461025757806318160ddd1461028257806323b872dd146102ad5780632fd689e3146102ea576101c1565b8062b8cf2a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e89190612b9b565b6106ac565b005b3480156101fb57600080fd5b506102046107d6565b6040516102119190612c6c565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190612cc4565b610813565b60405161024e9190612d1f565b60405180910390f35b34801561026357600080fd5b5061026c610831565b6040516102799190612d99565b60405180910390f35b34801561028e57600080fd5b50610297610857565b6040516102a49190612dc3565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612dde565b610867565b6040516102e19190612d1f565b60405180910390f35b3480156102f657600080fd5b506102ff610940565b60405161030c9190612dc3565b60405180910390f35b34801561032157600080fd5b5061032a610946565b6040516103379190612e4d565b60405180910390f35b34801561034c57600080fd5b5061035561094f565b6040516103629190612e77565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612e92565b610975565b005b3480156103a057600080fd5b506103a9610a65565b005b3480156103b757600080fd5b506103d260048036038101906103cd9190612e92565b610b36565b6040516103df9190612dc3565b60405180910390f35b3480156103f457600080fd5b506103fd610b87565b005b34801561040b57600080fd5b5061042660048036038101906104219190612ebf565b610cda565b005b34801561043457600080fd5b5061043d610d79565b60405161044a9190612dc3565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612e92565b610d7f565b6040516104879190612dc3565b60405180910390f35b34801561049c57600080fd5b506104a5610d97565b6040516104b29190612e77565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612f18565b610dc0565b005b3480156104f057600080fd5b506104f9610e72565b6040516105069190612dc3565b60405180910390f35b34801561051b57600080fd5b50610524610e78565b6040516105319190612c6c565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612ebf565b610eb5565b005b34801561056f57600080fd5b5061058a60048036038101906105859190612cc4565b610f54565b6040516105979190612d1f565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612e92565b610f72565b6040516105d49190612d1f565b60405180910390f35b3480156105e957600080fd5b506105f2610f92565b005b34801561060057600080fd5b5061061b60048036038101906106169190612fa0565b61106b565b005b34801561062957600080fd5b50610644600480360381019061063f9190613000565b6111a5565b6040516106519190612dc3565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612ebf565b61122c565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190612e92565b6112cb565b005b6106b461148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389061308c565b60405180910390fd5b60005b81518110156107d257600160106000848481518110610766576107656130ac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ca9061310a565b915050610744565b5050565b60606040518060400160405280600981526020017f5279756a696e6572630000000000000000000000000000000000000000000000815250905090565b600061082761082061148d565b8484611495565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610874848484611660565b6109358461088061148d565b61093085604051806060016040528060288152602001613b4b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e661148d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee59092919063ffffffff16565b611495565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097d61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a019061308c565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa661148d565b73ffffffffffffffffffffffffffffffffffffffff161480610b1c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b0461148d565b73ffffffffffffffffffffffffffffffffffffffff16145b610b2557600080fd5b6000479050610b3381611f49565b50565b6000610b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb5565b9050919050565b610b8f61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c139061308c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ce261148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d669061308c565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dc861148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061308c565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f524a490000000000000000000000000000000000000000000000000000000000815250905090565b610ebd61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f419061308c565b60405180910390fd5b8060188190555050565b6000610f68610f6161148d565b8484611660565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fd361148d565b73ffffffffffffffffffffffffffffffffffffffff1614806110495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103161148d565b73ffffffffffffffffffffffffffffffffffffffff16145b61105257600080fd5b600061105d30610b36565b905061106881612023565b50565b61107361148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f79061308c565b60405180910390fd5b60005b8383905081101561119f578160056000868685818110611126576111256130ac565b5b905060200201602081019061113b9190612e92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111979061310a565b915050611103565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61123461148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b89061308c565b60405180910390fd5b8060178190555050565b6112d361148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611360576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113579061308c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c7906131c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fc90613257565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c906132e9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116539190612dc3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c79061337b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611740576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117379061340d565b60405180910390fd5b60008111611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a9061349f565b60405180910390fd5b61178b610d97565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f957506117c9610d97565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611be457601560149054906101000a900460ff166118885761181a610d97565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e90613531565b60405180910390fd5b5b6016548111156118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c49061359d565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119715750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a79061362f565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a5d5760175481611a1284610b36565b611a1c919061364f565b10611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5390613717565b60405180910390fd5b5b6000611a6830610b36565b9050600060185482101590506016548210611a835760165491505b808015611a9b575060158054906101000a900460ff16155b8015611af55750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b0d5750601560169054906101000a900460ff165b8015611b635750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bb95750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611be157611bc782612023565b60004790506000811115611bdf57611bde47611f49565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c8b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d3e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d3d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d4c5760009050611ed3565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611df75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0f57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eba5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ed257600a54600c81905550600b54600d819055505b5b611edf848484846122a9565b50505050565b6000838311158290611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f249190612c6c565b60405180910390fd5b5060008385611f3c9190613737565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fb1573d6000803e3d6000fd5b5050565b6000600654821115611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff3906137dd565b60405180910390fd5b60006120066122d6565b905061201b818461230190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561205a576120596129fa565b5b6040519080825280602002602001820160405280156120885781602001602082028036833780820191505090505b50905030816000815181106120a05761209f6130ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561214257600080fd5b505afa158015612156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217a9190613812565b8160018151811061218e5761218d6130ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121f530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611495565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612259959493929190613938565b600060405180830381600087803b15801561227357600080fd5b505af1158015612287573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122b7576122b661234b565b5b6122c284848461238e565b806122d0576122cf612559565b5b50505050565b60008060006122e361256d565b915091506122fa818361230190919063ffffffff16565b9250505090565b600061234383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125cc565b905092915050565b6000600c5414801561235f57506000600d54145b156123695761238c565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123a08761262f565b9550955095509550955095506123fe86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061249385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124df8161273f565b6124e984836127fc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125469190612dc3565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506125a1670de0b6b3a764000060065461230190919063ffffffff16565b8210156125bf57600654670de0b6b3a76400009350935050506125c8565b81819350935050505b9091565b60008083118290612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a9190612c6c565b60405180910390fd5b506000838561262291906139c1565b9050809150509392505050565b600080600080600080600080600061264c8a600c54600d54612836565b925092509250600061265c6122d6565b9050600080600061266f8e8787876128cc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ee5565b905092915050565b60008082846126f0919061364f565b905083811015612735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272c90613a3e565b60405180910390fd5b8091505092915050565b60006127496122d6565b90506000612760828461295590919063ffffffff16565b90506127b481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128118260065461269790919063ffffffff16565b60068190555061282c816007546126e190919063ffffffff16565b6007819055505050565b6000806000806128626064612854888a61295590919063ffffffff16565b61230190919063ffffffff16565b9050600061288c606461287e888b61295590919063ffffffff16565b61230190919063ffffffff16565b905060006128b5826128a7858c61269790919063ffffffff16565b61269790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128e5858961295590919063ffffffff16565b905060006128fc868961295590919063ffffffff16565b90506000612913878961295590919063ffffffff16565b9050600061293c8261292e858761269790919063ffffffff16565b61269790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561296857600090506129ca565b600082846129769190613a5e565b905082848261298591906139c1565b146129c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bc90613b2a565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a32826129e9565b810181811067ffffffffffffffff82111715612a5157612a506129fa565b5b80604052505050565b6000612a646129d0565b9050612a708282612a29565b919050565b600067ffffffffffffffff821115612a9057612a8f6129fa565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ad182612aa6565b9050919050565b612ae181612ac6565b8114612aec57600080fd5b50565b600081359050612afe81612ad8565b92915050565b6000612b17612b1284612a75565b612a5a565b90508083825260208201905060208402830185811115612b3a57612b39612aa1565b5b835b81811015612b635780612b4f8882612aef565b845260208401935050602081019050612b3c565b5050509392505050565b600082601f830112612b8257612b816129e4565b5b8135612b92848260208601612b04565b91505092915050565b600060208284031215612bb157612bb06129da565b5b600082013567ffffffffffffffff811115612bcf57612bce6129df565b5b612bdb84828501612b6d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c1e578082015181840152602081019050612c03565b83811115612c2d576000848401525b50505050565b6000612c3e82612be4565b612c488185612bef565b9350612c58818560208601612c00565b612c61816129e9565b840191505092915050565b60006020820190508181036000830152612c868184612c33565b905092915050565b6000819050919050565b612ca181612c8e565b8114612cac57600080fd5b50565b600081359050612cbe81612c98565b92915050565b60008060408385031215612cdb57612cda6129da565b5b6000612ce985828601612aef565b9250506020612cfa85828601612caf565b9150509250929050565b60008115159050919050565b612d1981612d04565b82525050565b6000602082019050612d346000830184612d10565b92915050565b6000819050919050565b6000612d5f612d5a612d5584612aa6565b612d3a565b612aa6565b9050919050565b6000612d7182612d44565b9050919050565b6000612d8382612d66565b9050919050565b612d9381612d78565b82525050565b6000602082019050612dae6000830184612d8a565b92915050565b612dbd81612c8e565b82525050565b6000602082019050612dd86000830184612db4565b92915050565b600080600060608486031215612df757612df66129da565b5b6000612e0586828701612aef565b9350506020612e1686828701612aef565b9250506040612e2786828701612caf565b9150509250925092565b600060ff82169050919050565b612e4781612e31565b82525050565b6000602082019050612e626000830184612e3e565b92915050565b612e7181612ac6565b82525050565b6000602082019050612e8c6000830184612e68565b92915050565b600060208284031215612ea857612ea76129da565b5b6000612eb684828501612aef565b91505092915050565b600060208284031215612ed557612ed46129da565b5b6000612ee384828501612caf565b91505092915050565b612ef581612d04565b8114612f0057600080fd5b50565b600081359050612f1281612eec565b92915050565b600060208284031215612f2e57612f2d6129da565b5b6000612f3c84828501612f03565b91505092915050565b600080fd5b60008083601f840112612f6057612f5f6129e4565b5b8235905067ffffffffffffffff811115612f7d57612f7c612f45565b5b602083019150836020820283011115612f9957612f98612aa1565b5b9250929050565b600080600060408486031215612fb957612fb86129da565b5b600084013567ffffffffffffffff811115612fd757612fd66129df565b5b612fe386828701612f4a565b93509350506020612ff686828701612f03565b9150509250925092565b60008060408385031215613017576130166129da565b5b600061302585828601612aef565b925050602061303685828601612aef565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613076602083612bef565b915061308182613040565b602082019050919050565b600060208201905081810360008301526130a581613069565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061311582612c8e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613148576131476130db565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131af602683612bef565b91506131ba82613153565b604082019050919050565b600060208201905081810360008301526131de816131a2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613241602483612bef565b915061324c826131e5565b604082019050919050565b6000602082019050818103600083015261327081613234565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132d3602283612bef565b91506132de82613277565b604082019050919050565b60006020820190508181036000830152613302816132c6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613365602583612bef565b915061337082613309565b604082019050919050565b6000602082019050818103600083015261339481613358565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133f7602383612bef565b91506134028261339b565b604082019050919050565b60006020820190508181036000830152613426816133ea565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613489602983612bef565b91506134948261342d565b604082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061351b603f83612bef565b9150613526826134bf565b604082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613587601c83612bef565b915061359282613551565b602082019050919050565b600060208201905081810360008301526135b68161357a565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613619602383612bef565b9150613624826135bd565b604082019050919050565b600060208201905081810360008301526136488161360c565b9050919050565b600061365a82612c8e565b915061366583612c8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561369a576136996130db565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613701602383612bef565b915061370c826136a5565b604082019050919050565b60006020820190508181036000830152613730816136f4565b9050919050565b600061374282612c8e565b915061374d83612c8e565b9250828210156137605761375f6130db565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137c7602a83612bef565b91506137d28261376b565b604082019050919050565b600060208201905081810360008301526137f6816137ba565b9050919050565b60008151905061380c81612ad8565b92915050565b600060208284031215613828576138276129da565b5b6000613836848285016137fd565b91505092915050565b6000819050919050565b600061386461385f61385a8461383f565b612d3a565b612c8e565b9050919050565b61387481613849565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138af81612ac6565b82525050565b60006138c183836138a6565b60208301905092915050565b6000602082019050919050565b60006138e58261387a565b6138ef8185613885565b93506138fa83613896565b8060005b8381101561392b57815161391288826138b5565b975061391d836138cd565b9250506001810190506138fe565b5085935050505092915050565b600060a08201905061394d6000830188612db4565b61395a602083018761386b565b818103604083015261396c81866138da565b905061397b6060830185612e68565b6139886080830184612db4565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139cc82612c8e565b91506139d783612c8e565b9250826139e7576139e6613992565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a28601b83612bef565b9150613a33826139f2565b602082019050919050565b60006020820190508181036000830152613a5781613a1b565b9050919050565b6000613a6982612c8e565b9150613a7483612c8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aad57613aac6130db565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b14602183612bef565b9150613b1f82613ab8565b604082019050919050565b60006020820190508181036000830152613b4381613b07565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122045e02c3312d2ccee3e53a2cc2a02bcdbf5b76b461f0d9097281c5a4a8c1166ae64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101ba5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f4578063dd62ed3e1461061d578063ea1644d51461065a578063f2fde38b14610683576101c1565b8063a9059cbb14610563578063bfd79284146105a0578063c3c8cd80146105dd576101c1565b80638f70ccf7116100c65780638f70ccf7146104bb5780638f9a55c0146104e457806395d89b411461050f57806398a5c3151461053a576101c1565b80637d1db4a5146104285780637f2feddc146104535780638da5cb5b14610490576101c1565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461039457806370a08231146103ab578063715018a6146103e857806374010ece146103ff576101c1565b8063313ce5671461031557806349bd5a5e146103405780636b9990531461036b576101c1565b80631694505e116101955780631694505e1461025757806318160ddd1461028257806323b872dd146102ad5780632fd689e3146102ea576101c1565b8062b8cf2a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e89190612b9b565b6106ac565b005b3480156101fb57600080fd5b506102046107d6565b6040516102119190612c6c565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190612cc4565b610813565b60405161024e9190612d1f565b60405180910390f35b34801561026357600080fd5b5061026c610831565b6040516102799190612d99565b60405180910390f35b34801561028e57600080fd5b50610297610857565b6040516102a49190612dc3565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612dde565b610867565b6040516102e19190612d1f565b60405180910390f35b3480156102f657600080fd5b506102ff610940565b60405161030c9190612dc3565b60405180910390f35b34801561032157600080fd5b5061032a610946565b6040516103379190612e4d565b60405180910390f35b34801561034c57600080fd5b5061035561094f565b6040516103629190612e77565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612e92565b610975565b005b3480156103a057600080fd5b506103a9610a65565b005b3480156103b757600080fd5b506103d260048036038101906103cd9190612e92565b610b36565b6040516103df9190612dc3565b60405180910390f35b3480156103f457600080fd5b506103fd610b87565b005b34801561040b57600080fd5b5061042660048036038101906104219190612ebf565b610cda565b005b34801561043457600080fd5b5061043d610d79565b60405161044a9190612dc3565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612e92565b610d7f565b6040516104879190612dc3565b60405180910390f35b34801561049c57600080fd5b506104a5610d97565b6040516104b29190612e77565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612f18565b610dc0565b005b3480156104f057600080fd5b506104f9610e72565b6040516105069190612dc3565b60405180910390f35b34801561051b57600080fd5b50610524610e78565b6040516105319190612c6c565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612ebf565b610eb5565b005b34801561056f57600080fd5b5061058a60048036038101906105859190612cc4565b610f54565b6040516105979190612d1f565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612e92565b610f72565b6040516105d49190612d1f565b60405180910390f35b3480156105e957600080fd5b506105f2610f92565b005b34801561060057600080fd5b5061061b60048036038101906106169190612fa0565b61106b565b005b34801561062957600080fd5b50610644600480360381019061063f9190613000565b6111a5565b6040516106519190612dc3565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612ebf565b61122c565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190612e92565b6112cb565b005b6106b461148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389061308c565b60405180910390fd5b60005b81518110156107d257600160106000848481518110610766576107656130ac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ca9061310a565b915050610744565b5050565b60606040518060400160405280600981526020017f5279756a696e6572630000000000000000000000000000000000000000000000815250905090565b600061082761082061148d565b8484611495565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610874848484611660565b6109358461088061148d565b61093085604051806060016040528060288152602001613b4b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e661148d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee59092919063ffffffff16565b611495565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097d61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a019061308c565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa661148d565b73ffffffffffffffffffffffffffffffffffffffff161480610b1c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b0461148d565b73ffffffffffffffffffffffffffffffffffffffff16145b610b2557600080fd5b6000479050610b3381611f49565b50565b6000610b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb5565b9050919050565b610b8f61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c139061308c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ce261148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d669061308c565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dc861148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061308c565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f524a490000000000000000000000000000000000000000000000000000000000815250905090565b610ebd61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f419061308c565b60405180910390fd5b8060188190555050565b6000610f68610f6161148d565b8484611660565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fd361148d565b73ffffffffffffffffffffffffffffffffffffffff1614806110495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103161148d565b73ffffffffffffffffffffffffffffffffffffffff16145b61105257600080fd5b600061105d30610b36565b905061106881612023565b50565b61107361148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f79061308c565b60405180910390fd5b60005b8383905081101561119f578160056000868685818110611126576111256130ac565b5b905060200201602081019061113b9190612e92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111979061310a565b915050611103565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61123461148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b89061308c565b60405180910390fd5b8060178190555050565b6112d361148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611360576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113579061308c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c7906131c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fc90613257565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c906132e9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116539190612dc3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c79061337b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611740576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117379061340d565b60405180910390fd5b60008111611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a9061349f565b60405180910390fd5b61178b610d97565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f957506117c9610d97565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611be457601560149054906101000a900460ff166118885761181a610d97565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e90613531565b60405180910390fd5b5b6016548111156118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c49061359d565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119715750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a79061362f565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a5d5760175481611a1284610b36565b611a1c919061364f565b10611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5390613717565b60405180910390fd5b5b6000611a6830610b36565b9050600060185482101590506016548210611a835760165491505b808015611a9b575060158054906101000a900460ff16155b8015611af55750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b0d5750601560169054906101000a900460ff165b8015611b635750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bb95750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611be157611bc782612023565b60004790506000811115611bdf57611bde47611f49565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c8b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d3e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d3d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d4c5760009050611ed3565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611df75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0f57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eba5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ed257600a54600c81905550600b54600d819055505b5b611edf848484846122a9565b50505050565b6000838311158290611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f249190612c6c565b60405180910390fd5b5060008385611f3c9190613737565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fb1573d6000803e3d6000fd5b5050565b6000600654821115611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff3906137dd565b60405180910390fd5b60006120066122d6565b905061201b818461230190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561205a576120596129fa565b5b6040519080825280602002602001820160405280156120885781602001602082028036833780820191505090505b50905030816000815181106120a05761209f6130ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561214257600080fd5b505afa158015612156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217a9190613812565b8160018151811061218e5761218d6130ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121f530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611495565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612259959493929190613938565b600060405180830381600087803b15801561227357600080fd5b505af1158015612287573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122b7576122b661234b565b5b6122c284848461238e565b806122d0576122cf612559565b5b50505050565b60008060006122e361256d565b915091506122fa818361230190919063ffffffff16565b9250505090565b600061234383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125cc565b905092915050565b6000600c5414801561235f57506000600d54145b156123695761238c565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123a08761262f565b9550955095509550955095506123fe86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061249385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124df8161273f565b6124e984836127fc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125469190612dc3565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506125a1670de0b6b3a764000060065461230190919063ffffffff16565b8210156125bf57600654670de0b6b3a76400009350935050506125c8565b81819350935050505b9091565b60008083118290612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a9190612c6c565b60405180910390fd5b506000838561262291906139c1565b9050809150509392505050565b600080600080600080600080600061264c8a600c54600d54612836565b925092509250600061265c6122d6565b9050600080600061266f8e8787876128cc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ee5565b905092915050565b60008082846126f0919061364f565b905083811015612735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272c90613a3e565b60405180910390fd5b8091505092915050565b60006127496122d6565b90506000612760828461295590919063ffffffff16565b90506127b481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128118260065461269790919063ffffffff16565b60068190555061282c816007546126e190919063ffffffff16565b6007819055505050565b6000806000806128626064612854888a61295590919063ffffffff16565b61230190919063ffffffff16565b9050600061288c606461287e888b61295590919063ffffffff16565b61230190919063ffffffff16565b905060006128b5826128a7858c61269790919063ffffffff16565b61269790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128e5858961295590919063ffffffff16565b905060006128fc868961295590919063ffffffff16565b90506000612913878961295590919063ffffffff16565b9050600061293c8261292e858761269790919063ffffffff16565b61269790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561296857600090506129ca565b600082846129769190613a5e565b905082848261298591906139c1565b146129c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bc90613b2a565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a32826129e9565b810181811067ffffffffffffffff82111715612a5157612a506129fa565b5b80604052505050565b6000612a646129d0565b9050612a708282612a29565b919050565b600067ffffffffffffffff821115612a9057612a8f6129fa565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ad182612aa6565b9050919050565b612ae181612ac6565b8114612aec57600080fd5b50565b600081359050612afe81612ad8565b92915050565b6000612b17612b1284612a75565b612a5a565b90508083825260208201905060208402830185811115612b3a57612b39612aa1565b5b835b81811015612b635780612b4f8882612aef565b845260208401935050602081019050612b3c565b5050509392505050565b600082601f830112612b8257612b816129e4565b5b8135612b92848260208601612b04565b91505092915050565b600060208284031215612bb157612bb06129da565b5b600082013567ffffffffffffffff811115612bcf57612bce6129df565b5b612bdb84828501612b6d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c1e578082015181840152602081019050612c03565b83811115612c2d576000848401525b50505050565b6000612c3e82612be4565b612c488185612bef565b9350612c58818560208601612c00565b612c61816129e9565b840191505092915050565b60006020820190508181036000830152612c868184612c33565b905092915050565b6000819050919050565b612ca181612c8e565b8114612cac57600080fd5b50565b600081359050612cbe81612c98565b92915050565b60008060408385031215612cdb57612cda6129da565b5b6000612ce985828601612aef565b9250506020612cfa85828601612caf565b9150509250929050565b60008115159050919050565b612d1981612d04565b82525050565b6000602082019050612d346000830184612d10565b92915050565b6000819050919050565b6000612d5f612d5a612d5584612aa6565b612d3a565b612aa6565b9050919050565b6000612d7182612d44565b9050919050565b6000612d8382612d66565b9050919050565b612d9381612d78565b82525050565b6000602082019050612dae6000830184612d8a565b92915050565b612dbd81612c8e565b82525050565b6000602082019050612dd86000830184612db4565b92915050565b600080600060608486031215612df757612df66129da565b5b6000612e0586828701612aef565b9350506020612e1686828701612aef565b9250506040612e2786828701612caf565b9150509250925092565b600060ff82169050919050565b612e4781612e31565b82525050565b6000602082019050612e626000830184612e3e565b92915050565b612e7181612ac6565b82525050565b6000602082019050612e8c6000830184612e68565b92915050565b600060208284031215612ea857612ea76129da565b5b6000612eb684828501612aef565b91505092915050565b600060208284031215612ed557612ed46129da565b5b6000612ee384828501612caf565b91505092915050565b612ef581612d04565b8114612f0057600080fd5b50565b600081359050612f1281612eec565b92915050565b600060208284031215612f2e57612f2d6129da565b5b6000612f3c84828501612f03565b91505092915050565b600080fd5b60008083601f840112612f6057612f5f6129e4565b5b8235905067ffffffffffffffff811115612f7d57612f7c612f45565b5b602083019150836020820283011115612f9957612f98612aa1565b5b9250929050565b600080600060408486031215612fb957612fb86129da565b5b600084013567ffffffffffffffff811115612fd757612fd66129df565b5b612fe386828701612f4a565b93509350506020612ff686828701612f03565b9150509250925092565b60008060408385031215613017576130166129da565b5b600061302585828601612aef565b925050602061303685828601612aef565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613076602083612bef565b915061308182613040565b602082019050919050565b600060208201905081810360008301526130a581613069565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061311582612c8e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613148576131476130db565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131af602683612bef565b91506131ba82613153565b604082019050919050565b600060208201905081810360008301526131de816131a2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613241602483612bef565b915061324c826131e5565b604082019050919050565b6000602082019050818103600083015261327081613234565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132d3602283612bef565b91506132de82613277565b604082019050919050565b60006020820190508181036000830152613302816132c6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613365602583612bef565b915061337082613309565b604082019050919050565b6000602082019050818103600083015261339481613358565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133f7602383612bef565b91506134028261339b565b604082019050919050565b60006020820190508181036000830152613426816133ea565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613489602983612bef565b91506134948261342d565b604082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061351b603f83612bef565b9150613526826134bf565b604082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613587601c83612bef565b915061359282613551565b602082019050919050565b600060208201905081810360008301526135b68161357a565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613619602383612bef565b9150613624826135bd565b604082019050919050565b600060208201905081810360008301526136488161360c565b9050919050565b600061365a82612c8e565b915061366583612c8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561369a576136996130db565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613701602383612bef565b915061370c826136a5565b604082019050919050565b60006020820190508181036000830152613730816136f4565b9050919050565b600061374282612c8e565b915061374d83612c8e565b9250828210156137605761375f6130db565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137c7602a83612bef565b91506137d28261376b565b604082019050919050565b600060208201905081810360008301526137f6816137ba565b9050919050565b60008151905061380c81612ad8565b92915050565b600060208284031215613828576138276129da565b5b6000613836848285016137fd565b91505092915050565b6000819050919050565b600061386461385f61385a8461383f565b612d3a565b612c8e565b9050919050565b61387481613849565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138af81612ac6565b82525050565b60006138c183836138a6565b60208301905092915050565b6000602082019050919050565b60006138e58261387a565b6138ef8185613885565b93506138fa83613896565b8060005b8381101561392b57815161391288826138b5565b975061391d836138cd565b9250506001810190506138fe565b5085935050505092915050565b600060a08201905061394d6000830188612db4565b61395a602083018761386b565b818103604083015261396c81866138da565b905061397b6060830185612e68565b6139886080830184612db4565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139cc82612c8e565b91506139d783612c8e565b9250826139e7576139e6613992565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a28601b83612bef565b9150613a33826139f2565b602082019050919050565b60006020820190508181036000830152613a5781613a1b565b9050919050565b6000613a6982612c8e565b9150613a7483612c8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aad57613aac6130db565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b14602183612bef565b9150613b1f82613ab8565b604082019050919050565b60006020820190508181036000830152613b4381613b07565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122045e02c3312d2ccee3e53a2cc2a02bcdbf5b76b461f0d9097281c5a4a8c1166ae64736f6c63430008090033

Deployed Bytecode Sourcemap

5649:13051:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14323:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8151:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9076:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6991:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8428:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9277:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7299:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8337:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7039:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14500:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14080:235;;;;;;;;;;;;;:::i;:::-;;8531:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3136:148;;;;;;;;;;;;;:::i;:::-;;18222:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7189:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6733:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2922:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13727:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7243:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8242:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18044:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8677:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6695:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13836:236;;;;;;;;;;;;;:::i;:::-;;18461:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8884:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18338:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3292:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14323:169;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14399:9:::1;14394:91;14418:5;:12;14414:1;:16;14394:91;;;14469:4;14452;:14;14457:5;14463:1;14457:8;;;;;;;;:::i;:::-;;;;;;;;14452:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14432:3;;;;;:::i;:::-;;;;14394:91;;;;14323:169:::0;:::o;8151:83::-;8188:13;8221:5;;;;;;;;;;;;;;;;;8214:12;;8151:83;:::o;9076:193::-;9178:4;9200:39;9209:12;:10;:12::i;:::-;9223:7;9232:6;9200:8;:39::i;:::-;9257:4;9250:11;;9076:193;;;;:::o;6991:41::-;;;;;;;;;;;;;:::o;8428:95::-;8481:7;6197:18;8501:14;;8428:95;:::o;9277:446::-;9409:4;9426:36;9436:6;9444:9;9455:6;9426:9;:36::i;:::-;9473:220;9496:6;9517:12;:10;:12::i;:::-;9544:138;9600:6;9544:138;;;;;;;;;;;;;;;;;:11;:19;9556:6;9544:19;;;;;;;;;;;;;;;:33;9564:12;:10;:12::i;:::-;9544:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9473:8;:220::i;:::-;9711:4;9704:11;;9277:446;;;;;:::o;7299:50::-;;;;:::o;8337:83::-;8378:5;5871:1;8396:16;;8337:83;:::o;7039:28::-;;;;;;;;;;;;;:::o;14500:92::-;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14579:5:::1;14564:4;:12;14569:6;14564:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14500:92:::0;:::o;14080:235::-;14146:19;;;;;;;;;;;14130:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14185:17;;;;;;;;;;;14169:33;;:12;:10;:12::i;:::-;:33;;;14130:72;14122:81;;;;;;14214:26;14243:21;14214:50;;14275:32;14288:18;14275:12;:32::i;:::-;14111:204;14080:235::o;8531:138::-;8597:7;8624:37;8644:7;:16;8652:7;8644:16;;;;;;;;;;;;;;;;8624:19;:37::i;:::-;8617:44;;8531:138;;;:::o;3136:148::-;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3243:1:::1;3206:40;;3227:6;::::0;::::1;;;;;;;;3206:40;;;;;;;;;;;;3274:1;3257:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3136:148::o:0;18222:108::-;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18311:11:::1;18296:12;:26;;;;18222:108:::0;:::o;7189:47::-;;;;:::o;6733:43::-;;;;;;;;;;;;;;;;;:::o;2922:79::-;2960:7;2987:6;;;;;;;;;;;2980:13;;2922:79;:::o;13727:101::-;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13808:12:::1;13794:11;;:26;;;;;;;;;;;;;;;;;;13727:101:::0;:::o;7243:49::-;;;;:::o;8242:87::-;8281:13;8314:7;;;;;;;;;;;;;;;;;8307:14;;8242:87;:::o;18044:139::-;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18157:18:::1;18135:19;:40;;;;18044:139:::0;:::o;8677:199::-;8782:4;8804:42;8814:12;:10;:12::i;:::-;8828:9;8839:6;8804:9;:42::i;:::-;8864:4;8857:11;;8677:199;;;;:::o;6695:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13836:236::-;13902:19;;;;;;;;;;;13886:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13941:17;;;;;;;;;;;13925:33;;:12;:10;:12::i;:::-;:33;;;13886:72;13878:81;;;;;;13970:23;13996:24;14014:4;13996:9;:24::i;:::-;13970:50;;14031:33;14048:15;14031:16;:33::i;:::-;13867:205;13836:236::o;18461:234::-;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18578:9:::1;18574:114;18597:8;;:15;;18593:1;:19;18574:114;;;18668:8;18634:18;:31;18653:8;;18662:1;18653:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18634:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18614:3;;;;;:::i;:::-;;;;18574:114;;;;18461:234:::0;;;:::o;8884:184::-;9001:7;9033:11;:18;9045:5;9033:18;;;;;;;;;;;;;;;:27;9052:7;9033:27;;;;;;;;;;;;;;;;9026:34;;8884:184;;;;:::o;18338:115::-;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18432:13:::1;18415:14;:30;;;;18338:115:::0;:::o;3292:244::-;3059:12;:10;:12::i;:::-;3049:22;;:6;;;;;;;;;;:22;;;3041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3401:1:::1;3381:22;;:8;:22;;;;3373:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3491:8;3462:38;;3483:6;::::0;::::1;;;;;;;;3462:38;;;;;;;;;;;;3520:8;3511:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3292:244:::0;:::o;1681:98::-;1734:7;1761:10;1754:17;;1681:98;:::o;10414:369::-;10558:1;10541:19;;:5;:19;;;;10533:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10639:1;10620:21;;:7;:21;;;;10612:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10721:6;10691:11;:18;10703:5;10691:18;;;;;;;;;;;;;;;:27;10710:7;10691:27;;;;;;;;;;;;;;;:36;;;;10759:7;10743:32;;10752:5;10743:32;;;10768:6;10743:32;;;;;;:::i;:::-;;;;;;;;10414:369;;;:::o;10791:2330::-;10929:1;10913:18;;:4;:18;;;;10905:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11006:1;10992:16;;:2;:16;;;;10984:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11076:1;11067:6;:10;11059:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11148:7;:5;:7::i;:::-;11140:15;;:4;:15;;;;:32;;;;;11165:7;:5;:7::i;:::-;11159:13;;:2;:13;;;;11140:32;11136:1259;;;11229:11;;;;;;;;;;;11224:144;;11277:7;:5;:7::i;:::-;11269:15;;:4;:15;;;11261:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11224:144;11402:12;;11392:6;:22;;11384:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11471:4;:10;11476:4;11471:10;;;;;;;;;;;;;;;;;;;;;;;;;11470:11;:24;;;;;11486:4;:8;11491:2;11486:8;;;;;;;;;;;;;;;;;;;;;;;;;11485:9;11470:24;11462:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11560:13;;;;;;;;;;;11554:19;;:2;:19;;;11551:146;;11627:14;;11618:6;11602:13;11612:2;11602:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11594:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11551:146;11713:28;11744:24;11762:4;11744:9;:24::i;:::-;11713:55;;11783:12;11822:19;;11798:20;:43;;11783:58;;11885:12;;11861:20;:36;11858:124;;11954:12;;11931:35;;11858:124;12002:7;:18;;;;;12014:6;;;;;;;;;;12013:7;12002:18;:43;;;;;12032:13;;;;;;;;;;;12024:21;;:4;:21;;;;12002:43;:58;;;;;12049:11;;;;;;;;;;;12002:58;:87;;;;;12065:18;:24;12084:4;12065:24;;;;;;;;;;;;;;;;;;;;;;;;;12064:25;12002:87;:114;;;;;12094:18;:22;12113:2;12094:22;;;;;;;;;;;;;;;;;;;;;;;;;12093:23;12002:114;11998:386;;;12137:38;12154:20;12137:16;:38::i;:::-;12194:26;12223:21;12194:50;;12288:1;12267:18;:22;12263:106;;;12314:35;12327:21;12314:12;:35::i;:::-;12263:106;12118:266;11998:386;11174:1221;;11136:1259;12407:12;12422:4;12407:19;;12471:18;:24;12490:4;12471:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12499:18;:22;12518:2;12499:22;;;;;;;;;;;;;;;;;;;;;;;;;12471:50;12470:102;;;;12535:13;;;;;;;;;;;12527:21;;:4;:21;;;;:44;;;;;12558:13;;;;;;;;;;;12552:19;;:2;:19;;;;12527:44;12470:102;12466:594;;;12599:5;12589:15;;12466:594;;;12682:13;;;;;;;;;;;12674:21;;:4;:21;;;:55;;;;;12713:15;;;;;;;;;;;12699:30;;:2;:30;;;;12674:55;12671:162;;;12762:14;;12750:9;:26;;;;12805:12;;12795:7;:22;;;;12671:162;12892:13;;;;;;;;;;;12886:19;;:2;:19;;;:55;;;;;12925:15;;;;;;;;;;;12909:32;;:4;:32;;;;12886:55;12882:165;;;12974:15;;12962:9;:27;;;;13018:13;;13008:7;:23;;;;12882:165;12466:594;13072:41;13087:4;13093:2;13097:6;13105:7;13072:14;:41::i;:::-;10894:2227;10791:2330;;;:::o;3900:224::-;4020:7;4053:1;4048;:6;;4056:12;4040:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4080:9;4096:1;4092;:5;;;;:::i;:::-;4080:17;;4115:1;4108:8;;;3900:224;;;;;:::o;13620:99::-;13677:17;;;;;;;;;;;:26;;:34;13704:6;13677:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13620:99;:::o;9731:323::-;9826:7;9884;;9873;:18;;9851:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9972:19;9994:10;:8;:10::i;:::-;9972:32;;10022:24;10034:11;10022:7;:11;;:24;;;;:::i;:::-;10015:31;;;9731:323;;;:::o;13129:483::-;7452:4;7443:6;;:13;;;;;;;;;;;;;;;;;;13207:21:::1;13245:1;13231:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13207:40;;13276:4;13258;13263:1;13258:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13302:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13292:4;13297:1;13292:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13335:62;13352:4;13367:15;;;;;;;;;;;13385:11;13335:8;:62::i;:::-;13408:15;;;;;;;;;;;:66;;;13489:11;13515:1;13531:4;13558;13578:15;13408:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13196:416;7488:5:::0;7479:6;;:14;;;;;;;;;;;;;;;;;;13129:483;:::o;14600:282::-;14756:7;14751:28;;14765:14;:12;:14::i;:::-;14751:28;14790:44;14808:6;14816:9;14827:6;14790:17;:44::i;:::-;14850:7;14845:29;;14859:15;:13;:15::i;:::-;14845:29;14600:282;;;;:::o;17561:164::-;17603:7;17624:15;17641;17660:19;:17;:19::i;:::-;17623:56;;;;17697:20;17709:7;17697;:11;;:20;;;;:::i;:::-;17690:27;;;;17561:164;:::o;4386:132::-;4444:7;4471:39;4475:1;4478;4471:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4464:46;;4386:132;;;;:::o;10062:219::-;10122:1;10109:9;;:14;:30;;;;;10138:1;10127:7;;:12;10109:30;10105:43;;;10141:7;;10105:43;10180:9;;10160:17;:29;;;;10218:7;;10200:15;:25;;;;10250:1;10238:9;:13;;;;10272:1;10262:7;:11;;;;10062:219;:::o;14890:610::-;15037:15;15067:23;15105:12;15132:23;15170:12;15197:13;15224:19;15235:7;15224:10;:19::i;:::-;15022:221;;;;;;;;;;;;15272:28;15292:7;15272;:15;15280:6;15272:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15254:7;:15;15262:6;15254:15;;;;;;;;;;;;;;;:46;;;;15332:39;15355:15;15332:7;:18;15340:9;15332:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15311:7;:18;15319:9;15311:18;;;;;;;;;;;;;;;:60;;;;15382:16;15392:5;15382:9;:16::i;:::-;15409:23;15421:4;15427;15409:11;:23::i;:::-;15465:9;15448:44;;15457:6;15448:44;;;15476:15;15448:44;;;;;;:::i;:::-;;;;;;;;15011:489;;;;;;14890:610;;;:::o;10289:117::-;10345:17;;10333:9;:29;;;;10383:15;;10373:7;:25;;;;10289:117::o;17733:257::-;17784:7;17793;17813:15;17831:7;;17813:25;;17849:15;6197:18;17849:25;;17899:20;6197:18;17899:7;;:11;;:20;;;;:::i;:::-;17889:7;:30;17885:61;;;17929:7;;6197:18;17921:25;;;;;;;;17885:61;17965:7;17974;17957:25;;;;;;17733:257;;;:::o;4526:223::-;4646:7;4678:1;4674;:5;4681:12;4666:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4705:9;4721:1;4717;:5;;;;:::i;:::-;4705:17;;4740:1;4733:8;;;4526:223;;;;;:::o;15919:615::-;16019:7;16041;16063;16085;16107;16129;16165:23;16190:12;16204:13;16234:40;16246:7;16255:9;;16266:7;;16234:11;:40::i;:::-;16164:110;;;;;;16285:19;16307:10;:8;:10::i;:::-;16285:32;;16329:15;16346:23;16371:12;16400:46;16412:7;16421:4;16427:5;16434:11;16400;:46::i;:::-;16328:118;;;;;;16465:7;16474:15;16491:4;16497:15;16514:4;16520:5;16457:69;;;;;;;;;;;;;;;;;;;15919:615;;;;;;;:::o;3756:136::-;3814:7;3841:43;3845:1;3848;3841:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3834:50;;3756:136;;;;:::o;3569:179::-;3627:7;3647:9;3663:1;3659;:5;;;;:::i;:::-;3647:17;;3688:1;3683;:6;;3675:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3739:1;3732:8;;;3569:179;;;;:::o;15508:211::-;15561:19;15583:10;:8;:10::i;:::-;15561:32;;15604:13;15620:22;15630:11;15620:5;:9;;:22;;;;:::i;:::-;15604:38;;15678:33;15705:5;15678:7;:22;15694:4;15678:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15653:7;:22;15669:4;15653:22;;;;;;;;;;;;;;;:58;;;;15550:169;;15508:211;:::o;15727:147::-;15805:17;15817:4;15805:7;;:11;;:17;;;;:::i;:::-;15795:7;:27;;;;15846:20;15861:4;15846:10;;:14;;:20;;;;:::i;:::-;15833:10;:33;;;;15727:147;;:::o;16542:469::-;16711:7;16733;16755;16790:12;16805:30;16831:3;16805:21;16817:8;16805:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16790:45;;16846:13;16862:28;16886:3;16862:19;16874:6;16862:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16846:44;;16901:23;16927:28;16949:5;16927:17;16939:4;16927:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16901:54;;16974:15;16991:4;16997:5;16966:37;;;;;;;;;16542:469;;;;;;;:::o;17019:534::-;17213:7;17235;17257;17292:15;17310:24;17322:11;17310:7;:11;;:24;;;;:::i;:::-;17292:42;;17345:12;17360:21;17369:11;17360:4;:8;;:21;;;;:::i;:::-;17345:36;;17392:13;17408:22;17418:11;17408:5;:9;;:22;;;;:::i;:::-;17392:38;;17441:23;17467:28;17489:5;17467:17;17479:4;17467:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17441:54;;17514:7;17523:15;17540:4;17506:39;;;;;;;;;;17019:534;;;;;;;;:::o;4132:246::-;4190:7;4219:1;4214;:6;4210:47;;;4244:1;4237:8;;;;4210:47;4267:9;4283:1;4279;:5;;;;:::i;:::-;4267:17;;4312:1;4307;4303;:5;;;;:::i;:::-;:10;4295:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4369:1;4362:8;;;4132:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:::-;9462:6;9511:2;9499:9;9490:7;9486:23;9482:32;9479:119;;;9517:79;;:::i;:::-;9479:119;9637:1;9662:53;9707:7;9698:6;9687:9;9683:22;9662:53;:::i;:::-;9652:63;;9608:117;9403:329;;;;:::o;9738:116::-;9808:21;9823:5;9808:21;:::i;:::-;9801:5;9798:32;9788:60;;9844:1;9841;9834:12;9788:60;9738:116;:::o;9860:133::-;9903:5;9941:6;9928:20;9919:29;;9957:30;9981:5;9957:30;:::i;:::-;9860:133;;;;:::o;9999:323::-;10055:6;10104:2;10092:9;10083:7;10079:23;10075:32;10072:119;;;10110:79;;:::i;:::-;10072:119;10230:1;10255:50;10297:7;10288:6;10277:9;10273:22;10255:50;:::i;:::-;10245:60;;10201:114;9999:323;;;;:::o;10328:117::-;10437:1;10434;10427:12;10468:568;10541:8;10551:6;10601:3;10594:4;10586:6;10582:17;10578:27;10568:122;;10609:79;;:::i;:::-;10568:122;10722:6;10709:20;10699:30;;10752:18;10744:6;10741:30;10738:117;;;10774:79;;:::i;:::-;10738:117;10888:4;10880:6;10876:17;10864:29;;10942:3;10934:4;10926:6;10922:17;10912:8;10908:32;10905:41;10902:128;;;10949:79;;:::i;:::-;10902:128;10468:568;;;;;:::o;11042:698::-;11134:6;11142;11150;11199:2;11187:9;11178:7;11174:23;11170:32;11167:119;;;11205:79;;:::i;:::-;11167:119;11353:1;11342:9;11338:17;11325:31;11383:18;11375:6;11372:30;11369:117;;;11405:79;;:::i;:::-;11369:117;11518:80;11590:7;11581:6;11570:9;11566:22;11518:80;:::i;:::-;11500:98;;;;11296:312;11647:2;11673:50;11715:7;11706:6;11695:9;11691:22;11673:50;:::i;:::-;11663:60;;11618:115;11042:698;;;;;:::o;11746:474::-;11814:6;11822;11871:2;11859:9;11850:7;11846:23;11842:32;11839:119;;;11877:79;;:::i;:::-;11839:119;11997:1;12022:53;12067:7;12058:6;12047:9;12043:22;12022:53;:::i;:::-;12012:63;;11968:117;12124:2;12150:53;12195:7;12186:6;12175:9;12171:22;12150:53;:::i;:::-;12140:63;;12095:118;11746:474;;;;;:::o;12226:182::-;12366:34;12362:1;12354:6;12350:14;12343:58;12226:182;:::o;12414:366::-;12556:3;12577:67;12641:2;12636:3;12577:67;:::i;:::-;12570:74;;12653:93;12742:3;12653:93;:::i;:::-;12771:2;12766:3;12762:12;12755:19;;12414:366;;;:::o;12786:419::-;12952:4;12990:2;12979:9;12975:18;12967:26;;13039:9;13033:4;13029:20;13025:1;13014:9;13010:17;13003:47;13067:131;13193:4;13067:131;:::i;:::-;13059:139;;12786:419;;;:::o;13211:180::-;13259:77;13256:1;13249:88;13356:4;13353:1;13346:15;13380:4;13377:1;13370:15;13397:180;13445:77;13442:1;13435:88;13542:4;13539:1;13532:15;13566:4;13563:1;13556:15;13583:233;13622:3;13645:24;13663:5;13645:24;:::i;:::-;13636:33;;13691:66;13684:5;13681:77;13678:103;;;13761:18;;:::i;:::-;13678:103;13808:1;13801:5;13797:13;13790:20;;13583:233;;;:::o;13822:225::-;13962:34;13958:1;13950:6;13946:14;13939:58;14031:8;14026:2;14018:6;14014:15;14007:33;13822:225;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:223::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:6;15054:2;15046:6;15042:15;15035:31;14850:223;:::o;15079:366::-;15221:3;15242:67;15306:2;15301:3;15242:67;:::i;:::-;15235:74;;15318:93;15407:3;15318:93;:::i;:::-;15436:2;15431:3;15427:12;15420:19;;15079:366;;;:::o;15451:419::-;15617:4;15655:2;15644:9;15640:18;15632:26;;15704:9;15698:4;15694:20;15690:1;15679:9;15675:17;15668:47;15732:131;15858:4;15732:131;:::i;:::-;15724:139;;15451:419;;;:::o;15876:221::-;16016:34;16012:1;16004:6;16000:14;15993:58;16085:4;16080:2;16072:6;16068:15;16061:29;15876:221;:::o;16103:366::-;16245:3;16266:67;16330:2;16325:3;16266:67;:::i;:::-;16259:74;;16342:93;16431:3;16342:93;:::i;:::-;16460:2;16455:3;16451:12;16444:19;;16103:366;;;:::o;16475:419::-;16641:4;16679:2;16668:9;16664:18;16656:26;;16728:9;16722:4;16718:20;16714:1;16703:9;16699:17;16692:47;16756:131;16882:4;16756:131;:::i;:::-;16748:139;;16475:419;;;:::o;16900:224::-;17040:34;17036:1;17028:6;17024:14;17017:58;17109:7;17104:2;17096:6;17092:15;17085:32;16900:224;:::o;17130:366::-;17272:3;17293:67;17357:2;17352:3;17293:67;:::i;:::-;17286:74;;17369:93;17458:3;17369:93;:::i;:::-;17487:2;17482:3;17478:12;17471:19;;17130:366;;;:::o;17502:419::-;17668:4;17706:2;17695:9;17691:18;17683:26;;17755:9;17749:4;17745:20;17741:1;17730:9;17726:17;17719:47;17783:131;17909:4;17783:131;:::i;:::-;17775:139;;17502:419;;;:::o;17927:222::-;18067:34;18063:1;18055:6;18051:14;18044:58;18136:5;18131:2;18123:6;18119:15;18112:30;17927:222;:::o;18155:366::-;18297:3;18318:67;18382:2;18377:3;18318:67;:::i;:::-;18311:74;;18394:93;18483:3;18394:93;:::i;:::-;18512:2;18507:3;18503:12;18496:19;;18155:366;;;:::o;18527:419::-;18693:4;18731:2;18720:9;18716:18;18708:26;;18780:9;18774:4;18770:20;18766:1;18755:9;18751:17;18744:47;18808:131;18934:4;18808:131;:::i;:::-;18800:139;;18527:419;;;:::o;18952:228::-;19092:34;19088:1;19080:6;19076:14;19069:58;19161:11;19156:2;19148:6;19144:15;19137:36;18952:228;:::o;19186:366::-;19328:3;19349:67;19413:2;19408:3;19349:67;:::i;:::-;19342:74;;19425:93;19514:3;19425:93;:::i;:::-;19543:2;19538:3;19534:12;19527:19;;19186:366;;;:::o;19558:419::-;19724:4;19762:2;19751:9;19747:18;19739:26;;19811:9;19805:4;19801:20;19797:1;19786:9;19782:17;19775:47;19839:131;19965:4;19839:131;:::i;:::-;19831:139;;19558:419;;;:::o;19983:250::-;20123:34;20119:1;20111:6;20107:14;20100:58;20192:33;20187:2;20179:6;20175:15;20168:58;19983:250;:::o;20239:366::-;20381:3;20402:67;20466:2;20461:3;20402:67;:::i;:::-;20395:74;;20478:93;20567:3;20478:93;:::i;:::-;20596:2;20591:3;20587:12;20580:19;;20239:366;;;:::o;20611:419::-;20777:4;20815:2;20804:9;20800:18;20792:26;;20864:9;20858:4;20854:20;20850:1;20839:9;20835:17;20828:47;20892:131;21018:4;20892:131;:::i;:::-;20884:139;;20611:419;;;:::o;21036:178::-;21176:30;21172:1;21164:6;21160:14;21153:54;21036:178;:::o;21220:366::-;21362:3;21383:67;21447:2;21442:3;21383:67;:::i;:::-;21376:74;;21459:93;21548:3;21459:93;:::i;:::-;21577:2;21572:3;21568:12;21561:19;;21220:366;;;:::o;21592:419::-;21758:4;21796:2;21785:9;21781:18;21773:26;;21845:9;21839:4;21835:20;21831:1;21820:9;21816:17;21809:47;21873:131;21999:4;21873:131;:::i;:::-;21865:139;;21592:419;;;:::o;22017:222::-;22157:34;22153:1;22145:6;22141:14;22134:58;22226:5;22221:2;22213:6;22209:15;22202:30;22017:222;:::o;22245:366::-;22387:3;22408:67;22472:2;22467:3;22408:67;:::i;:::-;22401:74;;22484:93;22573:3;22484:93;:::i;:::-;22602:2;22597:3;22593:12;22586:19;;22245:366;;;:::o;22617:419::-;22783:4;22821:2;22810:9;22806:18;22798:26;;22870:9;22864:4;22860:20;22856:1;22845:9;22841:17;22834:47;22898:131;23024:4;22898:131;:::i;:::-;22890:139;;22617:419;;;:::o;23042:305::-;23082:3;23101:20;23119:1;23101:20;:::i;:::-;23096:25;;23135:20;23153:1;23135:20;:::i;:::-;23130:25;;23289:1;23221:66;23217:74;23214:1;23211:81;23208:107;;;23295:18;;:::i;:::-;23208:107;23339:1;23336;23332:9;23325:16;;23042:305;;;;:::o;23353:222::-;23493:34;23489:1;23481:6;23477:14;23470:58;23562:5;23557:2;23549:6;23545:15;23538:30;23353:222;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:191::-;24418:4;24438:20;24456:1;24438:20;:::i;:::-;24433:25;;24472:20;24490:1;24472:20;:::i;:::-;24467:25;;24511:1;24508;24505:8;24502:34;;;24516:18;;:::i;:::-;24502:34;24561:1;24558;24554:9;24546:17;;24378:191;;;;:::o;24575:229::-;24715:34;24711:1;24703:6;24699:14;24692:58;24784:12;24779:2;24771:6;24767:15;24760:37;24575:229;:::o;24810:366::-;24952:3;24973:67;25037:2;25032:3;24973:67;:::i;:::-;24966:74;;25049:93;25138:3;25049:93;:::i;:::-;25167:2;25162:3;25158:12;25151:19;;24810:366;;;:::o;25182:419::-;25348:4;25386:2;25375:9;25371:18;25363:26;;25435:9;25429:4;25425:20;25421:1;25410:9;25406:17;25399:47;25463:131;25589:4;25463:131;:::i;:::-;25455:139;;25182:419;;;:::o;25607:143::-;25664:5;25695:6;25689:13;25680:22;;25711:33;25738:5;25711:33;:::i;:::-;25607:143;;;;:::o;25756:351::-;25826:6;25875:2;25863:9;25854:7;25850:23;25846:32;25843:119;;;25881:79;;:::i;:::-;25843:119;26001:1;26026:64;26082:7;26073:6;26062:9;26058:22;26026:64;:::i;:::-;26016:74;;25972:128;25756:351;;;;:::o;26113:85::-;26158:7;26187:5;26176:16;;26113:85;;;:::o;26204:158::-;26262:9;26295:61;26313:42;26322:32;26348:5;26322:32;:::i;:::-;26313:42;:::i;:::-;26295:61;:::i;:::-;26282:74;;26204:158;;;:::o;26368:147::-;26463:45;26502:5;26463:45;:::i;:::-;26458:3;26451:58;26368:147;;:::o;26521:114::-;26588:6;26622:5;26616:12;26606:22;;26521:114;;;:::o;26641:184::-;26740:11;26774:6;26769:3;26762:19;26814:4;26809:3;26805:14;26790:29;;26641:184;;;;:::o;26831:132::-;26898:4;26921:3;26913:11;;26951:4;26946:3;26942:14;26934:22;;26831:132;;;:::o;26969:108::-;27046:24;27064:5;27046:24;:::i;:::-;27041:3;27034:37;26969:108;;:::o;27083:179::-;27152:10;27173:46;27215:3;27207:6;27173:46;:::i;:::-;27251:4;27246:3;27242:14;27228:28;;27083:179;;;;:::o;27268:113::-;27338:4;27370;27365:3;27361:14;27353:22;;27268:113;;;:::o;27417:732::-;27536:3;27565:54;27613:5;27565:54;:::i;:::-;27635:86;27714:6;27709:3;27635:86;:::i;:::-;27628:93;;27745:56;27795:5;27745:56;:::i;:::-;27824:7;27855:1;27840:284;27865:6;27862:1;27859:13;27840:284;;;27941:6;27935:13;27968:63;28027:3;28012:13;27968:63;:::i;:::-;27961:70;;28054:60;28107:6;28054:60;:::i;:::-;28044:70;;27900:224;27887:1;27884;27880:9;27875:14;;27840:284;;;27844:14;28140:3;28133:10;;27541:608;;;27417:732;;;;:::o;28155:831::-;28418:4;28456:3;28445:9;28441:19;28433:27;;28470:71;28538:1;28527:9;28523:17;28514:6;28470:71;:::i;:::-;28551:80;28627:2;28616:9;28612:18;28603:6;28551:80;:::i;:::-;28678:9;28672:4;28668:20;28663:2;28652:9;28648:18;28641:48;28706:108;28809:4;28800:6;28706:108;:::i;:::-;28698:116;;28824:72;28892:2;28881:9;28877:18;28868:6;28824:72;:::i;:::-;28906:73;28974:3;28963:9;28959:19;28950:6;28906:73;:::i;:::-;28155:831;;;;;;;;:::o;28992:180::-;29040:77;29037:1;29030:88;29137:4;29134:1;29127:15;29161:4;29158:1;29151:15;29178:185;29218:1;29235:20;29253:1;29235:20;:::i;:::-;29230:25;;29269:20;29287:1;29269:20;:::i;:::-;29264:25;;29308:1;29298:35;;29313:18;;:::i;:::-;29298:35;29355:1;29352;29348:9;29343:14;;29178:185;;;;:::o;29369:177::-;29509:29;29505:1;29497:6;29493:14;29486:53;29369:177;:::o;29552:366::-;29694:3;29715:67;29779:2;29774:3;29715:67;:::i;:::-;29708:74;;29791:93;29880:3;29791:93;:::i;:::-;29909:2;29904:3;29900:12;29893:19;;29552:366;;;:::o;29924:419::-;30090:4;30128:2;30117:9;30113:18;30105:26;;30177:9;30171:4;30167:20;30163:1;30152:9;30148:17;30141:47;30205:131;30331:4;30205:131;:::i;:::-;30197:139;;29924:419;;;:::o;30349:348::-;30389:7;30412:20;30430:1;30412:20;:::i;:::-;30407:25;;30446:20;30464:1;30446:20;:::i;:::-;30441:25;;30634:1;30566:66;30562:74;30559:1;30556:81;30551:1;30544:9;30537:17;30533:105;30530:131;;;30641:18;;:::i;:::-;30530:131;30689:1;30686;30682:9;30671:20;;30349:348;;;;:::o;30703:220::-;30843:34;30839:1;30831:6;30827:14;30820:58;30912:3;30907:2;30899:6;30895:15;30888:28;30703:220;:::o;30929:366::-;31071:3;31092:67;31156:2;31151:3;31092:67;:::i;:::-;31085:74;;31168:93;31257:3;31168:93;:::i;:::-;31286:2;31281:3;31277:12;31270:19;;30929:366;;;:::o;31301:419::-;31467:4;31505:2;31494:9;31490:18;31482:26;;31554:9;31548:4;31544:20;31540:1;31529:9;31525:17;31518:47;31582:131;31708:4;31582:131;:::i;:::-;31574:139;;31301:419;;;:::o

Swarm Source

ipfs://45e02c3312d2ccee3e53a2cc2a02bcdbf5b76b461f0d9097281c5a4a8c1166ae

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.