Devolutions.Psign.psm1
|
# Binary cmdlets are loaded through the module manifest's NestedModules entry. # Argument completers for common parameters Register-ArgumentCompleter -CommandName Get-PsignSignature, Set-PsignSignature, Protect-PsignModule -ParameterName Thumbprint -ScriptBlock { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) $baseDir = if ($fakeBoundParameters.ContainsKey('CertStoreDirectory')) { $fakeBoundParameters['CertStoreDirectory'] } elseif ($env:PSIGN_CERT_STORE) { $env:PSIGN_CERT_STORE } else { Join-Path ([Environment]::GetFolderPath('UserProfile')) '.psign' 'cert-store' } $scope = if ($fakeBoundParameters.ContainsKey('MachineStore') -and $fakeBoundParameters['MachineStore']) { 'LocalMachine' } else { 'CurrentUser' } $store = if ($fakeBoundParameters.ContainsKey('StoreName')) { $fakeBoundParameters['StoreName'] } else { 'MY' } $storeDir = Join-Path $baseDir $scope $store if (Test-Path $storeDir) { Get-ChildItem -Path $storeDir -Filter '*.der' | ForEach-Object { $thumb = $_.BaseName if ($thumb -like "$wordToComplete*") { $cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($_.FullName) $subject = $cert.Subject -replace '^CN=','' -replace ',.*$','' $cert.Dispose() [System.Management.Automation.CompletionResult]::new( $thumb, "$thumb ($subject)", 'ParameterValue', $subject) } } } } Register-ArgumentCompleter -CommandName Set-PsignSignature, Protect-PsignModule -ParameterName StoreName -ScriptBlock { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) @('MY', 'Root', 'CA', 'Trust', 'TrustedPublisher', 'Disallowed') | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } } Register-ArgumentCompleter -CommandName Set-PsignSignature, Protect-PsignModule -ParameterName HashAlgorithm -ScriptBlock { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) @('Sha256', 'Sha384', 'Sha512') | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } } Register-ArgumentCompleter -CommandName Set-PsignSignature, Protect-PsignModule -ParameterName IncludeChain -ScriptBlock { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) @('Signer', 'NotRoot', 'All') | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } } Register-ArgumentCompleter -CommandName Set-PsignSignature, Protect-PsignModule -ParameterName TimestampHashAlgorithm -ScriptBlock { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) @('Sha1', 'Sha256', 'Sha384', 'Sha512') | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } } Register-ArgumentCompleter -CommandName Get-PsignSignature, Test-PsignArtifactSigning -ParameterName RevocationMode -ScriptBlock { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) @('Off', 'BestEffort', 'Require') | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } } Register-ArgumentCompleter -CommandName Test-PsignModule -ParameterName Policy -ScriptBlock { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) @('AllSigned', 'RemoteSigned') | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } } Register-ArgumentCompleter -CommandName New-PsignFileCatalog -ParameterName CatalogVersion -ScriptBlock { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) @('1', '2') | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } } # SIG # Begin signature block # MIIi8AYJKoZIhvcNAQcCoIIi4TCCIt0CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6Lv+uQg4bn76k # tjkFiH+Pln8c12CuQEsp2ZiID85vpKCCB7cwggezMIIFm6ADAgECAgxMFkIx6zV+ # H4/CRSgwDQYJKoZIhvcNAQELBQAwXDELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEds # b2JhbFNpZ24gbnYtc2ExMjAwBgNVBAMTKUdsb2JhbFNpZ24gR0NDIFI0NSBFViBD # b2RlU2lnbmluZyBDQSAyMDIwMB4XDTI1MTIwNDIxMDIyNFoXDTI4MTIwNDIxMDIy # NFowgfMxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYDVQQFEwox # MTYyNTQ0Njg5MRMwEQYLKwYBBAGCNzwCAQMTAkNBMRcwFQYLKwYBBAGCNzwCAQIT # BlF1ZWJlYzELMAkGA1UEBhMCQ0ExDzANBgNVBAgTBlF1ZWJlYzESMBAGA1UEBxMJ # TGF2YWx0cmllMRkwFwYDVQQKExBERVZPTFVUSU9OUyBJTkMuMRkwFwYDVQQDExBE # RVZPTFVUSU9OUyBJTkMuMScwJQYJKoZIhvcNAQkBFhhzZWN1cml0eUBkZXZvbHV0 # aW9ucy5uZXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCrxkpqbAg8 # YleH2qbBTwlYTTKX3ZYK8xYQol519Bsu2btnu3AzJdkTaNB/IaSjR4Ujg5ILlmDS # 2X5jPm6bxNhWyzdKGMVJpRB4gWVjfPtHatdMm5H0GafjvveUt5l93nHSkwYT2Aey # OR2DVgT0dQLvOmOvMfiwWk7TNwGP878AdoDG3n2bCgGvS/Z6dZe1Izeqn2bJEBvs # 0cQo/vPAoOrK5AmMjbvyzJxbViJ228bqpIdXXU0wJlVUlDl15/ryrVBNoU8P9ucd # 6bGxyy4HC26tBOGcM5kTwdqbPe9mqLhGjJD4WFzuCk7U2RY+hqGMtrAFGhsYD4AA # xHmWP4LoakgQDZ59lmuo2qHIDL7zYUiXe2kH5Xb6bNGUMnq1a2u84KKk9CZMizR5 # vQCojVfpiUB6oq18S/mO9LzuLhSVbpMr3HjTvgvstEXu+6W/AZ7UX7kjnXMko9b/ # zUO3hwFev82NtcZWLMCM+7srKB0HmRDFpRF/G4yTYw75E9QVBfY+ueYVXssaWc72 # koC3aXaWVUjkM0pHYh9CjoQYkPUeT6Wtv1vaoXSzYvrCo69f8RCkjndXxRuekYje # HprPWHREEfSq5xq1aUENECkrrahYllJVKgoFrg8Ez3tlflLx2tsQJWZW2AMxn1/H # OjiJ4hS41nMVyldtUe1T/FH0Ma39/D2qSQIDAQABo4IB2zCCAdcwDgYDVR0PAQH/ # BAQDAgeAMIGfBggrBgEFBQcBAQSBkjCBjzBMBggrBgEFBQcwAoZAaHR0cDovL3Nl # Y3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyNDVldmNvZGVzaWduY2Ey # MDIwLmNydDA/BggrBgEFBQcwAYYzaHR0cDovL29jc3AuZ2xvYmFsc2lnbi5jb20v # Z3NnY2NyNDVldmNvZGVzaWduY2EyMDIwMFUGA1UdIAROMEwwQQYJKwYBBAGgMgEC # MDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9z # aXRvcnkvMAcGBWeBDAEDMAkGA1UdEwQCMAAwRwYDVR0fBEAwPjA8oDqgOIY2aHR0 # cDovL2NybC5nbG9iYWxzaWduLmNvbS9nc2djY3I0NWV2Y29kZXNpZ25jYTIwMjAu # Y3JsMCMGA1UdEQQcMBqBGHNlY3VyaXR5QGRldm9sdXRpb25zLm5ldDATBgNVHSUE # DDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBQlndD8WQmGY8Xs87ETO1ccA5I2ETAd # BgNVHQ4EFgQUHPQFdNV6rx85JHkQ49BXqJBj58AwDQYJKoZIhvcNAQELBQADggIB # ALrsuuCOV4GFqCs51ziswTFM+DUxp79XDfKL1/aSZVVH3iIYqX3xOlmR/cHh2ftz # oXk6AeL/CVhKGzgX2W8//BSNtFol4LT76lOE/47vGZ1VL/l4nZU3U0Z+gM148pKc # iWi1zCQOATL5eSEsVFWIJ0nDqT+oQKlrDw8qeQlTi5mFs2TSlr3wRjIhCMAvoTPp # pKigZw7tVdLVPUA26l4AasAadQSsVoOW8TGAjZAteVsKj/FVV0ZP9+eMdVGvOyxx # jkhwSKG58kkWyvqJ5xhEqinlQs6i+Q701QRmco0QEXGFNJmOda2gZyef2Gnd8u0f # nkiLlI4d+STV8GAB2JVl2LFc32h+DoBUmkpCXC9Inh+DE9sU/JCEzm/vShJb3GMh # ZcVoYCD1v772Or6lOWjJTAk3CFk2QW86fXcAjbAGIYauDpJ+SdXuY/m2iE+fDYDo # bGY7DBOlTtbGI9c1KiiZw82vL1YmTu5Cmh17YOsNgoL3zzSjvrWZ3FhF92CBGnab # f7dFBZSeZgFrZSM8X/u/QP2vC+yVsXMDXGdc1L8v5o/m/9BtUt6zwrbIewWlLLDF # XB0c7mp8/szDAXEHHcMcMjNVOX58hYwTG77AIUSQenOvJtSGwfKzPUDa42V+GOmE # 8c9VDgjJNg7rCPkB2CJYncyZderWA9w5RecXn8ckHHRLMYIajzCCGosCAQEwbDBc # MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEyMDAGA1UE # AxMpR2xvYmFsU2lnbiBHQ0MgUjQ1IEVWIENvZGVTaWduaW5nIENBIDIwMjACDEwW # QjHrNX4fj8JFKDANBglghkgBZQMEAgEFAKB8MBAGCisGAQQBgjcCAQwxAjAAMBkG # CSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEE # AYI3AgEVMC8GCSqGSIb3DQEJBDEiBCA/J5R3bzZ/rxLwyqupzHLv5T8H8cG3huFy # G2a0VbIdTzANBgkqhkiG9w0BAQEFAASCAgAEPIhbdUtZwQa5zZVaHz3kB2XVgLfm # Pjf1AK8jzIhGk53dUuxRikgmLoJF8SKjtw/QtbExL0Aq8/T5g/IARn3cYklqnAHr # b0NkM7MGa35GDvwi2y62RwgElMg2CuAZldfhN1Ba3AsqcVqUtpygBe9bgzCQaMLg # 1l2D6giMhzezleLak2tqYIwkS524xr8VJzM0UxKm6UEwRVowT1Es6/NsMp0SnbOI # 56Y7OpGzFsk0gTJDTLAkXCEfRlAJfzmCFl2vej86CDQlnli4yhUwm342/CetgnrU # IYrmDdArHh/dW4Q9gEBM1AHQp7v6nC7Px1R/tGUWboGkZ3QBhpBKEmRWU+DkVMH7 # vnM2uqiS7a8/Y0ZGqjnvxzgcsHPcylcIfQ/ynVZbgB5fyLU23D61WUySQX1FQcM3 # h0v3CSNkrR2JiK/dKIlJJRH1v0XzQ3IHsxaqxsjnhRs3q6dhWI8x/8tHx60DvY+g # DOpgBTFdDvUrhg3QL2I9+IU8zEbl4LmKrizOZAdhuAvpPNCvBFRWm7SKidyeOz/p # M5glC4gpmdkTt9XqW0/Kh5GhSquAITAso0mUkLofr8q7XUreWBbFqU8/IduC787g # B42qKirdVcd7dEdqPDi7tB6YV3v2c3Ol3ajdP+DGK/n5gRnMLRp7EZXRn6yP0uf6 # x5tdihDETSOG/qGCF3YwghdyBgorBgEEAYI3AwMBMYIXYjCCF14GCSqGSIb3DQEH # AqCCF08wghdLAgEDMQ8wDQYJYIZIAWUDBAIBBQAwdwYLKoZIhvcNAQkQAQSgaARm # MGQCAQEGCWCGSAGG/WwHATAxMA0GCWCGSAFlAwQCAQUABCCHvXSb8wFqGam+AGv4 # EP1c5MSBKz5f3K5bpvwDlohEAQIQbVPcmv8e8MpuQZav9EDS0hgPMjAyNjExMDIy # MTU1MTRaoIITOjCCBu0wggTVoAMCAQICEAhP3DNPfkVO28MPj/mSGDUwDQYJKoZI # hvcNAQELBQAwaTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMu # MUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0 # MDk2IFNIQTI1NiAyMDI1IENBMTAeFw0yNjA4MDUwMDAwMDBaFw0zNzExMDQyMzU5 # NTlaMGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkG # A1UEAxMyRGlnaUNlcnQgU0hBMjU2IFJTQTQwOTYgVGltZXN0YW1wIFJlc3BvbmRl # ciAyMDI2IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2e6byyf7N # SvjUm0xls/04xjD4fAkOkbnGQi7+Wpx81iYxfzViaxSIctuH3KSl5YEYpMuFgGsA # 31N2D9ATMbfZdw5uaAhuWevQKhDdZIB4NnqcfpfpWQXJiQnDdAElETC+bhSEvNLG # bA8DtwUpFMQ4yyYQSPqomT92osQAv6hBi47ATZS6JfVWe6XxhF4jJZ3iSAuf2Cro # s1czRSmWRHqMv9AfGZvp8ygYElhudpQjtcPpwoOl6QrZJUyV3iINvN4cO05prGV0 # fkjG426xDr2d3z9lcSIHkdvGPdGUrXdxfVbgOUVcp2/8ISEzwKPW++Wa+E2ujI91 # EZtukGWDJ/xZ27k3oHKEXBRGfRTqjOU+jE3ba/5++JSE/7oNHnjs5mekExYN96LV # /mxUbCKJb8pBNY4r3uD7hEmk/M81XhVgwDA7aMzYC3LZBg9WY5BMmbSay5ecmtJu # XaB/0nKWmQmVZeqTVDgsmzHP5MQuhAJkiWNuC9MmCg9TZHXbJ2/yLVSov9p16UDT # LtT0+aa1vN71fHeu1qMLlLNB3WOB/ADCxr3S/1hxI92Z6jKgEED/btwIvbfuXkNN # hg8MtDg43c4tMZae9FvqMOt/9PvmAxF9TNIsIFB8G6yb36ZJZGUL8N/pL971DyLX # cK6HM5PYnH5X+eVtczhCgHCVQCF6XDAlPQIDAQABo4IBlTCCAZEwDAYDVR0TAQH/ # BAIwADAdBgNVHQ4EFgQUFMljijAu1Er7bpTz5uNAfvXszeIwHwYDVR0jBBgwFoAU # 729TSunkBnx6yuKQVvYv1Ensy04wDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQM # MAoGCCsGAQUFBwMIMIGVBggrBgEFBQcBAQSBiDCBhTAkBggrBgEFBQcwAYYYaHR0 # cDovL29jc3AuZGlnaWNlcnQuY29tMF0GCCsGAQUFBzAChlFodHRwOi8vY2FjZXJ0 # cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0 # MDk2U0hBMjU2MjAyNUNBMS5jcnQwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL2Ny # bDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0VGltZVN0YW1waW5nUlNB # NDA5NlNIQTI1NjIwMjVDQTEuY3JsMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCG # SAGG/WwHATANBgkqhkiG9w0BAQsFAAOCAgEAjcU6YR6dUgrfmawJgH59KECxa9Ji # 8sEi2g10CBDaMiqsaxWyW5cwlT/6ZF5sFznazqVsoC85U9dqLOYqQwst+UQQoNlD # HgKRLa3xoc+OReFreFhnTXSG0Vrd2E2CZqUfm+5a+He1MJ/h+tNLuA+0Zzhn/Fo+ # FDYAHWZHx4R79ZsfRFYe9UiXpXBDf6DkUo183Y38NYmR/XfDYf7YZ+oR9t3flbDw # K+hgGMs0gNNp1w9Z2CyOyI5or/sSwomAuNQ0hWC9xoU4stD8aWsD7RkcmgVRs6vl # Ik3zPKQ+ylcheWkMlj+CoVRlFE55pv0ZWCaFt04lwP/rdGHE9qEVQZtyRE42ox7o # NgC/r+Y4bSlZ3dw9K2x1xLtu6PkPKeLBFjzKigwfqm3Hm+k/+lnME8F5kPZTgiy2 # HLEHklpryqs6QHnPXrRNeIzkAMyylnRN8P0wmirS0WkU+ywpEWFZ4QNg+9xS43tT # uW9x0eXh7NDc1P/sV+zWxHXKH8tFt1ncHdVzqrZaYPyYMLSn2TOXajveJW1L3joi # QSPsWRGxkbDDW15jERFE4LvjnGu2O9zD1nLJSMdlYZEikl4w2w+q4IN/R+TIe0H4 # ngCI1moJCTbevGH4punIxM1Uoi0nmX3ZK+XbRT01uowE5ViXWHng0RgsmrX/EdYU # o80r3TfMlkD0/YMwgga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmGMA0GCSqG # SIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx # GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRy # dXN0ZWQgUm9vdCBHNDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5NTlaMGkx # CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4 # RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBTSEEyNTYg # MjAyNSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0eDHTCphB # cr48RsAcrHXbo0ZodLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+RuwOnPhof6p # vF4uGjwjqNjfEvUi6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4Bt0mAxAHe # HYNnQxqXmRinvuNgxVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1UkxBvMgEd # gkFiDNYiOTx4OtiFcMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTcaarps0wjU # jsZvkgFkriK9tUKJm/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zbCclF83bR # VFLeGkuAhHiGPMvSGmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnGpTXiUOeS # LsJygoLPp66bkDX1ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/AMOMCZIV # NSaz7BX8VtYGqLt9MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v5ydPpOjL # 6s36czwzsucuoKs7Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoiwOrUG2Zd # SoQbU2rMkpLiQ6bGRinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm2qA+sdFU # eEY0qVjPKOWug/G6X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYDVR0TAQH/ # BAgwBgEB/wIBADAdBgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04wHwYDVR0j # BBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1Ud # JQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0 # cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0 # cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8E # PDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVz # dGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEw # DQYJKoZIhvcNAQELBQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Qh8WIGjB/ # T8ObXAZz8OjuhUxjaaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3YTj+IQhQ # E7jU/kXjjytJgnn0hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQwr8Myb9r # EVKChHyfpzee5kH0F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/wdG2th9y # 1IsA0QF8dTXqvcnTmpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81hjajV/gx # dEkMx1NKU4uHQcKfZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00TYr2Lr3t # y9qIijanrUR3anzEwlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNjqFzeGxcy # tL5TTLL4ZaoBdqbhOhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0cuJG7uEB # YTptMSbhdhGQDpOXgpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9sC+NJpud # /v4+7RWsWCiKi9EOLLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0LckTetiS # uEtQvLsNz3Qbp7wGWqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2tszWkPZP # ubdcMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0BAQwF # ADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL # ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElE # IFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQswCQYD # VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGln # aWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIi # MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKn # JS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/W # BTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHi # LQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhm # V1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHE # tWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 # MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mX # aXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZ # xd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfh # vbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvl # EFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn1 # 5GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV # HQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SSy4Ix # LVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAkBggr # BgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdo # dHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290 # Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv # bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRVHSAA # MA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyhhyzs # hV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO0Cre # +i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo8L8v # C6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSMb++hUD38 # dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5xaiNr # Iv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMYIDfDCCA3gCAQEw # fTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNV # BAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYgU0hB # MjU2IDIwMjUgQ0ExAhAIT9wzT35FTtvDD4/5khg1MA0GCWCGSAFlAwQCAQUAoIHR # MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYx # MTAyMjE1NTE0WjArBgsqhkiG9w0BCRACDDEcMBowGDAWBBRR2avaA0lz2E9CZqyk # gkjms2nEOTAvBgkqhkiG9w0BCQQxIgQg0fGou85NXf1liIFaoXGkJXwZp5K6GykC # ZFkWLdwSoxkwNwYLKoZIhvcNAQkQAi8xKDAmMCQwIgQgLaCdp/QTH5/nLbbF5unJ # ZWdVrwQ/HqdCzA0hIOFB6/wwDQYJKoZIhvcNAQEBBQAEggIAYlfp01W3LdpZOlZR # v+PGfTcfozPZxtrhbqgAkJCDQloy96dbetBn8yqrBWDgkVkPxh9KIu7rDeHUEY0A # H2JptDFk0btBvoj02j138CHFNRacICmHdd/YIndGvF8JmhkUjYrLoc0s4XiOuLww # 1dI6+9X+hxSWxuS18uzChcqE/z/AVLQ07sB2W/13KqJ3bj0zMKhBLmknBz407hyW # O/t/g7h84c7h/TVTaOT7J0C2vieIpd/dt5SbiyXHdfHXitzwDZWFvGBH9EQ3a3Ra # sgMOKrIk7In4X7vVtbYu6d+NhhAnd54gnAfAA6AmMh1vpBqIj2P1ADU1efr7B60Y # IDDc1CYEHi+014WQ3LsGAjlMAX3mmrtVi6vrtvozJ8RadiKTc6rsESPJH5+0zYb2 # VtKbTDf+UfbzWZDWWTpxZEmSISgXC3DN35B+v6clhf3wr76GFd2AQsv9FY5mOMTW # wN9OrxAR5HMkUYqIM/prki0Y/X6iyuIaWsFPKAAjih4+4UVC3Gyc4IrtgaAbel+W # Eq5vCbgfmCEl1zeZDgbHxbqcM6lHt2W/yro08sWCNk0KBDs/df0kCcEAUh5/1BDe # Vr651O5U1d8wVqNJ/7aqiVqh5WEv4EOgFKPxbNhLK4M4oUVq22Wwc4qKsMlMSQwf # TWd4H+iFj7OtTgzwYNn3BkJjm50= # SIG # End signature block |