AzureLocalSANValidator/EN-US/AzureLocal.SANValidator.Strings.psd1
|
ConvertFrom-StringData @'
###PSLOC InvalidConnectionType = ConnectionType '{0}' is not valid. Expected 'FibreChannel' or 'iSCSI'. NoFCHBAFound = No Fibre Channel HBA adapters were detected on this node. Ensure FC HBAs are installed and connected. FCPortOffline = Fibre Channel port '{0}' is not online. Current status: '{1}'. Verify cable connections and switch configuration. FCValidationSuccess = Fibre Channel connectivity validated. {0} HBA port(s) detected and online. FCRemediation = Troubleshoot Fibre Channel connectivity:\n1. Verify FC HBA adapters are installed: Get-InitiatorPort | Where-Object { $_.ConnectionType -eq 'Fibre Channel' }\n2. Check port operational status: Get-InitiatorPort | Where-Object { $_.ConnectionType -eq 'Fibre Channel' } | Select-Object NodeAddress, PortAddress, OperationalStatus\n3. Confirm cables are connected and SAN switch zoning includes this host.\n4. Ensure HBA drivers are up to date.\nFor more information see https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/windows-server-mpio-troubleshooting iSCSIServiceNotRunning = The MSiSCSI service is not running. Current status: '{0}'. Start the service with 'Start-Service msiscsi'. NoiSCSITargets = No iSCSI sessions are established. Ensure iSCSI targets are configured and connections are active. iSCSIValidationSuccess = iSCSI connectivity validated. {0} active session(s) detected. iSCSIRemediation = Troubleshoot iSCSI connectivity:\n1. Start the iSCSI initiator service: Start-Service msiscsi\n2. Set the service to start automatically: Set-Service msiscsi -StartupType Automatic\n3. Verify target connections: Get-IscsiTarget | Select-Object NodeAddress, IsConnected\n4. List active sessions: Get-IscsiSession | Select-Object SessionIdentifier, TargetNodeAddress, IsConnected\n5. If no sessions, connect to a target: Connect-IscsiTarget -NodeAddress <TargetIQN>\nFor more information see https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/iscsi-storage-connectivity-troubleshooting LUNCapacityInsufficient = SAN disk (Number: {0}, FriendlyName: '{1}', BusType: '{2}') has capacity {3} GB which is below the minimum required {4} GB. LUNCapacityInsufficientPerLun = SAN disk (Number: {0}, FriendlyName: '{1}', BusType: '{2}') identified as {3} has capacity {4} GB which is below the minimum required {5} GB for {3} volumes. LUNCapacityUnrecognizedDisk = SAN disk (Number: {0}, FriendlyName: '{1}', BusType: '{2}') with capacity {3} GB is not mapped in SANVolumeMapping. Skipping capacity validation. LUNCapacitySuccess = All {0} SAN LUN(s) meet the minimum capacity requirements. LUNCapacityRemediation = Troubleshoot SAN LUN capacity:\n1. List all SAN disks: Get-Disk | Where-Object { $_.BusType -eq '<BusType>' } | Select-Object Number, FriendlyName, BusType, @{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}}\n2. Verify disk operational status: Get-Disk | Select-Object Number, FriendlyName, OperationalStatus, HealthStatus\n3. Ensure SAN LUNs meet their per-LUN minimum sizes: Infrastructure_1 >= 250 GB, ClusterPerformanceHistory >= 20 GB.\n4. If LUNs are missing, verify SAN connectivity and LUN masking/mapping on the storage array.\nFor more information see https://learn.microsoft.com/en-us/azure/azure-local/concepts/system-requirements-23h2 NoSANDisksFound = No SAN disks with BusType '{0}' were found on this node. Verify SAN connectivity and disk presentation. LUNPartitionStyleNotRaw = SAN disk (Number: {0}, FriendlyName: '{1}') has PartitionStyle '{2}' on node '{3}'. Expected 'RAW'. The disk must be wiped before deployment. LUNPartitionStyleSuccess = SAN disk (Number: {0}, FriendlyName: '{1}') on node '{2}' has PartitionStyle 'RAW'. LUNPartitionStyleRemediation = Troubleshoot SAN LUN partition style:\n1. Check disk partition style: Get-Disk | Where-Object { $_.BusType -eq '<BusType>' } | Select-Object Number, FriendlyName, PartitionStyle\n2. If a disk shows GPT or MBR, wipe it to RAW: Clear-Disk -Number <DiskNumber> -RemoveData -RemoveOEM -Confirm:$false\n3. Verify the disk is now RAW: Get-Disk -Number <DiskNumber> | Select-Object Number, PartitionStyle\n4. Repeat for each non-RAW SAN LUN on every node.\nWARNING: Clear-Disk permanently destroys all data on the disk.\nFor more information see https://learn.microsoft.com/azure/azure-local/deploy/deploy-via-portal SCSIReservationFound = SAN disk (Number: {0}, FriendlyName: '{1}') has an active SCSI-3 Persistent Reservation on node '{2}'. Stale reservations from a previous cluster must be cleared before deployment. SCSIReservationSuccess = No SCSI-3 Persistent Reservations found on {0} SAN disk(s) on node '{1}'. SCSIReservationRemediation = Clear stale SCSI persistent reservations:\n1. List SAN disks: Get-Disk | Where-Object { $_.BusType -in @('Fibre Channel','iSCSI') } | Select-Object Number, FriendlyName, BusType\n2. Clear reservation on each disk: Clear-ClusterDiskReservation -Disk <DiskNumber> -Force\n3. Verify reservation is cleared by re-running this validation.\nNote: Reservations are cluster-level locks. If the previous cluster has been destroyed, these reservations are stale and safe to clear.\nFor more information see https://learn.microsoft.com/en-us/powershell/module/failoverclusters/clear-clusterdiskreservation MPIONotInstalled = The Multipath I/O (MPIO) feature is not installed on node '{0}'. MPIO is required for SAN storage redundancy and failover. MPIOInstalled = MPIO feature is installed on node '{0}'. MPIORemediation = Install and configure MPIO:\n1. Install the MPIO feature: Install-WindowsFeature -Name Multipath-IO\n2. Reboot the node if prompted.\n3. Verify installation: Get-WindowsFeature -Name Multipath-IO\n4. Check MPIO settings: Get-MPIOSetting\nFor more information see https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/windows-server-mpio-troubleshooting MPIOHWNotClaimed = MPIO hardware is not claimed by MSDSM on node '{1}': {0}. The corresponding SAN LUN(s) are visible but multipath failover/load-balance may be suboptimal until the device class is registered. MPIOHWAllClaimed = All {0} configured SAN LUN(s) have a (VendorId, ProductId) pair claimed by MSDSM on node '{1}'. MPIOHWRemediation = Register the SAN device class with MSDSM:\n1. List currently-claimed device classes: Get-MSDSMSupportedHW\n2. For each unclaimed (VendorId, ProductId) pair reported above, register it: New-MSDSMSupportedHW -VendorId '<VendorId>' -ProductId '<ProductId>'\n3. Verify the device class is now claimed: Get-MSDSMSupportedHW\nFor more information see https://learn.microsoft.com/en-us/powershell/module/mpio/new-msdsmsupportedhw MPIODiskNotFoundSkip = SAN LUN '{0}' (UniqueId '{1}') is not visible on node '{2}'; skipping MSDSM claim check for this LUN. See Test-SANALUNVisibility for the deployment-blocking visibility result. MPIOPathsAllOk = All {0} configured SAN LUN(s) are claimed by MPIO with at least {1} active path(s) on node '{2}'. MPIOPathsLunFailure = SAN LUN '{0}' (UniqueId '{1}') on node '{2}' failed MPIO path check: {3} MPIOPathsLunSkipped = SAN LUN '{0}' (UniqueId '{1}') is not visible on node '{2}'; skipping MPIO path check for this LUN. See Test-SANALUNVisibility for the deployment-blocking visibility result. MPIOPathsRemediation = Investigate MPIO paths on the reported node:\n1. List the MPIO map and find the MPIO disk number for each failing LUN's backing system disk: mpclaim -s -d\n2. For each failing LUN, inspect its active path count: mpclaim -s -d <MPIODiskNumber> (expect at least 2 'Active/Optimized' paths)\n3. If a LUN is not in the MPIO map, verify the (VendorId, ProductId) is registered with MSDSM and rescan storage; if the path count is below 2, verify SAN switch zoning, LUN masking, and HBA driver/firmware.\nFor more information see https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/windows-server-mpio-troubleshooting LUNVisibilityMissing = SAN LUN '{0}' (UniqueId '{1}') is not visible to node '{2}'. LUNVisibilitySuccess = All configured SAN LUN(s) are visible on node '{0}'. LUNVisibilityRemediation = No SAN LUNs are visible to this host. Verify SAN connectivity (zoning between host and storage), ensure the LUN is created and mapped to this host (WWPN/IQN), confirm host drivers and MPIO configuration are correct, and rescan storage on the host.\n1. List all disks visible to this host: Get-Disk | Select-Object Number, FriendlyName, BusType, UniqueId, OperationalStatus\n2. Search for the expected LUN by UniqueId: Get-Disk | Where-Object { $_.UniqueId -ieq '<lunid>' }\n3. Rescan storage: Update-HostStorageCache; Update-StorageProviderCache -DiscoveryLevel Full\n4. Verify SAN array LUN masking and switch zoning include this host's WWPN/IQN.\n5. Confirm MPIO is installed and the storage hardware is claimed: Get-MPIOAvailableHW; Get-MSDSMSupportedHW\nFor more information see https://learn.microsoft.com/en-us/azure/azure-local/concepts/system-requirements-23h2 '@ # SIG # Begin signature block # MIInRAYJKoZIhvcNAQcCoIInNTCCJzECAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA7Bk/Bp+oy4bkW # YfZqskL65Udit4IRo51JRpGMHcZ3w6CCDLowggX1MIID3aADAgECAhMzAAACHU0Z # yE7XD1dIAAAAAAIdMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNVBAYTAlVTMR4wHAYD # VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBD # b2RlIFNpZ25pbmcgUENBIDIwMjQwHhcNMjYwNDE2MTg1OTQzWhcNMjcwNDE1MTg1 # OTQzWjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYD # VQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IB # DwAwggEKAoIBAQDQvewXxx9gZZFC6Ys1WBay8BJ8kGA4JQnH5CMafqOASlTpK9H8 # o5ZXTXt0caVQTNMUPt445wXYD+dFtaKWTwDn1I52oUSrC9vJin1Gsqt+zyKJL5Dg # 3eQXbQNR61DmMy20GLTIO3SFed9Rfi/ophgCLGFLDR3r0KvHjwMb/jYWS0celV/4 # Lz27LfAekm8v9E5IXaeiXbAUYZKK090n4CVl3JBtbN+9DtI9SNu/yjvozW52/u7R # X/Ttpa/KDlpuokZ+Zcbvmtd9ur9gFLvZzh41o9MsE/clQtdaFWGvuo6Jua/ntpgk # ey3E5/vBFe+MJPG6phdnuo6r57ZudCudiI1bAgMBAAGjggGbMIIBlzAOBgNVHQ8B # Af8EBAMCB4AwHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYBBQUHAwMwHQYDVR0O # BBYEFH6QuMwqcPG0hQlQ6c5jCtTTLrVeMEUGA1UdEQQ+MDykOjA4MR4wHAYDVQQL # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xFjAUBgNVBAUTDTIzMDAxMis1MDc1NTkw # HwYDVR0jBBgwFoAUf1k/VCHarU/vBeXmo9ctBpQSCDEwYAYDVR0fBFkwVzBVoFOg # UYZPaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0 # JTIwQ29kZSUyMFNpZ25pbmclMjBQQ0ElMjAyMDI0LmNybDBtBggrBgEFBQcBAQRh # MF8wXQYIKwYBBQUHMAKGUWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv # Y2VydHMvTWljcm9zb2Z0JTIwQ29kZSUyMFNpZ25pbmclMjBQQ0ElMjAyMDI0LmNy # dDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQBKTbYOjzwTG/DXGaz9 # s6+fQeaTtDcFmMY+5UyVFCyj7Pv+5i37qfX8lSL/tBIfYQfWsMuBQlfZurJD6r4H # VJ2CeH+1fgiq8dcHdVKoZ3Sa2qXoX3cq9iS8cVb06B7+5/XJ7I0OxHH9fDsvJ3T3 # w5V/ZtAIFmLrl+P0CtG+92uzRsn0nTbdFjOkLMLWPLAU3THohKRlSEMgFJpPkm5n # 5UAZ35xX6FWCrDLsSKb555bTifwa8mJBwdlof0bmfYidH+dxZ1FdDxvLnNl9zeKs # A4kejaaIqqIPguhwAti5Ql7BlTNoJNwxCvBmqW2MQLnCkYN/VVUsR3V2x/rcTNzo # Bf/Z/SpROvdaA2ZOOd1uioXJt3tdLQ7vHpqpib0KfWr/FWXW10q38VxfCnRQBqzb # SuztR7nEMuzX7Ck+B/XaPDXd1qh72+QYyB0Z2VzWmO9zsnb9Uq/dwu8LGeQqnyu6 # 7SDGACvnXii2fb9+US492VTnXSnFKyqwgzUyFMtZK1/sHYTv6bG4TtQUygQxTN+Z # V+aJIlKO2MqZ7bKrAnOzS9m6NgoTdWOq11bTOZwKlIEV/EhV9SWkDmdpR/hPPT2v # 6TEj4F8PT/zHjRezIU5c/DGlt/VhY/pK0XkJtEyMmmS1BMtjU/rqBZVMIm3dnxQs # /TBByr+Cf8Z1r7aifQVQ+WSqzjCCBr0wggSloAMCAQICEzMAAAA5O7Y3Gb8GHWcA # AAAAADkwDQYJKoZIhvcNAQEMBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX # YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg # Q29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRl # IEF1dGhvcml0eSAyMDExMB4XDTI0MDgwODIwNTQxOFoXDTM2MDMyMjIyMTMwNFow # VzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEo # MCYGA1UEAxMfTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAyNDCCAiIwDQYJ # KoZIhvcNAQEBBQADggIPADCCAgoCggIBANgBnB7jOMeqlRYHNa265v4IY9fH8TKh # emHfPINe1gpLaV3dhg324WwH06LcHbpnsBukCDNitryo0dtS/EW6I/yEL/bLSY8h # KpbfQuWusBPr9qazYcDxCW/qnjb5JsI1s8bNOg3bVATvQVL4tcf03aTycsz8QeCd # M0l/yHRObJ9QqazM1r6VPEOJ7LL+uEEb73w6QCuhs89a1uv1zerOYMnsneRRwCbp # yW11IcggU0cRKDDq1pjVJzIbIF6+oiXXbReOsgeI8zu1FyQfK0fVkaya8SmVHQ/t # Of23mZ4W9k0Ri22QW9p3UgSC5OUDktKxxcCmGL6tXLfOGSWHIIV4YrTJTT6PNty5 # REojHJuZHArkF9VnHTERWoTjAzfI3kP+5b4alUdhgAZ7ttOu1bVnXfHaqPYl2rPs # 20ji03LOVWsh/radgE17es5hL+t6lV0eVHrVhsssROWJuz2MXMCt7iw7lFPG9LXK # Gjsmonn2gotGdHIuEg5JnJMJVmixd5LRlkmgYRZKzhxSCwyoGIq0PhaA7Y+VPct5 # pCHkijcIIDm0nlkK+0KyepolcqGm0T/GYQRMhHJlGOOmVQop36wUVUYklUy++vDW # eEgEo4s7hxN6mIbf2MSIQ/iIfMZgJxC69oukMUXCrOC3SkE/xIkgpfl22MM1itkZ # 35nNXkMolU1lAgMBAAGjggFOMIIBSjAOBgNVHQ8BAf8EBAMCAYYwEAYJKwYBBAGC # NxUBBAMCAQAwHQYDVR0OBBYEFH9ZP1Qh2q1P7wXl5qPXLQaUEggxMBkGCSsGAQQB # gjcUAgQMHgoAUwB1AGIAQwBBMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU # ci06AjGQQ7kUBU7h6qfHMdEjiTQwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDovL2Ny # bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0MjAx # MV8yMDExXzAzXzIyLmNybDBeBggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0 # dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0MjAx # MV8yMDExXzAzXzIyLmNydDANBgkqhkiG9w0BAQwFAAOCAgEAFJQfOChP7onn6fLI # MKrSlN1WYKwDFgAddymOUO3FrM8d7B/W/iQ6DxXsDn7D5W4wMwYeLystcEqfkjz4 # NURRgazyMu5yRzQh4LqjA4tStTcJh1opExo7nn5PuPBYnbu0+THSuVHTe0VTTPVh # ily/piFrDo3axQ9P4C+Ol5yet+2gTfekICS5xS+cYfSIvgn0JksVBVMYVI5QFu/q # hnLhsEFEUzG8fvv0hjgkO+lkpV9ty6GkN4vdnd7ya6Q6aR9y34aiM1qmxaxBi6OU # nyNl6fkuun/diTFnYDLTppOkr/mg5WSfCiDVMNCxtj4wPKC5OmHm1DQIt/MNokbb # H3UGsFP1QbzsLocuSqLCvH09Io3fDPTmscR9Y75G4qX7RTX8AdBPo0I6OEojf39z # uFZt0qOHm65YWQE69cZM2ueE1MB05dNNgHK9gTE7zKvK/fg8B2qjW88MT/WF5V5u # vZGtqa9FSL2RazArA+rDPuf6JGYz4HpgMZHB4S6szWSKYBv0VisCzfxgeU+dquXW # 9bd0auYlOB58DPcOYKdc3Se94g+xL4pcEhbB54JOgAkwYTu/9dLeH2pDqeJZAABV # DWRQCaXfO5LgyKwKCLYXpigrZYCjUSBcr+Ve8PFWMhVTQl0v4q8J/AUmQN5W4n10 # 1cY2L4A7GTQG1h32HHAvfQESWP0xghngMIIZ3AIBATBuMFcxCzAJBgNVBAYTAlVT # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jv # c29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMjQCEzMAAAIdTRnITtcPV0gAAAAAAh0w # DQYJYIZIAWUDBAIBBQCggZAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwLwYJ # KoZIhvcNAQkEMSIEICuJtM92xVOZa2ggIQkgQiXo9hB5c40bUgLI8XyCL93sMEIG # CisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEBBQAEggEAfBv7mywGTw3rnvtC # An0P/F0NIds9w5jqmA89WF7AA4x1NcHs7wy9aLa+M4KkFTIZeQM4ZlCEA6DB9PHk # GAx0vxNO5CxJzHypunsu3Rocb5x7EtqgkBeHnIvlffBUapuZ3MeGc4ZrxCwwRt7n # u8Xc2x4ygH8ssKKjYuI5gyMFQAiLc/s1794NmdeW/A54xAonWcamxLqjk7m1hJkd # yeET7jPaEsp5xQ6exkQ3IwjQTHWCHWIxdh9MDGJWD9RmapcJoB3XvPbrVRbohMEg # 5ua88LkEpv5XLZw02N4EPxKzevbV1zCMtwhpfEvYm4YNAAjvlEc4SQuoGuaTb8Xw # yAABTKGCF7AwghesBgorBgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kw # gheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFF # MIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCA1XsRv+tAqMgnH # 0qXgG3ordRFBHuGsZaV2Sj99eBMZ1AIGaolQWABLGBMyMDI2MDgyNzE2MzgzNy4z # NTlaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu # Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv # cmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExp # bWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzEl # MCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIF # EKADAgECAhMzAAACF3H7LqWvAR3qAAEAAAIXMA0GCSqGSIb3DQEBCwUAMHwxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv # c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI1MDgxNDE4NDgyM1oXDTI2MTEx # MzE4NDgyM1owgdMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x # LTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEn # MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQD # ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEF # AAOCAg8AMIICCgKCAgEAwM82sEw+39vYR7iGCIFDnYNhRM+BzF2AYiq5dUpZpJFP # RjCcipQ6RUbI+RAYNRApExx5ygrXbaWtuwvqsqAVSWbU/W6fecujjILkPqn9pngt # WRkfQgbYgvaXALl6PY2yOH9f72MD+6AyxQenSpAMdUzY/Qk/jtjsHdFXVBe+tshl # IkSJ3GZw8VVKqTg3GZElztwbJWNtrhBEvhf6anxMegQMJP7tO8/BJ7ITs4/AV3D2 # bv8eHk81Y+fOmQ8mQ61WLq2wItvlzIT5bzelK9LvEycf5x1lXxAwEw5a7dpS+CKT # anhtv+Q2mwebAybjf9io4k48stTaq1rtcrOiDwddqVm1S9e8h1TszXFzjLLvE9Em # jnNfIewsY+RChUaHnY4FFwwJEnEv/JS76oHT0oGdy7+J60fGOl7A1UoUyAkhpb2B # ja+SwSIiHbQ4FDyJiLlZ6drZZ84MoJ852JSxM0hBjGO6FZlPO8iuNyk680Di8Vnb # SNpIdJN+DhlepeTUMBDHqCmd0mVWRWZPm1pvgty93asNt/Ng6o4m2dnooWOdM3yK # sJaWjyHqic9gfTrZBM+PCXqeTaO1oEiaQ+h4w0nHVdV+XSvI2m1yN4iibqjm5HPa # AO3OJ+OmNLftNVmr4Z6U2T6pIcLBysoKcDUvCqycXj4C/+n1KFBpDGdDMw9gmu8C # AwEAAaOCAUkwggFFMB0GA1UdDgQWBBRQrN9jlwNOoeE5ZQqnF5x8S1bJQzAfBgNV # HSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5o # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBU # aW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwG # CCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRz # L01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNV # HRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIH # gDANBgkqhkiG9w0BAQsFAAOCAgEARmgFdhB7xIAIHEEg5I/5S+gx67aR6RiW8ZAw # tE3mz8o0dyn+pIP+lidNR1IKQQ0r+RjYgI9cZ6mbvAyvh3e2q/BV8rjHE3ud9PyY # yq32euFgdZ3vX4b5QXePWlpBAYrdziR27rHz6WwpH5dZsSypbXDBbQkWkNl6g82y # Ty3AbBbKDXBdzxZsEauaOplatK7Er4dhglKBex8JQ2dMSkSZweCNDXqd9r/9W2Vd # RZsDJKP/Xc4UyQlVsboBotKtYESXFkjwR1HVsH+Q0C69/N5CP/Tq3YgI1ub4b9+3 # MJFKWhJXCcJGFZkcLwUmYwoFg1XLo7DLJdGjrIH1jsI2NFXJFQHef6AdRe1ERvYQ # eqtyrBvxIvR+P/83FNYyzx04inUT9TF2AwTOuqCC6Z67oNwR4pEEJyAIEREvkdhj # jfWcgsk/nGTlfahvNY/SOHrNRKo49KDlccNzRCJQyQ+D59r7/qebNSyQPTfwI9++ # jEY0Q/UWKVNLhio55GYBseJ99s7NzkdxOr9Uftp597HEovbA69qGlZ3OpUE3H1RB # GDVp/FvM2uXTum8LrMkPXx5Ap/kbPASsC9ju9oMCe2IEXO2SeD1aD3IqvAOdHFKH # g1vpbPUQSWb6g2xfBV30wFcqaPYgzcbxPWPyZqK+S8l7zw64aO5hmJ7eQwoMfTu0 # Vay6r48wggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3 # DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G # A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIw # MAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAx # MDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l # LVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA # 5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/ # XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1 # hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7 # M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3K # Ni1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy # 1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF80 # 3RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQc # NIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahha # YQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkL # iWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV # 2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIG # CSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUp # zxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBT # MFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jv # c29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYI # KwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG # MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186a # GMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br # aS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsG # AQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29t # L3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcN # AQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1 # OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYA # A7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbz # aN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6L # GYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3m # Sj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0 # SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxko # JLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFm # PWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC482 # 2rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7 # vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCC # AkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu # Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv # cmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExp # bWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzEl # MCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsO # AwIaAxUAabKAFaKt2haUdqkHfFYzAzfgSMuggYMwgYCkfjB8MQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt # ZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsFAAIFAO46ZcswIhgPMjAyNjA4 # MjcwNzI5MTVaGA8yMDI2MDgyODA3MjkxNVowdzA9BgorBgEEAYRZCgQBMS8wLTAK # AgUA7jplywIBADAKAgEAAgIIdwIB/zAHAgEAAgIf1jAKAgUA7ju3SwIBADA2Bgor # BgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAID # AYagMA0GCSqGSIb3DQEBCwUAA4IBAQCQPbE5ogemQTGEXJqfNYsz4mAFiwT7eTGR # BSBGERHqzM2SFUQWnZ4CpLCfwWh0QJzVjmc3a6K/MxGnnWFZHT0Gq+FLd8RwHps6 # zn20vvvGXwxw4NDfu0dbtqjvC0D8IXpv5yYrTHiGupJzM9RXxVuAYgcBPMIc90UI # ZgqQp8gannDOK9Ms6VPvUVn+ltDELcw/Z3qV41ZIE+OSODs/cOoeaCwRs9n0mjYD # h8+2c8o793nLcDohhOyev/kRW+mDxPZ5KJYL8V038spCVjxl8dLmKvRjXvI/7s9s # 4Ysk7Hs2A94j86xQBwTXfxBlr4T4Lu4LDOi5Gq4IQWN90AGrJn8eMYIEDTCCBAkC # AQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV # BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQG # A1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIXcfsupa8B # HeoAAQAAAhcwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG # 9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgqjeTVBARzSXoxnSF2qmD4Xg69IXFl5FJ # QPmPzHVtupgwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDQ8lBgPl23yZ0S # zUSt5phOIegHPywrkNwevxe2k+RaWzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0 # YW1wIFBDQSAyMDEwAhMzAAACF3H7LqWvAR3qAAEAAAIXMCIEIPUZSVnt5gRvD/19 # Xj6PYTEf7bQyo34ImVo/0H5pvZcMMA0GCSqGSIb3DQEBCwUABIICADIZOdEwYai4 # XxC7gV3sJ9Ooq0Ie1+A81HkNB2Dl+wBeiXwHKKu8ampq5JAsCrmntzk8U5fj4ewB # eceE2rlHMDTEhrjX3UDNJOjBfRMlJMRGMG50kXXkOPzbiV367YkCBdvAp035VPuS # 6CYzR0SeOvy/fZxDNIePUe7h/852ZI1JSxVo0d1eGpsNd8+oIYMawynsMiuL62mt # ZySf26iTDTVut8+6/snbkaqtv+IPoC8+zzw6FDthltkBQOlB3Ttq2XnAAV6vfWCr # 4U7rZi7f/0PDp9cO7QzEPJ9yk9h9mLSdWANwf7vYPrCSI5inASat155lb3YW49qs # 1VqdgdHlQVT+xaGBmP+UlZJs2WNdpF6+1Fza6ruQbXoz3lnmdvKAz34+dCVj3Xwl # vcFmUQQ3HKB27U1bMqU6lu+VOvFb86W0aPdtBhubmBSSX3yBdv6bN4qqbS/aUTAA # EpXIUE/BiKJVVsu0CFwOmTHpog/kjNjnVP9Eu42o7hhunVilY5W9wueDogvja9+b # hCYHV1WeWLUt1IsJy1WrSJIz/TxVB++c6u3Fipp8+PnpDPuExCDu5bTy5gkTrjh8 # rrP/a5J4OUzD03h2viLoR1lCtofLo6wGbfMkTHVdRKod1znd4ioVvlbE9uI2sWXq # ttwNZYKOZ7Y/v7v7Ht9ePfPgow6cJZbk # SIG # End signature block |