anchor.diff:  end;
   
   
  +//Lines are timestamped, each line invokes file open/close for writing,
  +//meaning that no lines will be lost if Remake crashes
   procedure TKMLog.AddLineTime(const aText: UnicodeString; aLogType: TKMLogMessageType);
   begin
     if not (aLogType in MessageTypes) then // write into log only for allowed types
  
positive.code: 
  type
  
    TKMLogMessageType = (lmt_Default, lmt_Delivery, lmt_NetConnection, lmt_NetPacketOther, lmt_NetPacketCommand, lmt_NetPacketPingFps);
    TKMLogMessageTypeSet = set of TKMLogMessageType;
    TNotifyEventLog = procedure(aLogMessage: UnicodeString) of object;
  
  
negative.code: end;
  
  
  //Add line with timestamp
  procedure TKMLog.AddLineTime(const aText: UnicodeString);
  begin
    AddLineTime(aText, lmt_Default);
  end;
  
  
  //Same line but without timestamp
  procedure TKMLog.AddLineNoTime(const aText: UnicodeString);
  begin
    if not FileExists(fLogPath) then
  