This repository was archived by the owner on Jun 10, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathacorn_interpreter.js
145 lines (145 loc) · 71.5 KB
/
acorn_interpreter.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
// Acorn: Copyright 2012 Marijn Haverbeke, MIT License
var mod$$inline_58=function(a){function b(a){n=a||{};for(var b in Ua)Object.prototype.hasOwnProperty.call(n,b)||(n[b]=Ua[b]);wa=n.sourceFile||null}function c(a,b){var c=Ab(k,a);b+=" ("+c.line+":"+c.column+")";var d=new SyntaxError(b);d.pos=a;d.loc=c;d.raisedAt=f;throw d;}function d(a){function b(a){if(1==a.length)return c+="return str === "+JSON.stringify(a[0])+";";c+="switch(str){";for(var va=0;va<a.length;++va)c+="case "+JSON.stringify(a[va])+":";c+="return true}return false;"}a=a.split(" ");var c=
"",d=[],e=0;a:for(;e<a.length;++e){for(var g=0;g<d.length;++g)if(d[g][0].length==a[e].length){d[g].push(a[e]);continue a}d.push([a[e]])}if(3<d.length){d.sort(function(a,b){return b.length-a.length});c+="switch(str.length){";for(e=0;e<d.length;++e)a=d[e],c+="case "+a[0].length+":",b(a);c+="}"}else b(a);return new Function("str",c)}function e(){this.line=G;this.column=f-D}function g(a,b){X=f;n.locations&&(ia=new e);p=a;l();H=b;R=a.beforeExpr}function h(){for(var a=f,b=n.onComment&&n.locations&&new e,
c=k.charCodeAt(f+=2);f<S&&10!==c&&13!==c&&8232!==c&&8233!==c;)++f,c=k.charCodeAt(f);if(n.onComment)n.onComment(!1,k.slice(a+2,f),a,f,b,n.locations&&new e)}function l(){for(;f<S;){var a=k.charCodeAt(f);if(32===a)++f;else if(13===a)++f,a=k.charCodeAt(f),10===a&&++f,n.locations&&(++G,D=f);else if(10===a||8232===a||8233===a)++f,n.locations&&(++G,D=f);else if(8<a&&14>a)++f;else if(47===a)if(a=k.charCodeAt(f+1),42===a){var a=n.onComment&&n.locations&&new e,b=f,d=k.indexOf("*/",f+=2);-1===d&&c(f-2,"Unterminated comment");
f=d+2;if(n.locations){Y.lastIndex=b;for(var g=void 0;(g=Y.exec(k))&&g.index<f;)++G,D=g.index+g[0].length}if(n.onComment)n.onComment(!0,k.slice(b+2,d),b,f,a,n.locations&&new e)}else if(47===a)h();else break;else if(160===a)++f;else if(5760<=a&&Bb.test(String.fromCharCode(a)))++f;else break}}function m(a){switch(a){case 46:return a=k.charCodeAt(f+1),48<=a&&57>=a?a=P(!0):(++f,a=g(xa)),a;case 40:return++f,g(I);case 41:return++f,g(E);case 59:return++f,g(J);case 44:return++f,g(L);case 91:return++f,g(ja);
case 93:return++f,g(ka);case 123:return++f,g(Z);case 125:return++f,g(T);case 58:return++f,g(aa);case 63:return++f,g(ya);case 48:if(a=k.charCodeAt(f+1),120===a||88===a)return f+=2,a=B(16),null==a&&c(x+2,"Expected hexadecimal number"),la(k.charCodeAt(f))&&c(f,"Identifier directly after number"),a=g(ba,a);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return P(!1);case 34:case 39:a:{f++;for(var b="";;){f>=S&&c(x,"Unterminated string constant");var d=k.charCodeAt(f);if(d===a){++f;
a=g(da,b);break a}if(92===d){var d=k.charCodeAt(++f),e=/^[0-7]+/.exec(k.slice(f,f+3));for(e&&(e=e[0]);e&&255<parseInt(e,8);)e=e.slice(0,-1);"0"===e&&(e=null);++f;if(e)C&&c(f-2,"Octal literal in strict mode"),b+=String.fromCharCode(parseInt(e,8)),f+=e.length-1;else switch(d){case 110:b+="\n";break;case 114:b+="\r";break;case 120:b+=String.fromCharCode(ma(2));break;case 117:b+=String.fromCharCode(ma(4));break;case 85:b+=String.fromCharCode(ma(8));break;case 116:b+="\t";break;case 98:b+="\b";break;case 118:b+=
"\x0B";break;case 102:b+="\f";break;case 48:b+="\x00";break;case 13:10===k.charCodeAt(f)&&++f;case 10:n.locations&&(D=f,++G);break;default:b+=String.fromCharCode(d)}}else 13!==d&&10!==d&&8232!==d&&8233!==d||c(x,"Unterminated string constant"),b+=String.fromCharCode(d),++f}}return a;case 47:return a=k.charCodeAt(f+1),R?(++f,a=K()):a=61===a?t(U,2):t(za,1),a;case 37:case 42:return a=k.charCodeAt(f+1),a=61===a?t(U,2):t(Cb,1),a;case 124:case 38:return b=k.charCodeAt(f+1),a=b===a?t(124===a?Va:Wa,2):61===
b?t(U,2):t(124===a?Db:Eb,1),a;case 94:return a=k.charCodeAt(f+1),a=61===a?t(U,2):t(Fb,1),a;case 43:case 45:return b=k.charCodeAt(f+1),b===a?45==b&&62==k.charCodeAt(f+2)&&na.test(k.slice(M,f))?(f+=3,h(),l(),a=z()):a=t(Gb,2):a=61===b?t(U,2):t(Hb,1),a;case 60:case 62:return b=k.charCodeAt(f+1),d=1,b===a?(d=62===a&&62===k.charCodeAt(f+2)?3:2,a=61===k.charCodeAt(f+d)?t(U,d+1):t(Ib,d)):33==b&&60==a&&45==k.charCodeAt(f+2)&&45==k.charCodeAt(f+3)?(f+=4,h(),l(),a=z()):(61===b&&(d=61===k.charCodeAt(f+2)?3:2),
a=t(Jb,d)),a;case 61:case 33:return b=k.charCodeAt(f+1),a=61===b?t(Kb,61===k.charCodeAt(f+2)?3:2):t(61===a?Aa:Xa,1),a;case 126:return t(Xa,1)}return!1}function z(a){a?f=x+1:x=f;n.locations&&(oa=new e);if(a)return K();if(f>=S)return g(pa);var b=k.charCodeAt(f);if(la(b)||92===b)return Ya();a=m(b);if(!1===a){b=String.fromCharCode(b);if("\\"===b||Za.test(b))return Ya();c(f,"Unexpected character '"+b+"'")}return a}function t(a,b){var c=k.slice(f,f+b);f+=b;g(a,c)}function K(){for(var a,b,d=f;;){f>=S&&c(d,
"Unterminated regular expression");var e=k.charAt(f);na.test(e)&&c(d,"Unterminated regular expression");if(a)a=!1;else{if("["===e)b=!0;else if("]"===e&&b)b=!1;else if("/"===e&&!b)break;a="\\"===e}++f}a=k.slice(d,f);++f;(b=$a())&&!/^[gmsiy]*$/.test(b)&&c(d,"Invalid regexp flag");return g(Ba,new RegExp(a,b))}function B(a,b){for(var c=f,d=0,e=0,g=null==b?Infinity:b;e<g;++e){var h=k.charCodeAt(f),h=97<=h?h-97+10:65<=h?h-65+10:48<=h&&57>=h?h-48:Infinity;if(h>=a)break;++f;d=d*a+h}return f===c||null!=b&&
f-c!==b?null:d}function P(a){var b=f,d=!1,e=48===k.charCodeAt(f);a||null!==B(10)||c(b,"Invalid number");46===k.charCodeAt(f)&&(++f,B(10),d=!0);a=k.charCodeAt(f);if(69===a||101===a)a=k.charCodeAt(++f),43!==a&&45!==a||++f,null===B(10)&&c(b,"Invalid number"),d=!0;la(k.charCodeAt(f))&&c(f,"Identifier directly after number");a=k.slice(b,f);var h;d?h=parseFloat(a):e&&1!==a.length?/[89]/.test(a)||C?c(b,"Invalid number"):h=parseInt(a,8):h=parseInt(a,10);return g(ba,h)}function ma(a){a=B(16,a);null===a&&c(x,
"Bad character escape sequence");return a}function $a(){ca=!1;for(var a,b=!0,d=f;;){var e=k.charCodeAt(f);if(ab(e))ca&&(a+=k.charAt(f)),++f;else if(92===e){ca||(a=k.slice(d,f));ca=!0;117!=k.charCodeAt(++f)&&c(f,"Expecting Unicode escape sequence \\uXXXX");++f;var e=ma(4),g=String.fromCharCode(e);g||c(f-1,"Invalid Unicode escape");(b?la(e):ab(e))||c(f-4,"Invalid Unicode escape");a+=g}else break;b=!1}return ca?a:k.slice(d,f)}function Ya(){var a=$a(),b=V;ca||(Lb(a)?b=Ca[a]:(n.forbidReserved&&(3===n.ecmaVersion?
Mb:Nb)(a)||C&&bb(a))&&c(x,"The keyword '"+a+"' is reserved"));return g(b,a)}function r(){Da=x;M=X;Ea=ia;z()}function Fa(a){C=a;f=M;if(n.locations)for(;f<D;)D=k.lastIndexOf("\n",D-2)+1,--G;l();z()}function cb(){this.type=null;this.start=x;this.end=null}function db(){this.start=oa;this.end=null;null!==wa&&(this.source=wa)}function y(){var a=new cb;n.locations&&(a.loc=new db);n.directSourceFile&&(a.sourceFile=n.directSourceFile);n.ranges&&(a.range=[x,0]);return a}function Q(a){var b=new cb;b.start=a.start;
n.locations&&(b.loc=new db,b.loc.start=a.loc.start);n.ranges&&(b.range=[a.range[0],0]);return b}function q(a,b){a.type=b;a.end=M;n.locations&&(a.loc.end=Ea);n.ranges&&(a.range[1]=M);return a}function Ga(a){return 5<=n.ecmaVersion&&"ExpressionStatement"===a.type&&"Literal"===a.expression.type&&"use strict"===a.expression.value}function u(a){if(p===a)return r(),!0}function qa(){return!n.strictSemicolons&&(p===pa||p===T||na.test(k.slice(M,x)))}function W(){u(J)||qa()||N()}function v(a){p===a?r():N()}
function N(){c(x,"Unexpected token")}function ra(a){"Identifier"!==a.type&&"MemberExpression"!==a.type&&c(a.start,"Assigning to rvalue");C&&"Identifier"===a.type&&sa(a.name)&&c(a.start,"Assigning to "+a.name+" in strict mode")}function F(){(p===za||p===U&&"/="==H)&&z(!0);var a=p,b=y();switch(a){case Ha:case eb:r();var d=a===Ha;u(J)||qa()?b.label=null:p!==V?N():(b.label=O(),W());for(var e=0;e<w.length;++e){var g=w[e];if(null==b.label||g.name===b.label.name){if(null!=g.kind&&(d||"loop"===g.kind))break;
if(b.label&&d)break}}e===w.length&&c(b.start,"Unsyntactic "+a.keyword);return q(b,d?"BreakStatement":"ContinueStatement");case fb:return r(),W(),q(b,"DebuggerStatement");case gb:return r(),w.push(Ia),b.body=F(),w.pop(),v(Ja),b.test=ea(),W(),q(b,"DoWhileStatement");case hb:r();w.push(Ia);v(I);if(p===J)return Ka(b,null);if(p===La)return a=y(),r(),ib(a,!0),q(a,"VariableDeclaration"),1===a.declarations.length&&u(ta)?jb(b,a):Ka(b,a);a=A(!1,!0);return u(ta)?(ra(a),jb(b,a)):Ka(b,a);case Ma:return r(),Na(b,
!0);case kb:return r(),b.test=ea(),b.consequent=F(),b.alternate=u(lb)?F():null,q(b,"IfStatement");case mb:return fa||c(x,"'return' outside of function"),r(),u(J)||qa()?b.argument=null:(b.argument=A(),W()),q(b,"ReturnStatement");case Oa:r();b.discriminant=ea();b.cases=[];v(Z);for(w.push(Ob);p!=T;)p===Pa||p===nb?(a=p===Pa,e&&q(e,"SwitchCase"),b.cases.push(e=y()),e.consequent=[],r(),a?e.test=A():(d&&c(Da,"Multiple default clauses"),d=!0,e.test=null),v(aa)):(e||N(),e.consequent.push(F()));e&&q(e,"SwitchCase");
r();w.pop();return q(b,"SwitchStatement");case ob:return r(),na.test(k.slice(M,x))&&c(M,"Illegal newline after throw"),b.argument=A(),W(),q(b,"ThrowStatement");case pb:return r(),b.block=ga(),b.handler=null,p===qb&&(a=y(),r(),v(I),a.param=O(),C&&sa(a.param.name)&&c(a.param.start,"Binding "+a.param.name+" in strict mode"),v(E),a.guard=null,a.body=ga(),b.handler=q(a,"CatchClause")),b.guardedHandlers=rb,b.finalizer=u(sb)?ga():null,b.handler||b.finalizer||c(b.start,"Missing catch or finally clause"),
q(b,"TryStatement");case La:return r(),ib(b),W(),q(b,"VariableDeclaration");case Ja:return r(),b.test=ea(),w.push(Ia),b.body=F(),w.pop(),q(b,"WhileStatement");case tb:return C&&c(x,"'with' in strict mode"),r(),b.object=ea(),b.body=F(),q(b,"WithStatement");case Z:return ga();case J:return r(),q(b,"EmptyStatement");default:d=H;g=A();if(a===V&&"Identifier"===g.type&&u(aa)){for(e=0;e<w.length;++e)w[e].name===d&&c(g.start,"Label '"+d+"' is already declared");a=p.isLoop?"loop":p===Oa?"switch":null;w.push({name:d,
kind:a});b.body=F();w.pop();b.label=g;return q(b,"LabeledStatement")}b.expression=g;W();return q(b,"ExpressionStatement")}}function ea(){v(I);var a=A();v(E);return a}function ga(a){var b=y(),c=!0,d=!1,e;b.body=[];for(v(Z);!u(T);){var g=F();b.body.push(g);c&&a&&Ga(g)&&(e=d,Fa(d=!0));c=!1}d&&!e&&Fa(!1);return q(b,"BlockStatement")}function Ka(a,b){a.init=b;v(J);a.test=p===J?null:A();v(J);a.update=p===E?null:A();v(E);a.body=F();w.pop();return q(a,"ForStatement")}function jb(a,b){a.left=b;a.right=A();
v(E);a.body=F();w.pop();return q(a,"ForInStatement")}function ib(a,b){a.declarations=[];for(a.kind="var";;){var d=y();d.id=O();C&&sa(d.id.name)&&c(d.id.start,"Binding "+d.id.name+" in strict mode");d.init=u(Aa)?A(!0,b):null;a.declarations.push(q(d,"VariableDeclarator"));if(!u(L))break}return a}function A(a,b){var c=Qa(b);if(!a&&p===L){var d=Q(c);for(d.expressions=[c];u(L);)d.expressions.push(Qa(b));return q(d,"SequenceExpression")}return c}function Qa(a){var b;b=a;var c;c=b;c=Ra(Sa(),-1,c);if(u(ya)){var d=
Q(c);d.test=c;d.consequent=A(!0);v(aa);d.alternate=A(!0,b);b=q(d,"ConditionalExpression")}else b=c;return p.isAssign?(c=Q(b),c.operator=H,c.left=b,r(),c.right=Qa(a),ra(b),q(c,"AssignmentExpression")):b}function Ra(a,b,c){var d=p.binop;if(null!=d&&(!c||p!==ta)&&d>b){var e=Q(a);e.left=a;e.operator=H;a=p;r();e.right=Ra(Sa(),d,c);d=q(e,a===Va||a===Wa?"LogicalExpression":"BinaryExpression");return Ra(d,b,c)}return a}function Sa(){if(p.prefix){var a=y(),b=p.isUpdate;a.operator=H;R=a.prefix=!0;r();a.argument=
Sa();b?ra(a.argument):C&&"delete"===a.operator&&"Identifier"===a.argument.type&&c(a.start,"Deleting local variable in strict mode");return q(a,b?"UpdateExpression":"UnaryExpression")}for(b=ha(ua());p.postfix&&!qa();)a=Q(b),a.operator=H,a.prefix=!1,a.argument=b,ra(b),r(),b=q(a,"UpdateExpression");return b}function ha(a,b){if(u(xa)){var c=Q(a);c.object=a;c.property=O(!0);c.computed=!1;return ha(q(c,"MemberExpression"),b)}return u(ja)?(c=Q(a),c.object=a,c.property=A(),c.computed=!0,v(ka),ha(q(c,"MemberExpression"),
b)):!b&&u(I)?(c=Q(a),c.callee=a,c.arguments=Ta(E,!1),ha(q(c,"CallExpression"),b)):a}function ua(){switch(p){case ub:var a=y();r();return q(a,"ThisExpression");case V:return O();case ba:case da:case Ba:return a=y(),a.value=H,a.raw=k.slice(x,X),r(),q(a,"Literal");case vb:case wb:case xb:return a=y(),a.value=p.atomValue,a.raw=p.keyword,r(),q(a,"Literal");case I:var a=oa,b=x;r();var d=A();d.start=b;d.end=X;n.locations&&(d.loc.start=a,d.loc.end=ia);n.ranges&&(d.range=[b,X]);v(E);return d;case ja:return a=
y(),r(),a.elements=Ta(ka,!0,!0),q(a,"ArrayExpression");case Z:a=y();b=!0;d=!1;a.properties=[];for(r();!u(T);){if(b)b=!1;else if(v(L),n.allowTrailingCommas&&u(T))break;var e={key:p===ba||p===da?ua():O(!0)},g=!1,h;u(aa)?(e.value=A(!0),h=e.kind="init"):5<=n.ecmaVersion&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)?(g=d=!0,h=e.kind=e.key.name,e.key=p===ba||p===da?ua():O(!0),p!==I&&N(),e.value=Na(y(),!1)):N();if("Identifier"===e.key.type&&(C||d))for(var f=0;f<a.properties.length;++f){var l=
a.properties[f];if(l.key.name===e.key.name){var m=h==l.kind||g&&"init"===l.kind||"init"===h&&("get"===l.kind||"set"===l.kind);m&&!C&&"init"===h&&"init"===l.kind&&(m=!1);m&&c(e.key.start,"Redefinition of property")}}a.properties.push(e)}return a=q(a,"ObjectExpression");case Ma:return a=y(),r(),Na(a,!1);case yb:return a=y(),r(),a.callee=ha(ua(),!0),u(I)?a.arguments=Ta(E,!1):a.arguments=rb,a=q(a,"NewExpression");default:N()}}function Na(a,b){p===V?a.id=O():b?N():a.id=null;a.params=[];var d=!0;for(v(I);!u(E);)d?
d=!1:v(L),a.params.push(O());var d=fa,e=w;fa=!0;w=[];a.body=ga(!0);fa=d;w=e;if(C||a.body.body.length&&Ga(a.body.body[0]))for(d=a.id?-1:0;d<a.params.length;++d)if(e=0>d?a.id:a.params[d],(bb(e.name)||sa(e.name))&&c(e.start,"Defining '"+e.name+"' in strict mode"),0<=d)for(var g=0;g<d;++g)e.name===a.params[g].name&&c(e.start,"Argument name clash in strict mode");return q(a,b?"FunctionDeclaration":"FunctionExpression")}function Ta(a,b,c){for(var d=[],e=!0;!u(a);){if(e)e=!1;else if(v(L),b&&n.allowTrailingCommas&&
u(a))break;c&&p===L?d.push(null):d.push(A(!0))}return d}function O(a){var b=y();b.name=p===V?H:a&&!n.forbidReserved&&p.keyword||N();R=!1;r();return q(b,"Identifier")}a.version="0.4.1";var n,k,S,wa;a.parse=function(a,c){k=String(a);S=k.length;b(c);G=1;f=D=0;R=!0;l();var d,g=n.program;Da=M=f;n.locations&&(Ea=new e);fa=C=null;w=[];z();d=g||y();var h=!0;g||(d.body=[]);for(;p!==pa;)g=F(),d.body.push(g),h&&Ga(g)&&Fa(!0),h=!1;return d=q(d,"Program")};var Ua=a.defaultOptions={ecmaVersion:5,strictSemicolons:!1,
allowTrailingCommas:!0,forbidReserved:!1,locations:!1,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null},Ab=a.getLineInfo=function(a,b){for(var c=1,d=0;;){Y.lastIndex=d;var e=Y.exec(a);if(e&&e.index<b)++c,d=e.index+e[0].length;else break}return{line:c,column:b-d}};a.tokenize=function(a,c){function d(a){z(a);e.start=x;e.end=X;e.startLoc=oa;e.endLoc=ia;e.type=p;e.value=H;return e}k=String(a);S=k.length;b(c);G=1;f=D=0;R=!0;l();var e={};d.jumpTo=function(a,b){f=a;if(n.locations){G=
1;D=Y.lastIndex=0;for(var c;(c=Y.exec(k))&&c.index<a;)++G,D=c.index+c[0].length}R=b;l()};return d};var f,x,X,oa,ia,p,H,R,G,D,Da,M,Ea,fa,w,C,rb=[],ba={type:"num"},Ba={type:"regexp"},da={type:"string"},V={type:"name"},pa={type:"eof"},Ha={keyword:"break"},Pa={keyword:"case",beforeExpr:!0},qb={keyword:"catch"},eb={keyword:"continue"},fb={keyword:"debugger"},nb={keyword:"default"},gb={keyword:"do",isLoop:!0},lb={keyword:"else",beforeExpr:!0},sb={keyword:"finally"},hb={keyword:"for",isLoop:!0},Ma={keyword:"function"},
kb={keyword:"if"},mb={keyword:"return",beforeExpr:!0},Oa={keyword:"switch"},ob={keyword:"throw",beforeExpr:!0},pb={keyword:"try"},La={keyword:"var"},Ja={keyword:"while",isLoop:!0},tb={keyword:"with"},yb={keyword:"new",beforeExpr:!0},ub={keyword:"this"},vb={keyword:"null",atomValue:null},wb={keyword:"true",atomValue:!0},xb={keyword:"false",atomValue:!1},ta={keyword:"in",binop:7,beforeExpr:!0},Ca={"break":Ha,"case":Pa,"catch":qb,"continue":eb,"debugger":fb,"default":nb,"do":gb,"else":lb,"finally":sb,
"for":hb,"function":Ma,"if":kb,"return":mb,"switch":Oa,"throw":ob,"try":pb,"var":La,"while":Ja,"with":tb,"null":vb,"true":wb,"false":xb,"new":yb,"in":ta,"instanceof":{keyword:"instanceof",binop:7,beforeExpr:!0},"this":ub,"typeof":{keyword:"typeof",prefix:!0,beforeExpr:!0},"void":{keyword:"void",prefix:!0,beforeExpr:!0},"delete":{keyword:"delete",prefix:!0,beforeExpr:!0}},ja={type:"[",beforeExpr:!0},ka={type:"]"},Z={type:"{",beforeExpr:!0},T={type:"}"},I={type:"(",beforeExpr:!0},E={type:")"},L={type:",",
beforeExpr:!0},J={type:";",beforeExpr:!0},aa={type:":",beforeExpr:!0},xa={type:"."},ya={type:"?",beforeExpr:!0},za={binop:10,beforeExpr:!0},Aa={isAssign:!0,beforeExpr:!0},U={isAssign:!0,beforeExpr:!0},Gb={postfix:!0,prefix:!0,isUpdate:!0},Xa={prefix:!0,beforeExpr:!0},Va={binop:1,beforeExpr:!0},Wa={binop:2,beforeExpr:!0},Db={binop:3,beforeExpr:!0},Fb={binop:4,beforeExpr:!0},Eb={binop:5,beforeExpr:!0},Kb={binop:6,beforeExpr:!0},Jb={binop:7,beforeExpr:!0},Ib={binop:8,beforeExpr:!0},Hb={binop:9,prefix:!0,
beforeExpr:!0},Cb={binop:10,beforeExpr:!0};a.tokTypes={bracketL:ja,bracketR:ka,braceL:Z,braceR:T,parenL:I,parenR:E,comma:L,semi:J,colon:aa,dot:xa,question:ya,slash:za,eq:Aa,name:V,eof:pa,num:ba,regexp:Ba,string:da};for(var zb in Ca)a.tokTypes["_"+zb]=Ca[zb];var Mb=d("abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile"),Nb=d("class enum extends super const export import"),
bb=d("implements interface let package private protected public static yield"),sa=d("eval arguments"),Lb=d("break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"),Bb=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,Za=RegExp("[\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),
Pb=RegExp("[\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]"),
na=/[\n\r\u2028\u2029]/,Y=/\r\n|[\n\r\u2028\u2029]/g,la=a.isIdentifierStart=function(a){return 65>a?36===a:91>a?!0:97>a?95===a:123>a?!0:170<=a&&Za.test(String.fromCharCode(a))},ab=a.isIdentifierChar=function(a){return 48>a?36===a:58>a?!0:65>a?!1:91>a?!0:97>a?95===a:123>a?!0:170<=a&&Pb.test(String.fromCharCode(a))},ca,Ia={kind:"loop"},Ob={kind:"switch"}};
"object"==typeof exports&&"object"==typeof module?mod$$inline_58(exports):"function"==typeof define&&define.amd?define(["exports"],mod$$inline_58):mod$$inline_58(this.acorn||(this.acorn={}));
// JS-Interpreter: Copyright 2013 Google Inc, Apache 2.0
var g;
function h(a,b){"string"==typeof a&&(a=acorn.parse(a,k));this.ca=a;this.Pa=b;this.pa=!1;this.fa=[];this.Ba=0;this.Oa=Object.create(null);var c=/^step([A-Z]\w*)$/,d,e;for(e in this)if(d=e.match(c))this.Oa[d[1]]=this[e].bind(this);this.l=this.$=this.B=c={b:{prototype:null}};this.f=new l(void 0,this);this.G=new l(null,this);this.va=new l(NaN,this);this.ba=new l(!0,this);this.aa=new l(!1,this);this.Ha=new l(0,this);this.wa=new l(1,this);this.xa=new l("",this);this.global=m(this,this.ca,null);this.va.u=this.B.b.prototype;
this.ba.u=this.$.b.prototype;this.aa.u=this.$.b.prototype;this.Ha.u=this.B.b.prototype;this.wa.u=this.B.b.prototype;this.xa.u=this.l.b.prototype;this.ca=acorn.parse(this.fa.join("\n"),k);this.fa=void 0;n(this,this.ca,void 0,void 0);this.c=[{node:this.ca,scope:this.global,ua:this.global,done:!1}];this.Qa();this.value=this.f;this.ca=a;this.c=[{node:this.ca,scope:this.global,ua:this.global,done:!1}];this.UNDEFINED=this.f;this.NULL=this.G;this.NAN=this.va;this.TRUE=this.ba;this.FALSE=this.aa}
var k={gb:5},q={configurable:!0,enumerable:!0,writable:!1},u={configurable:!0,enumerable:!1,writable:!0},w={configurable:!0,enumerable:!1,writable:!1},x=[];
h.prototype.Ua=function(a){var b=this.c[0];if(!b||"Program"!=b.node.type)throw Error("Expecting original AST to start with a Program node.");"string"==typeof a&&(a=acorn.parse(a,k));if(!a||"Program"!=a.type)throw Error("Expecting new AST to start with a Program node.");y(this,a,b.scope);for(var c=0,d;d=a.body[c];c++)b.node.body.push(d);b.done=!1};
h.prototype.step=function(){var a=this.c,a=a[a.length-1];if(!a)return!1;var b=a.node,c=b.type;if("Program"===c&&a.done)return!1;if(this.pa)return!0;this.Oa[c]();return b.end?!0:this.step()};h.prototype.Qa=function(){for(;!this.pa&&this.step(););return this.pa};
function z(a,b){a.setProperty(b,"Infinity",a.a(Infinity),q);a.setProperty(b,"NaN",a.va,q);a.setProperty(b,"undefined",a.f,q);a.setProperty(b,"window",b,q);a.setProperty(b,"self",b);A(a,b);B(a,b);b.u=a.m.b.prototype;a.setProperty(b,"constructor",a.m);C(a,b);D(a,b);E(a,b);aa(a,b);ba(a,b);ca(a,b);da(a,b);ea(a,b);fa(a,b);var c=function(b){b=b||a.f;return a.a(isNaN(b.h()))};a.setProperty(b,"isNaN",a.g(c,!1));c=function(b){b=b||a.f;return a.a(isFinite(b.h()))};a.setProperty(b,"isFinite",a.g(c,!1));a.setProperty(b,
"parseFloat",a.v(a.B,"parseFloat"));a.setProperty(b,"parseInt",a.v(a.B,"parseInt"));c=F(a,a.A);c.eval=!0;a.setProperty(c,"length",a.wa,q);a.setProperty(b,"eval",c);for(var d=[[escape,"escape"],[unescape,"unescape"],[decodeURI,"decodeURI"],[decodeURIComponent,"decodeURIComponent"],[encodeURI,"encodeURI"],[encodeURIComponent,"encodeURIComponent"]],e=0;e<d.length;e++)c=function(b){return function(c){c=(c||a.f).toString();try{c=b(c)}catch(I){G(a,a.Ta,I.message)}return a.a(c)}}(d[e][0]),a.setProperty(b,
d[e][1],a.g(c,!1));a.Pa&&a.Pa(a,b)}
function A(a,b){function c(b){if(b.j&&!H(a).J)if(b==a.f||b==a.G)b=a.global;else{var c=F(a,b.b.constructor);c.data=b.data;b=c}return b}var d=/^[A-Za-z_$][\w$]*$/;var e=function(b){var c=J(a)?this:F(a,a.A);var e=arguments.length?arguments[arguments.length-1].toString():"";for(var f=[],v=0;v<arguments.length-1;v++){var t=arguments[v].toString();if(!t.match(d)){G(a,a.ya,"Invalid function argument: "+t);return}f.push(t)}f=f.join(", ");c.Y=a.c[0].scope;e=acorn.parse("$ = function("+f+") {"+e+"};",k);if(1!=
e.body.length)G(a,a.ya,"Invalid code in function body.");else return c.node=e.body[0].expression.right,a.setProperty(c,"length",a.a(c.node.length),q),c};e.id=a.Ba++;a.A=F(a,null);a.setProperty(b,"Function",a.A);a.A.type="function";a.setProperty(a.A,"prototype",F(a,null));a.setProperty(a.A.b.prototype,"constructor",a.A,u);a.A.Ea=e;e=function(b,d){var e=a.c[a.c.length-1];e.s=this;e.N=c(b);e.D=[];if(d)if(K(d,a.i))for(var f=0;f<d.length;f++)e.D[f]=a.v(d,f);else G(a,a.o,"CreateListFromArrayLike called on non-object");
e.ka=!0;e.Aa=!1};L(a,a.A,"apply",e);e=function(b,d){var e=a.c[a.c.length-1];e.s=this;e.N=c(b);e.D=[];for(var f=1;f<arguments.length;f++)e.D.push(arguments[f]);e.ka=!0;e.Aa=!1};L(a,a.A,"call",e);a.fa.push("Object.defineProperty(Function.prototype, 'bind', {configurable: true, value:","function(oThis) {","if (typeof this !== 'function') {","throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');","}","var aArgs = Array.prototype.slice.call(arguments, 1),","fToBind = this,",
"fNOP = function() {},","fBound = function() {","return fToBind.apply(this instanceof fNOP","? this",": oThis,","aArgs.concat(Array.prototype.slice.call(arguments)));","};","if (this.prototype) {","fNOP.prototype = this.prototype;","}","fBound.prototype = new fNOP();","return fBound;","}","});","");e=function(){return a.a(this.toString())};L(a,a.A,"toString",e);a.setProperty(a.A,"toString",a.g(e,!1),u);e=function(){return a.a(this.valueOf())};L(a,a.A,"valueOf",e);a.setProperty(a.A,"valueOf",a.g(e,
!1),u)}
function B(a,b){var c=function(b){if(!b||b==a.f||b==a.G)return J(a)?this:F(a,a.m);if(b.j){var c=F(a,b.b.constructor);c.data=b.data;return c}return b};a.m=a.g(c,!0);a.setProperty(b,"Object",a.m);c=function(b){if(b==a.f||b==a.G)G(a,a.o,"Cannot convert undefined or null to object");else return a.R(Object.getOwnPropertyNames(b.j?b.data:b.b))};a.setProperty(a.m,"getOwnPropertyNames",a.g(c,!1),u);c=function(b){if(b.j)return a.R(Object.keys(b.data));var c=[],d;for(d in b.b)b.X[d]||c.push(d);return a.R(c)};a.setProperty(a.m,
"keys",a.g(c,!1),u);c=function(b){if(b==a.G)return F(a,null);if(b.j)G(a,a.o,"Object prototype may only be an Object or null");else return M(a,b)};a.setProperty(a.m,"create",a.g(c,!1),u);a.fa.push("(function() {","var create_ = Object.create;","Object.defineProperty(Object, 'create', {configurable: true, value:","function(proto, props) {","var obj = create_(proto);","props && Object.defineProperties(obj, props);","return obj;","}","});","})();","");c=function(b,c,f){c=(c||a.f).toString();if(f instanceof
N)if(!b.b[c]&&b.preventExtensions)G(a,a.o,"Can't define property "+c+", object is not extensible");else{var d=a.v(f,"value");d==a.f&&(d=null);var e=a.v(f,"get"),r=a.v(f,"set");f={configurable:a.H(a.v(f,"configurable")),enumerable:a.H(a.v(f,"enumerable")),writable:a.H(a.v(f,"writable")),get:e==a.f?void 0:e,set:r==a.f?void 0:r};a.setProperty(b,c,d,f);return b}else G(a,a.o,"Property description must be an object.")};a.setProperty(a.m,"defineProperty",a.g(c,!1),u);a.fa.push("Object.defineProperty(Object, 'defineProperties', {configurable: true, value:",
"function(obj, props) {","var keys = Object.keys(props);","for (var i = 0; i < keys.length; i++) {","Object.defineProperty(obj, keys[i], props[keys[i]]);","}","return obj;","}","});","");c=function(b,c){c=(c||a.f).toString();if(!(c in b.b))return a.f;var d=!b.Fa[c],e=!b.X[c],I=!b.ea[c],r=b.da[c],v=b.ga[c],t=F(a,a.m);a.setProperty(t,"configurable",a.a(d));a.setProperty(t,"enumerable",a.a(e));r||v?(a.setProperty(t,"getter",r),a.setProperty(t,"setter",v)):(a.setProperty(t,"writable",a.a(I)),a.setProperty(t,
"value",a.v(b,c)));return t};a.setProperty(a.m,"getOwnPropertyDescriptor",a.g(c,!1),u);c=function(b){b!=a.f&&b!=a.G||G(a,a.o,"Cannot convert undefined or null to object");return b.u||a.G};a.setProperty(a.m,"getPrototypeOf",a.g(c,!1),u);c=function(b){return a.a(!b.preventExtensions)};a.setProperty(a.m,"isExtensible",a.g(c,!1),u);c=function(a){a.j||(a.preventExtensions=!0);return a};a.setProperty(a.m,"preventExtensions",a.g(c,!1),u);L(a,a.m,"toString",function(){return a.a(this.toString())});L(a,a.m,
"toLocaleString",function(){return a.a(this.toString())});L(a,a.m,"valueOf",function(){return a.a(this.valueOf())});c=function(b){if(this==a.f||this==a.G)G(a,a.o,"Cannot convert undefined or null to object");else return b=(b||a.f).toString(),b in this.b?a.ba:a.aa};L(a,a.m,"hasOwnProperty",c);c=function(b){b=(b||a.f).toString();return a.a(b in this.b&&!this.X[b])};L(a,a.m,"propertyIsEnumerable",c);c=function(b){for(;;)if(b.u&&b.u!=b){if(b=b.u,b==this)return a.ba}else return a.aa};L(a,a.m,"isPrototypeOf",
c)}
function C(a,b){function c(a,b){var c=a?Math.floor(a.h()):b;isNaN(c)&&(c=b);return c}var d=function(b){var c=J(a)?this:F(a,a.i);var d=arguments[0];if(1==arguments.length&&"number"==d.type)isNaN(O(d))&&G(a,a.Ia,"Invalid array length"),c.length=d.data;else{for(d=0;d<arguments.length;d++)c.b[d]=arguments[d];c.length=d}return c};a.i=a.g(d,!0);a.setProperty(b,"Array",a.i);d=function(b){return a.a(K(b,a.i))};a.setProperty(a.i,"isArray",a.g(d,!1),u);L(a,a.i,"pop",function(){if(this.length){var b=this.b[this.length-1];
delete this.b[this.length-1];this.length--}else b=a.f;return b});d=function(b){for(var c=0;c<arguments.length;c++)this.b[this.length]=arguments[c],this.length++;return a.a(this.length)};L(a,a.i,"push",d);L(a,a.i,"shift",function(){if(this.length){var b=this.b[0];for(var c=1;c<this.length;c++)this.b[c-1]=this.b[c];this.length--;delete this.b[this.length]}else b=a.f;return b});d=function(b){for(var c=this.length-1;0<=c;c--)this.b[c+arguments.length]=this.b[c];this.length+=arguments.length;for(c=0;c<
arguments.length;c++)this.b[c]=arguments[c];return a.a(this.length)};L(a,a.i,"unshift",d);L(a,a.i,"reverse",function(){for(var a=0;a<this.length/2;a++){var b=this.b[this.length-a-1];this.b[this.length-a-1]=this.b[a];this.b[a]=b}return this});d=function(b,d,p){b=c(b,0);b=0>b?Math.max(this.length+b,0):Math.min(b,this.length);d=c(d,Infinity);d=Math.min(d,this.length-b);for(var e=F(a,a.i),f=b;f<b+d;f++)e.b[e.length++]=this.b[f],this.b[f]=this.b[f+d];for(f=b+d;f<this.length-d;f++)this.b[f]=this.b[f+d];
for(f=this.length-d;f<this.length;f++)delete this.b[f];this.length-=d;for(f=this.length-1;f>=b;f--)this.b[f+arguments.length-2]=this.b[f];this.length+=arguments.length-2;for(f=2;f<arguments.length;f++)this.b[b+f-2]=arguments[f];return e};L(a,a.i,"splice",d);d=function(b,d){var e=F(a,a.i),f=c(b,0);0>f&&(f=this.length+f);var f=Math.max(0,Math.min(f,this.length)),r=c(d,this.length);0>r&&(r=this.length+r);for(var r=Math.max(0,Math.min(r,this.length)),v=0;f<r;f++){var t=a.v(this,f);a.setProperty(e,v++,
t)}return e};L(a,a.i,"slice",d);d=function(b){x.push(this);try{var c=b&&void 0!==b.data?b.toString():void 0;var d=[];for(b=0;b<this.length;b++)d[b]=this.b[b].toString()}finally{x.pop()}return a.a(d.join(c))};L(a,a.i,"join",d);d=function(b){for(var c,d=F(a,a.i),e=0,r=0;r<this.length;r++)c=a.v(this,r),a.setProperty(d,e++,c);for(r=0;r<arguments.length;r++){var v=arguments[r];if(K(v,a.i))for(var t=0;t<v.length;t++)c=a.v(v,t),a.setProperty(d,e++,c);else a.setProperty(d,e++,v)}return d};L(a,a.i,"concat",
d);d=function(b,d){b=b||a.f;var e=c(d,0);0>e&&(e=this.length+e);for(e=Math.max(0,e);e<this.length;e++){var f=a.v(this,e);if(f.j&&b.j?f.data===b.data:f===b)return a.a(e)}return a.a(-1)};L(a,a.i,"indexOf",d);d=function(b,d){b=b||a.f;var e=c(d,this.length);0>e&&(e=this.length+e);for(e=Math.min(e,this.length-1);0<=e;e--){var f=a.v(this,e);if(f.j&&b.j?f.data===b.data:f===b)return a.a(e)}return a.a(-1)};L(a,a.i,"lastIndexOf",d);a.fa.push("Object.defineProperty(Array.prototype, 'every', {configurable: true, value:",
"function(callbackfn, thisArg) {","if (this == null || typeof callbackfn !== 'function') throw new TypeError;","var T, k;","var O = Object(this);","var len = O.length >>> 0;","if (arguments.length > 1) T = thisArg;","k = 0;","while (k < len) {","if (k in O && !callbackfn.call(T, O[k], k, O)) return false;","k++;","}","return true;","}","});","Object.defineProperty(Array.prototype, 'filter', {configurable: true, value:","function(fun/*, thisArg*/) {","if (this === void 0 || this === null || typeof fun !== 'function') throw new TypeError;",
"var t = Object(this);","var len = t.length >>> 0;","var res = [];","var thisArg = arguments.length >= 2 ? arguments[1] : void 0;","for (var i = 0; i < len; i++) {","if (i in t) {","var val = t[i];","if (fun.call(thisArg, val, i, t)) res.push(val);","}","}","return res;","}","});","Object.defineProperty(Array.prototype, 'forEach', {configurable: true, value:","function(callback, thisArg) {","if (this == null || typeof callback !== 'function') throw new TypeError;","var T, k;","var O = Object(this);",
"var len = O.length >>> 0;","if (arguments.length > 1) T = thisArg;","k = 0;","while (k < len) {","if (k in O) callback.call(T, O[k], k, O);","k++;","}","}","});","Object.defineProperty(Array.prototype, 'map', {configurable: true, value:","function(callback, thisArg) {","if (this == null || typeof callback !== 'function') new TypeError;","var T, A, k;","var O = Object(this);","var len = O.length >>> 0;","if (arguments.length > 1) T = thisArg;","A = new Array(len);","k = 0;","while (k < len) {","if (k in O) A[k] = callback.call(T, O[k], k, O);",
"k++;","}","return A;","}","});","Object.defineProperty(Array.prototype, 'reduce', {configurable: true, value:","function(callback /*, initialValue*/) {","if (this == null || typeof callback !== 'function') throw new TypeError;","var t = Object(this), len = t.length >>> 0, k = 0, value;","if (arguments.length == 2) {","value = arguments[1];","} else {","while (k < len && !(k in t)) k++;","if (k >= len) {","throw new TypeError('Reduce of empty array with no initial value');","}","value = t[k++];",
"}","for (; k < len; k++) {","if (k in t) value = callback(value, t[k], k, t);","}","return value;","}","});","Object.defineProperty(Array.prototype, 'reduceRight', {configurable: true, value:","function(callback /*, initialValue*/) {","if (null === this || 'undefined' === typeof this || 'function' !== typeof callback) throw new TypeError;","var t = Object(this), len = t.length >>> 0, k = len - 1, value;","if (arguments.length >= 2) {","value = arguments[1];","} else {","while (k >= 0 && !(k in t)) k--;",
"if (k < 0) {","throw new TypeError('Reduce of empty array with no initial value');","}","value = t[k--];","}","for (; k >= 0; k--) {","if (k in t) value = callback(value, t[k], k, t);","}","return value;","}","});","Object.defineProperty(Array.prototype, 'some', {configurable: true, value:","function(fun/*, thisArg*/) {","if (this == null || typeof fun !== 'function') throw new TypeError;","var t = Object(this);","var len = t.length >>> 0;","var thisArg = arguments.length >= 2 ? arguments[1] : void 0;",
"for (var i = 0; i < len; i++) {","if (i in t && fun.call(thisArg, t[i], i, t)) {","return true;","}","}","return false;","}","});","Object.defineProperty(Array.prototype, 'sort', {configurable: true, value:","function(opt_comp) {","for (var i = 0; i < this.length; i++) {","var changes = 0;","for (var j = 0; j < this.length - i - 1; j++) {","if (opt_comp ?opt_comp(this[j], this[j + 1]) > 0 : this[j] > this[j + 1]) {","var swap = this[j];","this[j] = this[j + 1];","this[j + 1] = swap;","changes++;",
"}","}","if (changes <= 1) break;","}","return this;","}","});","Object.defineProperty(Array.prototype, 'toLocaleString', {configurable: true, value:","function() {","var out = [];","for (var i = 0; i < this.length; i++) {","out[i] = (this[i] === null || this[i] === undefined) ? '' : this[i].toLocaleString();","}","return out.join(',');","}","});","")}
function D(a,b){var c=function(b){b=b?b.h():0;return J(a)?(this.data=b,this):a.a(b)};a.B=a.g(c,!0);a.setProperty(b,"Number",a.B);c=["MAX_VALUE","MIN_VALUE","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY"];for(var d=0;d<c.length;d++)a.setProperty(a.B,c[d],a.a(Number[c[d]]));c=function(b){b=b||a.f;return a.a(parseFloat(b.toString()))};a.setProperty(a.B,"parseFloat",a.g(c,!1));c=function(b,c){b=b||a.f;c=c||a.f;return a.a(parseInt(b.toString(),c.h()))};a.setProperty(a.B,"parseInt",a.g(c,!1));c=function(b){b=
b?b.h():void 0;return a.a(this.h().toExponential(b))};L(a,a.B,"toExponential",c);c=function(b){b=b?b.h():void 0;return a.a(this.h().toFixed(b))};L(a,a.B,"toFixed",c);c=function(b){b=b?b.h():void 0;return a.a(this.h().toPrecision(b))};L(a,a.B,"toPrecision",c);c=function(b){b=b?b.h():10;return a.a(this.h().toString(b))};L(a,a.B,"toString",c);c=function(b,c){b=b?a.H(b):void 0;c=c?a.H(c):void 0;return a.a(this.h().toLocaleString(b,c))};L(a,a.B,"toLocaleString",c)}
function E(a,b){var c=function(b){b=b?b.toString():"";return J(a)?(this.data=b,this):a.a(b)};a.l=a.g(c,!0);a.setProperty(b,"String",a.l);c=function(b){for(var c=0;c<arguments.length;c++)arguments[c]=arguments[c].h();return a.a(String.fromCharCode.apply(String,arguments))};a.setProperty(a.l,"fromCharCode",a.g(c,!1),u);for(var d=["toLowerCase","toUpperCase","toLocaleLowerCase","toLocaleUpperCase"],e=0;e<d.length;e++)c=function(b){return function(){return a.a(b.apply(this))}}(String.prototype[d[e]]),
L(a,a.l,d[e],c);L(a,a.l,"trim",function(){return a.a(this.toString().replace(/^\s+|\s+$/g,""))});L(a,a.l,"trimLeft",function(){return a.a(this.toString().replace(/^\s+/g,""))});L(a,a.l,"trimRight",function(){return a.a(this.toString().replace(/\s+$/g,""))});d=["charAt","charCodeAt","substring","slice","substr"];for(e=0;e<d.length;e++)c=function(b){return function(){for(var c=0;c<arguments.length;c++)arguments[c]=arguments[c].h();return a.a(b.apply(this,arguments))}}(String.prototype[d[e]]),L(a,a.l,
d[e],c);c=function(b,c){var d=this.toString();b=(b||a.f).toString();c=c?c.h():void 0;return a.a(d.indexOf(b,c))};L(a,a.l,"indexOf",c);c=function(b,c){var d=this.toString();b=(b||a.f).toString();c=c?c.h():void 0;return a.a(d.lastIndexOf(b,c))};L(a,a.l,"lastIndexOf",c);c=function(b,c,d){b=(b||a.f).toString();c=c?a.H(c):void 0;d=d?a.H(d):void 0;return a.a(this.toString().localeCompare(b,c,d))};L(a,a.l,"localeCompare",c);c=function(b,c){var d=this.toString();b=b?K(b,a.K)?b.data:b.toString():void 0;c=
c?c.h():void 0;for(var d=d.split(b,c),e=F(a,a.i),f=0;f<d.length;f++)a.setProperty(e,f,a.a(d[f]));return e};L(a,a.l,"split",c);c=function(b){for(var c=this.toString(),d=0;d<arguments.length;d++)c+=arguments[d].toString();return a.a(c)};L(a,a.l,"concat",c);c=function(b){var c=this.toString();b=b?b.data:void 0;b=c.match(b);if(null===b)return a.G;for(var c=F(a,a.i),d=0;d<b.length;d++)a.setProperty(c,d,a.a(b[d]));return c};L(a,a.l,"match",c);c=function(b){var c=this.toString();b=b?b.data:void 0;return a.a(c.search(b))};
L(a,a.l,"search",c);c=function(b,c){var d=this.toString();b=(b||a.f).valueOf();c=(c||a.f).toString();return a.a(d.replace(b,c))};L(a,a.l,"replace",c)}function aa(a,b){a.$=a.g(function(b){b=b?b.S():!1;return J(a)?(this.data=b,this):a.a(b)},!0);a.setProperty(b,"Boolean",a.$)}
function ba(a,b){var c=function(b,c){if(J(a))var d=this;else return a.a(Date());if(arguments.length)if(1!=arguments.length||"string"!=b.type&&!K(b,a.l)){for(var e=[null],f=0;f<arguments.length;f++)e[f+1]=arguments[f]?arguments[f].h():void 0;d.data=new (Function.prototype.bind.apply(Date,e))}else d.data=new Date(b.toString());else d.data=new Date;return d};a.ja=a.g(c,!0);a.setProperty(b,"Date",a.ja);a.setProperty(a.ja,"now",a.g(function(){return a.a((new Date).getTime())},!1),u);c=function(b){b=b?
b.toString():void 0;return a.a(Date.parse(b))};a.setProperty(a.ja,"parse",a.g(c,!1),u);c=function(b){for(var c=[],d=0;d<arguments.length;d++)c[d]=arguments[d]?arguments[d].h():void 0;return a.a(Date.UTC.apply(Date,c))};a.setProperty(a.ja,"UTC",a.g(c,!1),u);for(var d="getDate getDay getFullYear getHours getMilliseconds getMinutes getMonth getSeconds getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getYear setDate setFullYear setHours setMilliseconds setMinutes setMonth setSeconds setTime setUTCDate setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes setUTCMonth setUTCSeconds setYear toDateString toISOString toJSON toGMTString toLocaleDateString toLocaleString toLocaleTimeString toTimeString toUTCString".split(" "),
e=0;e<d.length;e++)c=function(b){return function(c){for(var d=[],e=0;e<arguments.length;e++)d[e]=a.H(arguments[e]);return a.a(this.data[b].apply(this.data,d))}}(d[e]),L(a,a.ja,d[e],c)}
function ca(a,b){var c=F(a,a.m);a.setProperty(b,"Math",c);for(var d="E LN2 LN10 LOG2E LOG10E PI SQRT1_2 SQRT2".split(" "),e=0;e<d.length;e++)a.setProperty(c,d[e],a.a(Math[d[e]]),w);d="abs acos asin atan atan2 ceil cos exp floor log max min pow random round sin sqrt tan".split(" ");for(e=0;e<d.length;e++)a.setProperty(c,d[e],a.g(function(b){return function(){for(var c=0;c<arguments.length;c++)arguments[c]=arguments[c].h();return a.a(b.apply(Math,arguments))}}(Math[d[e]]),!1),u)}
function da(a,b){var c=function(b,c){var d=J(a)?this:F(a,a.K);b=b?b.toString():"";c=c?c.toString():"";return P(a,d,new RegExp(b,c))};a.K=a.g(c,!0);a.setProperty(b,"RegExp",a.K);a.setProperty(a.K.b.prototype,"global",a.f,w);a.setProperty(a.K.b.prototype,"ignoreCase",a.f,w);a.setProperty(a.K.b.prototype,"multiline",a.f,w);a.setProperty(a.K.b.prototype,"source",a.a("(?:)"),w);c=function(b){b=b.toString();return a.a(this.data.test(b))};L(a,a.K,"test",c);c=function(b){b=b.toString();this.data.lastIndex=
a.v(this,"lastIndex").h();b=this.data.exec(b);a.setProperty(this,"lastIndex",a.a(this.data.lastIndex));if(b){for(var c=F(a,a.i),d=0;d<b.length;d++)a.setProperty(c,d,a.a(b[d]));a.setProperty(c,"index",a.a(b.index));a.setProperty(c,"input",a.a(b.input));return c}return a.G};L(a,a.K,"exec",c)}
function ea(a,b){function c(b){try{var c=JSON.parse(b.toString())}catch(p){G(a,a.ya,p.message);return}return a.R(c)}var d=F(a,a.m);a.setProperty(b,"JSON",d);a.setProperty(d,"parse",a.g(c,!1));c=function(b){b=a.H(b);try{var c=JSON.stringify(b)}catch(p){G(a,a.o,p.message);return}return a.a(c)};a.setProperty(d,"stringify",a.g(c,!1))}
function fa(a,b){function c(c){var d=a.g(function(b){var c=J(a)?this:F(a,d);b&&a.setProperty(c,"message",a.a(String(b)),u);return c},!0);a.setProperty(d,"prototype",F(a,a.U));a.setProperty(d.b.prototype,"name",a.a(c),u);a.setProperty(b,c,d);return d}a.U=a.g(function(b){var c=J(a)?this:F(a,a.U);b&&a.setProperty(c,"message",a.a(String(b)),u);return c},!0);a.setProperty(b,"Error",a.U);a.setProperty(a.U.b.prototype,"message",a.xa,u);a.setProperty(a.U.b.prototype,"name",a.a("Error"),u);c("EvalError");
a.Ia=c("RangeError");a.Ja=c("ReferenceError");a.ya=c("SyntaxError");a.o=c("TypeError");a.Ta=c("URIError")}function K(a,b){if(!a||!b)return!1;var c=b.b.prototype;do if(a==c)return!0;while(a=a.u);return!1}function Q(a,b){if(a.j&&"number"==typeof a.data&&isNaN(a.data)||b.j&&"number"==typeof b.data&&isNaN(b.data))return NaN;if(a===b)return 0;var c=a.j?a.data:a.toString(),d=b.j?b.data:b.toString();return c<d?-1:c>d?1:(a.j||b.j)&&c==d?0:NaN}
function O(a){a=Number(a);return!isFinite(a)||a!=Math.floor(a)||0>a||a>=Math.pow(2,32)?NaN:a}function l(a,b){var c=typeof a;this.data=a;this.type=c;"number"==c?this.u=b.B.b.prototype:"string"==c?this.u=b.l.b.prototype:"boolean"==c&&(this.u=b.$.b.prototype)}g=l.prototype;g.data=void 0;g.type="undefined";g.u=null;g.j=!0;g.S=function(){return!!this.data};g.h=function(){return Number(this.data)};g.toString=function(){return String(this.data)};g.valueOf=function(){return this.data};
h.prototype.a=function(a){return void 0===a?this.f:null===a?this.G:!0===a?this.ba:!1===a?this.aa:0===a?this.Ha:1===a?this.wa:""===a?this.xa:a instanceof RegExp?P(this,F(this,this.K),a):new l(a,this)};function N(a){this.Fa=Object.create(null);this.X=Object.create(null);this.ea=Object.create(null);this.da=Object.create(null);this.ga=Object.create(null);this.b=Object.create(null);this.u=a}g=N.prototype;g.type="object";g.u=null;g.j=!1;g.data=void 0;g.S=function(){return!0};
g.h=function(){return Number(void 0===this.data?this.toString():this.data)};
g.toString=function(){if(0<=this.length){var a=x;a.push(this);try{var b=[];for(var c=0;c<this.length;c++){var d=this.b[c];b[c]=!d||d.j&&(null===d.data||void 0===d.data)||-1!=a.indexOf(d)?"":d.toString()}}finally{a.pop()}return b.join(",")}if(this.error){a=x;if(-1!=a.indexOf(this))return"[Error]";b=this;do if("name"in b.b){c=b.b.name;break}while(b.u!=b&&(b=b.u));b=this;do if("message"in b.b){var e=b.b.message;break}while(b=b.u);a.push(this);try{c=c&&c.toString(),e=e&&e.toString()}finally{a.pop()}return e?
c+": "+e:c+""}return void 0!==this.data?String(this.data):"["+this.type+"]"};g.valueOf=function(){return void 0===this.data?this:this.data};function F(a,b){return M(a,b&&b.b.prototype)}function M(a,b){var c=new N(b);K(c,a.A)&&(c.type="function",a.setProperty(c,"prototype",F(a,a.m||null)));K(c,a.i)&&(c.length=0);K(c,a.U)&&(c.error=!0);return c}
function P(a,b,c){b.data=c;a.setProperty(b,"lastIndex",a.a(c.lastIndex),u);a.setProperty(b,"source",a.a(c.source),w);a.setProperty(b,"global",a.a(c.global),w);a.setProperty(b,"ignoreCase",a.a(c.ignoreCase),w);a.setProperty(b,"multiline",a.a(c.multiline),w);b.toString=function(){return String(this.data)};b.valueOf=function(){return this.data};return b}function R(a,b,c){var d=F(a,a.A);d.Y=c;d.node=b;a.setProperty(d,"length",a.a(d.node.params.length),q);return d}g=h.prototype;
g.g=function(a,b){var c=F(this,this.A);c.Ea=a;a.id=this.Ba++;this.setProperty(c,"length",this.a(a.length),q);b?this.setProperty(c.b.prototype,"constructor",c,u):!1===b&&(c.bb=!0,this.setProperty(c,"prototype",this.f));return c};g.Va=function(a){var b=F(this,this.A);b.Ka=a;a.id=this.Ba++;this.setProperty(b,"length",this.a(a.length),q);return b};
g.R=function(a){if("boolean"==typeof a||"number"==typeof a||"string"==typeof a||null===a||void 0===a||a instanceof RegExp)return this.a(a);if(a instanceof Function){var b=this;return this.g(function(){return b.R(a.apply(b,Array.prototype.slice.call(arguments).map(function(a){return b.H(a)})))},void 0)}if(a instanceof Array){var c=F(this,this.i);for(var d=0;d<a.length;d++)this.setProperty(c,d,this.R(a[d]))}else for(d in c=F(this,this.m),a)this.setProperty(c,d,this.R(a[d]));return c};
g.H=function(a,b){if(a.j||K(a,this.B)||K(a,this.l)||K(a,this.$))return a.data;var c=b||{Ga:[],ta:[]},d=c.Ga.indexOf(a);if(-1!=d)return c.ta[d];c.Ga.push(a);if(K(a,this.i)){var e=[];c.ta.push(e);for(d=0;d<a.length;d++)e[d]=this.H(a.b[d],c)}else{e={};c.ta.push(e);for(var f in a.b)a.X[f]||(d=a.b[f],e[f]=this.H(d,c))}c.Ga.pop();c.ta.pop();return e};
g.v=function(a,b){b=b.toString();if(a==this.f||a==this.G)return G(this,this.o,"Cannot read property '"+b+"' of "+a),null;if("length"==b){if(K(a,this.l))return this.a(a.data.length);if(K(a,this.i))return this.a(a.length)}else if(64>b.charCodeAt(0)&&K(a,this.l)){var c=O(b);if(!isNaN(c)&&c<a.data.length)return this.a(a.data[c])}do if(a.b&&b in a.b)return(c=a.da[b])?(c.L=!0,c):a.b[b];while(a=a.u);return this.f};
function S(a,b,c){c=c.toString();if(b.j)throw TypeError("Primitive data type has no properties");if("length"==c&&(K(b,a.l)||K(b,a.i))||K(b,a.l)&&(a=O(c),!isNaN(a)&&a<b.data.length))return!0;do if(b.b&&c in b.b)return!0;while(b=b.u);return!1}
g.setProperty=function(a,b,c,d){b=b.toString();d&&a.Fa[b]&&G(this,this.o,"Cannot redefine property: "+b);if("object"!=typeof c)throw Error("Failure to wrap a value: "+c);a!=this.f&&a!=this.G||G(this,this.o,"Cannot set property '"+b+"' of "+a);d&&(d.get||d.set)&&(c||void 0!==d.writable)&&G(this,this.o,"Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");var e=!this.c||H(this).J;if(a.j)e&&G(this,this.o,"Can't create property '"+b+"' on '"+a.data+"'");else{if(K(a,
this.l)){var f=O(b);if("length"==b||!isNaN(f)&&f<a.data.length){e&&G(this,this.o,"Cannot assign to read only property '"+b+"' of String '"+a.data+"'");return}}if(K(a,this.i)){if("length"==b){b=O(c.h());isNaN(b)&&G(this,this.Ia,"Invalid array length");if(b<a.length)for(p in a.b){var p=O(p);!isNaN(p)&&b<=p&&delete a.b[p]}a.length=b;return}isNaN(p=O(b))||(a.length=Math.max(a.length,p+1))}if(!a.b[b]&&a.preventExtensions)e&&G(this,this.o,"Can't add property "+b+", object is not extensible");else if(d)a.b[b]=
c,d.configurable||(a.Fa[b]=!0),(c=d.get)?a.da[b]=c:delete a.da[b],(e=d.set)?a.ga[b]=e:delete a.ga[b],d.enumerable?delete a.X[b]:a.X[b]=!0,c||e?(delete a.ea[b],a.b[b]=this.f):d.writable?delete a.ea[b]:a.ea[b]=!0;else{d=a;do if(d.ga&&d.ga[b])return d.ga[b];while(d=d.u);a.da&&a.da[b]?e&&G(this,this.o,"Cannot set property '"+b+"' of object '"+a+"' which only has a getter"):a.ea[b]?e&&G(this,this.o,"Cannot assign to read only property '"+b+"' of object '"+a+"'"):a.b[b]=c}}};
function L(a,b,c,d){a.setProperty(b.b.prototype,c,a.g(d,!1),u)}g.deleteProperty=function(a,b){b=b.toString();return a.j||a.ea[b]||"length"==b&&K(a,this.i)?!1:delete a.b[b]};function H(a){for(var b=a.c.length-1;0<=b;b--)if(a.c[b].scope)return a.c[b].scope;throw Error("No scope found.");}function m(a,b,c){var d=F(a,null);(d.Y=c)||z(a,d);y(a,b,d);d.J=!1;c&&c.J?d.J=!0:(a=b.body&&b.body[0])&&a.Na&&"Literal"==a.Na.type&&"use strict"==a.Na.value&&(d.J=!0);return d}
function T(a,b,c){if(!b)throw Error("parentScope required");a=c||F(a,null);a.Y=b;a.J=b.J;return a}function U(a,b){for(var c=H(a),d=b.toString();c&&c!=a.global;){if(d in c.b)return c.b[d];c=c.Y}if(c==a.global&&S(a,c,d))return a.v(c,d);c=a.c[a.c.length-1].node;if("UnaryExpression"==c.type&&"typeof"==c.operator)return a.f;G(a,a.Ja,d+" is not defined");return null}
function y(a,b,c){if("VariableDeclaration"==b.type)for(var d=0;d<b.declarations.length;d++)a.setProperty(c,b.declarations[d].id.name,a.f);else{if("FunctionDeclaration"==b.type){a.setProperty(c,b.id.name,R(a,b,c));return}if("FunctionExpression"==b.type||"ExpressionStatement"==b.type)return}var e=b.constructor,f;for(f in b){var p=b[f];if(p&&"object"==typeof p)if(p instanceof Array)for(d=0;d<p.length;d++)p[d]&&p[d].constructor==e&&y(a,p[d],c);else p.constructor==e&&y(a,p,c)}}
function n(a,b,c,d){c?b.start=c:delete b.start;d?b.end=d:delete b.end;for(var e in b)if(b.hasOwnProperty(e)){var f=b[e];f&&"object"==typeof f&&n(a,f,c,d)}}function J(a){return a.c[a.c.length-1].isConstructor}function V(a,b){return b instanceof Array?a.v(b[0],b[1]):U(a,b)}
function W(a,b,c){if(b instanceof Array)a=a.setProperty(b[0],b[1],c);else a:{var d=H(a);for(b=b.toString();d&&d!=a.global;){if(b in d.b){d.b[b]=c;a=void 0;break a}d=d.Y}d!=a.global||d.J&&!S(a,d,b)?(G(a,a.Ja,b+" is not defined"),a=void 0):a=a.setProperty(d,b,c)}return a}function G(a,b,c){void 0!==c&&(b=F(a,b),a.setProperty(b,"message",a.a(c),u));X(a,b)}
function X(a,b){do{a.c.pop();var c=a.c[a.c.length-1];if("TryStatement"==c.node.type){c.Z=b;return}}while(c&&"Program"!=c.node.type);if(K(b,a.U)){c={EvalError:EvalError,RangeError:RangeError,ReferenceError:ReferenceError,SyntaxError:SyntaxError,TypeError:TypeError,URIError:URIError};var d=a.v(b,"name").toString(),e=a.v(b,"message").valueOf();c=(c[d]||Error)(e)}else c=b.toString();throw c;}function Y(a,b,c){a.c.push({node:{type:"CallExpression"},za:!0,N:c instanceof Array?c[0]:c,s:b,ka:!0,D:[]})}
function Z(a,b,c,d){a.c.push({node:{type:"CallExpression"},za:!0,N:c instanceof Array?c[0]:a.global,s:b,ka:!0,D:[d]})}h.prototype.stepArrayExpression=function(){var a=this.c,b=a[a.length-1],c=b.node,d=b.w||0;b.qa?b.value&&this.setProperty(b.qa,d-1,b.value):b.qa=F(this,this.i);d<c.elements.length?(b.w=d+1,c.elements[d]?a.push({node:c.elements[d]}):b.value=void 0):(b.qa.length=b.w||0,a.pop(),a[a.length-1].value=b.qa)};
h.prototype.stepAssignmentExpression=function(){var a=this.c,b=a[a.length-1],c=b.node;if(b.V)if(b.na)if(b.P)a.pop(),a[a.length-1].value=b.P;else{var d=b.value;if("="!=c.operator){var e=b.C.h(),f=d.h();if("+="==c.operator)"string"==b.C.type||"string"==d.type?(c=b.C.toString(),d=d.toString()):(c=e,d=f),d=c+d;else if("-="==c.operator)d=e-f;else if("*="==c.operator)d=e*f;else if("/="==c.operator)d=e/f;else if("%="==c.operator)d=e%f;else if("<<="==c.operator)d=e<<f;else if(">>="==c.operator)d=e>>f;else if(">>>="==
c.operator)d=e>>>f;else if("&="==c.operator)d=e&f;else if("^="==c.operator)d=e^f;else if("|="==c.operator)d=e|f;else throw SyntaxError("Unknown assignment expression: "+c.operator);d=this.a(d)}(f=W(this,b.I,d))?(b.P=d,Z(this,f,b.I,d)):(a.pop(),a[a.length-1].value=d)}else{b.I||(b.I=b.value);b.la&&(b.C=b.value);if(!b.la&&"="!=c.operator&&(b.C=V(this,b.I),b.C.L)){b.C.L=!1;b.la=!0;Y(this,b.C,b.I);return}b.na=!0;a.push({node:c.right})}else b.V=!0,a.push({node:c.left,O:!0})};
h.prototype.stepBinaryExpression=function(){var a=this.c;var b=a[a.length-1];var c=b.node;if(b.V)if(b.na){a.pop();var d=b.C;b=b.value;var e=Q(d,b);if("=="==c.operator||"!="==c.operator){var f=d.j&&b.j?d.data==b.data:0===e;"!="==c.operator&&(f=!f)}else if("==="==c.operator||"!=="==c.operator)f=d.j&&b.j?d.data===b.data:d===b,"!=="==c.operator&&(f=!f);else if(">"==c.operator)f=1==e;else if(">="==c.operator)f=1==e||0===e;else if("<"==c.operator)f=-1==e;else if("<="==c.operator)f=-1==e||0===e;else if("+"==
c.operator)d=d.j?d.data:d.toString(),b=b.j?b.data:b.toString(),f=d+b;else if("in"==c.operator)b.j?G(this,this.o,"Expecting an object evaluating 'in'"):f=S(this,b,d);else if("instanceof"==c.operator)K(b,this.A)?f=d.j?this.aa:K(d,b):G(this,this.o,"Expecting a function in instanceof check");else if(d=d.h(),b=b.h(),"-"==c.operator)f=d-b;else if("*"==c.operator)f=d*b;else if("/"==c.operator)f=d/b;else if("%"==c.operator)f=d%b;else if("&"==c.operator)f=d&b;else if("|"==c.operator)f=d|b;else if("^"==c.operator)f=
d^b;else if("<<"==c.operator)f=d<<b;else if(">>"==c.operator)f=d>>b;else if(">>>"==c.operator)f=d>>>b;else throw SyntaxError("Unknown binary operator: "+c.operator);a[a.length-1].value=this.a(f)}else b.na=!0,b.C=b.value,a.push({node:c.right});else b.V=!0,a.push({node:c.left})};h.prototype.stepBlockStatement=function(){var a=this.c,b=a[a.length-1],c=b.node,d=b.w||0;c.body[d]?(b.w=d+1,a.push({node:c.body[d]})):a.pop()};
h.prototype.stepBreakStatement=function(){var a=this.c,b=a.pop(),c=null;for(b.node.label&&(c=b.node.label.name);b&&"CallExpression"!=b.node.type&&"NewExpression"!=b.node.type;){if(c){if(b.labels&&-1!=b.labels.indexOf(c))return}else if(b.ra||b.cb)return;b=a.pop()}throw SyntaxError("Illegal break statement");};
h.prototype.stepCallExpression=function(){var a=this.c,b=a[a.length-1];var c=b.node;if(b.za){if(!b.s){if("function"==b.value.type)b.s=b.value;else{b.s=V(this,b.value);if(b.s.L){b.s.L=!1;Y(this,b.s,b.value);b.s=null;return}if(!b.s)return;if("function"!=b.s.type){G(this,this.o,(b.s&&b.s.type)+" is not a function");return}}if("NewExpression"==b.node.type){if(b.s.bb){G(this,this.o,"function is not a constructor");return}b.N=F(this,b.s);b.isConstructor=!0}else b.N=b.value.length?b.value[0]:H(this).J?this.f:
this.global;b.D=[];b.w=0}if(!b.ka){0!=b.w&&b.D.push(b.value);if(c.arguments[b.w]){a.push({node:c.arguments[b.w]});b.w++;return}b.ka=!0}if(b.Aa)a.pop(),a[a.length-1].value=b.isConstructor&&"object"!==b.value.type?b.N:b.value;else{b.Aa=!0;var d=b.s.node;if(d){c=m(this,d.body,b.s.Y);for(var e=0;e<d.params.length;e++){var f=this.a(d.params[e].name);this.setProperty(c,f,b.D.length>e?b.D[e]:this.f)}f=F(this,this.i);for(e=0;e<b.D.length;e++)this.setProperty(f,this.a(e),b.D[e]);this.setProperty(c,"arguments",
f);(e=d.id&&d.id.name)&&this.setProperty(c,e,b.s);a.push({node:d.body,scope:c,ua:b.N});b.value=this.f}else if(b.s.Ea)b.value=b.s.Ea.apply(b.N,b.D);else if(b.s.Ka){var p=this,a=b.D.concat(function(a){b.value=a||p.f;p.pa=!1});this.pa=!0;b.s.Ka.apply(b.N,a)}else b.s.eval?(d=b.D[0])?d.j?(d=acorn.parse(d.toString(),k),b={node:{type:"EvalProgram_",body:d.body}},n(this,b.node,c.start,c.end),c=H(this),y(this,d,c),a.push(b)):b.value=d:b.value=this.f:G(this,this.o,"function is not a function")}}else b.za=!0,
a.push({node:c.callee,O:!0})};h.prototype.stepCatchClause=function(){var a=this.c,b=a[a.length-1],c=b.node;if(b.M)a.pop();else{b.M=!0;if(c.param){var d=T(this,H(this));var e=this.a(c.param.name);this.setProperty(d,e,b.Z)}a.push({node:c.body,scope:d})}};
h.prototype.stepConditionalExpression=function(){var a=this.c,b=a[a.length-1],c=b.W||0;if(0==c)b.W=1,a.push({node:b.node.test});else{if(1==c){b.W=2;if((c=b.value.S())&&b.node.consequent){a.push({node:b.node.consequent});return}if(!c&&b.node.alternate){a.push({node:b.node.alternate});return}this.value=this.f}a.pop();"ConditionalExpression"==b.node.type&&(a[a.length-1].value=b.value)}};
h.prototype.stepContinueStatement=function(){var a=this.c,b=a.pop(),c=null;b.node.label&&(c=b.node.label.name);for(b=a[a.length-1];b&&"CallExpression"!=b.node.type&&"NewExpression"!=b.node.type;){if(b.ra&&(!c||b.labels&&-1!=b.labels.indexOf(c)))return;a.pop();b=a[a.length-1]}throw SyntaxError("Illegal continue statement");};h.prototype.stepDebugger=function(){};
h.prototype.stepDoWhileStatement=function(){var a=this.c,b=a[a.length-1];"DoWhileStatement"==b.node.type&&void 0===b.ha&&(b.value=this.ba,b.ha=!0);b.ha?b.value.S()?b.node.body&&(b.ha=!1,b.ra=!0,a.push({node:b.node.body})):a.pop():(b.ha=!0,a.push({node:b.node.test}))};h.prototype.stepEmptyStatement=function(){this.c.pop()};h.prototype.stepEvalProgram_=function(){var a=this.c,b=a[a.length-1],c=b.node,d=b.w||0;c.body[d]?(b.w=d+1,a.push({node:c.body[d]})):(a.pop(),a[a.length-1].value=this.value)};
h.prototype.stepExpressionStatement=function(){var a=this.c,b=a[a.length-1];b.M?(a.pop(),this.value=b.value):(b.M=!0,a.push({node:b.node.expression}))};
h.prototype.stepForInStatement=function(){var a=this.c,b=a[a.length-1],c=b.node;if(!b.$a&&(b.$a=!0,c.left.declarations&&c.left.declarations[0].init)){if(H(this).J)throw SyntaxError("for-in loop variable declaration may not have an initializer.");a.push({node:c.left});return}if(b.ma){b.F||(b.ra=!0,b.F=b.value,b.ia=[]);if(void 0===b.sa){a:do{if(b.F.j)for(var d in b.F.data){if(-1==b.ia.indexOf(d)){b.ia.push(d);b.sa=d;b.ia.push(d);break a}}else for(d in b.F.b)if(-1==b.ia.indexOf(d)&&(b.ia.push(d),!b.F.X[d])){b.sa=
d;b.ia.push(d);break a}b.F=b.F.u}while(b.F);if(!b.F){a.pop();return}}if(!b.Ma)if(b.Ma=!0,d=c.left,"VariableDeclaration"==d.type)b.T=d.declarations[0].id.name;else{b.T=null;a.push({node:d,O:!0});return}b.T||(b.T=b.value);if(!b.P){b.P=!0;d=this.a(b.sa);var e=W(this,b.T,d);if(e){Z(this,e,b.T,d);return}}c.body&&a.push({node:c.body});b.sa=void 0;b.T instanceof Array&&(b.Ma=!1);b.P=!1}else b.ma=!0,b.T||(b.T=b.value),a.push({node:c.right})};
h.prototype.stepForStatement=function(){var a=this.c,b=a[a.length-1],c=b.node,d=b.W||0;0==d?(b.W=1,c.init&&a.push({node:c.init})):1==d?(b.W=2,c.test&&a.push({node:c.test})):2==d?(b.W=3,c.test&&b.value&&!b.value.S()?a.pop():c.body&&(b.ra=!0,a.push({node:c.body}))):3==d&&(b.W=1,c.update&&a.push({node:c.update}))};h.prototype.stepFunctionDeclaration=function(){this.c.pop()};h.prototype.stepFunctionExpression=function(){var a=this.c,b=a.pop();a[a.length-1].value=R(this,b.node,H(this))};
h.prototype.stepIdentifier=function(){var a=this.c,b=a.pop(),c=b.node.name,d=this.a(c);if((b=b.O?d:U(this,d))&&b.L){b.L=!1;for(a=H(this);!S(this,a,c);)a=a.Y;Y(this,b,this.global)}else a[a.length-1].value=b};h.prototype.stepIfStatement=h.prototype.stepConditionalExpression;h.prototype.stepLabeledStatement=function(){var a=this.c,b=a.pop(),c=b.labels||[];c.push(b.node.label.name);a.push({node:b.node.body,labels:c})};h.prototype.stepLiteral=function(){var a=this.c,b=a.pop();a[a.length-1].value=this.a(b.node.value)};
h.prototype.stepLogicalExpression=function(){var a=this.c,b=a[a.length-1],c=b.node;if("&&"!=c.operator&&"||"!=c.operator)throw SyntaxError("Unknown logical operator: "+c.operator);b.V?b.na?(a.pop(),a[a.length-1].value=b.value):"&&"==c.operator&&!b.value.S()||"||"==c.operator&&b.value.S()?(a.pop(),a[a.length-1].value=b.value):(b.na=!0,a.push({node:c.right})):(b.V=!0,a.push({node:c.left}))};
h.prototype.stepMemberExpression=function(){var a=this.c,b=a[a.length-1],c=b.node;b.ma?b.ab?(a.pop(),b.O?a[a.length-1].value=[b.F,b.value]:(c=this.v(b.F,b.value))?c.L?(c.L=!1,Y(this,c,b.F)):a[a.length-1].value=c:(a.push({}),G(this,this.o,"Cannot read property '"+b.value+"' of "+b.F.toString()))):(b.ab=!0,b.F=b.value,a.push({node:c.property,O:!c.computed})):(b.ma=!0,a.push({node:c.object}))};h.prototype.stepNewExpression=h.prototype.stepCallExpression;
h.prototype.stepObjectExpression=function(){var a=this.c,b=a[a.length-1],c=b.node,d=b.fb,e=b.w||0;b.object?d?b.Da=b.value:(b.b[b.Da]||(b.b[b.Da]={}),b.b[b.Da][b.eb]=b.value):(b.object=F(this,this.m),b.b=Object.create(null));if(c.properties[e])d?(b.w=e+1,a.push({node:c.properties[e].value})):(b.eb=c.properties[e].kind,a.push({node:c.properties[e].key,O:!0})),b.fb=!d;else{for(var f in b.b)c=b.b[f],"get"in c||"set"in c?this.setProperty(b.object,f,null,{configurable:!0,enumerable:!0,get:c.get,set:c.set}):
this.setProperty(b.object,f,c.init);a.pop();a[a.length-1].value=b.object}};h.prototype.stepProgram=function(){var a=this.c,b=a[a.length-1],c=b.node,d=b.w||0;c.body[d]?(b.done=!1,b.w=d+1,a.push({node:c.body[d]})):b.done=!0};
h.prototype.stepReturnStatement=function(){var a=this.c,b=a[a.length-1],c=b.node;if(c.argument&&!b.M)b.M=!0,a.push({node:c.argument});else{for(var c=b.value||this.f,d=a.length-1,b=a[d];"CallExpression"!=b.node.type&&"NewExpression"!=b.node.type;){"TryStatement"!=b.node.type&&a.splice(d,1);d--;if(0>d)throw SyntaxError("Illegal return statement");b=a[d]}b.value=c}};
h.prototype.stepSequenceExpression=function(){var a=this.c,b=a[a.length-1],c=b.node,d=b.w||0;c.expressions[d]?(b.w=d+1,a.push({node:c.expressions[d]})):(a.pop(),a[a.length-1].value=b.value)};
h.prototype.stepSwitchStatement=function(){var a=this.c,b=a[a.length-1];if(b.ha)for(b.Ra||(b.Ra=b.value);;){var c=b.Ca||0,d=b.node.cases[c];if(b.oa||!d||d.test)if(d||b.oa||!b.La)if(d){if(!b.oa&&!a.Sa&&d.test){a.Sa=!0;a.push({node:d.test});break}if(b.oa||0==Q(b.value,b.Ra)){b.oa=!0;var e=b.w||0;if(d.consequent[e]){b.cb=!0;a.push({node:d.consequent[e]});b.w=e+1;break}}a.Sa=!1;b.w=0;b.Ca=c+1}else{a.pop();break}else b.oa=!0,b.Ca=b.La;else b.La=c,b.Ca=c+1}else b.ha=!0,a.push({node:b.node.discriminant})};
h.prototype.stepThisExpression=function(){var a=this.c;a.pop();for(var b=a.length-1;0<=b;b--)if(a[b].ua){a[a.length-1].value=a[b].ua;return}throw Error("No this expression found.");};h.prototype.stepThrowStatement=function(){var a=this.c,b=a[a.length-1],c=b.node;b.M?G(this,b.value):(b.M=!0,a.push({node:c.argument}))};
h.prototype.stepTryStatement=function(){var a=this.c,b=a[a.length-1],c=b.node;b.Wa?b.Z&&!b.Za&&c.handler?(b.Za=!0,a.push({node:c.handler,Z:b.Z}),b.Z=null):!b.Ya&&c.finalizer?(b.Ya=!0,a.push({node:c.finalizer})):b.Z?X(this,b.Z):a.pop():(b.Wa=!0,a.push({node:c.block}))};
h.prototype.stepUnaryExpression=function(){var a=this.c,b=a[a.length-1];var c=b.node;if(b.M){a.pop();b=b.value;if("-"==c.operator)b=-b.h();else if("+"==c.operator)b=b.h();else if("!"==c.operator)b=!b.S();else if("~"==c.operator)b=~b.h();else if("delete"==c.operator){if(b.length){var d=b[0];c=b[1]}else d=H(this),c=b;b=this.deleteProperty(d,c);if(!b&&H(this).J){G(this,this.o,"Cannot delete property '"+c+"' of '"+d+"'");return}}else if("typeof"==c.operator)b=b.type;else if("void"==c.operator)b=void 0;
else throw SyntaxError("Unknown unary operator: "+c.operator);a[a.length-1].value=this.a(b)}else b.M=!0,a.push({node:c.argument,O:"delete"==c.operator})};
h.prototype.stepUpdateExpression=function(){var a=this.c,b=a[a.length-1],c=b.node;if(b.V){b.I||(b.I=b.value);b.la&&(b.C=b.value);if(!b.la){b.C=V(this,b.I);if(!b.C)return;if(b.C.L){b.C.L=!1;b.la=!0;Y(this,b.C,b.I);return}}if(b.P)a.pop(),a[a.length-1].value=b.P;else{var d=b.C.h();if("++"==c.operator)var e=this.a(d+1);else if("--"==c.operator)e=this.a(d-1);else throw SyntaxError("Unknown update expression: "+c.operator);c=c.prefix?e:this.a(d);(d=W(this,b.I,e))?(b.P=c,Z(this,d,b.I,e)):(a.pop(),a[a.length-
1].value=c)}}else b.V=!0,a.push({node:c.argument,O:!0})};h.prototype.stepVariableDeclaration=function(){var a=this.c,b=a[a.length-1],c=b.node,d=b.w||0,e=c.declarations[d];b.value&&e&&(W(this,this.a(e.id.name),b.value),b.value=null,e=c.declarations[++d]);for(;e;){if(e.init){b.w=d;a.push({node:e.init});return}e=c.declarations[++d]}a.pop()};
h.prototype.stepWithStatement=function(){var a=this.c,b=a[a.length-1],c=b.node;b.ma?b.Xa?a.pop():(b.Xa=!0,b=T(this,H(this),b.value),a.push({node:c.body,scope:b})):(b.ma=!0,a.push({node:c.object}))};h.prototype.stepWhileStatement=h.prototype.stepDoWhileStatement;this.Interpreter=h;h.prototype.step=h.prototype.step;h.prototype.run=h.prototype.Qa;h.prototype.appendCode=h.prototype.Ua;h.prototype.createPrimitive=h.prototype.a;h.prototype.createAsyncFunction=h.prototype.Va;
h.prototype.createNativeFunction=h.prototype.g;h.prototype.getProperty=h.prototype.v;h.prototype.setProperty=h.prototype.setProperty;h.prototype.nativeToPseudo=h.prototype.R;h.prototype.pseudoToNative=h.prototype.H;