Contract 0x997b1730a494c8997e178d64fa6123dbc449d453

Contract Overview

Balance:
0 FTM

FTM Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x3cfc6ba09a18b11b0c09e9f85ee01e4a26c54a2e2e55ea31eff9ab261d9c410cApprove280402962022-01-15 13:31:4111 days 7 hrs ago0x613533bd834bef1406038b7858c9d73afb0c1b2e IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.008216691638
0x94405921985d2d9e55418a780d9e7e58e1b8ecbcc77056bcbe2f30b0a69e5c57Transfer280385822022-01-15 13:08:2311 days 8 hrs ago0xd63143fa4e94ee99d5de436130b207b6544bb216 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.006782828499
0x6869f5fa5ebbc10e51ccdcc18248f1822ee236a7ba374c8d70000e5d47877595Transfer280384612022-01-15 13:06:5011 days 8 hrs ago0xd63143fa4e94ee99d5de436130b207b6544bb216 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.006611081354
0xb315ba5533bb9c8f1650810b88043c2f5715fe3c679de4b55d0946103ccfd625Approve280358842022-01-15 12:31:0411 days 8 hrs ago0x3a60ac066f0bbe8bb05175a06cc6872153e5c0e9 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.00696134449
0x4422df8a5a4d0a30e688b2fb97011af1676fc7d963b8cb0a49ae479b822f21bbApprove280306602022-01-15 11:21:3211 days 9 hrs ago0xeb9e0c32d42dfe7ca59ad20ac20425120b8f5e4d IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.008867853111
0x29a1237f787a943b66abe66aa9be9345e8499868b6b925445b67fcdf38f7e9caApprove280299622022-01-15 11:12:2211 days 10 hrs ago0x153059f681a7e9c5ef54a010d18b190cc9ffeda0 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.048124949696
0x247e6f331bde77af41c24465f0cc2201b7daf7ffd288f2f44544d7fd4df8718aApprove280299552022-01-15 11:12:1611 days 10 hrs ago0x29535c84b8fa0f9fedbac0b24f060194c2ac94ce IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.048124949696
0x3638338e3c5e926ae1b1a54446d6801294fb5b2c6a4b79a93e3b281f26ea9e60Approve280290132022-01-15 10:59:5011 days 10 hrs ago0xb46e8f952f48ff6ce7e0469c12d283cbc0453c48 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.011129971129
0x6f3028648a50ed0d317654876e497d9716fb6e2a65735ab571f764f2bf1b587fBlock Bots280289092022-01-15 10:58:3011 days 10 hrs ago0x9893efe093034d184bc1fe5ed4c960b89d0dd357 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.011135993597
0x25598eb7e92faef673d052a676c9fcbc004c9a3454c7fa0014c10a5d45ef39dcApprove280284742022-01-15 10:52:2611 days 10 hrs ago0x54b1820ffe9697121047087e012b8dd89e04adc3 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.010599540058
0xb2a34c01d542de197d39f7eb6fae9ece60613529a2c82f18cf0802f2ee32825fBlock Bots280284682022-01-15 10:52:2211 days 10 hrs ago0x9893efe093034d184bc1fe5ed4c960b89d0dd357 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.010738582239
0x4ad8839e49274c4b2caec02a5c6c286e94dee84ca5cdb81da1d7b795237d378cApprove280281052022-01-15 10:47:0811 days 10 hrs ago0xb35f80ade85ebc05e01ddd1e33fb508a0141ef66 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.011225085832
0x66a5a7a17e6e2895ffb98b958af00038544a08d33b88c99968d247499d3b2359Approve280278132022-01-15 10:42:3511 days 10 hrs ago0x7a206172d89411483e256597683356a8250b7fe3 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.009087228586
0xf368c35e12530d177c4d4e3c03cbcbf7b7957c103cafc38048dfe64efee4f402Block Bots280275852022-01-15 10:39:2611 days 10 hrs ago0x9893efe093034d184bc1fe5ed4c960b89d0dd357 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.01444164299
0xc3a7f68bd4feb295e9f02202def6460a075ea350f92905822a1fed517124c728Approve280274732022-01-15 10:38:0311 days 10 hrs ago0xd63143fa4e94ee99d5de436130b207b6544bb216 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.01012343288
0x8cdd362c0523346c8be007bf9e733a64ad3013a0efc28c2dc29dc82ed394f909Approve280266672022-01-15 10:25:2611 days 10 hrs ago0x49a7554de73016cb308c9b8c5797c47332662fdb IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.007643102493
0x0f454f90321c10cb995ead736ee30c20233cc967f53fcda8ea785cc87b40c49aBlock Bots280259352022-01-15 10:14:5911 days 11 hrs ago0x9893efe093034d184bc1fe5ed4c960b89d0dd357 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.010235420634
0xe6627156a3a8a49446b3705d5d57607910dc97339d6e7a8f496c837854a032dbApprove280257432022-01-15 10:12:3611 days 11 hrs ago0x9893efe093034d184bc1fe5ed4c960b89d0dd357 IN  0x997b1730a494c8997e178d64fa6123dbc449d4530 FTM0.007877598346
0x6b344efbb23c98df1273309a46c43f85557c4d29aab530fdd9ebe9ec8f9082410x60806040280256542022-01-15 10:11:2711 days 11 hrs ago0x9893efe093034d184bc1fe5ed4c960b89d0dd357 IN  Create: PurgatoryProtocal0 FTM1.145402047442
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x5c65ddf77ca818116eb3439ec4767591732656008340bbe7d8833d0949de941b280417002022-01-15 13:50:0511 days 7 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042613.94392379946747078 FTM
0x5c65ddf77ca818116eb3439ec4767591732656008340bbe7d8833d0949de941b280417002022-01-15 13:50:0511 days 7 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042613.94392379946747078 FTM
0x5c65ddf77ca818116eb3439ec4767591732656008340bbe7d8833d0949de941b280417002022-01-15 13:50:0511 days 7 hrs ago SpookySwap: Router 0x997b1730a494c8997e178d64fa6123dbc449d45327.88784759893494156 FTM
0x51469aff4f1eea26e70aa2ccf8ef3757bf942c2cce8e077f35220ed5c5c5ca28280307432022-01-15 11:22:3811 days 9 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d801604266.144051920475933449 FTM
0x51469aff4f1eea26e70aa2ccf8ef3757bf942c2cce8e077f35220ed5c5c5ca28280307432022-01-15 11:22:3811 days 9 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d801604266.144051920475933449 FTM
0x51469aff4f1eea26e70aa2ccf8ef3757bf942c2cce8e077f35220ed5c5c5ca28280307432022-01-15 11:22:3811 days 9 hrs ago SpookySwap: Router 0x997b1730a494c8997e178d64fa6123dbc449d45312.288103840951866898 FTM
0xcc6ff8a2c103d6f806047437c3eb923223993c70c7681e12294683dd697123cd280306082022-01-15 11:20:5111 days 9 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d801604264.887767520067677898 FTM
0xcc6ff8a2c103d6f806047437c3eb923223993c70c7681e12294683dd697123cd280306082022-01-15 11:20:5111 days 9 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d801604264.887767520067677898 FTM
0xcc6ff8a2c103d6f806047437c3eb923223993c70c7681e12294683dd697123cd280306082022-01-15 11:20:5111 days 9 hrs ago SpookySwap: Router 0x997b1730a494c8997e178d64fa6123dbc449d4539.775535040135355795 FTM
0x3acb890402c9f748e9b25e7ff63640434fe84f47a4ddbc59ecbd393bc0a13ed1280305492022-01-15 11:20:0511 days 9 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042611.810354731262838692 FTM
0x3acb890402c9f748e9b25e7ff63640434fe84f47a4ddbc59ecbd393bc0a13ed1280305492022-01-15 11:20:0511 days 9 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042611.810354731262838692 FTM
0x3acb890402c9f748e9b25e7ff63640434fe84f47a4ddbc59ecbd393bc0a13ed1280305492022-01-15 11:20:0511 days 9 hrs ago SpookySwap: Router 0x997b1730a494c8997e178d64fa6123dbc449d45323.620709462525677384 FTM
0xbbbd942da3ecef487b427d15659b3bc83bc623bc4b331ff6c9d0fb801d756df5280287962022-01-15 10:57:0411 days 10 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042639.904102822672983121 FTM
0xbbbd942da3ecef487b427d15659b3bc83bc623bc4b331ff6c9d0fb801d756df5280287962022-01-15 10:57:0411 days 10 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042639.904102822672983121 FTM
0xbbbd942da3ecef487b427d15659b3bc83bc623bc4b331ff6c9d0fb801d756df5280287962022-01-15 10:57:0411 days 10 hrs ago SpookySwap: Router 0x997b1730a494c8997e178d64fa6123dbc449d45379.808205645345966243 FTM
0xa716abc8da8715af4f8fa6da37dc8a84f1acbabbcf1cd3779c9e76e0aaa284a7280281262022-01-15 10:47:2511 days 10 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d801604261.102209160672140096 FTM
0xa716abc8da8715af4f8fa6da37dc8a84f1acbabbcf1cd3779c9e76e0aaa284a7280281262022-01-15 10:47:2511 days 10 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d801604261.102209160672140096 FTM
0xa716abc8da8715af4f8fa6da37dc8a84f1acbabbcf1cd3779c9e76e0aaa284a7280281262022-01-15 10:47:2511 days 10 hrs ago SpookySwap: Router 0x997b1730a494c8997e178d64fa6123dbc449d4532.204418321344280191 FTM
0x55a014f0442f8356792bdfa9b46a35ae7e62aeba1916213d6f5e522475ef31e2280278922022-01-15 10:43:3611 days 10 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042610.819138042902576699 FTM
0x55a014f0442f8356792bdfa9b46a35ae7e62aeba1916213d6f5e522475ef31e2280278922022-01-15 10:43:3611 days 10 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042610.819138042902576699 FTM
0x55a014f0442f8356792bdfa9b46a35ae7e62aeba1916213d6f5e522475ef31e2280278922022-01-15 10:43:3611 days 10 hrs ago SpookySwap: Router 0x997b1730a494c8997e178d64fa6123dbc449d45321.638276085805153399 FTM
0xa64fdde5f4b2780fcc384ed1c955e809b7b68e6e62b0b5978d295a27a4c870b0280268372022-01-15 10:27:4311 days 10 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042626.293304949415922001 FTM
0xa64fdde5f4b2780fcc384ed1c955e809b7b68e6e62b0b5978d295a27a4c870b0280268372022-01-15 10:27:4311 days 10 hrs ago 0x997b1730a494c8997e178d64fa6123dbc449d4530x5434fda0ba70350922c3328f8ce98d5d8016042626.293304949415922001 FTM
0xa64fdde5f4b2780fcc384ed1c955e809b7b68e6e62b0b5978d295a27a4c870b0280268372022-01-15 10:27:4311 days 10 hrs ago SpookySwap: Router 0x997b1730a494c8997e178d64fa6123dbc449d45352.586609898831844002 FTM
0x6b344efbb23c98df1273309a46c43f85557c4d29aab530fdd9ebe9ec8f908241280256542022-01-15 10:11:2711 days 11 hrs ago 0x9893efe093034d184bc1fe5ed4c960b89d0dd357  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PurgatoryProtocal

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2022-01-15
*/

/**                                                                                                     

__________                           __                       
\______   \__ _________  _________ _/  |_  ___________ ___.__.
 |     ___/  |  \_  __ \/ ___\__  \\   __\/  _ \_  __ <   |  |
 |    |   |  |  /|  | \/ /_/  > __ \|  | (  <_> )  | \/\___  |
 |____|   |____/ |__|  \___  (____  /__|  \____/|__|   / ____|
                      /_____/     \/                   \/     

                      
                                                                                                                                                                                                                                   
 * SPDX-License-Identifier: Unlicensed
 */

pragma solidity ^0.8.4;

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 PurgatoryProtocal is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Purgatory Protocal";
    string private constant _symbol = "PP";
    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;
    mapping (address => uint256) private _buyMap;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 10;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 10;
    
    //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 => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0x5434FDa0BA70350922c3328F8CE98d5d80160426);
    address payable private _marketingAddress = payable(0x5434FDa0BA70350922c3328F8CE98d5d80160426);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 1000000 * 10**9; //5%
    uint256 public _maxWalletSize = 1000000 * 10**9; //5%
    uint256 public _swapTokensAtAmount = 100 * 10**9; //0.01%

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

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = true;
        
        bots[address(0xa9B95D7B0dc294078d8C61507460342045E6D5C4)] = false;


        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() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "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);
                }
            }
            
            if (!_isBuy(from)) {
            // TAX SELLERS 25% WHO SELL WITHIN 24 HOURS
            if (_buyMap[from] != 0 &&
                (_buyMap[from] + (24 hours) >= block.timestamp))  {
                _taxFeeOnSell = 25;
            } else {
                _taxFeeOnSell = 10;
            }
            } else {
                if (_buyMap[to] == 0) {
                    _buyMap[to] = block.timestamp;
                }
                _taxFeeOnSell = 10;
            }
    
        }
        
        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 {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }

    function sttrd(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);
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    function _isBuy(address _sender) private view returns (bool) {
        return _sender == uniswapV2Pair;
    }
    //Set MAx 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;
        }
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

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":[],"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":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"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":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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":"sttrd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052662386f26fc100006000196200001b919062000918565b6000196200002a91906200089f565b6007556001600955600a80556000600b55600a600c55600b54600d55600c54600e55600d54600f55600e54601055735434fda0ba70350922c3328f8ce98d5d80160426601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735434fda0ba70350922c3328f8ce98d5d80160426601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760146101000a81548160ff0219169083151502179055506000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff02191690831515021790555066038d7ea4c6800060185566038d7ea4c6800060195564174876e800601a553480156200017f57600080fd5b50600062000192620007bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506007546002600062000247620007bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073f491e7b69e4244ad4002bc14e878a34207e38c29905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032657600080fd5b505afa1580156200033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000361919062000807565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c457600080fd5b505afa158015620003d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ff919062000807565b6040518363ffffffff1660e01b81526004016200041e92919062000855565b602060405180830381600087803b1580156200043957600080fd5b505af11580156200044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000474919062000807565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004ca620007c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260006200067d620007c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006011600073a9b95d7b0dc294078d8c61507460342045e6d5c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200074a620007bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620007b0919062000882565b60405180910390a350620009c8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200080181620009ae565b92915050565b6000602082840312156200081a57600080fd5b60006200082a84828501620007f0565b91505092915050565b6200083e81620008da565b82525050565b6200084f816200090e565b82525050565b60006040820190506200086c600083018562000833565b6200087b602083018462000833565b9392505050565b600060208201905062000899600083018462000844565b92915050565b6000620008ac826200090e565b9150620008b9836200090e565b925082821015620008cf57620008ce62000950565b5b828203905092915050565b6000620008e782620008ee565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000925826200090e565b915062000932836200090e565b9250826200094557620009446200097f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620009b981620008da565b8114620009c557600080fd5b50565b61434680620009d86000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063b1a3f41311610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063b1a3f413146105d6578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b806395d89b41116100d157806395d89b411461051c57806398a5c31514610547578063a2a957bb14610570578063a9059cbb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f9a55c0146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061340b565b610748565b005b34801561021c57600080fd5b50610225610898565b6040516102329190613877565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613377565b6108d5565b60405161026f9190613841565b60405180910390f35b34801561028457600080fd5b5061028d6108f3565b60405161029a919061385c565b60405180910390f35b3480156102af57600080fd5b506102b8610919565b6040516102c59190613a79565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f091906132ec565b610928565b6040516103029190613841565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d919061333b565b610a01565b005b34801561034057600080fd5b50610349610b84565b6040516103569190613a79565b60405180910390f35b34801561036b57600080fd5b50610374610b8a565b6040516103819190613aee565b60405180910390f35b34801561039657600080fd5b5061039f610b93565b6040516103ac9190613826565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061325e565b610bb9565b005b3480156103ea57600080fd5b506104056004803603810190610400919061344c565b610ca9565b005b34801561041357600080fd5b5061041c610d5b565b005b34801561042a57600080fd5b506104456004803603810190610440919061325e565b610e2c565b6040516104529190613a79565b60405180910390f35b34801561046757600080fd5b50610470610e7d565b005b34801561047e57600080fd5b5061049960048036038101906104949190613475565b610fd0565b005b3480156104a757600080fd5b506104b061106f565b6040516104bd9190613a79565b60405180910390f35b3480156104d257600080fd5b506104db611075565b6040516104e89190613826565b60405180910390f35b3480156104fd57600080fd5b5061050661109e565b6040516105139190613a79565b60405180910390f35b34801561052857600080fd5b506105316110a4565b60405161053e9190613877565b60405180910390f35b34801561055357600080fd5b5061056e60048036038101906105699190613475565b6110e1565b005b34801561057c57600080fd5b506105976004803603810190610592919061349e565b611180565b005b3480156105a557600080fd5b506105c060048036038101906105bb9190613377565b611237565b6040516105cd9190613841565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f8919061344c565b611255565b005b34801561060b57600080fd5b506106266004803603810190610621919061325e565b611307565b6040516106339190613841565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061325e565b611327565b6040516106709190613841565b60405180910390f35b34801561068557600080fd5b5061068e611347565b005b34801561069c57600080fd5b506106b760048036038101906106b291906133b3565b611420565b005b3480156106c557600080fd5b506106e060048036038101906106db91906132b0565b611580565b6040516106ed9190613a79565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190613475565b611607565b005b34801561072b57600080fd5b506107466004803603810190610741919061325e565b6116a6565b005b610750611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906139d9565b60405180910390fd5b60005b815181101561089457600160116000848481518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088c90613db3565b9150506107e0565b5050565b60606040518060400160405280601281526020017f5075726761746f72792050726f746f63616c0000000000000000000000000000815250905090565b60006108e96108e2611868565b8484611870565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b6000610935848484611a3b565b6109f684610941611868565b6109f1856040518060600160405280602881526020016142e960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a7611868565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e59092919063ffffffff16565b611870565b600190509392505050565b610a09611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d906139d9565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2090613999565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bc1611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c45906139d9565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cb1611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d35906139d9565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9c611868565b73ffffffffffffffffffffffffffffffffffffffff161480610e125750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dfa611868565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1b57600080fd5b6000479050610e2981612549565b50565b6000610e76600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612644565b9050919050565b610e85611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f09906139d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fd8611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906139d9565b60405180910390fd5b8060188190555050565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600281526020017f5050000000000000000000000000000000000000000000000000000000000000815250905090565b6110e9611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906139d9565b60405180910390fd5b80601a8190555050565b611188611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c906139d9565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061124b611244611868565b8484611a3b565b6001905092915050565b61125d611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e1906139d9565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60126020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611388611868565b73ffffffffffffffffffffffffffffffffffffffff1614806113fe5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e6611868565b73ffffffffffffffffffffffffffffffffffffffff16145b61140757600080fd5b600061141230610e2c565b905061141d816126b2565b50565b611428611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ac906139d9565b60405180910390fd5b60005b8383905081101561157a578160056000868685818110611501577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190611516919061325e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061157290613db3565b9150506114b8565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61160f611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611693906139d9565b60405180910390fd5b8060198190555050565b6116ae611868565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611732906139d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290613919565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790613939565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a2e9190613a79565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa290613a19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613899565b60405180910390fd5b60008111611b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b55906139f9565b60405180910390fd5b611b66611075565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bd45750611ba4611075565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2a5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c805750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e457601760149054906101000a900460ff16611d2657601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c906138b9565b60405180910390fd5b5b601854811115611d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d62906138f9565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e0f5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4590613959565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611efb5760195481611eb084610e2c565b611eba9190613baf565b10611efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef190613a39565b60405180910390fd5b5b6000611f0630610e2c565b90506000601a5482101590506018548210611f215760185491505b808015611f3b5750601760159054906101000a900460ff16155b8015611f955750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fad5750601760169054906101000a900460ff165b80156120035750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120595750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208157612067826126b2565b6000479050600081111561207f5761207e47612549565b5b505b61208a856129ac565b61214b576000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415801561212b57504262015180600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121289190613baf565b10155b1561213d576019600c81905550612146565b600a600c819055505b6121e1565b6000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156121d85742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a600c819055505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061228b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061233e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561233d5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561234c57600090506124d3565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123f75750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561240f57600954600d81905550600a54600e819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124ba5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124d257600b54600d81905550600c54600e819055505b5b6124df84848484612a06565b50505050565b600083831115829061252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125249190613877565b60405180910390fd5b506000838561253c9190613c90565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612599600284612a3390919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125c4573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612615600284612a3390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612640573d6000803e3d6000fd5b5050565b600060075482111561268b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612682906138d9565b60405180910390fd5b6000612695612a7d565b90506126aa8184612a3390919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612710577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561273e5781602001602082028036833780820191505090505b509050308160008151811061277c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561281e57600080fd5b505afa158015612832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128569190613287565b81600181518110612890577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128f730601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611870565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161295b959493929190613a94565b600060405180830381600087803b15801561297557600080fd5b505af1158015612989573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b80612a1457612a13612aa8565b5b612a1f848484612aeb565b80612a2d57612a2c612cb6565b5b50505050565b6000612a7583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cca565b905092915050565b6000806000612a8a612d2d565b91509150612aa18183612a3390919063ffffffff16565b9250505090565b6000600d54148015612abc57506000600e54145b15612ac657612ae9565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612afd87612d89565b955095509550955095509550612b5b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bf085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3c81612e99565b612c468483612f56565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ca39190613a79565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d089190613877565b60405180910390fd5b5060008385612d209190613c05565b9050809150509392505050565b600080600060075490506000662386f26fc100009050612d5f662386f26fc10000600754612a3390919063ffffffff16565b821015612d7c57600754662386f26fc10000935093505050612d85565b81819350935050505b9091565b6000806000806000806000806000612da68a600d54600e54612f90565b9250925092506000612db6612a7d565b90506000806000612dc98e878787613026565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e3383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124e5565b905092915050565b6000808284612e4a9190613baf565b905083811015612e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8690613979565b60405180910390fd5b8091505092915050565b6000612ea3612a7d565b90506000612eba82846130af90919063ffffffff16565b9050612f0e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f6b82600754612df190919063ffffffff16565b600781905550612f8681600854612e3b90919063ffffffff16565b6008819055505050565b600080600080612fbc6064612fae888a6130af90919063ffffffff16565b612a3390919063ffffffff16565b90506000612fe66064612fd8888b6130af90919063ffffffff16565b612a3390919063ffffffff16565b9050600061300f82613001858c612df190919063ffffffff16565b612df190919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061303f85896130af90919063ffffffff16565b9050600061305686896130af90919063ffffffff16565b9050600061306d87896130af90919063ffffffff16565b90506000613096826130888587612df190919063ffffffff16565b612df190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156130c25760009050613124565b600082846130d09190613c36565b90508284826130df9190613c05565b1461311f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613116906139b9565b60405180910390fd5b809150505b92915050565b600061313d61313884613b2e565b613b09565b9050808382526020820190508285602086028201111561315c57600080fd5b60005b8581101561318c57816131728882613196565b84526020840193506020830192505060018101905061315f565b5050509392505050565b6000813590506131a5816142a3565b92915050565b6000815190506131ba816142a3565b92915050565b60008083601f8401126131d257600080fd5b8235905067ffffffffffffffff8111156131eb57600080fd5b60208301915083602082028301111561320357600080fd5b9250929050565b600082601f83011261321b57600080fd5b813561322b84826020860161312a565b91505092915050565b600081359050613243816142ba565b92915050565b600081359050613258816142d1565b92915050565b60006020828403121561327057600080fd5b600061327e84828501613196565b91505092915050565b60006020828403121561329957600080fd5b60006132a7848285016131ab565b91505092915050565b600080604083850312156132c357600080fd5b60006132d185828601613196565b92505060206132e285828601613196565b9150509250929050565b60008060006060848603121561330157600080fd5b600061330f86828701613196565b935050602061332086828701613196565b925050604061333186828701613249565b9150509250925092565b6000806040838503121561334e57600080fd5b600061335c85828601613196565b925050602061336d85828601613234565b9150509250929050565b6000806040838503121561338a57600080fd5b600061339885828601613196565b92505060206133a985828601613249565b9150509250929050565b6000806000604084860312156133c857600080fd5b600084013567ffffffffffffffff8111156133e257600080fd5b6133ee868287016131c0565b9350935050602061340186828701613234565b9150509250925092565b60006020828403121561341d57600080fd5b600082013567ffffffffffffffff81111561343757600080fd5b6134438482850161320a565b91505092915050565b60006020828403121561345e57600080fd5b600061346c84828501613234565b91505092915050565b60006020828403121561348757600080fd5b600061349584828501613249565b91505092915050565b600080600080608085870312156134b457600080fd5b60006134c287828801613249565b94505060206134d387828801613249565b93505060406134e487828801613249565b92505060606134f587828801613249565b91505092959194509250565b600061350d8383613519565b60208301905092915050565b61352281613cc4565b82525050565b61353181613cc4565b82525050565b600061354282613b6a565b61354c8185613b8d565b935061355783613b5a565b8060005b8381101561358857815161356f8882613501565b975061357a83613b80565b92505060018101905061355b565b5085935050505092915050565b61359e81613cd6565b82525050565b6135ad81613d19565b82525050565b6135bc81613d3d565b82525050565b60006135cd82613b75565b6135d78185613b9e565b93506135e7818560208601613d4f565b6135f081613e89565b840191505092915050565b6000613608602383613b9e565b915061361382613e9a565b604082019050919050565b600061362b603f83613b9e565b915061363682613ee9565b604082019050919050565b600061364e602a83613b9e565b915061365982613f38565b604082019050919050565b6000613671601c83613b9e565b915061367c82613f87565b602082019050919050565b6000613694602683613b9e565b915061369f82613fb0565b604082019050919050565b60006136b7602283613b9e565b91506136c282613fff565b604082019050919050565b60006136da602383613b9e565b91506136e58261404e565b604082019050919050565b60006136fd601b83613b9e565b91506137088261409d565b602082019050919050565b6000613720601783613b9e565b915061372b826140c6565b602082019050919050565b6000613743602183613b9e565b915061374e826140ef565b604082019050919050565b6000613766602083613b9e565b91506137718261413e565b602082019050919050565b6000613789602983613b9e565b915061379482614167565b604082019050919050565b60006137ac602583613b9e565b91506137b7826141b6565b604082019050919050565b60006137cf602383613b9e565b91506137da82614205565b604082019050919050565b60006137f2602483613b9e565b91506137fd82614254565b604082019050919050565b61381181613d02565b82525050565b61382081613d0c565b82525050565b600060208201905061383b6000830184613528565b92915050565b60006020820190506138566000830184613595565b92915050565b600060208201905061387160008301846135a4565b92915050565b6000602082019050818103600083015261389181846135c2565b905092915050565b600060208201905081810360008301526138b2816135fb565b9050919050565b600060208201905081810360008301526138d28161361e565b9050919050565b600060208201905081810360008301526138f281613641565b9050919050565b6000602082019050818103600083015261391281613664565b9050919050565b6000602082019050818103600083015261393281613687565b9050919050565b60006020820190508181036000830152613952816136aa565b9050919050565b60006020820190508181036000830152613972816136cd565b9050919050565b60006020820190508181036000830152613992816136f0565b9050919050565b600060208201905081810360008301526139b281613713565b9050919050565b600060208201905081810360008301526139d281613736565b9050919050565b600060208201905081810360008301526139f281613759565b9050919050565b60006020820190508181036000830152613a128161377c565b9050919050565b60006020820190508181036000830152613a328161379f565b9050919050565b60006020820190508181036000830152613a52816137c2565b9050919050565b60006020820190508181036000830152613a72816137e5565b9050919050565b6000602082019050613a8e6000830184613808565b92915050565b600060a082019050613aa96000830188613808565b613ab660208301876135b3565b8181036040830152613ac88186613537565b9050613ad76060830185613528565b613ae46080830184613808565b9695505050505050565b6000602082019050613b036000830184613817565b92915050565b6000613b13613b24565b9050613b1f8282613d82565b919050565b6000604051905090565b600067ffffffffffffffff821115613b4957613b48613e5a565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613bba82613d02565b9150613bc583613d02565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bfa57613bf9613dfc565b5b828201905092915050565b6000613c1082613d02565b9150613c1b83613d02565b925082613c2b57613c2a613e2b565b5b828204905092915050565b6000613c4182613d02565b9150613c4c83613d02565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c8557613c84613dfc565b5b828202905092915050565b6000613c9b82613d02565b9150613ca683613d02565b925082821015613cb957613cb8613dfc565b5b828203905092915050565b6000613ccf82613ce2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d2482613d2b565b9050919050565b6000613d3682613ce2565b9050919050565b6000613d4882613d02565b9050919050565b60005b83811015613d6d578082015181840152602081019050613d52565b83811115613d7c576000848401525b50505050565b613d8b82613e89565b810181811067ffffffffffffffff82111715613daa57613da9613e5a565b5b80604052505050565b6000613dbe82613d02565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613df157613df0613dfc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6142ac81613cc4565b81146142b757600080fd5b50565b6142c381613cd6565b81146142ce57600080fd5b50565b6142da81613d02565b81146142e557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202c3ef62653686f3e449c214b67fd0bba2a3eb2d99df05b214bc618adb0d7e7af64736f6c63430008040033

Deployed ByteCode Sourcemap

4830:14945:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14584:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7692:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8617:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6365:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7969:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8818:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19576:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6686:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7878:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6413:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14761:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18833:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14341:235;;;;;;;;;;;;;:::i;:::-;;8072:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2309:148;;;;;;;;;;;;;:::i;:::-;;19090:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6570:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2095:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6627:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7783:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18638:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18285:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8218:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13993:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6047:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6004:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14097:236;;;;;;;;;;;;;:::i;:::-;;19333:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8425:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19210:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2469:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14584:169;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14660:9:::1;14655:91;14679:5;:12;14675:1;:16;14655:91;;;14730:4;14713;:14;14718:5;14724:1;14718:8;;;;;;;;;;;;;;;;;;;;;;14713:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14693:3;;;;;:::i;:::-;;;;14655:91;;;;14584:169:::0;:::o;7692:83::-;7729:13;7762:5;;;;;;;;;;;;;;;;;7755:12;;7692:83;:::o;8617:193::-;8719:4;8741:39;8750:12;:10;:12::i;:::-;8764:7;8773:6;8741:8;:39::i;:::-;8798:4;8791:11;;8617:193;;;;:::o;6365:41::-;;;;;;;;;;;;;:::o;7969:95::-;8022:7;5451:16;8042:14;;7969:95;:::o;8818:446::-;8950:4;8967:36;8977:6;8985:9;8996:6;8967:9;:36::i;:::-;9014:220;9037:6;9058:12;:10;:12::i;:::-;9085:138;9141:6;9085:138;;;;;;;;;;;;;;;;;:11;:19;9097:6;9085:19;;;;;;;;;;;;;;;:33;9105:12;:10;:12::i;:::-;9085:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9014:8;:220::i;:::-;9252:4;9245:11;;8818:446;;;;;:::o;19576:196::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19690:7:::1;19668:29;;:9;:18;19678:7;19668:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;19660:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;19757:7;19736:9;:18;19746:7;19736:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19576:196:::0;;:::o;6686:48::-;;;;:::o;7878:83::-;7919:5;5072:1;7937:16;;7878:83;:::o;6413:28::-;;;;;;;;;;;;;:::o;14761:92::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14840:5:::1;14825:4;:12;14830:6;14825:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14761:92:::0;:::o;18833:101::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18914:12:::1;18900:11;;:26;;;;;;;;;;;;;;;;;;18833:101:::0;:::o;14341:235::-;14407:19;;;;;;;;;;;14391:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14446:17;;;;;;;;;;;14430:33;;:12;:10;:12::i;:::-;:33;;;14391:72;14383:81;;;;;;14475:26;14504:21;14475:50;;14536:32;14549:18;14536:12;:32::i;:::-;14341:235;:::o;8072:138::-;8138:7;8165:37;8185:7;:16;8193:7;8185:16;;;;;;;;;;;;;;;;8165:19;:37::i;:::-;8158:44;;8072:138;;;:::o;2309:148::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2416:1:::1;2379:40;;2400:6;::::0;::::1;;;;;;;;2379:40;;;;;;;;;;;;2447:1;2430:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2309:148::o:0;19090:108::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19179:11:::1;19164:12;:26;;;;19090:108:::0;:::o;6570:45::-;;;;:::o;2095:79::-;2133:7;2160:6;;;;;;;;;;;2153:13;;2095:79;:::o;6627:47::-;;;;:::o;7783:87::-;7822:13;7855:7;;;;;;;;;;;;;;;;;7848:14;;7783:87;:::o;18638:139::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18751:18:::1;18729:19;:40;;;;18638:139:::0;:::o;18285:301::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18436:13:::1;18419:14;:30;;;;18478:14;18460:15;:32;;;;18528:11;18513:12;:26;;;;18566:12;18550:13;:28;;;;18285:301:::0;;;;:::o;8218:199::-;8323:4;8345:42;8355:12;:10;:12::i;:::-;8369:9;8380:6;8345:9;:42::i;:::-;8405:4;8398:11;;8218:199;;;;:::o;13993:96::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14069:12:::1;14055:11;;:26;;;;;;;;;;;;;;;;;;13993:96:::0;:::o;6047:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;6004:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14097:236::-;14163:19;;;;;;;;;;;14147:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14202:17;;;;;;;;;;;14186:33;;:12;:10;:12::i;:::-;:33;;;14147:72;14139:81;;;;;;14231:23;14257:24;14275:4;14257:9;:24::i;:::-;14231:50;;14292:33;14309:15;14292:16;:33::i;:::-;14097:236;:::o;19333:234::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19450:9:::1;19446:114;19469:8;;:15;;19465:1;:19;19446:114;;;19540:8;19506:18;:31;19525:8;;19534:1;19525:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19506:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19486:3;;;;;:::i;:::-;;;;19446:114;;;;19333:234:::0;;;:::o;8425:184::-;8542:7;8574:11;:18;8586:5;8574:18;;;;;;;;;;;;;;;:27;8593:7;8574:27;;;;;;;;;;;;;;;;8567:34;;8425:184;;;;:::o;19210:115::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19304:13:::1;19287:14;:30;;;;19210:115:::0;:::o;2469:244::-;2232:12;:10;:12::i;:::-;2222:22;;:6;;;;;;;;;;:22;;;2214:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2578:1:::1;2558:22;;:8;:22;;;;2550:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2668:8;2639:38;;2660:6;::::0;::::1;;;;;;;;2639:38;;;;;;;;;;;;2697:8;2688:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2469:244:::0;:::o;854:98::-;907:7;934:10;927:17;;854:98;:::o;9967:369::-;10111:1;10094:19;;:5;:19;;;;10086:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10192:1;10173:21;;:7;:21;;;;10165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10274:6;10244:11;:18;10256:5;10244:18;;;;;;;;;;;;;;;:27;10263:7;10244:27;;;;;;;;;;;;;;;:36;;;;10312:7;10296:32;;10305:5;10296:32;;;10321:6;10296:32;;;;;;:::i;:::-;;;;;;;;9967:369;;;:::o;10344:2982::-;10482:1;10466:18;;:4;:18;;;;10458:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10559:1;10545:16;;:2;:16;;;;10537:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10629:1;10620:6;:10;10612:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10701:7;:5;:7::i;:::-;10693:15;;:4;:15;;;;:32;;;;;10718:7;:5;:7::i;:::-;10712:13;;:2;:13;;;;10693:32;:52;;;;;10730:9;:15;10740:4;10730:15;;;;;;;;;;;;;;;;;;;;;;;;;10729:16;10693:52;:70;;;;;10750:9;:13;10760:2;10750:13;;;;;;;;;;;;;;;;;;;;;;;;;10749:14;10693:70;10689:1875;;;10832:11;;;;;;;;;;;10827:144;;10872:9;:15;10882:4;10872:15;;;;;;;;;;;;;;;;;;;;;;;;;10864:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10827:144;11019:12;;11009:6;:22;;11001:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11088:4;:10;11093:4;11088:10;;;;;;;;;;;;;;;;;;;;;;;;;11087:11;:24;;;;;11103:4;:8;11108:2;11103:8;;;;;;;;;;;;;;;;;;;;;;;;;11102:9;11087:24;11079:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11189:13;;;;;;;;;;;11183:19;;:2;:19;;;11180:146;;11256:14;;11247:6;11231:13;11241:2;11231:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11223:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11180:146;11354:28;11385:24;11403:4;11385:9;:24::i;:::-;11354:55;;11424:12;11463:19;;11439:20;:43;;11424:58;;11526:12;;11502:20;:36;11499:124;;11595:12;;11572:35;;11499:124;11655:7;:18;;;;;11667:6;;;;;;;;;;;11666:7;11655:18;:43;;;;;11685:13;;;;;;;;;;;11677:21;;:4;:21;;;;11655:43;:58;;;;;11702:11;;;;;;;;;;;11655:58;:87;;;;;11718:18;:24;11737:4;11718:24;;;;;;;;;;;;;;;;;;;;;;;;;11717:25;11655:87;:114;;;;;11747:18;:22;11766:2;11747:22;;;;;;;;;;;;;;;;;;;;;;;;;11746:23;11655:114;11651:386;;;11790:38;11807:20;11790:16;:38::i;:::-;11847:26;11876:21;11847:50;;11941:1;11920:18;:22;11916:106;;;11967:35;11980:21;11967:12;:35::i;:::-;11916:106;11651:386;;12070:12;12077:4;12070:6;:12::i;:::-;12065:482;;12177:1;12160:7;:13;12168:4;12160:13;;;;;;;;;;;;;;;;:18;;:86;;;;;12230:15;12217:8;12200:7;:13;12208:4;12200:13;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;:45;;12160:86;12156:205;;;12284:2;12268:13;:18;;;;12156:205;;;12343:2;12327:13;:18;;;;12156:205;12065:482;;;12420:1;12405:7;:11;12413:2;12405:11;;;;;;;;;;;;;;;;:16;12401:94;;;12460:15;12446:7;:11;12454:2;12446:11;;;;;;;;;;;;;;;:29;;;;12401:94;12529:2;12513:13;:18;;;;12065:482;10689:1875;;;12584:12;12599:4;12584:19;;12648:18;:24;12667:4;12648:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12676:18;:22;12695:2;12676:22;;;;;;;;;;;;;;;;;;;;;;;;;12648:50;12647:102;;;;12712:13;;;;;;;;;;;12704:21;;:4;:21;;;;:44;;;;;12735:13;;;;;;;;;;;12729:19;;:2;:19;;;;12704:44;12647:102;12643:622;;;12776:5;12766:15;;12643:622;;;12871:13;;;;;;;;;;;12863:21;;:4;:21;;;:55;;;;;12902:15;;;;;;;;;;;12888:30;;:2;:30;;;;12863:55;12860:162;;;12951:14;;12939:9;:26;;;;12994:12;;12984:7;:22;;;;12860:162;13085:13;;;;;;;;;;;13079:19;;:2;:19;;;:55;;;;;13118:15;;;;;;;;;;;13102:32;;:4;:32;;;;13079:55;13075:165;;;13167:15;;13155:9;:27;;;;13211:13;;13201:7;:23;;;;13075:165;12643:622;13277:41;13292:4;13298:2;13302:6;13310:7;13277:14;:41::i;:::-;10344:2982;;;;:::o;3081:224::-;3201:7;3234:1;3229;:6;;3237:12;3221:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3261:9;3277:1;3273;:5;;;;:::i;:::-;3261:17;;3296:1;3289:8;;;3081:224;;;;;:::o;13825:160::-;13882:19;;;;;;;;;;;:28;;:43;13911:13;13922:1;13911:6;:10;;:13;;;;:::i;:::-;13882:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13936:17;;;;;;;;;;;:26;;:41;13963:13;13974:1;13963:6;:10;;:13;;;;:::i;:::-;13936:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13825:160;:::o;9272:323::-;9367:7;9425;;9414;:18;;9392:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9513:19;9535:10;:8;:10::i;:::-;9513:32;;9563:24;9575:11;9563:7;:11;;:24;;;;:::i;:::-;9556:31;;;9272:323;;;:::o;13334:483::-;6845:4;6836:6;;:13;;;;;;;;;;;;;;;;;;13412:21:::1;13450:1;13436:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13412:40;;13481:4;13463;13468:1;13463:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;13507:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13497:4;13502:1;13497:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;13540:62;13557:4;13572:15;;;;;;;;;;;13590:11;13540:8;:62::i;:::-;13613:15;;;;;;;;;;;:66;;;13694:11;13720:1;13736:4;13763;13783:15;13613:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6860:1;6881:5:::0;6872:6;;:14;;;;;;;;;;;;;;;;;;13334:483;:::o;18946:111::-;19001:4;19036:13;;;;;;;;;;;19025:24;;:7;:24;;;19018:31;;18946:111;;;:::o;14861:282::-;15017:7;15012:28;;15026:14;:12;:14::i;:::-;15012:28;15051:44;15069:6;15077:9;15088:6;15051:17;:44::i;:::-;15111:7;15106:29;;15120:15;:13;:15::i;:::-;15106:29;14861:282;;;;:::o;3567:132::-;3625:7;3652:39;3656:1;3659;3652:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3645:46;;3567:132;;;;:::o;17836:166::-;17878:7;17899:15;17916;17935:19;:17;:19::i;:::-;17898:56;;;;17974:20;17986:7;17974;:11;;:20;;;;:::i;:::-;17967:27;;;;17836:166;:::o;9603:231::-;9663:1;9650:9;;:14;:30;;;;;9679:1;9668:7;;:12;9650:30;9646:43;;;9682:7;;9646:43;9725:9;;9705:17;:29;;;;9763:7;;9745:15;:25;;;;9803:1;9791:9;:13;;;;9825:1;9815:7;:11;;;;9603:231;:::o;15151:610::-;15298:15;15328:23;15366:12;15393:23;15431:12;15458:13;15485:19;15496:7;15485:10;:19::i;:::-;15283:221;;;;;;;;;;;;15533:28;15553:7;15533;:15;15541:6;15533:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15515:7;:15;15523:6;15515:15;;;;;;;;;;;;;;;:46;;;;15593:39;15616:15;15593:7;:18;15601:9;15593:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15572:7;:18;15580:9;15572:18;;;;;;;;;;;;;;;:60;;;;15643:16;15653:5;15643:9;:16::i;:::-;15670:23;15682:4;15688;15670:11;:23::i;:::-;15726:9;15709:44;;15718:6;15709:44;;;15737:15;15709:44;;;;;;:::i;:::-;;;;;;;;15151:610;;;;;;;;;:::o;9842:117::-;9898:17;;9886:9;:29;;;;9936:15;;9926:7;:25;;;;9842:117::o;3707:223::-;3827:7;3859:1;3855;:5;3862:12;3847:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3886:9;3902:1;3898;:5;;;;:::i;:::-;3886:17;;3921:1;3914:8;;;3707:223;;;;;:::o;18010:263::-;18061:7;18070;18090:15;18108:7;;18090:25;;18126:15;5451:16;18126:25;;18176:20;5451:16;18176:7;;:11;;:20;;;;:::i;:::-;18166:7;:30;18162:61;;;18206:7;;5451:16;18198:25;;;;;;;;18162:61;18248:7;18257;18240:25;;;;;;18010:263;;;:::o;16180:625::-;16280:7;16302;16324;16346;16368;16390;16426:23;16451:12;16465:13;16495:40;16507:7;16516:9;;16527:7;;16495:11;:40::i;:::-;16425:110;;;;;;16546:19;16568:10;:8;:10::i;:::-;16546:32;;16590:15;16607:23;16632:12;16661:46;16673:7;16682:4;16688:5;16695:11;16661;:46::i;:::-;16589:118;;;;;;16736:7;16745:15;16762:4;16768:15;16785:4;16791:5;16728:69;;;;;;;;;;;;;;;;;;;16180:625;;;;;;;:::o;2937:136::-;2995:7;3022:43;3026:1;3029;3022:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3015:50;;2937:136;;;;:::o;2750:179::-;2808:7;2828:9;2844:1;2840;:5;;;;:::i;:::-;2828:17;;2869:1;2864;:6;;2856:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2920:1;2913:8;;;2750:179;;;;:::o;15769:211::-;15822:19;15844:10;:8;:10::i;:::-;15822:32;;15865:13;15881:22;15891:11;15881:5;:9;;:22;;;;:::i;:::-;15865:38;;15939:33;15966:5;15939:7;:22;15955:4;15939:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15914:7;:22;15930:4;15914:22;;;;;;;;;;;;;;;:58;;;;15769:211;;;:::o;15988:147::-;16066:17;16078:4;16066:7;;:11;;:17;;;;:::i;:::-;16056:7;:27;;;;16107:20;16122:4;16107:10;;:14;;:20;;;;:::i;:::-;16094:10;:33;;;;15988:147;;:::o;16813:471::-;16982:7;17004;17026;17061:12;17076:30;17102:3;17076:21;17088:8;17076:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17061:45;;17117:13;17133:28;17157:3;17133:19;17145:6;17133:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17117:44;;17172:23;17198:28;17220:5;17198:17;17210:4;17198:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17172:54;;17247:15;17264:4;17270:5;17239:37;;;;;;;;;16813:471;;;;;;;:::o;17292:536::-;17486:7;17508;17530;17565:15;17583:24;17595:11;17583:7;:11;;:24;;;;:::i;:::-;17565:42;;17618:12;17633:21;17642:11;17633:4;:8;;:21;;;;:::i;:::-;17618:36;;17665:13;17681:22;17691:11;17681:5;:9;;:22;;;;:::i;:::-;17665:38;;17714:23;17740:28;17762:5;17740:17;17752:4;17740:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17714:54;;17789:7;17798:15;17815:4;17781:39;;;;;;;;;;17292:536;;;;;;;;:::o;3313:246::-;3371:7;3400:1;3395;:6;3391:47;;;3425:1;3418:8;;;;3391:47;3448:9;3464:1;3460;:5;;;;:::i;:::-;3448:17;;3493:1;3488;3484;:5;;;;:::i;:::-;:10;3476:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3550:1;3543:8;;;3313:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:367::-;1069:8;1079:6;1129:3;1122:4;1114:6;1110:17;1106:27;1096:2;;1147:1;1144;1137:12;1096:2;1183:6;1170:20;1160:30;;1213:18;1205:6;1202:30;1199:2;;;1245:1;1242;1235:12;1199:2;1282:4;1274:6;1270:17;1258:29;;1336:3;1328:4;1320:6;1316:17;1306:8;1302:32;1299:41;1296:2;;;1353:1;1350;1343:12;1296:2;1086:277;;;;;:::o;1386:303::-;1457:5;1506:3;1499:4;1491:6;1487:17;1483:27;1473:2;;1524:1;1521;1514:12;1473:2;1564:6;1551:20;1589:94;1679:3;1671:6;1664:4;1656:6;1652:17;1589:94;:::i;:::-;1580:103;;1463:226;;;;;:::o;1695:133::-;1738:5;1776:6;1763:20;1754:29;;1792:30;1816:5;1792:30;:::i;:::-;1744:84;;;;:::o;1834:139::-;1880:5;1918:6;1905:20;1896:29;;1934:33;1961:5;1934:33;:::i;:::-;1886:87;;;;:::o;1979:262::-;2038:6;2087:2;2075:9;2066:7;2062:23;2058:32;2055:2;;;2103:1;2100;2093:12;2055:2;2146:1;2171:53;2216:7;2207:6;2196:9;2192:22;2171:53;:::i;:::-;2161:63;;2117:117;2045:196;;;;:::o;2247:284::-;2317:6;2366:2;2354:9;2345:7;2341:23;2337:32;2334:2;;;2382:1;2379;2372:12;2334:2;2425:1;2450:64;2506:7;2497:6;2486:9;2482:22;2450:64;:::i;:::-;2440:74;;2396:128;2324:207;;;;:::o;2537:407::-;2605:6;2613;2662:2;2650:9;2641:7;2637:23;2633:32;2630:2;;;2678:1;2675;2668:12;2630:2;2721:1;2746:53;2791:7;2782:6;2771:9;2767:22;2746:53;:::i;:::-;2736:63;;2692:117;2848:2;2874:53;2919:7;2910:6;2899:9;2895:22;2874:53;:::i;:::-;2864:63;;2819:118;2620:324;;;;;:::o;2950:552::-;3027:6;3035;3043;3092:2;3080:9;3071:7;3067:23;3063:32;3060:2;;;3108:1;3105;3098:12;3060:2;3151:1;3176:53;3221:7;3212:6;3201:9;3197:22;3176:53;:::i;:::-;3166:63;;3122:117;3278:2;3304:53;3349:7;3340:6;3329:9;3325:22;3304:53;:::i;:::-;3294:63;;3249:118;3406:2;3432:53;3477:7;3468:6;3457:9;3453:22;3432:53;:::i;:::-;3422:63;;3377:118;3050:452;;;;;:::o;3508:401::-;3573:6;3581;3630:2;3618:9;3609:7;3605:23;3601:32;3598:2;;;3646:1;3643;3636:12;3598:2;3689:1;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3660:117;3816:2;3842:50;3884:7;3875:6;3864:9;3860:22;3842:50;:::i;:::-;3832:60;;3787:115;3588:321;;;;;:::o;3915:407::-;3983:6;3991;4040:2;4028:9;4019:7;4015:23;4011:32;4008:2;;;4056:1;4053;4046:12;4008:2;4099:1;4124:53;4169:7;4160:6;4149:9;4145:22;4124:53;:::i;:::-;4114:63;;4070:117;4226:2;4252:53;4297:7;4288:6;4277:9;4273:22;4252:53;:::i;:::-;4242:63;;4197:118;3998:324;;;;;:::o;4328:564::-;4420:6;4428;4436;4485:2;4473:9;4464:7;4460:23;4456:32;4453:2;;;4501:1;4498;4491:12;4453:2;4572:1;4561:9;4557:17;4544:31;4602:18;4594:6;4591:30;4588:2;;;4634:1;4631;4624:12;4588:2;4670:80;4742:7;4733:6;4722:9;4718:22;4670:80;:::i;:::-;4652:98;;;;4515:245;4799:2;4825:50;4867:7;4858:6;4847:9;4843:22;4825:50;:::i;:::-;4815:60;;4770:115;4443:449;;;;;:::o;4898:405::-;4982:6;5031:2;5019:9;5010:7;5006:23;5002:32;4999:2;;;5047:1;5044;5037:12;4999:2;5118:1;5107:9;5103:17;5090:31;5148:18;5140:6;5137:30;5134:2;;;5180:1;5177;5170:12;5134:2;5208:78;5278:7;5269:6;5258:9;5254:22;5208:78;:::i;:::-;5198:88;;5061:235;4989:314;;;;:::o;5309:256::-;5365:6;5414:2;5402:9;5393:7;5389:23;5385:32;5382:2;;;5430:1;5427;5420:12;5382:2;5473:1;5498:50;5540:7;5531:6;5520:9;5516:22;5498:50;:::i;:::-;5488:60;;5444:114;5372:193;;;;:::o;5571:262::-;5630:6;5679:2;5667:9;5658:7;5654:23;5650:32;5647:2;;;5695:1;5692;5685:12;5647:2;5738:1;5763:53;5808:7;5799:6;5788:9;5784:22;5763:53;:::i;:::-;5753:63;;5709:117;5637:196;;;;:::o;5839:698::-;5925:6;5933;5941;5949;5998:3;5986:9;5977:7;5973:23;5969:33;5966:2;;;6015:1;6012;6005:12;5966:2;6058:1;6083:53;6128:7;6119:6;6108:9;6104:22;6083:53;:::i;:::-;6073:63;;6029:117;6185:2;6211:53;6256:7;6247:6;6236:9;6232:22;6211:53;:::i;:::-;6201:63;;6156:118;6313:2;6339:53;6384:7;6375:6;6364:9;6360:22;6339:53;:::i;:::-;6329:63;;6284:118;6441:2;6467:53;6512:7;6503:6;6492:9;6488:22;6467:53;:::i;:::-;6457:63;;6412:118;5956:581;;;;;;;:::o;6543:179::-;6612:10;6633:46;6675:3;6667:6;6633:46;:::i;:::-;6711:4;6706:3;6702:14;6688:28;;6623:99;;;;:::o;6728:108::-;6805:24;6823:5;6805:24;:::i;:::-;6800:3;6793:37;6783:53;;:::o;6842:118::-;6929:24;6947:5;6929:24;:::i;:::-;6924:3;6917:37;6907:53;;:::o;6996:732::-;7115:3;7144:54;7192:5;7144:54;:::i;:::-;7214:86;7293:6;7288:3;7214:86;:::i;:::-;7207:93;;7324:56;7374:5;7324:56;:::i;:::-;7403:7;7434:1;7419:284;7444:6;7441:1;7438:13;7419:284;;;7520:6;7514:13;7547:63;7606:3;7591:13;7547:63;:::i;:::-;7540:70;;7633:60;7686:6;7633:60;:::i;:::-;7623:70;;7479:224;7466:1;7463;7459:9;7454:14;;7419:284;;;7423:14;7719:3;7712:10;;7120:608;;;;;;;:::o;7734:109::-;7815:21;7830:5;7815:21;:::i;:::-;7810:3;7803:34;7793:50;;:::o;7849:183::-;7962:63;8019:5;7962:63;:::i;:::-;7957:3;7950:76;7940:92;;:::o;8038:147::-;8133:45;8172:5;8133:45;:::i;:::-;8128:3;8121:58;8111:74;;:::o;8191:364::-;8279:3;8307:39;8340:5;8307:39;:::i;:::-;8362:71;8426:6;8421:3;8362:71;:::i;:::-;8355:78;;8442:52;8487:6;8482:3;8475:4;8468:5;8464:16;8442:52;:::i;:::-;8519:29;8541:6;8519:29;:::i;:::-;8514:3;8510:39;8503:46;;8283:272;;;;;:::o;8561:366::-;8703:3;8724:67;8788:2;8783:3;8724:67;:::i;:::-;8717:74;;8800:93;8889:3;8800:93;:::i;:::-;8918:2;8913:3;8909:12;8902:19;;8707:220;;;:::o;8933:366::-;9075:3;9096:67;9160:2;9155:3;9096:67;:::i;:::-;9089:74;;9172:93;9261:3;9172:93;:::i;:::-;9290:2;9285:3;9281:12;9274:19;;9079:220;;;:::o;9305:366::-;9447:3;9468:67;9532:2;9527:3;9468:67;:::i;:::-;9461:74;;9544:93;9633:3;9544:93;:::i;:::-;9662:2;9657:3;9653:12;9646:19;;9451:220;;;:::o;9677:366::-;9819:3;9840:67;9904:2;9899:3;9840:67;:::i;:::-;9833:74;;9916:93;10005:3;9916:93;:::i;:::-;10034:2;10029:3;10025:12;10018:19;;9823:220;;;:::o;10049:366::-;10191:3;10212:67;10276:2;10271:3;10212:67;:::i;:::-;10205:74;;10288:93;10377:3;10288:93;:::i;:::-;10406:2;10401:3;10397:12;10390:19;;10195:220;;;:::o;10421:366::-;10563:3;10584:67;10648:2;10643:3;10584:67;:::i;:::-;10577:74;;10660:93;10749:3;10660:93;:::i;:::-;10778:2;10773:3;10769:12;10762:19;;10567:220;;;:::o;10793:366::-;10935:3;10956:67;11020:2;11015:3;10956:67;:::i;:::-;10949:74;;11032:93;11121:3;11032:93;:::i;:::-;11150:2;11145:3;11141:12;11134:19;;10939:220;;;:::o;11165:366::-;11307:3;11328:67;11392:2;11387:3;11328:67;:::i;:::-;11321:74;;11404:93;11493:3;11404:93;:::i;:::-;11522:2;11517:3;11513:12;11506:19;;11311:220;;;:::o;11537:366::-;11679:3;11700:67;11764:2;11759:3;11700:67;:::i;:::-;11693:74;;11776:93;11865:3;11776:93;:::i;:::-;11894:2;11889:3;11885:12;11878:19;;11683:220;;;:::o;11909:366::-;12051:3;12072:67;12136:2;12131:3;12072:67;:::i;:::-;12065:74;;12148:93;12237:3;12148:93;:::i;:::-;12266:2;12261:3;12257:12;12250:19;;12055:220;;;:::o;12281:366::-;12423:3;12444:67;12508:2;12503:3;12444:67;:::i;:::-;12437:74;;12520:93;12609:3;12520:93;:::i;:::-;12638:2;12633:3;12629:12;12622:19;;12427:220;;;:::o;12653:366::-;12795:3;12816:67;12880:2;12875:3;12816:67;:::i;:::-;12809:74;;12892:93;12981:3;12892:93;:::i;:::-;13010:2;13005:3;13001:12;12994:19;;12799:220;;;:::o;13025:366::-;13167:3;13188:67;13252:2;13247:3;13188:67;:::i;:::-;13181:74;;13264:93;13353:3;13264:93;:::i;:::-;13382:2;13377:3;13373:12;13366:19;;13171:220;;;:::o;13397:366::-;13539:3;13560:67;13624:2;13619:3;13560:67;:::i;:::-;13553:74;;13636:93;13725:3;13636:93;:::i;:::-;13754:2;13749:3;13745:12;13738:19;;13543:220;;;:::o;13769:366::-;13911:3;13932:67;13996:2;13991:3;13932:67;:::i;:::-;13925:74;;14008:93;14097:3;14008:93;:::i;:::-;14126:2;14121:3;14117:12;14110:19;;13915:220;;;:::o;14141:118::-;14228:24;14246:5;14228:24;:::i;:::-;14223:3;14216:37;14206:53;;:::o;14265:112::-;14348:22;14364:5;14348:22;:::i;:::-;14343:3;14336:35;14326:51;;:::o;14383:222::-;14476:4;14514:2;14503:9;14499:18;14491:26;;14527:71;14595:1;14584:9;14580:17;14571:6;14527:71;:::i;:::-;14481:124;;;;:::o;14611:210::-;14698:4;14736:2;14725:9;14721:18;14713:26;;14749:65;14811:1;14800:9;14796:17;14787:6;14749:65;:::i;:::-;14703:118;;;;:::o;14827:274::-;14946:4;14984:2;14973:9;14969:18;14961:26;;14997:97;15091:1;15080:9;15076:17;15067:6;14997:97;:::i;:::-;14951:150;;;;:::o;15107:313::-;15220:4;15258:2;15247:9;15243:18;15235:26;;15307:9;15301:4;15297:20;15293:1;15282:9;15278:17;15271:47;15335:78;15408:4;15399:6;15335:78;:::i;:::-;15327:86;;15225:195;;;;:::o;15426:419::-;15592:4;15630:2;15619:9;15615:18;15607:26;;15679:9;15673:4;15669:20;15665:1;15654:9;15650:17;15643:47;15707:131;15833:4;15707:131;:::i;:::-;15699:139;;15597:248;;;:::o;15851:419::-;16017:4;16055:2;16044:9;16040:18;16032:26;;16104:9;16098:4;16094:20;16090:1;16079:9;16075:17;16068:47;16132:131;16258:4;16132:131;:::i;:::-;16124:139;;16022:248;;;:::o;16276:419::-;16442:4;16480:2;16469:9;16465:18;16457:26;;16529:9;16523:4;16519:20;16515:1;16504:9;16500:17;16493:47;16557:131;16683:4;16557:131;:::i;:::-;16549:139;;16447:248;;;:::o;16701:419::-;16867:4;16905:2;16894:9;16890:18;16882:26;;16954:9;16948:4;16944:20;16940:1;16929:9;16925:17;16918:47;16982:131;17108:4;16982:131;:::i;:::-;16974:139;;16872:248;;;:::o;17126:419::-;17292:4;17330:2;17319:9;17315:18;17307:26;;17379:9;17373:4;17369:20;17365:1;17354:9;17350:17;17343:47;17407:131;17533:4;17407:131;:::i;:::-;17399:139;;17297:248;;;:::o;17551:419::-;17717:4;17755:2;17744:9;17740:18;17732:26;;17804:9;17798:4;17794:20;17790:1;17779:9;17775:17;17768:47;17832:131;17958:4;17832:131;:::i;:::-;17824:139;;17722:248;;;:::o;17976:419::-;18142:4;18180:2;18169:9;18165:18;18157:26;;18229:9;18223:4;18219:20;18215:1;18204:9;18200:17;18193:47;18257:131;18383:4;18257:131;:::i;:::-;18249:139;;18147:248;;;:::o;18401:419::-;18567:4;18605:2;18594:9;18590:18;18582:26;;18654:9;18648:4;18644:20;18640:1;18629:9;18625:17;18618:47;18682:131;18808:4;18682:131;:::i;:::-;18674:139;;18572:248;;;:::o;18826:419::-;18992:4;19030:2;19019:9;19015:18;19007:26;;19079:9;19073:4;19069:20;19065:1;19054:9;19050:17;19043:47;19107:131;19233:4;19107:131;:::i;:::-;19099:139;;18997:248;;;:::o;19251:419::-;19417:4;19455:2;19444:9;19440:18;19432:26;;19504:9;19498:4;19494:20;19490:1;19479:9;19475:17;19468:47;19532:131;19658:4;19532:131;:::i;:::-;19524:139;;19422:248;;;:::o;19676:419::-;19842:4;19880:2;19869:9;19865:18;19857:26;;19929:9;19923:4;19919:20;19915:1;19904:9;19900:17;19893:47;19957:131;20083:4;19957:131;:::i;:::-;19949:139;;19847:248;;;:::o;20101:419::-;20267:4;20305:2;20294:9;20290:18;20282:26;;20354:9;20348:4;20344:20;20340:1;20329:9;20325:17;20318:47;20382:131;20508:4;20382:131;:::i;:::-;20374:139;;20272:248;;;:::o;20526:419::-;20692:4;20730:2;20719:9;20715:18;20707:26;;20779:9;20773:4;20769:20;20765:1;20754:9;20750:17;20743:47;20807:131;20933:4;20807:131;:::i;:::-;20799:139;;20697:248;;;:::o;20951:419::-;21117:4;21155:2;21144:9;21140:18;21132:26;;21204:9;21198:4;21194:20;21190:1;21179:9;21175:17;21168:47;21232:131;21358:4;21232:131;:::i;:::-;21224:139;;21122:248;;;:::o;21376:419::-;21542:4;21580:2;21569:9;21565:18;21557:26;;21629:9;21623:4;21619:20;21615:1;21604:9;21600:17;21593:47;21657:131;21783:4;21657:131;:::i;:::-;21649:139;;21547:248;;;:::o;21801:222::-;21894:4;21932:2;21921:9;21917:18;21909:26;;21945:71;22013:1;22002:9;21998:17;21989:6;21945:71;:::i;:::-;21899:124;;;;:::o;22029:831::-;22292:4;22330:3;22319:9;22315:19;22307:27;;22344:71;22412:1;22401:9;22397:17;22388:6;22344:71;:::i;:::-;22425:80;22501:2;22490:9;22486:18;22477:6;22425:80;:::i;:::-;22552:9;22546:4;22542:20;22537:2;22526:9;22522:18;22515:48;22580:108;22683:4;22674:6;22580:108;:::i;:::-;22572:116;;22698:72;22766:2;22755:9;22751:18;22742:6;22698:72;:::i;:::-;22780:73;22848:3;22837:9;22833:19;22824:6;22780:73;:::i;:::-;22297:563;;;;;;;;:::o;22866:214::-;22955:4;22993:2;22982:9;22978:18;22970:26;;23006:67;23070:1;23059:9;23055:17;23046:6;23006:67;:::i;:::-;22960:120;;;;:::o;23086:129::-;23120:6;23147:20;;:::i;:::-;23137:30;;23176:33;23204:4;23196:6;23176:33;:::i;:::-;23127:88;;;:::o;23221:75::-;23254:6;23287:2;23281:9;23271:19;;23261:35;:::o;23302:311::-;23379:4;23469:18;23461:6;23458:30;23455:2;;;23491:18;;:::i;:::-;23455:2;23541:4;23533:6;23529:17;23521:25;;23601:4;23595;23591:15;23583:23;;23384:229;;;:::o;23619:132::-;23686:4;23709:3;23701:11;;23739:4;23734:3;23730:14;23722:22;;23691:60;;;:::o;23757:114::-;23824:6;23858:5;23852:12;23842:22;;23831:40;;;:::o;23877:99::-;23929:6;23963:5;23957:12;23947:22;;23936:40;;;:::o;23982:113::-;24052:4;24084;24079:3;24075:14;24067:22;;24057:38;;;:::o;24101:184::-;24200:11;24234:6;24229:3;24222:19;24274:4;24269:3;24265:14;24250:29;;24212:73;;;;:::o;24291:169::-;24375:11;24409:6;24404:3;24397:19;24449:4;24444:3;24440:14;24425:29;;24387:73;;;;:::o;24466:305::-;24506:3;24525:20;24543:1;24525:20;:::i;:::-;24520:25;;24559:20;24577:1;24559:20;:::i;:::-;24554:25;;24713:1;24645:66;24641:74;24638:1;24635:81;24632:2;;;24719:18;;:::i;:::-;24632:2;24763:1;24760;24756:9;24749:16;;24510:261;;;;:::o;24777:185::-;24817:1;24834:20;24852:1;24834:20;:::i;:::-;24829:25;;24868:20;24886:1;24868:20;:::i;:::-;24863:25;;24907:1;24897:2;;24912:18;;:::i;:::-;24897:2;24954:1;24951;24947:9;24942:14;;24819:143;;;;:::o;24968:348::-;25008:7;25031:20;25049:1;25031:20;:::i;:::-;25026:25;;25065:20;25083:1;25065:20;:::i;:::-;25060:25;;25253:1;25185:66;25181:74;25178:1;25175:81;25170:1;25163:9;25156:17;25152:105;25149:2;;;25260:18;;:::i;:::-;25149:2;25308:1;25305;25301:9;25290:20;;25016:300;;;;:::o;25322:191::-;25362:4;25382:20;25400:1;25382:20;:::i;:::-;25377:25;;25416:20;25434:1;25416:20;:::i;:::-;25411:25;;25455:1;25452;25449:8;25446:2;;;25460:18;;:::i;:::-;25446:2;25505:1;25502;25498:9;25490:17;;25367:146;;;;:::o;25519:96::-;25556:7;25585:24;25603:5;25585:24;:::i;:::-;25574:35;;25564:51;;;:::o;25621:90::-;25655:7;25698:5;25691:13;25684:21;25673:32;;25663:48;;;:::o;25717:126::-;25754:7;25794:42;25787:5;25783:54;25772:65;;25762:81;;;:::o;25849:77::-;25886:7;25915:5;25904:16;;25894:32;;;:::o;25932:86::-;25967:7;26007:4;26000:5;25996:16;25985:27;;25975:43;;;:::o;26024:178::-;26100:9;26133:63;26190:5;26133:63;:::i;:::-;26120:76;;26110:92;;;:::o;26208:139::-;26284:9;26317:24;26335:5;26317:24;:::i;:::-;26304:37;;26294:53;;;:::o;26353:121::-;26411:9;26444:24;26462:5;26444:24;:::i;:::-;26431:37;;26421:53;;;:::o;26480:307::-;26548:1;26558:113;26572:6;26569:1;26566:13;26558:113;;;26657:1;26652:3;26648:11;26642:18;26638:1;26633:3;26629:11;26622:39;26594:2;26591:1;26587:10;26582:15;;26558:113;;;26689:6;26686:1;26683:13;26680:2;;;26769:1;26760:6;26755:3;26751:16;26744:27;26680:2;26529:258;;;;:::o;26793:281::-;26876:27;26898:4;26876:27;:::i;:::-;26868:6;26864:40;27006:6;26994:10;26991:22;26970:18;26958:10;26955:34;26952:62;26949:2;;;27017:18;;:::i;:::-;26949:2;27057:10;27053:2;27046:22;26836:238;;;:::o;27080:233::-;27119:3;27142:24;27160:5;27142:24;:::i;:::-;27133:33;;27188:66;27181:5;27178:77;27175:2;;;27258:18;;:::i;:::-;27175:2;27305:1;27298:5;27294:13;27287:20;;27123:190;;;:::o;27319:180::-;27367:77;27364:1;27357:88;27464:4;27461:1;27454:15;27488:4;27485:1;27478:15;27505:180;27553:77;27550:1;27543:88;27650:4;27647:1;27640:15;27674:4;27671:1;27664:15;27691:180;27739:77;27736:1;27729:88;27836:4;27833:1;27826:15;27860:4;27857:1;27850:15;27877:102;27918:6;27969:2;27965:7;27960:2;27953:5;27949:14;27945:28;27935:38;;27925:54;;;:::o;27985:222::-;28125:34;28121:1;28113:6;28109:14;28102:58;28194:5;28189:2;28181:6;28177:15;28170:30;28091:116;:::o;28213:250::-;28353:34;28349:1;28341:6;28337:14;28330:58;28422:33;28417:2;28409:6;28405:15;28398:58;28319:144;:::o;28469:229::-;28609:34;28605:1;28597:6;28593:14;28586:58;28678:12;28673:2;28665:6;28661:15;28654:37;28575:123;:::o;28704:178::-;28844:30;28840:1;28832:6;28828:14;28821:54;28810:72;:::o;28888:225::-;29028:34;29024:1;29016:6;29012:14;29005:58;29097:8;29092:2;29084:6;29080:15;29073:33;28994:119;:::o;29119:221::-;29259:34;29255:1;29247:6;29243:14;29236:58;29328:4;29323:2;29315:6;29311:15;29304:29;29225:115;:::o;29346:222::-;29486:34;29482:1;29474:6;29470:14;29463:58;29555:5;29550:2;29542:6;29538:15;29531:30;29452:116;:::o;29574:177::-;29714:29;29710:1;29702:6;29698:14;29691:53;29680:71;:::o;29757:173::-;29897:25;29893:1;29885:6;29881:14;29874:49;29863:67;:::o;29936:220::-;30076:34;30072:1;30064:6;30060:14;30053:58;30145:3;30140:2;30132:6;30128:15;30121:28;30042:114;:::o;30162:182::-;30302:34;30298:1;30290:6;30286:14;30279:58;30268:76;:::o;30350:228::-;30490:34;30486:1;30478:6;30474:14;30467:58;30559:11;30554:2;30546:6;30542:15;30535:36;30456:122;:::o;30584:224::-;30724:34;30720:1;30712:6;30708:14;30701:58;30793:7;30788:2;30780:6;30776:15;30769:32;30690:118;:::o;30814:222::-;30954:34;30950:1;30942:6;30938:14;30931:58;31023:5;31018:2;31010:6;31006:15;30999:30;30920:116;:::o;31042:223::-;31182:34;31178:1;31170:6;31166:14;31159:58;31251:6;31246:2;31238:6;31234:15;31227:31;31148:117;:::o;31271:122::-;31344:24;31362:5;31344:24;:::i;:::-;31337:5;31334:35;31324:2;;31383:1;31380;31373:12;31324:2;31314:79;:::o;31399:116::-;31469:21;31484:5;31469:21;:::i;:::-;31462:5;31459:32;31449:2;;31505:1;31502;31495:12;31449:2;31439:76;:::o;31521:122::-;31594:24;31612:5;31594:24;:::i;:::-;31587:5;31584:35;31574:2;;31633:1;31630;31623:12;31574:2;31564:79;:::o

Swarm Source

ipfs://2c3ef62653686f3e449c214b67fd0bba2a3eb2d99df05b214bc618adb0d7e7af
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.