```\n  function repay(uint256 repayAmount, uint256 _userLoanId) external {\n      Loan memory userLoan = loans[msg.sender][_userLoanId];\n      if(userLoan.borrowedAmount < repayAmount) revert ExcessiveRepay();\n      if(block.timestamp > userLoan.endDate) revert LoanExpired();\n      uint256 interestLoanRatio = FixedPointMathLib.divWad(userLoan.interest, userLoan.borrowedAmount);\nL425  uint256 interest = FixedPointMathLib.mulWadUp(repayAmount, interestLoanRatio); //@audit rounding issue\n      outstandingDebt -= repayAmount - interest > outstandingDebt ? outstandingDebt : repayAmount - interest;\n      // rest of code\n  }\n// rest of code\n  function liquidate(address user, uint256 _userLoanId) external {\n      Loan memory userLoan = loans[msg.sender][_userLoanId];\n      if(block.timestamp < userLoan.endDate || userLoan.liquidated || userLoan.borrowedAmount == 0) revert Unliquidatable();\n      loans[user][_userLoanId].liquidated = true;\n      loans[user][_userLoanId].borrowedAmount = 0;\nL448  outstandingDebt -= userLoan.borrowedAmount - userLoan.interest;\n      // rest of code\n  }\n```\n