Samples/Onboard-Storage-Devices_Sample.ps1

###################################################################################################
# Onboard-Storage-Devices_Sample.ps1
# - Example script for onboarding Storage devices in the HPE GreenLake Cloud Platform.
#
# VERSION 1.0
#
# This script shows how to fully onboard Storage devices in the HPE GreenLake Cloud Platform using
# a CSV file containing storage system 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/ Onboard each device to the HPE GreenLake Cloud Platform account.
    3/ Associate each device with the defined application instance.
    3/ Assign a subscription key to each device.
    4/ Set each device with optional tags if defined.
 
The content of the csv file must use the following format:
 
    SerialNumber, SubscriptionKey, Region, Tags
    AF-87654321, R3E34DSF32DSS42DWM7S, us-west, Country=US City=Houston
    AF-12345678, R6GZQRSK2OKBESEPQCW2, eu-central, Country=FR City=Mougins
    AF-01020304, EW3D2W1WZ8B4G9OFF34D, eu-central
 
Note that for AF-01020304, no tag is assigned in this example.
 
 
Additional information can be found by using: Get-Help Add-HPEGLDeviceStorageFullService -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 Storage Device onboarding service to HPE GreenLake Cloud Platform-----------------------------------------------------------------------------


# Example 1
$Response = import-csv .\Storage_Devices.csv | Add-HPEGLDeviceStorageFullService -GLCredential $GLCredential -Region eu-central
  
# Connect to HPE GreenLake using the default company account.
# Onboard each storage device listed in a Storage_Devices.csv file to the HPE GreenLake Cloud Platform default account.
# Associate each storage device with the Data Services Cloud Console application in the Central European region.
# Assign each storage device with the provided subscription key and tags.
# $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 a company account
$Response = import-csv .\Storage_Devices.csv | Add-HPEGLDeviceStorageFullService -GLCredential $GLCredential -GLCompanyName HPE_Mougins -Region eu-central
  
# Connect to HPE GreenLake using the "HPE_Mougins" account.
# Onboard each storage device listed in a Storage_Devices.csv file to the HPE GreenLake Cloud Platform "HPE_Mougins" account.
# Associate each storage device with the Data Services Cloud Console application in the Central European region.
# Assign each storage device with the provided subscription key and tags.
# $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 one Storage system
$Response = Add-HPEGLDeviceStorageFullService -GLCredential $GLCredential -Region eu-central -GLCompanyName DreamCompany -SerialNumber AF-12345678 -SubscriptionKey 4WS5SW48SA5D4S5W46A24F8D -Tags Country=US State=Texas City=Austin 

# Connect to HPE GreenLake using the "DreamCompany" account.
# Onboard the storage device "AF-12345678" to the HPE GreenLake Cloud Platform "DreamCompany" account.
# Associate the storage device with the Data Services Cloud Console application in the Central European region.
# Assign to the Storage device a subscription key "4WS5SW48SA5D4S5W46A24F8D" and three tags.
# $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
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCzF73v0vxhG5CB
# jhjloHo5hk+DHkai5S8/calhnlcoPaCCEXYwggVvMIIEV6ADAgECAhBI/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
# ARUwLwYJKoZIhvcNAQkEMSIEIKh/LQEXY8pMtc5xgkGvP4hPRXIhLDIJJhkivAmE
# bBa+MA0GCSqGSIb3DQEBAQUABIIBgCkvMtez37z9Ibt7LvIOfunCuve1DDFcxV+G
# +R5v61zXfw3dFHFox4/xwsMDoemnxi0ciMlkumDNDSgcrnJKd2a4QiO6h6SRv6e7
# i1wW5U84LsNLTUubCYs1RrpXTZxDjF+OgZ2D1VWz8zsDAuHHGCoX1wGOo3ynLZYf
# 8sFeeLt1Xwzd87wF7TIb9x0oeB6d9GPTYYDej9abaxcRyFCoIxULYR3u0sDoxkBI
# 23I5oNJY8KNMHRGiYQumDRtXp9A6dBQ3Aazlr6fXW/9WYtKoIzh18b1w80oqwG5+
# lSMl+ldLmW04I3IHAQO+ug6HB8/UsdxYM3R0/9Dimeh7/rMJ4LJsLJZCXMnkvWSf
# UoD6oWY2FUi47VlYWcxuPojO54LhhjBOUQkDyoZZujzTX7pVCukK1TNUsXVqHxu7
# iAmmgOyW5RPjux1fvFWePs1jm9INC3DkkIPfZIWXjX5205+ka7lFn5Z+5dy2QLAM
# 53U2rcXsl6zW1RlQu0f8Ql2yLq/0FaGCE2AwghNcBgorBgEEAYI3AwMBMYITTDCC
# E0gGCSqGSIb3DQEHAqCCEzkwghM1AgEDMQ8wDQYJYIZIAWUDBAICBQAwgf8GCyqG
# SIb3DQEJEAEEoIHvBIHsMIHpAgEBBgorBgEEAbIxAgEBMEEwDQYJYIZIAWUDBAIC
# BQAEMBmZoFw8vNX3y2ssvHBwfIKQO/hVr3kXUCHmKlpKFZNfnHWNdxu8nV6MlVKL
# tYb+agIURnu3LWmqfNQ1/WTHNSrErASlnEMYDzIwMjMwNDIwMTI0NzExWqBupGww
# 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
# 9w0BCQUxDxcNMjMwNDIwMTI0NzExWjA/BgkqhkiG9w0BCQQxMgQwdzVzYsbhpqMx
# y0KsG0/VzMVCxKjYGe7WqSS863pUYOlm2bQ7dCSCq3pM9N1dXOjMMIHtBgsqhkiG
# 9w0BCRACDDGB3TCB2jCB1zAWBBSrNAE6rECXMZ8IGvCzGOGD+A94gTCBvAQUAtZb
# leKDcMFXAJX6iPkj3ZN/rY8wgaMwgY6kgYswgYgxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMV
# VGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENl
# cnRpZmljYXRpb24gQXV0aG9yaXR5AhAwD2+s3WaYdHypRjaneC25MA0GCSqGSIb3
# DQEBAQUABIICABPb1qFwavfJvZJsYAizLv3XRrvk+jViAhpf1q7KlujGFr3ZPEnU
# rwRnnhtyyYrTuMYDj0m+ueneDVVWwplG5KaivJQjseSWwu5gK2VnEHcxTAnT0pST
# yHePvRzoXxYfrfQTHWtIQZnxHawU0a8uNoN16M7r5EqQrWjckxE0gtC5aEkfnpuZ
# OS5hhkHWMralZ5Gq9Ul1I/M3WSpiivPzG9rMk/zLlioHGBN/hLJmliMAH5FoJCoJ
# vxmAVbl4BrnzaARPVnBN+a4630KP3QzKYHXuKrjvWp0L3QOwmlQ88+dmxN7JLj8A
# nfZjp53eW1mdHyBY2gtzLzfLYYW0YW+F7YG5UajkLp7tWQQscHWoFLxRwwB77oYQ
# fwibZpCvl1gWBtiH28dUat3PhWUbyMv9d33QY+UbyUwCQNZaNdOy4W48pI1lliLl
# CRR4uV9gYjBVdRsyTKZ2eqbe/bByQmhmn0ao9QMQ100+4zwDhKsb2KC+ScWT4Jsu
# 9d8I6H9IDfKb5lTMoJsgKJkot0lp8XhXV4mCbpXyJLoOG/nOLF1oecuyiehsqffv
# f3a8h+nzlwSbJ1CHHdXiqHuBj/JGhsFGdPked6JSXbxb0aWEaWkp5RuadXqA48QC
# jYBhdXzDJJXBjyvnkhO9cb583K4oG+/qInRaq08zfGVTgnik7ZcWAdU8
# SIG # End signature block