Contract 0x2F60EbD82577e95B8f792988D414032b46271c1c

 

Contract Overview

Balance:
0.008022201144249895 Ether

EtherValue:
$10.19 (@ $1,270.37/ETH)

Token:
 
Txn Hash
Method
Block
From
To
Value
0x169daa1d7732b80a05860eb70a7707576178f90d39719d4778c02420cd4a4925Approve159745652022-11-15 9:33:1114 days 21 hrs ago0xdfb8102610d7263796dd5d5ebd0b7387460b5fbc IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00070744 15.16537848
0x7a3a39f4ced1737c656d8e2aca0c4d440f707d6421cd37382ea2379d8c194930Approve159745582022-11-15 9:31:4714 days 21 hrs ago0xd7619d97e4d1782a80a0eb4f771488a15c256884 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00069866 14.97716086
0x82463359412a5faca6fea46b9790aeb94348f2cc3dc327181e13fd5b883bcaeeTransfer158934172022-11-04 1:38:1126 days 5 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.0009815 16.59299625
0xaaba07cf9805d2a8d74bfc7805c83170ae0178b721571261dff53dc319405eb2Transfer158934142022-11-04 1:37:3526 days 5 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00103504 17.49814033
0x31dd21b016f789013db41fb9ee70fd2379ec5cce7b31fea07a5c52b4422b729bTransfer158934132022-11-04 1:37:2326 days 5 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00102766 17.37325012
0x1ac0fff81f2ea23b08d9a12f32e3ef6782cf4e043ced4952b4192212a7a2b5b1Transfer158934102022-11-04 1:36:4726 days 5 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00093084 15.73641
0xa4fbf1d45de1ae54f5b42be53524f7e530736f90d831ceab6c0413df0f51f69aTransfer158934082022-11-04 1:36:2326 days 5 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00095566 16.15600986
0xc5200171a79554fde46c570a3c1e5bb85c3b4a62f86fa2c869696fa69fb771f3Transfer158934062022-11-04 1:35:5926 days 5 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00123512 16.19793376
0x03465070dd6844e13036a74be90af9f34b25c70908c661676a5c81fd061a9f6bTransfer158934022022-11-04 1:35:1126 days 5 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00090083 15.22922922
0xebd9212e30ea1ba423830545c88329a56593cff5decd0916b297460bdf235c8dApprove158085162022-10-23 4:47:2338 days 2 hrs ago0xd8a6e1765aa4c0a566ce9a4635e5a6e4043f93a8 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00059652 12.78751429
0xe6e6dc2600d19910fa5e7200ce289842687126519f84bf80188db03566af103fApprove158084852022-10-23 4:41:1138 days 2 hrs ago0xd8a6e1765aa4c0a566ce9a4635e5a6e4043f93a8 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00067591 14.48934273
0x36c150cc08ac848f252ec52727a2917c8681806b61add53606af5c2a69a3c583Approve157070022022-10-09 0:37:2352 days 6 hrs ago0xbb597acc466c861d35828dc6382474080775e3bd IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00099891 21.41343179
0x8d18e7ae3950ce6b48def5fc2b4837c01356a9bb5306cc8562f7d12b65985597Approve156688082022-10-03 16:25:5957 days 15 hrs ago0xa87c7fcbe80cb42573c42bc5053d8152ad52b608 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00121089 25.95766509
0xcd8847915420b9d45a76b231a831f72c9751986ba7474d2d33d71b79de056350Transfer156642612022-10-03 1:11:2358 days 6 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00048181 8.14531543
0x3b0e316b96495ec555726839dd8340e6f4eac2621796cbab5f8265eb5bd74fb9Transfer156642582022-10-03 1:10:4758 days 6 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00061137 8.0177816
0xbfe72a196b0183c7d492fecd5031489ff615c59c179c06e36e3b22670f027b8eTransfer156642552022-10-03 1:10:1158 days 6 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00060652 7.95419102
0xdc5d29c69b2481bc92c2dcd3dfa8e5d79ddf04187a6cceb5a39fa3b140ed9c68Transfer156642532022-10-03 1:09:4758 days 6 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00058111 7.62219821
0xa3d3d3274c510d2c7dbefe0c4e1ddee3190d5825ab7afc33a1d93a3cc797db06Transfer156642492022-10-03 1:08:5958 days 6 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00059145 7.75782855
0x0c5ddc44128b742711367f1fdfe3f0abb9e1df8b83d8197a5be08f5ca496157fTransfer156642472022-10-03 1:08:3558 days 6 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00048763 8.24377552
0x1a5d0049ef28df90cc399b69afd99b26c784a77bd3ce219c97689bd9ef0687cdTransfer156642432022-10-03 1:07:4758 days 6 hrs ago0x9f82e1a66bdb6a00b958c00ebc911d8305508962 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00066694 8.74653438
0x62ee4fd8909ee4331eb63fc3635c6b91e6839a7a037ded00334490394d180679Transfer156590782022-10-02 7:50:4758 days 23 hrs ago0x50b43abe17c5466659e78ce3902e24c4ddfa8316 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.0002922 4.09018862
0xa37d17dccdb11c21a61e1ada2cc9a19036b563f9a869b97eb12a9598048d0fc9Approve156204562022-09-26 22:15:5964 days 9 hrs ago0x90ea379502935639805fff41b3b229135b47421b IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00069336 14.86346506
0x5e9d09fd5f58bc7eaa02104b47bd4f431483d9c0fe019d0d184b6ef8abd4c9bfApprove155483412022-09-16 19:45:5974 days 11 hrs ago0xbbcd059d6b264837211d6fa3019baeb609766baf IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00034083 7.30647042
0x1303c8efed7f2dd6600053ba1a20fcd144929a430f64a93f695df1eaed4c61a6Approve155412752022-09-15 19:49:4775 days 11 hrs ago0x0c678b41c091df3577d0901df3705ac7770e34eb IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00047606 10.20520096
0xa0d6e42a5cbc54aed5bb5cfd2d472ffc7fbca43738625cdc81d003c65e235f76Approve155344632022-09-14 18:32:3576 days 12 hrs ago0x95fa48c2870bff515474411976d818484c0ee1f6 IN  0x2f60ebd82577e95b8f792988d414032b46271c1c0 Ether0.00180189 38.62661369
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x72d428aeab1b5e8abe329de38577345d171e1341cc8961c4a0602a7c63402efd158085592022-10-23 4:55:5938 days 2 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x1b5a60c31f1425146b6219ce1db68a31173f84390.07176799 Ether
0x72d428aeab1b5e8abe329de38577345d171e1341cc8961c4a0602a7c63402efd158085592022-10-23 4:55:5938 days 2 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x9f82e1a66bdb6a00b958c00ebc911d83055089620.07176799 Ether
0x72d428aeab1b5e8abe329de38577345d171e1341cc8961c4a0602a7c63402efd158085592022-10-23 4:55:5938 days 2 hrs ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.00013401 Ether
0x72d428aeab1b5e8abe329de38577345d171e1341cc8961c4a0602a7c63402efd158085592022-10-23 4:55:5938 days 2 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c Uniswap V2: Router 20.01367009 Ether
0x72d428aeab1b5e8abe329de38577345d171e1341cc8961c4a0602a7c63402efd158085592022-10-23 4:55:5938 days 2 hrs ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.15720609 Ether
0x8d8ac8f889c6fd7e5f57814c9b4203e5538ba016f1928736d5de984fcc79f2dc156352342022-09-28 23:51:1162 days 7 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x1b5a60c31f1425146b6219ce1db68a31173f84390.1242581 Ether
0x8d8ac8f889c6fd7e5f57814c9b4203e5538ba016f1928736d5de984fcc79f2dc156352342022-09-28 23:51:1162 days 7 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x9f82e1a66bdb6a00b958c00ebc911d83055089620.1242581 Ether
0x8d8ac8f889c6fd7e5f57814c9b4203e5538ba016f1928736d5de984fcc79f2dc156352342022-09-28 23:51:1162 days 7 hrs ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.00037416 Ether
0x8d8ac8f889c6fd7e5f57814c9b4203e5538ba016f1928736d5de984fcc79f2dc156352342022-09-28 23:51:1162 days 7 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c Uniswap V2: Router 20.02366821 Ether
0x8d8ac8f889c6fd7e5f57814c9b4203e5538ba016f1928736d5de984fcc79f2dc156352342022-09-28 23:51:1162 days 7 hrs ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.27218442 Ether
0x69c387faa6dc3f045016531b6271b07f9f246156a4fe94c6a8d47fdab2eaa6a2154960372022-09-08 10:25:4782 days 21 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x1b5a60c31f1425146b6219ce1db68a31173f84390.13010508 Ether
0x69c387faa6dc3f045016531b6271b07f9f246156a4fe94c6a8d47fdab2eaa6a2154960372022-09-08 10:25:4782 days 21 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x9f82e1a66bdb6a00b958c00ebc911d83055089620.13010508 Ether
0x69c387faa6dc3f045016531b6271b07f9f246156a4fe94c6a8d47fdab2eaa6a2154960372022-09-08 10:25:4782 days 21 hrs ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.00039017 Ether
0x69c387faa6dc3f045016531b6271b07f9f246156a4fe94c6a8d47fdab2eaa6a2154960372022-09-08 10:25:4782 days 21 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c Uniswap V2: Router 20.02478192 Ether
0x69c387faa6dc3f045016531b6271b07f9f246156a4fe94c6a8d47fdab2eaa6a2154960372022-09-08 10:25:4782 days 21 hrs ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.2849921 Ether
0x253c065a0190a8f7602b0aac5605304fc89ea86808a1799e30519b585b885a8d154764022022-09-05 6:58:3586 days 32 mins ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x1b5a60c31f1425146b6219ce1db68a31173f84390.14163897 Ether
0x253c065a0190a8f7602b0aac5605304fc89ea86808a1799e30519b585b885a8d154764022022-09-05 6:58:3586 days 32 mins ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x9f82e1a66bdb6a00b958c00ebc911d83055089620.14163897 Ether
0x253c065a0190a8f7602b0aac5605304fc89ea86808a1799e30519b585b885a8d154764022022-09-05 6:58:3586 days 32 mins ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.00042083 Ether
0x253c065a0190a8f7602b0aac5605304fc89ea86808a1799e30519b585b885a8d154764022022-09-05 6:58:3586 days 32 mins ago 0x2f60ebd82577e95b8f792988d414032b46271c1c Uniswap V2: Router 20.02697885 Ether
0x253c065a0190a8f7602b0aac5605304fc89ea86808a1799e30519b585b885a8d154764022022-09-05 6:58:3586 days 32 mins ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.3102568 Ether
0xf9dfd7c2f45efa23670785f0043af1ef83c5a74c67f57aa52b1950df904d735b154708342022-09-04 9:27:2986 days 22 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x1b5a60c31f1425146b6219ce1db68a31173f84390.45551214 Ether
0xf9dfd7c2f45efa23670785f0043af1ef83c5a74c67f57aa52b1950df904d735b154708342022-09-04 9:27:2986 days 22 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c0x9f82e1a66bdb6a00b958c00ebc911d83055089620.45551214 Ether
0xf9dfd7c2f45efa23670785f0043af1ef83c5a74c67f57aa52b1950df904d735b154708342022-09-04 9:27:2986 days 22 hrs ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.00372578 Ether
0xf9dfd7c2f45efa23670785f0043af1ef83c5a74c67f57aa52b1950df904d735b154708342022-09-04 9:27:2986 days 22 hrs ago 0x2f60ebd82577e95b8f792988d414032b46271c1c Uniswap V2: Router 20.08676421 Ether
0xf9dfd7c2f45efa23670785f0043af1ef83c5a74c67f57aa52b1950df904d735b154708342022-09-04 9:27:2986 days 22 hrs ago Uniswap V2: Router 2 0x2f60ebd82577e95b8f792988d414032b46271c1c0.9977885 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GameOfDragons

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-24
*/

/**
 *Submitted for verification at Etherscan.io on 2022-08-22
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.14;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
   
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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


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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract GameOfDragons is ERC20, Ownable {
    uint256 public buyFee = 92;
    uint256 public sellFee = 92;
    
    uint256 public liquidityShare = 16;
    uint256 public fee1Share = 42;
    uint256 public fee2Share = 42;

    address public fee1Wallet = 0x9F82E1a66BdB6A00b958c00eBC911D8305508962;
    address public fee2Wallet = 0x1B5A60c31f1425146b6219CE1db68a31173F8439;
    address public botFeeWallet = 0xc48b1e496Ed574BB9c8f7c98d9c058Ec047ae396;

    
    address public operator = 0x85abA2399478e65e21051eEf80A36fB5938345C0;
    address public newOwner = 0xD2a8093402912AeC59a95F55B1bB6F25D6fAf7C7;

    bool public walletToWalletTransferWithoutFee = false;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;
    
    address private DEAD = 0x000000000000000000000000000000000000dEaD;

    bool   public  enableTrading;

    bool    private swapping;
    uint256 public swapTokensAtAmount;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public automatedMarketMakerPairs;

  
    uint256 public timeAntiBot = 30 ; 
    
    mapping(address => bool) _isBot;
    uint256 public launchTime = 0;
    
    bool public antibotSystemEnable = true;

    mapping(address => bool) private _isExcludedFromMaxTxLimit;
    bool    public  maxTransactionLimitEnabled = true;
    uint256 public  maxTransactionAmountBuy  = 5 * (10**23); //0.5% of total supply 
    uint256 public  maxTransactionAmountSell = 5 * (10**23); //0.5% of total supply 

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event FeesUpdated(uint256 buyFee, uint256 sellFee);
    event FeeSharesUpdated(uint256 liquidityShare, uint256 fee1Share, uint256 fee2Share);
    event Fee1WalletChanged(address fee1Wallet);
    event Fee2WalletChanged(address fee2Wallet);
    event BotFeeWalletChanged(address botFeeWallet);
    event OperatorWalletChanged(address operatorWallet);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    //event SwapAndLiquify(uint256 tokensSwapped, uint256 bnbReceived, uint256 tokensIntoLiqudity);
    //event SwapAndSendWallets(uint256 tokensSwapped, uint256 bnbSend);
    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);
    event ExcludedFromMaxTransactionLimit(address indexed account, bool isExcluded);
    event MaxTransactionLimitRatesChanged(uint256 maxTransferRateBuy, uint256 maxTransferRateSell);
    event MaxTransactionLimitStateChanged(bool maxTransactionLimit);

    constructor () ERC20("Game Of Dragons", "$GOD") 
    {   
        newOwner = 0xD2a8093402912AeC59a95F55B1bB6F25D6fAf7C7;
        

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

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        _setAutomatedMarketMakerPair(_uniswapV2Pair, true);

        _isExcludedFromMaxTxLimit[owner()] = true;
        _isExcludedFromMaxTxLimit[address(0)] = true;
        _isExcludedFromMaxTxLimit[address(this)] = true;
        _isExcludedFromMaxTxLimit[DEAD] = true;
        
        _isExcludedFromMaxWalletLimit[owner()] = true;
        _isExcludedFromMaxWalletLimit[address(0)] = true;
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[DEAD] = true;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[DEAD] = true;
        _isExcludedFromFees[address(this)] = true;
 
        _isExcludedFromFees[fee1Wallet] = true;
        _isExcludedFromFees[fee2Wallet] = true;
        _isExcludedFromFees[botFeeWallet] = true;
        _isExcludedFromFees[newOwner] = true;

        _isExcludedFromMaxWalletLimit[fee1Wallet] = true;
        _isExcludedFromMaxWalletLimit[fee2Wallet] = true;
        _isExcludedFromMaxWalletLimit[botFeeWallet] = true;
        _isExcludedFromMaxWalletLimit[newOwner] = true;

        _isExcludedFromMaxTxLimit[fee1Wallet] = true;
        _isExcludedFromMaxTxLimit[fee2Wallet] = true;
        _isExcludedFromMaxTxLimit[botFeeWallet] = true;
        _isExcludedFromMaxTxLimit[newOwner] = true;
        
        
        _mint(newOwner, 100000000 * (10**18));
        swapTokensAtAmount = totalSupply() / 2000;

        operator = _msgSender();
    }


    

    modifier onlyOperator(){
        require(operator == _msgSender(),"Caller is not the Operator");
        _;
    }

    modifier onlyAuthorize(){
        require(operator == _msgSender() || owner() == _msgSender(),"Caller is not the Operator");
        _;
    }

    function changeOperatorWallet(address newAddress) external onlyOperator{
        require(newAddress != operator,"Operator Address is already same");
        require(!isContract(newAddress), "Operator wallet cannot be a contract");
        operator = newAddress;
        emit OperatorWalletChanged(operator);
    }


    receive() external payable {

  	}

    function setOpenTrading() external onlyAuthorize{
        require(enableTrading == false, "Trading is already enabled");
        enableTrading = true;
        launchTime = block.timestamp;

    }  


    function excludeAntibot(address ac) public onlyOwner {
        require(_isBot[ac], "not bot");
        _isBot[ac] = false;
    }


    function isBot(address acc) public view returns(bool) {
        return _isBot[acc];
    }



    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "Owner cannot claim native tokens");
        if (token == address(0x0)) {
            payable(msg.sender).transfer(address(this).balance);
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

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

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

    function updateUniswapV2Router(address newAddress) external onlyOperator {
        require(newAddress != address(uniswapV2Router), "The router already has that address");
        emit UpdateUniswapV2Router(newAddress, address(uniswapV2Router));
        uniswapV2Router = IUniswapV2Router02(newAddress);
        address _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Pair = _uniswapV2Pair;
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOperator {
        require(pair != uniswapV2Pair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs");

        _setAutomatedMarketMakerPair(pair, value);
    }
 
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    //=======FeeManagement=======//
    function excludeFromFees(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromFees[account] != excluded, "Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 250 && _sellFee <= 250, "Fees must be less than 25%");
        buyFee = _buyFee;
        sellFee = _sellFee;
        emit FeesUpdated(buyFee, sellFee);
    }

    function updateFeeShares(uint256 _fee1FeeShare, uint256 _liquidityFeeShare, uint256 _fee2Share) external onlyOwner {
        require(_fee1FeeShare + _liquidityFeeShare + _fee2Share == 100, "Fee shares must add up to 100");
        fee1Share = _fee1FeeShare;
        liquidityShare = _liquidityFeeShare;
        fee2Share = _fee2Share;
        emit FeeSharesUpdated(fee1Share, liquidityShare, fee2Share);
    }

    function enableWalletToWalletTransferWithoutFee(bool enable) external onlyOwner {
        require(walletToWalletTransferWithoutFee != enable, "Wallet to wallet transfer without fee is already set to that value");
        walletToWalletTransferWithoutFee = enable;
    }

    function changeFee1Wallet(address _fee1Wallet) external onlyOwner {
        require(_fee1Wallet != fee1Wallet, "fee1 wallet is already that address");
        require(!isContract(_fee1Wallet), "fee1 wallet cannot be a contract");
        fee1Wallet = _fee1Wallet;
        emit Fee1WalletChanged(fee1Wallet);
    }

    function changeFee2Wallet(address _fee2Wallet) external onlyOwner {
        require(_fee2Wallet != fee2Wallet, "fee2 wallet is already that address");
        require(!isContract(_fee2Wallet), "fee2 wallet cannot be a contract");
        fee2Wallet = _fee2Wallet;
        emit Fee2WalletChanged(fee2Wallet);
    }

    function changeBotFee2Wallet(address _botFeeWallet) external onlyOwner {
        require(_botFeeWallet != botFeeWallet, "botFee wallet is already that address");
        require(!isContract(_botFeeWallet), "botFee wallet cannot be a contract");
        botFeeWallet = _botFeeWallet;
        emit BotFeeWalletChanged(botFeeWallet);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal  override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
       

        if (launchTime > 0) {
            if(block.timestamp - launchTime <= timeAntiBot && from == uniswapV2Pair && antibotSystemEnable) {
    
                _isBot[to] = true;
            }
        }


        if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }



        if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            require(enableTrading, "Trading is not enabled");
        }

        if (maxWalletLimitEnabled) {
            if (_isExcludedFromMaxWalletLimit[from] == false
                && _isExcludedFromMaxWalletLimit[to] == false &&
                to != uniswapV2Pair
            ) {
                uint balance  = balanceOf(to);
                require(balance + amount <= maxWalletAmount(), "MaxWallet: Transfer amount exceeds the maxWalletAmount");
            }
        }

        if (maxTransactionLimitEnabled) 
        {
            if ((from == uniswapV2Pair || to == uniswapV2Pair) &&
                _isExcludedFromMaxTxLimit[from] == false && 
                _isExcludedFromMaxTxLimit[to]   == false) 
            {
                if (from == uniswapV2Pair) {
                    require(
                        amount <= maxTransactionAmountBuy,  
                        "AntiWhale: Transfer amount exceeds the maxTransactionAmount"
                    );
                } else {
                    require(
                        amount <= maxTransactionAmountSell, 
                        "AntiWhale: Transfer amount exceeds the maxTransactionAmount"
                    );
                }
            }
        }

        



		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( canSwap &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] && !_isExcludedFromFees[to]
        ) {
            swapping = true;

            uint256 liquidityTokens       = contractTokenBalance * liquidityShare / 100 / 2;
            uint256 liquidityTokensForETH = contractTokenBalance * liquidityShare / 100 / 2;
            
            uint256 fee1Tokens = contractTokenBalance * fee1Share / 100;
            uint256 fee2Tokens = contractTokenBalance * fee2Share / 100;

            uint256 tokensToSwap  = liquidityTokensForETH + fee1Tokens + fee2Tokens;

            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

            uint256 initialBalance = address(this).balance;

            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokensToSwap,
                0, // accept any amount of ETH
                path,
                address(this),
                block.timestamp);
            
            uint256 newBalance = address(this).balance - initialBalance;

            if (liquidityShare > 0)
            {   
                uint256 liquidityETH = newBalance * liquidityTokensForETH / tokensToSwap; 

                uniswapV2Router.addLiquidityETH{value: liquidityETH}(
                    address(this),
                    liquidityTokens,
                    0, // slippage is unavoidable
                    0, // slippage is unavoidable
                    DEAD,
                    block.timestamp
                );
            }


            if(fee1Share > 0) {
                uint256 fee1ETH = newBalance * fee1Tokens / tokensToSwap;
                sendETH(payable(fee1Wallet), fee1ETH);

            }

            if(fee2Share > 0) {
                uint256 fee2ETH = newBalance * fee2Tokens / tokensToSwap;
                sendETH(payable(fee2Wallet), fee2ETH);

            }

/////////////

            swapping = false;
        }

        bool takeFee = !swapping;

        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        if(walletToWalletTransferWithoutFee && from != uniswapV2Pair && to != uniswapV2Pair) {
            takeFee = false;
        }
        

        if(takeFee) {
            uint256 _totalFees;
            if (_isBot[to] && from == uniswapV2Pair){
                _totalFees = 900;
                uint256 fees = amount * _totalFees / 1000;
                amount = amount - fees;
                super._transfer(from, botFeeWallet, fees);
            }
            
            else{
                if(from == uniswapV2Pair) {
                _totalFees = buyFee; 
                } 

                else {
                _totalFees = sellFee;
                }
            uint256 fees = amount * _totalFees / 1000;
        	amount = amount - fees;
            super._transfer(from, address(this), fees);
            }


        }


        super._transfer(from, to, amount);

    }

    //=======Swap=======//

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{
        require(newAmount > totalSupply() / 100000, "SwapTokensAtAmount must be greater than 0.001% of total supply");
        swapTokensAtAmount = newAmount;
    }

    //=======MaxWallet=======//
    mapping(address => bool) private _isExcludedFromMaxWalletLimit;
    bool    public maxWalletLimitEnabled = true;
    uint256 private maxWalletLimitRate   = 50;

    event ExcludedFromMaxWalletLimit(address indexed account, bool isExcluded);
    event MaxWalletLimitRateChanged(uint256 maxWalletLimitRate);
    event MaxWalletLimitStateChanged(bool maxWalletLimit);

    function setEnableMaxWalletLimit(bool enable) external onlyOwner {
        require(enable != maxWalletLimitEnabled, "Max wallet limit is already that state");
        maxWalletLimitEnabled = enable;
        emit MaxWalletLimitStateChanged(maxWalletLimitEnabled);
    }

    function isExcludedFromMaxWalletLimit(address account) public view returns(bool) {
        return _isExcludedFromMaxWalletLimit[account];
    }

    function maxWalletAmount() public view returns (uint256) {
        return totalSupply() * maxWalletLimitRate / 1000;
    }

    function setMaxWalletRate_Denominator1000(uint256 _val) external onlyOwner {
        require(_val >= 10, "Max wallet percentage cannot be lower than 1%");
        maxWalletLimitRate = _val;
        emit MaxWalletLimitRateChanged(maxWalletLimitRate);
    }

    function setExcludeFromMaxWallet(address account, bool exclude) external onlyOwner {
        require(_isExcludedFromMaxWalletLimit[account] != exclude, "Account is already set to that state");
        _isExcludedFromMaxWalletLimit[account] = exclude;
        emit ExcludedFromMaxWalletLimit(account, exclude);
    }

    //=======MaxTransaction=======//
    function setEnableMaxTransactionLimit(bool enable) external onlyOwner {
        require(
            enable != maxTransactionLimitEnabled, 
            "Max transaction limit is already set to that state"
        );
        maxTransactionLimitEnabled = enable;
        emit MaxTransactionLimitStateChanged(maxTransactionLimitEnabled);
    }

    function setMaxTransactionAmounts(uint256 _maxTransactionAmountBuy, uint256 _maxTransactionAmountSell) external onlyOwner {
        require(
            _maxTransactionAmountBuy  >= totalSupply() / (10 ** decimals()) / 1000 && 
            _maxTransactionAmountSell >= totalSupply() / (10 ** decimals()) / 1000, 
            "Max Transaction limis cannot be lower than 0.1% of total supply"
        ); 
        maxTransactionAmountBuy  = _maxTransactionAmountBuy  * (10 ** decimals());
        maxTransactionAmountSell = _maxTransactionAmountSell * (10 ** decimals());
        emit MaxTransactionLimitRatesChanged(maxTransactionAmountBuy, maxTransactionAmountSell);
    }

    function setExcludeFromMaxTransactionLimit(address account, bool exclude) external onlyOwner {
        require(
            _isExcludedFromMaxTxLimit[account] != exclude, 
            "Account is already set to that state"
        );
        _isExcludedFromMaxTxLimit[account] = exclude;
        emit ExcludedFromMaxTransactionLimit(account, exclude);
    }

    function isExcludedFromMaxTransaction(address account) public view returns(bool) {
        return _isExcludedFromMaxTxLimit[account];
    }
}

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":"address","name":"botFeeWallet","type":"address"}],"name":"BotFeeWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxWalletLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"fee1Wallet","type":"address"}],"name":"Fee1WalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"fee2Wallet","type":"address"}],"name":"Fee2WalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"liquidityShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee1Share","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee2Share","type":"uint256"}],"name":"FeeSharesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTransferRateBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxTransferRateSell","type":"uint256"}],"name":"MaxTransactionLimitRatesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxTransactionLimit","type":"bool"}],"name":"MaxTransactionLimitStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletLimitRate","type":"uint256"}],"name":"MaxWalletLimitRateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxWalletLimit","type":"bool"}],"name":"MaxWalletLimitStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"operatorWallet","type":"address"}],"name":"OperatorWalletChanged","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"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":[],"name":"antibotSystemEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botFeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_botFeeWallet","type":"address"}],"name":"changeBotFee2Wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fee1Wallet","type":"address"}],"name":"changeFee1Wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fee2Wallet","type":"address"}],"name":"changeFee2Wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"changeOperatorWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"enableWalletToWalletTransferWithoutFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ac","type":"address"}],"name":"excludeAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee1Share","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee1Wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee2Share","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee2Wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmountBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmountSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionAmountBuy","type":"uint256"},{"internalType":"uint256","name":"_maxTransactionAmountSell","type":"uint256"}],"name":"setMaxTransactionAmounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setMaxWalletRate_Denominator1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setOpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeAntiBot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"},{"inputs":[{"internalType":"uint256","name":"_fee1FeeShare","type":"uint256"},{"internalType":"uint256","name":"_liquidityFeeShare","type":"uint256"},{"internalType":"uint256","name":"_fee2Share","type":"uint256"}],"name":"updateFeeShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateUniswapV2Router","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletToWalletTransferWithoutFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052605c60068190556007556010600855602a6009819055600a55600b80546001600160a01b0319908116739f82e1a66bdb6a00b958c00ebc911d830550896217909155600c80548216731b5a60c31f1425146b6219ce1db68a31173f8439179055600d8054821673c48b1e496ed574bb9c8f7c98d9c058ec047ae396179055600e805482167385aba2399478e65e21051eef80a36fb5938345c0179055600f80546001600160a81b03191673d2a8093402912aec59a95f55b1bb6f25d6faf7c71790556012805490911661dead179055601e60165560006018556019805460ff199081166001908117909255601b80548216831790556969e10de76676d0800000601c819055601d55601f8054909116909117905560326020553480156200012a57600080fd5b50604080518082018252600f81526e47616d65204f6620447261676f6e7360881b6020808301918252835180850190945260048452630911d3d160e21b9084015281519192916200017e916003916200099f565b508051620001949060049060208401906200099f565b5050506000620001a96200069e60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b03191673d2a8093402912aec59a95f55b1bb6f25d6faf7c71790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a01559160048083019260209291908290030181865afa15801562000273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000299919062000a45565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030d919062000a45565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000381919062000a45565b601080546001600160a01b038086166001600160a01b031992831681179093556011805491851691909216179055909150620003c2903090600019620006a2565b620003cf816001620007ce565b6001601a6000620003e86005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601a9093527fb75ecc04ed35f89790e98640e901bda41eceff0cb896cf2765fb6976802537508054851660019081179091553084528284208054861682179055601254909116835290822080549093168117909255601e90620004816005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601e9093527f65ce8396b736f5da9d881cc6fbcb11ef9721292dc41ec8c40879fd9edea5744d80548516600190811790915530845282842080548616821790556012549091168352908220805490931681179092556014906200051a6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560125482168152601484528281208054861660019081179091553082528382208054871682179055600b8054841683528483208054881683179055600c8054851684528584208054891684179055600d80548616855286852080548a1685179055600f80548716865287862080548b1686179055835487168652601e895287862080548b168617905582548716865287862080548b168617905581548716865287862080548b168617905580548716865287862080548b1686179055925486168552601a90975285842080548916841790555484168352848320805488168317905594548316825283822080548716821790558454831682529290208054909416909117909255546200066891166a52b7d2dcc80cd2e4000000620008ba565b6107d06200067560025490565b62000681919062000a77565b6013555050600e80546001600160a01b0319163317905562000afd565b3390565b6001600160a01b0383166200070a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200076d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000701565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526015602052604090205481151560ff909116151503620008665760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c75650000000000000000606482015260840162000701565b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620009125760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000701565b806002600082825462000926919062000a9a565b90915550506001600160a01b038216600090815260208190526040812080548392906200095590849062000a9a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620009ad9062000ac1565b90600052602060002090601f016020900481019282620009d1576000855562000a1c565b82601f10620009ec57805160ff191683800117855562000a1c565b8280016001018555821562000a1c579182015b8281111562000a1c578251825591602001919060010190620009ff565b5062000a2a92915062000a2e565b5090565b5b8082111562000a2a576000815560010162000a2f565b60006020828403121562000a5857600080fd5b81516001600160a01b038116811462000a7057600080fd5b9392505050565b60008262000a9557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111562000abc57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c9082168062000ad657607f821691505b60208210810362000af757634e487b7160e01b600052602260045260246000fd5b50919050565b61384e8062000b0d6000396000f3fe6080604052600436106103b15760003560e01c806382088d26116101e7578063b6f7f6811161010d578063dd62ed3e116100a0578063f5feabbd1161006f578063f5feabbd14610b45578063f60287fe14610b65578063f9d0831a14610b7b578063ff35451c14610b9b57600080fd5b8063dd62ed3e14610aa9578063e2f4560514610aef578063f2fde38b14610b05578063f5a82bfd14610b2557600080fd5b8063c0246668116100dc578063c024666814610a33578063cadbe6c114610a53578063d4ee1d9014610a69578063dbb853d614610a8957600080fd5b8063b6f7f681146109ce578063b749a6d7146109ee578063b902e1cd14610a04578063bf60defe14610a1957600080fd5b8063a06798cd11610185578063a9059cbb11610154578063a9059cbb14610949578063aa4bde2814610969578063afa4f3b21461097e578063b62496f51461099e57600080fd5b8063a06798cd146108b0578063a457c2d7146108d0578063a5c5ee77146108f0578063a8a69b9d1461091057600080fd5b8063929f1360116101c1578063929f13601461083b578063940c0e2a1461085b57806395d89b411461087b5780639a7a23d61461089057600080fd5b806382088d26146107dc5780638a8c523c146107fc5780638da5cb5b1461081d57600080fd5b8063313ce567116102d7578063570ca7351161026a5780636db79437116102395780636db794371461075b57806370a082311461077b578063715018a6146107b1578063790ca413146107c657600080fd5b8063570ca735146106e5578063580e1f3f1461070557806359136fa51461072557806365b8dbc01461073b57600080fd5b806349bd5a5e116102a657806349bd5a5e1461064c5780634fbee1931461066c5780635654d0b3146106a557806356a6cabf146106c557600080fd5b8063313ce567146105c157806339509351146105dd5780633bbac579146105fd578063470624021461063657600080fd5b806318160ddd1161034f57806323b872dd1161031e57806323b872dd146105515780632a6c7dba146105715780632b14ca56146105915780632ba86bf2146105a757600080fd5b806318160ddd146104c957806318d9ceae146104de5780631cf2492d1461051757806321a9d82a1461053757600080fd5b8063150c880c1161038b578063150c880c1461043857806315291cd41461045a5780631529fbbf146104705780631694505e1461049157600080fd5b80630105d0fd146103bd57806306fdde03146103e6578063095ea7b31461040857600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d3601c5481565b6040519081526020015b60405180910390f35b3480156103f257600080fd5b506103fb610bbb565b6040516103dd91906131d4565b34801561041457600080fd5b5061042861042336600461323e565b610c4d565b60405190151581526020016103dd565b34801561044457600080fd5b50610458610453366004613278565b610c64565b005b34801561046657600080fd5b506103d360085481565b34801561047c57600080fd5b50600f5461042890600160a01b900460ff1681565b34801561049d57600080fd5b506010546104b1906001600160a01b031681565b6040516001600160a01b0390911681526020016103dd565b3480156104d557600080fd5b506002546103d3565b3480156104ea57600080fd5b506104286104f93660046132b1565b6001600160a01b03166000908152601a602052604090205460ff1690565b34801561052357600080fd5b506104586105323660046132b1565b610d37565b34801561054357600080fd5b50601f546104289060ff1681565b34801561055d57600080fd5b5061042861056c3660046132d5565b610e78565b34801561057d57600080fd5b5061045861058c366004613316565b610f29565b34801561059d57600080fd5b506103d360075481565b3480156105b357600080fd5b50601b546104289060ff1681565b3480156105cd57600080fd5b50604051601281526020016103dd565b3480156105e957600080fd5b506104286105f836600461323e565b611001565b34801561060957600080fd5b506104286106183660046132b1565b6001600160a01b031660009081526017602052604090205460ff1690565b34801561064257600080fd5b506103d360065481565b34801561065857600080fd5b506011546104b1906001600160a01b031681565b34801561067857600080fd5b506104286106873660046132b1565b6001600160a01b031660009081526014602052604090205460ff1690565b3480156106b157600080fd5b506104586106c0366004613316565b61103d565b3480156106d157600080fd5b506104586106e0366004613316565b611118565b3480156106f157600080fd5b50600e546104b1906001600160a01b031681565b34801561071157600080fd5b50600d546104b1906001600160a01b031681565b34801561073157600080fd5b506103d3601d5481565b34801561074757600080fd5b506104586107563660046132b1565b6111fc565b34801561076757600080fd5b50610458610776366004613333565b611466565b34801561078757600080fd5b506103d36107963660046132b1565b6001600160a01b031660009081526020819052604090205490565b3480156107bd57600080fd5b50610458611536565b3480156107d257600080fd5b506103d360185481565b3480156107e857600080fd5b50600b546104b1906001600160a01b031681565b34801561080857600080fd5b5060125461042890600160a01b900460ff1681565b34801561082957600080fd5b506005546001600160a01b03166104b1565b34801561084757600080fd5b50610458610856366004613278565b6115aa565b34801561086757600080fd5b50610458610876366004613355565b61166c565b34801561088757600080fd5b506103fb611730565b34801561089c57600080fd5b506104586108ab366004613278565b61173f565b3480156108bc57600080fd5b506104586108cb3660046132b1565b611809565b3480156108dc57600080fd5b506104286108eb36600461323e565b611950565b3480156108fc57600080fd5b5061045861090b3660046132b1565b6119e9565b34801561091c57600080fd5b5061042861092b3660046132b1565b6001600160a01b03166000908152601e602052604090205460ff1690565b34801561095557600080fd5b5061042861096436600461323e565b611b23565b34801561097557600080fd5b506103d3611b30565b34801561098a57600080fd5b50610458610999366004613355565b611b5a565b3480156109aa57600080fd5b506104286109b93660046132b1565b60156020526000908152604090205460ff1681565b3480156109da57600080fd5b506104586109e9366004613333565b611c14565b3480156109fa57600080fd5b506103d3600a5481565b348015610a1057600080fd5b50610458611d77565b348015610a2557600080fd5b506019546104289060ff1681565b348015610a3f57600080fd5b50610458610a4e366004613278565b611e29565b348015610a5f57600080fd5b506103d360095481565b348015610a7557600080fd5b50600f546104b1906001600160a01b031681565b348015610a9557600080fd5b50610458610aa43660046132b1565b611f2e565b348015610ab557600080fd5b506103d3610ac436600461336e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610afb57600080fd5b506103d360135481565b348015610b1157600080fd5b50610458610b203660046132b1565b612068565b348015610b3157600080fd5b50610458610b4036600461339c565b612153565b348015610b5157600080fd5b50610458610b603660046132b1565b612236565b348015610b7157600080fd5b506103d360165481565b348015610b8757600080fd5b50610458610b963660046132b1565b6122d3565b348015610ba757600080fd5b50600c546104b1906001600160a01b031681565b606060038054610bca906133c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf6906133c8565b8015610c435780601f10610c1857610100808354040283529160200191610c43565b820191906000526020600020905b815481529060010190602001808311610c2657829003601f168201915b5050505050905090565b6000610c5a338484612477565b5060015b92915050565b6005546001600160a01b03163314610c975760405162461bcd60e51b8152600401610c8e90613402565b60405180910390fd5b6001600160a01b0382166000908152601a602052604090205481151560ff909116151503610cd75760405162461bcd60e51b8152600401610c8e90613437565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c1091015b60405180910390a25050565b6005546001600160a01b03163314610d615760405162461bcd60e51b8152600401610c8e90613402565b600c546001600160a01b0390811690821603610dcb5760405162461bcd60e51b815260206004820152602360248201527f666565322077616c6c657420697320616c72656164792074686174206164647260448201526265737360e81b6064820152608401610c8e565b6001600160a01b0381163b15610e235760405162461bcd60e51b815260206004820181905260248201527f666565322077616c6c65742063616e6e6f74206265206120636f6e74726163746044820152606401610c8e565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f84e94630ac16ef0cfeb2db16816e2ecccc8542d78581ac3113cc5633dd13e0fa906020015b60405180910390a150565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000198114610f135782811015610f065760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c8e565b610f138533858403612477565b610f1e85858561259b565b506001949350505050565b6005546001600160a01b03163314610f535760405162461bcd60e51b8152600401610c8e90613402565b601f5460ff16151581151503610fba5760405162461bcd60e51b815260206004820152602660248201527f4d61782077616c6c6574206c696d697420697320616c7265616479207468617460448201526520737461746560d01b6064820152608401610c8e565b601f805460ff191682151590811790915560405160ff909116151581527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f190602001610e6d565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610c5a918590611038908690613491565b612477565b6005546001600160a01b031633146110675760405162461bcd60e51b8152600401610c8e90613402565b801515600f60149054906101000a900460ff161515036110fa5760405162461bcd60e51b815260206004820152604260248201527f57616c6c657420746f2077616c6c6574207472616e7366657220776974686f7560448201527f742066656520697320616c72656164792073657420746f20746861742076616c606482015261756560f01b608482015260a401610c8e565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b6005546001600160a01b031633146111425760405162461bcd60e51b8152600401610c8e90613402565b601b5460ff161515811515036111b55760405162461bcd60e51b815260206004820152603260248201527f4d6178207472616e73616374696f6e206c696d697420697320616c72656164796044820152712073657420746f207468617420737461746560701b6064820152608401610c8e565b601b805460ff191682151590811790915560405160ff909116151581527fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf90602001610e6d565b600e546001600160a01b031633146112265760405162461bcd60e51b8152600401610c8e906134a9565b6010546001600160a01b03908116908216036112905760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b6064820152608401610c8e565b6010546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3601080546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b91906134e0565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d191906134e0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561141e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144291906134e0565b601180546001600160a01b0319166001600160a01b03929092169190911790555050565b6005546001600160a01b031633146114905760405162461bcd60e51b8152600401610c8e90613402565b60fa82111580156114a2575060fa8111155b6114ee5760405162461bcd60e51b815260206004820152601a60248201527f46656573206d757374206265206c657373207468616e203235250000000000006044820152606401610c8e565b6006829055600781905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a191015b60405180910390a15050565b6005546001600160a01b031633146115605760405162461bcd60e51b8152600401610c8e90613402565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146115d45760405162461bcd60e51b8152600401610c8e90613402565b6001600160a01b0382166000908152601e602052604090205481151560ff9091161515036116145760405162461bcd60e51b8152600401610c8e90613437565b6001600160a01b0382166000818152601e6020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c9101610d2b565b6005546001600160a01b031633146116965760405162461bcd60e51b8152600401610c8e90613402565b600a8110156116fd5760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060448201526c6c6f776572207468616e20312560981b6064820152608401610c8e565b60208181556040518281527ffbede00c52e68e7972265f0deb49773af2ec3e07ebaf22d74be3c4f0c6d568679101610e6d565b606060048054610bca906133c8565b600e546001600160a01b031633146117695760405162461bcd60e51b8152600401610c8e906134a9565b6011546001600160a01b03908116908316036117fb5760405162461bcd60e51b815260206004820152604560248201527f5468652050616e63616b655377617020706169722063616e6e6f74206265207260448201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6572606482015264506169727360d81b608482015260a401610c8e565b6118058282612e7d565b5050565b6005546001600160a01b031633146118335760405162461bcd60e51b8152600401610c8e90613402565b600d546001600160a01b039081169082160361189f5760405162461bcd60e51b815260206004820152602560248201527f626f744665652077616c6c657420697320616c72656164792074686174206164604482015264647265737360d81b6064820152608401610c8e565b6001600160a01b0381163b156119025760405162461bcd60e51b815260206004820152602260248201527f626f744665652077616c6c65742063616e6e6f74206265206120636f6e74726160448201526118dd60f21b6064820152608401610c8e565b600d80546001600160a01b0319166001600160a01b0383169081179091556040519081527faeb1bee205df22bc81934c711056c79abf944776e94470482dbc8d51c3ad94ca90602001610e6d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156119d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c8e565b6119df3385858403612477565b5060019392505050565b6005546001600160a01b03163314611a135760405162461bcd60e51b8152600401610c8e90613402565b600b546001600160a01b0390811690821603611a7d5760405162461bcd60e51b815260206004820152602360248201527f666565312077616c6c657420697320616c72656164792074686174206164647260448201526265737360e81b6064820152608401610c8e565b6001600160a01b0381163b15611ad55760405162461bcd60e51b815260206004820181905260248201527f666565312077616c6c65742063616e6e6f74206265206120636f6e74726163746044820152606401610c8e565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527fcffec7a894de37f9234bd4641661dad48f5792883bbe5f5c469e3bb858bea0d290602001610e6d565b6000610c5a33848461259b565b60006103e8602054611b4160025490565b611b4b91906134fd565b611b55919061351c565b905090565b6005546001600160a01b03163314611b845760405162461bcd60e51b8152600401610c8e90613402565b620186a0611b9160025490565b611b9b919061351c565b8111611c0f5760405162461bcd60e51b815260206004820152603e60248201527f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460448201527f6572207468616e20302e30303125206f6620746f74616c20737570706c7900006064820152608401610c8e565b601355565b6005546001600160a01b03163314611c3e5760405162461bcd60e51b8152600401610c8e90613402565b6103e8611c4d6012600a613622565b600254611c5a919061351c565b611c64919061351c565b8210158015611c9857506103e8611c7d6012600a613622565b600254611c8a919061351c565b611c94919061351c565b8110155b611d0a5760405162461bcd60e51b815260206004820152603f60248201527f4d6178205472616e73616374696f6e206c696d69732063616e6e6f742062652060448201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c79006064820152608401610c8e565b611d166012600a613622565b611d2090836134fd565b601c55611d2f6012600a613622565b611d3990826134fd565b601d819055601c546040517f2a88f79986e057b8152c19cea35cd214cf53364efbf95d5b22b37797c05be55f9261152a928252602082015260400190565b600e546001600160a01b0316331480611d9a57506005546001600160a01b031633145b611db65760405162461bcd60e51b8152600401610c8e906134a9565b601254600160a01b900460ff1615611e105760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610c8e565b6012805460ff60a01b1916600160a01b17905542601855565b6005546001600160a01b03163314611e535760405162461bcd60e51b8152600401610c8e90613402565b6001600160a01b03821660009081526014602052604090205481151560ff909116151503611ed65760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b6064820152608401610c8e565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610d2b565b600e546001600160a01b03163314611f585760405162461bcd60e51b8152600401610c8e906134a9565b600e546001600160a01b0390811690821603611fb65760405162461bcd60e51b815260206004820181905260248201527f4f70657261746f72204164647265737320697320616c72656164792073616d656044820152606401610c8e565b6001600160a01b0381163b1561201a5760405162461bcd60e51b8152602060048201526024808201527f4f70657261746f722077616c6c65742063616e6e6f74206265206120636f6e746044820152631c9858dd60e21b6064820152608401610c8e565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527f32d323979a0053c92306e15a8f86e9dc39ac29ce7966da018f4b71f3c6f7d82690602001610e6d565b6005546001600160a01b031633146120925760405162461bcd60e51b8152600401610c8e90613402565b6001600160a01b0381166120f75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c8e565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461217d5760405162461bcd60e51b8152600401610c8e90613402565b806121888385613491565b6121929190613491565b6064146121e15760405162461bcd60e51b815260206004820152601d60248201527f46656520736861726573206d7573742061646420757020746f203130300000006044820152606401610c8e565b60098390556008829055600a81905560408051848152602081018490529081018290527f4677abe8dbff9a9de3cc464f74e0c16415fc3e839597772eb5fe5ece02a6a90a9060600160405180910390a1505050565b6005546001600160a01b031633146122605760405162461bcd60e51b8152600401610c8e90613402565b6001600160a01b03811660009081526017602052604090205460ff166122b25760405162461bcd60e51b81526020600482015260076024820152661b9bdd08189bdd60ca1b6044820152606401610c8e565b6001600160a01b03166000908152601760205260409020805460ff19169055565b6005546001600160a01b031633146122fd5760405162461bcd60e51b8152600401610c8e90613402565b306001600160a01b038216036123555760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e736044820152606401610c8e565b6001600160a01b03811661238f5760405133904780156108fc02916000818181858888f19350505050158015611805573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156123d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fc9190613631565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561244c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612470919061364a565b5050505b50565b6001600160a01b0383166124d95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c8e565b6001600160a01b03821661253a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c8e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166125c15760405162461bcd60e51b8152600401610c8e90613667565b6001600160a01b0382166125e75760405162461bcd60e51b8152600401610c8e906136ac565b60185415612651576016546018546125ff90426136ef565b1115801561261a57506011546001600160a01b038481169116145b8015612628575060195460ff165b15612651576001600160a01b0382166000908152601760205260409020805460ff191660011790555b8060000361266a5761266583836000612f67565b505050565b6001600160a01b03831660009081526014602052604090205460ff161580156126ac57506001600160a01b03821660009081526014602052604090205460ff16155b1561270357601254600160a01b900460ff166127035760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610c8e565b601f5460ff1615612809576001600160a01b0383166000908152601e602052604090205460ff1615801561275057506001600160a01b0382166000908152601e602052604090205460ff16155b801561276a57506011546001600160a01b03838116911614155b15612809576001600160a01b038216600090815260208190526040902054612790611b30565b61279a8383613491565b11156128075760405162461bcd60e51b815260206004820152603660248201527f4d617857616c6c65743a205472616e7366657220616d6f756e74206578636565604482015275191cc81d1a19481b585e15d85b1b195d105b5bdd5b9d60521b6064820152608401610c8e565b505b601b5460ff16156128eb576011546001600160a01b038481169116148061283d57506011546001600160a01b038381169116145b801561286257506001600160a01b0383166000908152601a602052604090205460ff16155b801561288757506001600160a01b0382166000908152601a602052604090205460ff16155b156128eb576011546001600160a01b03908116908416036128c957601c548111156128c45760405162461bcd60e51b8152600401610c8e90613706565b6128eb565b601d548111156128eb5760405162461bcd60e51b8152600401610c8e90613706565b30600090815260208190526040902054601354811080159081906129195750601254600160a81b900460ff16155b801561293e57506001600160a01b03851660009081526015602052604090205460ff16155b801561296357506001600160a01b03851660009081526014602052604090205460ff16155b801561298857506001600160a01b03841660009081526014602052604090205460ff16155b15612ce5576012805460ff60a81b1916600160a81b1790556008546000906002906064906129b690866134fd565b6129c0919061351c565b6129ca919061351c565b9050600060026064600854866129e091906134fd565b6129ea919061351c565b6129f4919061351c565b90506000606460095486612a0891906134fd565b612a12919061351c565b905060006064600a5487612a2691906134fd565b612a30919061351c565b9050600081612a3f8486613491565b612a499190613491565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110612a8357612a83613763565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0091906134e0565b81600181518110612b1357612b13613763565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b81524792919091169063791ac94790612b5d908690600090879030904290600401613779565b600060405180830381600087803b158015612b7757600080fd5b505af1158015612b8b573d6000803e3d6000fd5b5050505060008147612b9d91906136ef565b60085490915015612c5b57600084612bb589846134fd565b612bbf919061351c565b60105460125460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350169063f305d71990839060c40160606040518083038185885af1158015612c31573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c5691906137ea565b505050505b60095415612c9557600084612c7088846134fd565b612c7a919061351c565b600b54909150612c93906001600160a01b0316826130bb565b505b600a5415612ccf57600084612caa87846134fd565b612cb4919061351c565b600c54909150612ccd906001600160a01b0316826130bb565b505b50506012805460ff60a81b191690555050505050505b6012546001600160a01b03861660009081526014602052604090205460ff600160a81b909204821615911680612d3357506001600160a01b03851660009081526014602052604090205460ff165b15612d3c575060005b600f54600160a01b900460ff168015612d6357506011546001600160a01b03878116911614155b8015612d7d57506011546001600160a01b03868116911614155b15612d86575060005b8015612e6a576001600160a01b03851660009081526017602052604081205460ff168015612dc157506011546001600160a01b038881169116145b15612e10575061038460006103e8612dd983886134fd565b612de3919061351c565b9050612def81876136ef565b600d54909650612e0a9089906001600160a01b031683612f67565b50612e68565b6011546001600160a01b0390811690881603612e2f5750600654612e34565b506007545b60006103e8612e4383886134fd565b612e4d919061351c565b9050612e5981876136ef565b9550612e66883083612f67565b505b505b612e75868686612f67565b505050505050565b6001600160a01b03821660009081526015602052604090205481151560ff909116151503612f135760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c756500000000000000006064820152608401610c8e565b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316612f8d5760405162461bcd60e51b8152600401610c8e90613667565b6001600160a01b038216612fb35760405162461bcd60e51b8152600401610c8e906136ac565b6001600160a01b0383166000908152602081905260409020548181101561302b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c8e565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290613062908490613491565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130ae91815260200190565b60405180910390a3612470565b8047101561310b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610c8e565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613158576040519150601f19603f3d011682016040523d82523d6000602084013e61315d565b606091505b50509050806126655760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610c8e565b600060208083528351808285015260005b81811015613201578581018301518582016040015282016131e5565b81811115613213576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461247457600080fd5b6000806040838503121561325157600080fd5b823561325c81613229565b946020939093013593505050565b801515811461247457600080fd5b6000806040838503121561328b57600080fd5b823561329681613229565b915060208301356132a68161326a565b809150509250929050565b6000602082840312156132c357600080fd5b81356132ce81613229565b9392505050565b6000806000606084860312156132ea57600080fd5b83356132f581613229565b9250602084013561330581613229565b929592945050506040919091013590565b60006020828403121561332857600080fd5b81356132ce8161326a565b6000806040838503121561334657600080fd5b50508035926020909101359150565b60006020828403121561336757600080fd5b5035919050565b6000806040838503121561338157600080fd5b823561338c81613229565b915060208301356132a681613229565b6000806000606084860312156133b157600080fd5b505081359360208301359350604090920135919050565b600181811c908216806133dc57607f821691505b6020821081036133fc57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f4163636f756e7420697320616c72656164792073657420746f207468617420736040820152637461746560e01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082198211156134a4576134a461347b565b500190565b6020808252601a908201527f43616c6c6572206973206e6f7420746865204f70657261746f72000000000000604082015260600190565b6000602082840312156134f257600080fd5b81516132ce81613229565b60008160001904831182151516156135175761351761347b565b500290565b60008261353957634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561357957816000190482111561355f5761355f61347b565b8085161561356c57918102915b93841c9390800290613543565b509250929050565b60008261359057506001610c5e565b8161359d57506000610c5e565b81600181146135b357600281146135bd576135d9565b6001915050610c5e565b60ff8411156135ce576135ce61347b565b50506001821b610c5e565b5060208310610133831016604e8410600b84101617156135fc575081810a610c5e565b613606838361353e565b806000190482111561361a5761361a61347b565b029392505050565b60006132ce60ff841683613581565b60006020828403121561364357600080fd5b5051919050565b60006020828403121561365c57600080fd5b81516132ce8161326a565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156137015761370161347b565b500390565b6020808252603b908201527f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560408201527f647320746865206d61785472616e73616374696f6e416d6f756e740000000000606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137c95784516001600160a01b0316835293830193918301916001016137a4565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156137ff57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c462c2205b5d8620f178a44748315c153ee0d78ab5e978f30ea9bcda66604e5e64736f6c634300080e0033

Deployed ByteCode Sourcemap

15481:18943:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16870:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;16870:55:0;;;;;;;;2809:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3723:169::-;;;;;;;;;;-1:-1:-1;3723:169:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;3723:169:0;1254:187:1;33908:364:0;;;;;;;;;;-1:-1:-1;33908:364:0;;;;;:::i;:::-;;:::i;:::-;;15602:34;;;;;;;;;;;;;;;;16110:52;;;;;;;;;;-1:-1:-1;16110:52:0;;;;-1:-1:-1;;;16110:52:0;;;;;;16171:41;;;;;;;;;;-1:-1:-1;16171:41:0;;;;-1:-1:-1;;;;;16171:41:0;;;;;;-1:-1:-1;;;;;2147:32:1;;;2129:51;;2117:2;2102:18;16171:41:0;1956:230:1;3130:108:0;;;;;;;;;;-1:-1:-1;3218:12:0;;3130:108;;34280:141;;;;;;;;;;-1:-1:-1;34280:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;34379:34:0;34355:4;34379:34;;;:25;:34;;;;;;;;;34280:141;25005:318;;;;;;;;;;-1:-1:-1;25005:318:0;;;;;:::i;:::-;;:::i;31359:43::-;;;;;;;;;;-1:-1:-1;31359:43:0;;;;;;;;3900:573;;;;;;;;;;-1:-1:-1;3900:573:0;;;;;:::i;:::-;;:::i;31668:272::-;;;;;;;;;;-1:-1:-1;31668:272:0;;;;;:::i;:::-;;:::i;15562:27::-;;;;;;;;;;;;;;;;16814:49;;;;;;;;;;-1:-1:-1;16814:49:0;;;;;;;;3029:93;;;;;;;;;;-1:-1:-1;3029:93:0;;3112:2;3292:36:1;;3280:2;3265:18;3029:93:0;3150:184:1;4481:215:0;;;;;;;;;;-1:-1:-1;4481:215:0;;;;;:::i;:::-;;:::i;21144:91::-;;;;;;;;;;-1:-1:-1;21144:91:0;;;;;:::i;:::-;-1:-1:-1;;;;;21216:11:0;21192:4;21216:11;;;:6;:11;;;;;;;;;21144:91;15529:26;;;;;;;;;;;;;;;;16219:29;;;;;;;;;;-1:-1:-1;16219:29:0;;;;-1:-1:-1;;;;;16219:29:0;;;23570:125;;;;;;;;;;-1:-1:-1;23570:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;23659:28:0;23635:4;23659:28;;;:19;:28;;;;;;;;;23570:125;24399:272;;;;;;;;;;-1:-1:-1;24399:272:0;;;;;:::i;:::-;;:::i;32865:347::-;;;;;;;;;;-1:-1:-1;32865:347:0;;;;;:::i;:::-;;:::i;15958:68::-;;;;;;;;;;-1:-1:-1;15958:68:0;;;;-1:-1:-1;;;;;15958:68:0;;;15871:72;;;;;;;;;;-1:-1:-1;15871:72:0;;;;-1:-1:-1;;;;;15871:72:0;;;16956:55;;;;;;;;;;;;;;;;22142:497;;;;;;;;;;-1:-1:-1;22142:497:0;;;;;:::i;:::-;;:::i;23703:265::-;;;;;;;;;;-1:-1:-1;23703:265:0;;;;;:::i;:::-;;:::i;3246:127::-;;;;;;;;;;-1:-1:-1;3246:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3347:18:0;3320:7;3347:18;;;;;;;;;;;;3246:127;1996:148;;;;;;;;;;;;;:::i;16660:29::-;;;;;;;;;;;;;;;;15717:70;;;;;;;;;;-1:-1:-1;15717:70:0;;;;-1:-1:-1;;;;;15717:70:0;;;16335:28;;;;;;;;;;-1:-1:-1;16335:28:0;;;;-1:-1:-1;;;16335:28:0;;;;;;1780:79;;;;;;;;;;-1:-1:-1;1845:6:0;;-1:-1:-1;;;;;1845:6:0;1780:79;;32500:319;;;;;;;;;;-1:-1:-1;32500:319:0;;;;;:::i;:::-;;:::i;32233:259::-;;;;;;;;;;-1:-1:-1;32233:259:0;;;;;:::i;:::-;;:::i;2917:104::-;;;;;;;;;;;;;:::i;22647:261::-;;;;;;;;;;-1:-1:-1;22647:261:0;;;;;:::i;:::-;;:::i;25331:341::-;;;;;;;;;;-1:-1:-1;25331:341:0;;;;;:::i;:::-;;:::i;4704:413::-;;;;;;;;;;-1:-1:-1;4704:413:0;;;;;:::i;:::-;;:::i;24679:318::-;;;;;;;;;;-1:-1:-1;24679:318:0;;;;;:::i;:::-;;:::i;31948:145::-;;;;;;;;;;-1:-1:-1;31948:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;32047:38:0;32023:4;32047:38;;;:29;:38;;;;;;;;;31948:145;3381:175;;;;;;;;;;-1:-1:-1;3381:175:0;;;;;:::i;:::-;;:::i;32101:124::-;;;;;;;;;;;;;:::i;31012:237::-;;;;;;;;;;-1:-1:-1;31012:237:0;;;;;:::i;:::-;;:::i;16505:58::-;;;;;;;;;;-1:-1:-1;16505:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;33220:680;;;;;;;;;;-1:-1:-1;33220:680:0;;;;;:::i;:::-;;:::i;15679:29::-;;;;;;;;;;;;;;;;20791:200;;;;;;;;;;;;;:::i;16702:38::-;;;;;;;;;;-1:-1:-1;16702:38:0;;;;;;;;23270:292;;;;;;;;;;-1:-1:-1;23270:292:0;;;;;:::i;:::-;;:::i;15643:29::-;;;;;;;;;;;;;;;;16033:68;;;;;;;;;;-1:-1:-1;16033:68:0;;;;-1:-1:-1;;;;;16033:68:0;;;20419:318;;;;;;;;;;-1:-1:-1;20419:318:0;;;;;:::i;:::-;;:::i;3564:151::-;;;;;;;;;;-1:-1:-1;3564:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3680:18:0;;;3653:7;3680:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3564:151;16403:33;;;;;;;;;;;;;;;;2152:244;;;;;;;;;;-1:-1:-1;2152:244:0;;;;;:::i;:::-;;:::i;23976:415::-;;;;;;;;;;-1:-1:-1;23976:415:0;;;;;:::i;:::-;;:::i;21003:131::-;;;;;;;;;;-1:-1:-1;21003:131:0;;;;;:::i;:::-;;:::i;16576:31::-;;;;;;;;;;;;;;;;21247:441;;;;;;;;;;-1:-1:-1;21247:441:0;;;;;:::i;:::-;;:::i;15794:70::-;;;;;;;;;;-1:-1:-1;15794:70:0;;;;-1:-1:-1;;;;;15794:70:0;;;2809:100;2863:13;2896:5;2889:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2809:100;:::o;3723:169::-;3806:4;3823:39;1183:10;3846:7;3855:6;3823:8;:39::i;:::-;-1:-1:-1;3880:4:0;3723:169;;;;;:::o;33908:364::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;34034:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;:45;::::1;;:34;::::0;;::::1;:45;;::::0;34012:132:::1;;;;-1:-1:-1::0;;;34012:132:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;34155:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;;;;:44;;-1:-1:-1;;34155:44:0::1;::::0;::::1;;::::0;;::::1;::::0;;;34215:49;;1394:41:1;;;34215:49:0::1;::::0;1367:18:1;34215:49:0::1;;;;;;;;33908:364:::0;;:::o;25005:318::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;25105:10:::1;::::0;-1:-1:-1;;;;;25105:10:0;;::::1;25090:25:::0;;::::1;::::0;25082:73:::1;;;::::0;-1:-1:-1;;;25082:73:0;;6052:2:1;25082:73:0::1;::::0;::::1;6034:21:1::0;6091:2;6071:18;;;6064:30;6130:34;6110:18;;;6103:62;-1:-1:-1;;;6181:18:1;;;6174:33;6224:19;;25082:73:0::1;5850:399:1::0;25082:73:0::1;-1:-1:-1::0;;;;;21780:19:0;;;:23;25166:69:::1;;;::::0;-1:-1:-1;;;25166:69:0;;6456:2:1;25166:69:0::1;::::0;::::1;6438:21:1::0;;;6475:18;;;6468:30;6534:34;6514:18;;;6507:62;6586:18;;25166:69:0::1;6254:356:1::0;25166:69:0::1;25246:10;:24:::0;;-1:-1:-1;;;;;;25246:24:0::1;-1:-1:-1::0;;;;;25246:24:0;::::1;::::0;;::::1;::::0;;;25286:29:::1;::::0;2129:51:1;;;25286:29:0::1;::::0;2117:2:1;2102:18;25286:29:0::1;;;;;;;;25005:318:::0;:::o;3900:573::-;-1:-1:-1;;;;;4084:19:0;;4040:4;4084:19;;;:11;:19;;;;;;;;1183:10;4084:33;;;;;;;;-1:-1:-1;;4132:37:0;;4128:265;;4214:6;4194:16;:26;;4186:79;;;;-1:-1:-1;;;4186:79:0;;6817:2:1;4186:79:0;;;6799:21:1;6856:2;6836:18;;;6829:30;6895:34;6875:18;;;6868:62;-1:-1:-1;;;6946:18:1;;;6939:38;6994:19;;4186:79:0;6615:404:1;4186:79:0;4309:57;4318:6;1183:10;4359:6;4340:16;:25;4309:8;:57::i;:::-;4405:36;4415:6;4423:9;4434:6;4405:9;:36::i;:::-;-1:-1:-1;4461:4:0;;3900:573;-1:-1:-1;;;;3900:573:0:o;31668:272::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;31762:21:::1;::::0;::::1;;31752:31;;::::0;::::1;;::::0;31744:82:::1;;;::::0;-1:-1:-1;;;31744:82:0;;7226:2:1;31744:82:0::1;::::0;::::1;7208:21:1::0;7265:2;7245:18;;;7238:30;7304:34;7284:18;;;7277:62;-1:-1:-1;;;7355:18:1;;;7348:36;7401:19;;31744:82:0::1;7024:402:1::0;31744:82:0::1;31837:21;:30:::0;;-1:-1:-1;;31837:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;;31883:49:::1;::::0;31837:30:::1;31910:21:::0;;;1419:14:1;1412:22;1394:41;;31883:49:0::1;::::0;1382:2:1;1367:18;31883:49:0::1;1254:187:1::0;4481:215:0;1183:10;4569:4;4618:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4618:34:0;;;;;;;;;;4569:4;;4586:80;;4609:7;;4618:47;;4655:10;;4618:47;:::i;:::-;4586:8;:80::i;24399:272::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;24534:6:::1;24498:42;;:32;;;;;;;;;;;:42;;::::0;24490:121:::1;;;::::0;-1:-1:-1;;;24490:121:0;;7898:2:1;24490:121:0::1;::::0;::::1;7880:21:1::0;7937:2;7917:18;;;7910:30;7976:34;7956:18;;;7949:62;8047:34;8027:18;;;8020:62;-1:-1:-1;;;8098:19:1;;;8091:33;8141:19;;24490:121:0::1;7696:470:1::0;24490:121:0::1;24622:32;:41:::0;;;::::1;;-1:-1:-1::0;;;24622:41:0::1;-1:-1:-1::0;;;;24622:41:0;;::::1;::::0;;;::::1;::::0;;24399:272::o;32865:347::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;32978:26:::1;::::0;::::1;;32968:36;;::::0;::::1;;::::0;32946:137:::1;;;::::0;-1:-1:-1;;;32946:137:0;;8373:2:1;32946:137:0::1;::::0;::::1;8355:21:1::0;8412:2;8392:18;;;8385:30;8451:34;8431:18;;;8424:62;-1:-1:-1;;;8502:18:1;;;8495:48;8560:19;;32946:137:0::1;8171:414:1::0;32946:137:0::1;33094:26;:35:::0;;-1:-1:-1;;33094:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;33145:59:::1;::::0;33094:35:::1;33177:26:::0;;;1419:14:1;1412:22;1394:41;;33145:59:0::1;::::0;1382:2:1;1367:18;33145:59:0::1;1254:187:1::0;22142:497:0;20185:8;;-1:-1:-1;;;;;20185:8:0;1183:10;20185:24;20177:62;;;;-1:-1:-1;;;20177:62:0;;;;;;;:::i;:::-;22256:15:::1;::::0;-1:-1:-1;;;;;22256:15:0;;::::1;22234:38:::0;;::::1;::::0;22226:86:::1;;;::::0;-1:-1:-1;;;22226:86:0;;9147:2:1;22226:86:0::1;::::0;::::1;9129:21:1::0;9186:2;9166:18;;;9159:30;9225:34;9205:18;;;9198:62;-1:-1:-1;;;9276:18:1;;;9269:33;9319:19;;22226:86:0::1;8945:399:1::0;22226:86:0::1;22370:15;::::0;22328:59:::1;::::0;-1:-1:-1;;;;;22370:15:0;;::::1;::::0;22328:59;::::1;::::0;::::1;::::0;22370:15:::1;::::0;22328:59:::1;22398:15;:48:::0;;-1:-1:-1;;;;;;22398:48:0::1;-1:-1:-1::0;;;;;22398:48:0;::::1;::::0;;::::1;::::0;;;22500:25:::1;::::0;;-1:-1:-1;;;22500:25:0;;;;-1:-1:-1;;22398:48:0;22500:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;22398:48;22500:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22482:69:0::1;;22560:4;22567:15;;;;;;;;;-1:-1:-1::0;;;;;22567:15:0::1;-1:-1:-1::0;;;;;22567:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22482:108;::::0;-1:-1:-1;;;;;;22482:108:0::1;::::0;;;;;;-1:-1:-1;;;;;9835:15:1;;;22482:108:0::1;::::0;::::1;9817:34:1::0;9887:15;;9867:18;;;9860:43;9752:18;;22482:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22601:13;:30:::0;;-1:-1:-1;;;;;;22601:30:0::1;-1:-1:-1::0;;;;;22601:30:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;22142:497:0:o;23703:265::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;23807:3:::1;23796:7;:14;;:33;;;;;23826:3;23814:8;:15;;23796:33;23788:72;;;::::0;-1:-1:-1;;;23788:72:0;;10116:2:1;23788:72:0::1;::::0;::::1;10098:21:1::0;10155:2;10135:18;;;10128:30;10194:28;10174:18;;;10167:56;10240:18;;23788:72:0::1;9914:350:1::0;23788:72:0::1;23871:6;:16:::0;;;23898:7:::1;:18:::0;;;23932:28:::1;::::0;;10443:25:1;;;10499:2;10484:18;;10477:34;;;23932:28:0::1;::::0;10416:18:1;23932:28:0::1;;;;;;;;23703:265:::0;;:::o;1996:148::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;2087:6:::1;::::0;2066:40:::1;::::0;2103:1:::1;::::0;-1:-1:-1;;;;;2087:6:0::1;::::0;2066:40:::1;::::0;2103:1;;2066:40:::1;2117:6;:19:::0;;-1:-1:-1;;;;;;2117:19:0::1;::::0;;1996:148::o;32500:319::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;32602:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:49;::::1;;:38;::::0;;::::1;:49;;::::0;32594:98:::1;;;;-1:-1:-1::0;;;32594:98:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;32703:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:48;;-1:-1:-1;;32703:48:0::1;::::0;::::1;;::::0;;::::1;::::0;;;32767:44;;1394:41:1;;;32767:44:0::1;::::0;1367:18:1;32767:44:0::1;1254:187:1::0;32233:259:0;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;32335:2:::1;32327:4;:10;;32319:68;;;::::0;-1:-1:-1;;;32319:68:0;;10724:2:1;32319:68:0::1;::::0;::::1;10706:21:1::0;10763:2;10743:18;;;10736:30;10802:34;10782:18;;;10775:62;-1:-1:-1;;;10853:18:1;;;10846:43;10906:19;;32319:68:0::1;10522:409:1::0;32319:68:0::1;32398:18;:25:::0;;;32439:45:::1;::::0;160:25:1;;;32439:45:0::1;::::0;133:18:1;32439:45:0::1;14:177:1::0;2917:104:0;2973:13;3006:7;2999:14;;;;;:::i;22647:261::-;20185:8;;-1:-1:-1;;;;;20185:8:0;1183:10;20185:24;20177:62;;;;-1:-1:-1;;;20177:62:0;;;;;;;:::i;:::-;22759:13:::1;::::0;-1:-1:-1;;;;;22759:13:0;;::::1;22751:21:::0;;::::1;::::0;22743:103:::1;;;::::0;-1:-1:-1;;;22743:103:0;;11138:2:1;22743:103:0::1;::::0;::::1;11120:21:1::0;11177:2;11157:18;;;11150:30;11216:34;11196:18;;;11189:62;11287:34;11267:18;;;11260:62;-1:-1:-1;;;11338:19:1;;;11331:36;11384:19;;22743:103:0::1;10936:473:1::0;22743:103:0::1;22859:41;22888:4;22894:5;22859:28;:41::i;:::-;22647:261:::0;;:::o;25331:341::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;25438:12:::1;::::0;-1:-1:-1;;;;;25438:12:0;;::::1;25421:29:::0;;::::1;::::0;25413:79:::1;;;::::0;-1:-1:-1;;;25413:79:0;;11616:2:1;25413:79:0::1;::::0;::::1;11598:21:1::0;11655:2;11635:18;;;11628:30;11694:34;11674:18;;;11667:62;-1:-1:-1;;;11745:18:1;;;11738:35;11790:19;;25413:79:0::1;11414:401:1::0;25413:79:0::1;-1:-1:-1::0;;;;;21780:19:0;;;:23;25503:73:::1;;;::::0;-1:-1:-1;;;25503:73:0;;12022:2:1;25503:73:0::1;::::0;::::1;12004:21:1::0;12061:2;12041:18;;;12034:30;12100:34;12080:18;;;12073:62;-1:-1:-1;;;12151:18:1;;;12144:32;12193:19;;25503:73:0::1;11820:398:1::0;25503:73:0::1;25587:12;:28:::0;;-1:-1:-1;;;;;;25587:28:0::1;-1:-1:-1::0;;;;;25587:28:0;::::1;::::0;;::::1;::::0;;;25631:33:::1;::::0;2129:51:1;;;25631:33:0::1;::::0;2117:2:1;2102:18;25631:33:0::1;1956:230:1::0;4704:413:0;1183:10;4797:4;4841:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4841:34:0;;;;;;;;;;4894:35;;;;4886:85;;;;-1:-1:-1;;;4886:85:0;;12425:2:1;4886:85:0;;;12407:21:1;12464:2;12444:18;;;12437:30;12503:34;12483:18;;;12476:62;-1:-1:-1;;;12554:18:1;;;12547:35;12599:19;;4886:85:0;12223:401:1;4886:85:0;5007:67;1183:10;5030:7;5058:15;5039:16;:34;5007:8;:67::i;:::-;-1:-1:-1;5105:4:0;;4704:413;-1:-1:-1;;;4704:413:0:o;24679:318::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;24779:10:::1;::::0;-1:-1:-1;;;;;24779:10:0;;::::1;24764:25:::0;;::::1;::::0;24756:73:::1;;;::::0;-1:-1:-1;;;24756:73:0;;12831:2:1;24756:73:0::1;::::0;::::1;12813:21:1::0;12870:2;12850:18;;;12843:30;12909:34;12889:18;;;12882:62;-1:-1:-1;;;12960:18:1;;;12953:33;13003:19;;24756:73:0::1;12629:399:1::0;24756:73:0::1;-1:-1:-1::0;;;;;21780:19:0;;;:23;24840:69:::1;;;::::0;-1:-1:-1;;;24840:69:0;;13235:2:1;24840:69:0::1;::::0;::::1;13217:21:1::0;;;13254:18;;;13247:30;13313:34;13293:18;;;13286:62;13365:18;;24840:69:0::1;13033:356:1::0;24840:69:0::1;24920:10;:24:::0;;-1:-1:-1;;;;;;24920:24:0::1;-1:-1:-1::0;;;;;24920:24:0;::::1;::::0;;::::1;::::0;;;24960:29:::1;::::0;2129:51:1;;;24960:29:0::1;::::0;2117:2:1;2102:18;24960:29:0::1;1956:230:1::0;3381:175:0;3467:4;3484:42;1183:10;3508:9;3519:6;3484:9;:42::i;32101:124::-;32149:7;32213:4;32192:18;;32176:13;3218:12;;;3130:108;32176:13;:34;;;;:::i;:::-;:41;;;;:::i;:::-;32169:48;;32101:124;:::o;31012:237::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;31127:6:::1;31111:13;3218:12:::0;;;3130:108;31111:13:::1;:22;;;;:::i;:::-;31099:9;:34;31091:109;;;::::0;-1:-1:-1;;;31091:109:0;;13991:2:1;31091:109:0::1;::::0;::::1;13973:21:1::0;14030:2;14010:18;;;14003:30;14069:34;14049:18;;;14042:62;14140:32;14120:18;;;14113:60;14190:19;;31091:109:0::1;13789:426:1::0;31091:109:0::1;31211:18;:30:::0;31012:237::o;33220:680::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;33441:4:::1;33421:16;3112:2:::0;33421::::1;:16;:::i;:::-;3218:12:::0;;33404:34:::1;;;;:::i;:::-;:41;;;;:::i;:::-;33375:24;:70;;:158;;;;-1:-1:-1::0;33529:4:0::1;33509:16;3112:2:::0;33509::::1;:16;:::i;:::-;3218:12:::0;;33492:34:::1;;;;:::i;:::-;:41;;;;:::i;:::-;33463:25;:70;;33375:158;33353:272;;;::::0;-1:-1:-1;;;33353:272:0;;15805:2:1;33353:272:0::1;::::0;::::1;15787:21:1::0;15844:2;15824:18;;;15817:30;15883:34;15863:18;;;15856:62;15954:33;15934:18;;;15927:61;16005:19;;33353:272:0::1;15603:427:1::0;33353:272:0::1;33693:16;3112:2:::0;33693::::1;:16;:::i;:::-;33664:46;::::0;:24;:46:::1;:::i;:::-;33637:23;:73:::0;33777:16:::1;3112:2:::0;33777::::1;:16;:::i;:::-;33748:46;::::0;:25;:46:::1;:::i;:::-;33721:24;:73:::0;;;33842:23:::1;::::0;33810:82:::1;::::0;::::1;::::0;::::1;::::0;10443:25:1;;10499:2;10484:18;;10477:34;10431:2;10416:18;;10269:248;20791:200:0;20310:8;;-1:-1:-1;;;;;20310:8:0;1183:10;20310:24;;:51;;-1:-1:-1;1845:6:0;;-1:-1:-1;;;;;1845:6:0;1183:10;20338:23;20310:51;20302:89;;;;-1:-1:-1;;;20302:89:0;;;;;;;:::i;:::-;20858:13:::1;::::0;-1:-1:-1;;;20858:13:0;::::1;;;:22;20850:61;;;::::0;-1:-1:-1;;;20850:61:0;;16237:2:1;20850:61:0::1;::::0;::::1;16219:21:1::0;16276:2;16256:18;;;16249:30;16315:28;16295:18;;;16288:56;16361:18;;20850:61:0::1;16035:350:1::0;20850:61:0::1;20922:13;:20:::0;;-1:-1:-1;;;;20922:20:0::1;-1:-1:-1::0;;;20922:20:0::1;::::0;;20966:15:::1;20953:10;:28:::0;20791:200::o;23270:292::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23365:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:40;::::1;;:28;::::0;;::::1;:40;;::::0;23357:95:::1;;;::::0;-1:-1:-1;;;23357:95:0;;16592:2:1;23357:95:0::1;::::0;::::1;16574:21:1::0;16631:2;16611:18;;;16604:30;16670:34;16650:18;;;16643:62;-1:-1:-1;;;16721:18:1;;;16714:40;16771:19;;23357:95:0::1;16390:406:1::0;23357:95:0::1;-1:-1:-1::0;;;;;23463:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;23463:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;23520:34;;1394:41:1;;;23520:34:0::1;::::0;1367:18:1;23520:34:0::1;1254:187:1::0;20419:318:0;20185:8;;-1:-1:-1;;;;;20185:8:0;1183:10;20185:24;20177:62;;;;-1:-1:-1;;;20177:62:0;;;;;;;:::i;:::-;20523:8:::1;::::0;-1:-1:-1;;;;;20523:8:0;;::::1;20509:22:::0;;::::1;::::0;20501:66:::1;;;::::0;-1:-1:-1;;;20501:66:0;;17003:2:1;20501:66:0::1;::::0;::::1;16985:21:1::0;;;17022:18;;;17015:30;17081:34;17061:18;;;17054:62;17133:18;;20501:66:0::1;16801:356:1::0;20501:66:0::1;-1:-1:-1::0;;;;;21780:19:0;;;:23;20578:72:::1;;;::::0;-1:-1:-1;;;20578:72:0;;17364:2:1;20578:72:0::1;::::0;::::1;17346:21:1::0;17403:2;17383:18;;;17376:30;17442:34;17422:18;;;17415:62;-1:-1:-1;;;17493:18:1;;;17486:34;17537:19;;20578:72:0::1;17162:400:1::0;20578:72:0::1;20661:8;:21:::0;;-1:-1:-1;;;;;;20661:21:0::1;-1:-1:-1::0;;;;;20661:21:0;::::1;::::0;;::::1;::::0;;;20698:31:::1;::::0;2129:51:1;;;20698:31:0::1;::::0;2117:2:1;2102:18;20698:31:0::1;1956:230:1::0;2152:244:0;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2241:22:0;::::1;2233:73;;;::::0;-1:-1:-1;;;2233:73:0;;17769:2:1;2233:73:0::1;::::0;::::1;17751:21:1::0;17808:2;17788:18;;;17781:30;17847:34;17827:18;;;17820:62;-1:-1:-1;;;17898:18:1;;;17891:36;17944:19;;2233:73:0::1;17567:402:1::0;2233:73:0::1;2343:6;::::0;2322:38:::1;::::0;-1:-1:-1;;;;;2322:38:0;;::::1;::::0;2343:6:::1;::::0;2322:38:::1;::::0;2343:6:::1;::::0;2322:38:::1;2371:6;:17:::0;;-1:-1:-1;;;;;;2371:17:0::1;-1:-1:-1::0;;;;;2371:17:0;;;::::1;::::0;;;::::1;::::0;;2152:244::o;23976:415::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;24147:10;24110:34:::1;24126:18:::0;24110:13;:34:::1;:::i;:::-;:47;;;;:::i;:::-;24161:3;24110:54;24102:96;;;::::0;-1:-1:-1;;;24102:96:0;;18176:2:1;24102:96:0::1;::::0;::::1;18158:21:1::0;18215:2;18195:18;;;18188:30;18254:31;18234:18;;;18227:59;18303:18;;24102:96:0::1;17974:353:1::0;24102:96:0::1;24209:9;:25:::0;;;24245:14:::1;:35:::0;;;24291:9:::1;:22:::0;;;24329:54:::1;::::0;;18534:25:1;;;18590:2;18575:18;;18568:34;;;18618:18;;;18611:34;;;24329:54:0::1;::::0;18522:2:1;18507:18;24329:54:0::1;;;;;;;23976:415:::0;;;:::o;21003:131::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21075:10:0;::::1;;::::0;;;:6:::1;:10;::::0;;;;;::::1;;21067:30;;;::::0;-1:-1:-1;;;21067:30:0;;18858:2:1;21067:30:0::1;::::0;::::1;18840:21:1::0;18897:1;18877:18;;;18870:29;-1:-1:-1;;;18915:18:1;;;18908:37;18962:18;;21067:30:0::1;18656:330:1::0;21067:30:0::1;-1:-1:-1::0;;;;;21108:10:0::1;21121:5;21108:10:::0;;;:6:::1;:10;::::0;;;;:18;;-1:-1:-1;;21108:18:0::1;::::0;;21003:131::o;21247:441::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1183:10;1907:22;1899:67;;;;-1:-1:-1;;;1899:67:0;;;;;;;:::i;:::-;21343:4:::1;-1:-1:-1::0;;;;;21326:22:0;::::1;::::0;21318:67:::1;;;::::0;-1:-1:-1;;;21318:67:0;;19193:2:1;21318:67:0::1;::::0;::::1;19175:21:1::0;;;19212:18;;;19205:30;19271:34;19251:18;;;19244:62;19323:18;;21318:67:0::1;18991:356:1::0;21318:67:0::1;-1:-1:-1::0;;;;;21400:21:0;::::1;21396:126;;21438:51;::::0;21446:10:::1;::::0;21467:21:::1;21438:51:::0;::::1;;;::::0;::::1;::::0;;;21467:21;21446:10;21438:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;21396:126;21594:35;::::0;-1:-1:-1;;;21594:35:0;;21623:4:::1;21594:35;::::0;::::1;2129:51:1::0;21559:5:0;;21532:17:::1;::::0;-1:-1:-1;;;;;21594:20:0;::::1;::::0;::::1;::::0;2102:18:1;;21594:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21640:40;::::0;-1:-1:-1;;;21640:40:0;;21660:10:::1;21640:40;::::0;::::1;19715:51:1::0;19782:18;;;19775:34;;;21576:53:0;;-1:-1:-1;;;;;;21640:19:0;::::1;::::0;::::1;::::0;19688:18:1;;21640:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21307:381;;1977:1;21247:441:::0;:::o;6872:380::-;-1:-1:-1;;;;;7008:19:0;;7000:68;;;;-1:-1:-1;;;7000:68:0;;20272:2:1;7000:68:0;;;20254:21:1;20311:2;20291:18;;;20284:30;20350:34;20330:18;;;20323:62;-1:-1:-1;;;20401:18:1;;;20394:34;20445:19;;7000:68:0;20070:400:1;7000:68:0;-1:-1:-1;;;;;7087:21:0;;7079:68;;;;-1:-1:-1;;;7079:68:0;;20677:2:1;7079:68:0;;;20659:21:1;20716:2;20696:18;;;20689:30;20755:34;20735:18;;;20728:62;-1:-1:-1;;;20806:18:1;;;20799:32;20848:19;;7079:68:0;20475:398:1;7079:68:0;-1:-1:-1;;;;;7160:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7212:32;;160:25:1;;;7212:32:0;;133:18:1;7212:32:0;;;;;;;6872:380;;;:::o;25680:5294::-;-1:-1:-1;;;;;25813:18:0;;25805:68;;;;-1:-1:-1;;;25805:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25892:16:0;;25884:64;;;;-1:-1:-1;;;25884:64:0;;;;;;;:::i;:::-;25974:10;;:14;25970:200;;26040:11;;26026:10;;26008:28;;:15;:28;:::i;:::-;:43;;:68;;;;-1:-1:-1;26063:13:0;;-1:-1:-1;;;;;26055:21:0;;;26063:13;;26055:21;26008:68;:91;;;;-1:-1:-1;26080:19:0;;;;26008:91;26005:154;;;-1:-1:-1;;;;;26126:10:0;;;;;;:6;:10;;;;;:17;;-1:-1:-1;;26126:17:0;26139:4;26126:17;;;26005:154;26187:6;26197:1;26187:11;26184:92;;26215:28;26231:4;26237:2;26241:1;26215:15;:28::i;:::-;25680:5294;;;:::o;26184:92::-;-1:-1:-1;;;;;26296:25:0;;;;;;:19;:25;;;;;;;;26295:26;:54;;;;-1:-1:-1;;;;;;26326:23:0;;;;;;:19;:23;;;;;;;;26325:24;26295:54;26292:134;;;26374:13;;-1:-1:-1;;;26374:13:0;;;;26366:48;;;;-1:-1:-1;;;26366:48:0;;22020:2:1;26366:48:0;;;22002:21:1;22059:2;22039:18;;;22032:30;-1:-1:-1;;;22078:18:1;;;22071:52;22140:18;;26366:48:0;21818:346:1;26366:48:0;26442:21;;;;26438:407;;;-1:-1:-1;;;;;26484:35:0;;;;;;:29;:35;;;;;;;;:44;;;:107;;-1:-1:-1;;;;;;26549:33:0;;;;;;:29;:33;;;;;;;;:42;26484:107;:147;;;;-1:-1:-1;26618:13:0;;-1:-1:-1;;;;;26612:19:0;;;26618:13;;26612:19;;26484:147;26480:354;;;-1:-1:-1;;;;;3347:18:0;;26666:12;3347:18;;;;;;;;;;;26742:17;:15;:17::i;:::-;26722:16;26732:6;26722:7;:16;:::i;:::-;:37;;26714:104;;;;-1:-1:-1;;;26714:104:0;;22371:2:1;26714:104:0;;;22353:21:1;22410:2;22390:18;;;22383:30;22449:34;22429:18;;;22422:62;-1:-1:-1;;;22500:18:1;;;22493:52;22562:19;;26714:104:0;22169:418:1;26714:104:0;26647:187;26480:354;26861:26;;;;26857:770;;;26927:13;;-1:-1:-1;;;;;26919:21:0;;;26927:13;;26919:21;;:44;;-1:-1:-1;26950:13:0;;-1:-1:-1;;;;;26944:19:0;;;26950:13;;26944:19;26919:44;26918:107;;;;-1:-1:-1;;;;;;26985:31:0;;;;;;:25;:31;;;;;;;;:40;26918:107;:169;;;;-1:-1:-1;;;;;;27047:29:0;;;;;;:25;:29;;;;;;;;:40;26918:169;26914:702;;;27134:13;;-1:-1:-1;;;;;27134:13:0;;;27126:21;;;;27122:479;;27216:23;;27206:6;:33;;27172:180;;;;-1:-1:-1;;;27172:180:0;;;;;;;:::i;:::-;27122:479;;;27445:24;;27435:6;:34;;27401:180;;;;-1:-1:-1;;;27401:180:0;;;;;;;:::i;:::-;27698:4;27649:28;3347:18;;;;;;;;;;;27756;;27732:42;;;;;;;27791:33;;-1:-1:-1;27816:8:0;;-1:-1:-1;;;27816:8:0;;;;27815:9;27791:33;:82;;;;-1:-1:-1;;;;;;27842:31:0;;;;;;:25;:31;;;;;;;;27841:32;27791:82;:125;;;;-1:-1:-1;;;;;;27891:25:0;;;;;;:19;:25;;;;;;;;27890:26;27791:125;:153;;;;-1:-1:-1;;;;;;27921:23:0;;;;;;:19;:23;;;;;;;;27920:24;27791:153;27787:2111;;;27971:8;:15;;-1:-1:-1;;;;27971:15:0;-1:-1:-1;;;27971:15:0;;;28058:14;;27971:15;;28081:1;;28075:3;;28035:37;;:20;:37;:::i;:::-;:43;;;;:::i;:::-;:47;;;;:::i;:::-;28003:79;;28097:29;28175:1;28169:3;28152:14;;28129:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;:47;;;;:::i;:::-;28097:79;;28205:18;28261:3;28249:9;;28226:20;:32;;;;:::i;:::-;:38;;;;:::i;:::-;28205:59;;28279:18;28335:3;28323:9;;28300:20;:32;;;;:::i;:::-;:38;;;;:::i;:::-;28279:59;-1:-1:-1;28355:20:0;28279:59;28379:34;28403:10;28379:21;:34;:::i;:::-;:47;;;;:::i;:::-;28467:16;;;28481:1;28467:16;;;;;;;;28355:71;;-1:-1:-1;28443:21:0;;28467:16;;;;;;;;;;;;-1:-1:-1;28467:16:0;28443:40;;28516:4;28498;28503:1;28498:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28498:23:0;;;:7;;;;;;;;;;:23;;;;28546:15;;:22;;;-1:-1:-1;;;28546:22:0;;;;:15;;;;;:20;;:22;;;;;28498:7;;28546:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28536:4;28541:1;28536:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28536:32:0;;;:7;;;;;;;;;:32;28648:15;;:235;;-1:-1:-1;;;28648:235:0;;28610:21;;28648:15;;;;;:66;;:235;;28733:12;;28585:22;;28812:4;;28843;;28867:15;;28648:235;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28912:18;28957:14;28933:21;:38;;;;:::i;:::-;28992:14;;28912:59;;-1:-1:-1;28992:18:0;28988:481;;29047:20;29107:12;29070:34;29083:21;29070:10;:34;:::i;:::-;:49;;;;:::i;:::-;29141:15;;29392:4;;29141:312;;-1:-1:-1;;;29141:312:0;;29224:4;29141:312;;;24610:34:1;24660:18;;;24653:34;;;29141:15:0;24703:18:1;;;24696:34;;;24746:18;;;24739:34;-1:-1:-1;;;;;29392:4:0;;;24789:19:1;;;24782:44;29419:15:0;24842:19:1;;;24835:35;29047:72:0;;-1:-1:-1;29141:15:0;;:31;;29047:72;;24544:19:1;;29141:312:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29025:444;28988:481;29490:9;;:13;29487:167;;29524:15;29568:12;29542:23;29555:10;29542;:23;:::i;:::-;:38;;;;:::i;:::-;29615:10;;29524:56;;-1:-1:-1;29599:37:0;;-1:-1:-1;;;;;29615:10:0;29524:56;29599:7;:37::i;:::-;29505:149;29487:167;29673:9;;:13;29670:167;;29707:15;29751:12;29725:23;29738:10;29725;:23;:::i;:::-;:38;;;;:::i;:::-;29798:10;;29707:56;;-1:-1:-1;29782:37:0;;-1:-1:-1;;;;;29798:10:0;29707:56;29782:7;:37::i;:::-;29688:149;29670:167;-1:-1:-1;;29870:8:0;:16;;-1:-1:-1;;;;29870:16:0;;;-1:-1:-1;;;;;;27787:2111:0;29926:8;;-1:-1:-1;;;;;29950:25:0;;29910:12;29950:25;;;:19;:25;;;;;;29926:8;-1:-1:-1;;;29926:8:0;;;;;29925:9;;29950:25;;:52;;-1:-1:-1;;;;;;29979:23:0;;;;;;:19;:23;;;;;;;;29950:52;29947:99;;;-1:-1:-1;30029:5:0;29947:99;30061:32;;-1:-1:-1;;;30061:32:0;;;;:57;;;;-1:-1:-1;30105:13:0;;-1:-1:-1;;;;;30097:21:0;;;30105:13;;30097:21;;30061:57;:80;;;;-1:-1:-1;30128:13:0;;-1:-1:-1;;;;;30122:19:0;;;30128:13;;30122:19;;30061:80;30058:127;;;-1:-1:-1;30168:5:0;30058:127;30210:7;30207:710;;;-1:-1:-1;;;;;30271:10:0;;30234:18;30271:10;;;:6;:10;;;;;;;;:35;;;;-1:-1:-1;30293:13:0;;-1:-1:-1;;;;;30285:21:0;;;30293:13;;30285:21;30271:35;30267:635;;;-1:-1:-1;30339:3:0;30361:12;30398:4;30376:19;30339:3;30376:6;:19;:::i;:::-;:26;;;;:::i;:::-;30361:41;-1:-1:-1;30430:13:0;30361:41;30430:6;:13;:::i;:::-;30484:12;;30421:22;;-1:-1:-1;30462:41:0;;30478:4;;-1:-1:-1;;;;;30484:12:0;30498:4;30462:15;:41::i;:::-;30307:212;30267:635;;;30581:13;;-1:-1:-1;;;;;30581:13:0;;;30573:21;;;;30570:170;;-1:-1:-1;30628:6:0;;30570:170;;;-1:-1:-1;30713:7:0;;30570:170;30754:12;30791:4;30769:19;30778:10;30769:6;:19;:::i;:::-;:26;;;;:::i;:::-;30754:41;-1:-1:-1;30816:13:0;30754:41;30816:6;:13;:::i;:::-;30807:22;;30844:42;30860:4;30874;30881;30844:15;:42::i;:::-;30551:351;30267:635;30219:698;30207:710;30931:33;30947:4;30953:2;30957:6;30931:15;:33::i;:::-;25794:5180;;;25680:5294;;;:::o;22917:308::-;-1:-1:-1;;;;;23008:31:0;;;;;;:25;:31;;;;;;:40;;;:31;;;;:40;;;23000:109;;;;-1:-1:-1;;;23000:109:0;;25394:2:1;23000:109:0;;;25376:21:1;25433:2;25413:18;;;25406:30;25472:34;25452:18;;;25445:62;25543:26;25523:18;;;25516:54;25587:19;;23000:109:0;25192:420:1;23000:109:0;-1:-1:-1;;;;;23120:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;23120:39:0;;;;;;;;;;23177:40;;23120:39;;:31;23177:40;;;22917:308;;:::o;5125:733::-;-1:-1:-1;;;;;5265:20:0;;5257:70;;;;-1:-1:-1;;;5257:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5346:23:0;;5338:71;;;;-1:-1:-1;;;5338:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5506:17:0;;5482:21;5506:17;;;;;;;;;;;5542:23;;;;5534:74;;;;-1:-1:-1;;;5534:74:0;;25819:2:1;5534:74:0;;;25801:21:1;25858:2;25838:18;;;25831:30;25897:34;25877:18;;;25870:62;-1:-1:-1;;;25948:18:1;;;25941:36;25994:19;;5534:74:0;25617:402:1;5534:74:0;-1:-1:-1;;;;;5644:17:0;;;:9;:17;;;;;;;;;;;5664:22;;;5644:42;;5708:20;;;;;;;;:30;;5680:6;;5644:9;5708:30;;5680:6;;5708:30;:::i;:::-;;;;;;;;5773:9;-1:-1:-1;;;;;5756:35:0;5765:6;-1:-1:-1;;;;;5756:35:0;;5784:6;5756:35;;;;160:25:1;;148:2;133:18;;14:177;5756:35:0;;;;;;;;5804:46;25680:5294;21819:315;21932:6;21907:21;:31;;21899:73;;;;-1:-1:-1;;;21899:73:0;;26226:2:1;21899:73:0;;;26208:21:1;26265:2;26245:18;;;26238:30;26304:31;26284:18;;;26277:59;26353:18;;21899:73:0;26024:353:1;21899:73:0;21986:12;22004:9;-1:-1:-1;;;;;22004:14:0;22026:6;22004:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21985:52;;;22056:7;22048:78;;;;-1:-1:-1;;;22048:78:0;;26794:2:1;22048:78:0;;;26776:21:1;26833:2;26813:18;;;26806:30;26872:34;26852:18;;;26845:62;26943:28;26923:18;;;26916:56;26989:19;;22048:78:0;26592:422:1;196:597;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:118::-;1532:5;1525:13;1518:21;1511:5;1508:32;1498:60;;1554:1;1551;1544:12;1569:382;1634:6;1642;1695:2;1683:9;1674:7;1670:23;1666:32;1663:52;;;1711:1;1708;1701:12;1663:52;1750:9;1737:23;1769:31;1794:5;1769:31;:::i;:::-;1819:5;-1:-1:-1;1876:2:1;1861:18;;1848:32;1889:30;1848:32;1889:30;:::i;:::-;1938:7;1928:17;;;1569:382;;;;;:::o;2191:247::-;2250:6;2303:2;2291:9;2282:7;2278:23;2274:32;2271:52;;;2319:1;2316;2309:12;2271:52;2358:9;2345:23;2377:31;2402:5;2377:31;:::i;:::-;2427:5;2191:247;-1:-1:-1;;;2191:247:1:o;2443:456::-;2520:6;2528;2536;2589:2;2577:9;2568:7;2564:23;2560:32;2557:52;;;2605:1;2602;2595:12;2557:52;2644:9;2631:23;2663:31;2688:5;2663:31;:::i;:::-;2713:5;-1:-1:-1;2770:2:1;2755:18;;2742:32;2783:33;2742:32;2783:33;:::i;:::-;2443:456;;2835:7;;-1:-1:-1;;;2889:2:1;2874:18;;;;2861:32;;2443:456::o;2904:241::-;2960:6;3013:2;3001:9;2992:7;2988:23;2984:32;2981:52;;;3029:1;3026;3019:12;2981:52;3068:9;3055:23;3087:28;3109:5;3087:28;:::i;3547:248::-;3615:6;3623;3676:2;3664:9;3655:7;3651:23;3647:32;3644:52;;;3692:1;3689;3682:12;3644:52;-1:-1:-1;;3715:23:1;;;3785:2;3770:18;;;3757:32;;-1:-1:-1;3547:248:1:o;3800:180::-;3859:6;3912:2;3900:9;3891:7;3887:23;3883:32;3880:52;;;3928:1;3925;3918:12;3880:52;-1:-1:-1;3951:23:1;;3800:180;-1:-1:-1;3800:180:1:o;3985:388::-;4053:6;4061;4114:2;4102:9;4093:7;4089:23;4085:32;4082:52;;;4130:1;4127;4120:12;4082:52;4169:9;4156:23;4188:31;4213:5;4188:31;:::i;:::-;4238:5;-1:-1:-1;4295:2:1;4280:18;;4267:32;4308:33;4267:32;4308:33;:::i;4378:316::-;4455:6;4463;4471;4524:2;4512:9;4503:7;4499:23;4495:32;4492:52;;;4540:1;4537;4530:12;4492:52;-1:-1:-1;;4563:23:1;;;4633:2;4618:18;;4605:32;;-1:-1:-1;4684:2:1;4669:18;;;4656:32;;4378:316;-1:-1:-1;4378:316:1:o;4699:380::-;4778:1;4774:12;;;;4821;;;4842:61;;4896:4;4888:6;4884:17;4874:27;;4842:61;4949:2;4941:6;4938:14;4918:18;4915:38;4912:161;;4995:10;4990:3;4986:20;4983:1;4976:31;5030:4;5027:1;5020:15;5058:4;5055:1;5048:15;4912:161;;4699:380;;;:::o;5084:356::-;5286:2;5268:21;;;5305:18;;;5298:30;5364:34;5359:2;5344:18;;5337:62;5431:2;5416:18;;5084:356::o;5445:400::-;5647:2;5629:21;;;5686:2;5666:18;;;5659:30;5725:34;5720:2;5705:18;;5698:62;-1:-1:-1;;;5791:2:1;5776:18;;5769:34;5835:3;5820:19;;5445:400::o;7431:127::-;7492:10;7487:3;7483:20;7480:1;7473:31;7523:4;7520:1;7513:15;7547:4;7544:1;7537:15;7563:128;7603:3;7634:1;7630:6;7627:1;7624:13;7621:39;;;7640:18;;:::i;:::-;-1:-1:-1;7676:9:1;;7563:128::o;8590:350::-;8792:2;8774:21;;;8831:2;8811:18;;;8804:30;8870:28;8865:2;8850:18;;8843:56;8931:2;8916:18;;8590:350::o;9349:251::-;9419:6;9472:2;9460:9;9451:7;9447:23;9443:32;9440:52;;;9488:1;9485;9478:12;9440:52;9520:9;9514:16;9539:31;9564:5;9539:31;:::i;13394:168::-;13434:7;13500:1;13496;13492:6;13488:14;13485:1;13482:21;13477:1;13470:9;13463:17;13459:45;13456:71;;;13507:18;;:::i;:::-;-1:-1:-1;13547:9:1;;13394:168::o;13567:217::-;13607:1;13633;13623:132;;13677:10;13672:3;13668:20;13665:1;13658:31;13712:4;13709:1;13702:15;13740:4;13737:1;13730:15;13623:132;-1:-1:-1;13769:9:1;;13567:217::o;14220:422::-;14309:1;14352:5;14309:1;14366:270;14387:7;14377:8;14374:21;14366:270;;;14446:4;14442:1;14438:6;14434:17;14428:4;14425:27;14422:53;;;14455:18;;:::i;:::-;14505:7;14495:8;14491:22;14488:55;;;14525:16;;;;14488:55;14604:22;;;;14564:15;;;;14366:270;;;14370:3;14220:422;;;;;:::o;14647:806::-;14696:5;14726:8;14716:80;;-1:-1:-1;14767:1:1;14781:5;;14716:80;14815:4;14805:76;;-1:-1:-1;14852:1:1;14866:5;;14805:76;14897:4;14915:1;14910:59;;;;14983:1;14978:130;;;;14890:218;;14910:59;14940:1;14931:10;;14954:5;;;14978:130;15015:3;15005:8;15002:17;14999:43;;;15022:18;;:::i;:::-;-1:-1:-1;;15078:1:1;15064:16;;15093:5;;14890:218;;15192:2;15182:8;15179:16;15173:3;15167:4;15164:13;15160:36;15154:2;15144:8;15141:16;15136:2;15130:4;15127:12;15123:35;15120:77;15117:159;;;-1:-1:-1;15229:19:1;;;15261:5;;15117:159;15308:34;15333:8;15327:4;15308:34;:::i;:::-;15378:6;15374:1;15370:6;15366:19;15357:7;15354:32;15351:58;;;15389:18;;:::i;:::-;15427:20;;14647:806;-1:-1:-1;;;14647:806:1:o;15458:140::-;15516:5;15545:47;15586:4;15576:8;15572:19;15566:4;15545:47;:::i;19352:184::-;19422:6;19475:2;19463:9;19454:7;19450:23;19446:32;19443:52;;;19491:1;19488;19481:12;19443:52;-1:-1:-1;19514:16:1;;19352:184;-1:-1:-1;19352:184:1:o;19820:245::-;19887:6;19940:2;19928:9;19919:7;19915:23;19911:32;19908:52;;;19956:1;19953;19946:12;19908:52;19988:9;19982:16;20007:28;20029:5;20007:28;:::i;20878:401::-;21080:2;21062:21;;;21119:2;21099:18;;;21092:30;21158:34;21153:2;21138:18;;21131:62;-1:-1:-1;;;21224:2:1;21209:18;;21202:35;21269:3;21254:19;;20878:401::o;21284:399::-;21486:2;21468:21;;;21525:2;21505:18;;;21498:30;21564:34;21559:2;21544:18;;21537:62;-1:-1:-1;;;21630:2:1;21615:18;;21608:33;21673:3;21658:19;;21284:399::o;21688:125::-;21728:4;21756:1;21753;21750:8;21747:34;;;21761:18;;:::i;:::-;-1:-1:-1;21798:9:1;;21688:125::o;22592:423::-;22794:2;22776:21;;;22833:2;22813:18;;;22806:30;22872:34;22867:2;22852:18;;22845:62;22943:29;22938:2;22923:18;;22916:57;23005:3;22990:19;;22592:423::o;23152:127::-;23213:10;23208:3;23204:20;23201:1;23194:31;23244:4;23241:1;23234:15;23268:4;23265:1;23258:15;23284:980;23546:4;23594:3;23583:9;23579:19;23625:6;23614:9;23607:25;23651:2;23689:6;23684:2;23673:9;23669:18;23662:34;23732:3;23727:2;23716:9;23712:18;23705:31;23756:6;23791;23785:13;23822:6;23814;23807:22;23860:3;23849:9;23845:19;23838:26;;23899:2;23891:6;23887:15;23873:29;;23920:1;23930:195;23944:6;23941:1;23938:13;23930:195;;;24009:13;;-1:-1:-1;;;;;24005:39:1;23993:52;;24100:15;;;;24065:12;;;;24041:1;23959:9;23930:195;;;-1:-1:-1;;;;;;;24181:32:1;;;;24176:2;24161:18;;24154:60;-1:-1:-1;;;24245:3:1;24230:19;24223:35;24142:3;23284:980;-1:-1:-1;;;23284:980:1:o;24881:306::-;24969:6;24977;24985;25038:2;25026:9;25017:7;25013:23;25009:32;25006:52;;;25054:1;25051;25044:12;25006:52;25083:9;25077:16;25067:26;;25133:2;25122:9;25118:18;25112:25;25102:35;;25177:2;25166:9;25162:18;25156:25;25146:35;;24881:306;;;;;:::o

Swarm Source

ipfs://c462c2205b5d8620f178a44748315c153ee0d78ab5e978f30ea9bcda66604e5e
Block Transaction Difficulty Gas Used Reward
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.

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