```\nfunction buyBackAndBurnTokens(uint256 amount) external onlyOwner() {\n    if(!inSwapAndLiquify && amount > 0 && amount <= address(this).balance) {\n        // get contracts balance of tokens\n        uint256 initialTokenBalance = balanceOf(address(this));\n        \n        // swap eth for the tokens\n        address[] memory path = new address[](2);\n        path[0] = uniswapV2Router.WETH();\n        path[1] = address(this);\n\n        uint[] memory amountOutMins = uniswapV2Router.getAmountsOut(amount, path);\n        uint256 minTokens = (amountOutMins[1] * _slipPercent) / 100;\n\n        // make the swap\n        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(\n            minTokens,\n            path,\n            address(this),\n            block.timestamp\n        );\n\n        // get amount of tokens we swapped into\n        uint256 swappedTokenBalance = balanceOf(address(this)) - initialTokenBalance;\n\n        // burn the tokens\n        transfer(_deadAddress, swappedTokenBalance);\n        emit BoughtAndBurnedTokens(amount);\n    }\n}\n```\n