Contract 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475

Contract Overview

Balance:
0.007384972593534386 CRO

CRO Value:
Less Than $0.01 (@ $0.15/CRO)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xee6f3ffad9864caea3bdc13f605629fd5f936b26ee46c1a6dfce453e327eedddTransfer111617412023-11-15 22:08:13133 days 11 hrs ago0x73f590be73c20986c8b150e33bc162133991a738 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO1.83577541977 4,621.849267415
0x8b2efcddb3a78069b9e5521ff36fed42e9c38a766561700810d624d6c56b6d70Approve80661922023-04-27 19:38:23335 days 14 hrs ago0x206710759f9c6ad87490a131ab31255b38a423eb IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.224263201718 4,762.6401996
0x52a71ac8f0d8b26d44373ca40bec5340e7aa1bb4591b0ebf99d94bc78e326d86Approve74412462023-03-17 22:46:44376 days 11 hrs ago0xa4b5fd715855189212a83ce4961dd946809c2cc7 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.235440
0x83bf7a00998d3c3898674b192d75539b49a0afe8da0d172382f453e6f30f61b3Approve68013472023-02-04 2:29:16418 days 7 hrs ago0x7a79f078c990388a095100200019baca6ecd3bd5 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.2269257364310
0x79745b82aa47370a38c1967c8241a1404f955b6b013aa3cd59218adf84a74b42Approve67738592023-02-02 7:19:49420 days 2 hrs agoCronos ID Name netontap.cro IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.2269852897040
0x2a400b7437ddc2a0f451cce10c3be39bc811333a31b3cc7bdafbe3a2ff3a9e45Approve66478542023-01-25 0:57:41428 days 9 hrs ago0x63c45c5342723464ef9656836e76a6169d7d0dbd IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.235440
0xd6ab87394504a3aac210e58aaac2f7120092feec96d40198aa27c15cf428d882Approve66121882023-01-22 16:55:00430 days 17 hrs ago0xad891fe48415ad991e83ba41c988c33a0ba7c7b9 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.2825280
0x5193084c15c79ed52a9b4dc87a96c2ee27a3e1f944ffb36e2ea6d8a4819b7b86Approve65630452023-01-19 11:44:45433 days 22 hrs ago0x7a79f078c990388a095100200019baca6ecd3bd5 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.2274400869880
0xe053e7e69354088096b8dbbf509a7b568ce38495c5b451babce5e943235a87f8Approve65229682023-01-16 20:14:38436 days 13 hrs ago0x4ed0d8dc1c587c507bd29a694fd2f17712fbb99c IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.217445461129 4,833.410267838
0xb3e608da4034fb4ec64ddfcfdb62bfd252f8fc24bcf230a3f7644195d4b7161eApprove64958522023-01-15 1:40:53438 days 8 hrs ago0xaaec6bcaad1c8560f3f7b0757cce2c1491dfc986 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.2249849880
0x2b3a4fe7b592c973498c81be9e55607b66b36740994cd82119c2585b5fc1aeeeApprove64516912023-01-12 4:18:57441 days 5 hrs ago0x6998d985a49d3ba1e2cba6871aed90d64f68eadd IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.3149160
0x81a9a12f5d72495e5f0b4464b69cf099a8cb74dbf98752ad90a0a561b248c2d3Approve63055232023-01-02 14:32:49450 days 19 hrs ago0x79ee994458672305e26a29e6c30a32d0a693e923 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.224940
0xd291d6fbbff7229f3c23e43dab0a7574087ae7c12325dc3db42ef0474e5c9478Approve61116102022-12-20 22:13:32463 days 11 hrs ago0xfd2e417069581225d1effb8424207085907037ee IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.22494 5,000
0x97d2230d48adfaa5fc84a08ec64ab5a525cf9df6f1555e11e9a927a2b1a7f2daApprove59574102022-12-10 19:59:41473 days 14 hrs ago0x8fc0fd5ad6a540a8db86e8b22e4b7355005d57a8 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.123411965514 4,857.973764557
0xc1a35e638c4773de987d64e659a9d73a7cff12883b4fb84c50892e7330abd5b1Approve59574082022-12-10 19:59:30473 days 14 hrs ago0x8fc0fd5ad6a540a8db86e8b22e4b7355005d57a8 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.123411966676 4,857.973810298
0x22308a983b6fc43268de8e4a2e2274cc69d63e7613a95c95bd4d7153ca3dd052Approve59574072022-12-10 19:59:24473 days 14 hrs ago0x8fc0fd5ad6a540a8db86e8b22e4b7355005d57a8 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.123411969097 4,857.973905588
0x026173919e7100ace42dac9debd74a2f774cd02e15e14c9d539abb429c56d282Transfer59047212022-12-07 9:09:37477 days 51 mins ago0x11888899dcf9bc50cd92126f90003757d2564b9e IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO2.083364392242 4,861.914489711
0xf14985e5871dfedfb4ba3d30656b9e83d8e769c5029563c2b1e0691476fe5574Approve58848442022-12-06 1:55:16478 days 8 hrs ago0x3722cb2dc7a1d6a778a3f476e162c30f00d6aedf IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.269928 6,000
0x82a9633b6753f925acf467de6f6ac12ff5c1b690c7bbec8588ac5b6f6fd342e2Approve58358002022-12-02 20:42:01481 days 13 hrs ago0x8fc0fd5ad6a540a8db86e8b22e4b7355005d57a8 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.217352794426 4,865.09075178
0xa5b89076bc8122d4fd1d49e25babf5299e889b82a8f6568473a6c0c01fc37afaApprove58356362022-12-02 20:26:25481 days 13 hrs ago0x40ce4ef078c279ca0f1a06f411d6378723eaefd8 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.218871039131 4,865.098229106
0xc62d2ad812217d7b05230aed673b1608957d217b3000c445f665d1e310d1037cTransfer58352072022-12-02 19:45:41481 days 14 hrs ago0xb16815663ec1817868706fbcd58262bb1254179a IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO3.374276491819 4,867.617835054
0xcbf66821c263818b2c2cac9e4cef989b5e26e82980eb39ef3ac2ac62cd546378Approve57560242022-11-27 14:19:48486 days 19 hrs ago0xaeb4a92a1b9ab12a795777b4c06d8d5291a4ead0 IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.224940
0x72b2033c1815be5c08df5139864594f1bab4b591b8cca3ea8e10adf541556f09Approve57081832022-11-24 10:41:10489 days 23 hrs ago0xddb88f09212b4b38553a489de99857852dbfc8dc IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.219136007681 4,870.987989717
0x0d137f7609fe30d29adef2f6b1c546c9fc92b4c071dcf204e2f003db4787beafChange Fee Recei...55553542022-11-14 9:50:54500 days 9 mins ago0xb16815663ec1817868706fbcd58262bb1254179a IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.203485647773 4,877.529369673
0xad120b0030d6d9aac4430a8f286d81d1a027f3c5dd0fa80a9751e48e8b4656c0Approve55481982022-11-13 22:28:13500 days 11 hrs ago0x71b8059aa59af4e65709d7e61cede89127053aea IN  0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750 CRO0.224940
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd31f846c880887c23d197c44e84f5cc33dc89547bca8f7d0e4aaf373f6d8bed685970012023-06-01 14:27:19300 days 19 hrs ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750.007384972593534386 CRO
0xd31f846c880887c23d197c44e84f5cc33dc89547bca8f7d0e4aaf373f6d8bed685970012023-06-01 14:27:19300 days 19 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 Mad Meerkat Finance: Master Meerkat & Router0.382305843313908367 CRO
0xd31f846c880887c23d197c44e84f5cc33dc89547bca8f7d0e4aaf373f6d8bed685970012023-06-01 14:27:19300 days 19 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750xb16815663ec1817868706fbcd58262bb1254179a1.91152921656954184 CRO
0xd31f846c880887c23d197c44e84f5cc33dc89547bca8f7d0e4aaf373f6d8bed685970012023-06-01 14:27:19300 days 19 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 0xc7150bc12121b14dd7528e7db70527b508c194fe1.146917529941725103 CRO
0xd31f846c880887c23d197c44e84f5cc33dc89547bca8f7d0e4aaf373f6d8bed685970012023-06-01 14:27:19300 days 19 hrs ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894753.430880976106992127 CRO
0xf8dba595138e7b6602eef94de828f7efd145c079a8fc89a7cc69d17ca0eac3d882407122023-05-09 5:47:57324 days 4 hrs ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750.009871613718183183 CRO
0xf8dba595138e7b6602eef94de828f7efd145c079a8fc89a7cc69d17ca0eac3d882407122023-05-09 5:47:57324 days 4 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 Mad Meerkat Finance: Master Meerkat & Router0.49850089864065606 CRO
0xf8dba595138e7b6602eef94de828f7efd145c079a8fc89a7cc69d17ca0eac3d882407122023-05-09 5:47:57324 days 4 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750xb16815663ec1817868706fbcd58262bb1254179a2.492504493203280302 CRO
0xf8dba595138e7b6602eef94de828f7efd145c079a8fc89a7cc69d17ca0eac3d882407122023-05-09 5:47:57324 days 4 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 0xc7150bc12121b14dd7528e7db70527b508c194fe1.49550269592196818 CRO
0xf8dba595138e7b6602eef94de828f7efd145c079a8fc89a7cc69d17ca0eac3d882407122023-05-09 5:47:57324 days 4 hrs ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894754.483397710760289854 CRO
0xe3079b6647b04d5017afd5f4f49faa38e2a40c7ae663920bec9029b02c986dda82281122023-05-08 9:59:03325 days 1 min ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750.003110377005614688 CRO
0xe3079b6647b04d5017afd5f4f49faa38e2a40c7ae663920bec9029b02c986dda82281122023-05-08 9:59:03325 days 1 min ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 Mad Meerkat Finance: Master Meerkat & Router0.314756493150167057 CRO
0xe3079b6647b04d5017afd5f4f49faa38e2a40c7ae663920bec9029b02c986dda82281122023-05-08 9:59:03325 days 1 min ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750xb16815663ec1817868706fbcd58262bb1254179a1.57378246575083529 CRO
0xe3079b6647b04d5017afd5f4f49faa38e2a40c7ae663920bec9029b02c986dda82281122023-05-08 9:59:03325 days 1 min ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 0xc7150bc12121b14dd7528e7db70527b508c194fe0.944269479450501173 CRO
0xe3079b6647b04d5017afd5f4f49faa38e2a40c7ae663920bec9029b02c986dda82281122023-05-08 9:59:03325 days 1 min ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894752.832316221833643963 CRO
0x81345dae25fc0373cd41657108a64d88ecf4f7ef404bebdbde1939ae79496e3280661982023-04-27 19:38:57335 days 14 hrs ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750.000492216517859557 CRO
0x81345dae25fc0373cd41657108a64d88ecf4f7ef404bebdbde1939ae79496e3280661982023-04-27 19:38:57335 days 14 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 Mad Meerkat Finance: Master Meerkat & Router0.148778376126838493 CRO
0x81345dae25fc0373cd41657108a64d88ecf4f7ef404bebdbde1939ae79496e3280661982023-04-27 19:38:57335 days 14 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750xb16815663ec1817868706fbcd58262bb1254179a0.743891880634192467 CRO
0x81345dae25fc0373cd41657108a64d88ecf4f7ef404bebdbde1939ae79496e3280661982023-04-27 19:38:57335 days 14 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 0xc7150bc12121b14dd7528e7db70527b508c194fe0.44633512838051548 CRO
0x81345dae25fc0373cd41657108a64d88ecf4f7ef404bebdbde1939ae79496e3280661982023-04-27 19:38:57335 days 14 hrs ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894751.33900538514154644 CRO
0x18cabe77cd6cfc380795721a17b592ae87794ffd1840e0806e147f07c62ebe4973626572023-03-12 19:17:33381 days 14 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 Mad Meerkat Finance: Master Meerkat & Router0.019189687286331798 CRO
0x18cabe77cd6cfc380795721a17b592ae87794ffd1840e0806e147f07c62ebe4973626572023-03-12 19:17:33381 days 14 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750xb16815663ec1817868706fbcd58262bb1254179a0.095948436431658992 CRO
0x18cabe77cd6cfc380795721a17b592ae87794ffd1840e0806e147f07c62ebe4973626572023-03-12 19:17:33381 days 14 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 0xc7150bc12121b14dd7528e7db70527b508c194fe0.057569061858995394 CRO
0x18cabe77cd6cfc380795721a17b592ae87794ffd1840e0806e147f07c62ebe4973626572023-03-12 19:17:33381 days 14 hrs ago Mad Meerkat Finance: Master Meerkat & Router 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef894750.172707185576986184 CRO
0xce9f24228cc9c414e1d516c87dd51bd7eb2fe19518a4120365f923c4d0359dfc68460622023-02-07 0:40:41415 days 9 hrs ago 0x2cfde1967a375d1fd4dd3e1f65236c4f6ef89475 Mad Meerkat Finance: Master Meerkat & Router0.805174212978207866 CRO
[ Download CSV Export 
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CRONOSBOSS

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-09-26
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

library Address {

    function isContract(address account) internal view returns (bool) {

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

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

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IUniRouterV1
{
    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 IUniRouterV2 is IUniRouterV1
{
    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;
}

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

library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {

        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

     function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

contract DividendDistributor is IDividendDistributor {

    using SafeMath for uint256;
    address _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IUniRouterV2 router;
    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 1 hours;
    uint256 public minDistribution = 1;

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (IUniRouterV2 _router) {
        router = _router;
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken
    {
        totalDividends = totalDividends.add(msg.value);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(msg.value).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            (bool success, ) = payable(shareholder).call{value: amount, gas: 30000}("");
            success = false;
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {

        require(shouldDistribute(msg.sender), "Too soon. Need to wait!");
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

contract CRONOSBOSS is IERC20, Auth {
    
    using SafeMath for uint256;
    using SafeERC20 for IERC20;

    string constant _name = "CRONOS BOSS";
    string constant _symbol = "CBOSS";
    uint8 constant _decimals = 9;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;


    uint256 _totalSupply = 100000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = 2000000000 * (10 ** _decimals);
    uint256 public _walletMax = 2000000000 * (10 ** _decimals);

    bool public restrictWhales = true;

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

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isDividendExempt;

    mapping(address => bool) public isBot;

    uint256 public liquidityFee = 2;
    uint256 public liquidityFeeSell = 2;

    uint256 public marketingFee = 5;
    uint256 public marketingFeeSell = 6;

    uint256 public rewardsFee = 3;
    uint256 public rewardsFeeSell = 4;

    uint256 public teamFee = 0;
    uint256 public teamFeeSell = 0;

    uint256 public totalFee = 10;
    uint256 public totalFeeSell = 12;

    address public autoLiquidityReceiver = address(this);
    address public marketingWallet = 0xB16815663Ec1817868706fbCD58262bB1254179a;
    address public teamWallet = 0xB16815663Ec1817868706fbCD58262bB1254179a;

    IUniRouterV2 public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;

    DividendDistributor public dividendDistributor;
    uint256 distributorGas = 500000;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = 10 * (10 ** _decimals);

    uint256 public timeToWait = 6;
    event BlacklistedUser(address botAddress, bool indexed value);


    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor () Auth(msg.sender) {

        IUniRouterV2 _router = IUniRouterV2(0x145677FC4d9b8F19B5D56d1820c48e0443049a30);
        router = _router;

        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        dividendDistributor = new DividendDistributor(router);

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[teamWallet] = true;


        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[marketingWallet] = true;
        isTxLimitExempt[pair] = true;


        isDividendExempt[pair] = true;
        isDividendExempt[msg.sender] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;
        isDividendExempt[ZERO] = true;
        isDividendExempt[teamWallet] = true;

        autoLiquidityReceiver = address(this);



        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function name() external pure returns (string memory) { return _name; }
    function symbol() external pure  returns (string memory) { return _symbol; }
    function decimals() external pure  returns (uint8) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function getOwner() external view  returns (address) { return owner; }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.timestamp;
    }

    function changeTxLimit(uint256 newLimit) external authorized {
        _maxTxAmount = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external authorized {
        _walletMax  = newLimit;
    }

    function changeNoBigGuys(bool newValue) external authorized {
       restrictWhales = newValue;
    }

    function changeIsNoTax(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function changeIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

    function changeIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;

        if(exempt){
            dividendDistributor.setShare(holder, 0);
        }else{
            dividendDistributor.setShare(holder, _balances[holder]);
        }
    }

    function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newteamFee) external authorized {

        require(newLiqFee <= 10, "LP Tax on buys can not be higher than 10%");
        require(newMarketingFee <= 10, "Marketing Tax on buys can not be higher than 10%");
        require(newteamFee <= 0, "Team Tax on buys can not be higher than 0%");
        require(newRewardFee >= 2, "Rewards Tax on buys can not be lower than 2%");

        liquidityFee = newLiqFee;
        rewardsFee = newRewardFee;
        marketingFee = newMarketingFee;
        teamFee = newteamFee;

        totalFee = liquidityFee.add(marketingFee).add(teamFee).add(rewardsFee);
    }

    function changeFeesSell(uint256 newLiqFeeSell, uint256 newRewardFeeSell, uint256 newMarketingFeeSell, uint256 newteamFeeSell) external authorized {
        require(newLiqFeeSell <= 10, "LP Tax on sells can not be higher than 10%");
        require(newMarketingFeeSell <= 10, "Marketing Tax on sells can not be higher than 10%");
        require(newteamFeeSell <= 0, "Team Tax on sells can not be higher than 0%");
        require(newRewardFeeSell >= 2, "Rewards Tax on sells can not be lower than 2%");

        liquidityFeeSell = newLiqFeeSell;
        rewardsFeeSell = newRewardFeeSell;
        marketingFeeSell = newMarketingFeeSell;
        teamFeeSell = newteamFeeSell;

        totalFeeSell = liquidityFeeSell.add(marketingFeeSell).add(teamFeeSell).add(rewardsFeeSell);
    }

    function changeFeeReceivers(address newLiquidityReceiver, address newMarketingWallet, address newteamWallet) external authorized {
        autoLiquidityReceiver = newLiquidityReceiver;
        marketingWallet = newMarketingWallet;
        teamWallet = newteamWallet;
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly) external authorized {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
        swapAndLiquifyByLimitOnly = swapByLimitOnly;
    }

    function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized {
        dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution);
    }

    function changeDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {

        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded");

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        if(!launched() && recipient == pair) {
            require(_balances[sender] > 0);

        }

        if ((block.timestamp < launchedAt + timeToWait) && recipient != pair) {
            isBot[recipient] = true;
            emit BlacklistedUser(recipient, true);
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if(!isTxLimitExempt[recipient] && restrictWhales)
        {
            require(_balances[recipient].add(amount) <= _walletMax);
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try dividendDistributor.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {}
        }

        try dividendDistributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeApplicable = pair == recipient ? totalFeeSell : totalFee;
        if(isBot[recipient] == true) {
          feeApplicable = 99;
        }
        else if(isBot[sender] == true) {
          feeApplicable = 99;
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
        launch();
    }

    // Blacklist or Unblacklist bots or sniper
    function blacklistSniper(address botAddress, bool isban) external onlyOwner {
        isBot[botAddress] = isban;
    }

    function swapBack() internal lockTheSwap {

        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountCRO = address(this).balance;

        uint256 totalCROFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountCROLiquidity = amountCRO.mul(liquidityFee).div(totalCROFee).div(2);
        uint256 amountCROReflection = amountCRO.mul(rewardsFee).div(totalCROFee);
        uint256 amountCROMarketing = amountCRO.sub(amountCROLiquidity).sub(amountCROReflection);

        try dividendDistributor.deposit{value: amountCROReflection}() {} catch {}

        uint256 teamShare = amountCRO.mul(teamFee).div(totalCROFee);
        uint256 marketingShare = amountCROMarketing.sub(teamShare);


        (bool tmpSuccess,) = payable(marketingWallet).call{value: marketingShare, gas: 30000}("");
        (bool tmpSuccess1,) = payable(teamWallet).call{value: teamShare, gas: 30000}("");

        // only to supress warning msg
        tmpSuccess = false;
        tmpSuccess1 = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountCROLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountCROLiquidity, amountToLiquify);
        }
    }

    function RescueTokens(uint256 amount, address payable receiver) external onlyOwner {
        uint256 contractBalance = address(this).balance;
        require(contractBalance > amount,"Insufficient CRO");
        receiver.transfer(amount);
    }

    event AutoLiquify(uint256 amountCRO, uint256 amountBOG);

}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCRO","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"botAddress","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"BlacklistedUser","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address payable","name":"receiver","type":"address"}],"name":"RescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAddress","type":"address"},{"internalType":"bool","name":"isban","type":"bool"}],"name":"blacklistSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newteamWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newteamFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFeeSell","type":"uint256"},{"internalType":"uint256","name":"newRewardFeeSell","type":"uint256"},{"internalType":"uint256","name":"newMarketingFeeSell","type":"uint256"},{"internalType":"uint256","name":"newteamFeeSell","type":"uint256"}],"name":"changeFeesSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsNoTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeNoBigGuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000ef0565b64174876e800620000ab91906200102d565b6004556009600a620000be919062000ef0565b6377359400620000cf91906200102d565b6005556009600a620000e2919062000ef0565b6377359400620000f391906200102d565b6006556001600760006101000a81548160ff0219169083151502179055506002600e556002600f55600560105560066011556003601255600460135560006014556000601555600a601655600c60175530601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b16815663ec1817868706fbcd58262bb1254179a601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b16815663ec1817868706fbcd58262bb1254179a601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601e60006101000a81548160ff0219169083151502179055506207a120601f556001602060016101000a81548160ff0219169083151502179055506000602060026101000a81548160ff0219169083151502179055506009600a62000296919062000ef0565b600a620002a491906200102d565b6021556006602255348015620002b957600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600073145677fc4d9b8f19b5d56d1820c48e0443049a30905080601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041657600080fd5b505afa1580156200042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000451919062000dc9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004d557600080fd5b505afa158015620004ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000510919062000dc9565b306040518363ffffffff1660e01b81526004016200053092919062000e2e565b602060405180830381600087803b1580156200054b57600080fd5b505af115801562000560573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000586919062000dc9565b601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006ba9062000da4565b620006c6919062000e5b565b604051809103906000f080158015620006e3573d6000803e3d6000fd5b50601e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555030601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000d95919062000e78565b60405180910390a35062001170565b6116fb806200607083390190565b60008151905062000dc38162001156565b92915050565b60006020828403121562000de25762000de162001144565b5b600062000df28482850162000db2565b91505092915050565b62000e06816200108e565b82525050565b62000e1781620010d9565b82525050565b62000e2881620010c2565b82525050565b600060408201905062000e45600083018562000dfb565b62000e54602083018462000dfb565b9392505050565b600060208201905062000e72600083018462000e0c565b92915050565b600060208201905062000e8f600083018462000e1d565b92915050565b6000808291508390505b600185111562000ee75780860481111562000ebf5762000ebe62001115565b5b600185161562000ecf5780820291505b808102905062000edf8562001149565b945062000e9f565b94509492505050565b600062000efd82620010c2565b915062000f0a83620010cc565b925062000f397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f41565b905092915050565b60008262000f53576001905062001026565b8162000f63576000905062001026565b816001811462000f7c576002811462000f875762000fbd565b600191505062001026565b60ff84111562000f9c5762000f9b62001115565b5b8360020a91508482111562000fb65762000fb562001115565b5b5062001026565b5060208310610133831016604e8410600b841016171562000ff75782820a90508381111562000ff15762000ff062001115565b5b62001026565b62001006848484600162000e95565b9250905081840481111562001020576200101f62001115565b5b81810290505b9392505050565b60006200103a82620010c2565b91506200104783620010c2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001083576200108262001115565b5b828202905092915050565b60006200109b82620010a2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000620010e682620010ed565b9050919050565b6000620010fa8262001101565b9050919050565b60006200110e82620010a2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b60008160011c9050919050565b62001161816200108e565b81146200116d57600080fd5b50565b614ef080620011806000396000f3fe6080604052600436106103a65760003560e01c806375f0a874116101e7578063bad3ea6a1161010d578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610de9578063fabe628314610e14578063fe9fbb8014610e3d578063ffb54a9914610e7a576103ad565b8063dd62ed3e14610d31578063e2dd8ca014610d6e578063f0b37c0414610d97578063f2fde38b14610dc0576103ad565b8063d829d3f8116100dc578063d829d3f814610c89578063d920334e14610cb2578063da00097d14610cdb578063dbe1c4d514610d06576103ad565b8063bad3ea6a14610bdd578063bf56b37114610c08578063ca33e64c14610c33578063d7c94efd14610c5e576103ad565b80638b42507f11610185578063a9059cbb11610154578063a9059cbb14610b25578063a9f7864b14610b62578063b0a616a914610b8b578063b6a5d7de14610bb4576103ad565b80638b42507f14610a6757806395d89b4114610aa457806398118cb414610acf578063a8aa1b3114610afa576103ad565b80637db1342c116101c15780637db1342c146109bd578063807c2d9c146109e657806384f6820a14610a11578063893d20e814610a3c576103ad565b806375f0a8741461093e578063773fcb5c146109695780637d1db4a514610992576103ad565b8063315dca29116102cc578063479f66d81161026a57806359927044116102395780635992704414610882578063650c4226146108ad5780636b67c4df146108d657806370a0823114610901576103ad565b8063479f66d8146107c65780634a74bb02146107ef578063531484161461081a578063571ac8b014610845576103ad565b80633f4218e0116102a65780633f4218e0146106f85780634102eedc146107355780634355855a1461075e57806344de2e4c1461079b576103ad565b8063315dca291461066957806334c70889146106925780633bbac579146106bb576103ad565b806313374e7a116103445780632b112e49116103135780632b112e49146105ab5780632bb14e1d146105d65780632f54bf6e14610601578063313ce5671461063e576103ad565b806313374e7a146104ed57806318160ddd146105185780631df4ccfc1461054357806323b872dd1461056e576103ad565b8063095ea7b311610380578063095ea7b31461043357806309ad803d146104705780630d295980146104995780631107b3a5146104c2576103ad565b806303898c17146103b25780630445b667146103dd57806306fdde0314610408576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610ea5565b6040516103d49190614710565b60405180910390f35b3480156103e957600080fd5b506103f2610eab565b6040516103ff9190614710565b60405180910390f35b34801561041457600080fd5b5061041d610eb1565b60405161042a919061454e565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613eb8565b610eee565b60405161046791906144fd565b60405180910390f35b34801561047c57600080fd5b5061049760048036038101906104929190614078565b610fe0565b005b3480156104a557600080fd5b506104c060048036038101906104bb9190613ef8565b61119f565b005b3480156104ce57600080fd5b506104d761120c565b6040516104e49190614710565b60405180910390f35b3480156104f957600080fd5b50610502611212565b60405161050f9190614710565b60405180910390f35b34801561052457600080fd5b5061052d611218565b60405161053a9190614710565b60405180910390f35b34801561054f57600080fd5b50610558611222565b6040516105659190614710565b60405180910390f35b34801561057a57600080fd5b5061059560048036038101906105909190613e25565b611228565b6040516105a291906144fd565b60405180910390f35b3480156105b757600080fd5b506105c0611428565b6040516105cd9190614710565b60405180910390f35b3480156105e257600080fd5b506105eb6114aa565b6040516105f89190614710565b60405180910390f35b34801561060d57600080fd5b5061062860048036038101906106239190613d0b565b6114b0565b60405161063591906144fd565b60405180910390f35b34801561064a57600080fd5b50610653611509565b60405161066091906147ae565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b9190613dd2565b611512565b005b34801561069e57600080fd5b506106b960048036038101906106b49190613f25565b611622565b005b3480156106c757600080fd5b506106e260048036038101906106dd9190613d0b565b6116aa565b6040516106ef91906144fd565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a9190613d0b565b6116ca565b60405161072c91906144fd565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613e78565b6116ea565b005b34801561076a57600080fd5b5061078560048036038101906107809190613d0b565b61178d565b60405161079291906144fd565b60405180910390f35b3480156107a757600080fd5b506107b06117ad565b6040516107bd91906144fd565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190613f78565b6117c0565b005b3480156107fb57600080fd5b50610804611821565b60405161081191906144fd565b60405180910390f35b34801561082657600080fd5b5061082f611834565b60405161083c9190614710565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613d0b565b61183a565b60405161087991906144fd565b60405180910390f35b34801561088e57600080fd5b5061089761186d565b6040516108a49190614414565b60405180910390f35b3480156108b957600080fd5b506108d460048036038101906108cf9190614078565b611893565b005b3480156108e257600080fd5b506108eb611a52565b6040516108f89190614710565b60405180910390f35b34801561090d57600080fd5b5061092860048036038101906109239190613d0b565b611a58565b6040516109359190614710565b60405180910390f35b34801561094a57600080fd5b50610953611aa1565b6040516109609190614414565b60405180910390f35b34801561097557600080fd5b50610990600480360381019061098b9190613e78565b611ac7565b005b34801561099e57600080fd5b506109a7611d67565b6040516109b49190614710565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190613f78565b611d6d565b005b3480156109f257600080fd5b506109fb611dbf565b604051610a089190614710565b60405180910390f35b348015610a1d57600080fd5b50610a26611dc5565b604051610a339190614710565b60405180910390f35b348015610a4857600080fd5b50610a51611dcb565b604051610a5e9190614414565b60405180910390f35b348015610a7357600080fd5b50610a8e6004803603810190610a899190613d0b565b611df4565b604051610a9b91906144fd565b60405180910390f35b348015610ab057600080fd5b50610ab9611e14565b604051610ac6919061454e565b60405180910390f35b348015610adb57600080fd5b50610ae4611e51565b604051610af19190614710565b60405180910390f35b348015610b0657600080fd5b50610b0f611e57565b604051610b1c9190614414565b60405180910390f35b348015610b3157600080fd5b50610b4c6004803603810190610b479190613eb8565b611e7d565b604051610b5991906144fd565b60405180910390f35b348015610b6e57600080fd5b50610b896004803603810190610b849190613fe5565b611e92565b005b348015610b9757600080fd5b50610bb26004803603810190610bad9190613fa5565b611f6d565b005b348015610bc057600080fd5b50610bdb6004803603810190610bd69190613d0b565b612048565b005b348015610be957600080fd5b50610bf26120ea565b604051610bff9190614518565b60405180910390f35b348015610c1457600080fd5b50610c1d612110565b604051610c2a9190614710565b60405180910390f35b348015610c3f57600080fd5b50610c48612116565b604051610c559190614414565b60405180910390f35b348015610c6a57600080fd5b50610c7361213c565b604051610c809190614710565b60405180910390f35b348015610c9557600080fd5b50610cb06004803603810190610cab9190613ef8565b612142565b005b348015610cbe57600080fd5b50610cd96004803603810190610cd49190613f78565b6121a7565b005b348015610ce757600080fd5b50610cf06121f9565b604051610cfd91906144fd565b60405180910390f35b348015610d1257600080fd5b50610d1b61220c565b604051610d289190614710565b60405180910390f35b348015610d3d57600080fd5b50610d586004803603810190610d539190613d92565b612212565b604051610d659190614710565b60405180910390f35b348015610d7a57600080fd5b50610d956004803603810190610d909190613e78565b612299565b005b348015610da357600080fd5b50610dbe6004803603810190610db99190613d0b565b61233c565b005b348015610dcc57600080fd5b50610de76004803603810190610de29190613d65565b6123df565b005b348015610df557600080fd5b50610dfe6124f8565b604051610e0b9190614533565b60405180910390f35b348015610e2057600080fd5b50610e3b6004803603810190610e369190613e78565b61251e565b005b348015610e4957600080fd5b50610e646004803603810190610e5f9190613d0b565b6125c1565b604051610e7191906144fd565b60405180910390f35b348015610e8657600080fd5b50610e8f612617565b604051610e9c91906144fd565b60405180910390f35b60135481565b60215481565b60606040518060400160405280600b81526020017f43524f4e4f5320424f5353000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fce9190614710565b60405180910390a36001905092915050565b610fe9336125c1565b611028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101f906146f0565b60405180910390fd5b600a84111561106c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611063906145f0565b60405180910390fd5b600a8211156110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790614630565b60405180910390fd5b60008111156110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb906146b0565b60405180910390fd5b6002831015611138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112f90614670565b60405180910390fd5b83600f81905550826013819055508160118190555080601581905550611193601354611185601554611177601154600f5461262a90919063ffffffff16565b61262a90919063ffffffff16565b61262a90919063ffffffff16565b60178190555050505050565b6111a8336114b0565b6111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de90614690565b60405180910390fd5b80601e60006101000a81548160ff021916908315150217905550611209612640565b50565b600f5481565b60115481565b6000600454905090565b60165481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461141457611393826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126499092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61141f84848461269e565b90509392505050565b60006114a5611458600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a58565b611497611486600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a58565b60045461312590919063ffffffff16565b61312590919063ffffffff16565b905090565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b61151b336125c1565b61155a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611551906146f0565b60405180910390fd5b82601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61162b336125c1565b61166a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611661906146f0565b60405180910390fd5b82602060016101000a81548160ff0219169083151502179055508160218190555080602060026101000a81548160ff021916908315150217905550505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b6116f3336125c1565b611732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611729906146f0565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900460ff1681565b6117c9336125c1565b611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff906146f0565b60405180910390fd5b620b71b0811061181757600080fd5b80601f8190555050565b602060019054906101000a900460ff1681565b60175481565b6000611866827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610eee565b9050919050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61189c336125c1565b6118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d2906146f0565b60405180910390fd5b600a84111561191f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191690614650565b60405180910390fd5b600a821115611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a906146d0565b60405180910390fd5b60008111156119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e906145d0565b60405180910390fd5b60028310156119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906145b0565b60405180910390fd5b83600e81905550826012819055508160108190555080601481905550611a46601254611a38601454611a2a601054600e5461262a90919063ffffffff16565b61262a90919063ffffffff16565b61262a90919063ffffffff16565b60168190555050505050565b60105481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ad0336125c1565b611b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b06906146f0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611b995750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611ba257600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611c9457601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401611c5d92919061444a565b600060405180830381600087803b158015611c7757600080fd5b505af1158015611c8b573d6000803e3d6000fd5b50505050611d63565b601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401611d30929190614473565b600060405180830381600087803b158015611d4a57600080fd5b505af1158015611d5e573d6000803e3d6000fd5b505050505b5050565b60055481565b611d76336125c1565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906146f0565b60405180910390fd5b8060068190555050565b60065481565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f43424f5353000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e8a33848461269e565b905092915050565b611e9b336125c1565b611eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed1906146f0565b60405180910390fd5b601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611f37929190614785565b600060405180830381600087803b158015611f5157600080fd5b505af1158015611f65573d6000803e3d6000fd5b505050505050565b611f76336114b0565b611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90614690565b60405180910390fd5b6000479050828111611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390614590565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612042573d6000803e3d6000fd5b50505050565b612051336114b0565b612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790614690565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b61214b336125c1565b61218a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612181906146f0565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b6121b0336125c1565b6121ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e6906146f0565b60405180910390fd5b8060058190555050565b602060029054906101000a900460ff1681565b60225481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6122a2336114b0565b6122e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d890614690565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612345336114b0565b612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b90614690565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123e8336114b0565b612427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241e90614690565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516124ed919061442f565b60405180910390a150565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612527336125c1565b612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d906146f0565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601e60009054906101000a900460ff1681565b600081836126389190614829565b905092915050565b42601d81905550565b6000838311158290612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612688919061454e565b60405180910390fd5b5082840390509392505050565b6000602060009054906101000a900460ff16156126c7576126c084848461313b565b905061311e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561276b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c057601e60009054906101000a900460ff166127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b690614610565b60405180910390fd5b5b6005548211158061281a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285090614570565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128c45750602060009054906101000a900460ff16155b80156128dc5750602060019054906101000a900460ff165b80156129295750602154600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156129375761293661330e565b5b61293f6139eb565b1580156129995750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156129eb576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116129ea57600080fd5b5b602254601d546129fb9190614829565b42108015612a575750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612af0576001600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600115157f3159dadbd8e2d720a851b412e3358e7e44bb11734c9bfd5715340e21798e8b2584604051612ae79190614414565b60405180910390a25b612b79826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126499092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c225750600760009054906101000a900460ff165b15612c8857600654612c7c83600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262a90919063ffffffff16565b1115612c8757600080fd5b5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d2e5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612d385782612d44565b612d438585856139f8565b5b9050612d9881600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262a90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612efe57601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612ec8929190614473565b600060405180830381600087803b158015612ee257600080fd5b505af1925050508015612ef3575060015b612efc57612efd565b5b5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661302157601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612feb929190614473565b600060405180830381600087803b15801561300557600080fd5b505af1925050508015613016575060015b61301f57613020565b5b5b601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479601f546040518263ffffffff1660e01b815260040161307e9190614710565b600060405180830381600087803b15801561309857600080fd5b505af19250505080156130a9575060015b6130b2576130b3565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131109190614710565b60405180910390a360019150505b9392505050565b60008183613133919061490a565b905092915050565b60006131c6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126499092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061325b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132fb9190614710565b60405180910390a3600190509392505050565b6001602060006101000a81548160ff0219169083151502179055506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006133ab600261339d60165461338f600e5487613c6190919063ffffffff16565b613c7790919063ffffffff16565b613c7790919063ffffffff16565b905060006133c2828461312590919063ffffffff16565b90506000600267ffffffffffffffff8111156133e1576133e0614ad1565b5b60405190808252806020026020018201604052801561340f5781602001602082028036833780820191505090505b509050308160008151811061342757613426614aa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156134c957600080fd5b505afa1580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135019190613d38565b8160018151811061351557613514614aa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016135b395949392919061472b565b600060405180830381600087803b1580156135cd57600080fd5b505af11580156135e1573d6000803e3d6000fd5b50505050600047905060006136166136056002600e54613c7790919063ffffffff16565b60165461312590919063ffffffff16565b90506000613654600261364684613638600e5488613c6190919063ffffffff16565b613c7790919063ffffffff16565b613c7790919063ffffffff16565b9050600061367f8361367160125487613c6190919063ffffffff16565b613c7790919063ffffffff16565b905060006136a88261369a858861312590919063ffffffff16565b61312590919063ffffffff16565b9050601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561371457600080fd5b505af193505050508015613726575060015b61372f57613730565b5b60006137598561374b60145489613c6190919063ffffffff16565b613c7790919063ffffffff16565b90506000613770828461312590919063ffffffff16565b90506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516137be906143ff565b600060405180830381858888f193505050503d80600081146137fc576040519150601f19603f3d011682016040523d82523d6000602084013e613801565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613851906143ff565b600060405180830381858888f193505050503d806000811461388f576040519150601f19603f3d011682016040523d82523d6000602084013e613894565b606091505b50509050600091506000905060008c11156139c157601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71988308f600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016139329695949392919061449c565b6060604051808303818588803b15801561394b57600080fd5b505af115801561395f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906139849190614025565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506878d6040516139b8929190614785565b60405180910390a15b505050505050505050505050506000602060006101000a81548160ff021916908315150217905550565b600080601d541415905090565b6000808373ffffffffffffffffffffffffffffffffffffffff16601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613a5857601654613a5c565b6017545b905060011515600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415613ac05760639050613b1f565b60011515600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415613b1e57606390505b5b6000613b476064613b398487613c6190919063ffffffff16565b613c7790919063ffffffff16565b9050613b9b81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262a90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c3b9190614710565b60405180910390a3613c56818561312590919063ffffffff16565b925050509392505050565b60008183613c6f91906148b0565b905092915050565b60008183613c85919061487f565b905092915050565b600081359050613c9c81614e5e565b92915050565b600081519050613cb181614e5e565b92915050565b600081359050613cc681614e75565b92915050565b600081359050613cdb81614e8c565b92915050565b600081359050613cf081614ea3565b92915050565b600081519050613d0581614ea3565b92915050565b600060208284031215613d2157613d20614b00565b5b6000613d2f84828501613c8d565b91505092915050565b600060208284031215613d4e57613d4d614b00565b5b6000613d5c84828501613ca2565b91505092915050565b600060208284031215613d7b57613d7a614b00565b5b6000613d8984828501613cb7565b91505092915050565b60008060408385031215613da957613da8614b00565b5b6000613db785828601613c8d565b9250506020613dc885828601613c8d565b9150509250929050565b600080600060608486031215613deb57613dea614b00565b5b6000613df986828701613c8d565b9350506020613e0a86828701613c8d565b9250506040613e1b86828701613c8d565b9150509250925092565b600080600060608486031215613e3e57613e3d614b00565b5b6000613e4c86828701613c8d565b9350506020613e5d86828701613c8d565b9250506040613e6e86828701613ce1565b9150509250925092565b60008060408385031215613e8f57613e8e614b00565b5b6000613e9d85828601613c8d565b9250506020613eae85828601613ccc565b9150509250929050565b60008060408385031215613ecf57613ece614b00565b5b6000613edd85828601613c8d565b9250506020613eee85828601613ce1565b9150509250929050565b600060208284031215613f0e57613f0d614b00565b5b6000613f1c84828501613ccc565b91505092915050565b600080600060608486031215613f3e57613f3d614b00565b5b6000613f4c86828701613ccc565b9350506020613f5d86828701613ce1565b9250506040613f6e86828701613ccc565b9150509250925092565b600060208284031215613f8e57613f8d614b00565b5b6000613f9c84828501613ce1565b91505092915050565b60008060408385031215613fbc57613fbb614b00565b5b6000613fca85828601613ce1565b9250506020613fdb85828601613cb7565b9150509250929050565b60008060408385031215613ffc57613ffb614b00565b5b600061400a85828601613ce1565b925050602061401b85828601613ce1565b9150509250929050565b60008060006060848603121561403e5761403d614b00565b5b600061404c86828701613cf6565b935050602061405d86828701613cf6565b925050604061406e86828701613cf6565b9150509250925092565b6000806000806080858703121561409257614091614b00565b5b60006140a087828801613ce1565b94505060206140b187828801613ce1565b93505060406140c287828801613ce1565b92505060606140d387828801613ce1565b91505092959194509250565b60006140eb8383614106565b60208301905092915050565b614100816149a5565b82525050565b61410f8161493e565b82525050565b61411e8161493e565b82525050565b600061412f826147d9565b61413981856147fc565b9350614144836147c9565b8060005b8381101561417557815161415c88826140df565b9750614167836147ef565b925050600181019050614148565b5085935050505092915050565b61418b81614962565b82525050565b61419a816149b7565b82525050565b6141a9816149c9565b82525050565b6141b8816149db565b82525050565b60006141c9826147e4565b6141d38185614818565b93506141e3818560208601614a11565b6141ec81614b05565b840191505092915050565b6000614204601183614818565b915061420f82614b16565b602082019050919050565b6000614227601083614818565b915061423282614b3f565b602082019050919050565b600061424a602c83614818565b915061425582614b68565b604082019050919050565b600061426d602a83614818565b915061427882614bb7565b604082019050919050565b6000614290602a83614818565b915061429b82614c06565b604082019050919050565b60006142b3601483614818565b91506142be82614c55565b602082019050919050565b60006142d6603183614818565b91506142e182614c7e565b604082019050919050565b60006142f9602983614818565b915061430482614ccd565b604082019050919050565b600061431c602d83614818565b915061432782614d1c565b604082019050919050565b600061433f600683614818565b915061434a82614d6b565b602082019050919050565b600061436260008361480d565b915061436d82614d94565b600082019050919050565b6000614385602b83614818565b915061439082614d97565b604082019050919050565b60006143a8603083614818565b91506143b382614de6565b604082019050919050565b60006143cb600b83614818565b91506143d682614e35565b602082019050919050565b6143ea8161498e565b82525050565b6143f981614998565b82525050565b600061440a82614355565b9150819050919050565b60006020820190506144296000830184614115565b92915050565b600060208201905061444460008301846140f7565b92915050565b600060408201905061445f6000830185614115565b61446c60208301846141af565b9392505050565b60006040820190506144886000830185614115565b61449560208301846143e1565b9392505050565b600060c0820190506144b16000830189614115565b6144be60208301886143e1565b6144cb60408301876141af565b6144d860608301866141af565b6144e56080830185614115565b6144f260a08301846143e1565b979650505050505050565b60006020820190506145126000830184614182565b92915050565b600060208201905061452d6000830184614191565b92915050565b600060208201905061454860008301846141a0565b92915050565b6000602082019050818103600083015261456881846141be565b905092915050565b60006020820190508181036000830152614589816141f7565b9050919050565b600060208201905081810360008301526145a98161421a565b9050919050565b600060208201905081810360008301526145c98161423d565b9050919050565b600060208201905081810360008301526145e981614260565b9050919050565b6000602082019050818103600083015261460981614283565b9050919050565b60006020820190508181036000830152614629816142a6565b9050919050565b60006020820190508181036000830152614649816142c9565b9050919050565b60006020820190508181036000830152614669816142ec565b9050919050565b600060208201905081810360008301526146898161430f565b9050919050565b600060208201905081810360008301526146a981614332565b9050919050565b600060208201905081810360008301526146c981614378565b9050919050565b600060208201905081810360008301526146e98161439b565b9050919050565b60006020820190508181036000830152614709816143be565b9050919050565b600060208201905061472560008301846143e1565b92915050565b600060a08201905061474060008301886143e1565b61474d60208301876141af565b818103604083015261475f8186614124565b905061476e6060830185614115565b61477b60808301846143e1565b9695505050505050565b600060408201905061479a60008301856143e1565b6147a760208301846143e1565b9392505050565b60006020820190506147c360008301846143f0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006148348261498e565b915061483f8361498e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561487457614873614a44565b5b828201905092915050565b600061488a8261498e565b91506148958361498e565b9250826148a5576148a4614a73565b5b828204905092915050565b60006148bb8261498e565b91506148c68361498e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148ff576148fe614a44565b5b828202905092915050565b60006149158261498e565b91506149208361498e565b92508282101561493357614932614a44565b5b828203905092915050565b60006149498261496e565b9050919050565b600061495b8261496e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006149b0826149ed565b9050919050565b60006149c2826149ed565b9050919050565b60006149d4826149ed565b9050919050565b60006149e68261498e565b9050919050565b60006149f8826149ff565b9050919050565b6000614a0a8261496e565b9050919050565b60005b83811015614a2f578082015181840152602081019050614a14565b83811115614a3e576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f496e73756666696369656e742043524f00000000000000000000000000000000600082015250565b7f5265776172647320546178206f6e20627579732063616e206e6f74206265206c60008201527f6f776572207468616e2032250000000000000000000000000000000000000000602082015250565b7f5465616d20546178206f6e20627579732063616e206e6f74206265206869676860008201527f6572207468616e20302500000000000000000000000000000000000000000000602082015250565b7f4c5020546178206f6e2073656c6c732063616e206e6f7420626520686967686560008201527f72207468616e2031302500000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f4d61726b6574696e6720546178206f6e2073656c6c732063616e206e6f74206260008201527f6520686967686572207468616e20313025000000000000000000000000000000602082015250565b7f4c5020546178206f6e20627579732063616e206e6f742062652068696768657260008201527f207468616e203130250000000000000000000000000000000000000000000000602082015250565b7f5265776172647320546178206f6e2073656c6c732063616e206e6f742062652060008201527f6c6f776572207468616e20322500000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f5465616d20546178206f6e2073656c6c732063616e206e6f742062652068696760008201527f686572207468616e203025000000000000000000000000000000000000000000602082015250565b7f4d61726b6574696e6720546178206f6e20627579732063616e206e6f7420626560008201527f20686967686572207468616e2031302500000000000000000000000000000000602082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b614e678161493e565b8114614e7257600080fd5b50565b614e7e81614950565b8114614e8957600080fd5b50565b614e9581614962565b8114614ea057600080fd5b50565b614eac8161498e565b8114614eb757600080fd5b5056fea2646970667358221220d0cc323372b98da787e6594a5dc99439965728ff517493bb02b772d38c40cdf564736f6c6343000807003360806040526ec097ce7bc90715b34b9f1000000000600a55610e10600b556001600c553480156200002f57600080fd5b50604051620016fb380380620016fb8339818101604052810190620000559190620000f4565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200018d565b600081519050620000ee8162000173565b92915050565b6000602082840312156200010d576200010c6200016e565b5b60006200011d84828501620000dd565b91505092915050565b600062000133826200014e565b9050919050565b6000620001478262000126565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200017e816200013a565b81146200018a57600080fd5b50565b61155e806200019d6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610291578063f0fc6bca146102bc578063ffb2c479146102d3578063ffd49c84146102fc576100dd565b8063ce7c2ac21461021d578063d0e30db01461025c578063e2d2e21914610266576100dd565b80632d48e896116100bb5780632d48e896146101735780633a98ef391461019c5780634fab0ae8146101c7578063997664d7146101f2576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610136575b600080fd5b3480156100ee57600080fd5b506100f7610327565b6040516101049190611205565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f91906110ce565b61032d565b005b34801561014257600080fd5b5061015d600480360381019061015891906110a1565b6105ec565b60405161016a9190611205565b60405180910390f35b34801561017f57600080fd5b5061019a6004803603810190610195919061113b565b610706565b005b3480156101a857600080fd5b506101b1610770565b6040516101be9190611205565b60405180910390f35b3480156101d357600080fd5b506101dc610776565b6040516101e99190611205565b60405180910390f35b3480156101fe57600080fd5b5061020761077c565b6040516102149190611205565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906110a1565b610782565b60405161025393929190611220565b60405180910390f35b6102646107ac565b005b34801561027257600080fd5b5061027b610864565b6040516102889190611205565b60405180910390f35b34801561029d57600080fd5b506102a661086a565b6040516102b39190611205565b60405180910390f35b3480156102c857600080fd5b506102d1610870565b005b3480156102df57600080fd5b506102fa60048036038101906102f5919061110e565b6108c3565b005b34801561030857600080fd5b50610311610a57565b60405161031e9190611205565b60405180910390f35b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461038557600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103da576103d982610a5d565b5b60008111801561042c57506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561043f5761043a82610cca565b6104a1565b60008114801561049157506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104a05761049f82610d79565b5b5b61050a816104fc600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600654610f8090919063ffffffff16565b610f9690919063ffffffff16565b60068190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105a2600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610fac565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106415760009050610701565b600061068e600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610fac565b90506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116106e957600092505050610701565b6106fc8183610f8090919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075e57600080fd5b81600b8190555080600c819055505050565b60065481565b600c5481565b60075481565b60056020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080457600080fd5b61081934600754610f9690919063ffffffff16565b60078190555061085c61084b60065461083d34600a54610fde90919063ffffffff16565b610ff490919063ffffffff16565b600954610f9690919063ffffffff16565b600981905550565b60095481565b60085481565b6108793361100a565b6108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af906111e5565b60405180910390fd5b6108c133610a5d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091b57600080fd5b6000600280549050905060008114156109345750610a54565b60008060005a90505b848210801561094b57508383105b15610a4f5783600d5410610962576000600d819055505b6109ab6002600d548154811061097b5761097a61149a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661100a565b156109fa576109f96002600d54815481106109c9576109c861149a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a5d565b5b610a1f610a105a83610f8090919063ffffffff16565b83610f9690919063ffffffff16565b91505a9050600d6000815480929190610a37906113c4565b91905055508280610a47906113c4565b93505061093d565b505050505b50565b600b5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610aad57610cc7565b6000610ab8826105ec565b90506000811115610cc557610ad881600854610f9690919063ffffffff16565b60088190555060008273ffffffffffffffffffffffffffffffffffffffff168261753090604051610b08906111d0565b600060405180830381858888f193505050503d8060008114610b46576040519150601f19603f3d011682016040523d82523d6000602084013e610b4b565b606091505b505090506000905042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bec82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610f9690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610c7d600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610fac565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b505b50565b600280549050600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60026001600280549050610d8d9190611354565b81548110610d9e57610d9d61149a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610e1c57610e1b61149a565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060026001600280549050610ebc9190611354565b81548110610ecd57610ecc61149a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002805480610f4857610f4761146b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b60008183610f8e9190611354565b905092915050565b60008183610fa49190611273565b905092915050565b6000610fd7600a54610fc960095485610fde90919063ffffffff16565b610ff490919063ffffffff16565b9050919050565b60008183610fec91906112fa565b905092915050565b6000818361100291906112c9565b905092915050565b600042600b54600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461105a9190611273565b1080156110705750600c5461106e836105ec565b115b9050919050565b600081359050611086816114fa565b92915050565b60008135905061109b81611511565b92915050565b6000602082840312156110b7576110b66114c9565b5b60006110c584828501611077565b91505092915050565b600080604083850312156110e5576110e46114c9565b5b60006110f385828601611077565b92505060206111048582860161108c565b9150509250929050565b600060208284031215611124576111236114c9565b5b60006111328482850161108c565b91505092915050565b60008060408385031215611152576111516114c9565b5b60006111608582860161108c565b92505060206111718582860161108c565b9150509250929050565b6000611188601783611262565b9150611193826114ce565b602082019050919050565b60006111ab600083611257565b91506111b6826114f7565b600082019050919050565b6111ca816113ba565b82525050565b60006111db8261119e565b9150819050919050565b600060208201905081810360008301526111fe8161117b565b9050919050565b600060208201905061121a60008301846111c1565b92915050565b600060608201905061123560008301866111c1565b61124260208301856111c1565b61124f60408301846111c1565b949350505050565b600081905092915050565b600082825260208201905092915050565b600061127e826113ba565b9150611289836113ba565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156112be576112bd61140d565b5b828201905092915050565b60006112d4826113ba565b91506112df836113ba565b9250826112ef576112ee61143c565b5b828204905092915050565b6000611305826113ba565b9150611310836113ba565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113495761134861140d565b5b828202905092915050565b600061135f826113ba565b915061136a836113ba565b92508282101561137d5761137c61140d565b5b828203905092915050565b60006113938261139a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006113cf826113ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114025761140161140d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b7f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000600082015250565b50565b61150381611388565b811461150e57600080fd5b50565b61151a816113ba565b811461152557600080fd5b5056fea264697066735822122008f62b83ca5d47d0d38528e8e0a07ac84de0aac83b892eddf319f5d77c4138f664736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103a65760003560e01c806375f0a874116101e7578063bad3ea6a1161010d578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610de9578063fabe628314610e14578063fe9fbb8014610e3d578063ffb54a9914610e7a576103ad565b8063dd62ed3e14610d31578063e2dd8ca014610d6e578063f0b37c0414610d97578063f2fde38b14610dc0576103ad565b8063d829d3f8116100dc578063d829d3f814610c89578063d920334e14610cb2578063da00097d14610cdb578063dbe1c4d514610d06576103ad565b8063bad3ea6a14610bdd578063bf56b37114610c08578063ca33e64c14610c33578063d7c94efd14610c5e576103ad565b80638b42507f11610185578063a9059cbb11610154578063a9059cbb14610b25578063a9f7864b14610b62578063b0a616a914610b8b578063b6a5d7de14610bb4576103ad565b80638b42507f14610a6757806395d89b4114610aa457806398118cb414610acf578063a8aa1b3114610afa576103ad565b80637db1342c116101c15780637db1342c146109bd578063807c2d9c146109e657806384f6820a14610a11578063893d20e814610a3c576103ad565b806375f0a8741461093e578063773fcb5c146109695780637d1db4a514610992576103ad565b8063315dca29116102cc578063479f66d81161026a57806359927044116102395780635992704414610882578063650c4226146108ad5780636b67c4df146108d657806370a0823114610901576103ad565b8063479f66d8146107c65780634a74bb02146107ef578063531484161461081a578063571ac8b014610845576103ad565b80633f4218e0116102a65780633f4218e0146106f85780634102eedc146107355780634355855a1461075e57806344de2e4c1461079b576103ad565b8063315dca291461066957806334c70889146106925780633bbac579146106bb576103ad565b806313374e7a116103445780632b112e49116103135780632b112e49146105ab5780632bb14e1d146105d65780632f54bf6e14610601578063313ce5671461063e576103ad565b806313374e7a146104ed57806318160ddd146105185780631df4ccfc1461054357806323b872dd1461056e576103ad565b8063095ea7b311610380578063095ea7b31461043357806309ad803d146104705780630d295980146104995780631107b3a5146104c2576103ad565b806303898c17146103b25780630445b667146103dd57806306fdde0314610408576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610ea5565b6040516103d49190614710565b60405180910390f35b3480156103e957600080fd5b506103f2610eab565b6040516103ff9190614710565b60405180910390f35b34801561041457600080fd5b5061041d610eb1565b60405161042a919061454e565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613eb8565b610eee565b60405161046791906144fd565b60405180910390f35b34801561047c57600080fd5b5061049760048036038101906104929190614078565b610fe0565b005b3480156104a557600080fd5b506104c060048036038101906104bb9190613ef8565b61119f565b005b3480156104ce57600080fd5b506104d761120c565b6040516104e49190614710565b60405180910390f35b3480156104f957600080fd5b50610502611212565b60405161050f9190614710565b60405180910390f35b34801561052457600080fd5b5061052d611218565b60405161053a9190614710565b60405180910390f35b34801561054f57600080fd5b50610558611222565b6040516105659190614710565b60405180910390f35b34801561057a57600080fd5b5061059560048036038101906105909190613e25565b611228565b6040516105a291906144fd565b60405180910390f35b3480156105b757600080fd5b506105c0611428565b6040516105cd9190614710565b60405180910390f35b3480156105e257600080fd5b506105eb6114aa565b6040516105f89190614710565b60405180910390f35b34801561060d57600080fd5b5061062860048036038101906106239190613d0b565b6114b0565b60405161063591906144fd565b60405180910390f35b34801561064a57600080fd5b50610653611509565b60405161066091906147ae565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b9190613dd2565b611512565b005b34801561069e57600080fd5b506106b960048036038101906106b49190613f25565b611622565b005b3480156106c757600080fd5b506106e260048036038101906106dd9190613d0b565b6116aa565b6040516106ef91906144fd565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a9190613d0b565b6116ca565b60405161072c91906144fd565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613e78565b6116ea565b005b34801561076a57600080fd5b5061078560048036038101906107809190613d0b565b61178d565b60405161079291906144fd565b60405180910390f35b3480156107a757600080fd5b506107b06117ad565b6040516107bd91906144fd565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190613f78565b6117c0565b005b3480156107fb57600080fd5b50610804611821565b60405161081191906144fd565b60405180910390f35b34801561082657600080fd5b5061082f611834565b60405161083c9190614710565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613d0b565b61183a565b60405161087991906144fd565b60405180910390f35b34801561088e57600080fd5b5061089761186d565b6040516108a49190614414565b60405180910390f35b3480156108b957600080fd5b506108d460048036038101906108cf9190614078565b611893565b005b3480156108e257600080fd5b506108eb611a52565b6040516108f89190614710565b60405180910390f35b34801561090d57600080fd5b5061092860048036038101906109239190613d0b565b611a58565b6040516109359190614710565b60405180910390f35b34801561094a57600080fd5b50610953611aa1565b6040516109609190614414565b60405180910390f35b34801561097557600080fd5b50610990600480360381019061098b9190613e78565b611ac7565b005b34801561099e57600080fd5b506109a7611d67565b6040516109b49190614710565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190613f78565b611d6d565b005b3480156109f257600080fd5b506109fb611dbf565b604051610a089190614710565b60405180910390f35b348015610a1d57600080fd5b50610a26611dc5565b604051610a339190614710565b60405180910390f35b348015610a4857600080fd5b50610a51611dcb565b604051610a5e9190614414565b60405180910390f35b348015610a7357600080fd5b50610a8e6004803603810190610a899190613d0b565b611df4565b604051610a9b91906144fd565b60405180910390f35b348015610ab057600080fd5b50610ab9611e14565b604051610ac6919061454e565b60405180910390f35b348015610adb57600080fd5b50610ae4611e51565b604051610af19190614710565b60405180910390f35b348015610b0657600080fd5b50610b0f611e57565b604051610b1c9190614414565b60405180910390f35b348015610b3157600080fd5b50610b4c6004803603810190610b479190613eb8565b611e7d565b604051610b5991906144fd565b60405180910390f35b348015610b6e57600080fd5b50610b896004803603810190610b849190613fe5565b611e92565b005b348015610b9757600080fd5b50610bb26004803603810190610bad9190613fa5565b611f6d565b005b348015610bc057600080fd5b50610bdb6004803603810190610bd69190613d0b565b612048565b005b348015610be957600080fd5b50610bf26120ea565b604051610bff9190614518565b60405180910390f35b348015610c1457600080fd5b50610c1d612110565b604051610c2a9190614710565b60405180910390f35b348015610c3f57600080fd5b50610c48612116565b604051610c559190614414565b60405180910390f35b348015610c6a57600080fd5b50610c7361213c565b604051610c809190614710565b60405180910390f35b348015610c9557600080fd5b50610cb06004803603810190610cab9190613ef8565b612142565b005b348015610cbe57600080fd5b50610cd96004803603810190610cd49190613f78565b6121a7565b005b348015610ce757600080fd5b50610cf06121f9565b604051610cfd91906144fd565b60405180910390f35b348015610d1257600080fd5b50610d1b61220c565b604051610d289190614710565b60405180910390f35b348015610d3d57600080fd5b50610d586004803603810190610d539190613d92565b612212565b604051610d659190614710565b60405180910390f35b348015610d7a57600080fd5b50610d956004803603810190610d909190613e78565b612299565b005b348015610da357600080fd5b50610dbe6004803603810190610db99190613d0b565b61233c565b005b348015610dcc57600080fd5b50610de76004803603810190610de29190613d65565b6123df565b005b348015610df557600080fd5b50610dfe6124f8565b604051610e0b9190614533565b60405180910390f35b348015610e2057600080fd5b50610e3b6004803603810190610e369190613e78565b61251e565b005b348015610e4957600080fd5b50610e646004803603810190610e5f9190613d0b565b6125c1565b604051610e7191906144fd565b60405180910390f35b348015610e8657600080fd5b50610e8f612617565b604051610e9c91906144fd565b60405180910390f35b60135481565b60215481565b60606040518060400160405280600b81526020017f43524f4e4f5320424f5353000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fce9190614710565b60405180910390a36001905092915050565b610fe9336125c1565b611028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101f906146f0565b60405180910390fd5b600a84111561106c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611063906145f0565b60405180910390fd5b600a8211156110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790614630565b60405180910390fd5b60008111156110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb906146b0565b60405180910390fd5b6002831015611138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112f90614670565b60405180910390fd5b83600f81905550826013819055508160118190555080601581905550611193601354611185601554611177601154600f5461262a90919063ffffffff16565b61262a90919063ffffffff16565b61262a90919063ffffffff16565b60178190555050505050565b6111a8336114b0565b6111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de90614690565b60405180910390fd5b80601e60006101000a81548160ff021916908315150217905550611209612640565b50565b600f5481565b60115481565b6000600454905090565b60165481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461141457611393826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126499092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61141f84848461269e565b90509392505050565b60006114a5611458600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a58565b611497611486600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a58565b60045461312590919063ffffffff16565b61312590919063ffffffff16565b905090565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b61151b336125c1565b61155a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611551906146f0565b60405180910390fd5b82601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61162b336125c1565b61166a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611661906146f0565b60405180910390fd5b82602060016101000a81548160ff0219169083151502179055508160218190555080602060026101000a81548160ff021916908315150217905550505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b6116f3336125c1565b611732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611729906146f0565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900460ff1681565b6117c9336125c1565b611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff906146f0565b60405180910390fd5b620b71b0811061181757600080fd5b80601f8190555050565b602060019054906101000a900460ff1681565b60175481565b6000611866827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610eee565b9050919050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61189c336125c1565b6118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d2906146f0565b60405180910390fd5b600a84111561191f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191690614650565b60405180910390fd5b600a821115611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a906146d0565b60405180910390fd5b60008111156119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e906145d0565b60405180910390fd5b60028310156119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906145b0565b60405180910390fd5b83600e81905550826012819055508160108190555080601481905550611a46601254611a38601454611a2a601054600e5461262a90919063ffffffff16565b61262a90919063ffffffff16565b61262a90919063ffffffff16565b60168190555050505050565b60105481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ad0336125c1565b611b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b06906146f0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611b995750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611ba257600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611c9457601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401611c5d92919061444a565b600060405180830381600087803b158015611c7757600080fd5b505af1158015611c8b573d6000803e3d6000fd5b50505050611d63565b601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401611d30929190614473565b600060405180830381600087803b158015611d4a57600080fd5b505af1158015611d5e573d6000803e3d6000fd5b505050505b5050565b60055481565b611d76336125c1565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906146f0565b60405180910390fd5b8060068190555050565b60065481565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f43424f5353000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e8a33848461269e565b905092915050565b611e9b336125c1565b611eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed1906146f0565b60405180910390fd5b601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611f37929190614785565b600060405180830381600087803b158015611f5157600080fd5b505af1158015611f65573d6000803e3d6000fd5b505050505050565b611f76336114b0565b611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90614690565b60405180910390fd5b6000479050828111611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390614590565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612042573d6000803e3d6000fd5b50505050565b612051336114b0565b612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790614690565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b61214b336125c1565b61218a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612181906146f0565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b6121b0336125c1565b6121ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e6906146f0565b60405180910390fd5b8060058190555050565b602060029054906101000a900460ff1681565b60225481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6122a2336114b0565b6122e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d890614690565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612345336114b0565b612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b90614690565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123e8336114b0565b612427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241e90614690565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516124ed919061442f565b60405180910390a150565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612527336125c1565b612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d906146f0565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601e60009054906101000a900460ff1681565b600081836126389190614829565b905092915050565b42601d81905550565b6000838311158290612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612688919061454e565b60405180910390fd5b5082840390509392505050565b6000602060009054906101000a900460ff16156126c7576126c084848461313b565b905061311e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561276b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c057601e60009054906101000a900460ff166127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b690614610565b60405180910390fd5b5b6005548211158061281a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285090614570565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128c45750602060009054906101000a900460ff16155b80156128dc5750602060019054906101000a900460ff165b80156129295750602154600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156129375761293661330e565b5b61293f6139eb565b1580156129995750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156129eb576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116129ea57600080fd5b5b602254601d546129fb9190614829565b42108015612a575750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612af0576001600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600115157f3159dadbd8e2d720a851b412e3358e7e44bb11734c9bfd5715340e21798e8b2584604051612ae79190614414565b60405180910390a25b612b79826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126499092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c225750600760009054906101000a900460ff165b15612c8857600654612c7c83600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262a90919063ffffffff16565b1115612c8757600080fd5b5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d2e5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612d385782612d44565b612d438585856139f8565b5b9050612d9881600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262a90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612efe57601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612ec8929190614473565b600060405180830381600087803b158015612ee257600080fd5b505af1925050508015612ef3575060015b612efc57612efd565b5b5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661302157601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612feb929190614473565b600060405180830381600087803b15801561300557600080fd5b505af1925050508015613016575060015b61301f57613020565b5b5b601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479601f546040518263ffffffff1660e01b815260040161307e9190614710565b600060405180830381600087803b15801561309857600080fd5b505af19250505080156130a9575060015b6130b2576130b3565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131109190614710565b60405180910390a360019150505b9392505050565b60008183613133919061490a565b905092915050565b60006131c6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126499092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061325b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132fb9190614710565b60405180910390a3600190509392505050565b6001602060006101000a81548160ff0219169083151502179055506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006133ab600261339d60165461338f600e5487613c6190919063ffffffff16565b613c7790919063ffffffff16565b613c7790919063ffffffff16565b905060006133c2828461312590919063ffffffff16565b90506000600267ffffffffffffffff8111156133e1576133e0614ad1565b5b60405190808252806020026020018201604052801561340f5781602001602082028036833780820191505090505b509050308160008151811061342757613426614aa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156134c957600080fd5b505afa1580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135019190613d38565b8160018151811061351557613514614aa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016135b395949392919061472b565b600060405180830381600087803b1580156135cd57600080fd5b505af11580156135e1573d6000803e3d6000fd5b50505050600047905060006136166136056002600e54613c7790919063ffffffff16565b60165461312590919063ffffffff16565b90506000613654600261364684613638600e5488613c6190919063ffffffff16565b613c7790919063ffffffff16565b613c7790919063ffffffff16565b9050600061367f8361367160125487613c6190919063ffffffff16565b613c7790919063ffffffff16565b905060006136a88261369a858861312590919063ffffffff16565b61312590919063ffffffff16565b9050601e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561371457600080fd5b505af193505050508015613726575060015b61372f57613730565b5b60006137598561374b60145489613c6190919063ffffffff16565b613c7790919063ffffffff16565b90506000613770828461312590919063ffffffff16565b90506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516137be906143ff565b600060405180830381858888f193505050503d80600081146137fc576040519150601f19603f3d011682016040523d82523d6000602084013e613801565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613851906143ff565b600060405180830381858888f193505050503d806000811461388f576040519150601f19603f3d011682016040523d82523d6000602084013e613894565b606091505b50509050600091506000905060008c11156139c157601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71988308f600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016139329695949392919061449c565b6060604051808303818588803b15801561394b57600080fd5b505af115801561395f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906139849190614025565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506878d6040516139b8929190614785565b60405180910390a15b505050505050505050505050506000602060006101000a81548160ff021916908315150217905550565b600080601d541415905090565b6000808373ffffffffffffffffffffffffffffffffffffffff16601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613a5857601654613a5c565b6017545b905060011515600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415613ac05760639050613b1f565b60011515600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415613b1e57606390505b5b6000613b476064613b398487613c6190919063ffffffff16565b613c7790919063ffffffff16565b9050613b9b81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262a90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c3b9190614710565b60405180910390a3613c56818561312590919063ffffffff16565b925050509392505050565b60008183613c6f91906148b0565b905092915050565b60008183613c85919061487f565b905092915050565b600081359050613c9c81614e5e565b92915050565b600081519050613cb181614e5e565b92915050565b600081359050613cc681614e75565b92915050565b600081359050613cdb81614e8c565b92915050565b600081359050613cf081614ea3565b92915050565b600081519050613d0581614ea3565b92915050565b600060208284031215613d2157613d20614b00565b5b6000613d2f84828501613c8d565b91505092915050565b600060208284031215613d4e57613d4d614b00565b5b6000613d5c84828501613ca2565b91505092915050565b600060208284031215613d7b57613d7a614b00565b5b6000613d8984828501613cb7565b91505092915050565b60008060408385031215613da957613da8614b00565b5b6000613db785828601613c8d565b9250506020613dc885828601613c8d565b9150509250929050565b600080600060608486031215613deb57613dea614b00565b5b6000613df986828701613c8d565b9350506020613e0a86828701613c8d565b9250506040613e1b86828701613c8d565b9150509250925092565b600080600060608486031215613e3e57613e3d614b00565b5b6000613e4c86828701613c8d565b9350506020613e5d86828701613c8d565b9250506040613e6e86828701613ce1565b9150509250925092565b60008060408385031215613e8f57613e8e614b00565b5b6000613e9d85828601613c8d565b9250506020613eae85828601613ccc565b9150509250929050565b60008060408385031215613ecf57613ece614b00565b5b6000613edd85828601613c8d565b9250506020613eee85828601613ce1565b9150509250929050565b600060208284031215613f0e57613f0d614b00565b5b6000613f1c84828501613ccc565b91505092915050565b600080600060608486031215613f3e57613f3d614b00565b5b6000613f4c86828701613ccc565b9350506020613f5d86828701613ce1565b9250506040613f6e86828701613ccc565b9150509250925092565b600060208284031215613f8e57613f8d614b00565b5b6000613f9c84828501613ce1565b91505092915050565b60008060408385031215613fbc57613fbb614b00565b5b6000613fca85828601613ce1565b9250506020613fdb85828601613cb7565b9150509250929050565b60008060408385031215613ffc57613ffb614b00565b5b600061400a85828601613ce1565b925050602061401b85828601613ce1565b9150509250929050565b60008060006060848603121561403e5761403d614b00565b5b600061404c86828701613cf6565b935050602061405d86828701613cf6565b925050604061406e86828701613cf6565b9150509250925092565b6000806000806080858703121561409257614091614b00565b5b60006140a087828801613ce1565b94505060206140b187828801613ce1565b93505060406140c287828801613ce1565b92505060606140d387828801613ce1565b91505092959194509250565b60006140eb8383614106565b60208301905092915050565b614100816149a5565b82525050565b61410f8161493e565b82525050565b61411e8161493e565b82525050565b600061412f826147d9565b61413981856147fc565b9350614144836147c9565b8060005b8381101561417557815161415c88826140df565b9750614167836147ef565b925050600181019050614148565b5085935050505092915050565b61418b81614962565b82525050565b61419a816149b7565b82525050565b6141a9816149c9565b82525050565b6141b8816149db565b82525050565b60006141c9826147e4565b6141d38185614818565b93506141e3818560208601614a11565b6141ec81614b05565b840191505092915050565b6000614204601183614818565b915061420f82614b16565b602082019050919050565b6000614227601083614818565b915061423282614b3f565b602082019050919050565b600061424a602c83614818565b915061425582614b68565b604082019050919050565b600061426d602a83614818565b915061427882614bb7565b604082019050919050565b6000614290602a83614818565b915061429b82614c06565b604082019050919050565b60006142b3601483614818565b91506142be82614c55565b602082019050919050565b60006142d6603183614818565b91506142e182614c7e565b604082019050919050565b60006142f9602983614818565b915061430482614ccd565b604082019050919050565b600061431c602d83614818565b915061432782614d1c565b604082019050919050565b600061433f600683614818565b915061434a82614d6b565b602082019050919050565b600061436260008361480d565b915061436d82614d94565b600082019050919050565b6000614385602b83614818565b915061439082614d97565b604082019050919050565b60006143a8603083614818565b91506143b382614de6565b604082019050919050565b60006143cb600b83614818565b91506143d682614e35565b602082019050919050565b6143ea8161498e565b82525050565b6143f981614998565b82525050565b600061440a82614355565b9150819050919050565b60006020820190506144296000830184614115565b92915050565b600060208201905061444460008301846140f7565b92915050565b600060408201905061445f6000830185614115565b61446c60208301846141af565b9392505050565b60006040820190506144886000830185614115565b61449560208301846143e1565b9392505050565b600060c0820190506144b16000830189614115565b6144be60208301886143e1565b6144cb60408301876141af565b6144d860608301866141af565b6144e56080830185614115565b6144f260a08301846143e1565b979650505050505050565b60006020820190506145126000830184614182565b92915050565b600060208201905061452d6000830184614191565b92915050565b600060208201905061454860008301846141a0565b92915050565b6000602082019050818103600083015261456881846141be565b905092915050565b60006020820190508181036000830152614589816141f7565b9050919050565b600060208201905081810360008301526145a98161421a565b9050919050565b600060208201905081810360008301526145c98161423d565b9050919050565b600060208201905081810360008301526145e981614260565b9050919050565b6000602082019050818103600083015261460981614283565b9050919050565b60006020820190508181036000830152614629816142a6565b9050919050565b60006020820190508181036000830152614649816142c9565b9050919050565b60006020820190508181036000830152614669816142ec565b9050919050565b600060208201905081810360008301526146898161430f565b9050919050565b600060208201905081810360008301526146a981614332565b9050919050565b600060208201905081810360008301526146c981614378565b9050919050565b600060208201905081810360008301526146e98161439b565b9050919050565b60006020820190508181036000830152614709816143be565b9050919050565b600060208201905061472560008301846143e1565b92915050565b600060a08201905061474060008301886143e1565b61474d60208301876141af565b818103604083015261475f8186614124565b905061476e6060830185614115565b61477b60808301846143e1565b9695505050505050565b600060408201905061479a60008301856143e1565b6147a760208301846143e1565b9392505050565b60006020820190506147c360008301846143f0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006148348261498e565b915061483f8361498e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561487457614873614a44565b5b828201905092915050565b600061488a8261498e565b91506148958361498e565b9250826148a5576148a4614a73565b5b828204905092915050565b60006148bb8261498e565b91506148c68361498e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148ff576148fe614a44565b5b828202905092915050565b60006149158261498e565b91506149208361498e565b92508282101561493357614932614a44565b5b828203905092915050565b60006149498261496e565b9050919050565b600061495b8261496e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006149b0826149ed565b9050919050565b60006149c2826149ed565b9050919050565b60006149d4826149ed565b9050919050565b60006149e68261498e565b9050919050565b60006149f8826149ff565b9050919050565b6000614a0a8261496e565b9050919050565b60005b83811015614a2f578082015181840152602081019050614a14565b83811115614a3e576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f496e73756666696369656e742043524f00000000000000000000000000000000600082015250565b7f5265776172647320546178206f6e20627579732063616e206e6f74206265206c60008201527f6f776572207468616e2032250000000000000000000000000000000000000000602082015250565b7f5465616d20546178206f6e20627579732063616e206e6f74206265206869676860008201527f6572207468616e20302500000000000000000000000000000000000000000000602082015250565b7f4c5020546178206f6e2073656c6c732063616e206e6f7420626520686967686560008201527f72207468616e2031302500000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f4d61726b6574696e6720546178206f6e2073656c6c732063616e206e6f74206260008201527f6520686967686572207468616e20313025000000000000000000000000000000602082015250565b7f4c5020546178206f6e20627579732063616e206e6f742062652068696768657260008201527f207468616e203130250000000000000000000000000000000000000000000000602082015250565b7f5265776172647320546178206f6e2073656c6c732063616e206e6f742062652060008201527f6c6f776572207468616e20322500000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f5465616d20546178206f6e2073656c6c732063616e206e6f742062652068696760008201527f686572207468616e203025000000000000000000000000000000000000000000602082015250565b7f4d61726b6574696e6720546178206f6e20627579732063616e206e6f7420626560008201527f20686967686572207468616e2031302500000000000000000000000000000000602082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b614e678161493e565b8114614e7257600080fd5b50565b614e7e81614950565b8114614e8957600080fd5b50565b614e9581614962565b8114614ea057600080fd5b50565b614eac8161498e565b8114614eb757600080fd5b5056fea2646970667358221220d0cc323372b98da787e6594a5dc99439965728ff517493bb02b772d38c40cdf564736f6c63430008070033

Deployed ByteCode Sourcemap

20354:13912:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21487:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22252:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23717:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24528:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26751:793;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;31753:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21325:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21407;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23954:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21601:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28639:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24126:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21451:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19898:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23876:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27552:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27836;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21241:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21077:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25398:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21183:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20920:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28328:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22151:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21636:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24752:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21818:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26040:703;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21369:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24276:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21736:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25664:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20786:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25173:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20853:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21562:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24048:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21128:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23794:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21287:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21930:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28475:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28120:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;33949:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19691:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22030:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21958:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21677:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21529:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25287:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25062;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22198:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22314:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24387:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31926:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19793:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20124:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21897:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25525:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20009:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21990:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21487:33;;;;:::o;22252:53::-;;;;:::o;23717:71::-;23756:13;23780:5;;;;;;;;;;;;;;;;;23773:12;;23717:71;:::o;24528:216::-;24603:4;24655:6;24620:11;:23;24632:10;24620:23;;;;;;;;;;;;;;;:32;24644:7;24620:32;;;;;;;;;;;;;;;:41;;;;24698:7;24677:37;;24686:10;24677:37;;;24707:6;24677:37;;;;;;:::i;:::-;;;;;;;;24732:4;24725:11;;24528:216;;;;:::o;26751:793::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26933:2:::1;26916:13;:19;;26908:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;27024:2;27001:19;:25;;26993:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;27117:1;27099:14;:19;;27091:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;27205:1;27185:16;:21;;27177:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;27288:13;27269:16;:32;;;;27329:16;27312:14;:33;;;;27375:19;27356:16;:38;;;;27419:14;27405:11;:28;;;;27461:75;27521:14;;27461:55;27504:11;;27461:38;27482:16;;27461;;:20;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;:59;;:75;;;;:::i;:::-;27446:12;:90;;;;26751:793:::0;;;;:::o;31753:117::-;19542:19;19550:10;19542:7;:19::i;:::-;19534:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;31834:9:::1;31820:11;;:23;;;;;;;;;;;;;;;;;;31854:8;:6;:8::i;:::-;31753:117:::0;:::o;21325:35::-;;;;:::o;21407:::-;;;;:::o;23954:88::-;24009:7;24027:12;;24020:19;;23954:88;:::o;21601:28::-;;;;:::o;28639:370::-;28739:4;28796:17;28761:11;:19;28773:6;28761:19;;;;;;;;;;;;;;;:31;28781:10;28761:31;;;;;;;;;;;;;;;;:52;28758:186;;28863:69;28899:6;28863:69;;;;;;;;;;;;;;;;;:11;:19;28875:6;28863:19;;;;;;;;;;;;;;;:31;28883:10;28863:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;28829:11;:19;28841:6;28829:19;;;;;;;;;;;;;;;:31;28849:10;28829:31;;;;;;;;;;;;;;;:103;;;;28758:186;28961:40;28975:6;28983:9;28994:6;28961:13;:40::i;:::-;28954:47;;28639:370;;;;;:::o;24126:142::-;24179:7;24206:54;24244:15;24254:4;;;;;;;;;;;24244:9;:15::i;:::-;24206:33;24223:15;24233:4;;;;;;;;;;;24223:9;:15::i;:::-;24206:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;24199:61;;24126:142;:::o;21451:29::-;;;;:::o;19898:103::-;19953:4;19988:5;;;;;;;;;;;19977:16;;:7;:16;;;19970:23;;19898:103;;;:::o;23876:72::-;23920:5;20582:1;23929:16;;23876:72;:::o;27552:276::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27716:20:::1;27692:21;;:44;;;;;;;;;;;;;;;;;;27765:18;27747:15;;:36;;;;;;;;;;;;;;;;;;27807:13;27794:10;;:26;;;;;;;;;;;;;;;;;;27552:276:::0;;;:::o;27836:::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27993:14:::1;27968:21;;:39;;;;;;;;;;;;;;;;;;28034:16;28018:13;:32;;;;28089:15;28061:25;;:43;;;;;;;;;;;;;;;;;;27836:276:::0;;;:::o;21241:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;21077:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;25398:119::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25503:6:::1;25481:11;:19;25493:6;25481:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;25398:119:::0;;:::o;21183:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;20920:33::-;;;;;;;;;;;;;:::o;28328:139::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;28421:6:::1;28415:3;:12;28407:21;;;::::0;::::1;;28456:3;28439:14;:20;;;;28328:139:::0;:::o;22151:40::-;;;;;;;;;;;;;:::o;21636:32::-;;;;:::o;24752:122::-;24807:4;24831:35;24839:7;24848:17;24831:7;:35::i;:::-;24824:42;;24752:122;;;:::o;21818:70::-;;;;;;;;;;;;;:::o;26040:703::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26200:2:::1;26187:9;:15;;26179:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;26286:2;26267:15;:21;;26259:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;26374:1;26360:10;:15;;26352:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;26457:1;26441:12;:17;;26433:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;26535:9;26520:12;:24;;;;26568:12;26555:10;:25;;;;26606:15;26591:12;:30;;;;26642:10;26632:7;:20;;;;26676:59;26724:10;;26676:43;26711:7;;26676:30;26693:12;;26676;;:16;;:30;;;;:::i;:::-;:34;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;26665:8;:70;;;;26040:703:::0;;;;:::o;21369:31::-;;;;:::o;24276:105::-;24342:7;24360:9;:18;24370:7;24360:18;;;;;;;;;;;;;;;;24353:25;;24276:105;;;:::o;21736:75::-;;;;;;;;;;;;;:::o;25664:368::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25782:4:::1;25764:23;;:6;:23;;;;:41;;;;;25801:4;;;;;;;;;;;25791:14;;:6;:14;;;;25764:41;25756:50;;;::::0;::::1;;25844:6;25817:16;:24;25834:6;25817:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;25866:6;25863:162;;;25888:19;;;;;;;;;;;:28;;;25917:6;25925:1;25888:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25863:162;;;25958:19;;;;;;;;;;;:28;;;25987:6;25995:9;:17;26005:6;25995:17;;;;;;;;;;;;;;;;25958:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25863:162;25664:368:::0;;:::o;20786:60::-;;;;:::o;25173:106::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25263:8:::1;25249:10;:22;;;;25173:106:::0;:::o;20853:58::-;;;;:::o;21562:30::-;;;;:::o;24048:70::-;24092:7;24110:5;;;;;;;;;;;24103:12;;24048:70;:::o;21128:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;23794:76::-;23836:13;23860:7;;;;;;;;;;;;;;;;;23853:14;;23794:76;:::o;21287:31::-;;;;:::o;21930:19::-;;;;;;;;;;;;;:::o;28475:156::-;28555:4;28579:44;28593:10;28605:9;28616:6;28579:13;:44::i;:::-;28572:51;;28475:156;;;;:::o;28120:200::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;28236:19:::1;;;;;;;;;;;:43;;;28280:11;28293:18;28236:76;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28120:200:::0;;:::o;33949:248::-;19542:19;19550:10;19542:7;:19::i;:::-;19534:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;34043:23:::1;34069:21;34043:47;;34127:6;34109:15;:24;34101:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;34164:8;:17;;:25;34182:6;34164:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;34032:165;33949:248:::0;;:::o;19691:94::-;19542:19;19550:10;19542:7;:19::i;:::-;19534:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19773:4:::1;19751:14:::0;:19:::1;19766:3;19751:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;19691:94:::0;:::o;22030:46::-;;;;;;;;;;;;;:::o;21958:25::-;;;;:::o;21677:52::-;;;;;;;;;;;;;:::o;21529:26::-;;;;:::o;25287:103::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25374:8:::1;25357:14;;:25;;;;;;;;;;;;;;;;;;25287:103:::0;:::o;25062:::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25149:8:::1;25134:12;:23;;;;25062:103:::0;:::o;22198:45::-;;;;;;;;;;;;;:::o;22314:29::-;;;;:::o;24387:133::-;24471:7;24489:11;:19;24501:6;24489:19;;;;;;;;;;;;;;;:28;24509:7;24489:28;;;;;;;;;;;;;;;;24482:35;;24387:133;;;;:::o;31926:120::-;19542:19;19550:10;19542:7;:19::i;:::-;19534:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;32033:5:::1;32013;:17;32019:10;32013:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;31926:120:::0;;:::o;19793:97::-;19542:19;19550:10;19542:7;:19::i;:::-;19534:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19877:5:::1;19855:14;:19;19870:3;19855:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;19793:97:::0;:::o;20124:173::-;19542:19;19550:10;19542:7;:19::i;:::-;19534:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20208:3:::1;20200:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;20244:4;20222:14:::0;:19:::1;20237:3;20222:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;20264:25;20285:3;20264:25;;;;;;:::i;:::-;;;;;;;;20124:173:::0;:::o;21897:26::-;;;;;;;;;;;;;:::o;25525:131::-;19632:24;19645:10;19632:12;:24::i;:::-;19624:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25642:6:::1;25616:15;:23;25632:6;25616:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;25525:131:::0;;:::o;20009:107::-;20065:4;20089:14;:19;20104:3;20089:19;;;;;;;;;;;;;;;;;;;;;;;;;20082:26;;20009:107;;;:::o;21990:31::-;;;;;;;;;;;;;:::o;12435:98::-;12493:7;12524:1;12520;:5;;;;:::i;:::-;12513:12;;12435:98;;;;:::o;24980:74::-;25031:15;25018:10;:28;;;;24980:74::o;12965:240::-;13085:7;13143:1;13138;:6;;13146:12;13130:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13185:1;13181;:5;13174:12;;12965:240;;;;;:::o;29017:1790::-;29109:4;29131:16;;;;;;;;;;;29128:73;;;29157:41;29172:6;29180:9;29191:6;29157:14;:41::i;:::-;29150:48;;;;29128:73;29217:14;:22;29232:6;29217:22;;;;;;;;;;;;;;;;;;;;;;;;;29216:23;:53;;;;;29244:14;:25;29259:9;29244:25;;;;;;;;;;;;;;;;;;;;;;;;;29243:26;29216:53;29213:128;;;29293:11;;;;;;;;;;;29285:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;29213:128;29371:12;;29361:6;:22;;:52;;;;29387:15;:26;29403:9;29387:26;;;;;;;;;;;;;;;;;;;;;;;;;29361:52;29353:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;29465:4;;;;;;;;;;;29451:18;;:10;:18;;;;:39;;;;;29474:16;;;;;;;;;;;29473:17;29451:39;:64;;;;;29494:21;;;;;;;;;;;29451:64;:109;;;;;29547:13;;29519:9;:24;29537:4;29519:24;;;;;;;;;;;;;;;;:41;;29451:109;29448:128;;;29563:10;:8;:10::i;:::-;29448:128;29592:10;:8;:10::i;:::-;29591:11;:32;;;;;29619:4;;;;;;;;;;;29606:17;;:9;:17;;;29591:32;29588:96;;;29668:1;29648:9;:17;29658:6;29648:17;;;;;;;;;;;;;;;;:21;29640:30;;;;;;29588:96;29732:10;;29719;;:23;;;;:::i;:::-;29701:15;:41;29700:64;;;;;29760:4;;;;;;;;;;;29747:17;;:9;:17;;;;29700:64;29696:172;;;29800:4;29781:5;:16;29787:9;29781:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;29851:4;29824:32;;;29840:9;29824:32;;;;;;:::i;:::-;;;;;;;;29696:172;29927:53;29949:6;29927:53;;;;;;;;;;;;;;;;;:9;:17;29937:6;29927:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;29907:9;:17;29917:6;29907:17;;;;;;;;;;;;;;;:73;;;;29997:15;:26;30013:9;29997:26;;;;;;;;;;;;;;;;;;;;;;;;;29996:27;:45;;;;;30027:14;;;;;;;;;;;29996:45;29993:141;;;30111:10;;30075:32;30100:6;30075:9;:20;30085:9;30075:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;30067:55;;;;;;29993:141;30146:19;30169:11;:19;30181:6;30169:19;;;;;;;;;;;;;;;;;;;;;;;;;30168:20;:47;;;;;30193:11;:22;30205:9;30193:22;;;;;;;;;;;;;;;;;;;;;;;;;30192:23;30168:47;:93;;30255:6;30168:93;;;30218:34;30226:6;30234:9;30245:6;30218:7;:34::i;:::-;30168:93;30146:115;;30295:37;30320:11;30295:9;:20;30305:9;30295:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;30272:9;:20;30282:9;30272:20;;;;;;;;;;;;;;;:60;;;;30378:16;:24;30395:6;30378:24;;;;;;;;;;;;;;;;;;;;;;;;;30374:127;;30423:19;;;;;;;;;;;:28;;;30452:6;30460:9;:17;30470:6;30460:17;;;;;;;;;;;;;;;;30423:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30419:71;;;;;;30374:127;30517:16;:27;30534:9;30517:27;;;;;;;;;;;;;;;;;;;;;;;;;30513:136;;30565:19;;;;;;;;;;;:28;;;30594:9;30605;:20;30615:9;30605:20;;;;;;;;;;;;;;;;30565:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30561:77;;;;;;30513:136;30665:19;;;;;;;;;;;:27;;;30693:14;;30665:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30661:59;;;;;;30754:9;30737:40;;30746:6;30737:40;;;30765:11;30737:40;;;;;;:::i;:::-;;;;;;;;30795:4;30788:11;;;29017:1790;;;;;;:::o;12541:98::-;12599:7;12630:1;12626;:5;;;;:::i;:::-;12619:12;;12541:98;;;;:::o;30815:330::-;30908:4;30945:53;30967:6;30945:53;;;;;;;;;;;;;;;;;:9;:17;30955:6;30945:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;30925:9;:17;30935:6;30925:17;;;;;;;;;;;;;;;:73;;;;31032:32;31057:6;31032:9;:20;31042:9;31032:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;31009:9;:20;31019:9;31009:20;;;;;;;;;;;;;;;:55;;;;31097:9;31080:35;;31089:6;31080:35;;;31108:6;31080:35;;;;;;:::i;:::-;;;;;;;;31133:4;31126:11;;30815:330;;;;;:::o;32054:1887::-;22473:4;22454:16;;:23;;;;;;;;;;;;;;;;;;32108::::1;32134:9;:24;32152:4;32134:24;;;;;;;;;;;;;;;;32108:50;;32169:23;32195:54;32247:1;32195:47;32233:8;;32195:33;32215:12;;32195:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;32169:80;;32260:20;32283:36;32303:15;32283;:19;;:36;;;;:::i;:::-;32260:59;;32332:21;32370:1;32356:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32332:40;;32401:4;32383;32388:1;32383:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;32427:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32417:4;32422:1;32417:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;32453:6;;;;;;;;;;;:57;;;32525:12;32552:1;32568:4;32595;32615:15;32453:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;32654:17;32674:21;32654:41;;32708:19;32730:33;32743:19;32760:1;32743:12;;:16;;:19;;;;:::i;:::-;32730:8;;:12;;:33;;;;:::i;:::-;32708:55;;32776:26;32805:51;32854:1;32805:44;32837:11;32805:27;32819:12;;32805:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;32776:80;;32867:27;32897:42;32927:11;32897:25;32911:10;;32897:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;32867:72;;32950:26;32979:58;33017:19;32979:33;32993:18;32979:9;:13;;:33;;;;:::i;:::-;:37;;:58;;;;:::i;:::-;32950:87;;33054:19;;;;;;;;;;;:27;;;33089:19;33054:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;33050:73;;;;;;33135:17;33155:39;33182:11;33155:22;33169:7;;33155:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;33135:59;;33205:22;33230:33;33253:9;33230:18;:22;;:33;;;;:::i;:::-;33205:58;;33279:15;33307;;;;;;;;;;;33299:29;;33336:14;33357:5;33299:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33278:89;;;33379:16;33408:10;;;;;;;;;;;33400:24;;33432:9;33448:5;33400:58;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33378:80;;;33524:5;33511:18;;33554:5;33540:19;;33593:1;33575:15;:19;33572:362;;;33610:6;;;;;;;;;;;:22;;;33640:18;33686:4;33710:15;33744:1;33764::::0;33784:21:::1;;;;;;;;;;;33824:15;33610:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;33874:48;33886:18;33906:15;33874:48;;;;;;;:::i;:::-;;;;;;;;33572:362;32095:1846;;;;;;;;;;;;;22519:5:::0;22500:16;;:24;;;;;;;;;;;;;;;;;;32054:1887::o;24882:90::-;24925:4;24963:1;24949:10;;:15;;24942:22;;24882:90;:::o;31153:592::-;31239:7;31261:21;31293:9;31285:17;;:4;;;;;;;;;;;:17;;;:43;;31320:8;;31285:43;;;31305:12;;31285:43;31261:67;;31362:4;31342:24;;:5;:16;31348:9;31342:16;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;31339:156;;;31397:2;31381:18;;31339:156;;;31446:4;31429:21;;:5;:13;31435:6;31429:13;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;31426:69;;;31481:2;31465:18;;31426:69;31339:156;31505:17;31525:34;31555:3;31525:25;31536:13;31525:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;31505:54;;31599:39;31628:9;31599;:24;31617:4;31599:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;31572:9;:24;31590:4;31572:24;;;;;;;;;;;;;;;:66;;;;31679:4;31654:42;;31663:6;31654:42;;;31686:9;31654:42;;;;;;:::i;:::-;;;;;;;;31716:21;31727:9;31716:6;:10;;:21;;;;:::i;:::-;31709:28;;;;31153:592;;;;;:::o;12647:98::-;12705:7;12736:1;12732;:5;;;;:::i;:::-;12725:12;;12647:98;;;;:::o;12753:::-;12811:7;12842:1;12838;:5;;;;:::i;:::-;12831:12;;12753:98;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;301:155;;;;:::o;462:133::-;505:5;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;462:133;;;;:::o;601:139::-;647:5;685:6;672:20;663:29;;701:33;728:5;701:33;:::i;:::-;601:139;;;;:::o;746:143::-;803:5;834:6;828:13;819:22;;850:33;877:5;850:33;:::i;:::-;746:143;;;;:::o;895:329::-;954:6;1003:2;991:9;982:7;978:23;974:32;971:119;;;1009:79;;:::i;:::-;971:119;1129:1;1154:53;1199:7;1190:6;1179:9;1175:22;1154:53;:::i;:::-;1144:63;;1100:117;895:329;;;;:::o;1230:351::-;1300:6;1349:2;1337:9;1328:7;1324:23;1320:32;1317:119;;;1355:79;;:::i;:::-;1317:119;1475:1;1500:64;1556:7;1547:6;1536:9;1532:22;1500:64;:::i;:::-;1490:74;;1446:128;1230:351;;;;:::o;1587:345::-;1654:6;1703:2;1691:9;1682:7;1678:23;1674:32;1671:119;;;1709:79;;:::i;:::-;1671:119;1829:1;1854:61;1907:7;1898:6;1887:9;1883:22;1854:61;:::i;:::-;1844:71;;1800:125;1587:345;;;;:::o;1938:474::-;2006:6;2014;2063:2;2051:9;2042:7;2038:23;2034:32;2031:119;;;2069:79;;:::i;:::-;2031:119;2189:1;2214:53;2259:7;2250:6;2239:9;2235:22;2214:53;:::i;:::-;2204:63;;2160:117;2316:2;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2287:118;1938:474;;;;;:::o;2418:619::-;2495:6;2503;2511;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:53;2756:7;2747:6;2736:9;2732:22;2711:53;:::i;:::-;2701:63;;2657:117;2813:2;2839:53;2884:7;2875:6;2864:9;2860:22;2839:53;:::i;:::-;2829:63;;2784:118;2941:2;2967:53;3012:7;3003:6;2992:9;2988:22;2967:53;:::i;:::-;2957:63;;2912:118;2418:619;;;;;:::o;3043:::-;3120:6;3128;3136;3185:2;3173:9;3164:7;3160:23;3156:32;3153:119;;;3191:79;;:::i;:::-;3153:119;3311:1;3336:53;3381:7;3372:6;3361:9;3357:22;3336:53;:::i;:::-;3326:63;;3282:117;3438:2;3464:53;3509:7;3500:6;3489:9;3485:22;3464:53;:::i;:::-;3454:63;;3409:118;3566:2;3592:53;3637:7;3628:6;3617:9;3613:22;3592:53;:::i;:::-;3582:63;;3537:118;3043:619;;;;;:::o;3668:468::-;3733:6;3741;3790:2;3778:9;3769:7;3765:23;3761:32;3758:119;;;3796:79;;:::i;:::-;3758:119;3916:1;3941:53;3986:7;3977:6;3966:9;3962:22;3941:53;:::i;:::-;3931:63;;3887:117;4043:2;4069:50;4111:7;4102:6;4091:9;4087:22;4069:50;:::i;:::-;4059:60;;4014:115;3668:468;;;;;:::o;4142:474::-;4210:6;4218;4267:2;4255:9;4246:7;4242:23;4238:32;4235:119;;;4273:79;;:::i;:::-;4235:119;4393:1;4418:53;4463:7;4454:6;4443:9;4439:22;4418:53;:::i;:::-;4408:63;;4364:117;4520:2;4546:53;4591:7;4582:6;4571:9;4567:22;4546:53;:::i;:::-;4536:63;;4491:118;4142:474;;;;;:::o;4622:323::-;4678:6;4727:2;4715:9;4706:7;4702:23;4698:32;4695:119;;;4733:79;;:::i;:::-;4695:119;4853:1;4878:50;4920:7;4911:6;4900:9;4896:22;4878:50;:::i;:::-;4868:60;;4824:114;4622:323;;;;:::o;4951:607::-;5022:6;5030;5038;5087:2;5075:9;5066:7;5062:23;5058:32;5055:119;;;5093:79;;:::i;:::-;5055:119;5213:1;5238:50;5280:7;5271:6;5260:9;5256:22;5238:50;:::i;:::-;5228:60;;5184:114;5337:2;5363:53;5408:7;5399:6;5388:9;5384:22;5363:53;:::i;:::-;5353:63;;5308:118;5465:2;5491:50;5533:7;5524:6;5513:9;5509:22;5491:50;:::i;:::-;5481:60;;5436:115;4951:607;;;;;:::o;5564:329::-;5623:6;5672:2;5660:9;5651:7;5647:23;5643:32;5640:119;;;5678:79;;:::i;:::-;5640:119;5798:1;5823:53;5868:7;5859:6;5848:9;5844:22;5823:53;:::i;:::-;5813:63;;5769:117;5564:329;;;;:::o;5899:490::-;5975:6;5983;6032:2;6020:9;6011:7;6007:23;6003:32;6000:119;;;6038:79;;:::i;:::-;6000:119;6158:1;6183:53;6228:7;6219:6;6208:9;6204:22;6183:53;:::i;:::-;6173:63;;6129:117;6285:2;6311:61;6364:7;6355:6;6344:9;6340:22;6311:61;:::i;:::-;6301:71;;6256:126;5899:490;;;;;:::o;6395:474::-;6463:6;6471;6520:2;6508:9;6499:7;6495:23;6491:32;6488:119;;;6526:79;;:::i;:::-;6488:119;6646:1;6671:53;6716:7;6707:6;6696:9;6692:22;6671:53;:::i;:::-;6661:63;;6617:117;6773:2;6799:53;6844:7;6835:6;6824:9;6820:22;6799:53;:::i;:::-;6789:63;;6744:118;6395:474;;;;;:::o;6875:663::-;6963:6;6971;6979;7028:2;7016:9;7007:7;7003:23;6999:32;6996:119;;;7034:79;;:::i;:::-;6996:119;7154:1;7179:64;7235:7;7226:6;7215:9;7211:22;7179:64;:::i;:::-;7169:74;;7125:128;7292:2;7318:64;7374:7;7365:6;7354:9;7350:22;7318:64;:::i;:::-;7308:74;;7263:129;7431:2;7457:64;7513:7;7504:6;7493:9;7489:22;7457:64;:::i;:::-;7447:74;;7402:129;6875:663;;;;;:::o;7544:765::-;7630:6;7638;7646;7654;7703:3;7691:9;7682:7;7678:23;7674:33;7671:120;;;7710:79;;:::i;:::-;7671:120;7830:1;7855:53;7900:7;7891:6;7880:9;7876:22;7855:53;:::i;:::-;7845:63;;7801:117;7957:2;7983:53;8028:7;8019:6;8008:9;8004:22;7983:53;:::i;:::-;7973:63;;7928:118;8085:2;8111:53;8156:7;8147:6;8136:9;8132:22;8111:53;:::i;:::-;8101:63;;8056:118;8213:2;8239:53;8284:7;8275:6;8264:9;8260:22;8239:53;:::i;:::-;8229:63;;8184:118;7544:765;;;;;;;:::o;8315:179::-;8384:10;8405:46;8447:3;8439:6;8405:46;:::i;:::-;8483:4;8478:3;8474:14;8460:28;;8315:179;;;;:::o;8500:147::-;8595:45;8634:5;8595:45;:::i;:::-;8590:3;8583:58;8500:147;;:::o;8653:108::-;8730:24;8748:5;8730:24;:::i;:::-;8725:3;8718:37;8653:108;;:::o;8767:118::-;8854:24;8872:5;8854:24;:::i;:::-;8849:3;8842:37;8767:118;;:::o;8921:732::-;9040:3;9069:54;9117:5;9069:54;:::i;:::-;9139:86;9218:6;9213:3;9139:86;:::i;:::-;9132:93;;9249:56;9299:5;9249:56;:::i;:::-;9328:7;9359:1;9344:284;9369:6;9366:1;9363:13;9344:284;;;9445:6;9439:13;9472:63;9531:3;9516:13;9472:63;:::i;:::-;9465:70;;9558:60;9611:6;9558:60;:::i;:::-;9548:70;;9404:224;9391:1;9388;9384:9;9379:14;;9344:284;;;9348:14;9644:3;9637:10;;9045:608;;;8921:732;;;;:::o;9659:109::-;9740:21;9755:5;9740:21;:::i;:::-;9735:3;9728:34;9659:109;;:::o;9774:187::-;9889:65;9948:5;9889:65;:::i;:::-;9884:3;9877:78;9774:187;;:::o;9967:171::-;10074:57;10125:5;10074:57;:::i;:::-;10069:3;10062:70;9967:171;;:::o;10144:147::-;10239:45;10278:5;10239:45;:::i;:::-;10234:3;10227:58;10144:147;;:::o;10297:364::-;10385:3;10413:39;10446:5;10413:39;:::i;:::-;10468:71;10532:6;10527:3;10468:71;:::i;:::-;10461:78;;10548:52;10593:6;10588:3;10581:4;10574:5;10570:16;10548:52;:::i;:::-;10625:29;10647:6;10625:29;:::i;:::-;10620:3;10616:39;10609:46;;10389:272;10297:364;;;;:::o;10667:366::-;10809:3;10830:67;10894:2;10889:3;10830:67;:::i;:::-;10823:74;;10906:93;10995:3;10906:93;:::i;:::-;11024:2;11019:3;11015:12;11008:19;;10667:366;;;:::o;11039:::-;11181:3;11202:67;11266:2;11261:3;11202:67;:::i;:::-;11195:74;;11278:93;11367:3;11278:93;:::i;:::-;11396:2;11391:3;11387:12;11380:19;;11039:366;;;:::o;11411:::-;11553:3;11574:67;11638:2;11633:3;11574:67;:::i;:::-;11567:74;;11650:93;11739:3;11650:93;:::i;:::-;11768:2;11763:3;11759:12;11752:19;;11411:366;;;:::o;11783:::-;11925:3;11946:67;12010:2;12005:3;11946:67;:::i;:::-;11939:74;;12022:93;12111:3;12022:93;:::i;:::-;12140:2;12135:3;12131:12;12124:19;;11783:366;;;:::o;12155:::-;12297:3;12318:67;12382:2;12377:3;12318:67;:::i;:::-;12311:74;;12394:93;12483:3;12394:93;:::i;:::-;12512:2;12507:3;12503:12;12496:19;;12155:366;;;:::o;12527:::-;12669:3;12690:67;12754:2;12749:3;12690:67;:::i;:::-;12683:74;;12766:93;12855:3;12766:93;:::i;:::-;12884:2;12879:3;12875:12;12868:19;;12527:366;;;:::o;12899:::-;13041:3;13062:67;13126:2;13121:3;13062:67;:::i;:::-;13055:74;;13138:93;13227:3;13138:93;:::i;:::-;13256:2;13251:3;13247:12;13240:19;;12899:366;;;:::o;13271:::-;13413:3;13434:67;13498:2;13493:3;13434:67;:::i;:::-;13427:74;;13510:93;13599:3;13510:93;:::i;:::-;13628:2;13623:3;13619:12;13612:19;;13271:366;;;:::o;13643:::-;13785:3;13806:67;13870:2;13865:3;13806:67;:::i;:::-;13799:74;;13882:93;13971:3;13882:93;:::i;:::-;14000:2;13995:3;13991:12;13984:19;;13643:366;;;:::o;14015:365::-;14157:3;14178:66;14242:1;14237:3;14178:66;:::i;:::-;14171:73;;14253:93;14342:3;14253:93;:::i;:::-;14371:2;14366:3;14362:12;14355:19;;14015:365;;;:::o;14386:398::-;14545:3;14566:83;14647:1;14642:3;14566:83;:::i;:::-;14559:90;;14658:93;14747:3;14658:93;:::i;:::-;14776:1;14771:3;14767:11;14760:18;;14386:398;;;:::o;14790:366::-;14932:3;14953:67;15017:2;15012:3;14953:67;:::i;:::-;14946:74;;15029:93;15118:3;15029:93;:::i;:::-;15147:2;15142:3;15138:12;15131:19;;14790:366;;;:::o;15162:::-;15304:3;15325:67;15389:2;15384:3;15325:67;:::i;:::-;15318:74;;15401:93;15490:3;15401:93;:::i;:::-;15519:2;15514:3;15510:12;15503:19;;15162:366;;;:::o;15534:::-;15676:3;15697:67;15761:2;15756:3;15697:67;:::i;:::-;15690:74;;15773:93;15862:3;15773:93;:::i;:::-;15891:2;15886:3;15882:12;15875:19;;15534:366;;;:::o;15906:118::-;15993:24;16011:5;15993:24;:::i;:::-;15988:3;15981:37;15906:118;;:::o;16030:112::-;16113:22;16129:5;16113:22;:::i;:::-;16108:3;16101:35;16030:112;;:::o;16148:379::-;16332:3;16354:147;16497:3;16354:147;:::i;:::-;16347:154;;16518:3;16511:10;;16148:379;;;:::o;16533:222::-;16626:4;16664:2;16653:9;16649:18;16641:26;;16677:71;16745:1;16734:9;16730:17;16721:6;16677:71;:::i;:::-;16533:222;;;;:::o;16761:238::-;16862:4;16900:2;16889:9;16885:18;16877:26;;16913:79;16989:1;16978:9;16974:17;16965:6;16913:79;:::i;:::-;16761:238;;;;:::o;17005:348::-;17134:4;17172:2;17161:9;17157:18;17149:26;;17185:71;17253:1;17242:9;17238:17;17229:6;17185:71;:::i;:::-;17266:80;17342:2;17331:9;17327:18;17318:6;17266:80;:::i;:::-;17005:348;;;;;:::o;17359:332::-;17480:4;17518:2;17507:9;17503:18;17495:26;;17531:71;17599:1;17588:9;17584:17;17575:6;17531:71;:::i;:::-;17612:72;17680:2;17669:9;17665:18;17656:6;17612:72;:::i;:::-;17359:332;;;;;:::o;17697:807::-;17946:4;17984:3;17973:9;17969:19;17961:27;;17998:71;18066:1;18055:9;18051:17;18042:6;17998:71;:::i;:::-;18079:72;18147:2;18136:9;18132:18;18123:6;18079:72;:::i;:::-;18161:80;18237:2;18226:9;18222:18;18213:6;18161:80;:::i;:::-;18251;18327:2;18316:9;18312:18;18303:6;18251:80;:::i;:::-;18341:73;18409:3;18398:9;18394:19;18385:6;18341:73;:::i;:::-;18424;18492:3;18481:9;18477:19;18468:6;18424:73;:::i;:::-;17697:807;;;;;;;;;:::o;18510:210::-;18597:4;18635:2;18624:9;18620:18;18612:26;;18648:65;18710:1;18699:9;18695:17;18686:6;18648:65;:::i;:::-;18510:210;;;;:::o;18726:278::-;18847:4;18885:2;18874:9;18870:18;18862:26;;18898:99;18994:1;18983:9;18979:17;18970:6;18898:99;:::i;:::-;18726:278;;;;:::o;19010:262::-;19123:4;19161:2;19150:9;19146:18;19138:26;;19174:91;19262:1;19251:9;19247:17;19238:6;19174:91;:::i;:::-;19010:262;;;;:::o;19278:313::-;19391:4;19429:2;19418:9;19414:18;19406:26;;19478:9;19472:4;19468:20;19464:1;19453:9;19449:17;19442:47;19506:78;19579:4;19570:6;19506:78;:::i;:::-;19498:86;;19278:313;;;;:::o;19597:419::-;19763:4;19801:2;19790:9;19786:18;19778:26;;19850:9;19844:4;19840:20;19836:1;19825:9;19821:17;19814:47;19878:131;20004:4;19878:131;:::i;:::-;19870:139;;19597:419;;;:::o;20022:::-;20188:4;20226:2;20215:9;20211:18;20203:26;;20275:9;20269:4;20265:20;20261:1;20250:9;20246:17;20239:47;20303:131;20429:4;20303:131;:::i;:::-;20295:139;;20022:419;;;:::o;20447:::-;20613:4;20651:2;20640:9;20636:18;20628:26;;20700:9;20694:4;20690:20;20686:1;20675:9;20671:17;20664:47;20728:131;20854:4;20728:131;:::i;:::-;20720:139;;20447:419;;;:::o;20872:::-;21038:4;21076:2;21065:9;21061:18;21053:26;;21125:9;21119:4;21115:20;21111:1;21100:9;21096:17;21089:47;21153:131;21279:4;21153:131;:::i;:::-;21145:139;;20872:419;;;:::o;21297:::-;21463:4;21501:2;21490:9;21486:18;21478:26;;21550:9;21544:4;21540:20;21536:1;21525:9;21521:17;21514:47;21578:131;21704:4;21578:131;:::i;:::-;21570:139;;21297:419;;;:::o;21722:::-;21888:4;21926:2;21915:9;21911:18;21903:26;;21975:9;21969:4;21965:20;21961:1;21950:9;21946:17;21939:47;22003:131;22129:4;22003:131;:::i;:::-;21995:139;;21722:419;;;:::o;22147:::-;22313:4;22351:2;22340:9;22336:18;22328:26;;22400:9;22394:4;22390:20;22386:1;22375:9;22371:17;22364:47;22428:131;22554:4;22428:131;:::i;:::-;22420:139;;22147:419;;;:::o;22572:::-;22738:4;22776:2;22765:9;22761:18;22753:26;;22825:9;22819:4;22815:20;22811:1;22800:9;22796:17;22789:47;22853:131;22979:4;22853:131;:::i;:::-;22845:139;;22572:419;;;:::o;22997:::-;23163:4;23201:2;23190:9;23186:18;23178:26;;23250:9;23244:4;23240:20;23236:1;23225:9;23221:17;23214:47;23278:131;23404:4;23278:131;:::i;:::-;23270:139;;22997:419;;;:::o;23422:::-;23588:4;23626:2;23615:9;23611:18;23603:26;;23675:9;23669:4;23665:20;23661:1;23650:9;23646:17;23639:47;23703:131;23829:4;23703:131;:::i;:::-;23695:139;;23422:419;;;:::o;23847:::-;24013:4;24051:2;24040:9;24036:18;24028:26;;24100:9;24094:4;24090:20;24086:1;24075:9;24071:17;24064:47;24128:131;24254:4;24128:131;:::i;:::-;24120:139;;23847:419;;;:::o;24272:::-;24438:4;24476:2;24465:9;24461:18;24453:26;;24525:9;24519:4;24515:20;24511:1;24500:9;24496:17;24489:47;24553:131;24679:4;24553:131;:::i;:::-;24545:139;;24272:419;;;:::o;24697:::-;24863:4;24901:2;24890:9;24886:18;24878:26;;24950:9;24944:4;24940:20;24936:1;24925:9;24921:17;24914:47;24978:131;25104:4;24978:131;:::i;:::-;24970:139;;24697:419;;;:::o;25122:222::-;25215:4;25253:2;25242:9;25238:18;25230:26;;25266:71;25334:1;25323:9;25319:17;25310:6;25266:71;:::i;:::-;25122:222;;;;:::o;25350:831::-;25613:4;25651:3;25640:9;25636:19;25628:27;;25665:71;25733:1;25722:9;25718:17;25709:6;25665:71;:::i;:::-;25746:80;25822:2;25811:9;25807:18;25798:6;25746:80;:::i;:::-;25873:9;25867:4;25863:20;25858:2;25847:9;25843:18;25836:48;25901:108;26004:4;25995:6;25901:108;:::i;:::-;25893:116;;26019:72;26087:2;26076:9;26072:18;26063:6;26019:72;:::i;:::-;26101:73;26169:3;26158:9;26154:19;26145:6;26101:73;:::i;:::-;25350:831;;;;;;;;:::o;26187:332::-;26308:4;26346:2;26335:9;26331:18;26323:26;;26359:71;26427:1;26416:9;26412:17;26403:6;26359:71;:::i;:::-;26440:72;26508:2;26497:9;26493:18;26484:6;26440:72;:::i;:::-;26187:332;;;;;:::o;26525:214::-;26614:4;26652:2;26641:9;26637:18;26629:26;;26665:67;26729:1;26718:9;26714:17;26705:6;26665:67;:::i;:::-;26525:214;;;;:::o;26826:132::-;26893:4;26916:3;26908:11;;26946:4;26941:3;26937:14;26929:22;;26826:132;;;:::o;26964:114::-;27031:6;27065:5;27059:12;27049:22;;26964:114;;;:::o;27084:99::-;27136:6;27170:5;27164:12;27154:22;;27084:99;;;:::o;27189:113::-;27259:4;27291;27286:3;27282:14;27274:22;;27189:113;;;:::o;27308:184::-;27407:11;27441:6;27436:3;27429:19;27481:4;27476:3;27472:14;27457:29;;27308:184;;;;:::o;27498:147::-;27599:11;27636:3;27621:18;;27498:147;;;;:::o;27651:169::-;27735:11;27769:6;27764:3;27757:19;27809:4;27804:3;27800:14;27785:29;;27651:169;;;;:::o;27826:305::-;27866:3;27885:20;27903:1;27885:20;:::i;:::-;27880:25;;27919:20;27937:1;27919:20;:::i;:::-;27914:25;;28073:1;28005:66;28001:74;27998:1;27995:81;27992:107;;;28079:18;;:::i;:::-;27992:107;28123:1;28120;28116:9;28109:16;;27826:305;;;;:::o;28137:185::-;28177:1;28194:20;28212:1;28194:20;:::i;:::-;28189:25;;28228:20;28246:1;28228:20;:::i;:::-;28223:25;;28267:1;28257:35;;28272:18;;:::i;:::-;28257:35;28314:1;28311;28307:9;28302:14;;28137:185;;;;:::o;28328:348::-;28368:7;28391:20;28409:1;28391:20;:::i;:::-;28386:25;;28425:20;28443:1;28425:20;:::i;:::-;28420:25;;28613:1;28545:66;28541:74;28538:1;28535:81;28530:1;28523:9;28516:17;28512:105;28509:131;;;28620:18;;:::i;:::-;28509:131;28668:1;28665;28661:9;28650:20;;28328:348;;;;:::o;28682:191::-;28722:4;28742:20;28760:1;28742:20;:::i;:::-;28737:25;;28776:20;28794:1;28776:20;:::i;:::-;28771:25;;28815:1;28812;28809:8;28806:34;;;28820:18;;:::i;:::-;28806:34;28865:1;28862;28858:9;28850:17;;28682:191;;;;:::o;28879:96::-;28916:7;28945:24;28963:5;28945:24;:::i;:::-;28934:35;;28879:96;;;:::o;28981:104::-;29026:7;29055:24;29073:5;29055:24;:::i;:::-;29044:35;;28981:104;;;:::o;29091:90::-;29125:7;29168:5;29161:13;29154:21;29143:32;;29091:90;;;:::o;29187:126::-;29224:7;29264:42;29257:5;29253:54;29242:65;;29187:126;;;:::o;29319:77::-;29356:7;29385:5;29374:16;;29319:77;;;:::o;29402:86::-;29437:7;29477:4;29470:5;29466:16;29455:27;;29402:86;;;:::o;29494:134::-;29552:9;29585:37;29616:5;29585:37;:::i;:::-;29572:50;;29494:134;;;:::o;29634:154::-;29712:9;29745:37;29776:5;29745:37;:::i;:::-;29732:50;;29634:154;;;:::o;29794:146::-;29864:9;29897:37;29928:5;29897:37;:::i;:::-;29884:50;;29794:146;;;:::o;29946:121::-;30004:9;30037:24;30055:5;30037:24;:::i;:::-;30024:37;;29946:121;;;:::o;30073:126::-;30123:9;30156:37;30187:5;30156:37;:::i;:::-;30143:50;;30073:126;;;:::o;30205:113::-;30255:9;30288:24;30306:5;30288:24;:::i;:::-;30275:37;;30205:113;;;:::o;30324:307::-;30392:1;30402:113;30416:6;30413:1;30410:13;30402:113;;;30501:1;30496:3;30492:11;30486:18;30482:1;30477:3;30473:11;30466:39;30438:2;30435:1;30431:10;30426:15;;30402:113;;;30533:6;30530:1;30527:13;30524:101;;;30613:1;30604:6;30599:3;30595:16;30588:27;30524:101;30373:258;30324:307;;;:::o;30637:180::-;30685:77;30682:1;30675:88;30782:4;30779:1;30772:15;30806:4;30803:1;30796:15;30823:180;30871:77;30868:1;30861:88;30968:4;30965:1;30958:15;30992:4;30989:1;30982:15;31009:180;31057:77;31054:1;31047:88;31154:4;31151:1;31144:15;31178:4;31175:1;31168:15;31195:180;31243:77;31240:1;31233:88;31340:4;31337:1;31330:15;31364:4;31361:1;31354:15;31504:117;31613:1;31610;31603:12;31627:102;31668:6;31719:2;31715:7;31710:2;31703:5;31699:14;31695:28;31685:38;;31627:102;;;:::o;31735:167::-;31875:19;31871:1;31863:6;31859:14;31852:43;31735:167;:::o;31908:166::-;32048:18;32044:1;32036:6;32032:14;32025:42;31908:166;:::o;32080:231::-;32220:34;32216:1;32208:6;32204:14;32197:58;32289:14;32284:2;32276:6;32272:15;32265:39;32080:231;:::o;32317:229::-;32457:34;32453:1;32445:6;32441:14;32434:58;32526:12;32521:2;32513:6;32509:15;32502:37;32317:229;:::o;32552:::-;32692:34;32688:1;32680:6;32676:14;32669:58;32761:12;32756:2;32748:6;32744:15;32737:37;32552:229;:::o;32787:170::-;32927:22;32923:1;32915:6;32911:14;32904:46;32787:170;:::o;32963:236::-;33103:34;33099:1;33091:6;33087:14;33080:58;33172:19;33167:2;33159:6;33155:15;33148:44;32963:236;:::o;33205:228::-;33345:34;33341:1;33333:6;33329:14;33322:58;33414:11;33409:2;33401:6;33397:15;33390:36;33205:228;:::o;33439:232::-;33579:34;33575:1;33567:6;33563:14;33556:58;33648:15;33643:2;33635:6;33631:15;33624:40;33439:232;:::o;33677:156::-;33817:8;33813:1;33805:6;33801:14;33794:32;33677:156;:::o;33839:114::-;;:::o;33959:230::-;34099:34;34095:1;34087:6;34083:14;34076:58;34168:13;34163:2;34155:6;34151:15;34144:38;33959:230;:::o;34195:235::-;34335:34;34331:1;34323:6;34319:14;34312:58;34404:18;34399:2;34391:6;34387:15;34380:43;34195:235;:::o;34436:161::-;34576:13;34572:1;34564:6;34560:14;34553:37;34436:161;:::o;34603:122::-;34676:24;34694:5;34676:24;:::i;:::-;34669:5;34666:35;34656:63;;34715:1;34712;34705:12;34656:63;34603:122;:::o;34731:138::-;34812:32;34838:5;34812:32;:::i;:::-;34805:5;34802:43;34792:71;;34859:1;34856;34849:12;34792:71;34731:138;:::o;34875:116::-;34945:21;34960:5;34945:21;:::i;:::-;34938:5;34935:32;34925:60;;34981:1;34978;34971:12;34925:60;34875:116;:::o;34997:122::-;35070:24;35088:5;35070:24;:::i;:::-;35063:5;35060:35;35050:63;;35109:1;35106;35099:12;35050:63;34997:122;:::o

Swarm Source

ipfs://08f62b83ca5d47d0d38528e8e0a07ac84de0aac83b892eddf319f5d77c4138f6
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.