' Windows Installer database table export for use with Windows Scripting Host
' Copyright (c) Microsoft Corporation. All rights reserved.
' Demonstrates the use of the Database.Export method and MsiDatabaseExport API
'
Option Explicit

Const msiOpenDatabaseModeReadOnly     = 0

Dim shortNames:shortNames = False
Dim argCount:argCount = Wscript.Arguments.Count
Dim iArg:iArg = 0
If (argCount < 3) Then
	Wscript.Echo "Windows Installer database table export utility" &_
		vbNewLine & " 1st argument is path to MSI database (installer package)" &_
		vbNewLine & " 2nd argument is path to folder to contain the exported table(s)" &_
		vbNewLine & " Subseqent arguments are table names to export (case-sensitive)" &_
		vbNewLine & " Specify '*' to export all tables, including _SummaryInformation" &_
		vbNewLine & " Specify /s or -s anywhere before table list to force short names" &_
		vbNewLine &_
		vbNewLine & " Copyright (C) Microsoft Corporation.  All rights reserved."
	Wscript.Quit 1
End If

On Error Resume Next
Dim installer : Set installer = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError

Dim database : Set database = installer.OpenDatabase(NextArgument, msiOpenDatabaseModeReadOnly) : CheckError
Dim folder : folder = NextArgument
Dim table, view, record
While iArg < argCount
	table = NextArgument
	If table = "*" Then
		Set view = database.OpenView("SELECT `Name` FROM _Tables")
		view.Execute : CheckError
		Do
			Set record = view.Fetch : CheckError
			If record Is Nothing Then Exit Do
			table = record.StringData(1)
			Export table, folder : CheckError
		Loop
		Set view = Nothing
		table = "_SummaryInformation" 'not an actual table
		Export table, folder : Err.Clear  ' ignore if no summary information
	Else
		Export table, folder : CheckError
	End If
Wend
Wscript.Quit(0)            

Sub Export(table, folder)
	Dim file : If shortNames Then file = Left(table, 8) & ".idt" Else file = table & ".idt"
	database.Export table, folder, file
End Sub

Function NextArgument
	Dim arg, chFlag
	Do
		arg = Wscript.Arguments(iArg)
		iArg = iArg + 1
		chFlag = AscW(arg)
		If (chFlag = AscW("/")) Or (chFlag = AscW("-")) Then
			chFlag = UCase(Right(arg, Len(arg)-1))
			If chFlag = "S" Then 
				shortNames = True
			Else
				Wscript.Echo "Invalid option flag:", arg : Wscript.Quit 1
			End If
		Else
			Exit Do
		End If
	Loop
	NextArgument = arg
End Function

Sub CheckError
	Dim message, errRec
	If Err = 0 Then Exit Sub
	message = Err.Source & " " & Hex(Err) & ": " & Err.Description
	If Not installer Is Nothing Then
		Set errRec = installer.LastErrorRecord
		If Not errRec Is Nothing Then message = message & vbNewLine & errRec.FormatText
	End If
	Wscript.Echo message
	Wscript.Quit 2
End Sub

'' SIG '' Begin signature block
'' SIG '' MIIiPAYJKoZIhvcNAQcCoIIiLTCCIikCAQExDzANBglg
'' SIG '' hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
'' SIG '' BgEEAYI3AgEeMCQCAQEEEE7wKRaZJ7VNj+Ws4Q8X66sC
'' SIG '' AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
'' SIG '' VI4Hnca1EkyTrUPvd2CuA7Hjy/dDS98JnuMo4x3O0eig
'' SIG '' ggt+MIIFBjCCA+6gAwIBAgITMwAAAbMMsIBMVVRNwwAA
'' SIG '' AAABszANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV
'' SIG '' UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
'' SIG '' UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
'' SIG '' cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
'' SIG '' aWduaW5nIFBDQSAyMDEwMB4XDTE3MDcxODE3NTA0MVoX
'' SIG '' DTE4MDcxMDE3NTA0MVowfzELMAkGA1UEBhMCVVMxEzAR
'' SIG '' BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
'' SIG '' bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
'' SIG '' bjEpMCcGA1UEAxMgTWljcm9zb2Z0IFdpbmRvd3MgS2l0
'' SIG '' cyBQdWJsaXNoZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
'' SIG '' DwAwggEKAoIBAQDj/OZIi6Wkvb/7qsbk9Hzt29FnPTTx
'' SIG '' jlF1ieuIDWbFH6N67ReJ6irt/TwIaUb7UhbtnZlTv3jM
'' SIG '' CeoSn16BIu6fx5yYgCbDNigTbgDK/VtLtlPM1JhBsHSP
'' SIG '' OifMQODUGyz4ESy4iPuSjoZ3AzxCIPHowUwhLKd/OMCI
'' SIG '' 9ZH4kOCWJR7FO0G8cnzGg14YLQ+Myj1gfJUNNJ39G6J9
'' SIG '' rkkSaP3qhDDFlSEvA1LT/tDdhd80lk15lAL9XixHQWqL
'' SIG '' RuDEvsS+PtUdtvPHcd0a8SCdgwDSmRTCMcgV/+Y9XxPx
'' SIG '' ZgVhR4E+oxjb3TOsqONvPZ4okmXyegkpVGSLTKdvlaob
'' SIG '' 9at1AgMBAAGjggF6MIIBdjAfBgNVHSUEGDAWBgorBgEE
'' SIG '' AYI3CgMUBggrBgEFBQcDAzAdBgNVHQ4EFgQUEOt/BMoa
'' SIG '' ngBw73XWgdsQqAbmFkAwUQYDVR0RBEowSKRGMEQxDDAK
'' SIG '' BgNVBAsTA0FPQzE0MDIGA1UEBRMrMjI5OTAzK2ZkNmI5
'' SIG '' ZTVkLWViNzMtNDE4OS1hYmMyLWY3Y2FjZGEzODFhYzAf
'' SIG '' BgNVHSMEGDAWgBTm/F97uyIAWORyTrX0IXQjMubvrDBW
'' SIG '' BgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jv
'' SIG '' c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RT
'' SIG '' aWdQQ0FfMjAxMC0wNy0wNi5jcmwwWgYIKwYBBQUHAQEE
'' SIG '' TjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv
'' SIG '' c29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8y
'' SIG '' MDEwLTA3LTA2LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG
'' SIG '' SIb3DQEBCwUAA4IBAQCZefVnnkCvoNaNSWyXyPeQWeFb
'' SIG '' 58BqjndhUqkCTsZkcACo16vVO9MsQWsMb2JIXmXS4Znr
'' SIG '' aOE5TAb3I9x663oKc2kuJ0L3CoTBPXq6BBYT+Xy+JsWc
'' SIG '' DUqB2o2pVHOsPEabt+9vMBx6gilZpSxrUsXhctdn+xVT
'' SIG '' ssRGEkBHsDLhXnoBwQFvgZgG/PPQ4i3pina/YpS6EIet
'' SIG '' BCZy8SqkpdLojf37fgx1RAwmS29ei87ROBUGqJe+DoQu
'' SIG '' weFac/IgbLUNhIE3R06lax3fWiucaiMxIkbq3dKy9vpz
'' SIG '' iZTFTLtG9oEwXGuQRGpF8s1hN9Jww0oQzomI0LF5nVMz
'' SIG '' nU5untD8MIIGcDCCBFigAwIBAgIKYQxSTAAAAAAAAzAN
'' SIG '' BgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzAR
'' SIG '' BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
'' SIG '' bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
'' SIG '' bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
'' SIG '' aWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzA2MjA0
'' SIG '' MDE3WhcNMjUwNzA2MjA1MDE3WjB+MQswCQYDVQQGEwJV
'' SIG '' UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
'' SIG '' UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
'' SIG '' cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
'' SIG '' aWduaW5nIFBDQSAyMDEwMIIBIjANBgkqhkiG9w0BAQEF
'' SIG '' AAOCAQ8AMIIBCgKCAQEA6Q5kUHlntcTj/QkATJ6UrPdW
'' SIG '' aOpE2M/FWE+ppXZ8bUW60zmStKQe+fllguQX0o/9RJwI
'' SIG '' 6GWTzixVhL99COMuK6hBKxi3oktuSUxrFQfe0dLCiR5x
'' SIG '' lM21f0u0rwjYzIjWaxeUOpPOJj/s5v40mFfVHV1J9rIq
'' SIG '' LtWFu1k/+JC0K4N0yiuzO0bj8EZJwRdmVMkcvR3EVWJX
'' SIG '' cvhnuSUgNN5dpqWVXqsogM3Vsp7lA7Vj07IUyMHIiiYK
'' SIG '' WX8H7P8O7YASNUwSpr5SW/Wm2uCLC0h31oVH1RC5xuiq
'' SIG '' 7otqLQVcYMa0KlucIxxfReMaFB5vN8sZM4BqiU2jamZj
'' SIG '' eJPVMM+VHwIDAQABo4IB4zCCAd8wEAYJKwYBBAGCNxUB
'' SIG '' BAMCAQAwHQYDVR0OBBYEFOb8X3u7IgBY5HJOtfQhdCMy
'' SIG '' 5u+sMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsG
'' SIG '' A1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1Ud
'' SIG '' IwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1Ud
'' SIG '' HwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0
'' SIG '' LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1
'' SIG '' dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEww
'' SIG '' SgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0
'' SIG '' LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAt
'' SIG '' MDYtMjMuY3J0MIGdBgNVHSAEgZUwgZIwgY8GCSsGAQQB
'' SIG '' gjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5t
'' SIG '' aWNyb3NvZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0
'' SIG '' Lmh0bTBABggrBgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwA
'' SIG '' XwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUAbgB0
'' SIG '' AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAGnTvV08pe8QW
'' SIG '' hXi4UNMi/AmdrIKX+DT/KiyXlRLl5L/Pv5PI4zSp24G4
'' SIG '' 3B4AvtI1b6/lf3mVd+UC1PHr2M1OHhthosJaIxrwjKhi
'' SIG '' UUVnCOM/PB6T+DCFF8g5QKbXDrMhKeWloWmMIpPMdJjn
'' SIG '' oUdD8lOswA8waX/+0iUgbW9h098H1dlyACxphnY9Udum
'' SIG '' OUjJN2FtB91TGcun1mHCv+KDqw/ga5uV1n0oUbCJSlGk
'' SIG '' mmzItx9KGg5pqdfcwX7RSXCqtq27ckdjF/qm1qKmhuyo
'' SIG '' EESbY7ayaYkGx0aGehg/6MUdIdV7+QIjLcVBy78dTMgW
'' SIG '' 77Gcf/wiS0mKbhXjpn92W9FTeZGFndXS2z1zNfM8rlSy
'' SIG '' UkdqwKoTldKOEdqZZ14yjPs3hdHcdYWch8ZaV4XCv90N
'' SIG '' j4ybLeu07s8n07VeafqkFgQBpyRnc89NT7beBVaXevfp
'' SIG '' Uk30dwVPhcbYC/GO7UIJ0Q124yNWeCImNr7KsYxuqh3k
'' SIG '' hdpHM2KPpMmRM19xHkCvmGXJIuhCISWKHC1g2TeJQYkq
'' SIG '' Fg/XYTyUaGBS79ZHmaCAQO4VgXc+nOBTGBpQHTiVmx5m
'' SIG '' MxMnORd4hzbOTsNfsvU9R1O24OXbC2E9KteSLM43Wj5A
'' SIG '' QjGkHxAIwlacvyRdUQKdannSF9PawZSOB3slcUSrBmrm
'' SIG '' 1MbfI5qWdcUxghYWMIIWEgIBATCBlTB+MQswCQYDVQQG
'' SIG '' EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
'' SIG '' BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
'' SIG '' cnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29k
'' SIG '' ZSBTaWduaW5nIFBDQSAyMDEwAhMzAAABswywgExVVE3D
'' SIG '' AAAAAAGzMA0GCWCGSAFlAwQCAQUAoIIBBDAZBgkqhkiG
'' SIG '' 9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgEL
'' SIG '' MQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQg
'' SIG '' dhz/wWEP2iEm77S4KoOguv5fC14+wxC3aRFW1EY1TyIw
'' SIG '' PAYKKwYBBAGCNwoDHDEuDCxHNXYvY3pSaFFaenorRUJK
'' SIG '' Vjh4WTBNRkptLzgzSGJFYkduK3ltZUczclFNPTBaBgor
'' SIG '' BgEEAYI3AgEMMUwwSqAkgCIATQBpAGMAcgBvAHMAbwBm
'' SIG '' AHQAIABXAGkAbgBkAG8AdwBzoSKAIGh0dHA6Ly93d3cu
'' SIG '' bWljcm9zb2Z0LmNvbS93aW5kb3dzMA0GCSqGSIb3DQEB
'' SIG '' AQUABIIBAJy+F6RJAQvGtFow6eBJq51ekfl7sMv+z7ye
'' SIG '' CurTRCZvXT8ChGUcuszkFEr+QMy3ZUOfwUNukVlrCtdm
'' SIG '' G4ImVXl5oxCJW+N7X3EbOttniBX3NGSwSfY44ZOysgwo
'' SIG '' wQv7gbPF3g5bnxuoREjo5yfGDHUJoOodCR+Nm5M5DbWc
'' SIG '' YnGGz+1jpDjg0lhucVoXaLnM181G2/mO+1Y9L3d+eNzH
'' SIG '' yvz5EzqatU3H6TqLhOjShISCy/LdWPEuCR5G2+VABu1Y
'' SIG '' RSIhSGE6bYqmA40ZE39kP1WZk80MZQ5HMGfS2XaJEozn
'' SIG '' srUrWcNv5vjZK3b3PhalB/Wp561lhdPcQkqIASBADW2h
'' SIG '' ghNJMIITRQYKKwYBBAGCNwMDATGCEzUwghMxBgkqhkiG
'' SIG '' 9w0BBwKgghMiMIITHgIBAzEPMA0GCWCGSAFlAwQCAQUA
'' SIG '' MIIBPAYLKoZIhvcNAQkQAQSgggErBIIBJzCCASMCAQEG
'' SIG '' CisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQgRa/c
'' SIG '' zuoAV7lPkfS0gVSwmeHgQPy4zPYlFEJ6KYGcleECBlnO
'' SIG '' zVzrmxgTMjAxNzA5MzAwMjI1MDUuMTg5WjAHAgEBgAIB
'' SIG '' 9KCBuKSBtTCBsjELMAkGA1UEBhMCVVMxEzARBgNVBAgT
'' SIG '' Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
'' SIG '' BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEMMAoG
'' SIG '' A1UECxMDQU9DMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBF
'' SIG '' U046MERFOC0yREM1LTNDQTkxJTAjBgNVBAMTHE1pY3Jv
'' SIG '' c29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wggg7NMIIGcTCC
'' SIG '' BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsF
'' SIG '' ADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
'' SIG '' bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
'' SIG '' FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp
'' SIG '' TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y
'' SIG '' aXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcNMjUwNzAx
'' SIG '' MjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
'' SIG '' V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
'' SIG '' A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD
'' SIG '' VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx
'' SIG '' MDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
'' SIG '' AKkdDbx3EYo6IOz8E5f1+n9plGt0VBDVpQoAgoX77Xxo
'' SIG '' SyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEw
'' SIG '' WbEwRA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq
'' SIG '' 9UeBzb8kYDJYYEbyWEeGMoQedGFnkV+BVLHPk0ySwcSm
'' SIG '' XdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx
'' SIG '' Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9
'' SIG '' buWayrGo8noqCjHw2k4GkbaICDXoeByw6ZnNPOcvRLqn
'' SIG '' 9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEAAaOC
'' SIG '' AeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQW
'' SIG '' BBTVYzpcijGQ80N7fEYbxTNoWoVtVTAZBgkrBgEEAYI3
'' SIG '' FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD
'' SIG '' VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+ii
'' SIG '' XGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVo
'' SIG '' dHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9w
'' SIG '' cm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j
'' SIG '' cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5o
'' SIG '' dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRz
'' SIG '' L01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYD
'' SIG '' VR0gAQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYI
'' SIG '' KwYBBQUHAgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
'' SIG '' bS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB
'' SIG '' BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBj
'' SIG '' AHkAXwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZI
'' SIG '' hvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOhIW+z
'' SIG '' 66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj
'' SIG '' +bzta1RXCCtRgkQS+7lTjMz0YBKKdsxAQEGb3FwX/1z5
'' SIG '' Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlKkVIArzgP
'' SIG '' F/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8
'' SIG '' tv0E4XCfMkon/VWvL/625Y4zu2JfmttXQOnxzplmkIz/
'' SIG '' amJ/3cVKC5Em4jnsGUpxY517IW3DnKOiPPp/fZZqkHim
'' SIG '' bdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl
'' SIG '' 5WTs9/S/fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5H
'' SIG '' moDF0M2n0O99g/DhO3EJ3110mCIIYdqwUB5vvfHhAN/n
'' SIG '' MQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL
'' SIG '' 2IK0cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt
'' SIG '' 6o3gMy4SKfXAL1QnIffIrE7aKLixqduWsqdCosnPGUFN
'' SIG '' 4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ
'' SIG '' cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9Y
'' SIG '' BS7vDaBQNdrvCScc1bN+NR4Iuto229Nfj950iEkSMIIE
'' SIG '' 2TCCA8GgAwIBAgITMwAAAKb9UuCLFic/AAAAAAAApjAN
'' SIG '' BgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEG
'' SIG '' A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
'' SIG '' ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
'' SIG '' MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ
'' SIG '' Q0EgMjAxMDAeFw0xNjA5MDcxNzU2NTFaFw0xODA5MDcx
'' SIG '' NzU2NTFaMIGyMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
'' SIG '' V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
'' SIG '' A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQwwCgYD
'' SIG '' VQQLEwNBT0MxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVT
'' SIG '' TjowREU4LTJEQzUtM0NBOTElMCMGA1UEAxMcTWljcm9z
'' SIG '' b2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCASIwDQYJKoZI
'' SIG '' hvcNAQEBBQADggEPADCCAQoCggEBAMG4zZ4JJ7Rwi4X/
'' SIG '' HVpI0cDm52Fw9T2qVFvA3dWywBDrrkSaXKGJqa9hxVP0
'' SIG '' Amz9v2zL0fOSmhKgEW2FNz5x3dGg75oh3dhbJoOQDyZ/
'' SIG '' jR4e4+MkGy0y0bTvt8DNCkfY4E81x7sEOEUma2+o4oUm
'' SIG '' s43097O8WfAiGJj/VzQYG07RtO/Y7iqIbf3+HxVdKYFr
'' SIG '' djkwxf99I6JEdBizCDTJucjXzYzvUU3g8w/vOrQt0rMl
'' SIG '' +b9kkxdUL+/IUWOVJbEso0hxyGeqcYfY16/K5xudoDky
'' SIG '' xaZvahvVGHWUqap5Wazf247Sykmcd0Gq2DA5ZuSReNTt
'' SIG '' J+mXw35ZRPotuWpxA90CAwEAAaOCARswggEXMB0GA1Ud
'' SIG '' DgQWBBQO4cVDySYb3MuHu9xMZtcGvNHAJjAfBgNVHSME
'' SIG '' GDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8E
'' SIG '' TzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5j
'' SIG '' b20vcGtpL2NybC9wcm9kdWN0cy9NaWNUaW1TdGFQQ0Ff
'' SIG '' MjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoG
'' SIG '' CCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j
'' SIG '' b20vcGtpL2NlcnRzL01pY1RpbVN0YVBDQV8yMDEwLTA3
'' SIG '' LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG
'' SIG '' CCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQCEICeh
'' SIG '' Bui41vySOspI1p3L0JaOswTayK6EX6s6ovTatWJWLwrB
'' SIG '' so8+tx8sYFp1Is5Hkd9BetmekDQro1gDDcOGxpbVuoXR
'' SIG '' 42O0GVG9Z482ZezWGSaXB4z6Vpf+zFwZbXcGWOnRC68a
'' SIG '' qwsU908JUMMZa5jMIeMlhtZBN+tlLdlsbI9H/xdPvaVQ
'' SIG '' NqOrwtx1cOFhWu9BGyoD0QZ5XsqmQxirV0STgcDrQqgT
'' SIG '' BdQYOJxbJjbcleszpbRwmvy9nW+kB6TfHkKnDzu5QbG2
'' SIG '' S7+EEkXZbs9YfLbjawuuAAbWpJa7ZxEvO1Dpkmz1mlnI
'' SIG '' h+SvZL5VLDNwNh+L9OrmnAE9pDsvoYIDdzCCAl8CAQEw
'' SIG '' geKhgbikgbUwgbIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
'' SIG '' EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
'' SIG '' HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDDAK
'' SIG '' BgNVBAsTA0FPQzEnMCUGA1UECxMebkNpcGhlciBEU0Ug
'' SIG '' RVNOOjBERTgtMkRDNS0zQ0E5MSUwIwYDVQQDExxNaWNy
'' SIG '' b3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiUKAQEwCQYF
'' SIG '' Kw4DAhoFAAMVAH+gMGx8o+rq8oEE0zWi59zi1IU9oIHB
'' SIG '' MIG+pIG7MIG4MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
'' SIG '' V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
'' SIG '' A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQwwCgYD
'' SIG '' VQQLEwNBT0MxJzAlBgNVBAsTHm5DaXBoZXIgTlRTIEVT
'' SIG '' TjoyNjY1LTRDM0YtQzVERTErMCkGA1UEAxMiTWljcm9z
'' SIG '' b2Z0IFRpbWUgU291cmNlIE1hc3RlciBDbG9jazANBgkq
'' SIG '' hkiG9w0BAQUFAAIFAN15dP4wIhgPMjAxNzA5MzAwMTQy
'' SIG '' MjJaGA8yMDE3MTAwMTAxNDIyMlowdzA9BgorBgEEAYRZ
'' SIG '' CgQBMS8wLTAKAgUA3Xl0/gIBADAKAgEAAgIHyAIB/zAH
'' SIG '' AgEAAgIY3jAKAgUA3XrGfgIBADA2BgorBgEEAYRZCgQC
'' SIG '' MSgwJjAMBgorBgEEAYRZCgMBoAowCAIBAAIDFuNgoQow
'' SIG '' CAIBAAIDB6EgMA0GCSqGSIb3DQEBBQUAA4IBAQBJJte2
'' SIG '' js/y9f22bll29V2DPdsUdGW3pHv3TyRQwesQT0gPXhEd
'' SIG '' sOHYm9cwImp02ZIBEXb7TfvfjEkPSafebUXLEi966W/y
'' SIG '' n4/tr0XmTQrWrezy9CKn6iKi44taZTEMzU93bJhKd/gD
'' SIG '' 4FWi+LMhtCNSjZX2Gyi7VCG5Cz2o8Yx+T7/pCTi8Zqzq
'' SIG '' VAw/yXwUIP3uskw4m8VwHyVeoihnu3LPlM2NBP92plYW
'' SIG '' RcDuL09f1mhMNaN/gzbAJ88ZLKfRwVGT2c0qtx+JzvU0
'' SIG '' CR6TM/pzJSlOGx5VHTjePVjOBuAbCt037rNTZrFOKLRR
'' SIG '' YBgg/d1BOnCww0BXmCJlV5WNQ9hCMYIC9TCCAvECAQEw
'' SIG '' gZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
'' SIG '' bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
'' SIG '' FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMd
'' SIG '' TWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMA
'' SIG '' AACm/VLgixYnPwAAAAAAAKYwDQYJYIZIAWUDBAIBBQCg
'' SIG '' ggEyMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAv
'' SIG '' BgkqhkiG9w0BCQQxIgQgmOZ4VIEBKPH+BxPqSWq1/5kk
'' SIG '' ihe9p9bMm0d4fB4wGA0wgeIGCyqGSIb3DQEJEAIMMYHS
'' SIG '' MIHPMIHMMIGxBBR/oDBsfKPq6vKBBNM1oufc4tSFPTCB
'' SIG '' mDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX
'' SIG '' YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
'' SIG '' VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV
'' SIG '' BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
'' SIG '' AhMzAAAApv1S4IsWJz8AAAAAAACmMBYEFNvJ1RiGKEZt
'' SIG '' ajh5uCAaFYOKZDHnMA0GCSqGSIb3DQEBCwUABIIBAJHG
'' SIG '' 5RDvEhnx74OyhsXSlUDPcnwwJkHYNLZyilmXoLhhF97t
'' SIG '' kFMNp/6l06geIwXjQLmL6zKM8fx3X/Js3YkCiDHxZxy5
'' SIG '' VOY80c79zPKxiWKG3MgqL499XEYTKHaYRIIKxEN49bS6
'' SIG '' imVsGFvXI0B72vg+hoT36AxZzJEBK66Ex9pL+S4WEMGD
'' SIG '' cykSpEs5a1L7EtTmJf2vBfay+9+u6qj+vDz2k26pSF8o
'' SIG '' x4jIZ9gCQpgWvQVdizBNvX8+9xtzip5pqUvgdekHMCDZ
'' SIG '' W21Z+N6gbCGIhde0lC9Btr0ZEqR60qWCOHfGxHY2Btva
'' SIG '' xLgSha90toMCY943q0WqnxRl3qkoK8c=
'' SIG '' End signature block
