Contract 0x1c2425f50a1e98d5631b223e56760d21bc840c53

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x37824d60a8381a7b68d3c1d3232a0534af5751d47e37efc31a3505f651e04e4e94477372021-07-24 21:37:4426 mins ago0x0c351942e7a4230e19fb56ba5a951e2f31c6138b IN  World Stream Finance: $tream Token0 BNB0.00022274
0x20c3201e8b72e63a2a5869a3ca10bd1f56fd03bc7d1c3e9cf35a9454e62ddef594474752021-07-24 21:24:3839 mins ago0xd85b538e20138bdfb4409b85d44d9b2b0e6ddc75 IN  World Stream Finance: $tream Token0 BNB0.00022274
0xf8c8d0bcb690def8965e4e5e142a2dea0ba833702a043422114cdf4da602ef8594473422021-07-24 21:17:5946 mins ago0x5bcfe5a295a432d151f3f021d2cdd3ef33a071a9 IN  World Stream Finance: $tream Token0 BNB0.00022274
0x53aa62564c5dacd06608ab80a086928733ab073c322e02e18736d6ee55e396fc94468092021-07-24 20:51:201 hr 12 mins ago0x9733c93cfe463ad28ad4c86d02429cfb73ec6f66 IN  World Stream Finance: $tream Token0 BNB0.00022274
0x122a1ee24d4bcacb2d8747977672bfe32629b4e72e474b8616feddf533f316f894462022021-07-24 20:20:591 hr 43 mins ago0xd32620bef6cee3b0b029c990561fe7201a61a6bd IN  World Stream Finance: $tream Token0 BNB0.00022274
0x0d3237b28a5137d88d35f8dce0504f048f16f67f35044ba883eb5e0ff56ca2e594452512021-07-24 19:33:262 hrs 30 mins ago0x0192a1ea09013c623af6c130549399e92aabbb3e IN  World Stream Finance: $tream Token0 BNB0.00022274
0x639fa3d71d694aad873596492b6a5a7f66fcf046e0de5c33eda63e300b1d305e94451872021-07-24 19:30:142 hrs 34 mins ago0x10c529ca56e588f18b24fa69808e671e235e3763 IN  World Stream Finance: $tream Token0 BNB0.00022274
0x35c8ad24d32dccbdb9463c2f3657994a81c6829470f6cd49fa91a5cd126ca79794451282021-07-24 19:27:172 hrs 37 mins ago0x10c529ca56e588f18b24fa69808e671e235e3763 IN  World Stream Finance: $tream Token0 BNB0.00022274
0xe040b4ae71c0293e7f684e7d48f083faac976c1c510c99d109b7d64683c2373094448652021-07-24 19:14:082 hrs 50 mins ago0xa41e1bbbfa1e77eb5547ad85cf2555af43505568 IN  World Stream Finance: $tream Token0 BNB0.00022274
0x816bdc80a6b3d726625f4e7c9e33592e5b4a726c31ceb14a51c4a84cd70e56b294448012021-07-24 19:10:562 hrs 53 mins ago0xca01c8a4cd58def2dd176ee303e41440b894ed87 IN  World Stream Finance: $tream Token0 BNB0.0005
0x51cd6b789554bc0a4b4427f90c309e73e1c09c0fc10a2ad266790320cae9dace94432642021-07-24 17:53:384 hrs 10 mins ago0xcfca23e9cb4ce06eb8cb7268f46c592a84cb7ccb IN  World Stream Finance: $tream Token0 BNB0.00051608
0xc8ff9ec954adc97ff6df36ae61ddc506b2d5e7e72a97b06cca08c341dbf4b76894428232021-07-24 17:31:354 hrs 32 mins ago0xf377b668aba8cf0b229e9da2b3783daa67036e13 IN  World Stream Finance: $tream Token0 BNB0.00022274
0xd31c07ebd21dd4f42fc337528e6840bb4e27eebcab0ffeec26d1f36277baf71394426732021-07-24 17:24:054 hrs 40 mins ago0xdee7472e3e90f459de3ca9565629f282115d23c5 IN  World Stream Finance: $tream Token0 BNB0.00022274
0x2ddc9543a6db651e28801f38ce073f0a4ca3aaecf435896e5d75e47344dde9be94425592021-07-24 17:18:234 hrs 45 mins ago0x0d5e47176c96db366e5cc27d1379715fbe7e72a1 IN  World Stream Finance: $tream Token0 BNB0.00022274
0x9c2a42b4b1601637cd11cc31ca2fcb8fef87c06c1701b7be107ded2ce1277ab594425282021-07-24 17:16:504 hrs 47 mins ago0xa7ef6e10c2b11d9ca4449287ee9a637f26945983 IN  World Stream Finance: $tream Token0 BNB0.00022274
0xa5a983cbfb223450a851ddf7ce39203f3ed0699a344bfa3eef93d6d6b21ea00994423202021-07-24 17:05:554 hrs 58 mins ago0x7cdf8d00481346fa61617b0b3578baf9cebb6f75 IN  World Stream Finance: $tream Token0 BNB0.00022274
0xd987a248b77132da51c2aed043ba463c39c28c99f25d30a003ad88a2f4fce09694421352021-07-24 16:56:255 hrs 7 mins ago0xccf33c0370fd5f702fe2162ac6e54ddaae150d10 IN  World Stream Finance: $tream Token0 BNB0.00022274
0x438fc9b58397833259e708137667a1df15244d798e2c91ab64a68c03f3cc0a4994419982021-07-24 16:49:345 hrs 14 mins ago0x0f1a534844e9e60afa7a2f01565bf2331d882bdd IN  World Stream Finance: $tream Token0 BNB0.00022274
0xc61109117c6333b062064361aeeed527cf1c80dd3088cc8f89aa804833cd54d394414372021-07-24 16:20:035 hrs 44 mins ago0xcfca23e9cb4ce06eb8cb7268f46c592a84cb7ccb IN  World Stream Finance: $tream Token0 BNB0.00022274
0x26d1e628e0381050729186273c801a60266f34252abba53bb38c0e1b7f70d84194412352021-07-24 16:09:475 hrs 54 mins ago0x06235fda00c57120e515bc9a26a22d5a0ef2cfdf IN  World Stream Finance: $tream Token0 BNB0.00022274
0xb36145613aa6032f917e9243814924bb634e1c8d219af8c6204db5bf5639f36b94411902021-07-24 16:07:325 hrs 56 mins ago0x481811ab8b33fed58de1db98d44ee1f5b11aa7c0 IN  World Stream Finance: $tream Token0 BNB0.00022274
0x6831ffe6cb3e40eb054b47cba1fe8c3cffd5eb894b8471595a93f4c07e7286aa94411272021-07-24 16:04:235 hrs 59 mins ago0x67dd5238e20e437b06d879a04c96722c22e2f87b IN  World Stream Finance: $tream Token0 BNB0.00022274
0x9c774ac63af88cc71948b82d7ccf30f332ca841dabadaeaac515d24b627cbb5594410892021-07-24 16:02:296 hrs 1 min ago0x2d9dcf64bc6af70c265b2a4c9051b243f8d4180f IN  World Stream Finance: $tream Token0 BNB0.00022274
0xcdfd1406d4315dbf915466bd907b601bc5e31870912b749e7f6893c151312fba94408152021-07-24 15:48:456 hrs 15 mins ago0x724aa94d3397535e04388ab40b8dc713ea2b4243 IN  World Stream Finance: $tream Token0 BNB0.00022274
0xfff31b8ea27fb0be97919985b2b9be84e6653e7b2d360a03053c980ea5e31b0694406112021-07-24 15:38:226 hrs 25 mins ago0xe41b074ed7345c850807fc7be2f02d0a59f0d5df IN  World Stream Finance: $tream Token0 BNB0.00022274
[ Download CSV Export 

OVERVIEW

$tream is used to contribute to the development of the community of streamers, to be a way to buy game items with discounts and a platform to bet and follow e-sports championships by multiplying their tokens.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x70c0a05d3060c61fe3fb0e2e39668dd068094bab0d8661781c702d84a2edfbbe94394322021-07-24 14:36:397 hrs 27 mins ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.006476622406130363 BNB
0x70c0a05d3060c61fe3fb0e2e39668dd068094bab0d8661781c702d84a2edfbbe94394322021-07-24 14:36:397 hrs 27 mins ago World Stream Finance: $tream Token PancakeSwap: Router v21.625383967371242443 BNB
0x70c0a05d3060c61fe3fb0e2e39668dd068094bab0d8661781c702d84a2edfbbe94394322021-07-24 14:36:397 hrs 27 mins ago PancakeSwap: Router v2 World Stream Finance: $tream Token1.625383967371242443 BNB
0x87a54a83b30d904ad8db93edf2c9805c59a28d61d234b303ec22bff5d896b57594104892021-07-23 14:19:061 day 7 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.006648968859418785 BNB
0x87a54a83b30d904ad8db93edf2c9805c59a28d61d234b303ec22bff5d896b57594104892021-07-23 14:19:061 day 7 hrs ago World Stream Finance: $tream Token PancakeSwap: Router v21.638603389699155983 BNB
0x87a54a83b30d904ad8db93edf2c9805c59a28d61d234b303ec22bff5d896b57594104892021-07-23 14:19:061 day 7 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token1.638603389699155983 BNB
0x9714dfda378af4cc0d6cde89a41834d256510f42dc22025e55cf6d30b1b3740694038902021-07-23 8:46:081 day 13 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.006839206102159779 BNB
0x9714dfda378af4cc0d6cde89a41834d256510f42dc22025e55cf6d30b1b3740694038902021-07-23 8:46:081 day 13 hrs ago World Stream Finance: $tream Token PancakeSwap: Router v21.653763599515746171 BNB
0x9714dfda378af4cc0d6cde89a41834d256510f42dc22025e55cf6d30b1b3740694038902021-07-23 8:46:081 day 13 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token1.653763599515746171 BNB
0xec9c61009aaa3b517082003063d4aca4defdd83f938a05cd3d9a4e99c9fb5c9193982902021-07-23 4:06:031 day 17 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.010165551562034758 BNB
0xec9c61009aaa3b517082003063d4aca4defdd83f938a05cd3d9a4e99c9fb5c9193982902021-07-23 4:06:031 day 17 hrs ago World Stream Finance: $tream Token PancakeSwap: Router v22.092622668071901918 BNB
0xec9c61009aaa3b517082003063d4aca4defdd83f938a05cd3d9a4e99c9fb5c9193982902021-07-23 4:06:031 day 17 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token2.092622668071901918 BNB
0xdee3aa117bd99c61146522f3b3dfc3752c1b5d98ba3593ff893e3452684a332f93930952021-07-22 23:46:151 day 22 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.013594688605315329 BNB
0xdee3aa117bd99c61146522f3b3dfc3752c1b5d98ba3593ff893e3452684a332f93930952021-07-22 23:46:151 day 22 hrs ago World Stream Finance: $tream Token PancakeSwap: Router v22.454816467405732953 BNB
0xdee3aa117bd99c61146522f3b3dfc3752c1b5d98ba3593ff893e3452684a332f93930952021-07-22 23:46:151 day 22 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token2.454816467405732953 BNB
0x496e4b9d0da67e8be6a59465836e3127632fd96c5040d95329c3c5028924c5cf93891492021-07-22 20:28:322 days 1 hr ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.019167042193973161 BNB
0x496e4b9d0da67e8be6a59465836e3127632fd96c5040d95329c3c5028924c5cf93891492021-07-22 20:28:322 days 1 hr ago World Stream Finance: $tream Token PancakeSwap: Router v22.978412399584000342 BNB
0x496e4b9d0da67e8be6a59465836e3127632fd96c5040d95329c3c5028924c5cf93891492021-07-22 20:28:322 days 1 hr ago PancakeSwap: Router v2 World Stream Finance: $tream Token2.978412399584000342 BNB
0xbe7e2435e53df3273c7945603b60a8e5d978a958bf49758301499359b4586d8493853142021-07-22 17:16:472 days 4 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.024666686934880051 BNB
0xbe7e2435e53df3273c7945603b60a8e5d978a958bf49758301499359b4586d8493853142021-07-22 17:16:472 days 4 hrs ago World Stream Finance: $tream Token PancakeSwap: Router v23.431872161664526418 BNB
0xbe7e2435e53df3273c7945603b60a8e5d978a958bf49758301499359b4586d8493853142021-07-22 17:16:472 days 4 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token3.431872161664526418 BNB
0x8476d4c4832b8c8dca2b2f8371ae82887371705c5a6d8d91c4615dfe53ecfaa993837162021-07-22 15:56:522 days 6 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.018505645744643044 BNB
0x8476d4c4832b8c8dca2b2f8371ae82887371705c5a6d8d91c4615dfe53ecfaa993837162021-07-22 15:56:522 days 6 hrs ago World Stream Finance: $tream Token PancakeSwap: Router v22.869760308361737793 BNB
0x8476d4c4832b8c8dca2b2f8371ae82887371705c5a6d8d91c4615dfe53ecfaa993837162021-07-22 15:56:522 days 6 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token2.869760308361737793 BNB
0xe70ca8d4f0801996bb786c3cda84a9a18131fc360adea9fc54264e1b65c1dff793761902021-07-22 9:40:282 days 12 hrs ago PancakeSwap: Router v2 World Stream Finance: $tream Token0.015911522518475129 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
worldstreamfinance

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-05-31
*/

/**
   https://t.me/WorldStreamFinance
   www.worldstreamfinance.com
   3% de taxa dos trade vai para a pool de liquidez
   2% da taxa dos trade vai para os holders
   
  
*/

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this; 
        return msg.data;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = now + time;
        emit OwnershipTransferred(_owner, address(0));
    }
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(now > _lockTime , "Contract is locked until 7 days");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

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

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

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

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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


contract worldstreamfinance is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private _name = "World Stream Finance";
    string private _symbol = "$tream";
    uint8 private _decimals = 9;
    uint256 public _taxFee = 5;
    uint256 private _previousTaxFee = _taxFee;
    uint256 public _liquidityFee = 5;
    uint256 private _previousLiquidityFee = _liquidityFee;
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    uint256 public _maxTxAmount = 7000000000000 * 10**9;
    uint256 private numTokensSellToAddToLiquidity = 700000000000 * 10**9;
    
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () public {
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

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

    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
        function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
        function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
    function setTaxFeePercent(uint256 taxFee) external onlyOwner() {
        _taxFee = taxFee;
    }
    
    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() {
        _liquidityFee = liquidityFee;
    }
   
    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(
            10**2
        );
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }
    receive() external payable {}

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 tLiquidity = calculateLiquidityFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);
        return (tTransferAmount, tFee, tLiquidity);
    }

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

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

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }
    
    function calculateTaxFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_taxFee).div(
            10**2
        );
    }
    function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_liquidityFee).div(
            10**2
        );
    }
    function removeAllFee() private {
        if(_taxFee == 0 && _liquidityFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousLiquidityFee = _liquidityFee;
        
        _taxFee = 0;
        _liquidityFee = 0;
    }
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _liquidityFee = _previousLiquidityFee;
    }
    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(from != owner() && to != owner())
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        uint256 contractTokenBalance = balanceOf(address(this));
        
        if(contractTokenBalance >= _maxTxAmount)
        {
            contractTokenBalance = _maxTxAmount;
        }
        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            contractTokenBalance = numTokensSellToAddToLiquidity;
            swapAndLiquify(contractTokenBalance);
        }
        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered
        uint256 newBalance = address(this).balance.sub(initialBalance);
        addLiquidity(otherHalf, newBalance);
        
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }
    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
        
        if(!takeFee)
            restoreAllFee();
    }

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

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

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

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","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":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405269d3c21bcecceda1000000600955600954600019816200002057fe5b0660001903600a556040518060400160405280601481526020017f576f726c642053747265616d2046696e616e6365000000000000000000000000815250600c908051906020019062000075929190620005fe565b506040518060400160405280600681526020017f24747265616d0000000000000000000000000000000000000000000000000000815250600d9080519060200190620000c3929190620005fe565b506009600e60006101000a81548160ff021916908360ff1602179055506005600f55600f5460105560056011556011546012556001601360016101000a81548160ff02191690831515021790555069017b7883c069166000006014556825f273933db57000006015553480156200013957600080fd5b5060006200014c620005cd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600a546003600062000201620005cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060007310ed43c718714eb63d5aa57b78b54704e256024e90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029f57600080fd5b505afa158015620002b4573d6000803e3d6000fd5b505050506040513d6020811015620002cb57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033f57600080fd5b505afa15801562000354573d6000803e3d6000fd5b505050506040513d60208110156200036b57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620003e657600080fd5b505af1158015620003fb573d6000803e3d6000fd5b505050506040513d60208110156200041257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050600160066000620004a6620005d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200055f620005cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040518082815260200191505060405180910390a350620006a4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200064157805160ff191683800117855562000672565b8280016001018555821562000672579182015b828111156200067157825182559160200191906001019062000654565b5b50905062000681919062000685565b5090565b5b80821115620006a057600081600090555060010162000686565b5090565b60805160601c60a05160601c614e2d620006ec600039806118365280612f9e525080610ee65280613c8a5280613d765280613d9d5280613ea85280613ecf5250614e2d6000f3fe60806040526004361061021e5760003560e01c80635342acb411610123578063a457c2d7116100ab578063d543dbeb1161006f578063d543dbeb14610bab578063dd46706414610be6578063dd62ed3e14610c21578063ea2f0b3714610ca6578063f2fde38b14610cf757610225565b8063a457c2d714610a4a578063a69df4b514610abb578063a9059cbb14610ad2578063b6c5232414610b43578063c49b9a8014610b6e57610225565b80637d1db4a5116100f25780637d1db4a5146108ac57806388f82020146108d75780638da5cb5b1461093e5780638ee88c531461097f57806395d89b41146109ba57610225565b80635342acb41461079e5780636bc87c3a1461080557806370a0823114610830578063715018a61461089557610225565b80633685d419116101a6578063437823ec11610175578063437823ec146106335780634549b0391461068457806349bd5a5e146106df5780634a74bb021461072057806352390c021461074d57610225565b80633685d4191461050b578063395093511461055c5780633b124fe7146105cd5780633bd5d173146105f857610225565b80631694505e116101ed5780631694505e1461039157806318160ddd146103d257806323b872dd146103fd5780632d8381191461048e578063313ce567146104dd57610225565b8063061c82d01461022a57806306fdde0314610265578063095ea7b3146102f557806313114a9d1461036657610225565b3661022557005b600080fd5b34801561023657600080fd5b506102636004803603602081101561024d57600080fd5b8101908080359060200190929190505050610d48565b005b34801561027157600080fd5b5061027a610e1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ba57808201518184015260208101905061029f565b50505050905090810190601f1680156102e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030157600080fd5b5061034e6004803603604081101561031857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ebc565b60405180821515815260200191505060405180910390f35b34801561037257600080fd5b5061037b610eda565b6040518082815260200191505060405180910390f35b34801561039d57600080fd5b506103a6610ee4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103de57600080fd5b506103e7610f08565b6040518082815260200191505060405180910390f35b34801561040957600080fd5b506104766004803603606081101561042057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f12565b60405180821515815260200191505060405180910390f35b34801561049a57600080fd5b506104c7600480360360208110156104b157600080fd5b8101908080359060200190929190505050610feb565b6040518082815260200191505060405180910390f35b3480156104e957600080fd5b506104f261106f565b604051808260ff16815260200191505060405180910390f35b34801561051757600080fd5b5061055a6004803603602081101561052e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611086565b005b34801561056857600080fd5b506105b56004803603604081101561057f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611410565b60405180821515815260200191505060405180910390f35b3480156105d957600080fd5b506105e26114c3565b6040518082815260200191505060405180910390f35b34801561060457600080fd5b506106316004803603602081101561061b57600080fd5b81019080803590602001909291905050506114c9565b005b34801561063f57600080fd5b506106826004803603602081101561065657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165a565b005b34801561069057600080fd5b506106c9600480360360408110156106a757600080fd5b810190808035906020019092919080351515906020019092919050505061177d565b6040518082815260200191505060405180910390f35b3480156106eb57600080fd5b506106f4611834565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072c57600080fd5b50610735611858565b60405180821515815260200191505060405180910390f35b34801561075957600080fd5b5061079c6004803603602081101561077057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061186b565b005b3480156107aa57600080fd5b506107ed600480360360208110156107c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b85565b60405180821515815260200191505060405180910390f35b34801561081157600080fd5b5061081a611bdb565b6040518082815260200191505060405180910390f35b34801561083c57600080fd5b5061087f6004803603602081101561085357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611be1565b6040518082815260200191505060405180910390f35b3480156108a157600080fd5b506108aa611ccc565b005b3480156108b857600080fd5b506108c1611e52565b6040518082815260200191505060405180910390f35b3480156108e357600080fd5b50610926600480360360208110156108fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e58565b60405180821515815260200191505060405180910390f35b34801561094a57600080fd5b50610953611eae565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561098b57600080fd5b506109b8600480360360208110156109a257600080fd5b8101908080359060200190929190505050611ed7565b005b3480156109c657600080fd5b506109cf611fa9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a0f5780820151818401526020810190506109f4565b50505050905090810190601f168015610a3c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a5657600080fd5b50610aa360048036036040811015610a6d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061204b565b60405180821515815260200191505060405180910390f35b348015610ac757600080fd5b50610ad0612118565b005b348015610ade57600080fd5b50610b2b60048036036040811015610af557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612335565b60405180821515815260200191505060405180910390f35b348015610b4f57600080fd5b50610b58612353565b6040518082815260200191505060405180910390f35b348015610b7a57600080fd5b50610ba960048036036020811015610b9157600080fd5b8101908080351515906020019092919050505061235d565b005b348015610bb757600080fd5b50610be460048036036020811015610bce57600080fd5b810190808035906020019092919050505061247b565b005b348015610bf257600080fd5b50610c1f60048036036020811015610c0957600080fd5b8101908080359060200190929190505050612574565b005b348015610c2d57600080fd5b50610c9060048036036040811015610c4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612765565b6040518082815260200191505060405180910390f35b348015610cb257600080fd5b50610cf560048036036020811015610cc957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127ec565b005b348015610d0357600080fd5b50610d4660048036036020811015610d1a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061290f565b005b610d50612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f8190555050565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610eb25780601f10610e8757610100808354040283529160200191610eb2565b820191906000526020600020905b815481529060010190602001808311610e9557829003601f168201915b5050505050905090565b6000610ed0610ec9612b1a565b8484612b22565b6001905092915050565b6000600b54905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600954905090565b6000610f1f848484612d19565b610fe084610f2b612b1a565b610fdb85604051806060016040528060288152602001614cea60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f91612b1a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130de9092919063ffffffff16565b612b22565b600190509392505050565b6000600a54821115611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614c2f602a913960400191505060405180910390fd5b600061105261319e565b905061106781846131c990919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b61108e612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b60088054905081101561140c578173ffffffffffffffffffffffffffffffffffffffff166008828154811061124157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113ff5760086001600880549050038154811061129d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600882815481106112d557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060088054806113c557fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561140c565b8080600101915050611210565b5050565b60006114b961141d612b1a565b846114b4856005600061142e612b1a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b612b22565b6001905092915050565b600f5481565b60006114d3612b1a565b9050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614d84602c913960400191505060405180910390fd5b60006115838361329b565b505050505090506115dc81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132f790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061163481600a546132f790919063ffffffff16565b600a8190555061164f83600b5461321390919063ffffffff16565b600b81905550505050565b611662612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611722576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009548311156117f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b816118175760006118078461329b565b505050505090508091505061182e565b60006118228461329b565b50505050915050809150505b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601360019054906101000a900460ff1681565b611873612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611933576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611ac757611a83600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610feb565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c7c57600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611cc7565b611cc4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610feb565b90505b919050565b611cd4612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60145481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611edf612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060118190555050565b6060600d8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120415780601f1061201657610100808354040283529160200191612041565b820191906000526020600020905b81548152906001019060200180831161202457829003601f168201915b5050505050905090565b600061210e612058612b1a565b8461210985604051806060016040528060258152602001614dd36025913960056000612082612b1a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130de9092919063ffffffff16565b612b22565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614db06023913960400191505060405180910390fd5b6002544211612235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000612349612342612b1a565b8484612d19565b6001905092915050565b6000600254905090565b612365612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612425576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601360016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b612483612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612543576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61256b606461255d8360095461334190919063ffffffff16565b6131c990919063ffffffff16565b60148190555050565b61257c612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6127f4612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612917612b1a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614c596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614d606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614c7f6022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614d3b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614c0c6023913960400191505060405180910390fd5b60008111612e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d126029913960400191505060405180910390fd5b612e86611eae565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ef45750612ec4611eae565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f5557601454811115612f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614ca16028913960400191505060405180910390fd5b5b6000612f6030611be1565b90506014548110612f715760145490505b60006015548210159050808015612f955750601360009054906101000a900460ff16155b8015612fed57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156130055750601360019054906101000a900460ff165b15613019576015549150613018826133c7565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130c05750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130ca57600090505b6130d6868686846134a9565b505050505050565b600083831115829061318b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613150578082015181840152602081019050613135565b50505050905090810190601f16801561317d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006131ab6137ba565b915091506131c281836131c990919063ffffffff16565b9250505090565b600061320b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a4b565b905092915050565b600080828401905083811015613291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006132b28a613b11565b92509250925060008060006132d08d86866132cb61319e565b613b6b565b9250925092508282828888889b509b509b509b509b509b5050505050505091939550919395565b600061333983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130de565b905092915050565b60008083141561335457600090506133c1565b600082840290508284828161336557fe5b04146133bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614cc96021913960400191505060405180910390fd5b809150505b92915050565b6001601360006101000a81548160ff02191690831515021790555060006133f86002836131c990919063ffffffff16565b9050600061340f82846132f790919063ffffffff16565b9050600047905061341f83613bf4565b600061343482476132f790919063ffffffff16565b90506134408382613ea2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405180848152602001838152602001828152602001935050505060405180910390a1505050506000601360006101000a81548160ff02191690831515021790555050565b806134b7576134b6613ff3565b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561355a5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561356f5761356a848484614036565b6137a6565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156136125750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561362757613622848484614296565b6137a5565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156136cb5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156136e0576136db8484846144f6565b6137a4565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156137825750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613797576137928484846146c1565b6137a3565b6137a28484846144f6565b5b5b5b5b806137b4576137b36149b6565b5b50505050565b6000806000600a5490506000600954905060005b600880549050811015613a0e578260036000600884815481106137ed57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806138d4575081600460006008848154811061386c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156138eb57600a5460095494509450505050613a47565b61397460036000600884815481106138ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846132f790919063ffffffff16565b92506139ff600460006008848154811061398a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836132f790919063ffffffff16565b915080806001019150506137ce565b50613a26600954600a546131c990919063ffffffff16565b821015613a3e57600a54600954935093505050613a47565b81819350935050505b9091565b60008083118290613af7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613abc578082015181840152602081019050613aa1565b50505050905090810190601f168015613ae95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b0357fe5b049050809150509392505050565b600080600080613b20856149ca565b90506000613b2d866149fb565b90506000613b5682613b48858a6132f790919063ffffffff16565b6132f790919063ffffffff16565b90508083839550955095505050509193909250565b600080600080613b84858961334190919063ffffffff16565b90506000613b9b868961334190919063ffffffff16565b90506000613bb2878961334190919063ffffffff16565b90506000613bdb82613bcd85876132f790919063ffffffff16565b6132f790919063ffffffff16565b9050838184965096509650505050509450945094915050565b6060600267ffffffffffffffff81118015613c0e57600080fd5b50604051908082528060200260200182016040528015613c3d5781602001602082028036833780820191505090505b5090503081600081518110613c4e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613cee57600080fd5b505afa158015613d02573d6000803e3d6000fd5b505050506040513d6020811015613d1857600080fd5b810190808051906020019092919050505081600181518110613d3657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613d9b307f000000000000000000000000000000000000000000000000000000000000000084612b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613e5d578082015181840152602081019050613e42565b505050509050019650505050505050600060405180830381600087803b158015613e8657600080fd5b505af1158015613e9a573d6000803e3d6000fd5b505050505050565b613ecd307f000000000000000000000000000000000000000000000000000000000000000084612b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613f17611eae565b426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015613f9c57600080fd5b505af1158015613fb0573d6000803e3d6000fd5b50505050506040513d6060811015613fc757600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b6000600f5414801561400757506000601154145b1561401157614034565b600f546010819055506011546012819055506000600f8190555060006011819055505b565b6000806000806000806140488761329b565b9550955095509550955095506140a687600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132f790919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061413b86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132f790919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506141d085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061421c81614a2c565b6142268483614bd1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b6000806000806000806142a88761329b565b95509550955095509550955061430686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132f790919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061439b83600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061443085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061447c81614a2c565b6144868483614bd1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b6000806000806000806145088761329b565b95509550955095509550955061456686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132f790919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145fb85600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061464781614a2c565b6146518483614bd1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b6000806000806000806146d38761329b565b95509550955095509550955061473187600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132f790919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506147c686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132f790919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061485b83600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506148f085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061493c81614a2c565b6149468483614bd1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b601054600f81905550601254601181905550565b60006149f460646149e6600f548561334190919063ffffffff16565b6131c990919063ffffffff16565b9050919050565b6000614a256064614a176011548561334190919063ffffffff16565b6131c990919063ffffffff16565b9050919050565b6000614a3661319e565b90506000614a4d828461334190919063ffffffff16565b9050614aa181600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614bcc57614b8883600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321390919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b614be682600a546132f790919063ffffffff16565b600a81905550614c0181600b5461321390919063ffffffff16565b600b81905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d5abd1abb4eb958b91672a926cc48df556fa2f85f3dd25ecd828b1d21d2002a464736f6c634300060c0033

Deployed ByteCode Sourcemap

14463:16623:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21639:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16688:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17600:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18721:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15415:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16965:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17769:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19645:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16874:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20247:479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18090:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15235:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18816:377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21394:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19201:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15473:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15552:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19906:333;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25441:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15316:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17068:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5501:148;;;;;;;;;;;;;:::i;:::-;;15605:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18593:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5291:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21749:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16779:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18316:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6222:293;;;;;;;;;;;;;:::i;:::-;;17274:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5907:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22052:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21882:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6002:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17449:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21517:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5655:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21639:98;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21723:6:::1;21713:7;:16;;;;21639:98:::0;:::o;16688:83::-;16725:13;16758:5;16751:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16688:83;:::o;17600:161::-;17675:4;17692:39;17701:12;:10;:12::i;:::-;17715:7;17724:6;17692:8;:39::i;:::-;17749:4;17742:11;;17600:161;;;;:::o;18721:87::-;18763:7;18790:10;;18783:17;;18721:87;:::o;15415:51::-;;;:::o;16965:95::-;17018:7;17045;;17038:14;;16965:95;:::o;17769:313::-;17867:4;17884:36;17894:6;17902:9;17913:6;17884:9;:36::i;:::-;17931:121;17940:6;17948:12;:10;:12::i;:::-;17962:89;18000:6;17962:89;;;;;;;;;;;;;;;;;:11;:19;17974:6;17962:19;;;;;;;;;;;;;;;:33;17982:12;:10;:12::i;:::-;17962:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17931:8;:121::i;:::-;18070:4;18063:11;;17769:313;;;;;:::o;19645:253::-;19711:7;19750;;19739;:18;;19731:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19815:19;19838:10;:8;:10::i;:::-;19815:33;;19866:24;19878:11;19866:7;:11;;:24;;;;:::i;:::-;19859:31;;;19645:253;;;:::o;16874:83::-;16915:5;16940:9;;;;;;;;;;;16933:16;;16874:83;:::o;20247:479::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20329:11:::1;:20;20341:7;20329:20;;;;;;;;;;;;;;;;;;;;;;;;;20321:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20397:9;20392:327;20416:9;:16;;;;20412:1;:20;20392:327;;;20474:7;20458:23;;:9;20468:1;20458:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;20454:254;;;20517:9;20546:1;20527:9;:16;;;;:20;20517:31;;;;;;;;;;;;;;;;;;;;;;;;;20502:9;20512:1;20502:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20586:1;20567:7;:16;20575:7;20567:16;;;;;;;;;;;;;;;:20;;;;20629:5;20606:11;:20;20618:7;20606:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20653:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20687:5;;20454:254;20434:3;;;;;;;20392:327;;;;20247:479:::0;:::o;18090:218::-;18178:4;18195:83;18204:12;:10;:12::i;:::-;18218:7;18227:50;18266:10;18227:11;:25;18239:12;:10;:12::i;:::-;18227:25;;;;;;;;;;;;;;;:34;18253:7;18227:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18195:8;:83::i;:::-;18296:4;18289:11;;18090:218;;;;:::o;15235:26::-;;;;:::o;18816:377::-;18868:14;18885:12;:10;:12::i;:::-;18868:29;;18917:11;:19;18929:6;18917:19;;;;;;;;;;;;;;;;;;;;;;;;;18916:20;18908:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18997:15;19021:19;19032:7;19021:10;:19::i;:::-;18996:44;;;;;;;19069:28;19089:7;19069;:15;19077:6;19069:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19051:7;:15;19059:6;19051:15;;;;;;;;;;;;;;;:46;;;;19118:20;19130:7;19118;;:11;;:20;;;;:::i;:::-;19108:7;:30;;;;19162:23;19177:7;19162:10;;:14;;:23;;;;:::i;:::-;19149:10;:36;;;;18816:377;;;:::o;21394:111::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21493:4:::1;21463:18;:27;21482:7;21463:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;21394:111:::0;:::o;19201:436::-;19291:7;19330;;19319;:18;;19311:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19389:17;19384:246;;19424:15;19448:19;19459:7;19448:10;:19::i;:::-;19423:44;;;;;;;19489:7;19482:14;;;;;19384:246;19531:23;19562:19;19573:7;19562:10;:19::i;:::-;19529:52;;;;;;;19603:15;19596:22;;;19201:436;;;;;:::o;15473:38::-;;;:::o;15552:40::-;;;;;;;;;;;;;:::o;19906:333::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19989:11:::1;:20;20001:7;19989:20;;;;;;;;;;;;;;;;;;;;;;;;;19988:21;19980:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20074:1;20055:7;:16;20063:7;20055:16;;;;;;;;;;;;;;;;:20;20052:108;;;20111:37;20131:7;:16;20139:7;20131:16;;;;;;;;;;;;;;;;20111:19;:37::i;:::-;20092:7;:16;20100:7;20092:16;;;;;;;;;;;;;;;:56;;;;20052:108;20193:4;20170:11;:20;20182:7;20170:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;20208:9;20223:7;20208:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19906:333:::0;:::o;25441:123::-;25505:4;25529:18;:27;25548:7;25529:27;;;;;;;;;;;;;;;;;;;;;;;;;25522:34;;25441:123;;;:::o;15316:32::-;;;;:::o;17068:198::-;17134:7;17158:11;:20;17170:7;17158:20;;;;;;;;;;;;;;;;;;;;;;;;;17154:49;;;17187:7;:16;17195:7;17187:16;;;;;;;;;;;;;;;;17180:23;;;;17154:49;17221:37;17241:7;:16;17249:7;17241:16;;;;;;;;;;;;;;;;17221:19;:37::i;:::-;17214:44;;17068:198;;;;:::o;5501:148::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5608:1:::1;5571:40;;5592:6;::::0;::::1;;;;;;;;5571:40;;;;;;;;;;;;5639:1;5622:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5501:148::o:0;15605:51::-;;;;:::o;18593:120::-;18661:4;18685:11;:20;18697:7;18685:20;;;;;;;;;;;;;;;;;;;;;;;;;18678:27;;18593:120;;;:::o;5291:79::-;5329:7;5356:6;;;;;;;;;;;5349:13;;5291:79;:::o;21749:122::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21851:12:::1;21835:13;:28;;;;21749:122:::0;:::o;16779:87::-;16818:13;16851:7;16844:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16779:87;:::o;18316:269::-;18409:4;18426:129;18435:12;:10;:12::i;:::-;18449:7;18458:96;18497:15;18458:96;;;;;;;;;;;;;;;;;:11;:25;18470:12;:10;:12::i;:::-;18458:25;;;;;;;;;;;;;;;:34;18484:7;18458:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18426:8;:129::i;:::-;18573:4;18566:11;;18316:269;;;;:::o;6222:293::-;6292:10;6274:28;;:14;;;;;;;;;;;:28;;;6266:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6367:9;;6361:3;:15;6353:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6458:14;;;;;;;;;;;6429:44;;6450:6;;;;;;;;;;6429:44;;;;;;;;;;;;6493:14;;;;;;;;;;;6484:6;;:23;;;;;;;;;;;;;;;;;;6222:293::o;17274:167::-;17352:4;17369:42;17379:12;:10;:12::i;:::-;17393:9;17404:6;17369:9;:42::i;:::-;17429:4;17422:11;;17274:167;;;;:::o;5907:89::-;5952:7;5979:9;;5972:16;;5907:89;:::o;22052:171::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22153:8:::1;22129:21;;:32;;;;;;;;;;;;;;;;;;22177:38;22206:8;22177:38;;;;;;;;;;;;;;;;;;;;22052:171:::0;:::o;21882:162::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21976:60:::1;22020:5;21976:25;21988:12;21976:7;;:11;;:25;;;;:::i;:::-;:29;;:60;;;;:::i;:::-;21961:12;:75;;;;21882:162:::0;:::o;6002:214::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6083:6:::1;::::0;::::1;;;;;;;;6066:14;;:23;;;;;;;;;;;;;;;;;;6117:1;6100:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6148:4;6142:3;:10;6130:9;:22;;;;6205:1;6168:40;;6189:6;::::0;::::1;;;;;;;;6168:40;;;;;;;;;;;;6002:214:::0;:::o;17449:143::-;17530:7;17557:11;:18;17569:5;17557:18;;;;;;;;;;;;;;;:27;17576:7;17557:27;;;;;;;;;;;;;;;;17550:34;;17449:143;;;;:::o;21517:110::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21614:5:::1;21584:18;:27;21603:7;21584:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;21517:110:::0;:::o;5655:244::-;5426:12;:10;:12::i;:::-;5416:22;;:6;;;;;;;;;;:22;;;5408:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5764:1:::1;5744:22;;:8;:22;;;;5736:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5854:8;5825:38;;5846:6;::::0;::::1;;;;;;;;5825:38;;;;;;;;;;;;5883:8;5874:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5655:244:::0;:::o;2360:106::-;2413:15;2448:10;2441:17;;2360:106;:::o;25570:337::-;25680:1;25663:19;;:5;:19;;;;25655:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25761:1;25742:21;;:7;:21;;;;25734:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25845:6;25815:11;:18;25827:5;25815:18;;;;;;;;;;;;;;;:27;25834:7;25815:27;;;;;;;;;;;;;;;:36;;;;25883:7;25867:32;;25876:5;25867:32;;;25892:6;25867:32;;;;;;;;;;;;;;;;;;25570:337;;;:::o;25915:1259::-;26053:1;26037:18;;:4;:18;;;;26029:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26130:1;26116:16;;:2;:16;;;;26108:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26200:1;26191:6;:10;26183:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26269:7;:5;:7::i;:::-;26261:15;;:4;:15;;;;:32;;;;;26286:7;:5;:7::i;:::-;26280:13;;:2;:13;;;;26261:32;26258:125;;;26326:12;;26316:6;:22;;26308:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26258:125;26394:28;26425:24;26443:4;26425:9;:24::i;:::-;26394:55;;26497:12;;26473:20;:36;26470:112;;26558:12;;26535:35;;26470:112;26592:24;26643:29;;26619:20;:53;;26592:80;;26701:19;:53;;;;;26738:16;;;;;;;;;;;26737:17;26701:53;:91;;;;;26779:13;26771:21;;:4;:21;;;;26701:91;:129;;;;;26809:21;;;;;;;;;;;26701:129;26683:289;;;26880:29;;26857:52;;26924:36;26939:20;26924:14;:36::i;:::-;26683:289;26982:12;26997:4;26982:19;;27015:18;:24;27034:4;27015:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;27043:18;:22;27062:2;27043:22;;;;;;;;;;;;;;;;;;;;;;;;;27015:50;27012:96;;;27091:5;27081:15;;27012:96;27128:38;27143:4;27148:2;27151:6;27158:7;27128:14;:38::i;:::-;25915:1259;;;;;;:::o;1239:190::-;1325:7;1358:1;1353;:6;;1361:12;1345:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1385:9;1401:1;1397;:5;1385:17;;1420:1;1413:8;;;1239:190;;;;;:::o;23621:163::-;23662:7;23683:15;23700;23719:19;:17;:19::i;:::-;23682:56;;;;23756:20;23768:7;23756;:11;;:20;;;;:::i;:::-;23749:27;;;;23621:163;:::o;1687:132::-;1745:7;1772:39;1776:1;1779;1772:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1765:46;;1687:132;;;;:::o;912:179::-;970:7;990:9;1006:1;1002;:5;990:17;;1031:1;1026;:6;;1018:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1082:1;1075:8;;;912:179;;;;:::o;22419:419::-;22478:7;22487;22496;22505;22514;22523;22544:23;22569:12;22583:18;22605:20;22617:7;22605:11;:20::i;:::-;22543:82;;;;;;22637:15;22654:23;22679:12;22695:50;22707:7;22716:4;22722:10;22734;:8;:10::i;:::-;22695:11;:50::i;:::-;22636:109;;;;;;22764:7;22773:15;22790:4;22796:15;22813:4;22819:10;22756:74;;;;;;;;;;;;;;;;;;22419:419;;;;;;;:::o;1097:136::-;1155:7;1182:43;1186:1;1189;1182:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1175:50;;1097:136;;;;:::o;1435:246::-;1493:7;1522:1;1517;:6;1513:47;;;1547:1;1540:8;;;;1513:47;1570:9;1586:1;1582;:5;1570:17;;1615:1;1610;1606;:5;;;;;;:10;1598:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1672:1;1665:8;;;1435:246;;;;;:::o;27182:544::-;16057:4;16038:16;;:23;;;;;;;;;;;;;;;;;;27267:12:::1;27282:27;27307:1;27282:20;:24;;:27;;;;:::i;:::-;27267:42;;27320:17;27340:30;27365:4;27340:20;:24;;:30;;;;:::i;:::-;27320:50;;27381:22;27406:21;27381:46;;27438:22;27455:4;27438:16;:22::i;:::-;27541:18;27562:41;27588:14;27562:21;:25;;:41;;;;:::i;:::-;27541:62;;27614:35;27627:9;27638:10;27614:12;:35::i;:::-;27675:43;27690:4;27696:10;27708:9;27675:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16072:1;;;;16103:5:::0;16084:16;;:24;;;;;;;;;;;;;;;;;;27182:544;:::o;28581:824::-;28692:7;28688:40;;28714:14;:12;:14::i;:::-;28688:40;28743:11;:19;28755:6;28743:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;28767:11;:22;28779:9;28767:22;;;;;;;;;;;;;;;;;;;;;;;;;28766:23;28743:46;28739:597;;;28806:48;28828:6;28836:9;28847:6;28806:21;:48::i;:::-;28739:597;;;28877:11;:19;28889:6;28877:19;;;;;;;;;;;;;;;;;;;;;;;;;28876:20;:46;;;;;28900:11;:22;28912:9;28900:22;;;;;;;;;;;;;;;;;;;;;;;;;28876:46;28872:464;;;28939:46;28959:6;28967:9;28978:6;28939:19;:46::i;:::-;28872:464;;;29008:11;:19;29020:6;29008:19;;;;;;;;;;;;;;;;;;;;;;;;;29007:20;:47;;;;;29032:11;:22;29044:9;29032:22;;;;;;;;;;;;;;;;;;;;;;;;;29031:23;29007:47;29003:333;;;29071:44;29089:6;29097:9;29108:6;29071:17;:44::i;:::-;29003:333;;;29137:11;:19;29149:6;29137:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;29160:11;:22;29172:9;29160:22;;;;;;;;;;;;;;;;;;;;;;;;;29137:45;29133:203;;;29199:48;29221:6;29229:9;29240:6;29199:21;:48::i;:::-;29133:203;;;29280:44;29298:6;29306:9;29317:6;29280:17;:44::i;:::-;29133:203;29003:333;28872:464;28739:597;29360:7;29356:41;;29382:15;:13;:15::i;:::-;29356:41;28581:824;;;;:::o;23792:561::-;23842:7;23851;23871:15;23889:7;;23871:25;;23907:15;23925:7;;23907:25;;23954:9;23949:289;23973:9;:16;;;;23969:1;:20;23949:289;;;24039:7;24015;:21;24023:9;24033:1;24023:12;;;;;;;;;;;;;;;;;;;;;;;;;24015:21;;;;;;;;;;;;;;;;:31;:66;;;;24074:7;24050;:21;24058:9;24068:1;24058:12;;;;;;;;;;;;;;;;;;;;;;;;;24050:21;;;;;;;;;;;;;;;;:31;24015:66;24011:97;;;24091:7;;24100;;24083:25;;;;;;;;;24011:97;24133:34;24145:7;:21;24153:9;24163:1;24153:12;;;;;;;;;;;;;;;;;;;;;;;;;24145:21;;;;;;;;;;;;;;;;24133:7;:11;;:34;;;;:::i;:::-;24123:44;;24192:34;24204:7;:21;24212:9;24222:1;24212:12;;;;;;;;;;;;;;;;;;;;;;;;;24204:21;;;;;;;;;;;;;;;;24192:7;:11;;:34;;;;:::i;:::-;24182:44;;23991:3;;;;;;;23949:289;;;;24262:20;24274:7;;24262;;:11;;:20;;;;:::i;:::-;24252:7;:30;24248:61;;;24292:7;;24301;;24284:25;;;;;;;;24248:61;24328:7;24337;24320:25;;;;;;23792:561;;;:::o;1825:189::-;1911:7;1943:1;1939;:5;1946:12;1931:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1970:9;1986:1;1982;:5;;;;;;1970:17;;2005:1;1998:8;;;1825:189;;;;;:::o;22846:330::-;22906:7;22915;22924;22944:12;22959:24;22975:7;22959:15;:24::i;:::-;22944:39;;22994:18;23015:30;23037:7;23015:21;:30::i;:::-;22994:51;;23056:23;23082:33;23104:10;23082:17;23094:4;23082:7;:11;;:17;;;;:::i;:::-;:21;;:33;;;;:::i;:::-;23056:59;;23134:15;23151:4;23157:10;23126:42;;;;;;;;;22846:330;;;;;:::o;23184:429::-;23299:7;23308;23317;23337:15;23355:24;23367:11;23355:7;:11;;:24;;;;:::i;:::-;23337:42;;23390:12;23405:21;23414:11;23405:4;:8;;:21;;;;:::i;:::-;23390:36;;23437:18;23458:27;23473:11;23458:10;:14;;:27;;;;:::i;:::-;23437:48;;23496:23;23522:33;23544:10;23522:17;23534:4;23522:7;:11;;:17;;;;:::i;:::-;:21;;:33;;;;:::i;:::-;23496:59;;23574:7;23583:15;23600:4;23566:39;;;;;;;;;;23184:429;;;;;;;;:::o;27734:473::-;27800:21;27838:1;27824:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27800:40;;27869:4;27851;27856:1;27851:7;;;;;;;;;;;;;:23;;;;;;;;;;;27895:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27885:4;27890:1;27885:7;;;;;;;;;;;;;:32;;;;;;;;;;;27930:62;27947:4;27962:15;27980:11;27930:8;:62::i;:::-;28003:15;:66;;;28084:11;28110:1;28126:4;28153;28173:15;28003:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27734:473;;:::o;28215:360::-;28296:62;28313:4;28328:15;28346:11;28296:8;:62::i;:::-;28369:15;:31;;;28408:9;28441:4;28461:11;28487:1;28503;28519:7;:5;:7::i;:::-;28541:15;28369:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28215:360;;:::o;25064:240::-;25121:1;25110:7;;:12;:34;;;;;25143:1;25126:13;;:18;25110:34;25107:46;;;25146:7;;25107:46;25181:7;;25163:15;:25;;;;25223:13;;25199:21;:37;;;;25267:1;25257:7;:11;;;;25295:1;25279:13;:17;;;;25064:240;:::o;30517:566::-;30620:15;30637:23;30662:12;30676:23;30701:12;30715:18;30737:19;30748:7;30737:10;:19::i;:::-;30619:137;;;;;;;;;;;;30785:28;30805:7;30785;:15;30793:6;30785:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30767:7;:15;30775:6;30767:15;;;;;;;;;;;;;;;:46;;;;30842:28;30862:7;30842;:15;30850:6;30842:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30824:7;:15;30832:6;30824:15;;;;;;;;;;;;;;;:46;;;;30902:39;30925:15;30902:7;:18;30910:9;30902:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30881:7;:18;30889:9;30881:18;;;;;;;;;;;;;;;:60;;;;30955:26;30970:10;30955:14;:26::i;:::-;30992:23;31004:4;31010;30992:11;:23::i;:::-;31048:9;31031:44;;31040:6;31031:44;;;31059:15;31031:44;;;;;;;;;;;;;;;;;;30517:566;;;;;;;;;:::o;29923:586::-;30024:15;30041:23;30066:12;30080:23;30105:12;30119:18;30141:19;30152:7;30141:10;:19::i;:::-;30023:137;;;;;;;;;;;;30189:28;30209:7;30189;:15;30197:6;30189:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30171:7;:15;30179:6;30171:15;;;;;;;;;;;;;;;:46;;;;30249:39;30272:15;30249:7;:18;30257:9;30249:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30228:7;:18;30236:9;30228:18;;;;;;;;;;;;;;;:60;;;;30320:39;30343:15;30320:7;:18;30328:9;30320:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30299:7;:18;30307:9;30299:18;;;;;;;;;;;;;;;:60;;;;30381:26;30396:10;30381:14;:26::i;:::-;30418:23;30430:4;30436;30418:11;:23::i;:::-;30474:9;30457:44;;30466:6;30457:44;;;30485:15;30457:44;;;;;;;;;;;;;;;;;;29923:586;;;;;;;;;:::o;29413:502::-;29512:15;29529:23;29554:12;29568:23;29593:12;29607:18;29629:19;29640:7;29629:10;:19::i;:::-;29511:137;;;;;;;;;;;;29677:28;29697:7;29677;:15;29685:6;29677:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;29659:7;:15;29667:6;29659:15;;;;;;;;;;;;;;;:46;;;;29737:39;29760:15;29737:7;:18;29745:9;29737:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;29716:7;:18;29724:9;29716:18;;;;;;;;;;;;;;;:60;;;;29787:26;29802:10;29787:14;:26::i;:::-;29824:23;29836:4;29842;29824:11;:23::i;:::-;29880:9;29863:44;;29872:6;29863:44;;;29891:15;29863:44;;;;;;;;;;;;;;;;;;29413:502;;;;;;;;;:::o;20736:642::-;20839:15;20856:23;20881:12;20895:23;20920:12;20934:18;20956:19;20967:7;20956:10;:19::i;:::-;20838:137;;;;;;;;;;;;21004:28;21024:7;21004;:15;21012:6;21004:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20986:7;:15;20994:6;20986:15;;;;;;;;;;;;;;;:46;;;;21061:28;21081:7;21061;:15;21069:6;21061:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21043:7;:15;21051:6;21043:15;;;;;;;;;;;;;;;:46;;;;21121:39;21144:15;21121:7;:18;21129:9;21121:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21100:7;:18;21108:9;21100:18;;;;;;;;;;;;;;;:60;;;;21192:39;21215:15;21192:7;:18;21200:9;21192:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21171:7;:18;21179:9;21171:18;;;;;;;;;;;;;;;:60;;;;21250:26;21265:10;21250:14;:26::i;:::-;21287:23;21299:4;21305;21287:11;:23::i;:::-;21343:9;21326:44;;21335:6;21326:44;;;21354:15;21326:44;;;;;;;;;;;;;;;;;;20736:642;;;;;;;;;:::o;25310:125::-;25364:15;;25354:7;:25;;;;25406:21;;25390:13;:37;;;;25310:125::o;24732:154::-;24796:7;24823:55;24862:5;24823:20;24835:7;;24823;:11;;:20;;;;:::i;:::-;:24;;:55;;;;:::i;:::-;24816:62;;24732:154;;;:::o;24892:166::-;24962:7;24989:61;25034:5;24989:26;25001:13;;24989:7;:11;;:26;;;;:::i;:::-;:30;;:61;;;;:::i;:::-;24982:68;;24892:166;;;:::o;24365:355::-;24428:19;24451:10;:8;:10::i;:::-;24428:33;;24472:18;24493:27;24508:11;24493:10;:14;;:27;;;;:::i;:::-;24472:48;;24556:38;24583:10;24556:7;:22;24572:4;24556:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;24531:7;:22;24547:4;24531:22;;;;;;;;;;;;;;;:63;;;;24608:11;:26;24628:4;24608:26;;;;;;;;;;;;;;;;;;;;;;;;;24605:107;;;24674:38;24701:10;24674:7;:22;24690:4;24674:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;24649:7;:22;24665:4;24649:22;;;;;;;;;;;;;;;:63;;;;24605:107;24365:355;;;:::o;22266:147::-;22344:17;22356:4;22344:7;;:11;;:17;;;;:::i;:::-;22334:7;:27;;;;22385:20;22400:4;22385:10;;:14;;:20;;;;:::i;:::-;22372:10;:33;;;;22266:147;;:::o

Swarm Source

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