<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<!--Created: 09.05.2019 16:23:03-->
<!--ACTOptimumVersion: 6.0.6901.26650-->
<ACTOptimumItems ACTOptimumVersion="6.0.6901.26650" Created="09.05.2019 16:23:03">
    <AutoDataMenu Created="09.05.2019 16:23:03" ClassName="Melville_Schellmann.ACTOptimum6.Plugin.MenuItemAutoData" PrefClassVersion="1.0" ACTOptimumVersion="6.0.6901.26650">
        <GlobalPref>True</GlobalPref>
        <NeededRole>2</NeededRole>
        <Name>MergeLookup</Name>
        <Tooltip>Logische Zusammenführung der aktuellen Kontaktsuche mit den verknüpften Kontakten des aktuellen Datensatzes...</Tooltip>
        <Description>Logische Zusammenführung der aktuellen Kontaktsuche mit den verknüpften Kontakten des aktuellen Datensatzes...</Description>
        <CommandBar>Connected Menus</CommandBar>
        <Menu>act-ui://com.act/application/menu/grouplookup</Menu>
        <Index>-1</Index>
        <Separator>False</Separator>
        <Shortcut>None</Shortcut>
        <SourceCode>' #ScriptName: MergeLookup
    ' #Description: Kombiniert die aktuelle Kontakt-Suche mit den verknüpften Kontakten der aktuellen Entität.
    ' #Author: Robert Schellmann, rs@act7.de
    ' #Copyright: © 2019 by Melville-Schellmann
    ' #Version: 1.0.0 (08.05.2019) s.o.
  
    m_oACTapp = ACTApp
    m_sScriptName = "MergeLookup"
    m_oError = New ErrorHandling.BaseErrorMessage
    m_oStatus = New StatusManager(m_oACTApp, Melville_Schellmann.ACTOptimum6.Plugin.Icons.IconManager.GetIcon("object_gears"), m_sScriptName)
    
    m_oError.ClearError
    
    If Not (TypeOf m_oACTApp.CurrentView Is Act.UI.ICompanyDetailView Or TypeOf m_oACTApp.CurrentView Is Act.UI.IGroupDetailView Or TypeOf m_oACTApp.CurrentView Is Act.UI.IOpportunityDetailView) Then
      m_oError.SetError("Bitte verwenden Sie diese Funktion in der Firmen-, Gruppe- oder Verkaufschancendetailansicht.")
      GoTo Abbruch
    End If
    
    Dim oCurrentContactList As SimpleContactList
    Dim oEntityContactList As SimpleContactList
    
    m_oStatus.PrintStatus("Lese Kontakte des aktuellen Datensatzes ein.", True)
    oEntityContactList = New SimpleContactList
    
    Select Case True
      Case TypeOf m_oACTApp.CurrentView Is Act.UI.ICompanyDetailView
        If m_oACTApp.ApplicationState.CurrentCompany Is Nothing Then
          m_oError.SetError("Es konnte kein aktueller Datensatz ermittelt werden.")
          GoTo Abbruch
        End If
        If oEntityContactList.TryFill(m_oACTApp.ApplicationState.CurrentCompany.GetContacts(Nothing), m_oStatus) = False Then
          GoTo Abbruch
        End If
      Case TypeOf m_oACTApp.CurrentView Is Act.UI.IGroupDetailView
        If  m_oACTApp.ApplicationState.CurrentGroup Is Nothing Then
          m_oError.SetError("Es konnte kein aktueller Datensatz ermittelt werden.")
          GoTo Abbruch
        End If
        If  oEntityContactList.TryFill(m_oACTApp.ApplicationState.CurrentGroup.GetContacts(Nothing), m_oStatus) = False Then
          GoTo Abbruch
        End If
      Case TypeOf m_oACTApp.CurrentView Is Act.UI.IOpportunityDetailView
        If CType(m_oACTApp.CurrentView, Act.UI.IOpportunityDetailView).CurrentOpportunity Is Nothing
          m_oError.SetError("Es konnte kein aktueller Datensatz ermittelt werden.")
          GoTo Abbruch
        End If
        If  oEntityContactList.TryFill(CType(m_oACTApp.CurrentView, Act.UI.IOpportunityDetailView).CurrentOpportunity.GetContacts(Nothing), m_oStatus) = False Then
          GoTo Abbruch
        End If
    End Select
    
    m_oStatus.PrintStatus("Lese aktuelle Kontaktliste ein.", True)
    oCurrentContactList = New SimpleContactList
    If oCurrentContactList.TryFill(m_oACTApp.ApplicationState.CurrentContactList, m_oStatus) = False Then
      GoTo Abbruch
    End If
    
    Dim lCountOr As Integer
    Dim lCountAnd As Integer
    Dim lCountNot As Integer
    Dim oGuid As System.Guid
    Dim lCount As Integer
    Dim lCountNew As Integer
    
    lCount = 0
    lCountOr = oCurrentContactList.Count
    lCountAnd = 0
    lCountNot = oCurrentContactList.Count
    
    m_oStatus.PrintStatus("Analysiere beide Kontaktlisten...", lCount, oEntityContactList.Count, False)

    For Each oGuid In oEntityContactList.keys
      If lCount Mod 17 = 0 Then
        m_oStatus.SetProgress(lCount)
      End If
      If oCurrentContactList.ContainsKey(oguid) Then
        lCountAnd += 1
        lCountNot -= 1
      Else
        lCountOr += 1
      End If     
      lCount += 1
    Next
    
    m_oStatus.PrintStatus("erledigt.", 0, oEntityContactList.Count, True)
    
    m_oStatus.Hide
    
    Dim frmAction As FormMain
    frmAction = New FormMain
    frmAction.LabelInfo.Text = String.Format(frmAction.labelInfo.Text, oCurrentContactList.count, oEntityContactList.count)
    frmAction.RadioButtonAnd.Text = String.Format(frmAction.radioButtonAnd.Text, lCountAnd)
    frmAction.RadioButtonAnd.Enabled = lCountAnd &gt; 0
    frmAction.RadioButtonOr.Text = String.Format(frmAction.radioButtonOr.Text, lCountOr)
    frmAction.RadioButtonOr.Enabled = lCountOr &gt; 0
    frmAction.RadioButtonNot.Text = String.Format(frmAction.radioButtonNot.Text, lCountNot)
    frmAction.RadioButtonNot.Enabled = lCountNot &gt; 0
    If frmAction.ShowDialog(m_oACTApp) = DialogResult.Cancel Then
      GoTo Abbruch
    End If
    
    
    Dim aNewContact() As System.guid
    Dim oNewContactList As Act.Framework.Contacts.ContactList
    ' AND 
    If frmAction.RadioButtonAnd.Checked = True Then
      ReDim aNewContact(lCountAnd - 1)
      lCount = 0
      lCountNew = 0
      m_oStatus.PrintStatus("Erstelle neue Kontaktsuche...", lCount, oEntityContactList.Count, False)
      For Each oGuid In oEntityContactList.keys
        If lCount Mod 17 = 0 Then
          m_oStatus.SetProgress(lCount)
        End If
        If oCurrentContactList.ContainsKey(oGuid) Then
          aNewContact(lCountNew) = oGuid
          lCountNew += 1
        End If
        lCount += 1
      Next    
      m_oStatus.PrintStatus("erledigt.", 0, oEntityContactList.Count, True)
    End If
    ' OR
    If frmAction.RadioButtonOr.Checked = True Then
      ReDim aNewContact(lCountOr - 1)
      lCount = 0
      lCountNew = 0
      m_oStatus.PrintStatus("Erstelle neue Kontaktsuche (1/2)...", lCount, oCurrentContactList.Count, False)
      For Each oGuid In oCurrentContactList.Keys
        If lCount Mod 17 = 0 Then
          m_oStatus.SetProgress(lCount)
        End If
        aNewContact(lCountNew) = oGuid
        lCount += 1
        lCountNew += 1
      Next
      m_oStatus.PrintStatus("erledigt.", 0, oCurrentContactList.Count, True)
      
      lCount = 0
      m_oStatus.PrintStatus("Erstelle neue Kontaktsuche (2/2)...", lCount, oEntityContactList.Count, False)
      For Each oGuid In oEntityContactList.Keys
        If lCount Mod 17 = 0 Then
          m_oStatus.SetProgress(lCount)
        End If
        If Not oCurrentContactList.ContainsKey(oGuid) Then
          aNewContact(lCountNew) = oGuid
          lCountNew += 1
        End If
        lCount += 1
      Next
      m_oStatus.PrintStatus("erledigt.", 0, oEntityContactList.Count, True)
    End If

    ' NOT
    If frmAction.RadioButtonNot.Checked = True Then
      ReDim aNewContact(lCountNot - 1)
      lCountNot = 0
      lCount = 0
      m_oStatus.PrintStatus("Erstelle neue Kontaktsuche...", lCount, oCurrentContactList.Count, False)
      For Each oGuid In oCurrentContactList.Keys
        If lCount Mod 17 = 0 Then
          m_oStatus.SetProgress(lCount)
        End If
        If Not oEntityContactList.ContainsKey(oGuid)Then
          aNewContact(lCountNew) = oGuid
          lCountNew += 1
        End If
        lCount += 1
      Next
      m_oStatus.PrintStatus("erledigt.", 0, oEntityContactList.Count, True)
    End If
    
    If aNewContact Is Nothing Then
      GoTo Abbruch
    End If
    
    Select Case aNewContact.Length
      Case 0 
      Case 1
        m_oStatus.PrintStatus("Wechsel in Kontaktdetailansicht...", 0, 1, False)
        oNewContactList = m_oACTApp.ActFramework.Contacts.GetContactsByID(Nothing, aNewContact)
        m_oActApp.UILookupManager.LookupContacts(oNewContactList)
        m_oActApp.UIContactManager.ShowDetailView()
      Case Else
        m_oStatus.PrintStatus("Wechsel in  Kontaktlistenansicht...", 0, 1, False)
        oNewContactList = m_oACTApp.ActFramework.Contacts.GetContactsByID(Nothing, aNewContact)
        m_oActApp.UILookupManager.LookupContacts(oNewContactList)
        m_oActApp.UIContactManager.ShowListView()
    End Select
    m_oStatus.Close
    
    Abbruch:
    If m_oError.HasAnError Then
      m_oStatus.PrintStatus(m_oError.ErrorMessage)
      m_oStatus.ShowDialog(False)
    End If
   
  End Sub
  
  Private Shared m_oACTApp As Act.UI.ActApplication
  Private Shared m_sScriptName As String
  Private Shared m_oError As Melville_Schellmann.ACTOptimum6.Plugin.ErrorHandling.BaseErrorMessage
  Private Shared m_oStatus As StatusManager
  
  Class SimpleContactList 
    Inherits System.Collections.Generic.Dictionary(Of System.Guid,String)
    
    Public Sub New()
      MyBase.New
    End Sub
    Public Function TryFill(oSource As act.Framework.Contacts.ContactList, oStatus As statusmanager)As Boolean
      Dim i As Integer
      Dim oGuid As System.Guid
      
      TryFill = False
      
      MyBase.Clear
      If oSource Is Nothing Then
        m_oError.SetError("Die übergebene Liste ist leer.")
        GoTo Abbruch
      End If
      oStatus.PrintStatus("Verarbeite Kontakte...", i, oSource.Count, False)
    
      For i = 0 To oSource.Count - 1
        oGuid = oSource.GetMutableEntity(i).ID  
        If Not MyBase.ContainsKey(oGuid) Then
          MyBase.Add(oGuid, String.empty)
        End If
        If i Mod 200 = 0 Then
          oStatus.SetProgress(i)
          If oStatus.Canceled Then
            m_oError.SetError("Der Vorgang wurde abgebrochen.")
            GoTo Abbruch
          End If
        End If
      Next
      oStatus.PrintStatus(String.Format("erledigt ({0}).", MyBase.count), 0, oSource.Count, True)
      
      TryFill = True
      Abbruch:
      
    End Function
  End Class
  Class StatusManager
    Private m_frmStatus As System.Windows.Forms.Form
    Private WithEvents m_btnOK As System.Windows.Forms.Button
    Private WithEvents m_btnCancel As System.Windows.Forms.Button
    Private m_oProgress As System.Windows.Forms.ProgressBar
    Private m_txbInfo As System.Windows.Forms.TextBox
    Private m_oParentForm As System.Windows.Forms.Form
    Private m_oIcon As System.Drawing.Icon
    Private m_sTitle As System.String
    Private m_bCanceled As Boolean
    
        
    Public Sub New(ParentForm As System.Windows.Forms.Form, Icon As System.Drawing.Icon, Title As String)
      m_oParentForm = ParentForm
      m_oIcon = Icon
      m_sTitle = Title
      
    End Sub
    Public Sub PrintStatus(Message As String)
      PrintStatus(Message, False)
    End Sub
    Public Sub PrintStatus(Message As String, NewLine As Boolean)
      If m_frmStatus Is Nothing Then
        InitSatusForm
        m_frmStatus.Show(m_oParentForm)
        m_frmStatus.Top = m_oParentForm.top + m_oParentForm.Height \ 2 - m_frmStatus.Height \ 2
        m_frmStatus.Left = m_oParentForm.left + m_oParentForm.width \ 2 - m_frmStatus.width \ 2
        m_frmStatus.Focus
      End If
      m_txbInfo.AppendText(Message)
      If newline Then
        m_txbInfo.AppendText(System.Environment.NewLine)
      End If
      m_frmStatus.Visible = True
      System.Windows.Forms.Application.DoEvents
    End Sub
    Public Sub PrintStatus(Message As String, Progress As Integer, MaxProgress As Integer)
      PrintStatus(Message, Progress, MaxProgress, False)
    End Sub
    Public Sub PrintStatus(Message As String, Progress As Integer, MaxProgress As Integer, Newline As Boolean)
      PrintStatus(Message, Newline)
      m_oProgress.Value = Progress
      m_oProgress.Maximum = MaxProgress
      System.Windows.Forms.Application.DoEvents
    End Sub
    Public Sub SetProgress(Progress As Integer)
      m_oProgress.Value = Progress
      System.Windows.Forms.Application.DoEvents
    End Sub
    Public Sub Close()
      If Not m_frmStatus Is Nothing Then
        If m_frmStatus.Visible = True Then
          m_frmStatus.Close
        End If
      End If
    End Sub
    Public Sub Hide()
      If Not m_frmStatus Is Nothing Then
        If m_frmStatus.Visible = True Then
          m_frmStatus.Visible = False
          System.Windows.Forms.Application.DoEvents
        End If
      End If
    End Sub
    Public Function ShowDialog(WithCancelButton As Boolean)As System.Windows.Forms.DialogResult
      If m_frmStatus Is Nothing Then
        InitSatusForm
      End If
      m_btnOK.Visible = True
      m_btnCancel.Visible = WithCancelButton
      m_frmStatus.Visible = False
      Return  m_frmStatus.ShowDialog(m_oParentForm)
    End Function
    Public ReadOnly Property Canceled() As Boolean
      Get
        Return m_bCanceled
      End Get
    End Property 
    Public Sub SetFocus()
      If Not m_frmStatus Is Nothing Then
        m_frmStatus.Focus
      End If
    End Sub
    Private Sub m_btnCancel_Clicked(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m_btnCancel.Click
      If Msgbox("Soll der Vorgang abgebrochen werden?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question, m_frmStatus.Text) = MsgBoxResult.Yes Then
        m_bCanceled = True
        PrintStatus("Abbruch...")  
      End If
    End Sub
    Private Sub m_btnOK_Clicked(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m_btnOK.Click
      m_frmStatus.Close
    End Sub
    Private Sub InitSatusForm
      m_btnOK = New System.Windows.Forms.Button
      With m_btnOK
        .Text = "OK"
        .DialogResult = DialogResult.OK
        .Dock = DockStyle.Bottom
        .Visible = False
      End With
      m_btnCancel = New System.Windows.Forms.Button
      With m_btnCancel
        .Text = "Abbruch"
        .DialogResult = DialogResult.Cancel
        .Dock = DockStyle.Bottom
      End With
      m_oProgress = New System.Windows.Forms.ProgressBar
      With m_oProgress
        .Value = 0
        .Minimum = 0
        .Maximum = 100
        .Style = ProgressBarStyle.Blocks
        .Dock = DockStyle.Bottom
      End With
      m_txbInfo = New System.Windows.Forms.TextBox
      With m_txbInfo
        .Multiline = True
        .ScrollBars = ScrollBars.Both
        .Text = String.empty
        .Dock = DockStyle.Fill
      End With
      m_frmStatus = New System.Windows.Forms.Form
      m_frmStatus.SuspendLayout()
      With m_frmStatus
        .StartPosition = FormStartPosition.CenterParent
        .Width = 480
        .Height = 240
        .CancelButton = m_btnCancel
        .AcceptButton = m_btnOK
        .MinimumSize = New System.Drawing.Size(320, 240)
        .ControlBox = True
        .MinimizeBox = False
        .Icon = m_oIcon
        .Text = m_sTitle
        .ShowInTaskbar = False
      End With
      m_frmStatus.Controls.Add(m_txbInfo)
      m_frmStatus.Controls.Add(m_oProgress)
      m_frmStatus.Controls.Add(m_btnCancel) 
      m_frmStatus.Controls.Add(m_btnOK) 
      m_frmStatus.ResumeLayout()
      m_frmStatus.PerformLayout
     
    End Sub
  End Class
  &lt;Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()&gt; _
  Partial Class FormMain
    Inherits System.Windows.Forms.Form

    'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
    &lt;System.Diagnostics.DebuggerNonUserCode()&gt; _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
      Try
        If disposing AndAlso components IsNot Nothing Then
          components.Dispose()
        End If
      Finally
        MyBase.Dispose(disposing)
      End Try
    End Sub

    'Wird vom Windows Form-Designer benötigt.
    Private components As System.ComponentModel.IContainer

    'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
    'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
    'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
    &lt;System.Diagnostics.DebuggerStepThrough()&gt; _
    Private Sub InitializeComponent()
      Me.LabelInfo = New System.Windows.Forms.Label()
      Me.ButtonOK = New System.Windows.Forms.Button()
      Me.ButtonCancel = New System.Windows.Forms.Button()
      Me.GroupBoxAction = New System.Windows.Forms.GroupBox()
      Me.RadioButtonNot = New System.Windows.Forms.RadioButton()
      Me.RadioButtonOr = New System.Windows.Forms.RadioButton()
      Me.RadioButtonAnd = New System.Windows.Forms.RadioButton()
      Me.GroupBoxAction.SuspendLayout()
      Me.SuspendLayout()
      '
      'LabelInfo
      '
      Me.LabelInfo.Location = New System.Drawing.Point(12, 9)
      Me.LabelInfo.Name = "LabelInfo"
      Me.LabelInfo.Size = New System.Drawing.Size(335, 41)
      Me.LabelInfo.TabIndex = 0
      Me.LabelInfo.Text = "Soll die aktuelle Suche von Kontakten ({0}) mit den zugeordneten Kontakten ({1}) " &amp; _
        "des aktuellen Datensatzes..."
      '
      'ButtonOK
      '
      Me.ButtonOK.DialogResult = System.Windows.Forms.DialogResult.OK
      Me.ButtonOK.Location = New System.Drawing.Point(191, 159)
      Me.ButtonOK.Name = "ButtonOK"
      Me.ButtonOK.Size = New System.Drawing.Size(75, 23)
      Me.ButtonOK.TabIndex = 2
      Me.ButtonOK.Text = "&amp;OK"
      Me.ButtonOK.UseVisualStyleBackColor = True
      '
      'ButtonCancel
      '
      Me.ButtonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
      Me.ButtonCancel.Location = New System.Drawing.Point(272, 159)
      Me.ButtonCancel.Name = "ButtonCancel"
      Me.ButtonCancel.Size = New System.Drawing.Size(75, 23)
      Me.ButtonCancel.TabIndex = 3
      Me.ButtonCancel.Text = "&amp;Abbruch"
      Me.ButtonCancel.UseVisualStyleBackColor = True
      '
      'GroupBoxAction
      '
      Me.GroupBoxAction.Controls.Add(Me.RadioButtonNot)
      Me.GroupBoxAction.Controls.Add(Me.RadioButtonOr)
      Me.GroupBoxAction.Controls.Add(Me.RadioButtonAnd)
      Me.GroupBoxAction.Location = New System.Drawing.Point(9, 53)
      Me.GroupBoxAction.Name = "GroupBoxAction"
      Me.GroupBoxAction.Size = New System.Drawing.Size(338, 100)
      Me.GroupBoxAction.TabIndex = 1
      Me.GroupBoxAction.TabStop = False
      Me.GroupBoxAction.Text = "Aktionsauswahl"
      '
      'RadioButtonNot
      '
      Me.RadioButtonNot.AutoSize = True
      Me.RadioButtonNot.Location = New System.Drawing.Point(19, 65)
      Me.RadioButtonNot.Name = "RadioButtonNot"
      Me.RadioButtonNot.Size = New System.Drawing.Size(210, 17)
      Me.RadioButtonNot.TabIndex = 2
      Me.RadioButtonNot.TabStop = True
      Me.RadioButtonNot.Text = "ausge&amp;schlossen werden (NICHT)? ({0})"
      Me.RadioButtonNot.UseVisualStyleBackColor = True
      '
      'RadioButtonOr
      '
      Me.RadioButtonOr.AutoSize = True
      Me.RadioButtonOr.Location = New System.Drawing.Point(19, 42)
      Me.RadioButtonOr.Name = "RadioButtonOr"
      Me.RadioButtonOr.Size = New System.Drawing.Size(172, 17)
      Me.RadioButtonOr.TabIndex = 1
      Me.RadioButtonOr.TabStop = True
      Me.RadioButtonOr.Text = "er&amp;weitert werden (ODER)? ({0})"
      Me.RadioButtonOr.UseVisualStyleBackColor = True
      '
      'RadioButtonAnd
      '
      Me.RadioButtonAnd.AutoSize = True
      Me.RadioButtonAnd.Location = New System.Drawing.Point(19, 19)
      Me.RadioButtonAnd.Name = "RadioButtonAnd"
      Me.RadioButtonAnd.Size = New System.Drawing.Size(180, 17)
      Me.RadioButtonAnd.TabIndex = 0
      Me.RadioButtonAnd.TabStop = True
      Me.RadioButtonAnd.Text = "&amp;eingegrenzt werden (UND)? ({0})"
      Me.RadioButtonAnd.UseVisualStyleBackColor = True
      '
      'FormMain
      '
      Me.AcceptButton = Me.ButtonOK
      Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
      Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
      Me.CancelButton = Me.ButtonCancel
      Me.ClientSize = New System.Drawing.Size(359, 193)
      Me.ControlBox = False
      Me.Controls.Add(Me.GroupBoxAction)
      Me.Controls.Add(Me.ButtonCancel)
      Me.Controls.Add(Me.ButtonOK)
      Me.Controls.Add(Me.LabelInfo)
      Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
      Me.Name = "FormMain"
      Me.ShowInTaskbar = False
      Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
      Me.Text = "MergeLookup"
      Me.GroupBoxAction.ResumeLayout(False)
      Me.GroupBoxAction.PerformLayout()
      Me.ResumeLayout(False)

    End Sub
    Friend WithEvents LabelInfo As System.Windows.Forms.Label
    Friend WithEvents ButtonOK As System.Windows.Forms.Button
    Friend WithEvents ButtonCancel As System.Windows.Forms.Button
    Friend WithEvents GroupBoxAction As System.Windows.Forms.GroupBox
    Friend WithEvents RadioButtonOr As System.Windows.Forms.RadioButton
    Friend WithEvents RadioButtonAnd As System.Windows.Forms.RadioButton
    Friend WithEvents RadioButtonNot As System.Windows.Forms.RadioButton

  End Class
  Private Sub Dummy()</SourceCode>
        <IconName>ACTOptimum_AutoData</IconName>
    </AutoDataMenu>
</ACTOptimumItems>