//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

(function() {
var ary = new Array(10);
var obj0 = new Object();
var a;
var b;
var c;
var d;
var e;
var f;
var g;
var h;
a = 22016;
b = 64496;
c = 65437;
d = 1669;
e = 26869;
f = -2745;
g = 38090;
h = -43857;
obj0.a = -64486;
obj0.b = 40086;
obj0.c = 13244;
obj0.d = 56806;
obj0.e = 5436;
ary[0] = 25833;
ary[1] = 13965;
ary[100] = -60548;
if(((d & f) <= (h - 47391))) {
} else {
  c = ((((10360 + 11052) ^ (e ? 51869 : a)) - d) | (obj0.d + (g <= 30952)));
  c = ((((c & obj0.e) & (+ 43589)) * ((-43461 - e) | (16706 & -2380))) != (obj0.c - ((obj0.d - -7170) >= h)));
  obj0.d = ((obj0.c | ((-17684 ? obj0.d : 16513) + (a ? 14051 : -15013))) - (a + ((928 & c) < (55317 ^ obj0.d))));
}
b = ((((-50018 ? h : a) == (obj0.c < e)) ^ ((- e) * d)) ? ((g - (++ d)) ^ a) : ((- (39715 ^ obj0.d)) | ((obj0.c > a) ? 53642 : c)));
f = obj0.b;
obj0.c = (((! d) & c) * (a - ((obj0.a - f) * (50838 | -37743))));
WScript.Echo("a = " + (a>>3));
WScript.Echo("b = " + (b>>3));
WScript.Echo("c = " + (c>>3));
WScript.Echo("d = " + (d>>3));
WScript.Echo("e = " + (e>>3));
WScript.Echo("f = " + (f>>3));
WScript.Echo("g = " + (g>>3));
WScript.Echo("h = " + (h>>3));
WScript.Echo("obj0.a = " + (obj0.a>>3));
WScript.Echo("obj0.b = " + (obj0.b>>3));
WScript.Echo("obj0.c = " + (obj0.c>>3));
WScript.Echo("obj0.d = " + (obj0.d>>3));
WScript.Echo("obj0.e = " + (obj0.e>>3));
WScript.Echo("ary[0] = " + (ary[0]>>3));
WScript.Echo("ary[1] = " + (ary[1]>>3));
WScript.Echo("ary[100] = " + (ary[100]>>3));
WScript.Echo('done');
})();
