'Creates a self-extracting VBS file slightly more than twice 'the size of the original file. The created file will be named 'the same as the source file except for an additional VBS 'extension. For example, "test.gif" would create "test.gif.vbs". 'When run, the self-extracting VBS file will create the original 'file in the same directory as the VBS file. Dim fs, ts, wsh Dim blnScriptCreated, blnQ193998Created Dim strFunctionName, strLine, strScriptFile, strQ193998File Dim varByteArray Dim intPos, intPercent, lngCounter Const BYTES_PER_LINE = 256 Const ForWriting = 2 Set wsh = CreateObject("Wscript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") 'Verify we have a good argument If WScript.Arguments.Count <> 1 Then WScript.Echo "Drop a file on me. I will create a VBS self-extractor." WScript.Quit 1 End If If Not fs.FileExists(WScript.Arguments(0)) Then WScript.Echo "The argument you supplied does not exist as a file." WScript.Quit 1 End If 'Use ADO if available, otherwise create and use Q193998 If IsRegistered("ADODB.Stream") Then 'Base the name of the function we'll create on the source file, but clean it up first For intCounter = 1 To Len(fs.GetBaseName(WScript.Arguments(0))) If InStr("QWERTYUIOPASDFGHJKLZXCVBNM1234567890", Ucase(Mid(fs.GetBaseName(WScript.Arguments(0)), intCounter, 1))) <> 0 Then strFunctionName = strFunctionName & Mid(fs.GetBaseName(WScript.Arguments(0)), intCounter, 1) End If Next If strFunctionName = "" Then strFunctionName = "File" strFunctionName = UCase(Left(strFunctionName, 1)) & LCase(Mid(strFunctionName, 2)) strFunctionName = "Create" & strFunctionName 'Read the source file varByteArray = ReadByteArray(WScript.Arguments(0)) 'Begin writing the output file Set ts = fs.OpenTextFile(WScript.Arguments(0) & ".vbs", ForWriting, True) ts.WriteLine "'This script will create a file named """ & fs.GetFileName(WScript.Arguments(0)) & """" ts.WriteLine "" ts.WriteLine strFunctionName & " " & "Left(Wscript.ScriptFullName, InStrRev(WScript.ScriptFullName, ""\"")) & """ & fs.GetFileName(WScript.Arguments(0)) & """" ts.WriteLine "" ts.WriteLine "Sub " & strFunctionName & "(strOutFile)" ts.WriteLine "Dim ts, x" ts.WriteLine "If Instr(strOutFile, ""\"") = 0 Then strOutFile = Left(Wscript.ScriptFullName, InStrRev(WScript.ScriptFullName, ""\"")) & strOutFile" ts.WriteLine vbTab & "Set ts = CreateObject(""Scripting.FileSystemObject"").OpenTextFile(strOutFile, 2, True)" ts.WriteLine vbTab & "On Error Resume Next" ts.Write vbTab & "For x = 1 To " & (BYTES_PER_LINE * 2) - 1 & " Step 2 : ts.Write Chr(Clng(""&H"" & Mid(" intPercent = 0 'Now read every byte in the file and spit out hex strLine = "" For lngCounter = 1 to UBound(varByteArray) + 1 strLine = strLine & Right("00" & Hex(Ascb(Midb(varByteArray,lngCounter,1))), 2) If lngCounter Mod BYTES_PER_LINE = 0 Then 'Outside quote the string strLine = """" & strLine & """" 'Now write the accumulated data line ts.WriteLine strLine & ",x,2))) : Next" strLine = "" If lngCounter <> UBound(varByteArray) + 1 Then ts.Write vbTab & "For x = 1 To " & (BYTES_PER_LINE * 2) - 1 & " Step 2 : ts.Write Chr(Clng(""&H"" & Mid(" End If 'Show progress If Cint(100 * lngCounter / UBound(varByteArray)) <> intPercent Then intPercent = Cint(100 * lngCounter / UBound(varByteArray)) If Lcase(Right(Wscript.FullName, 12)) = "\cscript.exe" Then 'Text output if host is CSCRIPT intPercent = Cint(100 * lngCounter / UBound(varByteArray)) WScript.Echo intPercent & "%" End If End If End If Next If strLine <> "" Then 'Outside quote the string strLine = """" & strLine & """" 'Now write the accumulated data line ts.WriteLine strLine & ",x,2))) : Next" End If ts.WriteLine vbTab & "ts.Close" ts.WriteLine "End Sub" ts.Close Else 'Create and register the Q193998 OCX file If IsRegistered("q193998.BinRead") Then blnQ193998Created = False Else strQ193998File = fs.GetAbsolutePathName(WScript.ScriptFullName & "\..\q193998.ocx") CreateQ193998 strQ193998File RegisterServer strQ193998File blnQ193998Created = True End If 'Create a working script (Q193998 script must be a separate process) strScriptFile = fs.GetAbsolutePathName(WScript.ScriptFullName & "\..\~sfx.vbs") If fs.FileExists(strScriptFile) Then blnScriptCreated = False Else CreateSfx strScriptFile blnScriptCreated = True End If 'Warn the user not to close this window If Lcase(Right(Wscript.FullName, 12)) = "\cscript.exe" Then WScript.Echo "Do not close this window. This window has launched " WScript.Echo "a child window to perform the requested task. This " WScript.Echo "window will close as soon as the child window finishes." End If 'Launch the working script and wait for it to finish wsh.Run "cscript.exe" & " " & """" & strScriptFile & """" & " " & """" & WScript.Arguments(0) & """", 1, True 'Delete working files if appropriate If blnScriptCreated Then On Error Resume Next If fs.FileExists(strScriptFile) Then fs.DeleteFile strScriptFile, True On Error Goto 0 End If 'UnRegister and delete objects if appropriate If blnQ193998Created Then UnRegisterServer strQ193998File On Error Resume Next 'Delete might fail if OCX/DLL isn't released fs.DeleteFile strQ193998File, True On Error Goto 0 'Turn Error checking back on End If End If Function IsRegistered(strObjectName) 'Returns True if object can be created Dim obj On Error Resume Next Set obj = Nothing Set obj = CreateObject(strObjectName) If obj Is Nothing Then IsRegistered = False Else IsRegistered = True Set obj = Nothing End If End Function Sub RegisterServer(strPath) Dim fs, wsh Const SystemFolder = 1 Const WshNormalFocus = 1 Set wsh = CreateObject("Wscript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") Select Case Lcase(Right(strPath, 4)) Case ".exe" wsh.Run strPath & " /RegServer", WshNormalFocus, True Case ".wsc" wsh.Run "regsvr32.exe /i:""" & strPath & """ """ & fs.GetSpecialFolder(SystemFolder) & "\scrobj.dll""", WshNormalFocus, True Case Else wsh.Run "regsvr32.exe /s """ & strPath & """", WshNormalFocus, True 'wsh.Run "rundll32.exe """ & strPath & """ DllRegisterServer", WshNormalFocus, True End Select End Sub Sub UnRegisterServer(strPath) Dim fs, wsh Const SystemFolder = 1 Const WshNormalFocus = 1 Set wsh = CreateObject("Wscript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") Select Case Lcase(Right(strPath, 4)) Case ".exe" wsh.Run strPath & " /UnRegServer", WshNormalFocus, True Case ".wsc" wsh.Run "regsvr32.exe /u /n /i:""" & strPath & """ """ & fs.GetSpecialFolder(SystemFolder) & "\scrobj.dll""", WshNormalFocus, True Case Else wsh.Run "regsvr32.exe /s /u """ & strPath & """", WshNormalFocus, True 'wsh.Run "rundll32.exe """ & strPath & """ DllUnRegisterServer", WshNormalFocus, True End Select End Sub Function ReadByteArray(strFileName) Const adTypeBinary = 1 Dim bin Set bin = CreateObject("ADODB.Stream") bin.Type = adTypeBinary bin.Open bin.LoadFromFile strFileName ReadByteArray = bin.Read End Function Sub CreateSfx(strOutFile) Dim ts, x If Instr(strOutFile, "\") = 0 Then strOutFile = Left(Wscript.ScriptFullName, InStrRev(WScript.ScriptFullName), "\") & strOutFile Set ts = CreateObject("Scripting.FileSystemObject").OpenTextFile(strOutFile, 2, True) On Error Resume Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("44696D207661724279746541727261792C206C6E67436F756E7465722C2066732C2074732C20626C6E576173437265617465640D0A44696D2073747246756E6374696F6E4E616D652C207374724C696E652C20696E74506F732C20696E7450657263656E740D0A436F6E73742042595445535F5045525F4C494E45203D203235360D0A436F6E737420466F7257726974696E67203D20320D0A536574206673203D204372656174654F626A6563742822536372697074696E672E46696C6553797374656D4F626A65637422290D0A274261736520746865206E616D65206F66207468652066756E6374696F6E207765276C6C20637265617465206F6E20746865",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("20736F757263652066696C652C2062757420636C65616E2069742075702066697273740D0A466F7220696E74436F756E746572203D203120546F204C656E2866732E476574426173654E616D6528575363726970742E417267756D656E747328302929290D0A20202020496620496E537472282251574552545955494F504153444647484A4B4C5A584356424E4D31323334353637383930222C205563617365284D69642866732E476574426173654E616D6528575363726970742E417267756D656E7473283029292C20696E74436F756E7465722C2031292929203C3E2030205468656E0D0A202020202020202073747246756E6374696F6E4E616D65203D",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("2073747246756E6374696F6E4E616D652026204D69642866732E476574426173654E616D6528575363726970742E417267756D656E7473283029292C20696E74436F756E7465722C2031290D0A20202020456E642049660D0A4E6578740D0A49662073747246756E6374696F6E4E616D65203D202222205468656E2073747246756E6374696F6E4E616D65203D202246696C65220D0A73747246756E6374696F6E4E616D65203D205543617365284C6566742873747246756E6374696F6E4E616D652C203129292026204C43617365284D69642873747246756E6374696F6E4E616D652C203229290D0A73747246756E6374696F6E4E616D65203D2022437265",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("6174652220262073747246756E6374696F6E4E616D650D0A27526561642074686520736F757263652066696C650D0A766172427974654172726179203D204372656174654F626A6563742822713139333939382E42696E5265616422292E7265616442696E46696C6528575363726970742E417267756D656E7473283029290D0A27426567696E2077726974696E6720746865206F75747075742066696C650D0A536574207473203D2066732E4F70656E5465787446696C6528575363726970742E417267756D656E7473283029202620222E766273222C20466F7257726974696E672C2054727565290D0A74732E57726974654C696E652022275468697320",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("7363726970742077696C6C2063726561746520612066696C65206E616D65642022222220262066732E47657446696C654E616D6528575363726970742E417267756D656E747328302929202620222222220D0A74732E57726974654C696E652022220D0A74732E57726974654C696E652073747246756E6374696F6E4E616D65202620222022202620224C65667428577363726970742E53637269707446756C6C4E616D652C20496E53747252657628575363726970742E53637269707446756C6C4E616D652C2022225C2222292920262022222220262066732E47657446696C654E616D6528575363726970742E417267756D656E74732830292920262022",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("2222220D0A74732E57726974654C696E652022220D0A74732E57726974654C696E652022537562202220262073747246756E6374696F6E4E616D6520262022287374724F757446696C6529220D0A74732E57726974654C696E65202244696D2074732C2078220D0A74732E57726974654C696E652022496620496E737472287374724F757446696C652C2022225C222229203D2030205468656E207374724F757446696C65203D204C65667428577363726970742E53637269707446756C6C4E616D652C20496E53747252657628575363726970742E53637269707446756C6C4E616D65292C2022225C2222292026207374724F757446696C65220D0A74732E",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("57726974654C696E6520766254616220262022536574207473203D204372656174654F626A656374282222536372697074696E672E46696C6553797374656D4F626A6563742222292E4F70656E5465787446696C65287374724F757446696C652C20322C205472756529220D0A74732E57726974654C696E65207662546162202620224F6E204572726F7220526573756D65204E657874220D0A74732E577269746520766254616220262022466F722078203D203120546F20222026202842595445535F5045525F4C494E45202A203229202D20312026202220537465702032203A2074732E57726974652043687228436C6E67282222264822222026204D69",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("6428220D0A696E7450657263656E74203D20300D0A274E6F772072656164206576657279206279746520696E207468652066696C6520616E642073706974206F7574206865780D0A7374724C696E65203D2022220D0A466F72206C6E67436F756E746572203D203120746F2055426F756E6428766172427974654172726179290D0A202020207374724C696E65203D207374724C696E65202620526967687428223030222026204865782841736362284D696462287661724279746541727261792C6C6E67436F756E7465722C312929292C2032290D0A202020204966206C6E67436F756E746572204D6F642042595445535F5045525F4C494E45203D203020",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("5468656E0D0A2020202020202020274F7574736964652071756F74652074686520737472696E670D0A20202020202020207374724C696E65203D20222222222026207374724C696E65202620222222220D0A2020202020202020274E6F772077726974652074686520616363756D756C617465642064617461206C696E650D0A202020202020202074732E57726974654C696E65207374724C696E65202620222C782C32292929203A204E657874220D0A20202020202020207374724C696E65203D2022220D0A20202020202020204966206C6E67436F756E746572203C3E2055426F756E642876617242797465417272617929205468656E0D0A2020202020",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("2020202020202074732E577269746520766254616220262022466F722078203D203120546F20222026202842595445535F5045525F4C494E45202A203229202D20312026202220537465702032203A2074732E57726974652043687228436C6E67282222264822222026204D696428220D0A2020202020202020456E642049660D0A20202020202020202753686F772070726F67726573730D0A202020202020202049662043696E7428313030202A206C6E67436F756E746572202F2055426F756E64287661724279746541727261792929203C3E20696E7450657263656E74205468656E0D0A202020202020202020202020696E7450657263656E74203D20",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("43696E7428313030202A206C6E67436F756E746572202F2055426F756E642876617242797465417272617929290D0A2020202020202020202020204966204C6361736528526967687428577363726970742E46756C6C4E616D652C2031322929203D20225C637363726970742E65786522205468656E0D0A202020202020202020202020202020202754657874206F757470757420696620686F737420697320435343524950540D0A20202020202020202020202020202020696E7450657263656E74203D2043696E7428313030202A206C6E67436F756E746572202F2055426F756E642876617242797465417272617929290D0A2020202020202020202020",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("2020202020575363726970742E4563686F20696E7450657263656E742026202225220D0A202020202020202020202020456E642049660D0A2020202020202020456E642049660D0A20202020456E642049660D0A4E6578740D0A4966207374724C696E65203C3E202222205468656E200D0A20202020274F7574736964652071756F74652074686520737472696E670D0A202020207374724C696E65203D20222222222026207374724C696E65202620222222220D0A20202020274E6F772077726974652074686520616363756D756C617465642064617461206C696E650D0A2020202074732E57726974654C696E65207374724C696E65202620222C782C32",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("292929203A204E657874220D0A456E642049660D0A74732E57726974654C696E652076625461622026202274732E436C6F7365220D0A74732E57726974654C696E652022456E6420537562220D0A74732E436C6F7365",x,2))) : Next ts.Close End Sub Sub CreateQ193998(strOutFile) Dim ts, x If Instr(strOutFile, "\") = 0 Then strOutFile = Left(Wscript.ScriptFullName, InStrRev(WScript.ScriptFullName), "\") & strOutFile Set ts = CreateObject("Scripting.FileSystemObject").OpenTextFile(strOutFile, 2, True) On Error Resume Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010500DF3FF0400000000000000000E0000E210B010414000C0000001E0000000000004810000000100000002000000000001100100000000200000400000001000000040000000000000000600000000400009DC4000002000000000010000010000000001000001000000000000010000000C0190000A4000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("003000002800000000400000C80C00000000000000000000000000000000000000500000C40000000000000000000000000000000000000000000000000000000000000000000000000000000000000040020000200000005C300000340000000000000000000000000000000000000000000000000000002E74657874000000640A000000100000000C000000040000000000000000000000000000200000602E646174610000008C0A0000002000000000000000000000000000000000000000000000400000C02E696461746100000C010000003000000002000000100000000000000000000000000000400000402E72737263000000C80C000000400000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("000E000000120000000000000000000000000000400000402E72656C6F630000E200000000500000000200000020000000000000000000000000000040000042499943381000000000000000000000004D535642564D35302E444C4C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("FF2570300011FF2574300011FF256C300011FF2568300011FF2560300011FF2564300011FF255C300011FF2578300011FF2584300011FF2580300011FF257C300011FF25883000115A68842A001168882A001152E9E9FFFFFF000000480000003000000040000000380000000ED0A9BC78936D45824BEEC15A31F02200000000020001000000727475703D2271313933393938007131393339393800003D22220D0A54690000000088000000000000000200000000000000ECD9180D250513488099E5E15A3E7BE00100000090000000A00000000100000091010200002030757131393342696E526561640084E3B5C6F4921B4E880941A0DE6AD29E15AF3A20",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("04D7AF4085350780F54C63C550000000741940A40A1AC94AAB01F677C358B95100000000000000000000000000000000000000000300000091010200ECD9180D250513488099E5E15A3E7BE085000000000000004C1700115CA0D900564235218C0E2A000000000000000000000000007E0000000000000000000000000004000904000000000000000000001015001100F0300000FFFFFF090000000100000001000000E90000000C1100110C1100115C1000116800000070000000780000007900000071313933393938007131393339393800007131393339393800000000010000006C1300110000000008180011FFFFFFFF00000000C013001100200011",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("01000000B050170003002000000000009CEC17005812001101000000181400110000000064120011010000006C120011010000006812001101000000701200110100E20168006C0098120011D022001100000000E42413000010001106100011EC140011281400113814001148140011400029003C00000058140011FFFFFFFF00000000000000009C120011D8E8140068140011FFFFFFFF5F1300110000000070120011E011001112100011181000111E10001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B800000000663D33C0BA541900116824100011C3000000002420001148180011FFFFFFFF0000000014200011FE9B87AABB868D4FBA7CD09B530719340E00010004000100C0130011000000000000000000000000F813001109040000090400000000000002000000E0110011FFFFFFFFDC1400110000000000000000000000000014001101000000F0130011FFFF000003A81D0000000000D0140011000000007131393339393800",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("42696E52656164003B2733D5190C634D8568C9198E342CC4ECD9180D250513488099E5E15A3E7BE0741940A40A1AC94AAB01F677C358B95184E3B5C6F4921B4E880941A0DE6AD29E15AF3A2004D7AF4085350780F54C63C51250AD339966CF11B70C00AA0060D39355736572436F6E74726F6C002E3DFBFCFAA06810A73808002B3371B5433A5C50726F6772616D2046696C65735C5642354343455C5642352E4F4C4200564200007414001100000000050000000900000084140011A4140011C8220011000000000000000058D014007265616442696E46696C65000C00480000000000000000001600000004000000010000000000000000007301FFFFFFFF",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("01000000564241352E444C4C00000000F40100006C13001100000000A0190011B01900118C0A0000002000110C100011000000002A005C00410044003A005C0065007200690063005C004D007900200044006F00630075006D0065006E00740073005C00500072006F006A0065006300740073005C0071003100390033003900390038005C0073006F0075007200630065005C0071003100390033003900390038002E007600620070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C11001100000000FFCC310000741940A40A1AC94AAB01F677C358B9513B2733D5190C634D8568C9198E342CC41250AD339966CF11B70C00AA0060D3930000000000000000000000000000000000000000000000000000000000000000000000002C0000002700000000070042696E5265616400281901004200350000000000000000C0120000100E0000FF04000000E4170011081800117C180011000000000801A507FFFF00000000000000000360DC1700110000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("000000001E102F0000000000E0110011FFFFFFFF000000000000000000000000D417001100000000D4170011D4170011D41700110000000000000000000000004800000004010000000000006C130011FFFFFFFF00000000D8170011000000000000000000000000FFFFFFFF00000000A814001158140011CC2200116266696C656E616D6500000058685C11001168842A001168882A001150E98CF7FFFF58685C11001168842A001168882A001150E97CF7FFFF58685C11001168842A001168882A001150E96CF7FFFF58685C11001150E966F7FFFF00006C0C004368FFFF2E4B70002738FF0B00000400E77160FF3538FF6C68FF6C60FFE4F4FFFE5D20016C",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("68FF5E010004007164FFF5000000006C64FFF501000000AE045CFFFE8E0100FFFF010000006C60FFE4045CFFFF1602006C60FFE4FD3D6C5CFF4D48FF1120FD006CFFFF2F10001000FF2F10001000FF2F10001000E01100110C0044007C003C00000000000000FB01000000002200000000000400000000016CFF020058FF010068FF01005CFF0501000000000000000010000000000001000000000038FF0200E9E9E9E9CCCCCCCCCCCCCCCCCCCCCCCC9E9E9E9ECCCCCCCCCCCCCCCCCCCCCCCC00000000DF3FF04000000000101A0000010000000400000004000000E8190000F8190000081A0000CA1800009E180000B4180000881800001C1A00002C1A0000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("3E1A0000501A00000000010002000300713139333939382E6F637800446C6C43616E556E6C6F61644E6F7700446C6C476574436C6173734F626A65637400446C6C526567697374657253657276657200446C6C556E726567697374657253657276657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("28300000FFFFFFFFFFFFFFFF903000005C30000000000000000000000000000000000000000000009E300000B0300000C4300000DA300000F63000008802008042020080650000806600008067000080680000806900008000000000FC2F3E769D293076D17F31764A633176592B30769C362E76926131765DA6317643A8337623F139767D1331767D023276000000004D535642564D35302E444C4C000000004D65746843616C6C456E67696E65000000004556454E545F53494E4B5F4164645265660000004556454E545F53494E4B5F52656C65617365000000004556454E545F53494E4B5F5175657279496E746572666163650000005F5F766261457863",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("65707448616E646C6572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000DF3FF040180000000300020078010080980000808801008080000080A2010080680000800200000050000080100000003800008000000000DF3FF040180000000000010001000000B000008000000000DF3FF040180000000000010030750000C800008000000000DF3FF040180000000000010001000000E000008000000000DF3FF040180000000000010001000000F800008000000000DF3FF0401800000000000100010000001001008000000000DF3FF0401800000000000100090400002801000000000000DF3FF0401800000000000100000000003801000000000000DF3FF0401800000000000100000000004801000000000000DF3FF040",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("1800000000000100000000005801000000000000DF3FF04018000000000001000000000068010000D041000044030000B00400000000000014450000E0000000B004000000000000F445000014000000B0040000000000000846000014000000B0040000000000001C460000AC060000B004000000000000070054005900500045004C00490042000C005F004900490044005F00420049004E0052004500410044000F005F005300520043004900490044005F00420049004E0052004500410044000000000000000000000000000000440334000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("0000010000000000000001000000000000000000000000000400000002000000000000000000000000000000440000000000560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000904B004A4020000010053007400720069006E006700460069006C00650049006E0066006F00000080020000010030003400300039003000340042003000000058003E00010043006F006D006D0065006E0074007300000043006F00640065002000660072006F006D0020004D006900630072006F0073006F006600740020004B00420020005100310039003300390039003800",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("0000000038001800010043006F006D00700061006E0079004E0061006D00650000000000450072006900630020005000680065006C00700073000000700048000100460069006C0065004400650073006300720069007000740069006F006E0000000000520065006100640073002000620069006E006100720079002000660069006C006500200069006E0074006F00200061002000620079007400650020006100720072006100790000003800140001004C006500670061006C0043006F00700079007200690067006800740000004D006900630072006F0073006F00660074000000380018000100500072006F0064007500630074004E0061006D006500",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("0000000071003100390033003900390038002E006F006300780000002C000A000100460069006C006500560065007200730069006F006E000000000031002E00300030000000000030000A000100500072006F006400750063007400560065007200730069006F006E00000031002E00300030000000000030001000010049006E007400650072006E0061006C004E0061006D0065000000710031003900330039003900380000004000180001004F0072006900670069006E0061006C00460069006C0065006E0061006D006500000071003100390033003900390038002E006F006300780000002C00020001004F004C004500530065006C00660052006500",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("670069007300740065007200000000000000000028000000100000000F0000000100040000000000780000000000000000000000100000001000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00778000000000077777877777777707777787000000070777778F770F77070777778F870F07070777778FFF0F000707777787000000070777778F770F0B800777778F870F0B708777778FFF0FF0B807777787777770B7077777CCCCCCCC0B807777CCCCCCCC0B0077777777777770197777777777777000771000000015AF3A2004D7AF40",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("85350780F54C63C51000000084E3B5C6F4921B4E880941A0DE6AD29E4D5346540200010000000000090400000000000041000000010000000200000003000000000000000000000000000000060000003300000000000000FFFFFFFFFFFFFFFF200000008000000001000000010000000000000064000000C8000000500100002C010000FFFFFFFF0F000000AC0300000C000000FFFFFFFF0F000000B80300001C000000FFFFFFFF0F0000008C03000020000000FFFFFFFF0F0000007C02000080000000FFFFFFFF0F000000FC02000090000000FFFFFFFF0F000000D403000000020000FFFFFFFF0F000000D405000084000000FFFFFFFF0F00000058060000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("0C000000FFFFFFFF0F0000006406000008000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000FFFFFFFF00000000FFFFFFFF0F000000342100006C06000060000000580000000300000000000000010000000000000000000000000000000000000060000000D01100001400000001000000FFFFFFFF0000000000000000FFFFFFFF0100A80704000000010000000200070000000000FFFFFFFF25210100AC06000000000000FFFFFFFF0300000000000000000000000000000000000000000000000000000018000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("200000002800000001000000FFFFFFFF0000000000000000FFFFFFFF0200000004000000000000000000000000000000FFFFFFFF24210200AC06000000000000FFFFFFFF0300000000000000000000000000000000000000000000000000000078000000901000003C00000001000000FFFFFFFF0000000000000000FFFFFFFF0100000004000000FFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFF48000000FFFFFFFFFFFFFFFFFFFFFFFF18000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78000000FFFFFFFF30000000FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("FFFFFFFF60000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0ED0A9BC78936D45824BEEC15A31F022FEFFFFFFFFFFFFFFECD9180D250513488099E5E15A3E7BE064000000FFFFFFFF3004020000000000C00000000000004602000000FFFFFFFF0004020000000000C00000000000004601000000FFFFFFFF84E3B5C6F4921B4E880941A0DE6AD29E00000000FFFFFFFF15AF3A2004D7AF4085350780F54C63C5C8000000FFFFFFFF0000000001000000FFFFFFFF10000000C800000003000000FFFFFFFFFFFFFFFF0000010300000000480000003000000000000000020000002D005354444F4C45322E544C42575757FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14000000FFFFFFFFFFFFFFFF6C000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54000000FFFFFFFFFFFFFFFF3C000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0700B47A71313933",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("3939385700000000FFFFFFFF083850F65F42696E5265616464000000FFFFFFFF0738651F42696E5265616457C8000000FFFFFFFF09386F7A5F5F42696E5265616457575700000000FFFFFFFF0B00EC657265616442696E46696C6557FFFFFFFFFFFFFFFF0900D32F6266696C656E616D655757570700713139333939385757571A000C400C000C8030000000300000001900198000000000A5075C000944000002000000080008806C0000000100000000000000FFFFFFFF0A0000000000036054000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00100000C4000000023008300E3014301A30203026302C30323038303E3044304A304F3054318C31A831AC31B031E431EC31F831FC3114321C3224322C3234323C3248324C3258325C326032643268326C327832883290329832A032A432A832AC32B032623367337033743380339C33AC33C033C833D833E033F033A834B834BC34C03414351C35203528352C354437D437D837DC37F4370C38203828382C3830384C3858387038743878388A388F389438A038A538AA38B638BB38C038CC3854390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next For x = 1 To 511 Step 2 : ts.Write Chr(Clng("&H" & Mid("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",x,2))) : Next ts.Close End Sub