From 4eb220ab110d75b3adbf7901e9da82aa8d7c9362 Mon Sep 17 00:00:00 2001 From: Michael Zappe Date: Mon, 6 Mar 2023 15:31:27 +0000 Subject: [PATCH] Add hotfix for TrimStart Add hotfix for TrimStart Thanks @LeGrandMAG for finding this issue. Closes #94 --- Scripts/ARRUtils.ps1 | 145 ++++++++++++++++++++++--------------------- 1 file changed, 75 insertions(+), 70 deletions(-) diff --git a/Scripts/ARRUtils.ps1 b/Scripts/ARRUtils.ps1 index e9de3887..1054bbe6 100644 --- a/Scripts/ARRUtils.ps1 +++ b/Scripts/ARRUtils.ps1 @@ -8,10 +8,15 @@ $AllPublicRegions = @("australiaeast", "eastus", "eastus2", "japaneast", "northe function ToDomain { param ([ValidateSet("Rendering", "Account")] $Type, $Region) + $httpsPrefix = "https://" $suffix = ".mixedreality.azure.com" + $regexSuffix = $suffix -replace "\.", "\." # The first parameter is a regex, the second one isn't so replace . with \. - $cleanedRegion = $Region -replace $suffix, "" # If someone specifies eastus.mixedreality.azure.com it should still work - $cleanedRegion = $cleanedRegion.TrimStart("https://") # If someone specifies the https:// part just trim it also + $cleanedRegion = $Region + if($Region -match "^($httpsPrefix)?(?.*?)($regexSuffix)?$") { + $cleanedRegion = $matches['region'] # If the url starts with https:// or ends with .mixedreality.azure.com remove it. + } + if ($AllPublicRegions.Contains($cleanedRegion)) { $prefix = if ($Type -eq "Rendering") { "remoterendering" @@ -19,7 +24,7 @@ function ToDomain { "sts" } - return "https://$Prefix.$($cleanedRegion)$suffix" + return "$($httpsPrefix)$Prefix.$($cleanedRegion)$suffix" } # If it is not found it might be a non-public region, so just simply pass it and hope it works @@ -725,8 +730,8 @@ function GetExePathInArrOf($root, $exeName) { # SIG # Begin signature block # MIInkgYJKoZIhvcNAQcCoIIngzCCJ38CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBKFd36U3KztjOx -# icDXbDRcFYbsRSfI9Cex+Hgo+nMryqCCDXYwggX0MIID3KADAgECAhMzAAACy7d1 +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD/6rmQonowTsaJ +# psk18FvqWGimvkgSB34m0r4F+XvMOqCCDXYwggX0MIID3KADAgECAhMzAAACy7d1 # OfsCcUI2AAAAAALLMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p @@ -803,61 +808,61 @@ function GetExePathInArrOf($root, $exeName) { # aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp # Z25pbmcgUENBIDIwMTECEzMAAALLt3U5+wJxQjYAAAAAAsswDQYJYIZIAWUDBAIB # BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINdpPpWP89fIri36iXA23BXi -# zZLDqIXjBt8+i0cq8K8UMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMRAR/pukuE1tf7CsteZyf5V +# XngfV7VHCl/4DaCprGvLMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A # cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAs1h/W0Ei+6lL8EF7M226oSbdS62YAfbP/iuxCILE31mCxbgzdRqN+7Au -# ZOqI6wGvKVUl+F4tfS7WX+CEm66JA14wNeW5D8S1dkqHyKM0U1h7U6guZPXc6j1S -# 6N4P8a6nU6DoKkaVGnd6UcsDHFBllftLxHUB0/hJoK1Wid95a8VEHuqkXCtTUEeT -# nhP9W73YsIJOOyR2BRYi+phLSGU4pxnxQvMEa6SMJG0mBIFVOpqVWnOvGKvVARoY -# pnNuqCsM6pToaDHyvjSe6xwPALXLG4vYg2kahwoxYRkdumgikRW4bL0ldsNaXq7n -# MRAoHURYlFxdZJGbjYqiiLDu3/QIiqGCFvwwghb4BgorBgEEAYI3AwMBMYIW6DCC +# BQAEggEAk9E7HLHuhUrBu22+FY4rKxMAm2e9FaTn5X6rw3so+3RpRLk7TpwLkMoF +# yx56sIvikgb+mclVtZxMnbyFCDJ5hfgwsDf2+rW9v71xmtlI6PjBNIgiOOAirkjR +# jZVaroyN5QpxXJJyA8VtPr9+wC4/ocwyTDsFVpCqLYaCNccA1JmvQxukglVNuVpf +# KnmtbA/c8fyke3j79LB2dZ9DaaAF3IBncyBCkE6/zkmtcQ24pfVnCrl0Nyu3WlpY +# Gv6DR9L8PILJhL4kyorlXr8E8HDBvkDuUMmiNg/KnW/gb3FRjm9E3uy1d5IDAWJ4 +# 6uJ2Thalu1oI99HGRmfVF3ojrrT6F6GCFvwwghb4BgorBgEEAYI3AwMBMYIW6DCC # FuQGCSqGSIb3DQEHAqCCFtUwghbRAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFQBgsq # hkiG9w0BCRABBKCCAT8EggE7MIIBNwIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCA+jGPXh1UTnlP1C8ov+2DlWDv5doAcvptsxaKKQtaIpwIGY+5PnlHQ -# GBIyMDIzMDMwMjEzMTMxNi45MVowBIACAfSggdCkgc0wgcoxCzAJBgNVBAYTAlVT +# AwQCAQUABCC3PcygRFTj4wGP77CXBblnZlbm8lWVqatX7KvDjrmsDAIGY+4W8AvL +# GBIyMDIzMDMwNjEzMjUzNy45OFowBIACAfSggdCkgc0wgcoxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjEyQkMtRTNB -# RS03NEVCMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIR -# VDCCBwwwggT0oAMCAQICEzMAAAHKT8Kz7QMNGGwAAQAAAcowDQYJKoZIhvcNAQEL +# aWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOkREOEMtRTMz +# Ny0yRkFFMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIR +# VDCCBwwwggT0oAMCAQICEzMAAAHFA83NIaH07zkAAQAAAcUwDQYJKoZIhvcNAQEL # BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT # B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjIxMTA0MTkwMTQw -# WhcNMjQwMjAyMTkwMTQwWjCByjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjIxMTA0MTkwMTMy +# WhcNMjQwMjAyMTkwMTMyWjCByjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEm -# MCQGA1UECxMdVGhhbGVzIFRTUyBFU046MTJCQy1FM0FFLTc0RUIxJTAjBgNVBAMT +# MCQGA1UECxMdVGhhbGVzIFRTUyBFU046REQ4Qy1FMzM3LTJGQUUxJTAjBgNVBAMT # HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEBAQUA -# A4ICDwAwggIKAoICAQDDAZyr2PnStYSRwtKUZkvB5RV/FdFpSOI+zJo1XE90xGzc -# JV7nyyK78SRpW3u3s81M+Sj+zyU226wB4sSfOSLjjLGTZz16SbwTVJDZhX1vz8s7 -# F8pqlny1WU/LHDoOYXM0VCOJ9WbwSJnuUVGhjjjy+lxsEPXyqNg0X/ZndJByFyx1 -# XU31jpXZYaXnlWYuoVFfn52m12Ot4FfOLdZb1OygIRZxgIErnBiBL21PZJJJPNp7 -# eOZ3DjSD4s4jKtU8XYOjORK2/okEM+/BqFdakoak7usesoX6jsQI39WJAUxnKn+/ -# F4+JQAEM2rMRQjyzuSViZ4de+N5A6r8IzcL9jxuPd8k5udkft4Be9EOfFPxHpb+4 -# PWYZQm+/0z0Ey7eeEqkqZLHPM7ku1wwSHa0xfGEwYY0xQ/cM4Qrdf7b8sPVnTe6w -# lOTmkc2gf+AMi9unvzsLDjS2wCmIC+2sdjC5vROoi/xnLraXyfyz8y/8/vrgJOqv -# FxfNqUEeH5fLhc+OZp2c+RknJyncpzNuSD1Bu8mnQf/QWzAdL558Wh+kM0nAuHWG -# z9oyLUr+jMS/v9Ysg+wOArXp9T9rHJuowqTQ07GB6VSMBgqXjBTRjpDir03/0/AB -# LRyyJ9CFjWihB8AjSIMIJIQBOyUPxtM7S1G2p1wh1q85F6rOg928C/cOvVddDwID -# AQABo4IBNjCCATIwHQYDVR0OBBYEFPrH/qVLgRJDwpmF3RGBTtFhczx/MB8GA1Ud +# A4ICDwAwggIKAoICAQCrSF2zvR5fbcnulqmlopdGHP5NPsknc69V/f43x82nFGzm +# NjiES/cFX/DkRZdtl07ibfGPTWVMj/EOSr7K2O6I97zEZexnEOe2/svUTMx3mMhK +# on55i7ySBXTnqaqzx0GjnnFk889zF/m7X3OfThoxAXk9dX8LhktKMVr0gU1yuJt0 +# 6beUZbWtBEVraNSy6nqC/rfirlTAfT1YYa7TPz1Fu1vIznm+YGBZXx53ptkJmtyh +# giMwvwVFO8aXOeqboe3Bl1czAodPdr+QtRI+IYCysiATPPs2kGl46yCz1OvDJZNk +# E1sHDIgAKZDfiP65Hh63aFmT40fj0qEQnJgPb504hoMYHYRQ0VJhzLUySC1m3V5G +# oEHSb5g9jPseOhw/KQpg1BntO/7OCU598KJrHWM5vS7ohgLlfUmvwDBNyxoPK7eo +# CHHxwVA30MOCJVnD5REVnyjKgOTqwhXWfHnNkvL6E21qR49f1LtjyfWpZ8COhc8T +# orT91tPDzsQ4kv8GUkZwqgVPK2vTM+D8w0lJvp/Zr/AORegYIZYmJCsZPGM4/5H3 +# r+cggbTl4TUumTLYU51gw8HgOFbu0F1lq616lNO5KGaCf4YoRHwCgDWBJKTUQLll +# fhymlWeAmluUwG7yv+0KF8dV1e+JjqENKEfBAKZmpl5uBJgeceXi6sT7grpkLwID +# AQABo4IBNjCCATIwHQYDVR0OBBYEFFTquzi/WbE1gb+u2kvCtXB6TQVrMB8GA1Ud # IwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCGTmh0 # dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRp # bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4wXAYI # KwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMv # TWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwGA1Ud # EwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQELBQADggIB -# ANjQeSoJLcq4p58Vfz+ub920P3Trp0oSV42quLBmqwzhibwTDhCKo6o7uZahhhjg -# rnLx5dI4co1c5+k7pFtpiPyMI5wkAHm2ouXmGIyBoxsBUuuXWGWLH2yWg7jks43Q -# mmEq9rcPoBUoDs/vyYD2JEdlhRWtGLJ+9CNbGZSfGGKzx+ib3b79EdwRnUOHn6ni -# DN54vzhiXTRbKr0RyAEop+CrSUKNY1KrUBQbWwQuWBc5K8pnj+Vdcf4x+Fwd73VY -# shpmRL8e73B1NPojXgEL3vKEOxlZcCXQgnzTUjpS0QWkKxN47JkEnsIXSt/mXEny -# 0T2iM2zKpckq7BWfR7AIyRmrP9wTC/0UTHxCaxnRk2h1O2yX5X11mb55SswpmTo8 -# qwoCu1D6MeR9WweAo4OWh6Wk6YeqBftRs7Q1WciWk/nmBBOpXvq9TvBFelR/PsqE -# TcFlc2DAbTl1GcJcPCuGFjP4i1vOzUrVHwjhgwMmNb3QBIKD0l/7HKBEpkYoeOjY -# GzZfJoq43U/oUUIhVc3sqAeX9tmJqQaruTlNDg5crnGSEIeGN2Ae7GPeErkBo7L4 -# ZfE7+NvKoZGp5LF/5NM+5aENa6sijfdEwMZ7kNsiaNxtyPp1WFB6+ocKVHU4dJ+v -# 7ybWFZEkaULVq1w5YpqMCvA5RGolJWVOHBWAjLMY2aPOMIIHcTCCBVmgAwIBAgIT +# AIyo3nx+swc5JxyIr4J2evp0rx9OyBAN5n1u9CMK7E0glkn3b7Gl4pEJ/derjup1 +# HKSQpSdkLp0eEvC3V+HDKLL8t91VD3J/WFhn9GlNL7PSGdqgr4/8gMCJQ2bfY1cu +# EMG7Q/hJv+4JXiM641RyYmGmkFCBBWEXH/nsliTUsJ2Mh57/8atx9uRC2Jihv05r +# 3cNKNuwPWOpqJwSeRyVQ3+YSb1mycKcDX785AOn/xDhw98f3gszgnpfQ200F5XLC +# 9YfTC4xo4nMeAMsJ4lSQUT0cTywENV52aPrM8kAj7ujMuNirDuLhEVuJK19ZlIaP +# C36UslBlFZQJxPdodi9OjVhYNmySiFaDvvD18XZBuI70N+eqhntCjMeLtGI+luOC +# QkwCGuGl5N/9q3Z734diQo5tSaA8CsfVaOK/CbV3s9haxqsvu7mpm6TfoZvWYRNL +# WgDZdff4LeuC3NGiE/z2plV/v2VW+OaDfg20gIr+kyT31IG62CG2KkVIxB1tdSdL +# ah4u31wq6/Uwm76AnzepdM2RDZCqHG01G9sT1CqaolDDlVb/hJnN7Wk9fHI5M7nI +# Or6JEhS5up5DOZRwKSLI24IsdaHw4sIjmYg4LWIu1UN/aXD15auinC7lIMm1P9nC +# ohTWpvZT42OQ1yPWFs4MFEQtpNNZ33VEmJQj2dwmQaD+MIIHcTCCBVmgAwIBAgIT # MwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv @@ -901,38 +906,38 @@ function GetExePathInArrOf($root, $exeName) { # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNy # b3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVT -# TjoxMkJDLUUzQUUtNzRFQjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAo47nlwxPizI8/qcKWDYhZ9qMyqSggYMw +# TjpERDhDLUUzMzctMkZBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAIQAa9hdkkrtxSjrb4u8RhATHv+eggYMw # gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD # VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUF -# AAIFAOeqmcwwIhgPMjAyMzAzMDIxMTQzMDhaGA8yMDIzMDMwMzExNDMwOFowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA56qZzAIBADAHAgEAAgIYHjAHAgEAAgISrTAK -# AgUA56vrTAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAJPtx79vs9usA7Ek -# 39Ap4IXGgX7LymBKnuwPgMSKvYbnQSOq4WCcN8P+3rWaEZPq0yWvJ6uDt/4wPtqD -# C2KXBqvKY0yVfBJ1IpBICCu1D6XR6Orjov+6tTabr6rHPr+Iq4Lqpcv2m9XVk4xG -# W270mUkyryD2N09rLOJoiW9Q+2BnMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# AAIFAOewTm8wIhgPMjAyMzAzMDYxOTM1MTFaGA8yMDIzMDMwNzE5MzUxMVowdDA6 +# BgorBgEEAYRZCgQBMSwwKjAKAgUA57BObwIBADAHAgEAAgIhszAHAgEAAgIR5TAK +# AgUA57Gf7wIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB +# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBANfu+WdUyTKozc3V +# sviG909Xf43iEg/WbYChcgP5FB/bq57RcxA41B2wzd44JLlT5lQeuw1opk6KI2vo +# qgMXA3IgdaIIax7pkKTsN1S6id0nGhc5l2zU5XbOUIU2hIw/NUS708THUDY5vF40 +# 2P+WaDNSo9o1MD4j9/5mACnb8GZzMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHKT8Kz7QMNGGwAAQAAAcowDQYJYIZIAWUD +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHFA83NIaH07zkAAQAAAcUwDQYJYIZIAWUD # BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgMOCVvK2WB2g4gTrWE16y7Cc2Com7/dEsXkqvFf1fRjYwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCATPRvzm+tVTayVkCTiO3VIMSTojNkDBUKhbAXc -# rNwa4DCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# CQQxIgQg2ANw4U4ly+O2HsDVi/VxiTwzkVRdSOh4B/qLDTCRpK0wgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCAZAbGR9iR3TAr5XT3A7Sw76ybyAAzKPkS4o+q8 +# 1D98sTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# yk/Cs+0DDRhsAAEAAAHKMCIEII++PFk8SPwN/hO+DGyezABNG0OGK+ItYRYsszz/ -# UhXhMA0GCSqGSIb3DQEBCwUABIICAF86e8y+CyU9a2f+rC6Vk/Pb4x90w1xrL6S8 -# uVvt0gQBN7G/oM3T9u3/jxAzxYmeu0MgELFXG76H3niTDGe0fTix+BQ0gnTp0CF5 -# jVwQVXgGt2Rjnf7QIdLEYv5fZm4MygswxTyo87jUlg+qcwiWCiRO1/ppgqnQM1Xz -# ZSmX+PzUA+W4sX92CxW9Q9ZN1hSHTcnWce1m3hgD1B6a8I9I004k0TGVq+bftp7x -# zGeSBsx1FFlqekKq0dY1m5HJwMRATuExwRjfkuCnxiR/Q+Qjjgeob2gbcc0YrjdZ -# uYf1+DzjtUWc5rGn08Mw2Pxc0HnxEyCX7P6mOx5SS6mmSFC15HJAx1+m2Ah+5E8n -# eUf+xePt/XZtDTDi/wduna7hsIyITzYDAYGv3q9h04RUt6vqQGf4hze5is0DbjGc -# E6xiT2srW0nqOQpaO5/y+j+EpWXkZbANJbuStdWAaz86a+lR7hdQHrfYrsFHvbT9 -# ZCmKkXPHw4wHyFyqIf1L4knK5mNpeVXM/ZDqschY7sDEPoGBa5vzMaRuLLb5iEjR -# fV86mjTVIYegtx+ft/f5PSpV+wCBk3gp+jT7NhpPte7WVEX3p1gBDqjoBEBmFle+ -# /CUxmhXyHUHZRaoSyzTNbc2flvWwyDYOWKIacY3gqLZKkb5gG7YTnCgcA/HsN7qR -# rEAczPoj +# xQPNzSGh9O85AAEAAAHFMCIEIMyz+pp+AbRQM7+NcCHFjHOZtb/YZef3EibQz+29 +# Y7KtMA0GCSqGSIb3DQEBCwUABIICAEVZaguGxltKesqxKynzYLXdzTb/yK9Ht/EF +# 259H/ayKvqFTZwJ1m27cdEgXRRyUvodprE9blbAWi04DxF4OBhdPNdr7koKY+Vnq +# qJtBAP9xYg6moLMkib2pzoyR8imyqWgjYUaoVZiPmu+AVWiGIe1m5BaZQ/IMm/Qo +# uIesfrb/iS1hWfaMTb2ADBL3KoZgl5CFPmoFjxOwLoU/BnVzDGMut2DjXoh+D3DX +# nBpig45NcipohPTWHrElcu3SoS6lCV1ARIxBnKr+xH8mCG9W7+IqjvBIUt9SK8fk +# mL6jxzwvsQABPsUyt3u8vb4cwRH74ZkZpQcaOBII6JTn6g5WCPmxN7pIgOfx7BxB +# JEzrgmHQ5siTJRIOq9P7UJwD/5xnxiyZUfjRL5y+OeunjSBJDkBBa0lxkL4V/crO +# UWlDjQ2duXmQ1Xw0NcH5tUz1XbkU9FY579nZaUSHPUX1OcS7k3S7CSVBtgDQb/JQ +# 27uP5B7tZ/miwDpz+CNZzOZDwZGIiu1l1MArsBFRVcXXJtFsrWmRbC5Xkv0sM15k +# RfY61pxrrSU18b5b+q1hLbRbyTFQ5sKv0D/qWsz92qulwksP2GMJJ1AqKVWyqrqt +# PhojhQUrm3x33rx7dorwLxb/7ci7zceudjQR3UqGTKyQjszovx1pF4x7PcwLkLlh +# gpgb4i2X # SIG # End signature block