HPECOMCmdlets.psd1

#
# Module manifest for module 'HPECOMCmdlets'
#
# Generated by: Lionel Jullien (HPE)
#
# Generated on: 6/26/2026
#

@{

# Script module or binary module file associated with this manifest.
RootModule = 'HPECOMCmdlets.psm1'

# Version number of this module.
ModuleVersion = '1.0.26'

# Supported PSEditions
CompatiblePSEditions = 'Core'

# ID used to uniquely identify this module
GUID = 'b3d417c2-bc5e-4889-96b6-c2474609829e'

# Author of this module
Author = 'Lionel Jullien (HPE)'

# Company or vendor of this module
CompanyName = 'Hewlett-Packard Enterprise'

# Copyright statement for this module
Copyright = '(C) Copyright 2013-2025 Hewlett Packard Enterprise Development LP
 
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
 
        The above copyright notice and this permission notice shall be included in
        all copies or substantial portions of the Software.
 
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        THE SOFTWARE.'


# Description of the functionality provided by this module
Description = 'The HPE Compute Ops Management PowerShell library offers a comprehensive suite of cmdlets designed to manage and automate your HPE GreenLake environment. By leveraging this library, users can seamlessly interact with HPE GreenLake and Compute Ops Management services directly from the PowerShell command line, enabling efficient integration into existing automation workflows and enhancing operational efficiency.'

# Minimum version of the PowerShell engine required by this module
PowerShellVersion = '7.0'

# Name of the PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# ClrVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''

# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
FormatsToProcess = 'HPECOMCmdlets.Format.ps1xml'

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
NestedModules = @('Modules/COM-Activities.psm1',
               'Modules/COM-AI-Insights-Reports.psm1',
               'Modules/COM-Alerts.psm1',
               'Modules/COM-Appliances.psm1',
               'Modules/COM-Approval-Policies.psm1',
               'Modules/COM-External-Services.psm1',
               'Modules/COM-Filters.psm1',
               'Modules/COM-Firmware-Bundles.psm1',
               'Modules/COM-Groups.psm1',
               'Modules/COM-Job-Templates.psm1',
               'Modules/COM-Jobs.psm1',
               'Modules/COM-Metrics-Configurations.psm1',
               'Modules/COM-Schedules.psm1',
               'Modules/COM-Server-Locations.psm1',
               'Modules/COM-Servers.psm1',
               'Modules/COM-Settings.psm1',
               'Modules/COM-Webhooks.psm1',
               'Modules/Constants.psm1',
               'Modules/GLP-Devices.psm1',
               'Modules/GLP-Logs.psm1',
               'Modules/GLP-Organizations.psm1',
               'Modules/GLP-Regions.psm1',
               'Modules/GLP-Services.psm1',
               'Modules/GLP-Subscriptions.psm1',
               'Modules/GLP-Users-Roles-Permissions.psm1',
               'Modules/GLP-Webhooks.psm1',
               'Modules/GLP-Workspaces.psm1',
               'Modules/Utilities.psm1')

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = 'Add-HPECOMApplianceToGroup', 'Add-HPECOMApprovalPolicyToGroup',
               'Add-HPECOMServerToGroup', 'Add-HPEGLDeviceCompute',
               'Add-HPEGLDeviceNetwork', 'Add-HPEGLDeviceStorage',
               'Add-HPEGLDeviceTagToDevice', 'Add-HPEGLDeviceToService',
               'Add-HPEGLRoleToUser', 'Add-HPEGLRoleToUserGroup',
               'Add-HPEGLSubscriptionToDevice', 'Add-HPEGLUserToUserGroup',
               'Add-HPEGLWebhookSubscription', 'Confirm-HPEGLLocation',
               'Confirm-HPEGLWebhookEndpoint',
               'Connect-HPECOMSecureGatewayDiscoveredServer', 'Connect-HPEGL',
               'Connect-HPEGLDeviceComputeiLOtoCOM', 'Connect-HPEGLWorkspace',
               'Connect-HPEOnepass',
               'Copy-HPECOMGroupApplianceServerProfileTemplate',
               'Copy-HPEGLScopeGroup', 'Disable-HPECOMDataCollection',
               'Disable-HPECOMEmailNotificationPolicy',
               'Disable-HPECOMIloIgnoreRiskSetting',
               'Disable-HPECOMMetricsConfiguration',
               'Disable-HPECOMServerAutoiLOFirmwareUpdate',
               'Disable-HPECOMServerMaintenanceMode', 'Disable-HPEGLDevice',
               'Disconnect-HPEGL', 'Enable-HPECOMDataCollection',
               'Enable-HPECOMEmailNotificationPolicy',
               'Enable-HPECOMIloIgnoreRiskSetting',
               'Enable-HPECOMMetricsConfiguration',
               'Enable-HPECOMServerAutoiLOFirmwareUpdate',
               'Enable-HPECOMServerMaintenanceMode', 'Enable-HPEGLDevice',
               'Get-HPECOMActivity', 'Get-HPECOMAlert', 'Get-HPECOMAppliance',
               'Get-HPECOMApplianceFirmwareBundle', 'Get-HPECOMApprovalPolicy',
               'Get-HPECOMApprovalRequest', 'Get-HPECOMEmailNotificationPolicy',
               'Get-HPECOMExternalService', 'Get-HPECOMFilter',
               'Get-HPECOMFirmwareBaseline', 'Get-HPECOMGroup',
               'Get-HPECOMGroupServerFirmwareCompliance',
               'Get-HPECOMGroupServeriLOConfigurationCompliance',
               'Get-HPECOMIloSecuritySatus', 'Get-HPECOMJob',
               'Get-HPECOMJobTemplate', 'Get-HPECOMMetricsConfiguration',
               'Get-HPECOMOneViewServerProfileTemplate', 'Get-HPECOMReport',
               'Get-HPECOMSchedule', 'Get-HPECOMSecureGatewayServerDiscovery',
               'Get-HPECOMServer', 'Get-HPECOMServerActivationKey',
               'Get-HPECOMServerFirmwareDownloadReport', 'Get-HPECOMServeriLOSSO',
               'Get-HPECOMServerInventory', 'Get-HPECOMServerLogs',
               'Get-HPECOMServerUtilizationInsights', 'Get-HPECOMSetting',
               'Get-HPECOMSustainabilityInsights', 'Get-HPECOMWebhook',
               'Get-HPEGLAPIcredential', 'Get-HPEGLAuditLog', 'Get-HPEGLDevice',
               'Get-HPEGLDeviceAutoReassignSubscription',
               'Get-HPEGLDeviceAutoSubscription', 'Get-HPEGLDomain',
               'Get-HPEGLJWTDetails', 'Get-HPEGLLocation', 'Get-HPEGLOrganization',
               'Get-HPEGLRegion', 'Get-HPEGLRole', 'Get-HPEGLScopeGroup',
               'Get-HPEGLService', 'Get-HPEGLServiceResourceRestrictionPolicy',
               'Get-HPEGLServiceScopeFilter', 'Get-HPEGLSSOAuthenticationPolicy',
               'Get-HPEGLSSOConnection', 'Get-HPEGLSubscription',
               'Get-HPEGLTenantWorkspace', 'Get-HPEGLUser',
               'Get-HPEGLUserAccountDetails', 'Get-HPEGLUserGroup',
               'Get-HPEGLUserGroupMembership', 'Get-HPEGLUserPreference',
               'Get-HPEGLUserRole', 'Get-HPEGLWebhook',
               'Get-HPEGLWebhookSubscription', 'Get-HPEGLWorkspace',
               'Get-HPEGLWorkspaceSAMLSSODomain',
               'Invoke-HPECOMApplianceRefreshSettings',
               'Invoke-HPECOMExternalServiceVCenterFirmwareBaselineSync',
               'Invoke-HPECOMGroupApplianceSettings',
               'Invoke-HPECOMGroupServerBiosConfiguration',
               'Invoke-HPECOMGroupServerExternalStorageComplianceCheck',
               'Invoke-HPECOMGroupServerExternalStorageConfiguration',
               'Invoke-HPECOMGroupServerFirmwareComplianceCheck',
               'Invoke-HPECOMGroupServerFirmwareDownload',
               'Invoke-HPECOMGroupServeriLOConfiguration',
               'Invoke-HPECOMGroupServeriLOConfigurationCompliance',
               'Invoke-HPECOMGroupServerInternalStorageConfiguration',
               'Invoke-HPECOMGroupServerOSInstallation',
               'Invoke-HPECOMSecureGatewayServerDiscovery',
               'Invoke-HPECOMServerExternalStorage',
               'Invoke-HPECOMServerFirmwareDownload', 'Invoke-HPECOMWebRequest',
               'Invoke-HPEGLAutoReconnect', 'Invoke-HPEGLWebhookDeliveryRetry',
               'Invoke-HPEGLWebRequest', 'Join-HPEGLOrganization',
               'New-HPECOMAppliance', 'New-HPECOMApprovalPolicy',
               'New-HPECOMExternalService', 'New-HPECOMFilter', 'New-HPECOMGroup',
               'New-HPECOMServerActivationKey', 'New-HPECOMServerInventory',
               'New-HPECOMSettingiLOSettings', 'New-HPECOMSettingOneViewAppliance',
               'New-HPECOMSettingOneViewApplianceSoftware',
               'New-HPECOMSettingOneViewServerProfileTemplate',
               'New-HPECOMSettingOneViewSynergyAppliance',
               'New-HPECOMSettingServerBios',
               'New-HPECOMSettingServerExternalStorage',
               'New-HPECOMSettingServerFirmware',
               'New-HPECOMSettingServerInternalStorage',
               'New-HPECOMSettingServerInternalStorageVolume',
               'New-HPECOMSettingServerOSImage', 'New-HPECOMWebhook',
               'New-HPEGLAPIcredential', 'New-HPEGLDomain', 'New-HPEGLLocation',
               'New-HPEGLOrganization', 'New-HPEGLScopeGroup', 'New-HPEGLService',
               'New-HPEGLSSOAuthenticationPolicy', 'New-HPEGLSSOConnection',
               'New-HPEGLSubscription', 'New-HPEGLUser', 'New-HPEGLUserGroup',
               'New-HPEGLWebhook', 'New-HPEGLWorkspace',
               'New-HPEGLWorkspaceSAMLSSODomain', 'Remove-HPECOMAppliance',
               'Remove-HPECOMApplianceFromGroup', 'Remove-HPECOMApprovalPolicy',
               'Remove-HPECOMApprovalPolicyFromGroup',
               'Remove-HPECOMExternalService', 'Remove-HPECOMFilter',
               'Remove-HPECOMGroup', 'Remove-HPECOMOneViewServerLocation',
               'Remove-HPECOMSchedule', 'Remove-HPECOMServerActivationKey',
               'Remove-HPECOMServerFromGroup', 'Remove-HPECOMSetting',
               'Remove-HPECOMWebhook', 'Remove-HPEGLAPICredential',
               'Remove-HPEGLDevice', 'Remove-HPEGLDeviceAutoReassignSubscription',
               'Remove-HPEGLDeviceAutoSubscription',
               'Remove-HPEGLDeviceFromService', 'Remove-HPEGLDeviceLocation',
               'Remove-HPEGLDeviceServiceDeliveryContact',
               'Remove-HPEGLDeviceTagFromDevice', 'Remove-HPEGLDomain',
               'Remove-HPEGLLocation', 'Remove-HPEGLRoleFromUser',
               'Remove-HPEGLRoleFromUserGroup', 'Remove-HPEGLScopeGroup',
               'Remove-HPEGLService', 'Remove-HPEGLSSOAuthenticationPolicy',
               'Remove-HPEGLSSOConnection', 'Remove-HPEGLSubscription',
               'Remove-HPEGLSubscriptionFromDevice', 'Remove-HPEGLUser',
               'Remove-HPEGLUserFromUserGroup', 'Remove-HPEGLUserGroup',
               'Remove-HPEGLWebhook', 'Remove-HPEGLWebhookSubscription',
               'Remove-HPEGLWorkspace', 'Remove-HPEGLWorkspaceSAMLSSODomain',
               'Resolve-HPECOMApprovalRequest', 'Restart-HPECOMAppliance',
               'Restart-HPECOMserver', 'Restore-HPEGLSession', 'Save-HPEGLSession',
               'Send-HPECOMWebhookTest', 'Send-HPEGLUserInvitation',
               'Send-HPEGLWebhookTest',
               'Send-HPEGLWorkspaceSAMLSSODomainNotifications',
               'Set-HPECOMApprovalPolicy', 'Set-HPECOMExternalService',
               'Set-HPECOMFilter', 'Set-HPECOMGroup',
               'Set-HPECOMOneViewServerLocation', 'Set-HPECOMSchedule',
               'Set-HPECOMServerUIDIndicator', 'Set-HPECOMSettingiLOSettings',
               'Set-HPECOMSettingOneViewAppliance',
               'Set-HPECOMSettingOneViewApplianceSoftware',
               'Set-HPECOMSettingOneViewServerProfileTemplate',
               'Set-HPECOMSettingOneViewSynergyAppliance',
               'Set-HPECOMSettingServerBios',
               'Set-HPECOMSettingServerExternalStorage',
               'Set-HPECOMSettingServerFirmware',
               'Set-HPECOMSettingServerInternalStorage',
               'Set-HPECOMSettingServerOSImage', 'Set-HPECOMWebhook',
               'Set-HPEGLDeviceAutoReassignSubscription',
               'Set-HPEGLDeviceAutoSubscription', 'Set-HPEGLDeviceLocation',
               'Set-HPEGLDeviceServiceDeliveryContact', 'Set-HPEGLLocation',
               'Set-HPEGLOrganization', 'Set-HPEGLScopeGroup',
               'Set-HPEGLSSOAuthenticationPolicy', 'Set-HPEGLSSOConnection',
               'Set-HPEGLUserAccountDetails', 'Set-HPEGLUserAccountPassword',
               'Set-HPEGLUserGroup', 'Set-HPEGLUserPreference', 'Set-HPEGLUserRole',
               'Set-HPEGLWebhook', 'Set-HPEGLWorkspace',
               'Set-HPEGLWorkspaceSAMLSSODomain', 'Start-HPECOMserver',
               'Stop-HPECOMGroupServerFirmware', 'Stop-HPECOMserver',
               'Test-HPECOMExternalService', 'Test-HPEGLDomain',
               'Update-HPECOMApplianceFirmware',
               'Update-HPECOMGroupApplianceFirmware',
               'Update-HPECOMGroupServerFirmware', 'Update-HPECOMServerFirmware',
               'Update-HPECOMServeriLOFirmware', 'Wait-HPECOMJobComplete'

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()

# Variables to export from this module
# VariablesToExport = @()

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = 'Get-HPECOMGroupFirmwareCompliance',
               'Get-HPECOMGroupiLOConfigurationCompliance',
               'Get-HPECOMServerLocation', 'Invoke-HPECOMGroupBiosConfiguration',
               'Invoke-HPECOMGroupExternalStorageComplianceCheck',
               'Invoke-HPECOMGroupExternalStorageConfiguration',
               'Invoke-HPECOMGroupFirmwareComplianceCheck',
               'Invoke-HPECOMGroupiLOConfiguration',
               'Invoke-HPECOMGroupiLOConfigurationCompliance',
               'Invoke-HPECOMGroupInternalStorageConfiguration',
               'Invoke-HPECOMGroupOSInstallation', 'Stop-HPECOMGroupFirmware',
               'Update-HPECOMGroupFirmware'

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
# FileList = @()

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        Tags = 'Compute-Ops-Management','COM','GLP','Hewlett-Packard-Enterprise','HPE','GreenLake','HPEGreenLake'

        # A URL to the license for this module.
        LicenseUri = 'https://github.com/jullienl/HPE-COM-PowerShell-library/tree/main?tab=MIT-1-ov-file'

        # A URL to the main website for this project.
        ProjectUri = 'https://github.com/jullienl/HPE-COM-PowerShell-library'

        # A URL to an icon representing this module.
        # IconUri = ''

        # ReleaseNotes of this module
        ReleaseNotes = 'What''s New in v1.0.26
 
Full release notes: https://github.com/jullienl/HPE-COM-PowerShell-Library/releases/tag/v1.0.26
 
 
 
CRITICAL FIX - SIGN-IN RESTORED AFTER HPE''S AUTH-FLOW CHANGE
 
Upgrading to v1.0.26 is required to keep connecting to HPE GreenLake. HPE switched their GreenLake sign-in to a new authentication workflow (v1alpha1 -> v1alpha2), which broke Connect-HPEGL for everyone - both federated (SSO) and standard accounts. This release reworks the login flow to detect and follow the new HPE broker, so authentication works again with no script changes. See BUG FIXES below for details.
 
 
 
HEADLINE FEATURE - PASSWORD-BASED SSO AUTHENTICATION
 
- Connect-HPEGL (password-based SSO): -Credential now supports password-based authentication for federated IdPs (Okta, Microsoft Entra ID, PingIdentity). When the email domain is configured for SAML SSO in HPE GreenLake, authentication is automatically routed to the Identity Provider for password validation. Supports password-only and password + MFA step-up (Okta: push/TOTP; Entra ID: push with number matching; PingID: push/TOTP). Federation is detected automatically - no additional parameters required.
 
- Connect-HPEGL (-PasswordlessSSOEmail parameter rename): The -SSOEmail parameter has been renamed to -PasswordlessSSOEmail to distinguish the fully passwordless flow (push/TOTP) from the new password-based SSO flow. The original -SSOEmail name is retained as a backward-compatible alias - existing scripts continue to work unchanged.
 
- Connect-HPEGL (clear handling of password requirements): When -PasswordlessSSOEmail is used but the IdP requires a password, the cmdlet returns a clear error instructing you to use -Credential, and never prompts interactively (so automation does not hang). When -Credential is used but the account is passwordless-only, the password is ignored and the push/TOTP flow proceeds with a warning.
 
 
TELEMETRY & PRIVACY
 
- Connect-HPEGL (anonymous usage telemetry): Optional, anonymous usage telemetry to help prioritise testing, features, and fixes. OFF by default (opt-in) - nothing is collected or sent unless you run Enable-HPECOMDataCollection. No personally identifiable information is ever collected (no usernames, emails, passwords, tokens, IPs, workspace, or server names). When opted in, a single anonymous event is sent on each successful connection (module/PowerShell/OS version, auth method, workspace count, COM regions, environment, CI/CD, etc.). Opt in for the session only via $env:HPE_COM_ENABLE_TELEMETRY = ''1''; opt out with Disable-HPECOMDataCollection. See https://github.com/jullienl/HPE-COM-PowerShell-Library#telemetry.
 
- Connect-HPEGL (SSO failure & unsupported-IdP detection): When opted in, Connect-HPEGL also records (anonymously, with no usernames, hosts, or error details) when an SSO sign-in is rejected or fails (unsupported federation, wrong password, denied/timed-out MFA), and which identity provider is involved when a workspace uses an unsupported OIDC federation instead of SAML 2.0. The same opt-out disables all telemetry.
 
 
NEW CMDLETS
 
- Remove-HPEGLDevice: New cmdlet to permanently remove (unclaim) one or more devices from the HPE GreenLake workspace. Warns about the irreversible impact and prompts for confirmation; use -Force to suppress the prompt. Supports pipeline input from Get-HPEGLDevice and direct serial number input.
 
- Disable-HPECOMDataCollection: New cmdlet to opt out of the anonymous usage telemetry (OFF by default; also suppresses the one-time invitation notice, or turns collection back off after opting in). Creates a persistent opt-out marker file (~/.config/HPECOMCmdlets/telemetry-disabled) and sets $env:HPE_COM_NO_TELEMETRY = ''1'' for the session. No telemetry is sent after running it, even after restarting PowerShell.
 
- Enable-HPECOMDataCollection: New cmdlet to opt in to anonymous usage data collection (OFF by default). Creates a persistent opt-in marker file (~/.config/HPECOMCmdlets/telemetry-enabled) and sets $env:HPE_COM_ENABLE_TELEMETRY = ''1'' for the session. Anonymous telemetry is then sent on each successful connection, even after restarting PowerShell.
 
- Invoke-HPECOMSecureGatewayServerDiscovery / Get-HPECOMSecureGatewayServerDiscovery: New cmdlets to discover and retrieve servers reachable through an HPE Secure Gateway appliance. Invoke- runs a network discovery from the gateway to detect HPE iLO devices not yet connected to Compute Ops Management (warns about the active scan unless -Force is used; supports immediate, -Async, and -ScheduleTime/-Interval scheduling). Get- returns the servers found by the most recent discovery. Both report each server''s IP, iLO generation, iLO firmware version, whether an iLO firmware update is required, and certificate fingerprint, and can be piped to Connect-HPEGLDeviceComputeiLOtoCOM.
 
- Connect-HPECOMSecureGatewayDiscoveredServer: New cmdlet to onboard servers discovered behind an HPE Secure Gateway appliance to Compute Ops Management - the automated equivalent of the "add multiple servers via Secure Gateway" UI wizard. It submits a single batch request per Secure Gateway; Compute Ops Management generates the activation key automatically, updates iLO firmware on servers reporting iLOUpdateRequired = Yes (minimum iLO 5 v3.09, iLO 6 v1.64, iLO 7 v1.12.00), onboards those reporting No without an update, and skips those reporting Unknown with a warning. Accepts discovered servers piped from Get-HPECOMSecureGatewayServerDiscovery, optionally configures DNS/NTP and assigns a subscription, location, contact and tags. Supports a shared -IloCredential or a per-iLO IloCredential property. Use -Async to return the job immediately.
 
- Enable-HPECOMServerMaintenanceMode / Disable-HPECOMServerMaintenanceMode: New cmdlets to turn a server''s maintenance mode on and off. While enabled, Compute Ops Management suspends automatic support case creation, ServiceNow incident creation, and email notifications for the server - avoiding unwanted tickets and noise during planned maintenance windows. Both accept a server by name or serial number (including from the pipeline via Get-HPECOMServer), support -WhatIf, run immediately or return the job with -Async, and support -ScheduleTime/-Interval. The current state is exposed by the maintenanceMode property from Get-HPECOMServer, which also gains a -InMaintenanceMode switch to list servers currently in maintenance mode.
 
 
BUG FIXES
 
- Connect-HPEGL (sign-in, CRITICAL FIX): HPE switched their GreenLake sign-in to a new authentication workflow (v1alpha1 -> v1alpha2), changing the broker used by all account types and breaking Connect-HPEGL for everyone - both federated SSO (Entra ID, Okta, PingID) and standard accounts. Connect-HPEGL now detects and follows HPE''s new broker automatically (while remaining compatible with the previous one), so sign-in works again for all account types - with both -PasswordlessSSOEmail and -Credential - with no script changes. Upgrading to v1.0.26 is required to keep connecting.
 
- Set-HPEGLUserAccountPassword (workspace session regression): Fixed Set-HPEGLUserAccountPassword incorrectly requiring an active workspace session before it could run. The cmdlet is designed to work immediately after Connect-HPEGL without selecting a workspace, and now does so.
 
- Set-HPEGLUserAccountPassword (plaintext passwords in verbose output): Fixed Set-HPEGLUserAccountPassword exposing password values in plaintext with -Verbose. Password values are now fully redacted in verbose output.
 
- GLP-Organizations.psm1 (Get-HPEGLOrganization -ShowCurrent — member workspace detection): Fixed Get-HPEGLOrganization -ShowCurrent (and the organization detection run by Connect-HPEGL) returning no result when the connected workspace is a member workspace of an organization. The current organization is now correctly identified and the Current column properly set to True.
 
- $HPECOMLastJobResult: Fixed $HPECOMLastJobResult remaining $null after running any job cmdlet (Set-HPECOMServerUIDIndicator, Start/Stop/Restart-HPECOMServer, Update-HPECOMServerFirmware, Update-HPECOMServeriLOFirmware, Restart-HPECOMAppliance, the AI Insights report cmdlets, and others). It is now correctly populated after every job cmdlet.
 
 
IMPROVEMENTS
 
- Module import welcome banner: Importing the module now displays a short, one-time welcome banner pointing to the first step (Connect-HPEGL), the getting-started help topic (Get-Help about_HPECOMCmdlets), and the project documentation. It is shown only in interactive PowerShell hosts and suppressed in CI/CD and non-interactive sessions, so it never pollutes automation output. Hide it permanently with $env:HPECOMCMDLETS_NO_BANNER = ''1''. A new about_HPECOMCmdlets help topic is also included.
 
- Dynamic country list: The country list used by New-HPEGLLocation, Set-HPEGLLocation, New-HPEGLWorkspace, Set-HPEGLWorkspace, and Set-HPEGLUserAccountDetails is now fetched directly from HPE GreenLake instead of being hardcoded, eliminating errors caused by country name mismatches (e.g., "South Korea" vs "Korea, Republic of"). It is refreshed automatically on every connection.
 
- Connect-HPEGL (automatic retry on rate-limit errors): Connect-HPEGL now automatically retries up to 3 times with increasing delays when a rate-limit response is received from the authentication endpoint. Any other error fails immediately.
 
- Connect-HPEGLDeviceComputeiLOtoCOM (-WhatIf support): Now supports -WhatIf. It contacts the iLO read-only to gather its identity, proxy state and external manager status, runs all validation checks, then returns a step-by-step report (validation results and planned operations) without changing the iLO. It surfaces actionable warnings when a blocker is detected, such as a leftover proxy on a direct connection (-RemoveExistingiLOProxySettings) or an iLO managed by HPE OneView (-DisconnectiLOfromOneView). Useful to preview a connection or migration, including bulk pipeline operations, before running it for real.
 
- Connect-HPEGLDeviceComputeiLOtoCOM (automatic Secure Gateway routing from the pipeline): Now accepts a SecureGateway value from the pipeline. When the output of Get-HPECOMSecureGatewayServerDiscovery is piped to it, each iLO connection is automatically routed through the Secure Gateway the server was discovered behind, using the default port (8080) - no need to specify -IloProxyServer / -IloProxyPort. -SecureGateway has its own parameter set; for a web proxy or custom port, use -IloProxyServer / -IloProxyPort instead.
 
'


        # Prerelease string of this module
        # Prerelease = ''

        # Flag to indicate whether the module requires explicit user acceptance for install/update/save
        # RequireLicenseAcceptance = $false

        # External dependent modules of this module
        # ExternalModuleDependencies = @()

    } # End of PSData hashtable

 } # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}

# SIG # Begin signature block
# MIIvswYJKoZIhvcNAQcCoIIvpDCCL6ACAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCyKuqEYG0S9LzL
# G9/H1iCRTEWSlhQO78vP3qOw0cI4KKCCEfYwggVvMIIEV6ADAgECAhBI/JO0YFWU
# jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI
# DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM
# EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy
# dmljZXMwHhcNMjEwNTI1MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjBWMQswCQYDVQQG
# EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdv
# IFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEBAQUA
# A4ICDwAwggIKAoICAQCN55QSIgQkdC7/FiMCkoq2rjaFrEfUI5ErPtx94jGgUW+s
# hJHjUoq14pbe0IdjJImK/+8Skzt9u7aKvb0Ffyeba2XTpQxpsbxJOZrxbW6q5KCD
# J9qaDStQ6Utbs7hkNqR+Sj2pcaths3OzPAsM79szV+W+NDfjlxtd/R8SPYIDdub7
# P2bSlDFp+m2zNKzBenjcklDyZMeqLQSrw2rq4C+np9xu1+j/2iGrQL+57g2extme
# me/G3h+pDHazJyCh1rr9gOcB0u/rgimVcI3/uxXP/tEPNqIuTzKQdEZrRzUTdwUz
# T2MuuC3hv2WnBGsY2HH6zAjybYmZELGt2z4s5KoYsMYHAXVn3m3pY2MeNn9pib6q
# RT5uWl+PoVvLnTCGMOgDs0DGDQ84zWeoU4j6uDBl+m/H5x2xg3RpPqzEaDux5mcz
# mrYI4IAFSEDu9oJkRqj1c7AGlfJsZZ+/VVscnFcax3hGfHCqlBuCF6yH6bbJDoEc
# QNYWFyn8XJwYK+pF9e+91WdPKF4F7pBMeufG9ND8+s0+MkYTIDaKBOq3qgdGnA2T
# OglmmVhcKaO5DKYwODzQRjY1fJy67sPV+Qp2+n4FG0DKkjXp1XrRtX8ArqmQqsV/
# AZwQsRb8zG4Y3G9i/qZQp7h7uJ0VP/4gDHXIIloTlRmQAOka1cKG8eOO7F/05QID
# AQABo4IBEjCCAQ4wHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYD
# VR0OBBYEFDLrkpr/NZZILyhAQnAgNpFcF4XmMA4GA1UdDwEB/wQEAwIBhjAPBgNV
# HRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsGA1UdIAQUMBIwBgYE
# VR0gADAIBgZngQwBBAEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5jb21v
# ZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNAYIKwYBBQUHAQEE
# KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZI
# hvcNAQEMBQADggEBABK/oe+LdJqYRLhpRrWrJAoMpIpnuDqBv0WKfVIHqI0fTiGF
# OaNrXi0ghr8QuK55O1PNtPvYRL4G2VxjZ9RAFodEhnIq1jIV9RKDwvnhXRFAZ/ZC
# J3LFI+ICOBpMIOLbAffNRk8monxmwFE2tokCVMf8WPtsAO7+mKYulaEMUykfb9gZ
# pk+e96wJ6l2CxouvgKe9gUhShDHaMuwV5KZMPWw5c9QLhTkg4IUaaOGnSDip0TYl
# d8GNGRbFiExmfS9jzpjoad+sPKhdnckcW67Y8y90z7h+9teDnRGWYpquRRPaf9xH
# +9/DUp/mBlXpnYzyOmJRvOwkDynUWICE5EV7WtgwggYaMIIEAqADAgECAhBiHW0M
# UgGeO5B5FSCJIRwKMA0GCSqGSIb3DQEBDAUAMFYxCzAJBgNVBAYTAkdCMRgwFgYD
# VQQKEw9TZWN0aWdvIExpbWl0ZWQxLTArBgNVBAMTJFNlY3RpZ28gUHVibGljIENv
# ZGUgU2lnbmluZyBSb290IFI0NjAeFw0yMTAzMjIwMDAwMDBaFw0zNjAzMjEyMzU5
# NTlaMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxKzAp
# BgNVBAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwggGiMA0G
# CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCbK51T+jU/jmAGQ2rAz/V/9shTUxjI
# ztNsfvxYB5UXeWUzCxEeAEZGbEN4QMgCsJLZUKhWThj/yPqy0iSZhXkZ6Pg2A2NV
# DgFigOMYzB2OKhdqfWGVoYW3haT29PSTahYkwmMv0b/83nbeECbiMXhSOtbam+/3
# 6F09fy1tsB8je/RV0mIk8XL/tfCK6cPuYHE215wzrK0h1SWHTxPbPuYkRdkP05Zw
# mRmTnAO5/arnY83jeNzhP06ShdnRqtZlV59+8yv+KIhE5ILMqgOZYAENHNX9SJDm
# +qxp4VqpB3MV/h53yl41aHU5pledi9lCBbH9JeIkNFICiVHNkRmq4TpxtwfvjsUe
# dyz8rNyfQJy/aOs5b4s+ac7IH60B+Ja7TVM+EKv1WuTGwcLmoU3FpOFMbmPj8pz4
# 4MPZ1f9+YEQIQty/NQd/2yGgW+ufflcZ/ZE9o1M7a5Jnqf2i2/uMSWymR8r2oQBM
# dlyh2n5HirY4jKnFH/9gRvd+QOfdRrJZb1sCAwEAAaOCAWQwggFgMB8GA1UdIwQY
# MBaAFDLrkpr/NZZILyhAQnAgNpFcF4XmMB0GA1UdDgQWBBQPKssghyi47G9IritU
# pimqF6TNDDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNV
# HSUEDDAKBggrBgEFBQcDAzAbBgNVHSAEFDASMAYGBFUdIAAwCAYGZ4EMAQQBMEsG
# A1UdHwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1
# YmxpY0NvZGVTaWduaW5nUm9vdFI0Ni5jcmwwewYIKwYBBQUHAQEEbzBtMEYGCCsG
# AQUFBzAChjpodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2Rl
# U2lnbmluZ1Jvb3RSNDYucDdjMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0
# aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEABv+C4XdjNm57oRUgmxP/BP6YdURh
# w1aVcdGRP4Wh60BAscjW4HL9hcpkOTz5jUug2oeunbYAowbFC2AKK+cMcXIBD0Zd
# OaWTsyNyBBsMLHqafvIhrCymlaS98+QpoBCyKppP0OcxYEdU0hpsaqBBIZOtBajj
# cw5+w/KeFvPYfLF/ldYpmlG+vd0xqlqd099iChnyIMvY5HexjO2AmtsbpVn0OhNc
# WbWDRF/3sBp6fWXhz7DcML4iTAWS+MVXeNLj1lJziVKEoroGs9Mlizg0bUMbOalO
# hOfCipnx8CaLZeVme5yELg09Jlo8BMe80jO37PU8ejfkP9/uPak7VLwELKxAMcJs
# zkyeiaerlphwoKx1uHRzNyE6bxuSKcutisqmKL5OTunAvtONEoteSiabkPVSZ2z7
# 6mKnzAfZxCl/3dq3dUNw4rg3sTCggkHSRqTqlLMS7gjrhTqBmzu1L90Y1KWN/Y5J
# KdGvspbOrTfOXyXvmPL6E52z1NZJ6ctuMFBQZH3pwWvqURR8AgQdULUvrxjUYbHH
# j95Ejza63zdrEcxWLDX6xWls/GDnVNueKjWUH3fTv1Y8Wdho698YADR7TNx8X8z2
# Bev6SivBBOHY+uqiirZtg0y9ShQoPzmCcn63Syatatvx157YK9hlcPmVoa1oDE5/
# L9Uo2bC5a4CH2RwwggZhMIIEyaADAgECAhEAyDHh+zCQwUNyJV9S6gqqvTANBgkq
# hkiG9w0BAQwFADBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1p
# dGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0EgUjM2
# MB4XDTI1MDUyMDAwMDAwMFoXDTI4MDUxOTIzNTk1OVowdzELMAkGA1UEBhMCVVMx
# DjAMBgNVBAgMBVRleGFzMSswKQYDVQQKDCJIZXdsZXR0IFBhY2thcmQgRW50ZXJw
# cmlzZSBDb21wYW55MSswKQYDVQQDDCJIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlz
# ZSBDb21wYW55MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA37AD03qw
# cmuCQyxRB2VBM7SfUf0SmpQb8iaPvGmxw5uoDBY3gdC/3Xq/rfM3ndCn03hNdGyu
# cpC7tD4zmel6yYqxyXDVr45Jd2cz9jFXoYTOMcuDV6I6CvU/EnbFxWhv0VCp+2Ip
# z4+uJGI6aVlMpFpLbgPjhp9ogd/89HEyi1FkSFoarnvxxaXm93S81k7FD/4Edtvu
# muGI4V8p39GfbCiMuHku8BzSQ2g86gWFnOaVhY6h4XWvEmE8LPYkU/STrej28Flg
# kSt9f/Jg6+dvRKm92uN2Z760Eql9+DTWkGmGe4YrIyD25XDa07sS9tIpVWzLrGOy
# ecaVpJwVVBqCadXDgkgTYKw/UlS+cEqsviT6wREGl4aX/GbeNO6Y4oDTTYkabW3p
# eg1ku0v90oDqzoTaWEE5ly2UajvXIgzpFLLXqpR6GYkv/y3ZJV0chBqRtAObebH7
# XOBa5a2kqMBw0gkIZBJHd8+PCPH/U7eJkeKXtGGj2uTudcGjZgOjVcFYdCRnufJd
# isrV7bj0Hzghcv3QyRXL3rRjcNb4ccKNnSgF/8cmiTVpvFHTfUKsYdkbM6wsbjXR
# dJNADjGOYRms7tKsii3/oXO+2S1Um7yomBZQ2+wVRCY6MrRX1onDKid5t5AyWFtR
# u0aQcdBmHG6JeDiQ3Hrb2g9kZhuFkgABVBkCAwEAAaOCAYkwggGFMB8GA1UdIwQY
# MBaAFA8qyyCHKLjsb0iuK1SmKaoXpM0MMB0GA1UdDgQWBBQH4rUE0gsy8LW2G3vm
# oYtOnZ8zEjAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAK
# BggrBgEFBQcDAzBKBgNVHSAEQzBBMDUGDCsGAQQBsjEBAgEDAjAlMCMGCCsGAQUF
# BwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBBAEwSQYDVR0fBEIw
# QDA+oDygOoY4aHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljQ29k
# ZVNpZ25pbmdDQVIzNi5jcmwweQYIKwYBBQUHAQEEbTBrMEQGCCsGAQUFBzAChjho
# dHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2RlU2lnbmluZ0NB
# UjM2LmNydDAjBggrBgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wDQYJ
# KoZIhvcNAQEMBQADggGBAIax+Yaj5EciDlztft4iAfD2CtIWEF0cxR+UbbvJEs86
# 5wyoO3ZQoujr0FJ+P5fjDKLbamHrEWmyoD2YC4lzecmnFOnY0y4uJ9zBY8B6X6TU
# 9e6+TfZtlXd44YffXYAfoLX+uYjVJcZOaMuXF61+CFpjLJjepsD8m1gdj5QUz2sH
# 6GOfU6mEm8SHvKpgPMV/yhEKqgjlenY6Ao49RkxnDuvRlMP8SFPB+8bxiLegEdGa
# ei8nSr/j5YeDZFevUJ696T4W45QGrwAhBBpbKDz6CzlImC1b2C8Bp02XBAsOQs/u
# CIaQv5XxUmVxmb85tDJkd7QfqHo2z1T2NYMkvXUcSClYRuVxxC/frpqcrxS9O9xE
# v65BoUztAJSXsTdfpUjWeNOnhq8lrwa2XAD3fbagNF6ElsBiNDSbwHCG/iY4kAya
# VpbAYtaa6TfzdI/I0EaCX5xYRW56ccI2AnbaEVKz9gVjzi8hBLALlRhrs1uMFtPj
# nZ+oA+rbZZyGZkz3xbUYKTGCHRMwgh0PAgEBMGkwVDELMAkGA1UEBhMCR0IxGDAW
# BgNVBAoTD1NlY3RpZ28gTGltaXRlZDErMCkGA1UEAxMiU2VjdGlnbyBQdWJsaWMg
# Q29kZSBTaWduaW5nIENBIFIzNgIRAMgx4fswkMFDciVfUuoKqr0wDQYJYIZIAWUD
# BAIBBQCgfDAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGC
# NwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQx
# IgQg+cF3uYdID6pLxwZS+oSeXyvH8tzhNljCluR7IXlSk1IwDQYJKoZIhvcNAQEB
# BQAEggIAlITx55+R08+CpLi18K4r92DcOqB+TnhxIcD9fEjNTRa15UIubguNMYlQ
# S5z8NN9iDkIxKLm+rMwdbhZE6hNCHqRrQWmgOB8+hpcTeR5Lu0shy2d0S87iEr3E
# 19Lgs5eXryYgIrKhJQ/nTicL/IBJa059gN71r/e1ApGKISWekP7VQ7mBN0dyDey8
# dhP+3/wbjjLRYHEo501N0ManCSQaiOuuFineLUJ17a2H3RMNrjLBNLJ0N4Y1c8CB
# hE2O7FASrioMFGc3B5JuteFADVKOpyKpAC2HpCow1FE6XoWW5tXBuvPlKD5ec6eV
# zOfwHwnyWgeyECKA1s9C4NTh3uQbG2B/k8rLC1gvt+aqg5Sh1Qd9e4DkodORhEL+
# yxf1wb0h8DGDbSPrDsMuOlPV82GqLK1eG/659e0PK48ZpjNZoeaHaPgBDbR+YOxI
# rqEQaRI5JXG5TQy+zuXXAzgVW5mcVrBtVoTi8c7XlihDXJXcPcfy9AfjsohhT1Ug
# hGVS86exg7GpH2d4kW2QvjXO7QmUx2zskpP2WjJNBalarFd9RYJspIC1NWpaFqS3
# HgXX2YPAjHgBfPJvl2jIQ0AjvgleqM9cQrQYzewemGP86hXAnxfAxAL6Vo6MUAOV
# vpQIrNXlK7r/zxLP9Upm2kZBchuQsEdRMxA49aujlmyWUCnSkoGhghn9MIIZ+QYK
# KwYBBAGCNwMDATGCGekwghnlBgkqhkiG9w0BBwKgghnWMIIZ0gIBAzEPMA0GCWCG
# SAFlAwQCAgUAMIIBCAYLKoZIhvcNAQkQAQSggfgEgfUwgfICAQEGCisGAQQBsjEC
# AQEwQTANBglghkgBZQMEAgIFAAQwRiBWpKMyptvJYlNfKo0wtXmZu57MMc/nGdnk
# v2kZTP56CHhnHEPjLWdWi8zdsL63AhUA3gkGqQJeaGbNzixLO0Y1PPJvNiAYDzIw
# MjYwNjI2MTQwNDE1WqB2pHQwcjELMAkGA1UEBhMCR0IxFzAVBgNVBAgTDkdyZWF0
# ZXIgTG9uZG9uMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxMDAuBgNVBAMTJ1Nl
# Y3RpZ28gUHVibGljIFRpbWUgU3RhbXBpbmcgU2lnbmVyIFIzN6CCFBcwggbiMIIE
# yqADAgECAhEA507yVbBQT/rbpt/3/IujFTANBgkqhkiG9w0BAQwFADBVMQswCQYD
# VQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSwwKgYDVQQDEyNTZWN0
# aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIENBIFI0MTAeFw0yNjAzMjUwMDAwMDBa
# Fw0zNzA2MjQyMzU5NTlaMHIxCzAJBgNVBAYTAkdCMRcwFQYDVQQIEw5HcmVhdGVy
# IExvbmRvbjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTAwLgYDVQQDEydTZWN0
# aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFNpZ25lciBSMzcwggIiMA0GCSqGSIb3
# DQEBAQUAA4ICDwAwggIKAoICAQCy/8NtS9xQ2UUtBRF32bj7VK3n4m50Uqjk/zTc
# iSziYV40H1LKah0/oEklYG42E4VCP3DvsBUB6DmpCkDZ0jCnZBPIEevaH15ZJOQw
# FWP2ZXr5YjlJpb68Nlbs+ElNvKx32/1YHde3qqUSLybjulxPLz6T85+HOIqK7M1B
# ep8LspyhEP/q6nw5kGxTSrGvufmeH+JF8CnVBcVMFA40FlIYh0cDJVFhhfTfdWgL
# y/vWuLMQoKkf3s/FvByf16r0rtbyHm/iemwxSioJL9zyZDDKUNAbHXl0dhXo2VxU
# V2NcPXWXuoKsjL+6cfk6Vm2DHnxAlFdFsaBDIF1JOkSnC6PeLlBznZn2buF3vIIY
# Jcq6N/zeFRCk4/HXDz7zgRsRRMdUB+rhyk5FoZaBjw0nLq3GZ3fClLUx5es5pUAx
# zNODMBn7JkFYip2BAGBPER5eV0ROhk6tGTG+fUiMiV+vgjg1YnP5FvnYWyEtWeQD
# /B2hp3vz0RvtdkM0p3igyadzrfpOBq5ppVk/YsuhTQkP99ivneHAGfi5e7lmxJ+m
# eoBPrRLuzMmb81rzzbESjJHMsn5RVtc6Ucs7rcMqQC13PUIO7BbGBETV2ufCmV6l
# PTp3P7XJOvmnUCRTPbVvMTpxP/z+SOHg4/OCBhiqs4FA9+4oQvlkk9w32NGASli9
# GWrm5wIDAQABo4IBjjCCAYowHwYDVR0jBBgwFoAUOnSlDGfGQlDC/bX8x7spNIL0
# erkwHQYDVR0OBBYEFGEQ6XoSr1HEhdTyz6R0D1DNIK/4MA4GA1UdDwEB/wQEAwIG
# wDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMEoGA1UdIARD
# MEEwCAYGZ4EMAQQCMDUGDCsGAQQBsjEBAgEDCDAlMCMGCCsGAQUFBwIBFhdodHRw
# czovL3NlY3RpZ28uY29tL0NQUzBKBgNVHR8EQzBBMD+gPaA7hjlodHRwOi8vY3Js
# LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNUaW1lU3RhbXBpbmdDQVI0MS5jcmww
# egYIKwYBBQUHAQEEbjBsMEUGCCsGAQUFBzAChjlodHRwOi8vY3J0LnNlY3RpZ28u
# Y29tL1NlY3RpZ29QdWJsaWNUaW1lU3RhbXBpbmdDQVI0MS5jcnQwIwYIKwYBBQUH
# MAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqGSIb3DQEBDAUAA4ICAQAD
# 6j2N0azN+hl6k6bKB5/U6VuSOs93ZBb3Pczy9VtBIKu4947Z5GwL0aFngIxl+GSu
# LFrJgPruBCRvKJEJsm7kv+LQ1COVCEG9tZ+IRtr4ocUoa53lgdFaENlS0N4wgkZk
# bQEPv+x+1lSjYh+T4JeL9mUznT7Erc6Sp5dWLka5sMP/m3GZi6oJPdPcsCKWagH7
# m2H2xDGIyHJC5PdH9phvi/KmhkktiSVTNNqVeV5bWdX2zhRE6UTfz0IcMoCL996l
# FIydXxOCE4MNDHDM0as4lnTiT/KHMccO6l8c9TnUVgmpci9ar1IABZ2U1XUkYjGG
# Sn9MC3EHDP9V39VuBVvZ33/BEV/EWSRrf07T7jFplKX+gQr/UOqPGMlE7ZJ72UaU
# kNJy7bVl3bcLKzdpjIHzLkf/4MVa1V7w8wqCv5W4gOnRGTlud5UMARbRM8BPxR/C
# XYXoMmIOD8pmTk2axgRL4LG8XtuchISdCHRmtacAmLGq5XSYSVTHTXADlO48iDKh
# 3HM2r98LSF6f0sG12d8V9Jn7C3wDUieOxuKj4MdWrW+hiJU2kF87v6eH00HgCFFc
# 2V0+CvfOCMn7juzS41jLaINcBlKWQ/fKb/uDLfWOW73z1I2lFY7Xj8tQ1XYtK5eR
# EjWItM8jpl1cbQOc88btR+0XS2TmboE/141+va2PWzCCBqcwggSPoAMCAQICEQCQ
# rAhyIP3Fp8RrXMcN9z0GMA0GCSqGSIb3DQEBDAUAMFcxCzAJBgNVBAYTAkdCMRgw
# FgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxLjAsBgNVBAMTJVNlY3RpZ28gUHVibGlj
# IFRpbWUgU3RhbXBpbmcgUm9vdCBSNDYwHhcNMjYwMzI1MDAwMDAwWhcNNDEwMzI0
# MjM1OTU5WjBVMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVk
# MSwwKgYDVQQDEyNTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIENBIFI0MTCC
# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7kSqIBrYIcYvlmLVuaA8zw
# 1RfBhkn4G1CoemzjcYtML6yNUvKmwGH7y6/5MuSC1UYP/+9KYDSqvMQt/1hEKHYx
# MAD9oZpBkoaDQFEKbOJHelsKe+BaO0ZcENTKfePcraVkA7wrGAW2XHA5gQCQv4IK
# ori/3PNOXxnDMOk8yIMgVrlMeTxqfWJ4XkjT1xc2s9DD7URHWWJOFobTPoWs6mrD
# FlaY9FlAHDYTfbzvxQHVsvRmn3W+5ZmCwyk02I8KgGPT/UX4sTz41GiR+ppwUjQX
# a1+2tEHZbsdAKUtH3OPEVtZvlt7atx4h83IdRR8oYi8wjY3OjFKXFecWpQbzzsPx
# bUKPwMWiTrzwkrFa8dH/1pDKRJt371W62PfqKPayCr/XbnBOlRn8CALSmHnRtGzu
# AWtTJpcT3BKw6oy8IIL6wSbu938F6ZIbRNIc1dKbIJtr4ULN6R5ZfTdNEhwXctqp
# 3RHDbg4fuOl6LjNoaFwjud92EEDhzxFJzE1jqN4csceZIwxOT1aqfsfh0uFQE/lg
# TBuBs3i6/WL2W1OceWLy3XEdXRK1f0EWCuea6dNfX2RRdjUfk5EltFnJkN2+bWhn
# K14OPRKcyjOv5hKZ0iV4NRNd1+hjtva1rPyzb5Bs7EvFxqEQhgZbOq7qH3nm0rBw
# A0dxniBOYCFPdu246JCxAgMBAAGjggFuMIIBajAfBgNVHSMEGDAWgBT2d2rdP/0B
# E/8WoWyCAi/QCj0UJTAdBgNVHQ4EFgQUOnSlDGfGQlDC/bX8x7spNIL0erkwDgYD
# VR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwEwYDVR0lBAwwCgYIKwYB
# BQUHAwgwIwYDVR0gBBwwGjAIBgZngQwBBAIwDgYMKwYBBAGyMQECAQMIMEwGA1Ud
# HwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1Ymxp
# Y1RpbWVTdGFtcGluZ1Jvb3RSNDYuY3JsMHwGCCsGAQUFBwEBBHAwbjBHBggrBgEF
# BQcwAoY7aHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljVGltZVN0
# YW1waW5nUm9vdFI0Ni5wN2MwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3Rp
# Z28uY29tMA0GCSqGSIb3DQEBDAUAA4ICAQAy3lJHZvGeA2b43yhzoarvobHVzbfl
# +RfuPDwej0wCQkYAN6scTt2GwFe22qbOCv/tllqFlLKQZE+E9jVyuPTbyQHwrM7R
# 0oLapAEDC1+CowsqSRf/ptira5Pfd4PoHICnb9coPQtyZmHSQp5y9IGvqWf1qNfq
# 7V2fHZ8DvEQrLUzeoGF9BJRYu2OzacW3QQtUum3NOVf0gPRwv6I4991uhncJ6VP4
# lcpUpHZKB7R3hiIUC09mR9KjzPVnXHvL9n2bAwiUECfK5Zezhiw27F2tgi39DETf
# U8M4n0N6xLgFzsf05M5GURX8C9+IX9V6kpmmKtrUzMti4LD66gtmf+mSm934K81N
# L6YQeMEk1rpYrWPypcW76Mir6wb1AgseLIHqn/GkeuQm7zOTDf3f5WoX14qVNjZW
# NHF3JxkutV6ZnhinfCLfdv5bnwKWUfceqOajCVntI6uCbHxjBg6SCsexc5AfIGno
# 7gVFvwifT4XONPsSUaJ71XsJ+EvciVUVnjOO4qxm0fWJTd8a7jP8mc4ZPqwJvQFt
# Op7+6G+kUJAF0fnE8YgD8uttBReNTa1YmAeFMiqc38e8fI4eLm0zjM/eeGCHasno
# qqrbGwcF41iz9HXzFDwN4iD5z3QShp6HRiU3UpTwDJiiXcr0z6pjl7PyzJ3/tmWt
# GehV7CAfc/WlyzCCBoIwggRqoAMCAQICEDbCsL18Gzrno7PdNsvJdWgwDQYJKoZI
# hvcNAQEMBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQw
# EgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3
# b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9y
# aXR5MB4XDTIxMDMyMjAwMDAwMFoXDTM4MDExODIzNTk1OVowVzELMAkGA1UEBhMC
# R0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEuMCwGA1UEAxMlU2VjdGlnbyBQ
# dWJsaWMgVGltZSBTdGFtcGluZyBSb290IFI0NjCCAiIwDQYJKoZIhvcNAQEBBQAD
# ggIPADCCAgoCggIBAIid2LlFZ50d3ei5JoGaVFTAfEkFm8xaFQ/ZlBBEtEFAgXcU
# manU5HYsyAhTXiDQkiUvpVdYqZ1uYoZEMgtHES1l1Cc6HaqZzEbOOp6YiTx63ywT
# on434aXVydmhx7Dx4IBrAou7hNGsKioIBPy5GMN7KmgYmuu4f92sKKjbxqohUSfj
# k1mJlAjthgF7Hjx4vvyVDQGsd5KarLW5d73E3ThobSkob2SL48LpUR/O627pDchx
# ll+bTSv1gASn/hp6IuHJorEu6EopoB1CNFp/+HpTXeNARXUmdRMKbnXWflq+/g36
# NJXB35ZvxQw6zid61qmrlD/IbKJA6COw/8lFSPQwBP1ityZdwuCysCKZ9ZjczMqb
# UcLFyq6KdOpuzVDR3ZUwxDKL1wCAxgL2Mpz7eZbrb/JWXiOcNzDpQsmwGQ6Stw8t
# TCqPumhLRPb7YkzM8/6NnWH3T9ClmcGSF22LEyJYNWCHrQqYubNeKolzqUbCqhSq
# mr/UdUeb49zYHr7ALL8bAJyPDmubNqMtuaobKASBqP84uhqcRY/pjnYd+V5/dcu9
# ieERjiRKKsxCG1t6tG9oj7liwPddXEcYGOUiWLm742st50jGwTzxbMpepmOP1mLn
# JskvZaN5e45NuzAHteORlsSuDt5t4BBRCJL+5EZnnw0ezntk9R8QJyAkL6/bAgMB
# AAGjggEWMIIBEjAfBgNVHSMEGDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNV
# HQ4EFgQU9ndq3T/9ARP/FqFsggIv0Ao9FCUwDgYDVR0PAQH/BAQDAgGGMA8GA1Ud
# EwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwgwEQYDVR0gBAowCDAGBgRV
# HSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9V
# U0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDA1BggrBgEFBQcB
# AQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJ
# KoZIhvcNAQEMBQADggIBAA6+ZUHtaES45aHF1BGH5Lc7JYzrftrIF5Ht2PFDxKKF
# Oct/awAEWgHQMVHol9ZLSyd/pYMbaC0IZ+XBW9xhdkkmUV/KbUOiL7g98M/yzRyq
# UOZ1/IY7Ay0YbMniIibJrPcgFp73WDnRDKtVutShPSZQZAdtFwXnuiWl8eFARK3P
# mLqEm9UsVX+55DbVIz33Mbhba0HUTEYv3yJ1fwKGxPBsP/MgTECimh7eXomvMm0/
# GPxX2uhwCcs/YLxDnBdVVlxvDjHjO1cuwbOpkiJGHmLXXVNbsdXUC2xBrq9fLrfe
# 8IBsA4hopwsCj8hTuwKXJlSTrZcPRVSccP5i9U28gZ7OMzoJGlxZ5384OKm0r568
# Mo9TYrqzKeKZgFo0fj2/0iHbj55hc20jfxvK3mQi+H7xpbzxZOFGm/yVQkpo+ffv
# 5gdhp+hv1GDsvJOtJinJmgGbBFZIThbqI+MHvAmMmkfb3fTxmSkop2mSJL1Y2x/9
# 55S29Gu0gSJIkc3z30vU/iXrMpWx2tS7UVfVP+5tKuzGtgkP7d/doqDrLF1u6Ci3
# TpjAZdeLLlRQZm867eVeXED58LXd1Dk6UvaAhvmWYXoiLz4JA5gPBcz7J311uahx
# CweNxE+xxxR3kT0WKzASo5G/PyDez6NHdIUKBeE3jDPs2ACc6CkJ1Sji4PKWVT0/
# MYIEkzCCBI8CAQEwajBVMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBM
# aW1pdGVkMSwwKgYDVQQDEyNTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIENB
# IFI0MQIRAOdO8lWwUE/626bf9/yLoxUwDQYJYIZIAWUDBAICBQCgggH6MBoGCSqG
# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNjI2MTQw
# NDE1WjA/BgkqhkiG9w0BCQQxMgQwygZUx2+wGR72oZZgRxF+3LnkhjVMxll8YP5j
# P+C/DCzzPTZ47yrgNOCjE38Rj7GeMIIBewYLKoZIhvcNAQkQAgwxggFqMIIBZjCC
# AWIwFgQU6XgYqSjaFQqf4b+czHqruaAO7qwwgYgEFGXDKGlvfU5QLP0Dx8IGlxjK
# +/dPMHAwW6RZMFcxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
# ZWQxLjAsBgNVBAMTJVNlY3RpZ28gUHVibGljIFRpbWUgU3RhbXBpbmcgUm9vdCBS
# NDYCEQCQrAhyIP3Fp8RrXMcN9z0GMIG8BBSFPWMtk4KCYXzQkDXEkd6SwULaxzCB
# ozCBjqSBizCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDAS
# BgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdv
# cmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
# dHkCEDbCsL18Gzrno7PdNsvJdWgwDQYJKoZIhvcNAQEBBQAEggIAsbh5KSU+gq9y
# MuXNDko+eB42Gx+3F5aAlQMBdBD3rgcXaxrR6kDT/mXKBAMAnuMC/7iy5FKUVM/r
# Z3O5guOAwQgbGAeYwfB85byyYNlE9UFSxQYgwsJgPRiixPBkm55QcOGkkT1XgdKS
# vFhaJErVUaZFNL+XItuxM/bfnmo22EM9cS8KSUMP+XrEBTz2Qg6BuHrsnFZQks7O
# llyVl5nL4+qHPy1tZ+5wRZe46A/6yflxuGDFQHWs3qYfhoKAUMFdHFmGgmenX33n
# zz0VQJAkJFyH9PbcTC6+WjmlUWVUKD3IbdtahTxi+CiIduFG0eR4MVYrmOssmC65
# ksE1Q+YEptbyxswYn6ITzfFp3qI9lZ+14Cz2mtF9jIqFYtI1B3baV0NLa/9vE5r1
# T9kwCC5O66qQyCJOA9brdB9WG4CI92TBc0G+NF/8TtYUz4ZaTuXUGl+CZVnfm9vN
# sMiw+0vxzx3OWIEUSfJVVmdA7zQPhl4+DA9XJ93doA6UsFUq/1IDouBAdb+dWXya
# FcuKx+j8SsSWdd0FdJjTImN8uW6kOH66ujk5c6F5xbSCqjXTwfaGAfrgOWVjIDvS
# m8QQJoiJcdN/GfyBZbes3yop4787e/XvgNXaK2RL232bnH5Po0Fql633uWW/mZF4
# umpL2zWobjvH5AcFYI9NE+rlk/jHy2I=
# SIG # End signature block