O365.ps1
<#
=========================================================================== Created on: 12/15/2016 1:32 PM Created by: Vikas Sukhija Organization: https://techwizard.cloud Filename: o365.ps1 Update: 7/15/2020 Converted to module Update: 9/24/2021 added teams as well Update: 1/12/2022 added azuread and install module capability Update: 3/16/2022 updated launchEOL to include cert parameter ------------------------------------------------------------------------- O365 shells ALL in One =========================================================================== #> ###############check Module dependenicies############################ Function Test-vsadmin{ [CmdletBinding()] param ( [Parameter(Mandatory = $true)] $ModuleName, [Parameter(Mandatory = $true)] $downloadurl ) if(-not(Get-Module -ListAvailable -Name $ModuleName)) { Write-Warning "$ModuleName Module not found" Write-Warning "Please install $ModuleName before using VSADMIN Module" Write-Warning "Download Link: $downloadurl for manual Install" $answer = Read-Host "Do you want to Install it automatically from PS Gallery ? Type Yes or No" if($answer -eq "Yes"){ Install-Module -Name $ModuleName if($error){ Write-Warning "Error Installing Module $ModuleName" }else{ Write-host "Module $ModuleName installed Succesfully" -ForegroundColor Green Write-host "Please Exit and relaunch Powershell if module $ModuleName does not Load" -ForegroundColor Green } } } } #############################Exchange Modern Online################## Function LaunchEOL { [CmdletBinding()] param ( [Parameter(Mandatory = $false)] $Credential, $CertificateThumbprint, $Organization, $Appid ) Test-vsadmin -ModuleName ExchangeOnlineManagement -downloadurl "https://www.powershellgallery.com/packages/ExchangeOnlineManagement" Import-Module ExchangeOnlineManagement -Prefix "EOL" if($CertificateThumbprint){ Connect-ExchangeOnline -Prefix "EOL" -CertificateThumbprint $CertificateThumbprint -Organization $Organization -Appid $Appid -ShowBanner:$false } else{ Connect-ExchangeOnline -Prefix "EOL" -Credential $Credential -ShowBanner:$false } } Function RemoveEOL { Disconnect-ExchangeOnline -Confirm:$false } ########################Retired Module Skype Online##################################### <#function LaunchSOL { param ( [Parameter(Mandatory = $true)] $Domain, [Parameter(Mandatory = $false)] $Credential ) Test-vsadmin -ModuleName SkypeOnlineConnector -downloadurl "https://www.microsoft.com/en-us/download/details.aspx?id=39366" Write-Host -Object "Enter Skype Online Credentials" -ForegroundColor Green $dommicrosoft = $domain + ".onmicrosoft.com" $CSSession = New-CsOnlineSession -Credential $Credential -OverrideAdminDomain $dommicrosoft Import-Module (Import-PSSession -Session $CSSession -AllowClobber) -Prefix SOL -Global } #Function LaunchSOL Function RemoveSOL { $Session = Get-PSSession | Where-Object -FilterScript { $_.ComputerName -like "*.online.lync.com" } Remove-PSSession $Session } #Function RemoveSOL Retired Module#> #####################Sharepoint Online############################### function LaunchSPO { param ( [Parameter(Mandatory = $true)] $orgName, [Parameter(Mandatory = $false)] $Credential ) Test-vsadmin -ModuleName Microsoft.Online.SharePoint.PowerShell -downloadurl "https://www.microsoft.com/en-ca/download/details.aspx?id=35588" Write-Host "Enter Sharepoint Online Credentials" -ForegroundColor Green Import-Module Microsoft.Online.SharePoint.PowerShell Connect-SPOService -Url "https://$orgName-admin.sharepoint.com" -Credential $Credential } #LaunchSPO Function RemoveSPO { disconnect-sposervice } #RemoveSPO #########################Secuirty and Compliance##################################### Function LaunchCOL { [CmdletBinding()] param ( [Parameter(Mandatory = $false)] $Credential ) Test-vsadmin -ModuleName ExchangeOnlineManagement -downloadurl "https://www.powershellgallery.com/packages/ExchangeOnlineManagement" Import-Module ExchangeOnlineManagement Connect-IPPSSession -Credential $Credential $s=Get-PSSession | where {$_.ComputerName -like "*compliance.protection.outlook.com"} Import-Module (Import-PSSession -Session $s -AllowClobber) -Prefix col -Global } Function RemoveCOL { Disconnect-ExchangeOnline -Confirm:$false } ###############################Msonline######################### function LaunchMSOL { [CmdletBinding()] param ( [Parameter(Mandatory = $false)] $Credential ) Test-vsadmin -ModuleName MSOnline -downloadurl "https://www.powershellgallery.com/packages/MSOnline" import-module msonline Write-Host "Enter MS Online Credentials" -ForegroundColor Green Connect-MsolService -Credential $Credential } Function RemoveMSOL { Write-host "Close Powershell Window - No disconnect available" -ForegroundColor yellow } #############################Onprem Exchnage conenction######################### Function LaunchEXOnprem { [CmdletBinding()] param ( [Parameter(Mandatory = $true,ParameterSetName = 'url')] [ValidateScript({ if($_ -notmatch "(http|HTTP):\/\/.*\/(powershell|Powershell|PowerShell|POWERSHELL)"){throw "The file specified in the path is not valid Excange PowerShell URL"} return $true })]$psurl, [Parameter(ParameterSetName = 'url',Position = 0)][switch]$url, [Parameter(Mandatory = $true,ParameterSetName = 'comp')] [string]$ComputerName, [Parameter(ParameterSetName = 'comp',Position = 0)][switch]$comp ) switch ($PsCmdlet.ParameterSetName) { "url" { $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $psurl -Authentication Kerberos Import-Module (Import-PSSession $session -AllowClobber) -Global } "comp" { $psurl = "http://" + $ComputerName + "/" + "PowerShell" $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $psurl -Authentication Kerberos Import-Module (Import-PSSession $session -AllowClobber) -Global } } } #LaunchEXOnprem Function RemoveEXOnprem { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] $computername ) $Session = Get-PSSession | where {$_.ComputerName -like $computername} Remove-PSSession $Session } #RemoveEXOnprem ###############################Teams######################### function LaunchTeams { [CmdletBinding()] param ( [Parameter(Mandatory = $false)] $Credential ) Test-vsadmin -ModuleName MicrosoftTeams -downloadurl "https://www.powershellgallery.com/packages/MicrosoftTeams" import-module MicrosoftTeams Write-Host "Enter Teams Admin Credentials" -ForegroundColor Green Connect-MicrosoftTeams -Credential $Credential } Function RemoveTeams { Disconnect-MicrosoftTeams -Confirm:$false } ##############################AzureAD######################### function LaunchAzureAD { [CmdletBinding()] param ( [Parameter(Mandatory = $false)] $Credential ) Test-vsadmin -ModuleName AzureAD -downloadurl "https://www.powershellgallery.com/packages/AzureAD" import-module AzureAD Write-Host "Enter Teams Admin Credentials" -ForegroundColor Green Connect-AzureAD -Credential $Credential } Function RemoveAzureAD { Disconnect-AzureAD -Confirm:$false } ############################################################################################################ # SIG # Begin signature block # MIIZiQYJKoZIhvcNAQcCoIIZejCCGXYCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUzdjtQKILX7ymosjYVIAqnpAE # NP6gghSXMIIE/jCCA+agAwIBAgIQDUJK4L46iP9gQCHOFADw3TANBgkqhkiG9w0B # AQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD # VQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFz # c3VyZWQgSUQgVGltZXN0YW1waW5nIENBMB4XDTIxMDEwMTAwMDAwMFoXDTMxMDEw # NjAwMDAwMFowSDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMu # MSAwHgYDVQQDExdEaWdpQ2VydCBUaW1lc3RhbXAgMjAyMTCCASIwDQYJKoZIhvcN # AQEBBQADggEPADCCAQoCggEBAMLmYYRnxYr1DQikRcpja1HXOhFCvQp1dU2UtAxQ # tSYQ/h3Ib5FrDJbnGlxI70Tlv5thzRWRYlq4/2cLnGP9NmqB+in43Stwhd4CGPN4 # bbx9+cdtCT2+anaH6Yq9+IRdHnbJ5MZ2djpT0dHTWjaPxqPhLxs6t2HWc+xObTOK # fF1FLUuxUOZBOjdWhtyTI433UCXoZObd048vV7WHIOsOjizVI9r0TXhG4wODMSlK # XAwxikqMiMX3MFr5FK8VX2xDSQn9JiNT9o1j6BqrW7EdMMKbaYK02/xWVLwfoYer # vnpbCiAvSwnJlaeNsvrWY4tOpXIc7p96AXP4Gdb+DUmEvQECAwEAAaOCAbgwggG0 # MA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsG # AQUFBwMIMEEGA1UdIAQ6MDgwNgYJYIZIAYb9bAcBMCkwJwYIKwYBBQUHAgEWG2h0 # dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAfBgNVHSMEGDAWgBT0tuEgHf4prtLk # YaWyoiWyyBc1bjAdBgNVHQ4EFgQUNkSGjqS6sGa+vCgtHUQ23eNqerwwcQYDVR0f # BGowaDAyoDCgLoYsaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJl # ZC10cy5jcmwwMqAwoC6GLGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFz # c3VyZWQtdHMuY3JsMIGFBggrBgEFBQcBAQR5MHcwJAYIKwYBBQUHMAGGGGh0dHA6 # Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBPBggrBgEFBQcwAoZDaHR0cDovL2NhY2VydHMu # ZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3VyZWRJRFRpbWVzdGFtcGluZ0NB # LmNydDANBgkqhkiG9w0BAQsFAAOCAQEASBzctemaI7znGucgDo5nRv1CclF0CiNH # o6uS0iXEcFm+FKDlJ4GlTRQVGQd58NEEw4bZO73+RAJmTe1ppA/2uHDPYuj1UUp4 # eTZ6J7fz51Kfk6ftQ55757TdQSKJ+4eiRgNO/PT+t2R3Y18jUmmDgvoaU+2QzI2h # F3MN9PNlOXBL85zWenvaDLw9MtAby/Vh/HUIAHa8gQ74wOFcz8QRcucbZEnYIpp1 # FUL1LTI4gdr0YKK6tFL7XOBhJCVPst/JKahzQ1HavWPWH1ub9y4bTxMd90oNcX6X # t/Q/hOvB46NJofrOp79Wz7pZdmGJX36ntI5nePk2mOHLKNpbh6aKLzCCBSgwggQQ # oAMCAQICEAQXI353dv9JT7ZOAHNl5BMwDQYJKoZIhvcNAQELBQAwcjELMAkGA1UE # BhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2lj # ZXJ0LmNvbTExMC8GA1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIENvZGUg # U2lnbmluZyBDQTAeFw0yMDA3MDgwMDAwMDBaFw0yMzA3MTMxMjAwMDBaMGUxCzAJ # BgNVBAYTAkNBMRAwDgYDVQQIEwdPbnRhcmlvMRQwEgYDVQQHEwtNaXNzaXNzYXVn # YTEWMBQGA1UEChMNVmlrYXMgU3VraGlqYTEWMBQGA1UEAxMNVmlrYXMgU3VraGlq # YTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOErfHfQ6pn1mETF7PWp # qbB4eqlRuJFRGgdQAPRkvYrVRlILZM/tfFuZkr6cplV+3u/eRxlAqkeRnzbiRK+o # wmi12Znw5otzPJuZRSb6gm1dSGbZTfay2JXCglc8L0ZtsnLXHRUi8wdbKSpv9eYI # 8reeOiXVbUHubs73+EXH+UlDiCMs7LpwPyVjyt5o0JMdBcoHjdRIhx1UKEBCeWy0 # wziqDY94pwCuzeDQrsXt/UfMWzk11H2Zuf2XYPDIy0F7NsyhDx7bMifM0QFWC0C1 # Iinbh8MGUue18mjllTpYcSwzNUF11d9VzRGwhZ8AU2bet8TIAekt/4P5aWMdT9ta # K1ECAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZldQ5Y # MB0GA1UdDgQWBBTLtvyqDKFiIsTfPo2xPDoKTFK+oDAOBgNVHQ8BAf8EBAMCB4Aw # EwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDovL2Ny # bDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGGL2h0 # dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMEwG # A1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3 # LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYwJAYI # KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcwAoZC # aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3VyZWRJ # RENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQAD # ggEBAE/k53BL9tN6EKPruAwxzJ+qZE3J88f1t5a8LIx1fgtEXBL00NJJqaoKkNVz # t7RoT4d6yQHSFC/TNYFBLUnYOF3myRuO9L2ty05toSzGxHKUmK5E3ablxM0PQTuC # GgHVkV85/1VlXkUu/UQUXuESsvEm70OUW36AlI2dMugHRrnwYSrEqjBIk8imUV0X # G2sNd/AJFoo0PCfRpNVABjxfJeZmKOdKeYBYZpXqSmKdJ7TQSRiRP50XDD1egWOW # bfL6qZyxoa3XHmZF18APCRbEuWdHZEBr4QfMfI1/sUDFMlOf4hU6tTav9uyxSo+7 # 8QyfP5YBCemOOrKeKwY4Yv0PxRgwggUwMIIEGKADAgECAhAECRgbX9W7ZnVTQ7Vv # lVAIMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdp # Q2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0Rp # Z2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0xMzEwMjIxMjAwMDBaFw0yODEw # MjIxMjAwMDBaMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx # GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNI # QTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUA # A4IBDwAwggEKAoIBAQD407Mcfw4Rr2d3B9MLMUkZz9D7RZmxOttE9X/lqJ3bMtdx # 6nadBS63j/qSQ8Cl+YnUNxnXtqrwnIal2CWsDnkoOn7p0WfTxvspJ8fTeyOU5JEj # lpB3gvmhhCNmElQzUHSxKCa7JGnCwlLyFGeKiUXULaGj6YgsIJWuHEqHCN8M9eJN # YBi+qsSyrnAxZjNxPqxwoqvOf+l8y5Kh5TsxHM/q8grkV7tKtel05iv+bMt+dDk2 # DZDv5LVOpKnqagqrhPOsZ061xPeM0SAlI+sIZD5SlsHyDxL0xY4PwaLoLFH3c7y9 # hbFig3NBggfkOItqcyDQD2RzPJ6fpjOp/RnfJZPRAgMBAAGjggHNMIIByTASBgNV # HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEF # BQcDAzB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp # Z2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu # Y29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDCBgQYDVR0fBHoweDA6oDig # NoY0aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9v # dENBLmNybDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0 # QXNzdXJlZElEUm9vdENBLmNybDBPBgNVHSAESDBGMDgGCmCGSAGG/WwAAgQwKjAo # BggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAKBghghkgB # hv1sAzAdBgNVHQ4EFgQUWsS5eyoKo6XqcQPAYPkt9mV1DlgwHwYDVR0jBBgwFoAU # Reuir/SSy4IxLVGLp6chnfNtyA8wDQYJKoZIhvcNAQELBQADggEBAD7sDVoks/Mi # 0RXILHwlKXaoHV0cLToaxO8wYdd+C2D9wz0PxK+L/e8q3yBVN7Dh9tGSdQ9RtG6l # jlriXiSBThCk7j9xjmMOE0ut119EefM2FAaK95xGTlz/kLEbBw6RFfu6r7VRwo0k # riTGxycqoSkoGjpxKAI8LpGjwCUR4pwUR6F6aGivm6dcIFzZcbEMj7uo+MUSaJ/P # QMtARKUT8OZkDCUIQjKyNookAv4vcn4c10lFluhZHen6dGRrsutmQ9qzsIzV6Q3d # 9gEgzpkxYz0IGhizgZtPxpMQBvwHgfqL2vmCSfdibqFT+hKUGIUukpHqaGxEMrJm # oecYpJpkUe8wggUxMIIEGaADAgECAhAKoSXW1jIbfkHkBdo2l8IVMA0GCSqGSIb3 # DQEBCwUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAX # BgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0RpZ2lDZXJ0IEFzc3Vy # ZWQgSUQgUm9vdCBDQTAeFw0xNjAxMDcxMjAwMDBaFw0zMTAxMDcxMjAwMDBaMHIx # CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 # dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJ # RCBUaW1lc3RhbXBpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB # AQC90DLuS82Pf92puoKZxTlUKFe2I0rEDgdFM1EQfdD5fU1ofue2oPSNs4jkl79j # IZCYvxO8V9PD4X4I1moUADj3Lh477sym9jJZ/l9lP+Cb6+NGRwYaVX4LJ37AovWg # 4N4iPw7/fpX786O6Ij4YrBHk8JkDbTuFfAnT7l3ImgtU46gJcWvgzyIQD3XPcXJO # Cq3fQDpct1HhoXkUxk0kIzBdvOw8YGqsLwfM/fDqR9mIUF79Zm5WYScpiYRR5oLn # RlD9lCosp+R1PrqYD4R/nzEU1q3V8mTLex4F0IQZchfxFwbvPc3WTe8GQv2iUypP # hR3EHTyvz9qsEPXdrKzpVv+TAgMBAAGjggHOMIIByjAdBgNVHQ4EFgQU9LbhIB3+ # Ka7S5GGlsqIlssgXNW4wHwYDVR0jBBgwFoAUReuir/SSy4IxLVGLp6chnfNtyA8w # EgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYI # KwYBBQUHAwgweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz # cC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2lj # ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgw # OqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ # RFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdp # Q2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwUAYDVR0gBEkwRzA4BgpghkgBhv1sAAIE # MCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCwYJ # YIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4IBAQBxlRLpUYdWac3v3dp8qmN6s3jP # BjdAhO9LhL/KzwMC/cWnww4gQiyvd/MrHwwhWiq3BTQdaq6Z+CeiZr8JqmDfdqQ6 # kw/4stHYfBli6F6CJR7Euhx7LCHi1lssFDVDBGiy23UC4HLHmNY8ZOUfSBAYX4k4 # YU1iRiSHY4yRUiyvKYnleB/WCxSlgNcSR3CzddWThZN+tpJn+1Nhiaj1a5bA9Fhp # DXzIAbG5KHW3mWOFIoxhynmUfln8jA/jb7UBJrZspe6HUSHkWGCbugwtK22ixH67 # xCUrRwIIfEmuE7bhfEJCKMYYVs9BNLZmXbZ0e/VWMyIvIjayS6JKldj1po5SMYIE # XDCCBFgCAQEwgYYwcjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IElu # YzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTExMC8GA1UEAxMoRGlnaUNlcnQg # U0hBMiBBc3N1cmVkIElEIENvZGUgU2lnbmluZyBDQQIQBBcjfnd2/0lPtk4Ac2Xk # EzAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEKMAigAoAAoQKAADAZBgkqhkiG # 9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIB # FTAjBgkqhkiG9w0BCQQxFgQUJWuJ560lQnH+khw6/6p+wqXxh9owDQYJKoZIhvcN # AQEBBQAEggEAK+KvkjyLvUZ6zsHjsp0KmmzbmvHCIpsype/694xQqeie1octCy4e # 8+W7oGz25vmujd442Dsd36EOBN9ZDBqKEXD5jAo3KHkLQg99FlIOgLpLTZ/1+d3B # AgM6qBq/SIiAaRln0hof/ynPL8RMaahbF6BhSBK5gJK0rkDZiGQiwlplbz2Ri7+X # Y44h9vQJcJxWlc2yBCG5/hp29750i1GrYmJkcLyN7DQjUlq9WJkaz1rMMOCYbjtX # 5QhvaJ2DAP+juD/1ljRawPePWDq4CHnJbmd8dg+v6AbfY6P0C3mX1vMD3gby3101 # jlWnZhNqm83zSojlUksJlArZOTwpCLJVr6GCAjAwggIsBgkqhkiG9w0BCQYxggId # MIICGQIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j # MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBT # SEEyIEFzc3VyZWQgSUQgVGltZXN0YW1waW5nIENBAhANQkrgvjqI/2BAIc4UAPDd # MA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkq # hkiG9w0BCQUxDxcNMjIwMzE3MTc0NDAyWjAvBgkqhkiG9w0BCQQxIgQgM7wLyapL # twda/EHuEEkGJoU5SZ3lfDPylMGUgHDd3FIwDQYJKoZIhvcNAQEBBQAEggEAgnWM # 8TOqZCAvPHA6JQqlolDJ11MSHn6JAowl+BlQ7WfzmfgXiGVZPbTFlgfq5GWTgR5B # Kd0peNuuJd26sa5Z0SLsI3WkDPDZFD6ix+gnLb+Z0S7F+4f7M6WBF70tNyNtZPWW # rwUTC0NKVDfWU9VKuQwqqfpvBPxjSROuPHoOnH9WoCxIga1ydt/cQGUMgAoCk1Gy # sW/+tPJCnTtD3yr420mDFzxki03NUgDsCi+Sohntx+u4IxpNN1vsXRvLy1/9jhoh # 8NWOEsy0PDv+fy9B7kPS4TaiLT98oL/B9J0yI6FPL6+4dwjVybsDcidQXZk3qQ9E # KkHfFnQwRDI2rIh7Ww== # SIG # End signature block |