```\\nfunction _transfer(address from, address to, uint256 amount) internal override {\\n    require(from != address(0), "ERC20: transfer from the zero address");\\n    require(to != address(0), "ERC20: transfer to the zero address");\\n    uint256 RewardsFee;\\n    uint256 deadFees;\\n    uint256 marketingFees;\\n    uint256 liquidityFee;\\n\\n    if (!canTransferBeforeTradingIsEnabled[from]) {\\n        require(tradingEnabled, "Trading has not yet been enabled");\\n    }\\n    if (amount == 0) {\\n        super._transfer(from, to, 0);\\n        return;\\n    } \\n\\n    if (_isVesting[from]) {\\n        if (block.timestamp < _vestingTimestamp[from] + 5 minutes) {\\n            require(balanceOf(from) - amount >= tokensVesting[from], "cant sell vested tokens");\\n        }\\n        else {\\n            tokensVesting[from] = 0;\\n            _isVesting[from] = false;\\n        }\\n    }\\n\\n    \\n    else if (!swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {\\n        bool isSelling = automatedMarketMakerPairs[to];\\n        bool isBuying = automatedMarketMakerPairs[from];\\n\\n        if (!isBuying && !isSelling) {\\n            if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {\\n                uint256 tFees = amount.mul(transferFee).div(100);\\n                amount = amount.sub(tFees);\\n                super._transfer(from, address(this), tFees);\\n                super._transfer(from, to, amount);\\n                dividendTracker.setBalance(from, getMultiplier(from));\\n                dividendTracker.setBalance(to, getMultiplier(to));\\n                _diamondHands[from] = false;\\n                _multiplier[from] = false;\\n                _holderFirstBuyTimestamp[from] = block.timestamp;\\n                return;\\n            }\\n            else {\\n                super._transfer(from, to, amount);\\n                dividendTracker.setBalance(from, getMultiplier(from));\\n                dividendTracker.setBalance(to, getMultiplier(to));\\n                _diamondHands[from] = false;\\n                _multiplier[from] = false;\\n                _holderFirstBuyTimestamp[from] = block.timestamp;\\n                return;\\n            }\\n        }\\n\\n        else if (isSelling) {\\n            if (amount >= minimumForDiamondHands) {\\n                RewardsFee = 8;\\n            }\\n            else {\\n                RewardsFee = sellRewardsFee;\\n            }\\n            deadFees = sellDeadFees;\\n            marketingFees = sellMarketingFees;\\n            liquidityFee = sellLiquidityFee;\\n\\n            if (limitsInEffect) {\\n            require(block.timestamp >= _holderLastTransferTimestamp[from] + cooldowntimer,\\n                    "cooldown period active");\\n            require(amount <= maxTX,"above max transaction limit");\\n            _holderLastTransferTimestamp[from] = block.timestamp;\\n\\n            }\\n            _diamondHands[from] = false;\\n            _multiplier[from] = false;\\n            _holderFirstBuyTimestamp[from] = block.timestamp;\\n\\n\\n        } else if (isBuying) {\\n\\n            if (_diamondHands[to]) {\\n                if (block.timestamp >= _holderBuy1Timestamp[to] + 1 days && balanceOf(to) >= minimumForDiamondHands) {\\n                    super._transfer(from, to, amount);\\n                    dividendTracker.setBalance(from, getMultiplier(from));\\n                    dividendTracker.setBalance(to, getMultiplier(to));\\n                    return;\\n                }\\n            }\\n\\n            if (!_multiplier[to]) {\\n                _multiplier[to] = true;\\n                _holderFirstBuyTimestamp[to] = block.timestamp;\\n            }\\n\\n            if (!_diamondHands[to]) {\\n                _diamondHands[to] = true;\\n                _holderBuy1Timestamp[to] = block.timestamp;\\n            }\\n\\n            RewardsFee = buyRewardsFee;\\n            deadFees = buyDeadFees;\\n            marketingFees = buyMarketingFees;\\n            liquidityFee = buyLiquidityFee;\\n\\n            if (limitsInEffect) {\\n            require(block.timestamp > launchtimestamp + delay,"you shall not pass");\\n            require(tx.gasprice <= gasPriceLimit,"Gas price exceeds limit.");\\n            require(_holderLastTransferBlock[to] != block.number,"Too many TX in block");\\n            require(amount <= maxTX,"above max transaction limit");\\n            _holderLastTransferBlock[to] = block.number;\\n            }\\n\\n            uint256 contractBalanceRecipient = balanceOf(to);\\n            require(contractBalanceRecipient + amount <= maxWallet,"Exceeds maximum wallet token amount." );\\n        }\\n\\n        uint256 totalFees = RewardsFee.add(liquidityFee + marketingFees);\\n\\n        uint256 contractTokenBalance = balanceOf(address(this));\\n\\n        bool canSwap = contractTokenBalance >= swapTokensAtAmount;\\n\\n        if (canSwap && isSelling) {\\n            swapping = true;\\n\\n            if (swapAndLiquifyEnabled && liquidityFee > 0 && totalBuyFees > 0) {\\n                uint256 totalBuySell = buyAmount.add(sellAmount);\\n                uint256 swapAmountBought = contractTokenBalance.mul(buyAmount).div(totalBuySell);\\n                uint256 swapAmountSold = contractTokenBalance.mul(sellAmount).div(totalBuySell);\\n                uint256 swapBuyTokens = swapAmountBought.mul(liquidityFee).div(totalBuyFees);\\n                uint256 swapSellTokens = swapAmountSold.mul(liquidityFee).div(totalSellFees);\\n                uint256 swapTokens = swapSellTokens.add(swapBuyTokens);\\n\\n                swapAndLiquify(swapTokens);\\n            }\\n\\n            uint256 remainingBalance = balanceOf(address(this));\\n            swapAndSendDividends(remainingBalance);\\n            buyAmount = 1;\\n            sellAmount = 1;\\n            swapping = false;\\n        }\\n\\n        uint256 fees = amount.mul(totalFees).div(100);\\n        uint256 burntokens;\\n\\n        if (deadFees > 0) {\\n        burntokens = amount.mul(deadFees) / 100;\\n        super._transfer(from, DEAD, burntokens);\\n        _totalSupply = _totalSupply.sub(burntokens);\\n\\n        }\\n\\n        amount = amount.sub(fees + burntokens);\\n\\n        if (isSelling) {\\n            sellAmount = sellAmount.add(fees);\\n        } \\n        else {\\n            buyAmount = buyAmount.add(fees);\\n        }\\n\\n        super._transfer(from, address(this), fees);\\n\\n        uint256 gas = gasForProcessing;\\n\\n        try dividendTracker.process(gas) returns (uint256 iterations, uint256 claims, uint256 lastProcessedIndex) {\\n            emit ProcessedDividendTracker(iterations, claims, lastProcessedIndex, true, gas);\\n        } catch {}\\n    }\\n\\n    super._transfer(from, to, amount);\\n    dividendTracker.setBalance(from, getMultiplier(from));\\n    dividendTracker.setBalance(to, getMultiplier(to));\\n}\\n```\\n