ComplianceDiagnosticDLP.psm1

Import-Module "$PSScriptRoot\ComplianceDiagnosticUtils.psm1"

function Confirm-DlpCommandsPresent {
    # Check if MIP Label Commands are present
    $command = Get-Command Get-DlpCompliancePolicy -ErrorAction SilentlyContinue
    if ($command -eq $null) {
        return $false
    }
    
    $command = Get-Command Get-DlpComplianceRule -ErrorAction SilentlyContinue
    if ($command -eq $null) {
        return $false
    }
    
    return $true
}

function Initialize-DlpExchange{
    $global:dlpControlVariables.sampleEmailFileData = $null
    $global:dlpControlVariables.emtdFileData = $null
    $global:dlpControlVariables.fileData = $null
    $global:dlpControlVariables.PTFiddlerFile = $null
    $global:dlpControlVariables.PnrFile = $null
}

function Initialize-DlpSpo{
    $global:dlpControlVariables.TDPReport = $null
    $global:dlpControlVariables.SPOGSDFiles = $null
}

function Initialize-DlpTeams{
    $global:dlpControlVariables.teamsFileData = $null
}

function Initialize-DlpEndpoint{
    $global:dlpControlVariables.ClassificationFiddlerFiles = $null
    $global:dlpControlVariables.BrowsedEndpointReproFiles = $null
}

function Initialize-DlpAlerts{
    $global:dlpControlVariables.AlertFiddlerFile = $null
    $global:dlpControlVariables.ActivityFile = $null
    $global:dlpControlVariables.AuditFile = $null
}

function Get-DLPTabContent ($TabObject){
    [Parameter(Mandatory=$true)]
    [Windows.Controls.TabItem] $TabObject

    GetGlobalDlpRule

    $dlpExchangeButton = Get-Button -ButtonName "DLP Exchange Diagnostic"

    $dlpSPOButton = Get-Button -ButtonName "DLP SPO/ODB Diagnostic" -Margin "10,50,10,10"

    $dlpTeamsButton = Get-Button -ButtonName "DLP Teams Diagnostic" -Margin "10,50,10,10"
    
    $dlpEndpointButton = Get-Button -ButtonName "DLP Endpoint Diagnostic" -Margin "10,50,10,10"

    $dlpPanelGrid = New-Object Windows.Controls.Grid
    $dlpTopTabControl = Get-TopTabControl
    
    $dlpPanelGrid.Children.Add($dlpTopTabControl.TopTabControl) > $null
    
    $global:ContextScopeVariables.dlpOutput = New-Object Windows.Controls.StackPanel

    $outputPanelTemplate = Get-TemplateGrid

    $outputPanelTemplate.Column1.Children.Add($dlpExchangeButton) > $null

    $dlpDiagnosticTabContent = New-Object Windows.Controls.StackPanel
    $dlpDiagnosticTabContent.HorizontalAlignment = [Windows.HorizontalAlignment]::Center
    $dlpDiagnosticTabContent.VerticalAlignment = [Windows.VerticalAlignment]::Top
    $dlpDiagnosticTabContent.Margin = New-Object Windows.Thickness 0, 70, 0, 0 
    $dlpDiagnosticTabContent.Children.Add($global:ContextScopeVariables.dlpOutput) > $null

    $scrollViewer = New-Object Windows.Controls.ScrollViewer
    $scrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $scrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $outputPanelTemplate.Column2.Children.Add($dlpDiagnosticTabContent) > $null
    $scrollViewer.Content = $outputPanelTemplate.Grid
    # $dlpTopTabControl.DiagnosticsTabItem.Content = $scrollViewer // TODO : revive it after logic is built
    

    # NOTE: The variables that we use in event functions will be null if they are passed as local scope
    $dlpExchangeButton.Add_Click({
    })
   
    $dlpSPOButton.Add_Click({        
    })

    $dlpTeamsButton.Add_Click({
    })
    
    $dlpEndpointButton.Add_Click({        
    })
    
    
    # Collect diagnostic data from user
    $global:dlpControlVariables.dlpSupportDataTabContent = New-Object Windows.Controls.StackPanel
    $global:dlpControlVariables.dlpSupportDataTabContent.HorizontalAlignment = [Windows.HorizontalAlignment]::Center


    $global:dlpControlVariables.SupportPanelTemplate = Get-TemplateGrid

    $dlpEXOSupportButton = Get-Button -ButtonName "Exchange DLP" -Margin '10,50,10,10' -width 200 -HorizontalAlignment "Left"
    $global:dlpControlVariables.SupportPanelTemplate.Column1.Children.Add($dlpEXOSupportButton) > $null

    $dlpSPOSupportButton = Get-Button -ButtonName "SPO/ODB DLP" -Margin '10,50,10,10' -width 200 -HorizontalAlignment "Left"
    $global:dlpControlVariables.SupportPanelTemplate.Column1.Children.Add($dlpSPOSupportButton) > $null

    $dlpTeamsSupportButton = Get-Button -ButtonName "Teams DLP" -Margin '10,50,10,10' -width 200 -HorizontalAlignment "Left"
    $global:dlpControlVariables.SupportPanelTemplate.Column1.Children.Add($dlpTeamsSupportButton) > $null
    
    $dlpEndpointSupportButton = Get-Button -ButtonName "Endpoint DLP" -Margin '10,50,10,10' -width 200 -HorizontalAlignment "Left"
    $global:dlpControlVariables.SupportPanelTemplate.Column1.Children.Add($dlpEndpointSupportButton) > $null

    $dlpAlertsSupportButton = Get-Button -ButtonName "Collect DLP Alerts Data" -Margin '10,50,10,10' -width 200 -HorizontalAlignment "Left"
    $global:dlpControlVariables.SupportPanelTemplate.Column1.Children.Add($dlpAlertsSupportButton) > $null
    
    $DiagscrollViewer = New-Object Windows.Controls.ScrollViewer
    $DiagscrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $DiagscrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $DiagscrollViewer.Content = $global:dlpControlVariables.SupportPanelTemplate.Grid
    $dlpTopTabControl.GatherSupportDataTabItem.Content = $DiagscrollViewer
    $global:dlpControlVariables.SupportPanelTemplate.Column2.Children.Add($global:dlpControlVariables.dlpSupportDataTabContent ) > $null

    $dlpEXOSupportButton.Add_Click({
        Initialize-DlpExchange
        Get-DlpEXOSupportTemplate
    })

    $dlpSPOSupportButton.Add_Click({
        Initialize-DlpSpo
        Get-DlpSPOSupportTemplate
    })

    $dlpTeamsSupportButton.Add_Click({
        Initialize-DlpTeams        
        Get-DlpTeamsSupportTemplate
    })
    
    $dlpEndpointSupportButton.Add_Click({
        Initialize-DlpEndpoint
        Get-DlpEndpointSupportTemplate
    })

    $dlpAlertsSupportButton.Add_Click({   
        Initialize-DlpAlerts
        Get-DlpAlertsSupportTemplate
    })

    $TabObject.Content = $dlpPanelGrid

}

function Get-DlpAlertsSupportTemplate(){
    $blueColor = [System.Windows.Media.Color]::FromRgb(63, 119, 206)
    $redColor = [System.Windows.Media.Color]::FromRgb(200, 10, 10)
    $supportDataHeader = Show-Text -Text "DLP Alerts Support Data Template" -Color $blueColor -fontSize 20

    $tableGrid = Get-Table -columns 4 -rows 10

    $workloadLabel = Show-Text -Text "Workload" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 1 -Control $workloadLabel

    $workloads = @('Exchange', 'Sharepoint/Onedrive', 'Endpoint', 'Teams')
    $global:dlpControlVariables.WorkloadCombobox = Get-ComboBox  -Margin "0,5,10,5" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.WorkloadCombobox.ItemsSource = $workloads
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 2 -Control $global:dlpControlVariables.WorkloadCombobox

    $global:dlpControlVariables.WorkloadCombobox.Add_SelectionChanged({
        param (
            $sender,
            $eventArgs
        )
        Get-TooltipForAlertsId -sender $sender -eventArgs $eventArgs
    })
    
    $global:dlpControlVariables.itemIdentifierLabel = Show-Text -Text "Item Identifier" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left" -ShowHelp $true
    $global:dlpControlVariables.itemIdentifierLabel.ToolTip = Get-ToolTip -Text "Select the workload to see how to find the corresponding item identifier"
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 1 -Control $global:dlpControlVariables.itemIdentifierLabel

    $global:dlpControlVariables.itemId = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 2 -Control $global:dlpControlVariables.itemId

    $dateTimeLabel = Show-Text -Text "Date & Time of issue (UTC)" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 1 -Control $dateTimeLabel

    $dateTimeButton = Get-Button -ButtonName "Select date & Time" -Margin "0,0,10,0" -HorizontalAlignment "Left" -height 30 -width 220
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 2 -Control $dateTimeButton

    $global:ContextScopeVariables["DlpAlertsDateTimeLabel"] = Show-Text -Text "UTC Date Time" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 3 -Control $global:ContextScopeVariables["DlpAlertsDateTimeLabel"]
    
    $dateTimeButton.Add_Click({
        $global:ContextScopeVariables.DateTimeProp = "DlpAlertsDateTime"
        $global:ContextScopeVariables["DlpAlertsDateTime"] = ""
        Get-DateTimePickerDialog 
    })

    $ImpactedRule = Show-Text -Text "DLP Rule" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 1 -Control $ImpactedRule
    
    $global:dlpControlVariables.ImpactedRuleComboboxAlerts = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.ImpactedRuleComboboxAlerts.ItemsSource = $global:ContextScopeVariables.dlpRules.Name
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 2 -Control $global:dlpControlVariables.ImpactedRuleComboboxAlerts

    $global:dlpControlVariables.AlertFiddlerLabel = Show-Text -Text "Fiddler or har file Trace" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left" -ShowHelp $true
    $global:dlpControlVariables.AlertFiddlerLabel.ToolTip = Get-ToolTip -Text "Open the alert from DLP tab and click on View Details`nThen Record the network trace while loading the alert`nin fiddler or on a browser as a .har file"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 1 -Control $global:dlpControlVariables.AlertFiddlerLabel

    $FiddlerFileButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedFiddlerLabel" `
        -GlobalFileListName "AlertFiddlerFile" `
        -ButtonName "Attach Fiddler or har Trace" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 2 -Control $FiddlerFileButton
    
    $global:dlpControlVariables.BrowsedFiddlerLabel = Show-Text -Text "Attached Alert Network trace" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $AlertFiddlerScrollViewer = New-Object Windows.Controls.ScrollViewer
    $AlertFiddlerScrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $AlertFiddlerScrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $AlertFiddlerScrollViewer.Content = $global:dlpControlVariables.BrowsedFiddlerLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 2 -Control $AlertFiddlerScrollViewer
        
    $global:dlpControlVariables.AuditRecordLabel = Show-Text -Text "Audit Record" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left" -ShowHelp $true
    $global:dlpControlVariables.AuditRecordLabel.ToolTip = Get-ToolTip -Text "Search for audit record in Purview's Audit tab by selecting:`nAcitivities-Friendly Name: Matched DLP rule`nRecord Types: Select everything Starting with 'ComplianceDLP'`nUsers(Optional): Select the user to narrow the search`nKeyword Search(Optional): UniqueId of the email/file/message or path of the endpoint file"
    Add-ControlToTableAt -TableObj $tableGrid -row 6 -column 1 -Control $global:dlpControlVariables.AuditRecordLabel

    $AuditFileButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedAuditLabel" `
        -GlobalFileListName "AuditFile" `
        -ButtonName "Attach Audit Records" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 6 -column 2 -Control $AuditFileButton
    
    $global:dlpControlVariables.BrowsedAuditLabel = Show-Text -Text "Attached Audit record" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $AuditScrollViewer = New-Object Windows.Controls.ScrollViewer
    $AuditScrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $AuditScrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $AuditScrollViewer.Content = $global:dlpControlVariables.BrowsedAuditLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 7 -column 2 -Control $AuditScrollViewer
        
    $global:dlpControlVariables.ActivityExplorerLabel = Show-Text -Text "Activity Explorer Trace" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left" -ShowHelp $true
    $global:dlpControlVariables.ActivityExplorerLabel.ToolTip = Get-ToolTip -Text "Open activity explorer tab in DLP policies section`nAdd the filter 'Rule' and select the DLP Rule in the filter`nAdd filters to get the DLP Rule match in question`nStart recording the trace and click refresh button above the result table."
    Add-ControlToTableAt -TableObj $tableGrid -row 8 -column 1 -Control $global:dlpControlVariables.ActivityExplorerLabel

    $AvtivityFileButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedActivityLabel" `
        -GlobalFileListName "ActivityFile" `
        -ButtonName "Attach Activity Explorer Trace" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 8 -column 2 -Control $AvtivityFileButton
    
    $global:dlpControlVariables.BrowsedActivityLabel = Show-Text -Text "Attached Activity Explorer trace" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $ActivityScrollViewer = New-Object Windows.Controls.ScrollViewer
    $ActivityScrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $ActivityScrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $ActivityScrollViewer.Content = $global:dlpControlVariables.BrowsedActivityLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 9 -column 2 -Control $ActivityScrollViewer
        
    $tableGrid.Margin = New-Object System.Windows.Thickness(10,30,10,10)
    $tableGrid.HorizontalAlignment = "Center"
    $tableGrid.ColumnDefinitions[2].Width = 410
    
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Clear()
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($supportDataHeader) > $null
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($tableGrid) > $null
   
    $GetDlpAlertsExport = Get-Button -ButtonName "Export Support Data" 
    $GetDlpAlertsExport.Margin = New-Object System.Windows.Thickness(10,50,10,10)
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($GetDlpAlertsExport) > $null

   # $Disclaimer = Show-Text -Text "*Hover (move your mouse over) on the text boxes or Headers to see hints of how to get the data" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" -Color $redColor
   # $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($Disclaimer) > $null

    $GetDlpAlertsExport.Add_Click({
    
        # Create a new SaveFileDialog object
        $Folder = Get-ExportFolder("ExportedDLPAlertsData")
        if (!$Folder) {
            return
        }
        $filePath = $Folder + "\"+"DLPAlertsExport.Json"
        
        $supportData=@{}
        $supportData["ItemIdentifier"] = $global:dlpControlVariables.itemId.Text
        $supportData["Workload"] = $global:dlpControlVariables.WorkloadCombobox.Text
        $supportData["ImpactedRule"] = $global:dlpControlVariables.ImpactedRuleComboboxAlerts.Text
        $supportData["DlpRules"] = $global:ContextScopeVariables.dlpRules
        # $supportData["Forests"] = Get-ForestInfo
        $supportData["DateTime"] = $global:ContextScopeVariables["DlpAlertsDateTime"]

        try {

            # Copy the files to the destination folder
            $supportData["AlertFiddlerFile"] = Get-FileName($global:dlpControlVariables.AlertFiddlerFile)
            foreach ($file in $global:dlpControlVariables.AlertFiddlerFile) {
                Copy-Item $file $Folder -Force
            }
            # Copy the files to the destination folder
            $supportData["AuditFile"] = Get-FileName($global:dlpControlVariables.AuditFile)
            foreach ($file in $global:dlpControlVariables.AuditFile) {
                Copy-Item $file $Folder -Force
            }
            # Copy the files to the destination folder
            $supportData["ActivityFile"] = Get-FileName($global:dlpControlVariables.ActivityFile)
            foreach ($file in $global:dlpControlVariables.ActivityFile) {
                Copy-Item $file $Folder -Force
            }

            # Zip the destination folder
            CleanAndShowFolder -Folder $Folder -supportData $supportData -filePath $filePath
        }
        catch {
            [System.Windows.MessageBox]::Show("Failed to create zip file. Error message: $_", "Error", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error)
        }
    })
}

function Get-TooltipForAlertsId( $sender, $eventArgs){
    $teamsMessage = "Open Microsoft Teams in edge browser`nOpen the corresponding message`nHit f12 and open Network`nNow like the message with emoticon`nCheck for a call 'messages/{messageId}/properties'`nCopy the Number between messages/ and /properties"
    $EndpointMessage = "Give the full file location path of the file. `nHold Shift and right-click on the file, select Copy Path."
    $spo = "Navigate to the document library on Browser `n Select the file `n Click on the ... dots `n Select 'Details' option `n A panel opens on the right `n Scroll to Bottom `n Click on copy icon beside path"
    $exchange = "Give the messageId in this format:`n<PH0PR00MB09993EA57251D44FD792BFD99@PH0PR00MB0999.namprd00.prod.outlook.com>"

    $selectedWorkload = $sender.SelectedItem
    switch ($selectedWorkload) {
        "Exchange" {
            $global:dlpControlVariables.itemIdentifierLabel.ToolTip = $exchange
        }
        "Sharepoint/Onedrive" {
            $global:dlpControlVariables.itemIdentifierLabel.ToolTip = $spo
        }
        "Endpoint" {
            $global:dlpControlVariables.itemIdentifierLabel.ToolTip = $EndpointMessage
        }
        "Teams" {
            $global:dlpControlVariables.itemIdentifierLabel.ToolTip = $teamsMessage
        }
    }
}

function Get-DlpTeamsSupportTemplate(){
    $blueColor = [System.Windows.Media.Color]::FromRgb(63, 119, 206)
    $redColor = [System.Windows.Media.Color]::FromRgb(200, 10, 10)
    $supportDataHeader = Show-Text -Text "DLP Teams Support Data Template" -Color $blueColor -fontSize 20

    $tableGrid = Get-Table -columns 4 -rows 10

    $AffectedMessage = Show-Text -Text "Message Id" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left" -ShowHelp $true
    $AffectedMessage.ToolTip = Get-ToolTip -Text "Open Microsoft Teams in edge browser`nOpen the corresponding message`nHit f12 and open Network`nNow like the message with emoticon`nCheck for a call 'messages/{messageId}/properties'`nCopy the Number between messages/ and /properties"
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 1 -Control $AffectedMessage

    $global:dlpControlVariables.messageId = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 2 -Control $global:dlpControlVariables.messageId

    $scopedPolicyLabel = Show-Text -Text "Impacted Policy" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 1 -Control $scopedPolicyLabel
    
    $global:dlpControlVariables.scopedPolicyComboboxTeams = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.scopedPolicyComboboxTeams.ItemsSource = $global:ContextScopeVariables.dlpPolicyDropDown
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 2 -Control $global:dlpControlVariables.scopedPolicyComboboxTeams

    $global:dlpControlVariables.scopedPolicyComboboxTeams.add_SelectionChanged({
        if ($global:dlpControlVariables.scopedPolicyComboboxTeams.SelectedItem -ne $null){
            $selectedRule = $global:ContextScopeVariables.dlpRules|?{$_.ParentPolicyName -eq $global:dlpControlVariables.scopedPolicyComboboxTeams.SelectedItem}
            if ($selectedRule.GetType().Name -eq "PSObject")
            {
                $selectedRuleName = @( $selectedRule.Name )
            }
            else
            {
                $selectedRuleName = $selectedRule.Name
            }
            
            $global:dlpControlVariables.ImpactedRuleComboboxTeams.ItemsSource = $selectedRuleName
        }
    })
        
    $dateTimeLabel = Show-Text -Text "Date & Time of issue (UTC)" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 1 -Control $dateTimeLabel

    $dateTimeButton = Get-Button -ButtonName "Select date & Time" -Margin "0,0,10,0" -HorizontalAlignment "Left" -height 30 -width 220
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 2 -Control $dateTimeButton

    $global:ContextScopeVariables["DlpTeamsDateTimeLabel"] = Show-Text -Text "UTC Date Time" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 3 -Control $global:ContextScopeVariables["DlpTeamsDateTimeLabel"]
    
    $dateTimeButton.Add_Click({
        $global:ContextScopeVariables.DateTimeProp = "DlpTeamsDateTime"
        $global:ContextScopeVariables["DlpTeamsDateTime"] = ""
        Get-DateTimePickerDialog 
    })
    
    $ImpactedRule = Show-Text -Text "Impacted Rule" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 1 -Control $ImpactedRule
    
    $global:dlpControlVariables.ImpactedRuleComboboxTeams = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.ImpactedRuleComboboxTeams.ItemsSource = $global:ContextScopeVariables.dlpRuleDropDown
    #$global:dlpControlVariables.ImpactedLabelCombobox.SelectionMode = "Multiple"
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 2 -Control $global:dlpControlVariables.ImpactedRuleComboboxTeams

    $global:dlpControlVariables.ImpactedRuleComboboxTeams.add_SelectionChanged({
        if ($global:dlpControlVariables.ImpactedRuleComboboxTeams.SelectedItem -ne $null){
            $selectedRule = $global:ContextScopeVariables.dlpRules|?{$_.Name -eq $global:dlpControlVariables.ImpactedRuleComboboxTeams.SelectedItem}
            $global:dlpControlVariables.scopedPolicyComboboxTeams.Text = $selectedRule.ParentPolicyName
        }
    })
    
    $ChatTypeLabel = Show-Text -Text "Type of Chat" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 1 -Control $ChatTypeLabel

    $ChatType = @('1-1','Group Chat', 'Channel', 'Private Channel', 'Shared Channel')
    $global:dlpControlVariables.ChatTypeCombobox = Get-ComboBox  -Margin "0,5,10,5" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.ChatTypeCombobox.ItemsSource = $ChatType
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 2 -Control $global:dlpControlVariables.ChatTypeCombobox

    $AffectedMessageContent = Show-Text -Text "Message Content (Sample)" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 1 -Control $AffectedMessageContent

    $global:dlpControlVariables.message = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 2 -Control $global:dlpControlVariables.message

    $SenderSMTPLabel = Show-Text -Text "Sender SMTP address" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 6 -column 1 -Control $SenderSMTPLabel

    $global:dlpControlVariables.senderSMTP = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 6 -column 2 -Control $global:dlpControlVariables.senderSMTP

    $RecipientLabel = Show-Text -Text "Recipient Info (SMTP/Group Name/Channel)" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 7 -column 1 -Control $RecipientLabel

    $global:dlpControlVariables.RecipentDetails = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 7 -column 2 -Control $global:dlpControlVariables.RecipentDetails

    $BrowseAttachLabel = Show-Text -Text "Attach Screenshot/ Fiddler / Other info?" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 8 -column 1 -Control $BrowseAttachLabel

    $BrowseAttachButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedTeamsFileLabel" `
        -GlobalFileListName "teamsFileData" `
        -ButtonName "Browse Supporting Files" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 8 -column 2 -Control $BrowseAttachButton

    $global:dlpControlVariables.BrowsedTeamsFileLabel = Show-Text -Text "Attached Files" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $FilesScrollViewer = New-Object Windows.Controls.ScrollViewer
    $FilesScrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $FilesScrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $FilesScrollViewer.Content = $global:dlpControlVariables.BrowsedTeamsFileLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 9 -column 2 -Control $FilesScrollViewer

    $tableGrid.Margin = New-Object System.Windows.Thickness(10,30,10,10)
    $tableGrid.HorizontalAlignment = "Center"
    $tableGrid.ColumnDefinitions[2].Width = 410
    
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Clear()
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($supportDataHeader) > $null
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($tableGrid) > $null
   
    $GetDlpTeamsExport = Get-Button -ButtonName "Export Support Data" 
    $GetDlpTeamsExport.Margin = New-Object System.Windows.Thickness(10,50,10,10)
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($GetDlpTeamsExport) > $null
    $GetDlpTeamsExport.Add_Click({
    
        # Create a new SaveFileDialog object
        $Folder = Get-ExportFolder("ExportedDLPTeamsData")
        if (!$Folder) {
            return
        }
        $filePath = $Folder + "\"+"DLPPolicyExport.Json"
        
        $supportData=@{}
        $supportData["DlpPolicy"] = $global:ContextScopeVariables.dlpPolicy
        $supportData["DlpRule"] = $global:ContextScopeVariables.dlpRules
        $supportData["MessageId"] = $global:dlpControlVariables.messageId.Text
        $supportData["ImpactedRule"] = $global:dlpControlVariables.ImpactedRuleComboboxTeams.Text
        $supportData["ImpactedPolicy"] = $global:dlpControlVariables.scopedPolicyComboboxTeams.Text
        $supportData["ChatType"] = $global:dlpControlVariables.ChatTypeCombobox.Text
        $supportData["SampleMessage"] = $global:dlpControlVariables.message.Text
        $supportData["SenderSMTP"] = $global:dlpControlVariables.senderSMTP.Text
        $supportData["RecipentDetails"] = $global:dlpControlVariables.RecipentDetails.Text
        # $supportData["Forests"] = Get-ForestInfo
        $supportData["DateTime"] = $global:ContextScopeVariables["DlpTeamsDateTime"]

        try {
            # Copy the files to the destination folder
            $supportData["SupportingFiles"] = Get-FileName($global:dlpControlVariables.teamsFileData)
            foreach ($file in $global:dlpControlVariables.teamsFileData) {
                Copy-Item $file $Folder -Force
            }

            # Zip the destination folder
            CleanAndShowFolder -Folder $Folder -supportData $supportData -filePath $filePath
        }
        catch {
            [System.Windows.MessageBox]::Show("Failed to create zip file. Error message: $_", "Error", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error)
        }
    })
}

function Get-DlpEndpointSupportTemplate(){
    $blueColor = [System.Windows.Media.Color]::FromRgb(63, 119, 206)
    $redColor = [System.Windows.Media.Color]::FromRgb(200, 10, 10)
    $supportDataHeader = Show-Text -Text "DLP Endpoint Support Data Template" -Color $blueColor -fontSize 20

    $tableGrid = Get-Table -columns 4 -rows 13

    $scopedPolicyLabel = Show-Text -Text "Impacted Policy" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 1 -Control $scopedPolicyLabel

    $global:dlpControlVariables.scopedPolicyComboboxEndpoint = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.scopedPolicyComboboxEndpoint.ItemsSource = $global:ContextScopeVariables.dlpPolicyDropDown
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 2 -Control $global:dlpControlVariables.scopedPolicyComboboxEndpoint

    $global:dlpControlVariables.scopedPolicyComboboxEndpoint.add_SelectionChanged({
        if ($global:dlpControlVariables.scopedPolicyComboboxEndpoint.SelectedItem -ne $null){
            $selectedRule = $global:ContextScopeVariables.dlpRules|?{$_.ParentPolicyName -eq $global:dlpControlVariables.scopedPolicyComboboxEndpoint.SelectedItem}
            if ($selectedRule.GetType().Name -eq "PSObject")
            {
                $selectedRuleName = @( $selectedRule.Name )
            }
            else
            {
                $selectedRuleName = $selectedRule.Name
            }
            
            $global:dlpControlVariables.ImpactedRuleComboboxEndpoint.ItemsSource = $selectedRuleName
        }
    })
    
    $ImpactedRule = Show-Text -Text "Impacted Rule" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 1 -Control $ImpactedRule
    
    $global:dlpControlVariables.ImpactedRuleComboboxEndpoint = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.ImpactedRuleComboboxEndpoint.ItemsSource = $global:ContextScopeVariables.dlpRuleDropDown
    #$global:dlpControlVariables.ImpactedLabelCombobox.SelectionMode = "Multiple"
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 2 -Control $global:dlpControlVariables.ImpactedRuleComboboxEndpoint
    
    $global:dlpControlVariables.ImpactedRuleComboboxEndpoint.add_SelectionChanged({
        if ($global:dlpControlVariables.ImpactedRuleComboboxEndpoint.SelectedItem -ne $null){
            $selectedRule = $global:ContextScopeVariables.dlpRules|?{$_.Name -eq $global:dlpControlVariables.ImpactedRuleComboboxEndpoint.SelectedItem}
            $global:dlpControlVariables.scopedPolicyComboboxEndpoint.Text = $selectedRule.ParentPolicyName
        }
    })
        
    $dateTimeLabel = Show-Text -Text "Date & Time of issue (UTC)" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 1 -Control $dateTimeLabel

    $dateTimeButton = Get-Button -ButtonName "Select date & Time" -Margin "0,0,10,0" -HorizontalAlignment "Left" -height 30 -width 220
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 2 -Control $dateTimeButton

    $global:ContextScopeVariables["DlpEndpointDateTimeLabel"] = Show-Text -Text "UTC Date Time" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 3 -Control $global:ContextScopeVariables["DlpEndpointDateTimeLabel"]
    
    $dateTimeButton.Add_Click({
        $global:ContextScopeVariables.DateTimeProp = "DlpEndpointDateTime"
        $global:ContextScopeVariables["DlpEndpointDateTime"] = ""
        Get-DateTimePickerDialog 
    })

    $clientAnalyzerInfo1 = Show-Text -Text "Please download and extract Client Analyzer from" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 2 -Control $clientAnalyzerInfo1

    $clientAnalyzerInfo2 = Get-TextBox -Text "https://aka.ms/mdatpanalyzer" -IsReadOnly $true -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 3 -Control $clientAnalyzerInfo2
    
    $clientAnalyzerAdditionalInfo1 = Show-Text -Text "Additional Arguments for Client Analyzer Tool" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 2 -Control $clientAnalyzerAdditionalInfo1
    
    $global:dlpControlVariables.ClientAnalyzerParameters = Get-TextBox -Width 200 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 3 -Control $global:dlpControlVariables.ClientAnalyzerParameters
    
    $clientAnalyzerLocation = Show-Text -Text "Client Analyzer Location" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 1 -Control $clientAnalyzerLocation
    
    $BrowseClientAnalyzer = Get-Button -ButtonName "Browse Location" -Margin "0,0,10,0" -HorizontalAlignment "Left" -height 30 -width 220
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 2 -Control $BrowseClientAnalyzer
    
    $BrowseClientAnalyzer.Add_Click({    
        $fileDialog = New-Object System.Windows.Forms.OpenFileDialog
        $fileDialog.Multiselect = $false
        $fileDialog.Filter = "MDEClientAnalyzer.cmd|MDEClientAnalyzer.cmd"
        $result = $fileDialog.ShowDialog()
        if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
                $global:dlpControlVariables.clientAnalyzerFileName = $fileDialog.FileName
                $global:dlpControlVariables.BrowsedClientAnalyzerLabel.Text = $global:dlpControlVariables.clientAnalyzerFileName
                $global:dlpControlVariables.BrowsedClientAnalyzerLabel.Height = 30
            }
    })
    
    $RunClientAnalyzer = Get-Button -ButtonName "Run ClientAnalyzer" -Margin "0,0,10,0" -HorizontalAlignment "Left" -height 30 -width 220
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 3 -Control $RunClientAnalyzer
    
    $RunClientAnalyzer.Add_Click({
        $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
        if ($currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) -eq $false)
        {
            [System.Windows.MessageBox]::Show("Please start compliance diagnostics tool in Admin mode to run client analyzer","Error",0,0)
            return
        }
        
        if ($global:dlpControlVariables.clientAnalyzerFileName -eq $null)
        {
            [System.Windows.MessageBox]::Show("Please select MDEClientAnalyzer executable from Browse Location tab.","Error",0,0)
            return
        }
        
        $arguments = "-t " + $global:dlpControlVariables.ClientAnalyzerParameters.Text
        Start-Process -filePath $global:dlpControlVariables.clientAnalyzerFileName -ArgumentList $arguments
    })
    
    $global:dlpControlVariables.BrowsedClientAnalyzerLabel = Show-Text -Text "Client Analyzer Location" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $ClientAnalyzerViewer = New-Object Windows.Controls.ScrollViewer
    $ClientAnalyzerViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $ClientAnalyzerViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $ClientAnalyzerViewer.Content = $global:dlpControlVariables.BrowsedClientAnalyzerLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 6 -column 2 -Control $ClientAnalyzerViewer
    
    $BrowseClientAnalyzerOpLabel = Show-Text -Text "Attach ClientAnalyzer Output" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 7 -column 1 -Control $BrowseClientAnalyzerOpLabel

    $BrowseClientAnalyzerOpButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedClientAnalyzerOpLabel" `
        -GlobalFileListName "BrowsedClientAnalyzerOpFiles" `
        -ButtonName "Browse ClientAnalyzer Output" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 7 -column 2 -Control $BrowseClientAnalyzerOpButton

    $global:dlpControlVariables.BrowsedClientAnalyzerOpLabel = Show-Text -Text "Attached ClientAnalyzer Output" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $ClientAnalyzerOpViewer = New-Object Windows.Controls.ScrollViewer
    $ClientAnalyzerOpViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $ClientAnalyzerOpViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $ClientAnalyzerOpViewer.Content = $global:dlpControlVariables.BrowsedClientAnalyzerOpLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 8 -column 2 -Control $ClientAnalyzerOpViewer
    
    $BrowseReproLabel = Show-Text -Text "Sample Repro File" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 9 -column 1 -Control $BrowseReproLabel

    $BrowseReproButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedEndpointReproLabel" `
        -GlobalFileListName "BrowsedEndpointReproFiles" `
        -ButtonName "Browse Repro Files" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 9 -column 2 -Control $BrowseReproButton

    $global:dlpControlVariables.BrowsedEndpointReproLabel = Show-Text -Text "Attached Files" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $ReproFilesScrollViewer = New-Object Windows.Controls.ScrollViewer
    $ReproFilesScrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $ReproFilesScrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $ReproFilesScrollViewer.Content = $global:dlpControlVariables.BrowsedEndpointReproLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 10 -column 2 -Control $ReproFilesScrollViewer
    
    $BrowseAttachLabel = Show-Text -Text "Attach Screenshot/ Other info" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 11 -column 1 -Control $BrowseAttachLabel

    $BrowseAttachButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedEndpointFileLabel" `
        -GlobalFileListName "endpointFileData" `
        -ButtonName "Browse Supporting Files" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 11 -column 2 -Control $BrowseAttachButton

    $global:dlpControlVariables.BrowsedEndpointFileLabel = Show-Text -Text "Attached Files" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $FilesScrollViewer = New-Object Windows.Controls.ScrollViewer
    $FilesScrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $FilesScrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $FilesScrollViewer.Content = $global:dlpControlVariables.BrowsedEndpointFileLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 12 -column 2 -Control $FilesScrollViewer

    $tableGrid.Margin = New-Object System.Windows.Thickness(10,30,10,10)
    $tableGrid.HorizontalAlignment = "Center"
    $tableGrid.ColumnDefinitions[2].Width = 410
    
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Clear()
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($supportDataHeader) > $null
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($tableGrid) > $null
   
    $GetDlpEndpointExport = Get-Button -ButtonName "Export Support Data" 
    $GetDlpEndpointExport.Margin = New-Object System.Windows.Thickness(10,50,10,10)
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($GetDlpEndpointExport) > $null
    $GetDlpEndpointExport.Add_Click({
    
        # Create a new SaveFileDialog object
        $Folder = Get-ExportFolder("ExportedDLPEndpointData")
        if (!$Folder) {
            return
        }
        $filePath = $Folder + "\"+"DLPEndpointExport.Json"
        
        $supportData=@{}
        $supportData["DlpPolicy"] = $global:ContextScopeVariables.dlpPolicy
        $supportData["DlpRule"] = $global:ContextScopeVariables.dlpRules
        $supportData["ImpactedRule"] = $global:dlpControlVariables.ImpactedRuleComboboxEndpoint.Text
        $supportData["ImpactedPolicy"] = $global:dlpControlVariables.scopedPolicyComboboxEndpoint.Text
        # $supportData["Forests"] = Get-ForestInfo
        $supportData["DateTime"] = $global:ContextScopeVariables["DlpEndpointDateTime"]

        try {
            # Copy the files to the destination folder
            $supportData["SupportingFiles"] = Get-FileName($global:dlpControlVariables.endpointFileData)
            foreach ($file in $global:dlpControlVariables.endpointFileData) {
                Copy-Item $file $Folder -Force
            }
            
            $supportData["ClientAnalyzerOpFiles"] = Get-FileName($global:dlpControlVariables.BrowsedClientAnalyzerOpFiles)
            foreach ($file in $global:dlpControlVariables.BrowsedClientAnalyzerOpFiles) {
                Copy-Item $file $Folder -Force
            }
            
            $supportData["EndpointReproFiles"] = Get-FileName($global:dlpControlVariables.BrowsedEndpointReproFiles)
            foreach ($file in $global:dlpControlVariables.BrowsedEndpointReproFiles) {
                Copy-Item $file $Folder -Force
            }

            # Zip the destination folder
            CleanAndShowFolder -Folder $Folder -supportData $supportData -filePath $filePath
        }
        catch {
            [System.Windows.MessageBox]::Show("Failed to create zip file. Error message: $_", "Error", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error)
        }
    })
}


function Get-DlpSPOSupportTemplate(){

    $blueColor = [System.Windows.Media.Color]::FromRgb(63, 119, 206)
    $redColor = [System.Windows.Media.Color]::FromRgb(200, 10, 10)
    $supportDataHeader = Show-Text -Text "DLP Sharepoint/ODB Support Data Template" -Color $blueColor -fontSize 20

    $tableGrid = Get-Table -columns 4 -rows 11

    $AffectedDoc = Show-Text -Text "Affected File Path" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left" -ShowHelp $true
    $AffectedDoc.ToolTip = Get-ToolTip -Text "Navigate to the document library on Browser `n Select the file `n Click on the ... dots `n Select 'Details' option `n A panel opens on the right `n Scroll to Bottom `n Click on copy icon beside path"
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 1 -Control $AffectedDoc

    $global:dlpControlVariables.AffectedDocPath = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 2 -Control $global:dlpControlVariables.AffectedDocPath

    $global:dlpControlVariables.AffectedDocError = Show-Text -Text "Could not find the document. Please make sure that a valid path is provided." -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left" -Color $redColor
    $global:dlpControlVariables.AffectedDocError.Visibility = [Windows.Visibility]::Hidden
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 3 -Control $global:dlpControlVariables.AffectedDocError 

    $scopedPolicyLabel = Show-Text -Text "Impacted Policy" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 1 -Control $scopedPolicyLabel

    $global:dlpControlVariables.scopedPolicyComboboxSPO = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.scopedPolicyComboboxSPO.ItemsSource = $global:ContextScopeVariables.dlpPolicyDropDown
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 2 -Control $global:dlpControlVariables.scopedPolicyComboboxSPO

    $global:dlpControlVariables.scopedPolicyComboboxSPO.add_SelectionChanged({
        if ($global:dlpControlVariables.scopedPolicyComboboxSPO.SelectedItem -ne $null){
            $selectedRule = $global:ContextScopeVariables.dlpRules|?{$_.ParentPolicyName -eq $global:dlpControlVariables.scopedPolicyComboboxSPO.SelectedItem}
            if ($selectedRule.GetType().Name -eq "PSObject")
            {
                $selectedRuleName = @( $selectedRule.Name )
            }
            else
            {
                $selectedRuleName = $selectedRule.Name
            }
            
            $global:dlpControlVariables.ImpactedRuleComboboxSPO.ItemsSource = $selectedRuleName
        }
    })
    
    $dateTimeLabel = Show-Text -Text "Date & Time of issue (UTC)" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 1 -Control $dateTimeLabel

    $dateTimeButton = Get-Button -ButtonName "Select date & Time" -Margin "0,0,10,0" -HorizontalAlignment "Left" -height 30 -width 220
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 2 -Control $dateTimeButton

    $global:ContextScopeVariables["DlpSPODateTimeLabel"] = Show-Text -Text "UTC Date Time" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 3 -Control $global:ContextScopeVariables["DlpSPODateTimeLabel"]
    
    $dateTimeButton.Add_Click({
        $global:ContextScopeVariables.DateTimeProp = "DlpSPODateTime"
        $global:ContextScopeVariables["DlpSPODateTime"] = ""
        Get-DateTimePickerDialog 
    })
    
    $ImpactedRule = Show-Text -Text "Impacted Rule" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 1 -Control $ImpactedRule
    
    $global:dlpControlVariables.ImpactedRuleComboboxSPO = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.ImpactedRuleComboboxSPO.ItemsSource = $global:ContextScopeVariables.dlpRuleDropDown
    #$global:dlpControlVariables.ImpactedLabelCombobox.SelectionMode = "Multiple"
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 2 -Control $global:dlpControlVariables.ImpactedRuleComboboxSPO

    $global:dlpControlVariables.ImpactedRuleComboboxSPO.add_SelectionChanged({
        if ($global:dlpControlVariables.ImpactedRuleComboboxSPO.SelectedItem -ne $null){
            $selectedRule = $global:ContextScopeVariables.dlpRules|?{$_.Name -eq $global:dlpControlVariables.ImpactedRuleComboboxSPO.SelectedItem}
            $global:dlpControlVariables.scopedPolicyComboboxSPO.Text = $selectedRule.ParentPolicyName
        }
    })

    $docSiteIdlabel = Show-Text -Text "Site ID (GUID) of document" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left" -ShowHelp $true
    $docSiteIdlabel.ToolTip = Get-ToolTip -Text "Populate the Document Path field`nThen a link would be shown beside this text box`nUse that link to get the siteId`ncopy the GUID between<d:Id ...></d:Id>"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 1 -Control $docSiteIdlabel
    
    $global:dlpControlVariables.docSiteId = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 2 -Control $global:dlpControlVariables.docSiteId

    $global:dlpControlVariables.docSiteIdHelp = Show-Text -Text "Help" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 3 -Control $global:dlpControlVariables.docSiteIdHelp
    $global:dlpControlVariables.docSiteIdHelp.Visibility = [Windows.Visibility]::Hidden

    $reportSMTP = Show-Text -Text "Test-DlpPolicy Report Email address" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 1 -Control $reportSMTP

    $global:dlpControlVariables.reportSmtp = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 2 -Control $global:dlpControlVariables.reportSmtp

    $TestDlpPoliciesButton = Get-Button -ButtonName "Run Test-DlpPolicy" -Margin "0,0,10,0" -HorizontalAlignment "Left" -height 30 -width 220
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 3 -Control $TestDlpPoliciesButton

    $global:dlpControlVariables.AffectedDocPath.Add_TextChanged({
        $FileUrl = $global:dlpControlVariables.AffectedDocPath.Text -replace ":w:/r/", ""
        $siteUrl = $FileUrl -replace "(https?://.+?\.sharepoint\.com|https?://.+?\.sharepoint-df\.com|https?://(1drv|onedrive)\.live\.com)/([^/]+)/([^/]+)/([^/]+/)*[^/]+(\.\w+)?(\?[^#]*)?(#.*)?$", '$1/$3/$4'
        $apiLink = "$siteUrl/_api/site/id"
        if($siteUrl){
            $global:dlpControlVariables.docSiteIdHelp.Text = ""
            $global:dlpControlVariables.docSiteIdHelp.Inlines.Clear()
            # Add regular text to the tooltip
            $global:dlpControlVariables.docSiteIdHelp.Inlines.Add("Click the following link to get the site id between <d:Id> tags `n")

            # Create a Hyperlink
            $hyperlink = New-Object Windows.Documents.Hyperlink
            $hyperlink.Inlines.Add("Click Here For SiteID")
            $hyperlink.NavigateUri = $apiLink
            $hyperlink.Add_RequestNavigate({
                Start-Process $args.Uri.AbsoluteUri
            })

            # Add the Hyperlink to the TextBlock
            $global:dlpControlVariables.docSiteIdHelp.Inlines.Add($hyperlink)
            $global:dlpControlVariables.docSiteIdHelp.Visibility = [Windows.Visibility]::Visible
        }else{
            $global:dlpControlVariables.docSiteIdHelp.Visibility = [Windows.Visibility]::Hidden
        }
    })

    $TestDlpPoliciesButton.Add_Click({        
        if ($global:dlpControlVariables.AffectedDocPath.Text -eq $null)
        {
            [System.Windows.MessageBox]::Show("Please enter the affected doc path in SPO/ODB.","Error",0,0)
            return
        }
        
        if ($global:dlpControlVariables.reportSmtp.Text -eq $null)
        {
            [System.Windows.MessageBox]::Show("Please enter the email the report has to be sent to.","Error",0,0)
            return
        }
        
        if ($global:dlpControlVariables.docSiteId.Text -eq $null)
        {
            [System.Windows.MessageBox]::Show("Please enter the Site ID (GUID) of the document.","Error",0,0)
            return
        }
        
        $global:dlpControlVariables.AffectedDocError.Visibility = [Windows.Visibility]::Hidden
        $v = $global:dlpControlVariables.AffectedDocPath.Text
        $FileUrl = $v -replace ":w:/r/", ""
        $siteUrl = $FileUrl -replace "(https?://.+?\.sharepoint\.com|https?://.+?\.sharepoint-df\.com|https?://(1drv|onedrive)\.live\.com)/([^/]+)/([^/]+)/([^/]+/)*[^/]+(\.\w+)?(\?[^#]*)?(#.*)?$", '$1/$3/$4'
        $siteId = $global:dlpControlVariables.docSiteId.Text

        $workload = "SPO"
        if($FileUrl -like "*-my.sharepoint*")
        {
            $workload = "ODB"
        }

        $pattern = "(?<=\%7B)(.*?)(?=\%7D)"
        $pattern1 = "(?<=\{)(.*?)(?=\})"
        
        if ($FileUrl -match $pattern) {
            $matchesR = [regex]::Matches($FileUrl, $pattern)
            $match = $matchesR[0].Value
            Write-Host "Id" -NoNewLine -ForegroundColor Blue; Write-Host " $match" -ForegroundColor Cyan
            $id = $match
        }elseif($FileUrl -match $pattern1){
            $matchesR = [regex]::Matches($FileUrl, $pattern1)
            $match = $matchesR[0].Value
            Write-Host "Id" -NoNewLine -ForegroundColor Blue; Write-Host " $match" -ForegroundColor Cyan
            $id = $match
        }

        if(!$siteUrl){ 
            $global:dlpControlVariables.AffectedDocError.Visibility = [Windows.Visibility]::Visible
        }
        else{
            $scriptBlock = {
                param($siteId, $FileUrl, $workload, $reportAddr)
                $res = Test-DlpPolicies -SiteId $siteId -FileUrl $FileUrl -Workload $workload -SendReportTo $reportAddr
                return $res
            }
            $ps = [powershell]::Create().AddScript($scriptBlock)
            $ps.AddArgument($siteId)
            $ps.AddArgument($FileUrl)
            $ps.AddArgument($workload)
            $ps.AddArgument($global:dlpControlVariables.reportSmtp.Text)

            $global:dlpControlVariables.TDPResult = Get-ExoCmdletResult -ps $ps
            if($global:dlpControlVariables.TDPResult.Message.Contains("Unable to find the file")){
                $global:dlpControlVariables.AffectedDocError.Visibility = [Windows.Visibility]::Visible
            }elseif($global:dlpControlVariables.TDPResult.Message.Contains("request is accepted")){
                $global:dlpControlVariables.BrowsedTDPLabel.Text = "A Report has been sent to the above email address with subject 'Test-DlpPolicies on File'. `nPlease download it and attach here."
            }
        }
    })

    $TDPLabel = Show-Text -Text "Attach Test-DlpPolicy Report" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 6 -column 1 -Control $TDPLabel

    $TDPButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedTDPLabel" `
        -GlobalFileListName "TDPReport" `
        -ButtonName "Browse Test-DlpPolicy Report" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 6 -column 2 -Control $TDPButton

    $global:dlpControlVariables.BrowsedTDPLabel = Show-Text -Text "Attached Test-DlpPolicies Report" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $TDPscrollViewer = New-Object Windows.Controls.ScrollViewer
    $TDPscrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $TDPscrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $TDPscrollViewer.Content = $global:dlpControlVariables.BrowsedTDPLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 7 -column 2 -Control $TDPscrollViewer

    $BrowseAttachLabel = Show-Text -Text "Attach Screenshot/ Fiddler / Other info?" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 8 -column 1 -Control $BrowseAttachLabel

    $BrowseAttachButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedSPOFileLabel" `
        -GlobalFileListName "SPOGSDFiles" `
        -ButtonName "Browse Supporting Files" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 8 -column 2 -Control $BrowseAttachButton

    $global:dlpControlVariables.BrowsedSPOFileLabel = Show-Text -Text "Attached Files" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $FilesScrollViewer = New-Object Windows.Controls.ScrollViewer
    $FilesScrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $FilesScrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $FilesScrollViewer.Content = $global:dlpControlVariables.BrowsedSPOFileLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 9 -column 2 -Control $FilesScrollViewer

    $AdditionalDoc = Show-Text -Text "Additional file paths" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 10 -column 1 -Control $AdditionalDoc

    $global:dlpControlVariables.AdditionalPaths = Get-TextBox -Width 400 -height 150 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    $global:dlpControlVariables.AdditionalPaths.AcceptsReturn = $true
    $global:dlpControlVariables.AdditionalPaths.TextWrapping = "Wrap"
    Add-ControlToTableAt -TableObj $tableGrid -row 10 -column 2 -Control $global:dlpControlVariables.AdditionalPaths

    $tableGrid.Margin = New-Object System.Windows.Thickness(10,30,10,10)
    $tableGrid.HorizontalAlignment = "Center"
    $tableGrid.ColumnDefinitions[2].Width = 410
    
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Clear()
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($supportDataHeader) > $null
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($tableGrid) > $null
   
    $GetDlpSPOExport = Get-Button -ButtonName "Export Support Data" 
    $GetDlpSPOExport.Margin = New-Object System.Windows.Thickness(10,50,10,10)
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($GetDlpSPOExport) > $null

    $GetDlpSPOExport.Add_Click({
    
        # Create a new SaveFileDialog object
        $Folder = Get-ExportFolder("ExportedDLPSPOData")
        if (!$Folder) {
            return
        }
        $filePath = $Folder + "\"+"DLPPolicyExport.Json"
            
        $supportData=@{}
        $supportData["DlpPolicy"] = $global:ContextScopeVariables.dlpPolicy
        $supportData["DlpRule"] = $global:ContextScopeVariables.dlpRules
        $supportData["FilePath"] = $global:dlpControlVariables.AffectedDocPath.Text
        $supportData["ImpactedRule"] = $global:dlpControlVariables.ImpactedRuleComboboxSPO.Text
        $supportData["ImpactedPolicy"] = $global:dlpControlVariables.scopedPolicyComboboxSPO.Text
        $supportData["AdditionalFilePaths"] = $global:dlpControlVariables.AdditionalPaths.Text
        $supportData["ComplianceProperties"] = $global:dlpControlVariables.TDPResult
        # $supportData["Forests"] = Get-ForestInfo
        $supportData["DateTime"] = $global:ContextScopeVariables["DlpSPODateTime"]

        try {
            # Copy the files to the destination folder
            $supportData["TestDlpPoliciesReportFiles"] = Get-FileName($global:dlpControlVariables.TDPReport)
            foreach ($file in $global:dlpControlVariables.TDPReport) {
                Copy-Item $file $Folder -Force
            }

            # Copy the files to the destination folder
            $supportData["SupportingFiles"] = Get-FileName($global:dlpControlVariables.SPOGSDFiles)
            foreach ($file in $global:dlpControlVariables.SPOGSDFiles) {
                Copy-Item $file $Folder -Force
            }

            # Zip the destination folder
            CleanAndShowFolder -Folder $Folder -supportData $supportData -filePath $filePath
        }
        catch {
            [System.Windows.MessageBox]::Show("Failed to create zip file. Error message: $_", "Error", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error)
        }
    })
}

function Get-DlpEXOSupportTemplate(){

    $blueColor = [System.Windows.Media.Color]::FromRgb(63, 119, 206)
    $supportDataHeader = Show-Text -Text "DLP Exchange Support Data Template" -Color $blueColor -fontSize 20

    $tableGrid = Get-Table -columns 4 -rows 16

    $AffectedClient = Show-Text -Text "Affected Client" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 1 -Control $AffectedClient


    $AffectedClientCombo = @('Outlook For Web','Outlook Windows application', "Outlook Mobile")
    $global:dlpControlVariables.AffectedClientComboboxExo = Get-ComboBox  -Margin "0,5,10,5" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.AffectedClientComboboxExo.ItemsSource = $AffectedClientCombo
    Add-ControlToTableAt -TableObj $tableGrid -row 0 -column 2 -Control $global:dlpControlVariables.AffectedClientComboboxExo

    $ImpactedUserSMTP = Show-Text -Text "Impacted User/Group SMTP" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 1 -Control $ImpactedUserSMTP

    $global:dlpControlVariables.ImpactedUserTextBoxExo = Get-TextBox -Width 400 -Margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 1 -column 2 -Control $global:dlpControlVariables.ImpactedUserTextBoxExo
        
    $dateTimeLabel = Show-Text -Text "Date & Time of issue (UTC)" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 1 -Control $dateTimeLabel

    $dateTimeButton = Get-Button -ButtonName "Select date & Time" -Margin "0,0,10,0" -HorizontalAlignment "Left" -height 30 -width 220
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 2 -Control $dateTimeButton

    $global:ContextScopeVariables["DlpExoDateTimeLabel"] = Show-Text -Text "UTC Date Time" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 2 -column 3 -Control $global:ContextScopeVariables["DlpExoDateTimeLabel"]
    
    $dateTimeButton.Add_Click({
        $global:ContextScopeVariables.DateTimeProp = "DlpExoDateTime"
        $global:ContextScopeVariables["DlpExoDateTime"] = ""
        Get-DateTimePickerDialog 
    })
    
    $scopedPolicyLabel = Show-Text -Text "Impacted Policy" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 1 -Control $scopedPolicyLabel

    $global:dlpControlVariables.scopedPolicyComboboxExo = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.scopedPolicyComboboxExo.ItemsSource = $global:ContextScopeVariables.dlpPolicyDropDown
    Add-ControlToTableAt -TableObj $tableGrid -row 3 -column 2 -Control $global:dlpControlVariables.scopedPolicyComboboxExo

    $global:dlpControlVariables.scopedPolicyComboboxExo.add_SelectionChanged({
        if ($global:dlpControlVariables.scopedPolicyComboboxExo.SelectedItem -ne $null){
            $selectedRule = $global:ContextScopeVariables.dlpRules|?{$_.ParentPolicyName -eq $global:dlpControlVariables.scopedPolicyComboboxExo.SelectedItem}
            if ($selectedRule.GetType().Name -eq "PSObject")
            {
                $selectedRuleName = @( $selectedRule.Name )
            }
            else
            {
                $selectedRuleName = $selectedRule.Name
            }
            
            $global:dlpControlVariables.ImpactedRuleComboboxExo.ItemsSource = $selectedRuleName
        }
    })

    $ImpactedRule = Show-Text -Text "Impacted Rule" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 1 -Control $ImpactedRule

    $global:dlpControlVariables.ImpactedRuleComboboxExo = Get-ComboBox -Margin "0,0,10,0" -Width 400 -HorizontalAlignment "Left"
    $global:dlpControlVariables.ImpactedRuleComboboxExo.ItemsSource = $global:ContextScopeVariables.dlpRuleDropDown
    #$global:dlpControlVariables.ImpactedLabelCombobox.SelectionMode = "Multiple"
    Add-ControlToTableAt -TableObj $tableGrid -row 4 -column 2 -Control $global:dlpControlVariables.ImpactedRuleComboboxExo

    $global:dlpControlVariables.ImpactedRuleComboboxExo.add_SelectionChanged({
        if ($global:dlpControlVariables.ImpactedRuleComboboxExo.SelectedItem -ne $null){
            $selectedRule = $global:ContextScopeVariables.dlpRules|?{$_.Name -eq $global:dlpControlVariables.ImpactedRuleComboboxExo.SelectedItem}
            $global:dlpControlVariables.scopedPolicyComboboxExo.Text = $selectedRule.ParentPolicyName
        }
    })
    
    $SampleEmailLabel = Show-Text -Text "Sample Email file (.eml)" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 1 -Control $SampleEmailLabel

    $SampleEmailButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedEmailLabel" `
        -GlobalFileListName "sampleEmailFileData" `
        -ButtonName "Browse Sample Email" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 5 -column 2 -Control $SampleEmailButton

    $global:dlpControlVariables.BrowsedEmailLabel = Show-Text -Text "Attached Sample Email" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $SampleEmailscrollViewer = New-Object Windows.Controls.ScrollViewer
    $SampleEmailscrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $SampleEmailscrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $SampleEmailscrollViewer.Content = $global:dlpControlVariables.BrowsedEmailLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 6 -column 2 -Control $SampleEmailscrollViewer

    $global:dlpControlVariables.EMTDLabel = Show-Text -Text "Extended Message Trace Detail" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" -ShowHelp $true
    $global:dlpControlVariables.EMTDLabel.ToolTip = Get-ToolTip -Text "Follow instructions from below page`nhttps://learn.microsoft.com/en-us/exchange/monitoring/trace-an-email-message/message-trace-modern-eac#open-message-trace"
    Add-ControlToTableAt -TableObj $tableGrid -row 7 -column 1 -Control $global:dlpControlVariables.EMTDLabel
    
    $EMTDButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedEMTDLabel" `
        -GlobalFileListName "emtdFileData" `
        -ButtonName "Browse EMTD" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 7 -column 2 -Control $EMTDButton

    $global:dlpControlVariables.BrowsedEMTDLabel = Show-Text -Text "Attached EMTD" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $EMTDscrollViewer = New-Object Windows.Controls.ScrollViewer
    $EMTDscrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $EMTDscrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $EMTDscrollViewer.Content = $global:dlpControlVariables.BrowsedEMTDLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 8 -column 2 -Control $EMTDscrollViewer

    $BrowseAttachLabel = Show-Text -Text "Attach Screenshot/ Fiddler / Other info?" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 9 -column 1 -Control $BrowseAttachLabel

    $BrowseAttachButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedFileLabel" `
        -GlobalFileListName "fileData" `
        -ButtonName "Browse Supporting Files" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    Add-ControlToTableAt -TableObj $tableGrid -row 9 -column 2 -Control $BrowseAttachButton

    $global:dlpControlVariables.BrowsedFileLabel = Show-Text -Text "Attached Files" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $FilesScrollViewer = New-Object Windows.Controls.ScrollViewer
    $FilesScrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $FilesScrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $FilesScrollViewer.Content = $global:dlpControlVariables.BrowsedFileLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 10 -column 2 -Control $FilesScrollViewer
    #$dlpSupportDataTabContent.Children.Add($global:dlpControlVariables.BrowsedFileLabel)
    
    $isPTLabel = Show-Text -Text "Is Policytip issue?" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 11 -column 1 -Control $isPTLabel

    $global:dlpControlVariables.scopedPolicyTipYes = Get-RadioButton -value "Yes" -selected $false 
    $global:dlpControlVariables.scopedPolicyTipNo = Get-RadioButton -value "No" -selected $true
    $global:dlpControlVariables.scopedPolicyTipYes.Add_Checked({ RadioButton_Yes($_) })
    $global:dlpControlVariables.scopedPolicyTipNo.Add_Checked({ RadioButton_No($_) })
    $RBstackPanel = New-Object Windows.Controls.StackPanel
    $RBstackPanel.HorizontalAlignment = 'Left'
    $RBstackPanel.Children.Add($global:dlpControlVariables.scopedPolicyTipYes)
    $RBstackPanel.Children.Add($global:dlpControlVariables.scopedPolicyTipNo)
    Add-ControlToTableAt -TableObj $tableGrid -row 11 -column 2 -Control $RBstackPanel

    $global:dlpControlVariables.PTFiddler = Show-Text -Text "Fiddler/har File" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    $global:dlpControlVariables.PTFiddler.Visibility = [Windows.Visibility]::Hidden
    Add-ControlToTableAt -TableObj $tableGrid -row 12 -column 1 -Control $global:dlpControlVariables.PTFiddler

    $global:dlpControlVariables.PTFiddlerButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedFiddlerLabel" `
        -GlobalFileListName "PTFiddlerFile" `
        -ButtonName "Browse Supporting Files" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    $global:dlpControlVariables.PTFiddlerButton.Visibility = [Windows.Visibility]::Hidden
    Add-ControlToTableAt -TableObj $tableGrid -row 12 -column 2 -Control $global:dlpControlVariables.PTFiddlerButton

    $global:dlpControlVariables.ptFiddlerHelp = Show-Text -Text "Record while drafting or opening a draft email" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 12 -column 3 -Control $global:dlpControlVariables.ptFiddlerHelp
    $global:dlpControlVariables.ptFiddlerHelp.Visibility = [Windows.Visibility]::Hidden
        
    $global:dlpControlVariables.BrowsedFiddlerLabel = Show-Text -Text "Attached Policy Tips Fiddler/har" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $global:dlpControlVariables.BrowsedFiddlerLabel.Visibility = [Windows.Visibility]::Hidden
    $fiddscrollViewer = New-Object Windows.Controls.ScrollViewer
    $fiddscrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $fiddscrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $fiddscrollViewer.Content = $global:dlpControlVariables.BrowsedFiddlerLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 13 -column 2 -Control $fiddscrollViewer
    
    $global:dlpControlVariables.PTPNR = Show-Text -Text "PNR File (If Outlook Desktop Issue)" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    $global:dlpControlVariables.PTPNR.Visibility = [Windows.Visibility]::Hidden
    Add-ControlToTableAt -TableObj $tableGrid -row 14 -column 1 -Control $global:dlpControlVariables.PTPNR

    $global:dlpControlVariables.PNRButton = Get-FileButton `
        -GlobalScopeName "dlpControlVariables" `
        -GlobalVariableName "BrowsedPNRLabel" `
        -GlobalFileListName "PnrFile" `
        -ButtonName "Browse PNR XML" `
        -Margin "0,0,10,0" `
        -HorizontalAlignment "Left" `
        -height 30 `
        -width 220 `
        -VerticalAlignment "Center"
    $global:dlpControlVariables.PNRButton.Visibility = [Windows.Visibility]::Hidden
    Add-ControlToTableAt -TableObj $tableGrid -row 14 -column 2 -Control $global:dlpControlVariables.PNRButton

    $global:dlpControlVariables.pnrHelp = Show-Text -Text "location: C:\Users<username>\AppData\Local\Microsoft\Outlook" -IsBold $false -margin "0,0,10,0" -VerticalAlignment "Center" -HorizontalAlignment "Left"
    Add-ControlToTableAt -TableObj $tableGrid -row 14 -column 3 -Control $global:dlpControlVariables.pnrHelp
    $global:dlpControlVariables.pnrHelp.Visibility = [Windows.Visibility]::Hidden    

    $global:dlpControlVariables.BrowsedPNRLabel = Show-Text -Text "Attached Policy Tips PNR File" -IsBold $false -margin "0,0,10,0" -HorizontalAlignment "Left" 
    $global:dlpControlVariables.BrowsedPNRLabel.Visibility = [Windows.Visibility]::Hidden
    $PNRdscrollViewer = New-Object Windows.Controls.ScrollViewer
    $PNRdscrollViewer.VerticalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $PNRdscrollViewer.HorizontalScrollBarVisibility = [Windows.Controls.ScrollBarVisibility]::Auto
    $PNRdscrollViewer.Content = $global:dlpControlVariables.BrowsedPNRLabel
    Add-ControlToTableAt -TableObj $tableGrid -row 15 -column 2 -Control $PNRdscrollViewer
    
    $tableGrid.Margin = New-Object System.Windows.Thickness(10,30,10,10)
    $tableGrid.HorizontalAlignment = "Center"
    $tableGrid.ColumnDefinitions[2].Width = 410
    
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Clear()
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($supportDataHeader) > $null
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($tableGrid) > $null
   
    $GetDlpExoExport = Get-Button -ButtonName "Export Support Data" 
    $GetDlpExoExport.Margin = New-Object System.Windows.Thickness(10,50,10,10)
    $global:dlpControlVariables.dlpSupportDataTabContent.Children.Add($GetDlpExoExport) > $null
    
    $GetDlpExoExport.Add_Click({
    
        # Create a new SaveFileDialog object
        $Folder = Get-ExportFolder("ExportedDLPEXOData")
        if (!$Folder) {
            return
        }
        $filePath = $Folder + "\"+"DLPPolicyExport.Json"
            
        $supportData=@{}
        $supportData["DlpPolicy"] = $global:ContextScopeVariables.dlpPolicy
        $supportData["DlpRule"] = $global:ContextScopeVariables.dlpRules
        $supportData["ImpactedClient"] = $global:dlpControlVariables.AffectedClientComboboxExo.Text
        $supportData["ImpactedUser"] = $global:dlpControlVariables.ImpactedUserTextBoxExo.Text
        $supportData["ImpactedRule"] = $global:dlpControlVariables.ImpactedRuleComboboxExo.Text
        $supportData["ImpactedPolicy"] = $global:dlpControlVariables.scopedPolicyComboboxExo.Text
        $supportData["IsPolicyTipIssue"] = $global:dlpControlVariables.scopedPolicyTipYes.IsChecked
        # $supportData["Forests"] = Get-ForestInfo
        $supportData["DateTime"] = $global:ContextScopeVariables["DlpExoDateTime"]

        try {
            # Copy the files to the destination folder
            $supportData["ReproFile"] = Get-FileName($global:dlpControlVariables.sampleEmailFileData)
            foreach ($file in $global:dlpControlVariables.sampleEmailFileData) {
                Copy-Item $file $Folder -Force
            }

            # Copy the files to the destination
            $supportData["ExtendedMessageTraceFiles"] = Get-FileName($global:dlpControlVariables.emtdFileData)
            foreach ($file in $global:dlpControlVariables.emtdFileData) {
                Copy-Item $file $Folder -Force
            }

            # Copy the files to the destination folder
            $supportData["SupportingFiles"] = Get-FileName($global:dlpControlVariables.fileData)
            foreach ($file in $global:dlpControlVariables.fileData) {
                Copy-Item $file $Folder -Force
            }

            # Copy the files to the destination folder
            $supportData["PolicyTipSupportFiles"] = Get-FileName($global:dlpControlVariables.PTFiddlerFile)
            foreach ($file in $global:dlpControlVariables.PTFiddlerFile) {
                Copy-Item $file $Folder -Force
            }

            # Copy the files to the destination folder
            $supportData["PolicyTipPnrFiles"] = Get-FileName($global:dlpControlVariables.PnrFile)
            foreach ($file in $global:dlpControlVariables.PnrFile) {
                Copy-Item $file $Folder -Force
            }

            # Zip the destination folder
            CleanAndShowFolder -Folder $Folder -supportData $supportData -filePath $filePath
        }
        catch {
            [System.Windows.MessageBox]::Show("Failed to create zip file. Error message: $_", "Error", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error)
        }
    })
}

function RadioButton_Yes($s) {
    $global:dlpControlVariables.PTFiddler.Visibility = [Windows.Visibility]::Visible
    $global:dlpControlVariables.PTFiddlerButton.Visibility = [Windows.Visibility]::Visible
    $global:dlpControlVariables.ptFiddlerHelp.Visibility = [Windows.Visibility]::Visible
    $global:dlpControlVariables.BrowsedFiddlerLabel.Visibility = [Windows.Visibility]::Visible
    $global:dlpControlVariables.PTPNR.Visibility = [Windows.Visibility]::Visible
    $global:dlpControlVariables.PNRButton.Visibility = [Windows.Visibility]::Visible
    $global:dlpControlVariables.pnrHelp.Visibility = [Windows.Visibility]::Visible
    $global:dlpControlVariables.BrowsedPNRLabel.Visibility = [Windows.Visibility]::Visible
}

function RadioButton_No($s) {
    $global:dlpControlVariables.PTFiddler.Visibility = [Windows.Visibility]::Hidden
    $global:dlpControlVariables.PTFiddlerButton.Visibility = [Windows.Visibility]::Hidden
    $global:dlpControlVariables.ptFiddlerHelp.Visibility = [Windows.Visibility]::Hidden
    $global:dlpControlVariables.BrowsedFiddlerLabel.Visibility = [Windows.Visibility]::Hidden
    $global:dlpControlVariables.PTPNR.Visibility = [Windows.Visibility]::Hidden
    $global:dlpControlVariables.PNRButton.Visibility = [Windows.Visibility]::Hidden
    $global:dlpControlVariables.pnrHelp.Visibility = [Windows.Visibility]::Hidden
    $global:dlpControlVariables.BrowsedPNRLabel.Visibility = [Windows.Visibility]::Hidden
}
 
function GetGlobalDlpRule {
    [System.Windows.Input.Mouse]::SetCursor([System.Windows.Input.Cursors]::Wait)
    if($global:ContextScopeVariables.dlpRules -and $global:ContextScopeVariables.dlpPolicy){
        return 
    }

    Write-Host "Getting data loss prevention (DLP) policies in your organization."
    $global:ContextScopeVariables.dlpPolicy = Get-DlpCompliancePolicy
    
    if ($global:ContextScopeVariables.dlpPolicy -ne $null)
    {
        if ($global:ContextScopeVariables.dlpPolicy.GetType().Name -eq "PSObject")
        {
            $global:ContextScopeVariables.dlpPolicyDropDown = @( $global:ContextScopeVariables.dlpPolicy.Name )
        }
        else
        {
            $global:ContextScopeVariables.dlpPolicyDropDown = $global:ContextScopeVariables.dlpPolicy.Name
        }
    }
    
      Write-Host "Getting data loss prevention (DLP) rules in your organization."
    $global:ContextScopeVariables.dlpRules = Get-DlpComplianceRule
    
    if ($global:ContextScopeVariables.dlpRules -ne $null)
    {
        if ($global:ContextScopeVariables.dlpRules.GetType().Name -eq "PSObject")
        {
            $global:ContextScopeVariables.dlpRuleDropDown = @( $global:ContextScopeVariables.dlpRules.Name )
        }
        else
        {
            $global:ContextScopeVariables.dlpRuleDropDown = $global:ContextScopeVariables.dlpRules.Name
        }
    }
    
    [System.Windows.Input.Mouse]::SetCursor([System.Windows.Input.Cursors]::Arrow)
}

Export-ModuleMember -Function *
# SIG # Begin signature block
# MIInwAYJKoZIhvcNAQcCoIInsTCCJ60CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAOLdGefR2Ja4vK
# bsLEpMyCrCKr9TlMa9B6pWTpclvG3aCCDXYwggX0MIID3KADAgECAhMzAAADrzBA
# DkyjTQVBAAAAAAOvMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMjMxMTE2MTkwOTAwWhcNMjQxMTE0MTkwOTAwWjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQDOS8s1ra6f0YGtg0OhEaQa/t3Q+q1MEHhWJhqQVuO5amYXQpy8MDPNoJYk+FWA
# hePP5LxwcSge5aen+f5Q6WNPd6EDxGzotvVpNi5ve0H97S3F7C/axDfKxyNh21MG
# 0W8Sb0vxi/vorcLHOL9i+t2D6yvvDzLlEefUCbQV/zGCBjXGlYJcUj6RAzXyeNAN
# xSpKXAGd7Fh+ocGHPPphcD9LQTOJgG7Y7aYztHqBLJiQQ4eAgZNU4ac6+8LnEGAL
# go1ydC5BJEuJQjYKbNTy959HrKSu7LO3Ws0w8jw6pYdC1IMpdTkk2puTgY2PDNzB
# tLM4evG7FYer3WX+8t1UMYNTAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQURxxxNPIEPGSO8kqz+bgCAQWGXsEw
# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW
# MBQGA1UEBRMNMjMwMDEyKzUwMTgyNjAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci
# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG
# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu
# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0
# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAISxFt/zR2frTFPB45Yd
# mhZpB2nNJoOoi+qlgcTlnO4QwlYN1w/vYwbDy/oFJolD5r6FMJd0RGcgEM8q9TgQ
# 2OC7gQEmhweVJ7yuKJlQBH7P7Pg5RiqgV3cSonJ+OM4kFHbP3gPLiyzssSQdRuPY
# 1mIWoGg9i7Y4ZC8ST7WhpSyc0pns2XsUe1XsIjaUcGu7zd7gg97eCUiLRdVklPmp
# XobH9CEAWakRUGNICYN2AgjhRTC4j3KJfqMkU04R6Toyh4/Toswm1uoDcGr5laYn
# TfcX3u5WnJqJLhuPe8Uj9kGAOcyo0O1mNwDa+LhFEzB6CB32+wfJMumfr6degvLT
# e8x55urQLeTjimBQgS49BSUkhFN7ois3cZyNpnrMca5AZaC7pLI72vuqSsSlLalG
# OcZmPHZGYJqZ0BacN274OZ80Q8B11iNokns9Od348bMb5Z4fihxaBWebl8kWEi2O
# PvQImOAeq3nt7UWJBzJYLAGEpfasaA3ZQgIcEXdD+uwo6ymMzDY6UamFOfYqYWXk
# ntxDGu7ngD2ugKUuccYKJJRiiz+LAUcj90BVcSHRLQop9N8zoALr/1sJuwPrVAtx
# HNEgSW+AKBqIxYWM4Ev32l6agSUAezLMbq5f3d8x9qzT031jMDT+sUAoCw0M5wVt
# CUQcqINPuYjbS1WgJyZIiEkBMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq
# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg
# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03
# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr
# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg
# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy
# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9
# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh
# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k
# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB
# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn
# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90
# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w
# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o
# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD
# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa
# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny
# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG
# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV
# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG
# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl
# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb
# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l
# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6
# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0
# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560
# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam
# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa
# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah
# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA
# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt
# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr
# /Xmfwb1tbWrJUnMTDXpQzTGCGaAwghmcAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp
# Z25pbmcgUENBIDIwMTECEzMAAAOvMEAOTKNNBUEAAAAAA68wDQYJYIZIAWUDBAIB
# BQCggbAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINs7IBk0h4vb2HT0uMt/tiuE
# MOGIBqeh9WCqiLfo1f4yMEQGCisGAQQBgjcCAQwxNjA0oBSAEgBNAGkAYwByAG8A
# cwBvAGYAdKEcgBpodHRwczovL3d3dy5taWNyb3NvZnQuY29tIDANBgkqhkiG9w0B
# AQEFAASCAQAzffEDVDldtVymBhVstVQYWYtV1UJnCNH5oycViGm35ehEJdJIzF35
# Mn1KZ9afs7+LL9BTM2Sh8NPPfjnpKUqvx8RzH4/IlI0ZPhlwHZaI5bIGlkOjOQwY
# 3Tiw1wQ1EOpMNseQLHzf4rdJXRoYkV2MPg4bSgLqJy4Rn58hRHGzSGTpZreKm32Z
# eJeRJsw+nbeqpWRalfpqOz4TFiz9jn+JyspgEYw0so0m5PWggE93tOx6IXilAnlk
# Z652Iq361l+lw+/XpK2cUnmFaVJVd/BAc1Dp8g2vpqGlHRNzX7EYavRDY5sSKaQZ
# gD9M1ge26zzbTfgjPqbY0VsvARwrHBYPoYIXKDCCFyQGCisGAQQBgjcDAwExghcU
# MIIXEAYJKoZIhvcNAQcCoIIXATCCFv0CAQMxDzANBglghkgBZQMEAgEFADCCAVgG
# CyqGSIb3DQEJEAEEoIIBRwSCAUMwggE/AgEBBgorBgEEAYRZCgMBMDEwDQYJYIZI
# AWUDBAIBBQAEIJlFXIlA4dvAjesjnI5yNamRe9iBRcenTqGlbLa2sLPyAgZmM6sl
# 1hYYEjIwMjQwNTA5MTkwNTE3LjQyWjAEgAIB9KCB2KSB1TCB0jELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IEly
# ZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVT
# Tjo4NkRGLTRCQkMtOTMzNTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# U2VydmljZaCCEXgwggcnMIIFD6ADAgECAhMzAAAB3V1XHZXUraobAAEAAAHdMA0G
# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIz
# MTAxMjE5MDcwOVoXDTI1MDExMDE5MDcwOVowgdIxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w
# ZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046ODZERi00
# QkJDLTkzMzUxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw
# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoTgOUROoud5x1ER+JZ3yi
# 6fvSb4qbk7XLWoqwsTFEqz0suQlitg7a4kD/k+dh12zdoOwJLUNaUGW0wxhcyund
# N72GDawj7iSvj0bD9hT1Q4wV8uZqy0RcyBxy2ogGqGxObxSbqMWdGVnSjArPGnI4
# R1Jn2mPu/fwke7jfgePsYyasL3aVP5qdJgKt3mq8h/gCpr+pZK0DfM4K3GwoB8LK
# r76k+pRBamKYu7ip+zAGG0ni3tKTHWrVeRFujVZ1zGDk0Srhj38nwSnUobmpS6PP
# JBu6mtpmwOZe+/l9OiQHrDJKMmK+P/QoAxYx1KXB0jg7o5RQSjItevM0XS3q3aVt
# GwV/RA7sdswTDGhCvDcsWsAhLgKu/vu5LRQG5d4VCrbs2AtRVGblJdgaulNe0uAi
# rKkd4rS0/ajXG9qQCeI6yA3ZZeU4KKnn+YKb/mHLwTPN+G1xTcMrXd7oww9uD/Q3
# fMX1Sb7po7AUEJCuU/6stx60CfLndZx0r7RVYuUmv7mxrmBKUvIBehg1jefym73h
# ZHbKE1SD6PKZFoYz7NEO5wOfrgcUAeM5YxIys+VluwQOMKZhZtuH4QZkY1eDW6fp
# +/HIAI7w0n05QOg2AXL9pMdSR9nSIWkZ0njl3j0+oTBdCJeffCzLtK8N+VYlFnAE
# JFDVE8UZ6hhcc+cPmbrDAwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFG6i9baMj1Ha
# Rcsh0gylo9COJcPxMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G
# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv
# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs
# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0
# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy
# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH
# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAuVNmyDS4FyB1m
# zHKlbn/Y5FE/yvM8iwb7uYfCa6mEds/3mjtsqNTqHPUocr8W3vRmQ7u5JFM8Usid
# SGZLGWcOhQ6usmTU9zxIwBJ0RKUQS/Evpm14PjuFS0tC0pm/FyGYi7GqmdHwxHL9
# x3gPv8v6ipwkFpF4IaWhDMBjEM0ZIRsHBnV69cxqUOx08b37ue8RcWV9TJCp1hRD
# Serq3fuLXlIF49J4CDsf/5d1zCtx7fE9vs7xiTQBfuf+agZO569O/cyAmxV78bYn
# TTeXqF3VvvawCJEvlBg9fQGXQa7benWfjnQKrgYg5GEOZFX1DCkt9ch0DhoJhcbg
# js06Vh2pa6qXSJZbMvCjbI+VPbDjYlgHfTzZchBx20GQ5ovfwTZTmMk7dGHoS2w6
# L5mVDWs5O/TnfwPde5qgnU6qxMcARlD2zD/v73WFKmibKbqQZ1LYzn/++gwIVcvH
# v3us0ffD5KZZpYjtm6y90N6w+vmQlXaxjPUZuoVAwQZL2IfmI5hnXEORwelk/UXn
# PPqgx5m4S4V+GXWmq3efzl3i24Mdn+y+EEEI9yoKo6gzliJ1YTRNYGLU1ix3uPPN
# nf5Oy7otCtYPBGayg+5mjq7CSyjypXoHHifRQqmNbA1ClIUWtBB1FvmZCi5aISq0
# uxcI3ayDVpDwYG0M5wo3RNpuO0I02zCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb
# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj
# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy
# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE
# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI
# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo
# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y
# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v
# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG
# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS
# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr
# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM
# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL
# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF
# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu
# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE
# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn
# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW
# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5
# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi
# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV
# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js
# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx
# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2
# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv
# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn
# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1
# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4
# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU
# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF
# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/
# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU
# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi
# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm
# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq
# ELQdVTNYs6FwZvKhggLUMIICPQIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVT
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs
# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046
# ODZERi00QkJDLTkzMzUxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNl
# cnZpY2WiIwoBATAHBgUrDgMCGgMVADYjRxll2zWgz8Z8og2xDnIkoxYQoIGDMIGA
# pH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE
# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQAC
# BQDp52NxMCIYDzIwMjQwNTA5MjMwMDAxWhgPMjAyNDA1MTAyMzAwMDFaMHQwOgYK
# KwYBBAGEWQoEATEsMCowCgIFAOnnY3ECAQAwBwIBAAICDYowBwIBAAICEXAwCgIF
# AOnotPECAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQAC
# AwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQBXoZiU8Ez0bc0oRNTO
# ULBNTIgVlindPScfo4aEQhhxLk5uzrl3O9NGR+LOT/4Qc3bmETve4xdJ7MVAnX6N
# msuRKCIJ938I9ly5X49ekG5nlL6O3DSR7vFDkvPeiwJU6GwCJOy7aoSzijtnbM6E
# fKFBDefdo0kEF0f9Fqd4uLHblzGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVT
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l
# LVN0YW1wIFBDQSAyMDEwAhMzAAAB3V1XHZXUraobAAEAAAHdMA0GCWCGSAFlAwQC
# AQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkE
# MSIEIMMZh5SQ2kRP51VRK2LcDkn3cYAGFWo8BvpBjDf6WCg1MIH6BgsqhkiG9w0B
# CRACLzGB6jCB5zCB5DCBvQQgYf8OLZplrE94mZx7R9FZN+1AjdNpUcWPkYjjesAx
# Y2YwgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAd1d
# Vx2V1K2qGwABAAAB3TAiBCCnBMJ1r8PYKjkNiJE+xi72cYxsA2rzuaHlaNZrxEDG
# ITANBgkqhkiG9w0BAQsFAASCAgAQFaoXTnNzA947g5yIPproSTB1ugmCDK8WCYs3
# FhMRtih2oBArd62Tf3oxzqzcYkSbWODUWv0cT2hf/5+DMZrmZHcf0p+jePgesaS1
# QQlfbAHLY5MDjf3ohB70nL6PQpwlSg3kQry9B7mkdgFcmp/SOjQllcOPCZah3gQq
# QJe0eujkNI59EKj6dRiGv6Q/iYj1Ufo10xIneMXWE8hGwqVYUIhhjblICiY0T5Cp
# LIkwWXWGltHQtxhBPegZR8SLTxtHSvXFkZSBkiPOZ1xTDHqoCl4FQEBAUtdH5RFN
# FdddEP5+Se9q/LgQPnHrhDN0TvFTwCh5VnndyDBsUSpPN25gPqxU1vm+gw3FJXt2
# j0k0Gc7LwN6kar6h98u7axwXH7eLJ0Y1sDq5rCSZcEbJvA6Up2gWOnnKrq3vo1af
# 35RCZKp/Snn+joBxuKMX7YXzkQ0Nc66bDZ6/kdiIddCx8T/UuOaZc6OizypxSiMb
# xIFrPAAc30OGTtzFnuCOMYWPGFIDrl6zRe2m4mxldzlwkHelynihfsyr2yh7DzCC
# UDNY0eY09MWMSWk+xGuKHWo0aezTmiIUxHxQt4xd9AHEG8GyH/b2c5Q/DHtUURjw
# 7P5zhL3slW9CI7mKwluSTfp0UJQug2REbp/Jkx5SupNFBC9V7DylgjpygpkSzJaK
# bBJcbQ==
# SIG # End signature block