Samples/Onboard-Compute-Devices_Sample.ps1

###################################################################################################
# Onboard-Compute-Devices_Sample.ps1
# - Example script for onboarding Compute devices in the HPE GreenLake Cloud Platform.
#
# VERSION 1.0
#
# This script shows how to fully onboard Compute devices in the HPE GreenLake Cloud Platform using
# a CSV file containing iLO information and tags to assign to the devices.
#
# (C) Copyright 2013-2023 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.
#>

###################################################################################################

<#
 
Prerequisites:
 - HPE GreenLake PowerShell Library
 - Network access to both the Internet (for accessing the HPE GreenLake platform) and the iLO network (which is typically a private network).
   
Actions performed during the onboarding process:
 
    1/ Connect to HPE GreenLake using the default account or the one provided using the GLCompanyName parameter.
    2/ Set the automatic assignment of subscriptions with the first Compute Enhanced subscription found that has not expired and has available subscription seats.
    3/ Onboard each device to the HPE GreenLake Cloud Platform account.
    4/ Set optional server tags if defined.
    5/ Associate each device with the defined application instance (subscription is automatically assigned to each device as per auto assignment configuration).
    6/ Set each iLO to use a web proxy if defined via the different web proxy parameters.
    7/ Connect each iLO to the HPE Compute Ops Management instance.
 
The content of the csv file must use the following format:
 
  IP, Username, Password, Tags
  192.168.3.193, Administrator, password, Country=FR City=Mougins App=InfluxDB Owner=LJ
  192.168.3.191, Administrator, password, Country=US State=Texas Role=Production Owner=LJ
  192.168.3.205, demo, password
 
Note that for 192.168.3.205, no tag is assigned in this example.
 
 
Additional information can be found by using: Get-Help Add-HPEGLDeviceComputeFullService -full
 
#>



#----------------------------------------------------Import HPE GreenLake PowerShell Module-----------------------------------------------------------------------------
  

Import-Module HPEGreenLake


#----------------------------------------------------Create HPE GreenLake Credentials-----------------------------------------------------------------------------


$GLCP_userName = "username@domain.com"
$EncryptedPassword = "01000000d08c9ddf0115d1118c7a00c04fc297eb0100000007b4614ade6ce1489bd0283c5af38b7f0000000002000000000003660000c000000010000000031bd39e0cba34b7788afeb87796ac9e0000000004800000a000000010000000b32d72a7d8d9477e92303b3f9151f155200000007c21c096c3b3518a7c62573ac7d220517c10bf5b73ac13bb9a1b819e3523a70014000000be59fe899e0b83f81cd9fbf0705c72c310145cc1"
$secpasswd = ConvertTo-SecureString $EncryptedPassword
$GLCredential = New-Object System.Management.Automation.PSCredential ($GLCP_userName, $secpasswd)


#----------------------------------------------------Full Compute Device onboarding service to HPE GreenLake Cloud Platform-----------------------------------------------------------------------------


# Example 1
$Response = import-csv .\Samples\Compute_Devices.csv | Add-HPEGLDeviceComputeFullService -GLCredential $GLCredential -Region "eu-central"

# Connect to HPE GreenLake using the default company account.
# Onboard each compute device listed in iLOs.csv to the HPE GreenLake Cloud Platform default company account.
# Associate each compute device with the Compute Ops Management application located in the Central European region.
# Assign an enhanced subscription key found in the account to the each device and set tags.
# Connect each iLO to the HPE Compute Ops Management instance.
# $Response returns an overall onboarding status of all devices.
# $Response[0] returns the onboarding status of the first device.
# $Response[0].SubTasksStatus returns the subtask status of the first device.

# Example 2 with company account
$Response = import-csv .\Samples\Compute_Devices.csv | Add-HPEGLDeviceComputeFullService -GLCredential $GLCredential -Region "us-west" -GLCompanyName "Your Company name"

# Connect to HPE GreenLake using "Your Company name" company account.
# Onboard each compute device listed in iLOs.csv to the HPE GreenLake Cloud Platform "Your Company name" account.
# Associate each compute device with the Compute Ops Management application located in the Western US region.
# Assign an enhanced subscription key found in the account to the each device.
# Connect each iLO to the HPE Compute Ops Management instance without a web proxy.
# $Response returns an overall onboarding status of all devices.
# $Response[1] returns the onboarding status of the second device.
# $Response[1].SubTasksStatus returns the subtask status of the second device.

# Example 3 with iLO configured with a web proxy server
$Response = import-csv .\Samples\Compute_Devices.csv | Add-HPEGLDeviceComputeFullService -GLCredential $GLCredential -Region "us-west" -GLCompanyName "Your Company name" -IloProxyServer "web-proxy.com" -IloProxyPort 8088 

# Connect to HPE GreenLake using "Your Company name" company account.
# Onboard each compute device listed in iLOs.csv to the HPE GreenLake Cloud Platform "Your Company name" account.
# Associate each compute device with the Compute Ops Management application located in the Western US region.
# Assign an enhanced subscription key found in the account to the each device and set tags.
# Set each iLO to use a web proxy.
# Connect each iLO to the HPE Compute Ops Management instance.

# Example 4 with iLO configured with a web proxy server and user credentials
$Response = import-csv .\Samples\Compute_Devices.csv | Add-HPEGLDeviceComputeFullService -GLCredential $GLCredential -Region "us-west" -GLCompanyName "Your Company name" -IloProxyServer "web-proxy.com" -IloProxyPort 8088 -IloProxyUserName "demopaq" -IloProxyPassword "er3454kjhe23jh2ehhe"

# Connect to HPE GreenLake using "Your Company name" company account.
# Onboard each compute device listed in iLOs.csv to the HPE GreenLake Cloud Platform "Your Company name" account.
# Associate each compute device with the Compute Ops Management application located in the Western US region.
# Assign an enhanced subscription key found in the account to the each device and set tags.
# Set each iLO to use a web proxy with user credentials.
# Connect each iLO to the HPE Compute Ops Management instance.

# Example 5 with one iLO
$Response = Add-HPEGLDeviceComputeFullService -GLCredential $GLCredential -Region "us-west" -IloIP 192.168.1.44 -IloUserName "Administrator" -IloPassword "P@ssw0rd" -Tags "Country=US City=Houston App=CentOS"

# Connect to HPE GreenLake using the default company account.
# Onboard the compute with the iLO IP address 192.168.1.44 to the HPE GreenLake Cloud Platform default company account.
# Associate the compute device with the Compute Ops Management application located in the western US region.
# Assign to the device an enhanced subscription key found in the account and set 3 tags.
# Connect the iLO to the HPE Compute Ops Management instance without a web proxy.
# $Response returns the onboarding status of the device.
# $Response.SubTasksStatus returns the onboarding status of the device's subtasks.








# SIG # Begin signature block
# MIIoFgYJKoZIhvcNAQcCoIIoBzCCKAMCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAJfyRrDQGuL+BV
# T1+ke1+CAYOTmVS7QoydK1kXJUev7qCCEXYwggVvMIIEV6ADAgECAhBI/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/mBlXpnYzyOmJRvOwkDynUWICE5EV7WtgwggXhMIIESaADAgECAhEAiC+b
# fqa5zZMYuwvoX6mNzTANBgkqhkiG9w0BAQwFADBUMQswCQYDVQQGEwJHQjEYMBYG
# A1UEChMPU2VjdGlnbyBMaW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBD
# b2RlIFNpZ25pbmcgQ0EgUjM2MB4XDTIyMDYwNzAwMDAwMFoXDTIzMDYwNzIzNTk1
# OVowdzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMSswKQYDVQQKDCJIZXds
# ZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBDb21wYW55MSswKQYDVQQDDCJIZXdsZXR0
# IFBhY2thcmQgRW50ZXJwcmlzZSBDb21wYW55MIIBojANBgkqhkiG9w0BAQEFAAOC
# AY8AMIIBigKCAYEAqIB+RRqpvViU6X7T3tvLHdNIaeNHDUnXfD7xhowfy+KUq435
# SXm/l06TZhINORIskT7NzXeGQ0GOH9E/fi75I8DvaqpNP2+/KNqjoKN4/b9lg3Yy
# guQhHbozA9LceUEcJuqoMVP8ISJlNf04UUuBbu/qOi98+fZsTLERF8616e8cxZOn
# Bl5qWXcWj9TgiLaxQ0O3rG6Uvk0xK5i9CV/drChAxwIHl+gQial9ZSy3U5xbQMk5
# OXRxb21I3iPW7ZwqGwzlZbThGZHZ3mSHWkgTClwf5nOecwphVLl7lpHlmr2Tk4qa
# UhfsyGBN6i3BaVf2d2hLgPQ9Qg0Of9odHyapIfty2jjFv0hqcPRzOR5oaCPd+4JZ
# jE8WTRVkdXHUc+od4SkbvGhSFS/VoVfJHdIAMRytokkbh5CvVOgRqB7JbhEdPYLk
# j9byRyU9oJ9tmQR4pvWhXgp5hiaG8Hkviq4b0WDb8ABa2cPQjISvF0rT71j7BHB4
# Z1o4RSSobHDrRDldAgMBAAGjggGJMIIBhTAfBgNVHSMEGDAWgBQPKssghyi47G9I
# ritUpimqF6TNDDAdBgNVHQ4EFgQUGehhFjHaeyHCjpnhdDVt2htnGHQwDgYDVR0P
# AQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwSgYD
# VR0gBEMwQTA1BgwrBgEEAbIxAQIBAwIwJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9z
# ZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQQBMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6
# Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nQ0FSMzYu
# Y3JsMHkGCCsGAQUFBwEBBG0wazBEBggrBgEFBQcwAoY4aHR0cDovL2NydC5zZWN0
# aWdvLmNvbS9TZWN0aWdvUHVibGljQ29kZVNpZ25pbmdDQVIzNi5jcnQwIwYIKwYB
# BQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqGSIb3DQEBDAUAA4IB
# gQArQbT5SgTXP0rCqiEwmyhjWiPx3j/dn75m7RDo/UtFPmmN76/0JJCufXHZZZb3
# 7wxfTz+q524nZzWdGy8SLgl7k2o9H1hbzc6qeOUJssqIPD8GFlrpAgay8W74Q4On
# 1NtV5qijkOeeNH1Dqk3E8/u/oOjz1GC5NMB9tYIbRqeO8ACpoJDRWMGG90RHM7rh
# BCQ4AOtDt1k9XyITdlw41UgFd51zXJhDGqIEeBNgJ4xDDuPvAQCY8uacZSvn+WGn
# sdroqWiSJVGm4lHe4OoTaDLnClMNh6trM4QLqpqt20QfmQM73tUzmF7eBmGRGFoC
# R8O0UlxE2MKXpeI6+K14VRZ1ew+j/BcrQwWQInuI9zHjC7dvvdicNyvxkmAep1WN
# 3AoVGbQW/m4T2mO8G0UI+7CECbcCLBtO7X9Le/GL2h32O20863V8A35wRN3Gmri/
# SZsPm5BGJRtK30d8qpjo1v/vwz/aycp8plSA4XtaeNUvYl36XmB6RQ1fl/l7w9Lp
# R3EwggYaMIIEAqADAgECAhBiHW0MUgGeO5B5FSCJIRwKMA0GCSqGSIb3DQEBDAUA
# MFYxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxLTArBgNV
# BAMTJFNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBSb290IFI0NjAeFw0yMTAz
# MjIwMDAwMDBaFw0zNjAzMjEyMzU5NTlaMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQK
# Ew9TZWN0aWdvIExpbWl0ZWQxKzApBgNVBAMTIlNlY3RpZ28gUHVibGljIENvZGUg
# U2lnbmluZyBDQSBSMzYwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCb
# K51T+jU/jmAGQ2rAz/V/9shTUxjIztNsfvxYB5UXeWUzCxEeAEZGbEN4QMgCsJLZ
# UKhWThj/yPqy0iSZhXkZ6Pg2A2NVDgFigOMYzB2OKhdqfWGVoYW3haT29PSTahYk
# wmMv0b/83nbeECbiMXhSOtbam+/36F09fy1tsB8je/RV0mIk8XL/tfCK6cPuYHE2
# 15wzrK0h1SWHTxPbPuYkRdkP05ZwmRmTnAO5/arnY83jeNzhP06ShdnRqtZlV59+
# 8yv+KIhE5ILMqgOZYAENHNX9SJDm+qxp4VqpB3MV/h53yl41aHU5pledi9lCBbH9
# JeIkNFICiVHNkRmq4TpxtwfvjsUedyz8rNyfQJy/aOs5b4s+ac7IH60B+Ja7TVM+
# EKv1WuTGwcLmoU3FpOFMbmPj8pz44MPZ1f9+YEQIQty/NQd/2yGgW+ufflcZ/ZE9
# o1M7a5Jnqf2i2/uMSWymR8r2oQBMdlyh2n5HirY4jKnFH/9gRvd+QOfdRrJZb1sC
# AwEAAaOCAWQwggFgMB8GA1UdIwQYMBaAFDLrkpr/NZZILyhAQnAgNpFcF4XmMB0G
# A1UdDgQWBBQPKssghyi47G9IritUpimqF6TNDDAOBgNVHQ8BAf8EBAMCAYYwEgYD
# VR0TAQH/BAgwBgEB/wIBADATBgNVHSUEDDAKBggrBgEFBQcDAzAbBgNVHSAEFDAS
# MAYGBFUdIAAwCAYGZ4EMAQQBMEsGA1UdHwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwu
# c2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nUm9vdFI0Ni5jcmww
# ewYIKwYBBQUHAQEEbzBtMEYGCCsGAQUFBzAChjpodHRwOi8vY3J0LnNlY3RpZ28u
# Y29tL1NlY3RpZ29QdWJsaWNDb2RlU2lnbmluZ1Jvb3RSNDYucDdjMCMGCCsGAQUF
# BzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEA
# Bv+C4XdjNm57oRUgmxP/BP6YdURhw1aVcdGRP4Wh60BAscjW4HL9hcpkOTz5jUug
# 2oeunbYAowbFC2AKK+cMcXIBD0ZdOaWTsyNyBBsMLHqafvIhrCymlaS98+QpoBCy
# KppP0OcxYEdU0hpsaqBBIZOtBajjcw5+w/KeFvPYfLF/ldYpmlG+vd0xqlqd099i
# ChnyIMvY5HexjO2AmtsbpVn0OhNcWbWDRF/3sBp6fWXhz7DcML4iTAWS+MVXeNLj
# 1lJziVKEoroGs9Mlizg0bUMbOalOhOfCipnx8CaLZeVme5yELg09Jlo8BMe80jO3
# 7PU8ejfkP9/uPak7VLwELKxAMcJszkyeiaerlphwoKx1uHRzNyE6bxuSKcutisqm
# KL5OTunAvtONEoteSiabkPVSZ2z76mKnzAfZxCl/3dq3dUNw4rg3sTCggkHSRqTq
# lLMS7gjrhTqBmzu1L90Y1KWN/Y5JKdGvspbOrTfOXyXvmPL6E52z1NZJ6ctuMFBQ
# ZH3pwWvqURR8AgQdULUvrxjUYbHHj95Ejza63zdrEcxWLDX6xWls/GDnVNueKjWU
# H3fTv1Y8Wdho698YADR7TNx8X8z2Bev6SivBBOHY+uqiirZtg0y9ShQoPzmCcn63
# Syatatvx157YK9hlcPmVoa1oDE5/L9Uo2bC5a4CH2RwxghX2MIIV8gIBATBpMFQx
# CzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxKzApBgNVBAMT
# IlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYCEQCIL5t+prnNkxi7
# C+hfqY3NMA0GCWCGSAFlAwQCAQUAoHwwEAYKKwYBBAGCNwIBDDECMAAwGQYJKoZI
# hvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcC
# ARUwLwYJKoZIhvcNAQkEMSIEINs508HD3H5uk7AGJTU9YankvRkr+VGn9RbH5329
# Y+RiMA0GCSqGSIb3DQEBAQUABIIBgJhOqpHCSDO/p4IhI4gBn4/iyeOH6LK9BRX2
# kEtVMuH+/vLmP8wrq18mrmTIdoWNUZJDA4BGHnpU1Hf+ecb0xqLNb+vxoJyIauzl
# qdCbcchh+7/IqDM1+lZjPYeJkJKhIJoKPdkkeAHt3CBxTEZHlVoA5Fl/dO0PRMAp
# iNBXftxAqMQfuQ9OXHdt7HoRwGEVRbpbhrktpoDXTqIuxll+AF9GtEv7DpZaDrzM
# 61rLyG4TH//Zpv1cTiE5ziImLMMn/XZPNzjCXY44v0zZRutkiV2OlMcw9DhpKDH1
# vlk9Kw6KD0++YrBfAbXWOyFjGAfaQlq40tP98IszNMgZo8irDL2Sur/H5P5nzU0b
# 61fzZMtb+ctBPXOdKO84doo/KtaWhIUnjyr9UMLMynyp3cJpgmecyHvkOoaa4xYn
# +NdjvZtzdelfYfCK2NmCofzDAfAgvg90bGU5YugBhieGWFgQnvRjB/dXPNRrhUqH
# W0Y1J4ynbxr61Ya+Nyp5GOTt4PxouqGCE2AwghNcBgorBgEEAYI3AwMBMYITTDCC
# E0gGCSqGSIb3DQEHAqCCEzkwghM1AgEDMQ8wDQYJYIZIAWUDBAICBQAwgf8GCyqG
# SIb3DQEJEAEEoIHvBIHsMIHpAgEBBgorBgEEAbIxAgEBMEEwDQYJYIZIAWUDBAIC
# BQAEMD/uOBX6ylQBl8Uqore4W2462dINUlHPdPC5jDD9EGd+V1hGZgY1s+2Fuxzh
# IKpGYgIUMGAQuqhIASOpu6Zmg639CVm/6gkYDzIwMjMwNDIwMTI0NTA3WqBupGww
# ajELMAkGA1UEBhMCR0IxEzARBgNVBAgTCk1hbmNoZXN0ZXIxGDAWBgNVBAoTD1Nl
# Y3RpZ28gTGltaXRlZDEsMCoGA1UEAwwjU2VjdGlnbyBSU0EgVGltZSBTdGFtcGlu
# ZyBTaWduZXIgIzOggg3qMIIG9jCCBN6gAwIBAgIRAJA5f5rSSjoT8r2RXwg4qUMw
# DQYJKoZIhvcNAQEMBQAwfTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIg
# TWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBM
# aW1pdGVkMSUwIwYDVQQDExxTZWN0aWdvIFJTQSBUaW1lIFN0YW1waW5nIENBMB4X
# DTIyMDUxMTAwMDAwMFoXDTMzMDgxMDIzNTk1OVowajELMAkGA1UEBhMCR0IxEzAR
# BgNVBAgTCk1hbmNoZXN0ZXIxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEsMCoG
# A1UEAwwjU2VjdGlnbyBSU0EgVGltZSBTdGFtcGluZyBTaWduZXIgIzMwggIiMA0G
# CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCQsnE/eeHUuYoXzMOXwpCUcu1aOm8B
# Q39zWiifJHygNUAG+pSvCqGDthPkSxUGXmqKIDRxe7slrT9bCqQfL2x9LmFR0IxZ
# Nz6mXfEeXYC22B9g480Saogfxv4Yy5NDVnrHzgPWAGQoViKxSxnS8JbJRB85XZyw
# lu1aSY1+cuRDa3/JoD9sSq3VAE+9CriDxb2YLAd2AXBF3sPwQmnq/ybMA0QfFijh
# anS2nEX6tjrOlNEfvYxlqv38wzzoDZw4ZtX8fR6bWYyRWkJXVVAWDUt0cu6gKjH8
# JgI0+WQbWf3jOtTouEEpdAE/DeATdysRPPs9zdDn4ZdbVfcqA23VzWLazpwe/Opw
# feZ9S2jOWilh06BcJbOlJ2ijWP31LWvKX2THaygM2qx4Qd6S7w/F7KvfLW8aVFFs
# M7ONWWDn3+gXIqN5QWLP/Hvzktqu4DxPD1rMbt8fvCKvtzgQmjSnC//+HV6k8+4W
# OCs/rHaUQZ1kHfqA/QDh/vg61MNeu2lNcpnl8TItUfphrU3qJo5t/KlImD7yRg1p
# sbdu9AXbQQXGGMBQ5Pit/qxjYUeRvEa1RlNsxfThhieThDlsdeAdDHpZiy7L9GQs
# Qkf0VFiFN+XHaafSJYuWv8at4L2xN/cf30J7qusc6es9Wt340pDVSZo6HYMaV38c
# AcLOHH3M+5YVxQIDAQABo4IBgjCCAX4wHwYDVR0jBBgwFoAUGqH4YRkgD8NBd0Uo
# jtE1XwYSBFUwHQYDVR0OBBYEFCUuaDxrmiskFKkfot8mOs8UpvHgMA4GA1UdDwEB
# /wQEAwIGwDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMEoG
# A1UdIARDMEEwNQYMKwYBBAGyMQECAQMIMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8v
# c2VjdGlnby5jb20vQ1BTMAgGBmeBDAEEAjBEBgNVHR8EPTA7MDmgN6A1hjNodHRw
# Oi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29SU0FUaW1lU3RhbXBpbmdDQS5jcmww
# dAYIKwYBBQUHAQEEaDBmMD8GCCsGAQUFBzAChjNodHRwOi8vY3J0LnNlY3RpZ28u
# Y29tL1NlY3RpZ29SU0FUaW1lU3RhbXBpbmdDQS5jcnQwIwYIKwYBBQUHMAGGF2h0
# dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqGSIb3DQEBDAUAA4ICAQBz2u1ocsvC
# uUChMbu0A6MtFHsk57RbFX2o6f2t0ZINfD02oGnZ85ow2qxp1nRXJD9+DzzZ9cN5
# JWwm6I1ok87xd4k5f6gEBdo0wxTqnwhUq//EfpZsK9OU67Rs4EVNLLL3OztatcH7
# 14l1bZhycvb3Byjz07LQ6xm+FSx4781FoADk+AR2u1fFkL53VJB0ngtPTcSqE4+X
# rwE1K8ubEXjp8vmJBDxO44ISYuu0RAx1QcIPNLiIncgi8RNq2xgvbnitxAW06IQI
# kwf5fYP+aJg05Hflsc6MlGzbA20oBUd+my7wZPvbpAMxEHwa+zwZgNELcLlVX0e+
# OWTOt9ojVDLjRrIy2NIphskVXYCVrwL7tNEunTh8NeAPHO0bR0icImpVgtnyughl
# A+XxKfNIigkBTKZ58qK2GpmU65co4b59G6F87VaApvQiM5DkhFP8KvrAp5eo6rWN
# es7k4EuhM6sLdqDVaRa3jma/X/ofxKh/p6FIFJENgvy9TZntyeZsNv53Q5m4aS18
# YS/to7BJ/lu+aSSR/5P8V2mSS9kFP22GctOi0MBk0jpCwRoD+9DtmiG4P6+mslFU
# 1UzFyh8SjVfGOe1c/+yfJnatZGZn6Kow4NKtt32xakEnbgOKo3TgigmCbr/j9re8
# ngspGGiBoZw/bhZZSxQJCZrmrr9gFd2G9TCCBuwwggTUoAMCAQICEDAPb6zdZph0
# fKlGNqd4LbkwDQYJKoZIhvcNAQEMBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhl
# IFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRp
# ZmljYXRpb24gQXV0aG9yaXR5MB4XDTE5MDUwMjAwMDAwMFoXDTM4MDExODIzNTk1
# OVowfTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQ
# MA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSUwIwYD
# VQQDExxTZWN0aWdvIFJTQSBUaW1lIFN0YW1waW5nIENBMIICIjANBgkqhkiG9w0B
# AQEFAAOCAg8AMIICCgKCAgEAyBsBr9ksfoiZfQGYPyCQvZyAIVSTuc+gPlPvs1rA
# dtYaBKXOR4O168TMSTTL80VlufmnZBYmCfvVMlJ5LsljwhObtoY/AQWSZm8hq9Vx
# EHmH9EYqzcRaydvXXUlNclYP3MnjU5g6Kh78zlhJ07/zObu5pCNCrNAVw3+eolzX
# OPEWsnDTo8Tfs8VyrC4Kd/wNlFK3/B+VcyQ9ASi8Dw1Ps5EBjm6dJ3VV0Rc7NCF7
# lwGUr3+Az9ERCleEyX9W4L1GnIK+lJ2/tCCwYH64TfUNP9vQ6oWMilZx0S2UTMiM
# PNMUopy9Jv/TUyDHYGmbWApU9AXn/TGs+ciFF8e4KRmkKS9G493bkV+fPzY+DjBn
# K0a3Na+WvtpMYMyou58NFNQYxDCYdIIhz2JWtSFzEh79qsoIWId3pBXrGVX/0DlU
# LSbuRRo6b83XhPDX8CjFT2SDAtT74t7xvAIo9G3aJ4oG0paH3uhrDvBbfel2aZMg
# HEqXLHcZK5OVmJyXnuuOwXhWxkQl3wYSmgYtnwNe/YOiU2fKsfqNoWTJiJJZy6hG
# wMnypv99V9sSdvqKQSTUG/xypRSi1K1DHKRJi0E5FAMeKfobpSKupcNNgtCN2mu3
# 2/cYQFdz8HGj+0p9RTbB942C+rnJDVOAffq2OVgy728YUInXT50zvRq1naHelUF6
# p4MCAwEAAaOCAVowggFWMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvAnfKyA2bL
# MB0GA1UdDgQWBBQaofhhGSAPw0F3RSiO0TVfBhIEVTAOBgNVHQ8BAf8EBAMCAYYw
# EgYDVR0TAQH/BAgwBgEB/wIBADATBgNVHSUEDDAKBggrBgEFBQcDCDARBgNVHSAE
# CjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2VydHJ1
# c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYG
# CCsGAQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3Qu
# Y29tL1VTRVJUcnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRw
# Oi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBDAUAA4ICAQBtVIGlM10W
# 4bVTgZF13wN6MgstJYQRsrDbKn0qBfW8Oyf0WqC5SVmQKWxhy7VQ2+J9+Z8A70DD
# rdPi5Fb5WEHP8ULlEH3/sHQfj8ZcCfkzXuqgHCZYXPO0EQ/V1cPivNVYeL9IduFE
# Z22PsEMQD43k+ThivxMBxYWjTMXMslMwlaTW9JZWCLjNXH8Blr5yUmo7Qjd8Fng5
# k5OUm7Hcsm1BbWfNyW+QPX9FcsEbI9bCVYRm5LPFZgb289ZLXq2jK0KKIZL+qG9a
# JXBigXNjXqC72NzXStM9r4MGOBIdJIct5PwC1j53BLwENrXnd8ucLo0jGLmjwkcd
# 8F3WoXNXBWiap8k3ZR2+6rzYQoNDBaWLpgn/0aGUpk6qPQn1BWy30mRa2Coiwkud
# 8TleTN5IPZs0lpoJX47997FSkc4/ifYcobWpdR9xv1tDXWU9UIFuq/DQ0/yysx+2
# mZYm9Dx5i1xkzM3uJ5rloMAMcofBbk1a0x7q8ETmMm8c6xdOlMN4ZSA7D0GqH+mh
# QZ3+sbigZSo04N6o+TzmwTC7wKBjLPxcFgCo0MR/6hGdHgbGpm0yXbQ4CStJB6r9
# 7DDa8acvz7f9+tCjhNknnvsBZne5VhDhIG7GrrH5trrINV0zdo7xfCAMKneutaIC
# hrop7rRaALGMq+P5CslUXdS5anSevUiumDGCBC0wggQpAgEBMIGSMH0xCzAJBgNV
# BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1Nh
# bGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDElMCMGA1UEAxMcU2VjdGln
# byBSU0EgVGltZSBTdGFtcGluZyBDQQIRAJA5f5rSSjoT8r2RXwg4qUMwDQYJYIZI
# AWUDBAICBQCgggFrMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG
# 9w0BCQUxDxcNMjMwNDIwMTI0NTA3WjA/BgkqhkiG9w0BCQQxMgQww5ygYVifZnmG
# NKkiZK5J0fdmoNFuGaxjiFjAYYrfFrjgajXj/+9DVUvhNiwblQepMIHtBgsqhkiG
# 9w0BCRACDDGB3TCB2jCB1zAWBBSrNAE6rECXMZ8IGvCzGOGD+A94gTCBvAQUAtZb
# leKDcMFXAJX6iPkj3ZN/rY8wgaMwgY6kgYswgYgxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMV
# VGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENl
# cnRpZmljYXRpb24gQXV0aG9yaXR5AhAwD2+s3WaYdHypRjaneC25MA0GCSqGSIb3
# DQEBAQUABIICAC8ODFhUh7D1yeIkb90oe1ZkaJCqMWMKc63q+vcz+aB2lO8iFRN9
# haV0GV9Zw8DixpuUIvfHqle+yXTyn1yRptnn9yfv8WhQls4TGe6DLOcRmoMUqhe5
# joLVU+1ny16Uxr0L3NyXHbIHf5CzyV9q95agvr1egtmoOLS/JHTqyTcIZBjuhuh4
# ckDjYBdSIoR7x7A6u52b1GJB/0Z4YvERPeGu50xuh2azwVb694gXMOJmjvJa5zhH
# 1PW5ena732S1g81zsbWDerw52gUaFwn22qaspMvxqWPou6SSN7HNfO/0+shTiyQd
# aDQCblklEE1XWgJA2L4vWHCboDA5r98glZ2x8xfYSKvlK2JL0Kf0RFpI300wi5aY
# glpFIyr5HtBzhXHcqlgTtISKxVHXEx5ERFM/AtSCE7Z5cgEDj7nMEfBbGKiG4fxj
# fB/+7vdlUo5/Mk+gX+FqSMN1Zug61sWqg5qgmaNla71jaWnI4TULkeNO1OVk5WHo
# 2rxtaa5G09SgBCSfudf7PqdrlJIS/NQY5YKuNvoBv/yADFy3kV9xTcKECtIQRQvM
# 2+Dzc0OQQmir5etET9/E2MbWmWYg32I4Nk6opx2gBqXvI/ODsAgOsn9lz39EPpQ5
# 9B3yW5tiN7+sU/c3SoeYqeCzTPSKSkAR3t0xQvx1duUqtmM4PoWWhiRv
# SIG # End signature block