*/a.PARSE_OPTIONS={ecmaVersion:5,locations:!0},a.READONLY_DESCRIPTOR={configurable:!0,enumerable:!0,writable:!1},a.NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!0},a.READONLY_NONENUMERABLE_DESCRIPTOR={configurable:!0,enumerable:!1,writable:!1},a.VARIABLE_DESCRIPTOR={configurable:!1,enumerable:!0,writable:!0},a.STEP_ERROR={},a.SCOPE_REFERENCE={},a.VALUE_IN_DESCRIPTOR={},a.toStringCycles_=[],a.prototype.getErrorLineNumber=function(e){var t=this.sourceCode;if(null==e||null==e.start)return NaN;try{return((t=t.substring(0,e.start)).match(/\n/g)||[]).length+1-this.sourceCodeLineOffset}catch(e){returnNaN}},a.prototype.getErrorLineNumberMessage=function(e){returnisNaN(e)?" (Unknown line number)":e<=0?" (Error occurred in an imported function)":" (Line Number "+e+". This line number is probably incorrect if your script is importing any functions. This is being worked on)"},a.prototype.appendCode=function(e){vart=this.stateStack[0];if(!t||"Program"!==t.node.type)throwError("Expecting original AST to start with a Program node.");if("string"==typeofe&&(e=r.b(e,a.PARSE_OPTIONS)),!e||"Program"!==e.type)throwError("Expecting new AST to start with a Program node.");this.populateScope_(e,t.scope);for(varn,i=0;n=e.body[i];i++)t.node.body.push(n);t.done=!1},a.prototype.step=function(){vare=this.stateStack,t=e[e.length-1];if(!t)return!1;varn=t.node,r=n.type;if("Program"===r&&t.done)return!1;if(this.paused_)return!0;try{vari=this.stepFunctions_[r](e,t,n)}catch(e){if(e!==a.STEP_ERROR)throwe}returni&&e.push(i),!!n.end||this.step()},a.prototype.run=function(){for(;!this.paused_&&this.step(););returnthis.paused_},a.prototype.initGlobalScope=function(e){this.setProperty(e,"NaN",NaN,a.READONLY_DESCRIPTOR),this.setProperty(e,"Infinity",1/0,a.READONLY_DESCRIPTOR),this.setProperty(e,"undefined",void0,a.READONLY_DESCRIPTOR),this.setProperty(e,"window",e,a.READONLY_DESCRIPTOR),this.setProperty(e,"this",e,a.READONLY_DESCRIPTOR),this.setProperty(e,"self",e),this.OBJECT_PROTO=newa.Object(null),this.FUNCTION_PROTO=newa.Object(this.OBJECT_PROTO),this.initFunction(e),this.initObject(e),e.proto=this.OBJECT_PROTO,this.setProperty(e,"constructor",this.OBJECT,a.NONENUMERABLE_DESCRIPTOR),this.initArray(e),this.initString(e),this.initBoolean(e),this.initNumber(e),this.initDate(e),this.initRegExp(e),this.initError(e),this.initMath(e),this.initJSON(e);vart=this,n=this.createNativeFunction(function(e){throwEvalError("Can't happen")},!1);n.eval=!0,this.setProperty(e,"eval",n),this.setProperty(e,"parseInt",this.createNativeFunction(parseInt,!1)),this.setProperty(e,"parseFloat",this.createNativeFunction(parseFloat,!1)),this.setProperty(e,"isNaN",this.createNativeFunction(isNaN,!1)),this.setProperty(e,"isFinite",this.createNativeFunction(isFinite,!1));for(varr=[[escape,"escape"],[unescape,"unescape"],[decodeURI,"decodeURI"],[decodeURIComponent,"decodeURIComponent"],[encodeURI,"encodeURI"],[encodeURIComponent,"encodeURIComponent"]],i=0;i<r.length;i++){varo=function(e){returnfunction(n){try{returne(n)}catch(e){t.throwException(t.URI_ERROR,e.message)}}}(r[i][0]);this.setProperty(e,r[i][1],this.createNativeFunction(o,!1),a.NONENUMERABLE_DESCRIPTOR)}this.OBJECT=this.OBJECT,this.OBJECT_PROTO=this.OBJECT_PROTO,this.FUNCTION=this.FUNCTION,this.FUNCTION_PROTO=this.FUNCTION_PROTO,this.ARRAY=this.ARRAY,this.ARRAY_PROTO=this.ARRAY_PROTO,this.REGEXP=this.REGEXP,this.REGEXP_PROTO=this.REGEXP_PROTO,this.DATE=this.DATE,this.DATE_PROTO=this.DATE_PROTO,this.UNDEFINED=void0,this.NULL=null,this.NAN=NaN,this.TRUE=!0,this.FALSE=!1,this.STRING_EMPTY="",this.NUMBER_ZERO=0,this.NUMBER_ONE=1,this.initFunc_&&this.initFunc_(this,e)},a.prototype.initFunction=function(e){vart,n=this,i=/^[A-Za-z_$][\w$]*$/;(t=function(e){if(n.calledWithNew())vart=this;elset=n.createObjectProto(n.FUNCTION_PROTO);if(arguments.length)varo=String(arguments[arguments.length-1]);elseo="";vars=Array.prototype.slice.call(arguments,0,-1).join(",").trim();if(s){for(varl=s.split(/\s*,\s*/),c=0;c<l.length;c++){varu=l[c];i.test(u)||n.throwException(n.SYNTAX_ERROR,"Invalidfuncti