Files

452 lines
17 KiB
Plaintext

'///////////////////////////////////////////////////////
' OSD_BaseVariables
'///////////////////////////////////////////////////////
'08.19.09 | v1.0.0.0 | MICHS & BENSHY
'///////////////////////////////////////////////////////
Option Explicit
' ############################################################ CONST
Const TsXmlVarName = "_SMSTSTaskSequence"
Const TsBaseVarName = "BaseVariableName"
Const TsSaveVarName = "OSDBaseVariableName"
Const TsAppsVarName = "TsApplicationBaseVariable"
Const OSDBrandingArea = "HKLM\SOFTWARE\Microsoft\MPSD\OSD"
' ############################################################ GLOBAL
Dim TsBaseValue
Dim TsAppsBaseValue
Dim oTSE
Dim oXML
Dim oWSH
Dim oWMI
' ############################################################ MAIN BEGIN
PrintTitle("Initializing Objects")
If (SetObjects = false) Then QuitScript( 100 )
PrintTitle("Extracting TS Base Variable")
If (GetBaseVariableName = false) Then QuitScript( 200 )
PrintTitle("Extracting Package Names")
If (GetPackageNames = false) Then QuitScript( 300 )
PrintTitle("Script Completed Successfully!")
QuitScript ( 0 )
' ############################################################ MAIN END
' /////////////////////////////////////////////////////////
' Initialize/Set Objects
' /////////////////////////////////////////////////////////
Function SetObjects
SetObjects = true
On Error Resume Next
Err.Number = 0
SET oTSE = CreateObject("Microsoft.SMS.TSEnvironment")
SET oXML = CreateObject("Microsoft.XMLDOM")
SET oWSH = CreateObject("WScript.Shell")
SET oWMI = GetObject( "winmgmts:{impersonationLevel=impersonate}!\\.\root\ccm\Policy\Machine" )
if (Err.Number <> 0) Then
SetObjects = false
wscript.echo " --| Error: [" & Err.Number & "]"
wscript.echo " --| Description: [" & Err.Description & "]"
End If
On Error Goto 0
End Function
' /////////////////////////////////////////////////////////
' Return Base Variable Name
' /////////////////////////////////////////////////////////
Function GetBaseVariableName
GetBaseVariableName = true
Dim xmlString
Dim nodeList
On Error Resume Next
Err.Number = 0
Wscript.Echo "Reading OSD variable: [" & TsXmlVarName & "]"
xmlString = oTSE(TsXmlVarName)
If (Len(xmlString)=0) Then
Wscript.Echo "Failed to read OSD variable, or value is empty."
GetBaseVariableName = false
Exit Function
End If
wscript.Echo "Loading XML from variable string content..."
if (oXML.LoadXml( xmlString ) = false) Then
Wscript.Echo "Failed to load XML from string (OSD variable)."
GetBaseVariableName = false
Exit Function
End If
wscript.Echo "Using XPATH to query for [" & TsBaseVarName & "]"
TsBaseValue = ""
'TsBaseValue = oXML.selectSingleNode( "//variable[@name='" & TsBaseVarName & "']" ).Text
Set nodeList = oXML.selectNodes( "//variable[@name='" & TsBaseVarName & "']" )
TsBaseValue = nodeList.item(0).text
TsAppsBaseValue = nodeList.item(1).text
If (Len(TsBaseValue)=0) Then
Wscript.Echo "Failed to read XPATH query value, or value is empty."
GetBaseVariableName = false
Exit Function
End If
wscript.echo "Extracted XPATH variable name: [" & TsBaseValue & "]"
wscript.Echo "Setting new variable: [" & TsSaveVarName & "] = [" & TsBaseValue & "]"
oTSE( TsSaveVarName ) = TsBaseValue
oTSE( TsAppsVarName ) = TsAppsBaseValue
If (Err.Number <> 0) Then
GetBaseVariableName = false
wscript.echo " --| Error: [" & Err.Number & "]"
wscript.echo " --| Description: [" & Err.Description & "]"
End If
On Error Goto 0
End Function
' /////////////////////////////////////////////////////////
' Get Package Names
' /////////////////////////////////////////////////////////
Function GetPackageNames
GetPackageNames = true
Dim numItem
Dim numItemString
Dim itemFound
numItem = 0
numItemString = ""
itemFound = true
Do
Dim nameBuilder
Dim nameValue
numItem = numItem + 1
If (numItem<10) Then
numItemString = "00" & numItem
ElseIf (numItem<100) Then
numItemString = "0" & numItem
Else
numItemString = numItem
End If
nameBuilder = TsBaseValue & numItemString
wscript.echo "Checking for registry entry name: [" & nameBuilder & "]"
nameValue = oTSE( nameBuilder )
wscript.echo " --| Value: [" & nameValue & "]"
If ( len(nameValue) = 0 ) Then
wscript.echo " --| Item not found."
itemFound = false
Else
Dim wmiValue
wmiValue = GetPackageName( nameValue )
nameBuilder = nameBuilder & "Name"
oTSE( nameBuilder ) = wmiValue
wscript.echo " --| Set OSD variable [" & nameBuilder & "] equal to [" & wmiValue & "]"
End If
Loop Until (itemFound = false)
End Function
' /////////////////////////////////////////////////////////
' Get Package Name from WMI
' /////////////////////////////////////////////////////////
Function GetPackageName( thePackageProgram )
Dim PackageID
Dim PackageName
Dim splitArray
splitArray = Split( thePackageProgram, ":" )
PackageID =( splitArray(0) )
Dim WMICollection
Dim WMIItem
On Error Resume Next
Err.Number = 0
wscript.echo " --| Running WMI Query..."
SET WMICollection = oWMI.ExecQuery( "Select * from CCM_SoftwareDistribution where PKG_PackageID='" & PackageID & "'" )
GetPackageName = ""
For Each WMIItem in WMICollection
GetPackageName = WMIItem.PKG_Name
wscript.echo " --| Found: [" & GetPackageName & "]"
Next
If (Err.Number <> 0) Then
GetPackageName = ""
wscript.echo " --| Error: [" & Err.Number & "]"
wscript.echo " --| Description: [" & Err.Description & "]"
End If
On Error Goto 0
End Function
' /////////////////////////////////////////////////////////
' Print Title
' /////////////////////////////////////////////////////////
Sub PrintTitle( theTitle )
wscript.echo "--------------------------------"
wscript.echo theTitle
wscript.echo "--------------------------------"
wscript.echo ""
End Sub
' /////////////////////////////////////////////////////////
' Quit Script
' /////////////////////////////////////////////////////////
Sub QuitScript( theExitCode )
wscript.echo "--------------------------------"
wscript.echo " Exiting with [" & theExitCode & "]"
wscript.echo "--------------------------------"
wscript.Quit( theExitCode )
End Sub
'' SIG '' Begin signature block
'' SIG '' MIIaWgYJKoZIhvcNAQcCoIIaSzCCGkcCAQExCzAJBgUr
'' SIG '' DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
'' SIG '' gjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIBAAIB
'' SIG '' AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFM1lvtpCJvwC
'' SIG '' dzqKW/7u30lyLsfFoIIVNjCCBKkwggORoAMCAQICEzMA
'' SIG '' AACIWQ48UR/iamcAAQAAAIgwDQYJKoZIhvcNAQEFBQAw
'' SIG '' eTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
'' SIG '' b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
'' SIG '' Y3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
'' SIG '' cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwHhcNMTIwNzI2
'' SIG '' MjA1MDQxWhcNMTMxMDI2MjA1MDQxWjCBgzELMAkGA1UE
'' SIG '' BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
'' SIG '' BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
'' SIG '' b3Jwb3JhdGlvbjENMAsGA1UECxMETU9QUjEeMBwGA1UE
'' SIG '' AxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkq
'' SIG '' hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3R00II8h6ea
'' SIG '' 1I6yBEKAlyUu5EHOk2M2XxPytHiYgMYofsyKE+89N4w7
'' SIG '' CaDYFMVcXtipHX8BwbOYG1B37P7qfEXPf+EhDsWEyp8P
'' SIG '' a7MJOLd0xFcevvBIqHla3w6bHJqovMhStQxpj4TOcVV7
'' SIG '' /wkgv0B3NyEwdFuV33fLoOXBchIGPfLIVWyvwftqFifI
'' SIG '' 9bNh49nOGw8e9OTNTDRsPkcR5wIrXxR6BAf11z2L22d9
'' SIG '' Vz41622NAUCNGoeW4g93TIm6OJz7jgKR2yIP5dA2qbg3
'' SIG '' RdAq/JaNwWBxM6WIsfbCBDCHW8PXL7J5EdiLZWKiihFm
'' SIG '' XX5/BXpzih96heXNKBDRPQIDAQABo4IBHTCCARkwEwYD
'' SIG '' VR0lBAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFCZbPltd
'' SIG '' ll/i93eIf15FU1ioLlu4MA4GA1UdDwEB/wQEAwIHgDAf
'' SIG '' BgNVHSMEGDAWgBTLEejK0rQWWAHJNy4zFha5TJoKHzBW
'' SIG '' BgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jv
'' SIG '' c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RT
'' SIG '' aWdQQ0FfMDgtMzEtMjAxMC5jcmwwWgYIKwYBBQUHAQEE
'' SIG '' TjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv
'' SIG '' c29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8w
'' SIG '' OC0zMS0yMDEwLmNydDANBgkqhkiG9w0BAQUFAAOCAQEA
'' SIG '' D95ASYiR0TE3o0Q4abJqK9SR+2iFrli7HgyPVvqZ18qX
'' SIG '' J0zohY55aSzkvZY/5XBml5UwZSmtxsqs9Q95qGe/afQP
'' SIG '' l+MKD7/ulnYpsiLQM8b/i0mtrrL9vyXq7ydQwOsZ+Bpk
'' SIG '' aqDhF1mv8c/sgaiJ6LHSFAbjam10UmTalpQqXGlrH+0F
'' SIG '' mRrc6GWqiBsVlRrTpFGW/VWV+GONnxQMsZ5/SgT/w2at
'' SIG '' Cq+upN5j+vDqw7Oy64fbxTittnPSeGTq7CFbazvWRCL0
'' SIG '' gVKlK0MpiwyhKnGCQsurG37Upaet9973RprOQznoKlPt
'' SIG '' z0Dkd4hCv0cW4KU2au+nGo06PTME9iUgIzCCBLowggOi
'' SIG '' oAMCAQICCmECjkIAAAAAAB8wDQYJKoZIhvcNAQEFBQAw
'' SIG '' dzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
'' SIG '' b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
'' SIG '' Y3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWlj
'' SIG '' cm9zb2Z0IFRpbWUtU3RhbXAgUENBMB4XDTEyMDEwOTIy
'' SIG '' MjU1OFoXDTEzMDQwOTIyMjU1OFowgbMxCzAJBgNVBAYT
'' SIG '' AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
'' SIG '' EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
'' SIG '' cG9yYXRpb24xDTALBgNVBAsTBE1PUFIxJzAlBgNVBAsT
'' SIG '' Hm5DaXBoZXIgRFNFIEVTTjpGNTI4LTM3NzctOEE3NjEl
'' SIG '' MCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
'' SIG '' dmljZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
'' SIG '' ggEBAJbsjkdNVMJclYDXTgs9v5dDw0vjYGcRLwFNDNjR
'' SIG '' Ri8QQN4LpFBSEogLQ3otP+5IbmbHkeYDym7sealqI5vN
'' SIG '' Yp7NaqQ/56ND/2JHobS6RPrfQMGFVH7ooKcsQyObUh8y
'' SIG '' NfT+mlafjWN3ezCeCjOFchvKSsjMJc3bXREux7CM8Y9D
'' SIG '' SEcFtXogC+Xz78G69LPYzTiP+yGqPQpthRfQyueGA8Az
'' SIG '' g7UlxMxanMTD2mIlTVMlFGGP+xvg7PdHxoBF5jVTIzZ3
'' SIG '' yrDdmCs5wHU1D92BTCE9djDFsrBlcylIJ9jC0rCER7t4
'' SIG '' utV0A97XSxn3U9542ob3YYgmM7RHxqBUiBUrLHUCAwEA
'' SIG '' AaOCAQkwggEFMB0GA1UdDgQWBBQv6EbIaNNuT7Ig0N6J
'' SIG '' TvFH7kjB8jAfBgNVHSMEGDAWgBQjNPjZUkZwCu1A+3b7
'' SIG '' syuwwzWzDzBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
'' SIG '' Y3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0
'' SIG '' cy9NaWNyb3NvZnRUaW1lU3RhbXBQQ0EuY3JsMFgGCCsG
'' SIG '' AQUFBwEBBEwwSjBIBggrBgEFBQcwAoY8aHR0cDovL3d3
'' SIG '' dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3Nv
'' SIG '' ZnRUaW1lU3RhbXBQQ0EuY3J0MBMGA1UdJQQMMAoGCCsG
'' SIG '' AQUFBwMIMA0GCSqGSIb3DQEBBQUAA4IBAQBz/30unc2N
'' SIG '' iCt8feNeFXHpaGLwCLZDVsRcSi1o2PlIEZHzEZyF7BLU
'' SIG '' VKB1qTihWX917sb1NNhUpOLQzHyXq5N1MJcHHQRTLDZ/
'' SIG '' f/FAHgybgOISCiA6McAHdWfg+jSc7Ij7VxzlWGIgkEUv
'' SIG '' XUWpyI6zfHJtECfFS9hvoqgSs201I2f6LNslLbldsR4F
'' SIG '' 50MoPpwFdnfxJd4FRxlt3kmFodpKSwhGITWodTZMt7MI
'' SIG '' qt+3K9m+Kmr93zUXzD8Mx90Gz06UJGMgCy4krl9DRBJ6
'' SIG '' XN0326RFs5E6Eld940fGZtPPnEZW9EwHseAMqtX21Tyi
'' SIG '' 4LXU+Bx+BFUQaxj0kc1Rp5VlMIIFvDCCA6SgAwIBAgIK
'' SIG '' YTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYK
'' SIG '' CZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJ
'' SIG '' bWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9v
'' SIG '' dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx
'' SIG '' MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQG
'' SIG '' EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
'' SIG '' BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
'' SIG '' cnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29k
'' SIG '' ZSBTaWduaW5nIFBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
'' SIG '' ggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBCmXZTbD4b
'' SIG '' 1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1
'' SIG '' VwqJyq4gSfTwaKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNE
'' SIG '' f9eB2/O98jakyVxF3K+tPeAoaJcap6Vyc1bxF5Tk/TWU
'' SIG '' cqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2
'' SIG '' L1TdFDBZ+NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049
'' SIG '' oDI9kM2hOAaFXE5WgigqBTK3S9dPY+fSLWLxRT3nrAgA
'' SIG '' 9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzB
'' SIG '' rAlfA9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMB
'' SIG '' Af8wHQYDVR0OBBYEFMsR6MrStBZYAck3LjMWFrlMmgof
'' SIG '' MAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB
'' SIG '' MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+m
'' SIG '' PLzYLTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAf
'' SIG '' BgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnkpDBQ
'' SIG '' BgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jv
'' SIG '' c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNyb3Nv
'' SIG '' ZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQG
'' SIG '' CCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
'' SIG '' b20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNy
'' SIG '' dDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+fyZGr+tvQLEy
'' SIG '' tWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAh
'' SIG '' Xaw9L0y6oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6Wc
'' SIG '' IC36C1DEVs0t40rSvHDnqA2iA6VW4LiKS1fylUKc8fPv
'' SIG '' 7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WR
'' SIG '' Tsgb0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZE
'' SIG '' olHN+emjWFbdmwJFRC9f9Nqu1IIybvyklRPk62nnqaIs
'' SIG '' vsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ
'' SIG '' NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxP
'' SIG '' bQ4TTj18KUicctHzbMrB7HCjV5JXfZSNoBtIA1r3z6Nn
'' SIG '' CnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDordEN5k
'' SIG '' 9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7
'' SIG '' B2BHZWBATrBC7E7ts3Z52Ao0CW0cgDEf4g5U3eWh++VH
'' SIG '' EK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jshrg1cnPCi
'' SIG '' roZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONx
'' SIG '' PdcAfmJH0c6IybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3
'' SIG '' UAjWwz0wggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0G
'' SIG '' CSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNj
'' SIG '' b20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTAr
'' SIG '' BgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRl
'' SIG '' IEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0
'' SIG '' MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
'' SIG '' EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
'' SIG '' HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf
'' SIG '' BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCC
'' SIG '' ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+h
'' SIG '' bLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0Uyt
'' SIG '' dDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4E
'' SIG '' mPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
'' SIG '' CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM
'' SIG '' 5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0
'' SIG '' RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E7VV4
'' SIG '' /gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OT
'' SIG '' oWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAasw
'' SIG '' ggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0
'' SIG '' +NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQ
'' SIG '' BgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQO
'' SIG '' rIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmS
'' SIG '' JomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1p
'' SIG '' Y3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg
'' SIG '' Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxz
'' SIG '' WPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9j
'' SIG '' cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz
'' SIG '' L21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcB
'' SIG '' AQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
'' SIG '' cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9v
'' SIG '' dENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0G
'' SIG '' CSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK132855
'' SIG '' UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ
'' SIG '' 3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji
'' SIG '' 8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZ
'' SIG '' Lg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/
'' SIG '' 4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tO
'' SIG '' i3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLa
'' SIG '' FJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpi
'' SIG '' Ke+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0
'' SIG '' NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCe
'' SIG '' FTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a
'' SIG '' 6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZh
'' SIG '' tG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0t
'' SIG '' r1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
'' SIG '' E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kL
'' SIG '' fchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj
'' SIG '' /TGCBJAwggSMAgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMw
'' SIG '' EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
'' SIG '' b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
'' SIG '' b24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25p
'' SIG '' bmcgUENBAhMzAAAAiFkOPFEf4mpnAAEAAACIMAkGBSsO
'' SIG '' AwIaBQCggbIwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcC
'' SIG '' AQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUw
'' SIG '' IwYJKoZIhvcNAQkEMRYEFIaIdxnyg8YownJSpJ4e+JiZ
'' SIG '' WAjoMFIGCisGAQQBgjcCAQwxRDBCoCSAIgBNAEQAVAAg
'' SIG '' AFUARABJAHYAMwAgAFQAbwBvAGwAawBpAHShGoAYaHR0
'' SIG '' cDovL3d3dy5taWNyb3NvZnQuY29tMA0GCSqGSIb3DQEB
'' SIG '' AQUABIIBAG2vyx+gB1gZiwg9ihHwDcxxYSl29KK/QYec
'' SIG '' D3yUBiHaLyswe+Kj3rjhmBBpmqomuIaAYBuAjU/zFOh7
'' SIG '' kTpAtQShMBXi8D34OCJhtnxSQZ/uAVxjrMtQMAB7drBJ
'' SIG '' 5nLl6J4CGdgDKZvhMvzjgImiV2DXs5KD5DmGvRhFDyFT
'' SIG '' IJOYT7JW/mJJ4megY596d09d0xjh96X2ROVQJeD7AIMu
'' SIG '' 6t70p5iQEOs4wzzcst1PuAxSF8mRBXZmYn/02JuA0wB1
'' SIG '' r0TgZ0Jt5+fC+OAji9V4Ra15zNeieLXWyvF/BoKVMqGV
'' SIG '' qSQg95GgIiV1+g+xvmwTwCDHN/3qhy6WyYImpwOWG9mh
'' SIG '' ggIfMIICGwYJKoZIhvcNAQkGMYICDDCCAggCAQEwgYUw
'' SIG '' dzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
'' SIG '' b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
'' SIG '' Y3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWlj
'' SIG '' cm9zb2Z0IFRpbWUtU3RhbXAgUENBAgphAo5CAAAAAAAf
'' SIG '' MAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI
'' SIG '' hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMjA4MzAxOTU3
'' SIG '' MDJaMCMGCSqGSIb3DQEJBDEWBBRFyGBmKO7SktsHezZf
'' SIG '' GAObldeaQjANBgkqhkiG9w0BAQUFAASCAQAhMhrgVtbI
'' SIG '' YPdUN0H3KAp5amE80vyqL0jrmNaDk4T3+UEBqwn2HIIj
'' SIG '' VXI/dst29HjF1e/zGi9/vqowik4s8u1paDEF5JA/esGX
'' SIG '' wH/cIX0eBUa+k4o9HbUL8xfWpk0hKMRJDS0dXDPnF7vb
'' SIG '' 4amUrzhyIq7huF5KRakUaG/oCKWV4ANmfL8HBcmrpUmW
'' SIG '' Yd00NFLLLH/R+k1yDXuDcEvKk27ZA5aqbKxBsQvLRvbp
'' SIG '' Eu1iYLrbd1TO0DLKoWXPREJROHVXuXOmW+MtTeGA4Byn
'' SIG '' 52YSQTy8+Toj1t0ApBtwmT/jKpvzMAspjdWDoI7o+cgG
'' SIG '' cxAPaH0me25jcbsR0JhUkDkc
'' SIG '' End signature block