AzureRM.OperationalInsights.psm1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
#
# Module manifest for module 'AzureRM.OperationalInsights'
#
# Generated by: Microsoft Corporation
#
# Generated on: 01/23/2018 05:10:06
#

$PSDefaultParameterValues.Clear()
Set-StrictMode -Version Latest

$module = Get-Module AzureRM.Profile 
if ($module -ne $null -and $module.Version.ToString().CompareTo("4.2.0") -lt 0) 
{ 
    Write-Error "This module requires AzureRM.Profile version 4.2.0. An earlier version of AzureRM.Profile is imported in the current PowerShell session. Please open a new session before importing this module. This error could indicate that multiple incompatible versions of the Azure PowerShell cmdlets are installed on your system. Please see https://aka.ms/azps-version-error for troubleshooting information." -ErrorAction Stop 
} 
elseif ($module -eq $null) 
{ 
    Import-Module AzureRM.Profile -MinimumVersion 4.2.0 -Scope Global 
}
Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.Commands.OperationalInsights.dll)


if (Test-Path -Path "$PSScriptRoot\StartupScripts")
{
    Get-ChildItem "$PSScriptRoot\StartupScripts" | ForEach-Object {
        . $_.FullName
    }
}

if ($PSVersionTable.PSVersion.Major -ge 5)
{
    $completerCommands = @(@{'Command' = 'New-AzureRmOperationalInsightsAzureActivityLogDataSource'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsCustomLogDataSource'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Disable-AzureRmOperationalInsightsLinuxCustomLogCollection'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Disable-AzureRmOperationalInsightsIISLogCollection'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Enable-AzureRmOperationalInsightsLinuxCustomLogCollection'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Enable-AzureRmOperationalInsightsIISLogCollection'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Enable-AzureRmOperationalInsightsLinuxSyslogCollection'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Enable-AzureRmOperationalInsightsLinuxPerformanceCollection'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Disable-AzureRmOperationalInsightsLinuxPerformanceCollection'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsWindowsPerformanceCounterDataSource'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsLinuxPerformanceObjectDataSource'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsLinuxSyslogDataSource'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Disable-AzureRmOperationalInsightsLinuxSyslogCollection'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsWindowsEventDataSource'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsSavedSearch'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsSavedSearchResults'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsSchema'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsSearchResults'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsComputerGroup'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsSavedSearch'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Set-AzureRmOperationalInsightsSavedSearch'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Remove-AzureRmOperationalInsightsSavedSearch'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsDataSource'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Remove-AzureRmOperationalInsightsDataSource'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsStorageInsight'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Set-AzureRmOperationalInsightsStorageInsight'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsStorageInsight'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Remove-AzureRmOperationalInsightsStorageInsight'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Set-AzureRmOperationalInsightsIntelligencePack'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsIntelligencePacks'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsWorkspaceManagementGroups'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsWorkspaceUsage'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsWorkspaceSharedKeys'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Get-AzureRmOperationalInsightsWorkspace'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsWorkspace'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'New-AzureRmOperationalInsightsWorkspace'; 'Parameter' = 'Location'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.LocationCompleterAttribute'; 'ArgumentList' = @('Microsoft.OperationalInsights/workspaces')},@{'Command' = 'Remove-AzureRmOperationalInsightsWorkspace'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()},@{'Command' = 'Set-AzureRmOperationalInsightsWorkspace'; 'Parameter' = 'ResourceGroupName'; 'AttributeType' = 'Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute'; 'ArgumentList' = @()})
    
    $completerCommands | ForEach-Object {
        $type = $_.AttributeType
        $args = "@()"
        if ($_.ArgumentList.Count -ne 0) {
            $temp = $_.ArgumentList -join "`", `"" 
            $args = "@(`"" + $temp + "`")" 
        }
        $sb = [scriptblock]::Create("param(`$commandName, `$parameterName, `$wordToComplete, `$commandAst, `$fakeBoundParameter) `
        `$completerObject = New-Object $type -ArgumentList $args `
        `$arguments = `$completerObject.GetCompleterValues() `
        `$wordToCompleteTrimQuote = `$wordToComplete.Trim(`"'`")
        `$wordToCompleteTrimmed = `$wordToCompleteTrimQuote.Trim(`"```"`")
        `$arguments | Where-Object { (`$_ -Like `"`$wordToComplete*`") -or (`$_ -Like `"```'`$wordToCompleteTrimmed*```'`") } | ForEach-Object { [System.Management.Automation.CompletionResult]::new(`$_, `$_, 'ParameterValue', `$_) }"
)
        Register-ArgumentCompleter -CommandName $_.Command -ParameterName $_.Parameter -ScriptBlock $sb
    }
}

$FilteredCommands = @('Get-AzureRmOperationalInsightsSavedSearch:ResourceGroupName','Get-AzureRmOperationalInsightsSavedSearchResults:ResourceGroupName','Get-AzureRmOperationalInsightsSchema:ResourceGroupName','Get-AzureRmOperationalInsightsSearchResults:ResourceGroupName','New-AzureRmOperationalInsightsComputerGroup:ResourceGroupName','New-AzureRmOperationalInsightsSavedSearch:ResourceGroupName','Set-AzureRmOperationalInsightsSavedSearch:ResourceGroupName','Remove-AzureRmOperationalInsightsSavedSearch:ResourceGroupName','Set-AzureRmOperationalInsightsIntelligencePack:ResourceGroupName','Get-AzureRmOperationalInsightsIntelligencePacks:ResourceGroupName','Get-AzureRmOperationalInsightsWorkspaceManagementGroups:ResourceGroupName','Get-AzureRmOperationalInsightsWorkspaceUsage:ResourceGroupName','Get-AzureRmOperationalInsightsWorkspaceSharedKeys:ResourceGroupName','New-AzureRmOperationalInsightsWorkspace:ResourceGroupName','Remove-AzureRmOperationalInsightsWorkspace:ResourceGroupName')

$FilteredCommands | ForEach-Object {
    $global:PSDefaultParameterValues.Add($_,
        {
            $context = Get-AzureRmContext
            if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) {
                $context.ExtendedProperties["Default Resource Group"]
            } 
        })
}

# SIG # Begin signature block
# MIIkBwYJKoZIhvcNAQcCoIIj+DCCI/QCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCEyNXQEuhXmy2D
# Q4mIBC8xlzXMYObepYGHC3QUB/54yKCCDYMwggYBMIID6aADAgECAhMzAAAAxOmJ
# +HqBUOn/AAAAAADEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTcwODExMjAyMDI0WhcNMTgwODExMjAyMDI0WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCIirgkwwePmoB5FfwmYPxyiCz69KOXiJZGt6PLX4kvOjMuHpF4+nypH4IBtXrL
# GrwDykbrxZn3+wQd8oUK/yJuofJnPcUnGOUoH/UElEFj7OO6FYztE5o13jhwVG87
# 7K1FCTBJwb6PMJkMy3bJ93OVFnfRi7uUxwiFIO0eqDXxccLgdABLitLckevWeP6N
# +q1giD29uR+uYpe/xYSxkK7WryvTVPs12s1xkuYe/+xxa8t/CHZ04BBRSNTxAMhI
# TKMHNeVZDf18nMjmWuOF9daaDx+OpuSEF8HWyp8dAcf9SKcTkjOXIUgy+MIkogCy
# vlPKg24pW4HvOG6A87vsEwvrAgMBAAGjggGAMIIBfDAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUy9ZihM9gOer/Z8Jc0si7q7fDE5gw
# UgYDVR0RBEswSaRHMEUxDTALBgNVBAsTBE1PUFIxNDAyBgNVBAUTKzIzMDAxMitj
# ODA0YjVlYS00OWI0LTQyMzgtODM2Mi1kODUxZmEyMjU0ZmMwHwYDVR0jBBgwFoAU
# SG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDEx
# LTA3LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYBBQUHMAKGRWh0dHA6Ly93
# d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8y
# MDExLTA3LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQAG
# Fh/bV8JQyCNPolF41+34/c291cDx+RtW7VPIaUcF1cTL7OL8mVuVXxE4KMAFRRPg
# mnmIvGar27vrAlUjtz0jeEFtrvjxAFqUmYoczAmV0JocRDCppRbHukdb9Ss0i5+P
# WDfDThyvIsoQzdiCEKk18K4iyI8kpoGL3ycc5GYdiT4u/1cDTcFug6Ay67SzL1BW
# XQaxFYzIHWO3cwzj1nomDyqWRacygz6WPldJdyOJ/rEQx4rlCBVRxStaMVs5apao
# pIhrlihv8cSu6r1FF8xiToG1VBpHjpilbcBuJ8b4Jx/I7SCpC7HxzgualOJqnWmD
# oTbXbSD+hdX/w7iXNgn+PRTBmBSpwIbM74LBq1UkQxi1SIV4htD50p0/GdkUieeN
# n2gkiGg7qceATibnCCFMY/2ckxVNM7VWYE/XSrk4jv8u3bFfpENryXjPsbtrj4Ns
# h3Kq6qX7n90a1jn8ZMltPgjlfIOxrbyjunvPllakeljLEkdi0iHv/DzEMQv3Lz5k
# pTdvYFA/t0SQT6ALi75+WPbHZ4dh256YxMiMy29H4cAulO2x9rAwbexqSajplnbI
# vQjE/jv1rnM3BrJWzxnUu/WUyocc8oBqAU+2G4Fzs9NbIj86WBjfiO5nxEmnL9wl
# iz1e0Ow0RJEdvJEMdoI+78TYLaEEAo5I+e/dAs8DojCCB3owggVioAMCAQICCmEO
# kNIAAAAAAAMwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj
# YXRlIEF1dGhvcml0eSAyMDExMB4XDTExMDcwODIwNTkwOVoXDTI2MDcwODIxMDkw
# OVowfjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UE
# AxMfTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMTCCAiIwDQYJKoZIhvcN
# AQEBBQADggIPADCCAgoCggIBAKvw+nIQHC6t2G6qghBNNLrytlghn0IbKmvpWlCq
# uAY4GgRJun/DDB7dN2vGEtgL8DjCmQawyDnVARQxQtOJDXlkh36UYCRsr55JnOlo
# XtLfm1OyCizDr9mpK656Ca/XllnKYBoF6WZ26DJSJhIv56sIUM+zRLdd2MQuA3Wr
# aPPLbfM6XKEW9Ea64DhkrG5kNXimoGMPLdNAk/jj3gcN1Vx5pUkp5w2+oBN3vpQ9
# 7/vjK1oQH01WKKJ6cuASOrdJXtjt7UORg9l7snuGG9k+sYxd6IlPhBryoS9Z5JA7
# La4zWMW3Pv4y07MDPbGyr5I4ftKdgCz1TlaRITUlwzluZH9TupwPrRkjhMv0ugOG
# jfdf8NBSv4yUh7zAIXQlXxgotswnKDglmDlKNs98sZKuHCOnqWbsYR9q4ShJnV+I
# 4iVd0yFLPlLEtVc/JAPw0XpbL9Uj43BdD1FGd7P4AOG8rAKCX9vAFbO9G9RVS+c5
# oQ/pI0m8GLhEfEXkwcNyeuBy5yTfv0aZxe/CHFfbg43sTUkwp6uO3+xbn6/83bBm
# 4sGXgXvt1u1L50kppxMopqd9Z4DmimJ4X7IvhNdXnFy/dygo8e1twyiPLI9AN0/B
# 4YVEicQJTMXUpUMvdJX3bvh4IFgsE11glZo+TzOE2rCIF96eTvSWsLxGoGyY0uDW
# iIwLAgMBAAGjggHtMIIB6TAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUSG5k
# 5VAF04KqFzc3IrVtqMp1ApUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYD
# VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUci06AjGQQ7kU
# BU7h6qfHMdEjiTQwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDovL2NybC5taWNyb3Nv
# ZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAz
# XzIyLmNybDBeBggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAz
# XzIyLmNydDCBnwYDVR0gBIGXMIGUMIGRBgkrBgEEAYI3LgMwgYMwPwYIKwYBBQUH
# AgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvZG9jcy9wcmltYXJ5
# Y3BzLmh0bTBABggrBgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBwAG8AbABpAGMA
# eQBfAHMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAZ/KG
# pZjgVHkaLtPYdGcimwuWEeFjkplCln3SeQyQwWVfLiw++MNy0W2D/r4/6ArKO79H
# qaPzadtjvyI1pZddZYSQfYtGUFXYDJJ80hpLHPM8QotS0LD9a+M+By4pm+Y9G6XU
# tR13lDni6WTJRD14eiPzE32mkHSDjfTLJgJGKsKKELukqQUMm+1o+mgulaAqPypr
# WEljHwlpblqYluSD9MCP80Yr3vw70L01724lruWvJ+3Q3fMOr5kol5hNDj0L8giJ
# 1h/DMhji8MUtzluetEk5CsYKwsatruWy2dsViFFFWDgycScaf7H0J/jeLDogaZiy
# WYlobm+nt3TDQAUGpgEqKD6CPxNNZgvAs0314Y9/HG8VfUWnduVAKmWjw11SYobD
# HWM2l4bf2vP48hahmifhzaWX0O5dY0HjWwechz4GdwbRBrF1HxS+YWG18NzGGwS+
# 30HHDiju3mUv7Jf2oVyW2ADWoUa9WfOXpQlLSBCZgB/QACnFsZulP0V3HjXG0qKi
# n3p6IvpIlR+r+0cjgPWe+L9rt0uX4ut1eBrs6jeZeRhL/9azI2h15q/6/IvrC4Dq
# aTuv/DDtBEyO3991bWORPdGdVk5Pv4BXIqF4ETIheu9BCrE/+6jMpF3BoYibV3FW
# TkhFwELJm3ZbCoBIa/15n8G9bW1qyVJzEw16UM0xghXaMIIV1gIBATCBlTB+MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNy
# b3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExAhMzAAAAxOmJ+HqBUOn/AAAAAADE
# MA0GCWCGSAFlAwQCAQUAoIHMMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwG
# CisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCB7E2Ag
# iMcyx8zrm3oi9KKzTJ68RiGZiibH3FLzbMMYpDBgBgorBgEEAYI3AgEMMVIwUKA2
# gDQATQBpAGMAcgBvAHMAbwBmAHQAIABBAHoAdQByAGUAIABQAG8AdwBlAHIAUwBo
# AGUAbABsoRaAFGh0dHA6Ly9Db2RlU2lnbkluZm8gMA0GCSqGSIb3DQEBAQUABIIB
# ACAjc4Qn6ychd+WMLumfR9y3UqTW+S/Fh0MfBsvHP3p3VtB07kZJoVFXq31i6fOI
# AWtXMR0VnFjgysgnnJ2PjBYVv4Enu8apXKbBpg0QYneSPi2BqX/WQp316bFUiRWJ
# q6wFxVKwMqcNVYt2esmojkaYjJM2GBCv4ja8hhkQthWp8bEjL3Q31R9ShgKLx3zX
# ymwiknDOcNkhrJsQB0bekFiUchr4RmWtG2YIDbyIbnPccMJim6iZpkxcemWD6i1D
# MAH3F/o375FgGdunJ5xfFgFqKJgk4I7D7ciOXNxQjZHR8LA0YMPa52k5GQ0FS1d3
# cmn1ERYBj+ZR5lfpx1IBRj+hghNGMIITQgYKKwYBBAGCNwMDATGCEzIwghMuBgkq
# hkiG9w0BBwKgghMfMIITGwIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBPAYLKoZIhvcN
# AQkQAQSgggErBIIBJzCCASMCAQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEF
# AAQgQN/6mO2VZ8zB3sfxgUDNqMKosbxqwVyYsPA21btsTfMCBlpOySqhiRgTMjAx
# ODAxMjMwNTExMzcuMTcyWjAHAgEBgAIB9KCBuKSBtTCBsjELMAkGA1UEBhMCVVMx
# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEMMAoGA1UECxMDQU9DMScwJQYDVQQLEx5u
# Q2lwaGVyIERTRSBFU046N0FCNS0yREYyLURBM0YxJTAjBgNVBAMTHE1pY3Jvc29m
# dCBUaW1lLVN0YW1wIFNlcnZpY2Wggg7KMIIGcTCCBFmgAwIBAgIKYQmBKgAAAAAA
# AjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0
# aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcNMjUwNzAxMjE0NjU1WjB8MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy
# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIwDQYJKoZIhvcNAQEBBQADggEP
# ADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0VBDVpQoAgoX77XxoSyxfxcPl
# YcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEwRA/xYIiEVEMM1024OAizQt2T
# rNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQedGFnkV+BVLHPk0ySwcSmXdFh
# E24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKxXf13Hz3wV3WsvYpCTUBR0Q+c
# Bj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4GkbaICDXoeByw6ZnNPOcvRLqn
# 9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEAAaOCAeYwggHiMBAGCSsGAQQB
# gjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7fEYbxTNoWoVtVTAZBgkrBgEE
# AYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
# /zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEug
# SaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9N
# aWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsG
# AQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jv
# b0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0gAQH/BIGVMIGSMIGPBgkrBgEE
# AYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9Q
# S0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcA
# YQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZI
# hvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOhIW+z66bM9TG+zwXiqf76V20Z
# MLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS+7lTjMz0YBKKdsxAQEGb3FwX
# /1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlKkVIArzgPF/UveYFl2am1a+TH
# zvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon/VWvL/625Y4zu2JfmttXQOnx
# zplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOiPPp/fZZqkHimbdLhnPkd/DjY
# lPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/fmNZJQ96LjlXdqJxqgaKD4kW
# umGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCIIYdqwUB5vvfHhAN/nMQekkzr3
# ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0cs0d9LiFAR6A+xuJKlQ5slva
# yA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7aKLixqduWsqdCosnPGUFN4Ib5
# KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQcdeh0sVV42neV8HR3jDA/czm
# TfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+NR4Iuto229Nfj950iEkSMIIE
# 2TCCA8GgAwIBAgITMwAAAKteQJ3uRt8sbAAAAAAAqzANBgkqhkiG9w0BAQsFADB8
# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N
# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0xNjA5MDcxNzU2NTRaFw0x
# ODA5MDcxNzU2NTRaMIGyMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMQwwCgYDVQQLEwNBT0MxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjo3QUI1
# LTJERjItREEzRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj
# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPmflCYoEYJsGYBJoo0
# 0ynJfZg1mgws3TPKA88OAtcL77vhyC5JpNPQ2dxz07tFhZxd5QH1/CumYpvhgAKn
# 8zcoRUs13ri6bvuGkO3hqxDyOPB3wlvPQBPuOUob0ip6HvyLAfipvJqPeQPD43DR
# rADzpsDLId101NSHhCiBrRpZUmLe7P3MxQOJTE0Hs6DUHp57AcI6zWNpCZCIE5PD
# LZShLAQpuDfVSrUxiuS+bpEz23zuzDJ8XMEt4biw1iKJISokeeLko88uGdZVyUgR
# JKSoyfVIyFLCMZKQ+mY2APmhMBpoD61pZEta8etpn3OGerZgH5SRXo4gvdTfDiqQ
# yEsCAwEAAaOCARswggEXMB0GA1UdDgQWBBQNx0fQHGDL6cBrlMxfBg5iuNhqpzAf
# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH
# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU
# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF
# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0
# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG
# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQA/n/66LmHxciqtqhVmlaAES32zwkbd
# 0OtbQDz0jHUFraGBbyR7DS7So4m68DYr+cjFdw56uHzeVOL9DyZfPAx2LfoY0aIQ
# qIheSypZlchfd3/+RCS4ApmEkZSvAsemKoaEsYv4kSTH0G6jNr/7+LgHmm8+ae22
# 8ZthZ1StNujb8trlYqY7yG3MQ5omIvNEjOstRyZ108Lmm9aKnRVPk+iAIM4OLZUD
# U/NA4BrcaVxMIddKEygvRdWC/aTB3yE7yes/OKU/MvrNBku4H7ybGrORsZNd4v95
# oRbRuDX24ZHK93Hs/f6Kw+BlNVjLpF4PluanIq9o8z7P3qSNqtjuEqTioYIDdDCC
# AlwCAQEwgeKhgbikgbUwgbIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xDDAKBgNVBAsTA0FPQzEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjdB
# QjUtMkRGMi1EQTNGMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2
# aWNloiUKAQEwCQYFKw4DAhoFAAMVAMnsu0gtNdmUvraO9yapMW6Kh44yoIHBMIG+
# pIG7MIG4MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQwwCgYD
# VQQLEwNBT0MxJzAlBgNVBAsTHm5DaXBoZXIgTlRTIEVTTjoyNjY1LTRDM0YtQzVE
# RTErMCkGA1UEAxMiTWljcm9zb2Z0IFRpbWUgU291cmNlIE1hc3RlciBDbG9jazAN
# BgkqhkiG9w0BAQUFAAIFAN4Q1n0wIhgPMjAxODAxMjIyMTMwMzdaGA8yMDE4MDEy
# MzIxMzAzN1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA3hDWfQIBADAHAgEAAgIg
# szAHAgEAAgIZqzAKAgUA3hIn/QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEE
# AYRZCgMBoAowCAIBAAIDFuNgoQowCAIBAAIDB6EgMA0GCSqGSIb3DQEBBQUAA4IB
# AQAzbjA7459J/p1m3TcZIQ43bXIrKaT+742Ae9wvrp9Kpvc4U640BmOupUK7ht9t
# rzcrQCkacv4yK2Jhwpb6+oCkrKWF8xJC5FkOZ/4G7C6Xp8Mqvwo+Njlnb3hofIPa
# mveVCDIzEdUGIHQGqeSwHwf9wmGuzMo/GAE/MS58J+4kSpa99gNwf2nhcSAHdnvA
# jRZF6LGIxkJRIg/IpIdkMXeciHXFZ8ARvB4/Hs8oETw+BHMHjIQJolJBZLnYP+9J
# rIxs6Ak/BowMnGrBpMfpUiOxqU0Y0P3CTjt09BN/VbIiWfVGqqL6m0IZRZkyDL7i
# E+a+W/bm3sd8ui176ikXxDZaMYIC9TCCAvECAQEwgZMwfDELMAkGA1UEBhMCVVMx
# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUt
# U3RhbXAgUENBIDIwMTACEzMAAACrXkCd7kbfLGwAAAAAAKswDQYJYIZIAWUDBAIB
# BQCgggEyMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQx
# IgQg8Egf3DqZiLmMY0Iqwha7nr8un903ewhkHzuS1/uAl9UwgeIGCyqGSIb3DQEJ
# EAIMMYHSMIHPMIHMMIGxBBTJ7LtILTXZlL62jvcmqTFuioeOMjCBmDCBgKR+MHwx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p
# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAAq15Ane5G3yxsAAAAAACr
# MBYEFHUQiXlpOOb3TPmupe8eTEoeUcTeMA0GCSqGSIb3DQEBCwUABIIBAIaVOjwk
# losOSW1q6vFrwq1kVZ00skPcolYuW1Z9vqi3Yvf3Edb3gVEUYta0zXsjDviSDtBA
# HxkxN7v9bUYtVOuYL5JvTKAiUCl+kK+p69qa0ZVc+bvcVc+TSt+SKNXUbZ1OJn1D
# +wDJ0ydDcDU4aAeXoHRR5Vm/UykIdvSEUVHWyKgy/HOirVZJIrYb5jk+BW6Wv7f6
# T0XRKX/BWsk5GK3Hi2GgwWxaUefpJIOTl6nUUeeTkMGIneuKbku1cul30aQYC+Ud
# OL0j+lhkEga7seMgY1PFVazI0p67urLSJH9ODRYZDnxe8kxrrn9blC7PBRbBuEJ6
# 8zd7HRSB/3nAlMI=
# SIG # End signature block