anchor.diff:    else
       Template := THTMLReportCustomTemplate.Create(FConfigData.CustomTemplateFileName);
   
  -  FReportOutput := TFile.CreateText(FConfigData.OutputDirectory + FConfigData.OutputFileName);
     Report := THTMLReportBuilder.Create(FReportOutput.BaseStream);
     Report.SetTemplate(Template);
   
  
positive.code:     .AddTransition(asReportBuilt, asArchiveMade, acMakeArchive,
        procedure (const PreviousState, CurrentState : TApplicationState; const UsedCommand : TApplicationCommand)
        var
          sReportFileName, sZipFileName : TFileName;
          ZF : TZipFile;
        begin
          with StateHolder do
            if FConfigData.MakeArchive then
            begin
              sReportFileName := FConfigData.OutputDirectory + FConfigData.OutputFileName;
              sZipFileName := sReportFileName + STR_ARCHIVE_FILE_EXT;
  
              if TFile.Exists(sZipFileName) then
                TFile.Delete(sZipFileName);
  
              ZF := TZipFile.Create;
              try
                ZF.Open(sZipFileName, zmWrite);
                ZF.Add(sReportFileName);
                ZF.Close;
              finally
                ZF.Free;
              end;
  
              DeleteFile(sReportFileName);
            end;
        end
      )
  
negative.code: 
  destructor TWorkflowStateHolder.Destroy;
  begin
    FreeAndNil(FFixInsightXMLParser);
    FreeAndNil(FProjectGroupParser);
    FreeAndNil(FProjectParser);
    FreeAndNil(FTaskManager);
  
    FreeAndNil(FMessages);
    FreeAndNil(FReportOutput);
  
    inherited Destroy;
  end;
  