OpenAuthenticode.psm1
# Copyright: (c) 2023, Jordan Borean (@jborean93) <jborean93@gmail.com> # MIT License (see LICENSE or https://opensource.org/licenses/MIT) $importModule = Get-Command -Name Import-Module -Module Microsoft.PowerShell.Core $moduleName = [System.IO.Path]::GetFileNameWithoutExtension($PSCommandPath) # This is used to load the shared assembly in the Default ALC which then sets # an ALC for the moulde and any dependencies of that module to be loaded in # that ALC. $isReload = $true if (-not ('OpenAuthenticode.LoadContext' -as [type])) { $isReload = $false Add-Type -Path ([System.IO.Path]::Combine($PSScriptRoot, 'bin', 'net8.0', "$moduleName.dll")) } $mainModule = [OpenAuthenticode.LoadContext]::Initialize() $innerMod = &$importModule -Assembly $mainModule -PassThru:$isReload if ($innerMod) { # Bug in pwsh, Import-Module in an assembly will pick up a cached instance # and not call the same path to set the nested module's cmdlets to the # current module scope. # https://github.com/PowerShell/PowerShell/issues/20710 $addExportedCmdlet = [System.Management.Automation.PSModuleInfo].GetMethod( 'AddExportedCmdlet', [System.Reflection.BindingFlags]'Instance, NonPublic' ) foreach ($cmd in $innerMod.ExportedCommands.Values) { $addExportedCmdlet.Invoke($ExecutionContext.SessionState.Module, @(, $cmd)) } } Update-FormatData -AppendPath (Join-Path $PSScriptRoot "$moduleName.Format.ps1xml") Update-TypeData -AppendPath (Join-Path $PSScriptRoot "$moduleName.Type.ps1xml") # Use this for testing that the dlls are loaded correctly and outside the Default ALC. # [System.AppDomain]::CurrentDomain.GetAssemblies() | # Where-Object { $_.GetName().Name -like "*openauthenticode*" } | # ForEach-Object { # $alc = [Runtime.Loader.AssemblyLoadContext]::GetLoadContext($_) # [PSCustomObject]@{ # Name = $_.FullName # Location = $_.Location # ALC = $alc # } # } | Format-List # SIG # Begin signature block # MIIxTgYJKoZIhvcNAQcCoIIxPzCCMTsCAQMxDTALBglghkgBZQMEAgEwewYKKwYB # BAGCNwIBBKBtBGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBF3kSc7i2y/Xn4 # U2YM4ROsbrH150qgVAqgYAtO8e+M36CCFeswggbnMIIEz6ADAgECAhMzAAQwNBA6 # cNF2VrfoAAAABDA0MA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD # VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ # RCBWZXJpZmllZCBDUyBFT0MgQ0EgMDEwHhcNMjUwODMxMTEzOTEyWhcNMjUwOTAz # MTEzOTEyWjBlMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8G # A1UEBxMIQnJpc2JhbmUxFjAUBgNVBAoTDUpvcmRhbiBCb3JlYW4xFjAUBgNVBAMT # DUpvcmRhbiBCb3JlYW4wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCw # eE7IM1NwFvmBmUDVRs/XRKI2wt8ayKPOIxel9s5WMPTq45PkphB5uFvp2HpBo5yf # thL7irccLalBu9/3zHiv0ehepXCrx36EkVsNBNNxNvQxU9JD/a6Jb0w6mZwLZXHP # qQH0tuUSF39XSuNT6cYuhZsEurFmts55qdCjA2IIFLyyMHuZSx+bBUTW7AkgnX5R # 6D3783qAUB1WPD/5X8GbpifPyUL2Zbu1MWYB0q+2Oz437iTfUZapygZ13DZ7TcEi # ZNXYOljXR4ZMSgsVa1rxydUCfdG39g5BWtpHQDeTyKvNQoy5PM/rfNqOmFNLzvRk # gHJ5izaQw+ETEuEdgRJUIMMo/ZV+L1O+VBrkur4ma73Hch/q/ZRsAkrArrjd/Lvv # KKiswvPWMzGKnT0DwPL4oUy6pvx5Qki2/kP1wNsqJMEDkeLXoOCWhcSR49lgErcw # JhGVQo2KIfnta/qatvtddi7JYDGLpX+/2IPcxBiN8GxGk1GDBiWjJcMcrrrSpEUC # AwEAAaOCAhkwggIVMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMDwGA1Ud # JQQ1MDMGCisGAQQBgjdhAQAGCCsGAQUFBwMDBhsrBgEEAYI3YcD1uzmDxbqHboKj # 0bsfgZfH91YwHQYDVR0OBBYEFHwVg/Ll1L7TAhbWlAnW0/vgsrnEMB8GA1UdIwQY # MBaAFHacNnQT0ZB9YV+zAuuA9JlLpT6FMGcGA1UdHwRgMF4wXKBaoFiGVmh0dHA6 # Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMElEJTIw # VmVyaWZpZWQlMjBDUyUyMEVPQyUyMENBJTIwMDEuY3JsMIGlBggrBgEFBQcBAQSB # mDCBlTBkBggrBgEFBQcwAoZYaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w # cy9jZXJ0cy9NaWNyb3NvZnQlMjBJRCUyMFZlcmlmaWVkJTIwQ1MlMjBFT0MlMjBD # QSUyMDAxLmNydDAtBggrBgEFBQcwAYYhaHR0cDovL29uZW9jc3AubWljcm9zb2Z0 # LmNvbS9vY3NwMGYGA1UdIARfMF0wUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUH # AgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0 # b3J5Lmh0bTAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQADggIBAHbi+JNA4+s24bDv # xtPpvIMSgpqf5mJr8tT6+TyltWruZQ9b+E3rHISABjOe5FXDeX2I0+1Idkpk5GWz # r5uEOqrixe4qWhTeN8OQ3ojo1NwO6B2QIFN0wLuE1QhUq8sMv6ZPtrVNYKpHppfu # XPI6W6qI9WoA4trHK8EhM6r3guGrFaSKzN+BrBXrG/E99o2EZXcTN8CqpCD0hVh0 # nq7YGQ6n6heRA7BeVNl/0Vgf1IofR9U3+qk7/EmZpoHqkyx7kQKutEzgXKyfTZ7R # G7e+toi9CHy7mCUDc7Qr3F3gV3iKQkVxdQC+QKeySdtc+0xZ1Tc7CcvJMgrMpCbC # 5WTI7YuNt1aD3gd5BYZaLmGyaVx1uBC531z7lviGOx8bAbwwc9ngcKsGcitAW/C7 # UkRypZapg7x3Ttlj16qGebF4XUTAY3hVdlHtYlXqu4knfboR0Fhrhclc/LW2O16P # 1SpVPCQL0flRA9AZywq83M/RtEQJWLMLOJsbgpNXmAkw3xztsCmtJtXgwVkApZip # 6lq+n8Op3GNoZdIQVYuzgUndMcegwwX9ujEKM+M8iMcG7fqMa0L6OwSTC/Lxxsia # 1jyzzsP9gndf/itgffctLFWEGSc5ECQA39KekFZwWg3y69YpZ1W2pI0TBBWfa54Z # K3qB3Ged0+eZMueKbr1UMDZrlhPJMIIHWjCCBUKgAwIBAgITMwAAAAZKGvrPBWFq # dAAAAAAABjANBgkqhkiG9w0BAQwFADBjMQswCQYDVQQGEwJVUzEeMBwGA1UEChMV # TWljcm9zb2Z0IENvcnBvcmF0aW9uMTQwMgYDVQQDEytNaWNyb3NvZnQgSUQgVmVy # aWZpZWQgQ29kZSBTaWduaW5nIFBDQSAyMDIxMB4XDTIxMDQxMzE3MzE1NFoXDTI2 # MDQxMzE3MzE1NFowWjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBD # b3Jwb3JhdGlvbjErMCkGA1UEAxMiTWljcm9zb2Z0IElEIFZlcmlmaWVkIENTIEVP # QyBDQSAwMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfjyD/0Id3G # GcC7xcurrieH06d5Z+xqrO7PJU1cn4DiVj9WgAcJNv6MXVY30h1KuDEz14pS+e6o # v3x+2J3RCuCp3d7uXHnRcK9mh0k6er5fzy9XQC/bH6A7zaXRtDf0fOAIWDaQUE4a # TuPwasZgoJd4iEX4YdqBVTrok4g1Vr1wYO+m3I5x5xBLV87wFsCbtGwVO6EUakHn # eFVybSAlbfmaClEo6mOcFJYQHcB4ft9QZ6QTwsxbSlYi6esxLUcjsUXoGoBVPsi4 # F775ndOyAzdEtky2LomY08PpHGDraDYCq+5NAuhPVn9x+Ix2r5NjMahabYHy9IC/ # s20m/lQTSolU9Jqs1ySCZlpqsNCvg9zCn5gnq93twm6z/heUbQm9F2hNLkXCT2SY # 1sHIgwcQSG5DReBi9doZeb8nYBTJs0HDbqHSsl//95Sydattq6B1UtXILbC4KY1m # GZQZYQk3FyXmd8bmib12Qfa3Cwl9eToFy9tbVFMCQixNu1eQBmcZDt4ueJoEgrML # TpllOACnfwf3tyrV7+lwVESrgLXns9RKYJaGmcEHo/ZeXTfVIfFtfQWYPSJS5fsR # 0V+Lw4jFgFH/+wDXuDKEvfBeOa++iBidIQtNhDLjGcQBK8GY9JZ9Gi+dxM5TGuSQ # okTm29FKCx3xknTSbDINLo9wwEA3VVkxAgMBAAGjggIOMIICCjAOBgNVHQ8BAf8E # BAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFHacNnQT0ZB9YV+zAuuA # 9JlLpT6FMFQGA1UdIARNMEswSQYEVR0gADBBMD8GCCsGAQUFBwIBFjNodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wGQYJ # KwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV # HSMEGDAWgBTZQSmwDw9jbO9p1/XNKZ6kSGow5jBwBgNVHR8EaTBnMGWgY6Bhhl9o # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBJ # RCUyMFZlcmlmaWVkJTIwQ29kZSUyMFNpZ25pbmclMjBQQ0ElMjAyMDIxLmNybDCB # rgYIKwYBBQUHAQEEgaEwgZ4wbQYIKwYBBQUHMAKGYWh0dHA6Ly93d3cubWljcm9z # b2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSUQlMjBWZXJpZmllZCUy # MENvZGUlMjBTaWduaW5nJTIwUENBJTIwMjAyMS5jcnQwLQYIKwYBBQUHMAGGIWh0 # dHA6Ly9vbmVvY3NwLm1pY3Jvc29mdC5jb20vb2NzcDANBgkqhkiG9w0BAQwFAAOC # AgEAai8Jn9iwdUI1IGtBu8xZGxnfDQUCxz9CjhQVjSRWYk7Sn6TtG2dln7Or+b6i # CoxN9kOjPPRuGZFXL1rhAAPnb4y04UsvPWNP/5v1k0isGLYkdRMJ+8dZMPxYPd8E # KbNgtVlI/tNP+rjaxfneDFScVdR6ASA/veWSFtCpKmaKZzgOMObz+E+XAaa2UAJT # /7zBsgdB/fqRzaNI0/UPIHyiTcx0vYtQ4AZprnxnVvUwcrp6PBgIsxTIS5SLNPG+ # ZYpSJBOc9xTAFAK/l4CCNRTWZ2+NziOkHdszoo242H7q7F1AjRwvkUsCRpuVC8z8 # pmIIJyfpISTqu6EpajxqW6+9IRgXj8Pye/5pkqqe4U4LdJj4pEtYuGqfMfj98npm # EoZxa4Fde+dkyPgLOvS34C7YZCE73+2xRwfL5iIWnWQjktL0wsdwfvzlXBDCzTtm # ydDvYpHNSakdBb6se5wMDEUodxVaqLIMwW1p1ZECau6FhcDFXxSGJ+iz0WTLePLu # ojFAhQUj3XbDwP+pPOZhL/tPFOVgkO8nY9SlVdkx63v/Jix4npvcH/ws6IakZ7cT # NhP8fjR8ukwTJ0j0EaoYTX7joFAwFhGJpTP2RxmjyG+8Tr31ci0P+5emH6IE93qb # cKeBjhkYx+c/oBvZKQSMfEK0ZejopZ5cURMaJJjH5S+5ddkwggeeMIIFhqADAgEC # AhMzAAAAB4ejNKN7pY4cAAAAAAAHMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYT # AlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01p # Y3Jvc29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBB # dXRob3JpdHkgMjAyMDAeFw0yMTA0MDEyMDA1MjBaFw0zNjA0MDEyMDE1MjBaMGMx # CzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xNDAy # BgNVBAMTK01pY3Jvc29mdCBJRCBWZXJpZmllZCBDb2RlIFNpZ25pbmcgUENBIDIw # MjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCy8MCvGYgo4t1UekxJ # bGkIVQm0Uv96SvjB6yUo92cXdylN65Xy96q2YpWCiTas7QPTkGnK9QMKDXB2ygS2 # 7EAIQZyAd+M8X+dmw6SDtzSZXyGkxP8a8Hi6EO9Zcwh5A+wOALNQbNO+iLvpgOnE # M7GGB/wm5dYnMEOguua1OFfTUITVMIK8faxkP/4fPdEPCXYyy8NJ1fmskNhW5Hdu # NqPZB/NkWbB9xxMqowAeWvPgHtpzyD3PLGVOmRO4ka0WcsEZqyg6efk3JiV/TEX3 # 9uNVGjgbODZhzspHvKFNU2K5MYfmHh4H1qObU4JKEjKGsqqA6RziybPqhvE74fEp # 4n1tiY9/ootdU0vPxRp4BGjQFq28nzawuvaCqUUF2PWxh+o5/TRCb/cHhcYU8Mr8 # fTiS15kRmwFFzdVPZ3+JV3s5MulIf3II5FXeghlAH9CvicPhhP+VaSFW3Da/azRO # dEm5sv+EUwhBrzqtxoYyE2wmuHKws00x4GGIx7NTWznOm6x/niqVi7a/mxnnMvQq # 8EMse0vwX2CfqM7Le/smbRtsEeOtbnJBbtLfoAsC3TdAOnBbUkbUfG78VRclsE7Y # DDBUbgWt75lDk53yi7C3n0WkHFU4EZ83i83abd9nHWCqfnYa9qIHPqjOiuAgSOf4 # +FRcguEBXlD9mAInS7b6V0UaNwIDAQABo4ICNTCCAjEwDgYDVR0PAQH/BAQDAgGG # MBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTZQSmwDw9jbO9p1/XNKZ6kSGow # 5jBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5t # aWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBkGCSsGAQQB # gjcUAgQMHgoAUwB1AGIAQwBBMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU # yH7SaoUqG8oZmAQHJ89QEE9oqKIwgYQGA1UdHwR9MHsweaB3oHWGc2h0dHA6Ly93 # d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMElkZW50aXR5 # JTIwVmVyaWZpY2F0aW9uJTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5 # JTIwMjAyMC5jcmwwgcMGCCsGAQUFBwEBBIG2MIGzMIGBBggrBgEFBQcwAoZ1aHR0 # cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBJ # ZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1 # dGhvcml0eSUyMDIwMjAuY3J0MC0GCCsGAQUFBzABhiFodHRwOi8vb25lb2NzcC5t # aWNyb3NvZnQuY29tL29jc3AwDQYJKoZIhvcNAQEMBQADggIBAH8lKp7+1Kvq3WYK # 21cjTLpebJDjW4ZbOX3HD5ZiG84vjsFXT0OB+eb+1TiJ55ns0BHluC6itMI2vnwc # 5wDW1ywdCq3TAmx0KWy7xulAP179qX6VSBNQkRXzReFyjvF2BGt6FvKFR/imR4CE # ESMAG8hSkPYso+GjlngM8JPn/ROUrTaeU/BRu/1RFESFVgK2wMz7fU4VTd8NXwGZ # Be/mFPZG6tWwkdmA/jLbp0kNUX7elxu2+HtHo0QO5gdiKF+YTYd1BGrmNG8sTURv # n09jAhIUJfYNotn7OlThtfQjXqe0qrimgY4Vpoq2MgDW9ESUi1o4pzC1zTgIGtdJ # /IvY6nqa80jFOTg5qzAiRNdsUvzVkoYP7bi4wLCj+ks2GftUct+fGUxXMdBUv5sd # r0qFPLPB0b8vq516slCfRwaktAxK1S40MCvFbbAXXpAZnU20FaAoDwqq/jwzwd8W # o2J83r7O3onQbDO9TyDStgaBNlHzMMQgl95nHBYMelLEHkUnVVVTUsgC0Huj09du # NfMaJ9ogxhPNThgq3i8w3DAGZ61AMeF0C1M+mU5eucj1Ijod5O2MMPeJQ3/vKBtq # GZg4eTtUHt/BPjN74SsJsyHqAdXVS5c+ItyKWg3Eforhox9k3WgtWTpgV4gkSiS4 # +A09roSdOI4vrRw+p+fL4WrxSK5nMYIauTCCGrUCAQEwcTBaMQswCQYDVQQGEwJV # UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYDVQQDEyJNaWNy # b3NvZnQgSUQgVmVyaWZpZWQgQ1MgRU9DIENBIDAxAhMzAAQwNBA6cNF2VrfoAAAA # BDA0MAsGCWCGSAFlAwQCAaB8MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJ # AzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8G # CSqGSIb3DQEJBDEiBCAMQxtcFXti39ABS6MHP/IZVk4LCfAAB/2iiOzCX9MP+TAL # BgkqhkiG9w0BAQEEggGAojK3tA+JzoLOhQ00fonwdT57w4O0aQzqKQ7sEbbqu5q+ # K7eNHTOmsmEbmfvg2pBW+unqPflEtur6kQDqCm11OEpTrvG0Eh4o0q6XYV6suUuQ # lmwSzZefJwwUHscW9Iu8YFv8UJEo178MoHtlJBTSYrgLuX6OcjwlftQ6k2i5mo/X # Kxn/n/h6PD40/xhJXGy0ml+i/skx6Y4R/TCNQoeJq+MDGx1r+95DxgZHJm9iE05W # PPlxunvMuxpM3YWeD86JH9yvZvxJwfoeLMycrnkiKnUtNNFP6bflZ1rpF+vzU2tC # mzvkPO/t3E+O7VDzjYT2MULLrtuPZRrYbYmkUM9siFGQCxgUME7eUGNcM0qyEAF9 # pwD5sjCXYf4De8QhRsVKX4eWf0+iMKXuJBsBKDaDw/0y0222ofiwYonY1ml9iext # E9MNghXVUDfLKFhe5YjGZLbLHBVCpvOuQ6dNN3BwJq81LDBtg3Pf8GZ/WL2ujkLp # Q4ErWopHcjUfnctZUSgPoYIYHzCCGBsGCisGAQQBgjcDAwExghgLMIIYBwYJKoZI # hvcNAQcCoIIX+DCCF/QCAQMxDzANBglghkgBZQMEAgEFADCCAW0GCyqGSIb3DQEJ # EAEEoIIBXASCAVgwggFUAgEBBgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAE # IMERqifiY1UJ8mOP7TV89nQHkzBCuY8Prb6CG+DjWhiGAgZoqHmT9fgYEzIwMjUw # ODMxMTg0OTAwLjM4OFowBIACAfQCCQCcRBhX+0n7M6CB4aSB3jCB2zELMAkGA1UE # BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0 # IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjc4 # MDAtMDVFMC1EOTQ3MTUwMwYDVQQDEyxNaWNyb3NvZnQgUHVibGljIFJTQSBUaW1l # IFN0YW1waW5nIEF1dGhvcml0eaCCDyEwggeCMIIFaqADAgECAhMzAAAABeXPD/9m # LsmHAAAAAAAFMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVu # dGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAy # MDAeFw0yMDExMTkyMDMyMzFaFw0zNTExMTkyMDQyMzFaMGExCzAJBgNVBAYTAlVT # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jv # c29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwMIICIjANBgkqhkiG # 9w0BAQEFAAOCAg8AMIICCgKCAgEAnnznUmP94MWfBX1jtQYioxwe1+eXM9ETBb1l # Rkd3kcFdcG9/sqtDlwxKoVIcaqDb+omFio5DHC4RBcbyQHjXCwMk/l3TOYtgoBjx # nG/eViS4sOx8y4gSq8Zg49REAf5huXhIkQRKe3Qxs8Sgp02KHAznEa/Ssah8nWo5 # hJM1xznkRsFPu6rfDHeZeG1Wa1wISvlkpOQooTULFm809Z0ZYlQ8Lp7i5F9YciFl # yAKwn6yjN/kR4fkquUWfGmMopNq/B8U/pdoZkZZQbxNlqJOiBGgCWpx69uKqKhTP # Vi3gVErnc/qi+dR8A2MiAz0kN0nh7SqINGbmw5OIRC0EsZ31WF3Uxp3GgZwetEKx # Lms73KG/Z+MkeuaVDQQheangOEMGJ4pQZH55ngI0Tdy1bi69INBV5Kn2HVJo9XxR # YR/JPGAaM6xGl57Ei95HUw9NV/uC3yFjrhc087qLJQawSC3xzY/EXzsT4I7sDbxO # mM2rl4uKK6eEpurRduOQ2hTkmG1hSuWYBunFGNv21Kt4N20AKmbeuSnGnsBCd2cj # RKG79+TX+sTehawOoxfeOO/jR7wo3liwkGdzPJYHgnJ54UxbckF914AqHOiEV7xT # nD1a69w/UTxwjEugpIPMIIE67SFZ2PMo27xjlLAHWW3l1CEAFjLNHd3EQ79PUr8F # UXetXr0CAwEAAaOCAhswggIXMA4GA1UdDwEB/wQEAwIBhjAQBgkrBgEEAYI3FQEE # AwIBADAdBgNVHQ4EFgQUa2koOjUvSGNAz3vYr0npPtk92yEwVAYDVR0gBE0wSzBJ # BgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w # a2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZ # BgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAPBgNVHRMBAf8EBTADAQH/MB8GA1Ud # IwQYMBaAFMh+0mqFKhvKGZgEByfPUBBPaKiiMIGEBgNVHR8EfTB7MHmgd6B1hnNo # dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBJ # ZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1 # dGhvcml0eSUyMDIwMjAuY3JsMIGUBggrBgEFBQcBAQSBhzCBhDCBgQYIKwYBBQUH # MAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9z # b2Z0JTIwSWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIwQ2VydGlmaWNh # dGUlMjBBdXRob3JpdHklMjAyMDIwLmNydDANBgkqhkiG9w0BAQwFAAOCAgEAX4h2 # x35ttVoVdedMeGj6TuHYRJklFaW4sTQ5r+k77iB79cSLNe+GzRjv4pVjJviceW6A # F6ycWoEYR0LYhaa0ozJLU5Yi+LCmcrdovkl53DNt4EXs87KDogYb9eGEndSpZ5ZM # 74LNvVzY0/nPISHz0Xva71QjD4h+8z2XMOZzY7YQ0Psw+etyNZ1CesufU211rLsl # LKsO8F2aBs2cIo1k+aHOhrw9xw6JCWONNboZ497mwYW5EfN0W3zL5s3ad4Xtm7yF # M7Ujrhc0aqy3xL7D5FR2J7x9cLWMq7eb0oYioXhqV2tgFqbKHeDick+P8tHYIFov # IP7YG4ZkJWag1H91KlELGWi3SLv10o4KGag42pswjybTi4toQcC/irAodDW8HNtX # +cbz0sMptFJK+KObAnDFHEsukxD+7jFfEV9Hh/+CSxKRsmnuiovCWIOb+H7DRon9 # TlxydiFhvu88o0w35JkNbJxTk4MhF/KgaXn0GxdH8elEa2Imq45gaa8D+mTm8LWV # ydt4ytxYP/bqjN49D9NZ81coE6aQWm88TwIf4R4YZbOpMKN0CyejaPNN41LGXHeC # UMYmBx3PkP8ADHD1J2Cr/6tjuOOCztfp+o9Nc+ZoIAkpUcA/X2gSMkgHAPUvIdto # SAHEUKiBhI6JQivRepyvWcl+JYbYbBh7pmgAXVswggeXMIIFf6ADAgECAhMzAAAA # TBtLnGPC5NN6AAAAAABMMA0GCSqGSIb3DQEBDAUAMGExCzAJBgNVBAYTAlVTMR4w # HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29m # dCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwMB4XDTI0MTEyNjE4NDg1 # OVoXDTI1MTExOTE4NDg1OVowgdsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo # aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y # cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx # JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo3ODAwLTA1RTAtRDk0NzE1MDMGA1UE # AxMsTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZSBTdGFtcGluZyBBdXRob3JpdHkw # ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDcde8XEX4HjETYu6YHtWiP # 7+6Vf2abeUo/si4NcaeiKrRMTF8F7mpCoPJyo/h5VHbhyKDZazOm1cLuzKeVEMzD # N4vuf3fZb5hSlpVlCXBSJ3YBLwLnRJtWNk+XkUMcAc96RdalToVYWltOIwbCCkjE # 42fnCafwjZajw1UGaxl4tRQNHwVk5gwC2wlVVSJREJqCSsB9TXXHIKxPHnnFJqJ/ # LI1goJ+Ve0Bar4PiKiMfnvnZ8LR3ktW24X6FDQJRKLjnJQ0JVebQEvI+q8Y/frhe # UldXeLVD4SfQNl1fLKN58o+NJsWI0ET6C8wYZc+eu+EqrzubIPXB7mKI9cbtmGHv # ztslz1K/NmRvGGQkeKEKdOWfpfRuYxmhmeVmR1QMLe5pBccJiXw7PUIW+3MB0pM5 # SBF5FH6INtT1gf5vHwBA9vbeiiggbijJMuK0qu63sIbbE/YN4iYrCURvjZampsTt # xmlEtN921N0qXNtNgU0vavdc/vJl/rDef6fMeQuJAinIHxcJzPDTsOXZlegwcCr/ # J52eij6T9szMlPSCQVAt5u/agNcJ212t6qdwZ4hYYF4LkCmXQgDPZpR1lGDCaojA # B6zy/H7nME+nnTvTgTMtR4d4lHVBQxpJDnvYNvGPurrnP7FZT3ue8YzfFEiE5chm # Jia8THexs46F8tCr8T5UxQIDAQABo4IByzCCAccwHQYDVR0OBBYEFGrqI3Sxu357 # rKTylpgwcVAF1Nw/MB8GA1UdIwQYMBaAFGtpKDo1L0hjQM972K9J6T7ZPdshMGwG # A1UdHwRlMGMwYaBfoF2GW2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv # Y3JsL01pY3Jvc29mdCUyMFB1YmxpYyUyMFJTQSUyMFRpbWVzdGFtcGluZyUyMENB # JTIwMjAyMC5jcmwweQYIKwYBBQUHAQEEbTBrMGkGCCsGAQUFBzAChl1odHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFB1Ymxp # YyUyMFJTQSUyMFRpbWVzdGFtcGluZyUyMENBJTIwMjAyMC5jcnQwDAYDVR0TAQH/ # BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwZgYD # VR0gBF8wXTBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3 # dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMAgGBmeB # DAEEAjANBgkqhkiG9w0BAQwFAAOCAgEAAFYcd7rrNVHRZWofhE4ft9YNZPVEzaQ9 # 0iE/5kCDoQlCKTE7jFYnFcfxETrL4ed8JSj0JxCZSJQVUwEp6haUSPkiSg4mf7rq # +m3qbCjHB8Dj82rsFSxAs8NqI/08Dq1Ci/rxVhryPOSZmtXRgNeJzxwDqSch50pN # BGQMU8APLSnwpqzhwRN76MK5PXYCVqm/u/v579+fFJh0bIsw49/wTcTCXh3s0C9y # 0iAmSvsJKnTfEvtfe+eS9qw2wyf2LdJ5n8klFJ6OtDg8YB9n+E+0vX1EJIDPxN2y # X7+2sJiABcUSc55jIHxPTArDdzR0YUwQIjZO0j9hIjyMbRYjgjJ4UK9ZLrvN2nUy # c0upLqKKvhAqKP1jX0FL5M0wuneZ9/SGy2ZFn/Bg8ISBOp34ri+412tOlzqR9ZU+ # CU9Xn1MqcWXvvDhTqjexxKZMVRMqGjRECQWSA62WdCGYjEOWnH5lQJqLYRhYpeAw # vjszdEAjSFtFXFLGTRw4bSKoad5TjUEvsKFO8DVPCjrbMEzGdku4znmeFddbqXR4 # 1HlunpyOLuSoC1II/Bh+aX0nU19JU79T10OFRKZDFKUI3LWB9jTdT+3EOJr/pQ5T # 0fFeei0A7UdmTgXbmP4IaCbTc41NG7KMmsmV6Xyank4qB5aSL30uegrrvnHPjQBL # LYjerGCNtQMxggdGMIIHQgIBATB4MGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMg # UlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwAhMzAAAATBtLnGPC5NN6AAAAAABMMA0G # CWCGSAFlAwQCAQUAoIIEnzARBgsqhkiG9w0BCRACDzECBQAwGgYJKoZIhvcNAQkD # MQ0GCyqGSIb3DQEJEAEEMBwGCSqGSIb3DQEJBTEPFw0yNTA4MzExODQ5MDBaMC8G # CSqGSIb3DQEJBDEiBCD+B8YKDBwelqh4UhCte6n809UvbDhMWU093B3M2QqHSzCB # uQYLKoZIhvcNAQkQAi8xgakwgaYwgaMwgaAEIN46bOoVmqp2Rt/G6TI8VIZkg7qJ # 8OddiPDqk6jY+midMHwwZaRjMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNB # IFRpbWVzdGFtcGluZyBDQSAyMDIwAhMzAAAATBtLnGPC5NN6AAAAAABMMIIDYQYL # KoZIhvcNAQkQAhIxggNQMIIDTKGCA0gwggNEMIICLAIBATCCAQmhgeGkgd4wgdsx # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p # Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNT # IEVTTjo3ODAwLTA1RTAtRDk0NzE1MDMGA1UEAxMsTWljcm9zb2Z0IFB1YmxpYyBS # U0EgVGltZSBTdGFtcGluZyBBdXRob3JpdHmiIwoBATAHBgUrDgMCGgMVAJueWs/5 # vWNYP+JGxmOfpj88ZvzBoGcwZaRjMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMg # UlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwMA0GCSqGSIb3DQEBCwUAAgUA7F7VUTAi # GA8yMDI1MDgzMTE0MDYwOVoYDzIwMjUwOTAxMTQwNjA5WjB3MD0GCisGAQQBhFkK # BAExLzAtMAoCBQDsXtVRAgEAMAoCAQACAh0fAgH/MAcCAQACAhLeMAoCBQDsYCbR # AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh # CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAGAbe4+oIVZV45LCwEvt2TWe # pgIGlrR4yT1LGpm/W5A6z/Qhi6IgDMH6x3j5erFR569Vkc10kdO9ThE63PCVc/FG # C9yyw166fHFt3HfxQ8kgLBgyIDFXRGYZs3RZ+wLXzzOxB1ZwZOsKWcyMO+gMxARi # gl0j6EXQSugkRmWDDtcFtYZ3sJ4Xfo8sQSvi07BQmKAe8fc4WYlEJHImCzRdrxGO # Itaobylbla/S+1vVkGegVXdjPKf87MJkRM7e0bJw+H+olCNe8cF/a/EsCJm6WNI7 # yoUaHcPqfRDYM6GwtX3MxFLEocJqfnSo8PL/Icwd3d4mH5ZllYF1uNqJPX/oBJMw # DQYJKoZIhvcNAQEBBQAEggIA2ofQ/pyBul/MkQ/wguQCh1hTnzlnJ8vX/rgdemQd # Mm5y4jI6v+iaWS73VavZi1lY10WMKw7IiHsXm1ihuwBI0p3+YpRcAJ1/AYnvLzHv # LH5ZNdQp3l4nKDg+1f1l3W3tD0U7DB7qf6NO+5DvzKzYUE4KNUkWiI9hAOIyrgWN # W8Js0k23w35ONQOC+xlXO05YczcQLG7yRcrgyDDG3frW8Fy/6gg9ePoLVktxwF5p # ksGz1yltg7BiqkdIkVAa2zRxY/TOyjZpeNwWi+BuTdDrC2oMWxEd8IyrrKRDBVnq # Zy4FlSUZJ36CqHc9jE/fp5gpFTDhAfSgbcXMndwCcsAbqVldE57+uXGX0RnACleP # O7Qb49fc95Iatxqf7H1j/9VIQz+rN+rHsuPA8GJ9XiwujuvttwsHqyY9Q614v36a # Lcd4sj7u1pZL/xA9FghUpzv9ZQYVcSebdDogEHFxp1FmUwdQfdRR6CMyPECfhKo3 # uVZu0nFuD7sUebIqPB/u/x+zd6+0edWmZYnv+0LHiYh75IVFMqHVij0dl/G1f+W0 # uyaecqULhaurXX77bEzfMfnLxhxdrZBD/vfIs8pZ5qUmhFAO/znNi5Yuq6sdfmMG # /BtFif3OrJB7tXDSxTub/eu2QujSRB7j/eaDSPyZbOR0yvnCZK1r6v3qQeJsXgLT # 6w8= # SIG # End signature block |