Contract 0xe0cA4724Bc8B97B259d25596ee3CfAb816629baD 2

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xfe31323830dce92929194a17b45d99669959bb98275c7e58e1484a1a76aaf178Approve121009792021-10-26 7:28:2447 mins ago0x9eecf256b8780539da975560dc8a107a44430fee IN  Erosswap: EROS Token0 BNB0.000222685
0x7ea67123a5c2bd656249a6d8dbee590a75c23e52002ab4cbfd870cb6bfce1ecaApprove120976272021-10-26 4:40:483 hrs 35 mins ago0x0e946acd45528f9bf3a3ce4e1470a158a2d6799a IN  Erosswap: EROS Token0 BNB0.000222685
0x70f8d6267d8d1f8fee518e27b73e6c53f03dd4f4a9b9319069c2389c0cd305eeApprove120904472021-10-25 22:41:269 hrs 34 mins ago0xd010725e16fc27d65fedd95c9418266bef19278b IN  Erosswap: EROS Token0 BNB0.0001103
0x361712717b0d364e79435d5a0ffec338fc8aa704aeb90a7a39cb5b71e2234a43Approve120893262021-10-25 21:44:3810 hrs 31 mins ago0x73831c8add6f51befe733b8735bcf29347adef98 IN  Erosswap: EROS Token0 BNB0.000222685
0xdea49367305f2dfd22bce054466448804b7d9ba08bbb688fbf7dbebb6e42cc5dApprove120860412021-10-25 19:00:2113 hrs 15 mins ago0xc4885d25e7300b02b1855291837d379fb7d084da IN  Erosswap: EROS Token0 BNB0.000222685
0xbd63541b3f59722f15e18bd3fe02afb5393074ad8c293af003cb1f993021373bApprove120845202021-10-25 17:44:1714 hrs 31 mins ago0xa805e8df149e2cdccd5a07f3ee5a3815b06b4077 IN  Erosswap: EROS Token0 BNB0.000222685
0x69899a98b06bec6176c8a3ba09a45c9bea189e9848dddda2fed4cfd4934191deApprove120816412021-10-25 15:20:1716 hrs 55 mins ago0xbc2e26ded32a96911b65ee2283a1e30f077bbc59 IN  Erosswap: EROS Token0 BNB0.00015442
0x391b5a530b10df276e1a60d3a298a198a02f814b4cb83d98d5b63b003b5d0ce5Approve120764062021-10-25 10:52:5921 hrs 23 mins ago0x5a23f6e4a20e87acbe1583418770b8a6a790f77a IN  Erosswap: EROS Token0 BNB0.000222685
0x69df20d541f8944a7050604b0a11c5a4f93fd55499c621c3db249074e90773d2Approve120744212021-10-25 9:13:4223 hrs 2 mins ago0xaf48d1be018497a5d698c57c2c3825249f0d1c02 IN  Erosswap: EROS Token0 BNB0.000267222
0x510f387808bfddc703256961978caa2ab6dc50e297db0cb880c0ea1b21f1dcf4Approve120741302021-10-25 8:59:0923 hrs 17 mins ago0xee5851dd5bf6529fd7cd5916da740042dcd09150 IN  Erosswap: EROS Token0 BNB0.000267222
0xb6b697207c6b3cc7427bc17d8fd28687a5473c1d6a9b102c706d3b0d691f380fApprove120715452021-10-25 6:49:401 day 1 hr ago0x1cf4091673fb296c87561584e69b1d6084a4c3f4 IN  Erosswap: EROS Token0 BNB0.000222685
0x9caf9eb096d49dd56147e82d19b3b6c123dd2b902b5466792dfda3d5a67a60b1Approve120662502021-10-25 2:24:171 day 5 hrs ago0xbb9bf26dd540460821ab7d8ce6c8fc94c774d3e6 IN  Erosswap: EROS Token0 BNB0.000222685
0xff7bf46f52a5f44930ee85c89a3715b59ea75ae511a4f4aa67ec0a464528212aApprove120657792021-10-25 2:00:441 day 6 hrs ago0x55065f838618d63d3d74927889d4b395df4da629 IN  Erosswap: EROS Token0 BNB0.000222685
0xc04697c81d3b05fabbee24a4f995a8e9df068c2302a7b6bf60ba0ee9bc7ff89eApprove120620632021-10-24 22:53:461 day 9 hrs ago0x66dca147f38a2ddfc8f0de940a46372c3a314127 IN  Erosswap: EROS Token0 BNB0.000222685
0x343d8ce8e41413be42718bb35401408fb08f6459b09c573f594242297645cc91Buyback120607012021-10-24 21:45:391 day 10 hrs agoErosswap: Deployer IN  Erosswap: EROS Token0 BNB0.00075682
0x760dc5acf949bfd79c173cc7d36a65cbfa266fc49b13ab6852933b2682db9096Transfer120602022021-10-24 21:20:401 day 10 hrs ago0x0b49fa2d3a560c3deccb7eda31a688f644704686 IN  Erosswap: EROS Token0 BNB0.00029046
0xebe8743384447fa265f3a5e46243b6ae4d10019e682de093d35bc7fce20208c5Set Excluded Fro...120601862021-10-24 21:19:521 day 10 hrs agoErosswap: Deployer IN  Erosswap: EROS Token0 BNB0.000219035
0x7d32fc7d0d4fb3aed75793f6aa2d775d6c3fac99fdb8ecf596d8516b781bdee2Set Excluded Fro...120601852021-10-24 21:19:491 day 10 hrs agoErosswap: Deployer IN  Erosswap: EROS Token0 BNB0.00021926
0xb014a32a7ecbb81e4a2b4d26409858605397050945428d63fb94c9cec5f9a576Approve120591262021-10-24 20:26:511 day 11 hrs ago0x994c285ecb738401435a6a386cb8a1e0e5a9f846 IN  Erosswap: EROS Token0 BNB0.000222685
0x13699dc747952fe1e536ba14d64a4e728093bd544e438888de5c7372d8d859b8Approve120585622021-10-24 19:58:201 day 12 hrs ago0x9081dd79307f884c51a424be05bf3697b9956f16 IN  Erosswap: EROS Token0 BNB0.000222685
0x75f9f59fb2537c60834539f4cfc4d77a262775bfcfbcbc6ffc52a78dd0c2643dApprove120583302021-10-24 19:46:441 day 12 hrs ago0x2c156f6495dee892aff3e08f3d901b037e053b34 IN  Erosswap: EROS Token0 BNB0.000222685
0x29fb2da89c0aada850d05e7f3b9516e79485cd9524d6ce0415fb24938f94b8a4Approve120581212021-10-24 19:36:171 day 12 hrs ago0x84857f6fa38ce4fee9b5538873ee3ce0bd3f2f48 IN  Erosswap: EROS Token0 BNB0.000222685
0xcfd1ffbb701b1bd1b9609b682eb2b443c4ea8c3cf61a4b40ace7d7890f2815c7Approve120561632021-10-24 17:57:301 day 14 hrs ago0xd5453c46dfe27ad48ccf7cb852b8dbc68624acc7 IN  Erosswap: EROS Token0 BNB0.000222685
0x2e0c3c160b6f724f2e9efdffb11b2ca253e03c5106a516894316d62b00663cb5Approve120558262021-10-24 17:39:221 day 14 hrs ago0xf0ce040c43aaa8375ec6e8114e09934af59a87fc IN  Erosswap: EROS Token0 BNB0.000222685
0x683278b10e43681d8a4304a0debf3381bea8d138432cd1b273dd9958d80f79f5Approve120550722021-10-24 17:00:361 day 15 hrs ago0x631e68d0e379edf31fe2073d5bd5f5529963bd2c IN  Erosswap: EROS Token0 BNB0.000222685
[ Download CSV Export 

OVERVIEW

Erosswap - is an erotic yield farm platform running on Binance Smart Chain with fair launch on Pancake swap exchange. Erosswap main goal in the future - creation of an erotic NFT marketplace.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x47c93aacda408a3b2878899f11f7c9da92a1d821785ff17726e0f06c644f90a0120975232021-10-26 4:35:363 hrs 40 mins ago PancakeSwap: Router v2 Erosswap: EROS Token0.196767864494195403 BNB
0xfe67b9595f0e127512acde9a12fe2e5b2d372be018d6fa529e2b6d167fcd92fc120662612021-10-25 2:24:501 day 5 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.198512157394497904 BNB
0x343d8ce8e41413be42718bb35401408fb08f6459b09c573f594242297645cc91120607012021-10-24 21:45:391 day 10 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.215 BNB
0xe43cb806609d1464a031e5ee22dce627dfe024519be04ecaf5025d74f1f4f8f3120602582021-10-24 21:23:281 day 10 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.199915218981856359 BNB
0x9be9d7c04b486a0d3647a9d7b71ed2f51077bd456b14a27d399728cae9af579d120589842021-10-24 20:19:261 day 11 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.191574596892122001 BNB
0x261dad3859e9fd80a58d20f0317c7ae64427e9410d1d57aaab9bfdd73c206e2d120584802021-10-24 19:54:141 day 12 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.192411404057457534 BNB
0xf134201eb6f9fb24a7eb28d846929b33ae52e1c922b1b5c9c0c06a3c8785d5f5120536512021-10-24 15:49:321 day 16 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.195201727526526831 BNB
0x681d315842f353b3ad53b9649f2ff25d4f2259b17889a83f8c10493ca6441024120532622021-10-24 15:30:051 day 16 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.195873866537853404 BNB
0xa1aa0f7c982933b31e155da20398d60698a9763b8a7df18a17f8601b3c389b5b120494492021-10-24 12:04:401 day 20 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.115 BNB
0x1c6b37a613b643e4efe107a23530cd204d44152391d6937eca63076ec59ce7a7120486712021-10-24 11:25:281 day 20 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.189034289611302222 BNB
0xd0dac8aa512106f75ce9e7825b96ede13ffd8631862ddd356ea7d00776234f27120403502021-10-24 4:25:372 days 3 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.190995864253868052 BNB
0x2ded24dc4ee9e23cf9800a8e64983dfb67ccd0205d6d62397af8972c2a45af09120350492021-10-24 0:00:222 days 8 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.205 BNB
0x7fdd2f2c3a0e91e2f06ca22e13c3c92b02f2e12e67ecffd472784f607197b206120262392021-10-23 16:37:202 days 15 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.190385457064882484 BNB
0x7dbdd8257ef834f8a6bcd323bdb8748590d1adac7b1055bf8dcd3b8689b7130e120226912021-10-23 13:39:172 days 18 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.205 BNB
0xea09b9ddeca356ae8b7f1e3d255cad46744ed2bc1f7155ba3997899a6b9cbbf3120226752021-10-23 13:38:292 days 18 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.195 BNB
0x4d8b9fde3e04897068994eceafd15b3a1a2f38e4d16f541c4b57e006d213a8f0120215092021-10-23 12:39:062 days 19 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.192797224680167594 BNB
0x1b1689024800a5210f057bdb0760c3441e07eb0d692d1193efdd02d109d8b423120055362021-10-22 23:12:013 days 9 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.31 BNB
0xa22af9a52b002963010924e29b7bdcc12e78e52555e1c96a2a0d9e395ada5a06119990812021-10-22 17:47:013 days 14 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.31 BNB
0x014597e28ec031ffa839df1537ff8666592172e6be94357e3c241cadfe9fadcc119989012021-10-22 17:38:013 days 14 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.191854333404720027 BNB
0x36c79d20e97ecf23906a764e9143720a95fedf1d06a87caf59874637a0b51d10119932922021-10-22 12:55:493 days 19 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.091 BNB
0x8a4e0e5dc82aaf9d39eb784d80c62e0fa3d3dc5cf615e2f8109f0e84742253ee119917902021-10-22 11:40:293 days 20 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.231 BNB
0x0ab0a495ef7b60ea3724909e4f74ca9004fd10e429a144fad96fa16b21e568c9119812692021-10-22 2:29:464 days 5 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.198840594341526917 BNB
0x17bbeaccb49c894a4ce5db436309dfe664ac5a380089ced914da395875d65432119774952021-10-21 23:17:014 days 8 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.19135688403560666 BNB
0x2a63f02c8a09e04bb235f7c5bb0e78e9b3dee3a16550239f639347cb26954203119751612021-10-21 21:20:164 days 10 hrs ago PancakeSwap: Router v2 Erosswap: EROS Token0.184498957680219303 BNB
0x149c66c399448d688d49b30f8305cbe6735d36b6a9ae35ab6425e574dd08cfff119732752021-10-21 19:45:584 days 12 hrs ago Erosswap: EROS Token PancakeSwap: Router v20.631 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ErosToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-08-16
*/

pragma solidity 0.6.12;


interface IReferral {

    function addReferrer(address _user, address _referrer) external;

    function addRewards(address _user, string memory _type, uint256 _total) external;

    function getRewards(address _user, string memory _type) external view returns (uint256);

    function getReferrer(address _user) external view returns (address);

    function getReferralsCount(address _referrer) external view returns (uint256);

}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);

    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);

    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);

    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);

    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);

    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);

    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);

    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

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

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

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

abstract contract MinterRole {
    mapping(address => bool) private minters;

    event MinterAdded(address indexed _minter);
    event MinterRemoved(address indexed _minter);

    constructor () public {
        addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(minters[msg.sender], "Minterable: caller is not the minter");
        _;
    }

    function isMinter(address _minter) external view virtual returns (bool) {
        return minters[_minter];
    }

    function addMinter(address _minter) public virtual {
        minters[_minter] = true;
        emit MinterAdded(_minter);
    }

    function removeMinter(address _minter) public virtual {
        minters[_minter] = false;
        emit MinterRemoved(_minter);
    }
}

abstract contract OperatorRole {
    mapping(address => bool) private operators;

    event OperatorAdded(address indexed _operator);
    event OperatorRemoved(address indexed _operator);

    constructor () public {
        addOperator(msg.sender);
    }

    modifier onlyOperator() {
        require(operators[msg.sender], "Operatable: caller is not the operator");
        _;
    }

    function isOperator(address _minter) external view virtual returns (bool) {
        return operators[_minter];
    }

    function addOperator(address _operator) public virtual {
        operators[_operator] = true;
        emit OperatorAdded(_operator);
    }

    function removeOperator(address _operator) public virtual {
        operators[_operator] = false;
        emit OperatorRemoved(_operator);
    }
}

abstract contract OwnerRole {
    address public owner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor () public {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

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

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

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }

    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint256 y) internal pure returns (uint256 z) {
        if (y > 3) {
            z = y;
            uint256 x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

abstract contract BEP20e is OwnerRole, MinterRole, OperatorRole {
    using SafeMath for uint256;

    uint256 public totalSupply;

    string public name;
    string public symbol;
    uint8 public decimals = 18;

    uint256 public burnFee;
    uint256 public marketingFee;
    uint256 public buybackFee;

    address public deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public marketingAddress;
    IUniswapV2Router02 public router;
    address public pair;
    IReferral public referral;

    uint256 public buybackBalance;
    uint256 public marketingBalance;

    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) private allowances;

    bool private inSwap;

    bool public marketingSwapEnabled = false;
    uint256 public minMarketingSwapAmount = 1000000000000000000;
    uint256 public maxMarketingSwapAmount = 1500000000000000000;

    bool public swapEnabled = false;
    uint256 public minSwapAmount = 1000000000000000000;
    uint256 public maxSwapAmount = 1500000000000000000;

    bool public buybackEnabled = false;
    uint256 public minBalanceRequired = 1000000000000000000;
    uint256 public minBuybackSellAmount = 1000000000000000000;
    uint256 public maxBuybackAmount = 1500000000000000000;

    mapping(address => bool) private lpTokens;
    mapping(address => bool) private excludedFromFee;
    mapping(address => bool) private excludedFromAntiWhale;

    uint256 public antiWhaleTxAmountRate = 50; // 0.5%
    bool public antiWhaleEnabled = true;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event SwapTokensForETH(uint256 amountIn, address[] path);
    event SwapETHForTokens(uint256 amountIn, address[] path);

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

    constructor(string memory _name, string memory _symbol, address _router, IReferral _referral) public {
        name = _name;
        symbol = _symbol;

        marketingAddress = msg.sender;

        router = IUniswapV2Router02(_router);
        pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
        referral = _referral;

        lpTokens[pair] = true;

        setExcludedFromFee(msg.sender, true);
        setExcludedFromAntiWhale(msg.sender, true);

        setExcludedFromFee(address(this), true);
        setExcludedFromAntiWhale(address(this), true);
    }

    function balanceOf(address _account) public view virtual returns (uint256) {
        return balances[_account];
    }

    function allowance(address _from, address _to) external view virtual returns (uint256) {
        return allowances[_from][_to];
    }

    function mint(address _to, uint256 _amount) external virtual onlyMinter {
        _mint(_to, _amount);
    }

    function burn(uint256 _amount) external virtual {
        _burn(msg.sender, _amount);
    }

    function approve(address _to, uint256 _amount) external virtual returns (bool) {
        require(_amount > 0, "BEP20: amount is greater than zero");

        _approve(msg.sender, _to, _amount);
        return true;
    }

    function addBuybackBalance(uint256 _amount) external {
        require(balances[msg.sender] >= _amount, "BEP20: add amount exceeds balance");
        require(_amount > 0, "BEP20: amount is greater than zero");

        _transferAmount(msg.sender, address(this), _amount);

        buybackBalance = buybackBalance.add(_amount);
    }

    function transfer(address _to, uint256 _amount) external virtual returns (bool) {
        _transfer(msg.sender, _to, _amount);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) external virtual returns (bool) {
        require(allowances[_from][msg.sender] >= _amount, "BEP20: transfer amount exceeds allowance");

        _transfer(_from, _to, _amount);
        _approve(_from, msg.sender, allowances[_from][msg.sender].sub(_amount));

        return true;
    }

    function increaseAllowance(address _to, uint256 _amount) external virtual returns (bool) {
        require(_amount > 0, "BEP20: amount is greater than zero");

        uint256 total = allowances[msg.sender][_to].add(_amount);
        _approve(msg.sender, _to, total);
        return true;
    }

    function decreaseAllowance(address _to, uint256 _amount) external virtual returns (bool) {
        require(allowances[msg.sender][_to] >= _amount, "BEP20: decreased allowance below zero");
        require(_amount > 0, "BEP20: amount is greater than zero");

        uint256 total = allowances[msg.sender][_to].sub(_amount);
        _approve(msg.sender, _to, total);
        return true;
    }

    function calcFee(uint256 _amount, uint256 _percent) public pure returns (uint256) {
        return _amount.mul(_percent).div(10000);
    }

    function totalSupplyWithoutDeadBalance() public view returns (uint256) {
        return totalSupply.sub(balanceOf(deadAddress));
    }

    function maxAntiWhaleTxAmount() public view returns (uint256) {
        return calcFee(totalSupplyWithoutDeadBalance(), antiWhaleTxAmountRate);
    }

    function buyback(uint256 _amount) public onlyOperator {
        uint256 balance = address(this).balance;

        require(_amount > 0, "BEP20: amount is greater than zero");
        require(balance >= _amount, "BEP20: buyback amount is too big");

        if (!inSwap) {
            _buyback(_amount);
        }
    }

    function swapMarketing(uint256 _amount) public onlyOperator {
        require(_amount > 0, "BEP20: amount is greater than zero");
        require(marketingBalance >= _amount, "BEP20: amount is too big");

        if (!inSwap) {
            _swapMarketing(_amount);
        }
    }

    function swapBuyback(uint256 _amount) public onlyOperator {
        require(_amount > 0, "BEP20: amount is greater than zero");
        require(buybackBalance >= _amount, "BEP20: amount is too big");

        if (!inSwap) {
            _swapBuyback(_amount);
        }
    }

    function setMarketingAddress(address _marketingAddress) external virtual onlyOperator {
        require(marketingAddress != address(0), "BEP20: zero address");

        marketingAddress = _marketingAddress;
    }

    function setMarketingSwapEnabled(bool _marketingSwapEnabled) external onlyOperator {
        marketingSwapEnabled = _marketingSwapEnabled;
    }

    function setMinMarketingSwapAmount(uint256 _minMarketingSwapAmount) external onlyOperator {
        minMarketingSwapAmount = _minMarketingSwapAmount;
    }

    function setMaxMarketingSwapAmount(uint256 _maxMarketingSwapAmount) external onlyOperator {
        maxMarketingSwapAmount = _maxMarketingSwapAmount;
    }

    function setSwapEnabled(bool _swapEnabled) external onlyOperator {
        swapEnabled = _swapEnabled;
    }

    function setMinSwapAmount(uint256 _minSwapAmount) external onlyOperator {
        minSwapAmount = _minSwapAmount;
    }

    function setMaxSwapAmount(uint256 _maxSwapAmount) external onlyOperator {
        maxSwapAmount = _maxSwapAmount;
    }

    function setBuybackEnabled(bool _buybackEnabled) external onlyOperator {
        buybackEnabled = _buybackEnabled;
    }

    function setMinBalanceRequired(uint256 _minBalanceRequired) external onlyOperator {
        minBalanceRequired = _minBalanceRequired;
    }

    function setMinBuybackSellAmount(uint256 _minBuybackSellAmount) external onlyOperator {
        minBuybackSellAmount = _minBuybackSellAmount;
    }

    function setMaxBuybackAmount(uint256 _maxBuybackAmount) external onlyOperator {
        maxBuybackAmount = _maxBuybackAmount;
    }

    function isLpToken(address _address) public view returns (bool) {
        return lpTokens[_address];
    }

    function setLpToken(address _address, bool _isLpToken) external onlyOperator {
        require(_address != address(0), "BEP20: invalid LP address");
        require(_address != pair, "BEP20: exclude bnb pair");

        lpTokens[_address] = _isLpToken;
    }

    function isExcludedFromFee(address _address) public view returns (bool) {
        return excludedFromFee[_address];
    }

    function setExcludedFromFee(address _address, bool _isExcludedFromFee) public onlyOperator {
        excludedFromFee[_address] = _isExcludedFromFee;
    }

    function isExcludedFromAntiWhale(address _address) public view returns (bool) {
        return excludedFromAntiWhale[_address];
    }

    function setExcludedFromAntiWhale(address _address, bool _isExcludedFromAntiWhale) public onlyOperator {
        excludedFromAntiWhale[_address] = _isExcludedFromAntiWhale;
    }

    function setAntiWhaleTxAmountRate(uint256 _antiWhaleTxAmountRate) external onlyOperator {
        require(_antiWhaleTxAmountRate <= 500 && _antiWhaleTxAmountRate >= 50, "BEP20: invalid _antiWhaleTxAmountRate");
        antiWhaleTxAmountRate = _antiWhaleTxAmountRate;
    }

    function setAntiWhaleEnabled(bool _antiWhaleEnabled) external onlyOperator {
        antiWhaleEnabled = _antiWhaleEnabled;
    }

    function addMinter(address _minter) public onlyOwner override(MinterRole) {
        super.addMinter(_minter);
    }

    function removeMinter(address _minter) public onlyOwner override(MinterRole) {
        super.removeMinter(_minter);
    }

    function addOperator(address _operator) public onlyOwner override(OperatorRole) {
        super.addOperator(_operator);
    }

    function removeOperator(address _operator) public onlyOwner override(OperatorRole) {
        super.removeOperator(_operator);
    }

    function setReferral(IReferral _referral) external onlyOwner {
        referral = _referral;
    }

    receive() external payable {}

    function _buyback(uint256 _amount) internal {
        _swapETHForTokens(_amount, deadAddress);
    }

    function _swapMarketing(uint256 _marketingSwapAmount) internal {
        _swapTokensForEth(_marketingSwapAmount, marketingAddress);
        marketingBalance = marketingBalance.sub(_marketingSwapAmount);
    }

    function _swapBuyback(uint256 _swapAmount) internal {
        _swapTokensForEth(_swapAmount, address(this));
        buybackBalance = buybackBalance.sub(_swapAmount);
    }

    function _mint(address _to, uint256 _amount) internal virtual {
        require(_to != address(0), "BEP20: mint to the zero address");
        require(_amount > 0, "BEP20: amount is greater than zero");

        totalSupply = totalSupply.add(_amount);
        balances[_to] = balances[_to].add(_amount);

        emit Transfer(address(0), _to, _amount);
    }

    function _burn(address _from, uint256 _amount) internal virtual {
        require(_from != address(0), "BEP20: burn from the zero address");
        require(_amount > 0, "BEP20: amount is greater than zero");
        require(balances[_from] >= _amount, "BEP20: burn amount exceeds balance");

        _transferAmount(_from, deadAddress, _amount);
    }

    function _approve(address _from, address _to, uint256 _amount) internal virtual {
        require(_from != address(0), "BEP20: approve from the zero address");
        require(_to != address(0), "BEP20: approve to the zero address");

        allowances[_from][_to] = _amount;
        emit Approval(_from, _to, _amount);
    }

    function _transfer(address _from, address _to, uint256 _amount) internal virtual {
        require(_from != address(0), "BEP20: transfer from the zero address");
        require(_to != address(0), "BEP20: transfer to the zero address");
        require(balances[_from] >= _amount, "BEP20: transfer amount exceeds balance");
        require(_amount > 0, "BEP20: amount is greater than zero");

        if (antiWhaleEnabled && !isExcludedFromAntiWhale(_from) && !isExcludedFromAntiWhale(_to) && !isLpToken(_from)) {
            require(_amount <= maxAntiWhaleTxAmount(), "BEP20: transfer amount exceeds the maxAntiWhaleTxAmount");
        }

        uint256 calculatedAmount = _amount;
        uint256 burnFeeAmount = 0;
        uint256 marketingFeeAmount = 0;
        uint256 buybackFeeAmount = 0;

        if (!inSwap && !(isExcludedFromFee(_from) || isExcludedFromFee(_to))) {
            burnFeeAmount = calcFee(_amount, burnFee);
            if (burnFeeAmount > 0) {
                address referrer = address(0);
                if (isLpToken(_from) && !isLpToken(_to)) {
                    referrer = referral.getReferrer(_to);
                } else if (!isLpToken(_from) && isLpToken(_to)) {
                    referrer = referral.getReferrer(_from);
                } else {
                    referrer = referral.getReferrer(_from);
                }

                if (referrer != address(0)) {
                    _transferAmount(_from, referrer, burnFeeAmount);
                    referral.addRewards(referrer, "token", burnFeeAmount);
                } else {
                    _transferAmount(_from, address(this), burnFeeAmount);
                    buybackBalance = buybackBalance.add(burnFeeAmount);
                }
            }

            marketingFeeAmount = calcFee(_amount, marketingFee);
            if (marketingFeeAmount > 0) {
                _transferAmount(_from, address(this), marketingFeeAmount);
                marketingBalance = marketingBalance.add(marketingFeeAmount);
            }

            buybackFeeAmount = calcFee(_amount, buybackFee);
            if (buybackFeeAmount > 0) {
                _transferAmount(_from, address(this), buybackFeeAmount);
                buybackBalance = buybackBalance.add(buybackFeeAmount);
            }

            if (!isLpToken(_from)) {
                if (marketingSwapEnabled && marketingBalance >= minMarketingSwapAmount && minMarketingSwapAmount > 0) {
                    uint256 marketingSwapAmount = marketingBalance > maxMarketingSwapAmount ? maxMarketingSwapAmount : marketingBalance;
                    if (marketingSwapAmount > 0 && marketingSwapAmount <= balanceOf(address(this))) {
                        _swapMarketing(marketingSwapAmount);
                    }
                }

                if (swapEnabled && buybackBalance >= minSwapAmount && minSwapAmount > 0) {
                    uint256 swapAmount = buybackBalance > maxSwapAmount ? maxSwapAmount : buybackBalance;
                    if (swapAmount > 0 && swapAmount <= balanceOf(address(this))) {
                        _swapBuyback(swapAmount);
                    }
                }

                uint256 balance = address(this).balance;
                if (buybackEnabled && balance >= minBalanceRequired && minBalanceRequired > 0 && _amount >= minBuybackSellAmount && isLpToken(_to)) {
                    uint256 buybackAmount = balance > maxBuybackAmount ? maxBuybackAmount : balance;
                    if (buybackAmount > 0) {
                        _buyback(buybackAmount);
                    }
                }
            }

            calculatedAmount = calculatedAmount.sub(burnFeeAmount).sub(marketingFeeAmount).sub(buybackFeeAmount);
        }

        _transferAmount(_from, _to, calculatedAmount);
    }

    function _transferAmount(address _from, address _to, uint256 _amount) internal virtual {
        balances[_from] = balances[_from].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Transfer(_from, _to, _amount);
    }

    function _swapTokensForEth(uint256 _tokenAmount, address _recipient) internal lockTheSwap {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), _tokenAmount);
        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _tokenAmount,
            0, // accept any amount of ETH
            path,
            _recipient,
            block.timestamp
        );

        emit SwapTokensForETH(_tokenAmount, path);
    }

    function _swapETHForTokens(uint256 amount, address _recipient) internal lockTheSwap {
        // generate the uniswap pair path of weth -> token
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        // make the swap
        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value : amount}(
            0, // accept any amount of Tokens
            path,
            _recipient, // Burn address
            block.timestamp.add(300)
        );

        emit SwapETHForTokens(amount, path);
    }

}

// SPDX-License-Identifier: MIT
contract ErosToken is BEP20e {
    constructor(address _router, IReferral _referral) public BEP20e('Eros', 'EROS', _router, _referral) {
        _mint(msg.sender, 1000000 * 10 ** uint256(decimals));

        burnFee = 300; // 3%
        marketingFee = 300; // 3%
        buybackFee = 300; // 3%
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"contract IReferral","name":"_referral","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_minter","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_minter","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_operator","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_operator","type":"address"}],"name":"OperatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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"}],"name":"addBuybackBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"addOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiWhaleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiWhaleTxAmountRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"}],"name":"calcFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExcludedFromAntiWhale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isLpToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingBalance","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":"marketingSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAntiWhaleTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuybackAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMarketingSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBalanceRequired","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBuybackSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minMarketingSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referral","outputs":[{"internalType":"contract IReferral","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"removeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiWhaleEnabled","type":"bool"}],"name":"setAntiWhaleEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_antiWhaleTxAmountRate","type":"uint256"}],"name":"setAntiWhaleTxAmountRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_buybackEnabled","type":"bool"}],"name":"setBuybackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExcludedFromAntiWhale","type":"bool"}],"name":"setExcludedFromAntiWhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExcludedFromFee","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isLpToken","type":"bool"}],"name":"setLpToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_marketingSwapEnabled","type":"bool"}],"name":"setMarketingSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuybackAmount","type":"uint256"}],"name":"setMaxBuybackAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxMarketingSwapAmount","type":"uint256"}],"name":"setMaxMarketingSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSwapAmount","type":"uint256"}],"name":"setMaxSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minBalanceRequired","type":"uint256"}],"name":"setMinBalanceRequired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minBuybackSellAmount","type":"uint256"}],"name":"setMinBuybackSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minMarketingSwapAmount","type":"uint256"}],"name":"setMinMarketingSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minSwapAmount","type":"uint256"}],"name":"setMinSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IReferral","name":"_referral","type":"address"}],"name":"setReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"swapBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"swapMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyWithoutDeadBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600660006101000a81548160ff021916908360ff16021790555061dead600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360016101000a81548160ff021916908315150217905550670de0b6b3a76400006014556714d1120d7b1600006015556000601660006101000a81548160ff021916908315150217905550670de0b6b3a76400006017556714d1120d7b1600006018556000601960006101000a81548160ff021916908315150217905550670de0b6b3a7640000601a55670de0b6b3a7640000601b556714d1120d7b160000601c5560326020556001602160006101000a81548160ff0219169083151502179055503480156200013557600080fd5b5060405162006dac38038062006dac833981810160405260408110156200015b57600080fd5b8101908080519060200190929190805190602001909291905050506040518060400160405280600481526020017f45726f73000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f45524f53000000000000000000000000000000000000000000000000000000008152508383336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36200029033620006fe60201b60201c565b620002a133620007d960201b60201c565b8360049080519060200190620002b992919062000e9d565b508260059080519060200190620002d292919062000e9d565b5033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003be57600080fd5b505afa158015620003d3573d6000803e3d6000fd5b505050506040513d6020811015620003ea57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200048057600080fd5b505afa15801562000495573d6000803e3d6000fd5b505050506040513d6020811015620004ac57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200052757600080fd5b505af11580156200053c573d6000803e3d6000fd5b505050506040513d60208110156200055357600080fd5b8101908080519060200190929190505050600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601d6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000672336001620008b460201b60201c565b62000685336001620009b360201b60201c565b62000698306001620008b460201b60201c565b620006ab306001620009b360201b60201c565b50505050620006db33600660009054906101000a900460ff1660ff16600a0a620f42400262000ab260201b60201c565b61012c60078190555061012c60088190555061012c600981905550505062000f43565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b620007d68162000cd960201b62003ded1760201c565b50565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b620008b18162000d7660201b62003e8a1760201c565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062006d866026913960400191505060405180910390fd5b80601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000a57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062006d866026913960400191505060405180910390fd5b80601f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000b56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f42455032303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6000811162000bb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062006d646022913960400191505060405180910390fd5b62000bcd8160035462000e1460201b62003f281790919060201c565b60038190555062000c2c81601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000e1460201b62003f281790919060201c565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b60008082840190508381101562000e93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000ee057805160ff191683800117855562000f11565b8280016001018555821562000f11579182015b8281111562000f1057825182559160200191906001019062000ef3565b5b50905062000f20919062000f24565b5090565b5b8082111562000f3f57600081600090555060010162000f25565b5090565b615e118062000f536000396000f3fe6080604052600436106104095760003560e01c80638da5cb5b11610213578063ac8a584a11610123578063df768743116100ab578063f2fde38b1161007a578063f2fde38b1461165f578063f887ea40146116b0578063faebde2b146116f1578063fce589d81461172c578063ff0c13a81461175757610410565b8063df76874314611571578063e01af92c146115ac578063ef45190a146115e9578063f0c3faa01461162457610410565b8063c7f59a67116100f2578063c7f59a67146113fe578063cb6b5cfb1461145b578063cce987d414611486578063d032ba37146114b1578063dd62ed3e146114ec57610410565b8063ac8a584a146112fe578063af70f1cf1461134f578063bd2d5477146113a8578063c7f1082f146113d357610410565b8063a457c2d7116101a6578063a8aa1b3111610175578063a8aa1b311461117d578063a8b51fc8146111be578063a9059cbb146111e9578063aa271e1a1461125a578063aa5f57ca146112c157610410565b8063a457c2d714611065578063a45effcb146110d6578063a5ece94114611101578063a5f7f99d1461114257610410565b8063983b2d56116101e2578063983b2d5614610f355780639870d7fe14610f865780639a9b567d14610fd75780639e5914da1461101457610410565b80638da5cb5b14610de8578063906e9dd014610e295780639434c9ae14610e7a57806395d89b4114610ea557610410565b8063320d45341161031957806357d87f0d116102a15780636d70f7ae116102705780636d70f7ae14610c575780636ddd171314610cbe57806370a0823114610ceb57806379a9fa1c14610d505780637ceeaae014610d8b57610410565b806357d87f0d14610b7757806358e5536514610ba45780636612e66f14610bcf5780636b67c4df14610c2c57610410565b806340c10f19116102e857806340c10f1914610a0457806342966c6814610a5f578063431db03214610a9a5780634bd257eb14610ad55780635342acb414610b1057610410565b8063320d453414610902578063338246e21461093d57806339509351146109685780633b2d081c146109d957610410565b806319618dc91161039c57806326f607cc1161036b57806326f607cc146107dc57806327c8f835146108175780632b08bf8f146108585780633092afd514610883578063313ce567146108d457610410565b806319618dc91461067e57806321a04677146106b957806323b872dd146106e4578063269f534c1461077557610410565b80631441a5a9116103d85780631441a5a9146105a8578063160d0da5146105e957806318160ddd1461061657806318ec50701461064157610410565b806306fdde0314610415578063095ea7b3146104a55780630f24ca7d1461051657806310ef9e771461057d57610410565b3661041057005b600080fd5b34801561042157600080fd5b5061042a611784565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046a57808201518184015260208101905061044f565b50505050905090810190601f1680156104975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104b157600080fd5b506104fe600480360360408110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611822565b60405180821515815260200191505060405180910390f35b34801561052257600080fd5b506105656004803603602081101561053957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611891565b60405180821515815260200191505060405180910390f35b34801561058957600080fd5b506105926118e7565b6040518082815260200191505060405180910390f35b3480156105b457600080fd5b506105bd6118ed565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f557600080fd5b506105fe611913565b60405180821515815260200191505060405180910390f35b34801561062257600080fd5b5061062b611926565b6040518082815260200191505060405180910390f35b34801561064d57600080fd5b5061067c6004803603602081101561066457600080fd5b8101908080351515906020019092919050505061192c565b005b34801561068a57600080fd5b506106b7600480360360208110156106a157600080fd5b81019080803590602001909291905050506119eb565b005b3480156106c557600080fd5b506106ce611a97565b6040518082815260200191505060405180910390f35b3480156106f057600080fd5b5061075d6004803603606081101561070757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ab1565b60405180821515815260200191505060405180910390f35b34801561078157600080fd5b506107c46004803603602081101561079857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c37565b60405180821515815260200191505060405180910390f35b3480156107e857600080fd5b50610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611c8d565b005b34801561082357600080fd5b5061082c611e21565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086457600080fd5b5061086d611e47565b6040518082815260200191505060405180910390f35b34801561088f57600080fd5b506108d2600480360360208110156108a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4d565b005b3480156108e057600080fd5b506108e9611f1a565b604051808260ff16815260200191505060405180910390f35b34801561090e57600080fd5b5061093b6004803603602081101561092557600080fd5b8101908080359060200190929190505050611f2d565b005b34801561094957600080fd5b50610952611fd9565b6040518082815260200191505060405180910390f35b34801561097457600080fd5b506109c16004803603604081101561098b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fdf565b60405180821515815260200191505060405180910390f35b3480156109e557600080fd5b506109ee6120e2565b6040518082815260200191505060405180910390f35b348015610a1057600080fd5b50610a5d60048036036040811015610a2757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120e8565b005b348015610a6b57600080fd5b50610a9860048036036020811015610a8257600080fd5b8101908080359060200190929190505050612198565b005b348015610aa657600080fd5b50610ad360048036036020811015610abd57600080fd5b81019080803590602001909291905050506121a5565b005b348015610ae157600080fd5b50610b0e60048036036020811015610af857600080fd5b8101908080359060200190929190505050612251565b005b348015610b1c57600080fd5b50610b5f60048036036020811015610b3357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122fd565b60405180821515815260200191505060405180910390f35b348015610b8357600080fd5b50610b8c612353565b60405180821515815260200191505060405180910390f35b348015610bb057600080fd5b50610bb9612366565b6040518082815260200191505060405180910390f35b348015610bdb57600080fd5b50610c2a60048036036040811015610bf257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061236c565b005b348015610c3857600080fd5b50610c41612469565b6040518082815260200191505060405180910390f35b348015610c6357600080fd5b50610ca660048036036020811015610c7a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061246f565b60405180821515815260200191505060405180910390f35b348015610cca57600080fd5b50610cd36124c5565b60405180821515815260200191505060405180910390f35b348015610cf757600080fd5b50610d3a60048036036020811015610d0e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124d8565b6040518082815260200191505060405180910390f35b348015610d5c57600080fd5b50610d8960048036036020811015610d7357600080fd5b8101908080359060200190929190505050612521565b005b348015610d9757600080fd5b50610de660048036036040811015610dae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506126b9565b005b348015610df457600080fd5b50610dfd61291d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e3557600080fd5b50610e7860048036036020811015610e4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612941565b005b348015610e8657600080fd5b50610e8f612aec565b6040518082815260200191505060405180910390f35b348015610eb157600080fd5b50610eba612af2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610efa578082015181840152602081019050610edf565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f4157600080fd5b50610f8460048036036020811015610f5857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b90565b005b348015610f9257600080fd5b50610fd560048036036020811015610fa957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c5d565b005b348015610fe357600080fd5b5061101260048036036020811015610ffa57600080fd5b81019080803515159060200190929190505050612d2a565b005b34801561102057600080fd5b506110636004803603602081101561103757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612de9565b005b34801561107157600080fd5b506110be6004803603604081101561108857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612eee565b60405180821515815260200191505060405180910390f35b3480156110e257600080fd5b506110eb6130c7565b6040518082815260200191505060405180910390f35b34801561110d57600080fd5b506111166130cd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561114e57600080fd5b5061117b6004803603602081101561116557600080fd5b81019080803590602001909291905050506130f3565b005b34801561118957600080fd5b5061119261319f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111ca57600080fd5b506111d36131c5565b6040518082815260200191505060405180910390f35b3480156111f557600080fd5b506112426004803603604081101561120c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506131cb565b60405180821515815260200191505060405180910390f35b34801561126657600080fd5b506112a96004803603602081101561127d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131e2565b60405180821515815260200191505060405180910390f35b3480156112cd57600080fd5b506112fc600480360360208110156112e457600080fd5b81019080803515159060200190929190505050613238565b005b34801561130a57600080fd5b5061134d6004803603602081101561132157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132f7565b005b34801561135b57600080fd5b506113926004803603604081101561137257600080fd5b8101908080359060200190929190803590602001909291905050506133c4565b6040518082815260200191505060405180910390f35b3480156113b457600080fd5b506113bd6133f5565b6040518082815260200191505060405180910390f35b3480156113df57600080fd5b506113e86133fb565b6040518082815260200191505060405180910390f35b34801561140a57600080fd5b506114596004803603604081101561142157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613441565b005b34801561146757600080fd5b5061147061353e565b6040518082815260200191505060405180910390f35b34801561149257600080fd5b5061149b613544565b6040518082815260200191505060405180910390f35b3480156114bd57600080fd5b506114ea600480360360208110156114d457600080fd5b810190808035906020019092919050505061354a565b005b3480156114f857600080fd5b5061155b6004803603604081101561150f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061365e565b6040518082815260200191505060405180910390f35b34801561157d57600080fd5b506115aa6004803603602081101561159457600080fd5b81019080803590602001909291905050506136e5565b005b3480156115b857600080fd5b506115e7600480360360208110156115cf57600080fd5b810190808035151590602001909291905050506137ff565b005b3480156115f557600080fd5b506116226004803603602081101561160c57600080fd5b81019080803590602001909291905050506138be565b005b34801561163057600080fd5b5061165d6004803603602081101561164757600080fd5b810190808035906020019092919050505061396a565b005b34801561166b57600080fd5b506116ae6004803603602081101561168257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a16565b005b3480156116bc57600080fd5b506116c5613c1a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156116fd57600080fd5b5061172a6004803603602081101561171457600080fd5b8101908080359060200190929190505050613c40565b005b34801561173857600080fd5b50611741613dd4565b6040518082815260200191505060405180910390f35b34801561176357600080fd5b5061176c613dda565b60405180821515815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561181a5780601f106117ef5761010080835404028352916020019161181a565b820191906000526020600020905b8154815290600101906020018083116117fd57829003601f168201915b505050505081565b600080821161187c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b611887338484613fb0565b6001905092915050565b6000601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60155481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960009054906101000a900460ff1681565b60035481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80601c8190555050565b6000611aac611aa46133fb565b6020546133c4565b905090565b600081601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615c656028913960400191505060405180910390fd5b611b938484846141a7565b611c2c8433611c2785601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ae290919063ffffffff16565b613fb0565b600190509392505050565b6000601f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b60008111611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b80600f541015611e00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f42455032303a20616d6f756e7420697320746f6f20626967000000000000000081525060200191505060405180910390fd5b601360009054906101000a900460ff16611e1e57611e1d81614b2c565b5b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611f1781614b54565b50565b600660009054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b8060178190555050565b60175481565b6000808211612039576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b60006120ca83601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f2890919063ffffffff16565b90506120d7338583613fb0565b600191505092915050565b60095481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661218a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615ce56024913960400191505060405180910390fd5b6121948282614bf2565b5050565b6121a23382614e08565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612247576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80601a8190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166122f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b8060148190555050565b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b602160009054906101000a900460ff1681565b60105481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661240e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60085481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601660009054906101000a900460ff1681565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b600047905060008211612621576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b81811015612697576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f42455032303a206275796261636b20616d6f756e7420697320746f6f2062696781525060200191505060405180910390fd5b601360009054906101000a900460ff166126b5576126b482614fb0565b5b5050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f42455032303a20696e76616c6964204c5020616464726573730000000000000081525060200191505060405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156128c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f42455032303a206578636c75646520626e62207061697200000000000000000081525060200191505060405180910390fd5b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f42455032303a207a65726f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b885780601f10612b5d57610100808354040283529160200191612b88565b820191906000526020600020905b815481529060010190602001808311612b6b57829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b612c5a81613ded565b50565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b612d2781613e8a565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80601960006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612eaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615d526025913960400191505060405180910390fd5b6000821161301e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b60006130af83601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ae290919063ffffffff16565b90506130bc338583613fb0565b600191505092915050565b601c5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613195576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b8060188190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60006131d83384846141a7565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166132da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80602160006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146133b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6133c181614fdf565b50565b60006133ed6127106133df848661507d90919063ffffffff16565b61510390919063ffffffff16565b905092915050565b60145481565b600061343c61342b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166124d8565b600354614ae290919063ffffffff16565b905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166134e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80601f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60205481565b60185481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166135ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b6101f481111580156135ff575060328110155b613654576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b686025913960400191505060405180910390fd5b8060208190555050565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561377d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615c446021913960400191505060405180910390fd5b600081116137d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b6137e133308361514d565b6137f681600f54613f2890919063ffffffff16565b600f8190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166138a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80601660006101000a81548160ff02191690831515021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b8060158190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b80601b8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613ad7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615bf86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c1e6026913960400191505060405180910390fd5b60008111613d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b806010541015613db3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f42455032303a20616d6f756e7420697320746f6f20626967000000000000000081525060200191505060405180910390fd5b601360009054906101000a900460ff16613dd157613dd0816152e1565b5b50565b60075481565b601360019054906101000a900460ff1681565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b600080828401905083811015613fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614036576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615bd46024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156140bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615dba6022913960400191505060405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561422d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615baf6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156142b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615d2f6023913960400191505060405180910390fd5b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561434b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615d096026913960400191505060405180910390fd5b600081116143a4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b602160009054906101000a900460ff1680156143c657506143c483611c37565b155b80156143d857506143d682611c37565b155b80156143ea57506143e883611891565b155b15614450576143f7611a97565b81111561444f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180615c8d6037913960400191505060405180910390fd5b5b60008190506000806000601360009054906101000a900460ff1615801561448d575061447b876122fd565b8061448b575061448a866122fd565b5b155b15614ace5761449e856007546133c4565b9250600083111561489a5760006144b488611891565b80156144c657506144c487611891565b155b1561459657600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a9fefc7886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561455457600080fd5b505afa158015614568573d6000803e3d6000fd5b505050506040513d602081101561457e57600080fd5b81019080805190602001909291905050509050614749565b61459f88611891565b1580156145b157506145b087611891565b5b1561468157600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a9fefc7896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561463f57600080fd5b505afa158015614653573d6000803e3d6000fd5b505050506040513d602081101561466957600080fd5b81019080805190602001909291905050509050614748565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a9fefc7896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561470a57600080fd5b505afa15801561471e573d6000803e3d6000fd5b505050506040513d602081101561473457600080fd5b810190808051906020019092919050505090505b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146148715761478888828661514d565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636aab8f9e82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825260058152602001807f746f6b656e0000000000000000000000000000000000000000000000000000008152506020019350505050600060405180830381600087803b15801561485457600080fd5b505af1158015614868573d6000803e3d6000fd5b50505050614898565b61487c88308661514d565b61489184600f54613f2890919063ffffffff16565b600f819055505b505b6148a6856008546133c4565b915060008211156148d8576148bc87308461514d565b6148d182601054613f2890919063ffffffff16565b6010819055505b6148e4856009546133c4565b90506000811115614916576148fa87308361514d565b61490f81600f54613f2890919063ffffffff16565b600f819055505b61491f87611891565b614a9457601360019054906101000a900460ff168015614943575060145460105410155b801561495157506000601454115b1561499a5760006015546010541161496b5760105461496f565b6015545b90506000811180156149895750614985306124d8565b8111155b1561499857614997816152e1565b5b505b601660009054906101000a900460ff1680156149ba5750601754600f5410155b80156149c857506000601754115b15614a11576000601854600f54116149e257600f546149e6565b6018545b9050600081118015614a0057506149fc306124d8565b8111155b15614a0f57614a0e81614b2c565b5b505b6000479050601960009054906101000a900460ff168015614a345750601a548110155b8015614a4257506000601a54115b8015614a505750601b548610155b8015614a615750614a6087611891565b5b15614a92576000601c548211614a775781614a7b565b601c545b90506000811115614a9057614a8f81614fb0565b5b505b505b614acb81614abd84614aaf8789614ae290919063ffffffff16565b614ae290919063ffffffff16565b614ae290919063ffffffff16565b93505b614ad987878661514d565b50505050505050565b6000614b2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061532b565b905092915050565b614b3681306153eb565b614b4b81600f54614ae290919063ffffffff16565b600f8190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614c95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f42455032303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b60008111614cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b614d0381600354613f2890919063ffffffff16565b600381905550614d5b81601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f2890919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615d776021913960400191505060405180910390fd5b60008111614ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615b8d6022913960400191505060405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015614f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615d986022913960400191505060405180910390fd5b614fac82600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361514d565b5050565b614fdc81600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16615756565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b60008083141561509057600090506150fd565b60008284029050828482816150a157fe5b04146150f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615cc46021913960400191505060405180910390fd5b809150505b92915050565b600061514583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615aa1565b905092915050565b61519f81601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ae290919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061523481601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f2890919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b61530d81600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166153eb565b61532281601054614ae290919063ffffffff16565b60108190555050565b60008383111582906153d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561539d578082015181840152602081019050615382565b50505050905090810190601f1680156153ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6001601360006101000a81548160ff0219169083151502179055506060600267ffffffffffffffff8111801561542057600080fd5b5060405190808252806020026020018201604052801561544f5781602001602082028036833780820191505090505b509050308160008151811061546057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561550257600080fd5b505afa158015615516573d6000803e3d6000fd5b505050506040513d602081101561552c57600080fd5b81019080805190602001909291905050508160018151811061554a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506155b130600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685613fb0565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561567557808201518184015260208101905061565a565b505050509050019650505050505050600060405180830381600087803b15801561569e57600080fd5b505af11580156156b2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a783826040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015615722578082015181840152602081019050615707565b50505050905001935050505060405180910390a1506000601360006101000a81548160ff0219169083151502179055505050565b6001601360006101000a81548160ff0219169083151502179055506060600267ffffffffffffffff8111801561578b57600080fd5b506040519080825280602002602001820160405280156157ba5781602001602082028036833780820191505090505b509050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561582557600080fd5b505afa158015615839573d6000803e3d6000fd5b505050506040513d602081101561584f57600080fd5b81019080805190602001909291905050508160008151811061586d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106158b557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de95846000848661594761012c42613f2890919063ffffffff16565b6040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156159c15780820151818401526020810190506159a6565b50505050905001955050505050506000604051808303818588803b1580156159e857600080fd5b505af11580156159fc573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a962483826040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015615a6d578082015181840152602081019050615a52565b50505050905001935050505060405180910390a1506000601360006101000a81548160ff0219169083151502179055505050565b60008083118290615b4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615b12578082015181840152602081019050615af7565b50505050905090810190601f168015615b3f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581615b5957fe5b04905080915050939250505056fe42455032303a20696e76616c6964205f616e74695768616c655478416d6f756e745261746542455032303a20616d6f756e742069732067726561746572207468616e207a65726f42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f706572617461626c653a2063616c6c6572206973206e6f7420746865206f70657261746f7242455032303a2061646420616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e74206578636565647320746865206d6178416e74695768616c655478416d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d696e74657261626c653a2063616c6c6572206973206e6f7420746865206d696e74657242455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f206164647265737342455032303a206275726e20616d6f756e7420657863656564732062616c616e636542455032303a20617070726f766520746f20746865207a65726f2061646472657373a264697066735822122005ea0b2d3ab96efa1b5055e818b00096afa7b1c7c1306933671073b051c1f79964736f6c634300060c003342455032303a20616d6f756e742069732067726561746572207468616e207a65726f4f706572617461626c653a2063616c6c6572206973206e6f7420746865206f70657261746f7200000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e000000000000000000000000247279aa5ccbdb4723039da05a5d9af4ff85d590

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e000000000000000000000000247279aa5ccbdb4723039da05a5d9af4ff85d590

-----Decoded View---------------
Arg [0] : _router (address): 0x10ed43c718714eb63d5aa57b78b54704e256024e
Arg [1] : _referral (address): 0x247279aa5ccbdb4723039da05a5d9af4ff85d590

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e
Arg [1] : 000000000000000000000000247279aa5ccbdb4723039da05a5d9af4ff85d590


Deployed ByteCode Sourcemap

30563:310:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13607:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16570:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21427:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14349:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13972:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14571:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13572:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19990:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21286:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18689:151;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17314:360;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22109:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19477:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13791:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14674:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22986:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13659:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20592:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14455:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17682:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13757:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16351:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16469:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20980:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20144:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21814:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15022:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14042:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21945:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13723:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7126:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14417:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16081:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18848:326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21543:263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7590:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19766:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14612:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13632:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22861:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23117:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20850:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23393:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17990:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14738:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13869:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20721:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13946:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14006:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17150:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6319:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22723:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23252:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18397:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14283:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18545:136;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22252:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14966:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14512:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22440:275;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16208:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16803:339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20474:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20309:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21129:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7949:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13907:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19182:287;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13694:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14236:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13607:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16570:225::-;16643:4;16678:1;16668:7;:11;16660:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16731:34;16740:10;16752:3;16757:7;16731:8;:34::i;:::-;16783:4;16776:11;;16570:225;;;;:::o;21427:108::-;21485:4;21509:8;:18;21518:8;21509:18;;;;;;;;;;;;;;;;;;;;;;;;;21502:25;;21427:108;;;:::o;14349:59::-;;;;:::o;13972:25::-;;;;;;;;;;;;;:::o;14571:34::-;;;;;;;;;;;;;:::o;13572:26::-;;;;:::o;19990:146::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20107:21:::1;20084:20;;:44;;;;;;;;;;;;;;;;;;19990:146:::0;:::o;21286:133::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21394:17:::1;21375:16;:36;;;;21286:133:::0;:::o;18689:151::-;18742:7;18769:63;18777:31;:29;:31::i;:::-;18810:21;;18769:7;:63::i;:::-;18762:70;;18689:151;:::o;17314:360::-;17407:4;17465:7;17432:10;:17;17443:5;17432:17;;;;;;;;;;;;;;;:29;17450:10;17432:29;;;;;;;;;;;;;;;;:40;;17424:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17530:30;17540:5;17547:3;17552:7;17530:9;:30::i;:::-;17571:71;17580:5;17587:10;17599:42;17633:7;17599:10;:17;17610:5;17599:17;;;;;;;;;;;;;;;:29;17617:10;17599:29;;;;;;;;;;;;;;;;:33;;:42;;;;:::i;:::-;17571:8;:71::i;:::-;17662:4;17655:11;;17314:360;;;;;:::o;22109:135::-;22181:4;22205:21;:31;22227:8;22205:31;;;;;;;;;;;;;;;;;;;;;;;;;22198:38;;22109:135;;;:::o;19477:281::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19564:1:::1;19554:7;:11;19546:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19641:7;19623:14;;:25;;19615:62;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19695:6;;;;;;;;;;;19690:61;;19718:21;19731:7;19718:12;:21::i;:::-;19690:61;19477:281:::0;:::o;13791:71::-;;;;;;;;;;;;;:::o;14674:57::-;;;;:::o;22986:123::-;7874:10;7865:19;;:5;;;;;;;;;;:19;;;7857:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23074:27:::1;23093:7;23074:18;:27::i;:::-;22986:123:::0;:::o;13659:26::-;;;;;;;;;;;;;:::o;20592:121::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20691:14:::1;20675:13;:30;;;;20592:121:::0;:::o;14455:50::-;;;;:::o;17682:300::-;17765:4;17800:1;17790:7;:11;17782:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17853:13;17869:40;17901:7;17869:10;:22;17880:10;17869:22;;;;;;;;;;;;;;;:27;17892:3;17869:27;;;;;;;;;;;;;;;;:31;;:40;;;;:::i;:::-;17853:56;;17920:32;17929:10;17941:3;17946:5;17920:8;:32::i;:::-;17970:4;17963:11;;;17682:300;;;;:::o;13757:25::-;;;;:::o;16351:110::-;6231:7;:19;6239:10;6231:19;;;;;;;;;;;;;;;;;;;;;;;;;6223:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16434:19:::1;16440:3;16445:7;16434:5;:19::i;:::-;16351:110:::0;;:::o;16469:93::-;16528:26;16534:10;16546:7;16528:5;:26::i;:::-;16469:93;:::o;20980:141::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21094:19:::1;21073:18;:40;;;;20980:141:::0;:::o;20144:157::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20270:23:::1;20245:22;:48;;;;20144:157:::0;:::o;21814:123::-;21880:4;21904:15;:25;21920:8;21904:25;;;;;;;;;;;;;;;;;;;;;;;;;21897:32;;21814:123;;;:::o;15022:35::-;;;;;;;;;;;;;:::o;14042:31::-;;;;:::o;21945:156::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22075:18:::1;22047:15;:25;22063:8;22047:25;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;21945:156:::0;;:::o;13723:27::-;;;;:::o;7126:118::-;7194:4;7218:9;:18;7228:7;7218:18;;;;;;;;;;;;;;;;;;;;;;;;;7211:25;;7126:118;;;:::o;14417:31::-;;;;;;;;;;;;;:::o;16081:119::-;16147:7;16174:8;:18;16183:8;16174:18;;;;;;;;;;;;;;;;16167:25;;16081:119;;;:::o;18848:326::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18913:15:::1;18931:21;18913:39;;18983:1;18973:7;:11;18965:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19053:7;19042;:18;;19034:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19115:6;;;;;;;;;;;19110:57;;19138:17;19147:7;19138:8;:17::i;:::-;19110:57;7109:1;18848:326:::0;:::o;21543:263::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21659:1:::1;21639:22;;:8;:22;;;;21631:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21722:4;;;;;;;;;;;21710:16;;:8;:16;;;;21702:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21788:10;21767:8;:18;21776:8;21767:18;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;21543:263:::0;;:::o;7590:20::-;;;;;;;;;;;;:::o;19766:216::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19899:1:::1;19871:30;;:16;;;;;;;;;;;:30;;;;19863:62;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19957:17;19938:16;;:36;;;;;;;;;;;;;;;;;;19766:216:::0;:::o;14612:55::-;;;;:::o;13632:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22861:117::-;7874:10;7865:19;;:5;;;;;;;;;;:19;;;7857:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22946:24:::1;22962:7;22946:15;:24::i;:::-;22861:117:::0;:::o;23117:127::-;7874:10;7865:19;;:5;;;;;;;;;;:19;;;7857:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23208:28:::1;23226:9;23208:17;:28::i;:::-;23117:127:::0;:::o;20850:122::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20949:15:::1;20932:14;;:32;;;;;;;;;;;;;;;;;;20850:122:::0;:::o;23393:100::-;7874:10;7865:19;;:5;;;;;;;;;;:19;;;7857:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23476:9:::1;23465:8;;:20;;;;;;;;;;;;;;;;;;23393:100:::0;:::o;17990:399::-;18073:4;18129:7;18098:10;:22;18109:10;18098:22;;;;;;;;;;;;;;;:27;18121:3;18098:27;;;;;;;;;;;;;;;;:38;;18090:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18207:1;18197:7;:11;18189:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18260:13;18276:40;18308:7;18276:10;:22;18287:10;18276:22;;;;;;;;;;;;;;;:27;18299:3;18276:27;;;;;;;;;;;;;;;;:31;;:40;;;;:::i;:::-;18260:56;;18327:32;18336:10;18348:3;18353:5;18327:8;:32::i;:::-;18377:4;18370:11;;;17990:399;;;;:::o;14738:53::-;;;;:::o;13869:31::-;;;;;;;;;;;;;:::o;20721:121::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20820:14:::1;20804:13;:30;;;;20721:121:::0;:::o;13946:19::-;;;;;;;;;;;;;:::o;14006:29::-;;;;:::o;17150:156::-;17224:4;17241:35;17251:10;17263:3;17268:7;17241:9;:35::i;:::-;17294:4;17287:11;;17150:156;;;;:::o;6319:114::-;6385:4;6409:7;:16;6417:7;6409:16;;;;;;;;;;;;;;;;;;;;;;;;;6402:23;;6319:114;;;:::o;22723:130::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22828:17:::1;22809:16;;:36;;;;;;;;;;;;;;;;;;22723:130:::0;:::o;23252:133::-;7874:10;7865:19;;:5;;;;;;;;;;:19;;;7857:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23346:31:::1;23367:9;23346:20;:31::i;:::-;23252:133:::0;:::o;18397:140::-;18470:7;18497:32;18523:5;18497:21;18509:8;18497:7;:11;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;18490:39;;18397:140;;;;:::o;14283:59::-;;;;:::o;18545:136::-;18607:7;18634:39;18650:22;18660:11;;;;;;;;;;;18650:9;:22::i;:::-;18634:11;;:15;;:39;;;;:::i;:::-;18627:46;;18545:136;:::o;22252:180::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22400:24:::1;22366:21;:31;22388:8;22366:31;;;;;;;;;;;;;;;;:58;;;;;;;;;;;;;;;;;;22252:180:::0;;:::o;14966:41::-;;;;:::o;14512:50::-;;;;:::o;22440:275::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22573:3:::1;22547:22;:29;;:61;;;;;22606:2;22580:22;:28;;22547:61;22539:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22685:22;22661:21;:46;;;;22440:275:::0;:::o;16208:135::-;16286:7;16313:10;:17;16324:5;16313:17;;;;;;;;;;;;;;;:22;16331:3;16313:22;;;;;;;;;;;;;;;;16306:29;;16208:135;;;;:::o;16803:339::-;16899:7;16875:8;:20;16884:10;16875:20;;;;;;;;;;;;;;;;:31;;16867:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16973:1;16963:7;:11;16955:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17026:51;17042:10;17062:4;17069:7;17026:15;:51::i;:::-;17107:27;17126:7;17107:14;;:18;;:27;;;;:::i;:::-;17090:14;:44;;;;16803:339;:::o;20474:110::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20564:12:::1;20550:11;;:26;;;;;;;;;;;;;;;;;;20474:110:::0;:::o;20309:157::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20435:23:::1;20410:22;:48;;;;20309:157:::0;:::o;21129:149::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21249:21:::1;21226:20;:44;;;;21129:149:::0;:::o;7949:244::-;7874:10;7865:19;;:5;;;;;;;;;;:19;;;7857:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8060:1:::1;8040:22;;:8;:22;;;;8032:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8149:8;8121:37;;8142:5;::::0;::::1;;;;;;;;8121:37;;;;;;;;;;;;8177:8;8169:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;7949:244:::0;:::o;13907:32::-;;;;;;;;;;;;;:::o;19182:287::-;7034:9;:21;7044:10;7034:21;;;;;;;;;;;;;;;;;;;;;;;;;7026:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19271:1:::1;19261:7;:11;19253:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19350:7;19330:16;;:27;;19322:64;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19404:6;;;;;;;;;;;19399:63;;19427:23;19442:7;19427:14;:23::i;:::-;19399:63;19182:287:::0;:::o;13694:22::-;;;;:::o;14236:40::-;;;;;;;;;;;;;:::o;6441:129::-;6522:4;6503:7;:16;6511:7;6503:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;6554:7;6542:20;;;;;;;;;;;;6441:129;:::o;7252:141::-;7341:4;7318:9;:20;7328:9;7318:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7375:9;7361:24;;;;;;;;;;;;7252:141;:::o;8463:181::-;8521:7;8541:9;8557:1;8553;:5;8541:17;;8582:1;8577;:6;;8569:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8635:1;8628:8;;;8463:181;;;;:::o;24791:332::-;24907:1;24890:19;;:5;:19;;;;24882:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24984:1;24969:17;;:3;:17;;;;24961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25063:7;25038:10;:17;25049:5;25038:17;;;;;;;;;;;;;;;:22;25056:3;25038:22;;;;;;;;;;;;;;;:32;;;;25102:3;25086:29;;25095:5;25086:29;;;25107:7;25086:29;;;;;;;;;;;;;;;;;;24791:332;;;:::o;25131:3880::-;25248:1;25231:19;;:5;:19;;;;25223:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25326:1;25311:17;;:3;:17;;;;25303:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25406:7;25387:8;:15;25396:5;25387:15;;;;;;;;;;;;;;;;:26;;25379:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25485:1;25475:7;:11;25467:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25542:16;;;;;;;;;;;:51;;;;;25563:30;25587:5;25563:23;:30::i;:::-;25562:31;25542:51;:84;;;;;25598:28;25622:3;25598:23;:28::i;:::-;25597:29;25542:84;:105;;;;;25631:16;25641:5;25631:9;:16::i;:::-;25630:17;25542:105;25538:239;;;25683:22;:20;:22::i;:::-;25672:7;:33;;25664:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25538:239;25789:24;25816:7;25789:34;;25834:21;25870:26;25911:24;25957:6;;;;;;;;;;;25956:7;:64;;;;;25969:24;25987:5;25969:17;:24::i;:::-;:50;;;;25997:22;26015:3;25997:17;:22::i;:::-;25969:50;25967:53;25956:64;25952:2994;;;26053:25;26061:7;26070;;26053;:25::i;:::-;26037:41;;26113:1;26097:13;:17;26093:828;;;26135:16;26187;26197:5;26187:9;:16::i;:::-;:35;;;;;26208:14;26218:3;26208:9;:14::i;:::-;26207:15;26187:35;26183:335;;;26258:8;;;;;;;;;;;:20;;;26279:3;26258:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26247:36;;26183:335;;;26314:16;26324:5;26314:9;:16::i;:::-;26313:17;:35;;;;;26334:14;26344:3;26334:9;:14::i;:::-;26313:35;26309:209;;;26384:8;;;;;;;;;;;:20;;;26405:5;26384:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26373:38;;26309:209;;;26471:8;;;;;;;;;;;:20;;;26492:5;26471:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26460:38;;26309:209;26183:335;26562:1;26542:22;;:8;:22;;;26538:368;;26589:47;26605:5;26612:8;26622:13;26589:15;:47::i;:::-;26659:8;;;;;;;;;;;:19;;;26679:8;26698:13;26659:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26538:368;;;26761:52;26777:5;26792:4;26799:13;26761:15;:52::i;:::-;26853:33;26872:13;26853:14;;:18;;:33;;;;:::i;:::-;26836:14;:50;;;;26538:368;26093:828;;26958:30;26966:7;26975:12;;26958:7;:30::i;:::-;26937:51;;27028:1;27007:18;:22;27003:198;;;27050:57;27066:5;27081:4;27088:18;27050:15;:57::i;:::-;27145:40;27166:18;27145:16;;:20;;:40;;;;:::i;:::-;27126:16;:59;;;;27003:198;27236:28;27244:7;27253:10;;27236:7;:28::i;:::-;27217:47;;27302:1;27283:16;:20;27279:188;;;27324:55;27340:5;27355:4;27362:16;27324:15;:55::i;:::-;27415:36;27434:16;27415:14;;:18;;:36;;;;:::i;:::-;27398:14;:53;;;;27279:188;27488:16;27498:5;27488:9;:16::i;:::-;27483:1335;;27529:20;;;;;;;;;;;:66;;;;;27573:22;;27553:16;;:42;;27529:66;:96;;;;;27624:1;27599:22;;:26;27529:96;27525:448;;;27650:27;27699:22;;27680:16;;:41;:85;;27749:16;;27680:85;;;27724:22;;27680:85;27650:115;;27814:1;27792:19;:23;:74;;;;;27842:24;27860:4;27842:9;:24::i;:::-;27819:19;:47;;27792:74;27788:166;;;27895:35;27910:19;27895:14;:35::i;:::-;27788:166;27525:448;;27997:11;;;;;;;;;;;:46;;;;;28030:13;;28012:14;;:31;;27997:46;:67;;;;;28063:1;28047:13;;:17;27997:67;27993:359;;;28089:18;28127:13;;28110:14;;:30;:63;;28159:14;;28110:63;;;28143:13;;28110:63;28089:84;;28213:1;28200:10;:14;:56;;;;;28232:24;28250:4;28232:9;:24::i;:::-;28218:10;:38;;28200:56;28196:137;;;28285:24;28298:10;28285:12;:24::i;:::-;28196:137;27993:359;;28372:15;28390:21;28372:39;;28434:14;;;;;;;;;;;:47;;;;;28463:18;;28452:7;:29;;28434:47;:73;;;;;28506:1;28485:18;;:22;28434:73;:108;;;;;28522:20;;28511:7;:31;;28434:108;:126;;;;;28546:14;28556:3;28546:9;:14::i;:::-;28434:126;28430:373;;;28585:21;28619:16;;28609:7;:26;:55;;28657:7;28609:55;;;28638:16;;28609:55;28585:79;;28707:1;28691:13;:17;28687:97;;;28737:23;28746:13;28737:8;:23::i;:::-;28687:97;28430:373;;27483:1335;;28853:81;28917:16;28853:59;28893:18;28853:35;28874:13;28853:16;:20;;:35;;;;:::i;:::-;:39;;:59;;;;:::i;:::-;:63;;:81;;;;:::i;:::-;28834:100;;25952:2994;28958:45;28974:5;28981:3;28986:16;28958:15;:45::i;:::-;25131:3880;;;;;;;:::o;8927:136::-;8985:7;9012:43;9016:1;9019;9012:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;9005:50;;8927:136;;;;:::o;23867:175::-;23930:45;23948:11;23969:4;23930:17;:45::i;:::-;24003:31;24022:11;24003:14;;:18;;:31;;;;:::i;:::-;23986:14;:48;;;;23867:175;:::o;6578:135::-;6662:5;6643:7;:16;6651:7;6643:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6697:7;6683:22;;;;;;;;;;;;6578:135;:::o;24050:367::-;24146:1;24131:17;;:3;:17;;;;24123:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24213:1;24203:7;:11;24195:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24280:24;24296:7;24280:11;;:15;;:24;;;;:::i;:::-;24266:11;:38;;;;24331:26;24349:7;24331:8;:13;24340:3;24331:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;24315:8;:13;24324:3;24315:13;;;;;;;;;;;;;;;:42;;;;24396:3;24375:34;;24392:1;24375:34;;;24401:7;24375:34;;;;;;;;;;;;;;;;;;24050:367;;:::o;24425:358::-;24525:1;24508:19;;:5;:19;;;;24500:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24594:1;24584:7;:11;24576:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24672:7;24653:8;:15;24662:5;24653:15;;;;;;;;;;;;;;;;:26;;24645:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24731:44;24747:5;24754:11;;;;;;;;;;;24767:7;24731:15;:44::i;:::-;24425:358;;:::o;23538:102::-;23593:39;23611:7;23620:11;;;;;;;;;;;23593:17;:39::i;:::-;23538:102;:::o;7401:147::-;7493:5;7470:9;:20;7480:9;7470:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;7530:9;7514:26;;;;;;;;;;;;7401:147;:::o;9817:471::-;9875:7;10125:1;10120;:6;10116:47;;;10150:1;10143:8;;;;10116:47;10175:9;10191:1;10187;:5;10175:17;;10220:1;10215;10211;:5;;;;;;:10;10203:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10279:1;10272:8;;;9817:471;;;;;:::o;10764:132::-;10822:7;10849:39;10853:1;10856;10849:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;10842:46;;10764:132;;;;:::o;29019:250::-;29135:28;29155:7;29135:8;:15;29144:5;29135:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;29117:8;:15;29126:5;29117:15;;;;;;;;;;;;;;;:46;;;;29190:26;29208:7;29190:8;:13;29199:3;29190:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;29174:8;:13;29183:3;29174:13;;;;;;;;;;;;;;;:42;;;;29248:3;29232:29;;29241:5;29232:29;;;29253:7;29232:29;;;;;;;;;;;;;;;;;;29019:250;;;:::o;23648:211::-;23722:57;23740:20;23762:16;;;;;;;;;;;23722:17;:57::i;:::-;23809:42;23830:20;23809:16;;:20;;:42;;;;:::i;:::-;23790:16;:61;;;;23648:211;:::o;9366:192::-;9452:7;9485:1;9480;:6;;9488:12;9472:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9512:9;9528:1;9524;:5;9512:17;;9549:1;9542:8;;;9366:192;;;;;:::o;29277:648::-;15397:4;15388:6;;:13;;;;;;;;;;;;;;;;;;29438:21:::1;29476:1;29462:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29438:40;;29507:4;29489;29494:1;29489:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;29533:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;29523:4;29528:1;29523:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;29559:54;29576:4;29591:6;;;;;;;;;;;29600:12;29559:8;:54::i;:::-;29650:6;;;;;;;;;;;:57;;;29722:12;29749:1;29793:4;29812:10;29837:15;29650:213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;29881:36;29898:12;29912:4;29881:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15412:1;15433:5:::0;15424:6;;:14;;;;;;;;;;;;;;;;;;29277:648;;:::o;29933:588::-;15397:4;15388:6;;:13;;;;;;;;;;;;;;;;;;30088:21:::1;30126:1;30112:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30088:40;;30149:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;30139:4;30144:1;30139:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;30191:4;30173;30178:1;30173:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;30235:6;;;;;;;;;;;:57;;;30301:6;30323:1;30370:4;30389:10;30430:24;30450:3;30430:15;:19;;:24;;;;:::i;:::-;30235:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;30483:30;30500:6;30508:4;30483:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15412:1;15433:5:::0;15424:6;;:14;;;;;;;;;;;;;;;;;;29933:588;;:::o;11392:278::-;11478:7;11510:1;11506;:5;11513:12;11498:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11537:9;11553:1;11549;:5;;;;;;11537:17;;11661:1;11654:8;;;11392:278;;;;;:::o

Swarm Source

ipfs://05ea0b2d3ab96efa1b5055e818b00096afa7b1c7c1306933671073b051c1f799
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.