// -------------------------------------------------------------------------------------------------------------------
// https://github.com/felixhao28/JSCPP - From committed: Jul 23, 2020
// -------------------------------------------------------------------------------------------------------------------

"use strict";function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&Symbol.iterator in Object(iter))return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a;}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r);},p,p.exports,r,e,n,t);}return n[i].exports;}for(var u="function"==typeof require&&require,i=0;i<t.length;i++){o(t[i]);}return o;}return r;})()({1:[function(require,module,exports){module.exports=function(){"use strict";
/*
* Generated by PEG.js 0.9.0.
*
* http://pegjs.org/
*/
function peg$subclass(child,parent){function ctor(){this.constructor=child;}ctor.prototype=parent.prototype;child.prototype=new ctor();}function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError);}}peg$subclass(peg$SyntaxError,Error);function peg$parse(input){var options=arguments.length>1?arguments[1]:{},parser=this,peg$FAILED={},peg$startRuleFunctions={TranslationUnit:peg$parseTranslationUnit},peg$startRuleFunction=peg$parseTranslationUnit,peg$c0=function peg$c0(a){return addPositionInfo({type:'TranslationUnit',ExternalDeclarations:a});},peg$c1=function peg$c1(a,b){return addPositionInfo({type:'NamespaceDefinition',Identifier:a,ExternalDeclarations:b});},peg$c2=function peg$c2(a){return addPositionInfo({type:'UsingDirective',Identifier:a});},peg$c3=function peg$c3(a,b){return addPositionInfo({type:'UsingDeclaration',scope:a,Identifier:b});},peg$c4=function peg$c4(a,b){return addPositionInfo({type:'NamespaceAliasDefinition',target:b,Identifier:a});},peg$c5=function peg$c5(a,b){return a;},peg$c6=function peg$c6(a,b,c){return addPositionInfo({type:'TypedefDeclaration',DeclarationSpecifiers:a,Declarators:[b].concat(c)});},peg$c7=function peg$c7(a,b_pointer,b){return null;},peg$c8=function peg$c8(a,b_pointer,b,c){b.Pointer=b_pointer;return addPositionInfo({type:'FunctionDefinition',DeclarationSpecifiers:a,Declarator:b,CompoundStatement:c});},peg$c9=function peg$c9(a){return addPositionInfo({type:'DeclarationList',Declarations:a});},peg$c10=function peg$c10(a){return addPositionInfo({type:'Label_case',ConstantExpression:a});},peg$c11=function peg$c11(){return addPositionInfo({type:'Label_default'});},peg$c12=function peg$c12(a){return addPositionInfo({type:'CompoundStatement',Statements:a});},peg$c13=function peg$c13(a){return addPositionInfo({type:'ExpressionStatement',Expression:a});},peg$c14=function peg$c14(a,b,c){return addPositionInfo({type:'SelectionStatement_if',Expression:a,Statement:b,ElseStatement:c?c[1]:null});},peg$c15=function peg$c15(a,b){return addPositionInfo({type:'SelectionStatement_switch',Expression:a,Statement:b});},peg$c16=function peg$c16(a,b){return addPositionInfo({type:'IterationStatement_while',Expression:a,Statement:b});},peg$c17=function peg$c17(a,b){return addPositionInfo({type:'IterationStatement_do',Expression:b,Statement:a});},peg$c18=function peg$c18(a,c,d,e){return addPositionInfo({type:'IterationStatement_for',Initializer:a,Expression:c,Loop:d,Statement:e});},peg$c19=function peg$c19(a){return addPositionInfo({type:'JumpStatement_goto',Identifier:a});},peg$c20=function peg$c20(){return addPositionInfo({type:'JumpStatement_continue'});},peg$c21=function peg$c21(){return addPositionInfo({type:'JumpStatement_break'});},peg$c22=function peg$c22(a){return addPositionInfo({type:'JumpStatement_return',Expression:a});},peg$c23=function peg$c23(a,b){return addPositionInfo({type:'Declaration',DeclarationSpecifiers:a,InitDeclaratorList:b});},peg$c24=function peg$c24(a,b,c){return a.concat([b]).concat(c);},peg$c25=function peg$c25(a){return a;},peg$c26=function peg$c26(a){return a;},peg$c27=function peg$c27(a){return a;},peg$c28=function peg$c28(a,x){return x;},peg$c29=function peg$c29(a,b){return[a].concat(b);},peg$c30=function peg$c30(a,b){return addPositionInfo({type:'InitDeclarator',Declarator:a,Initializers:b});},peg$c31=function peg$c31(a){return a;},peg$c32=function peg$c32(a){return addPositionInfo({type:'Identifier',Identifier:a});},peg$c33=function peg$c33(a){return addPositionInfo({type:'DirectDeclarator_modifier_ParameterTypeList',ParameterTypeList:a});},peg$c34=function peg$c34(a,b){return addPositionInfo({type:'DirectDeclarator',left:a,right:b});},peg$c35=function peg$c35(a,b){b.Pointer=a;return b;},peg$c36=function peg$c36(a,b){return addPositionInfo({type:'DirectDeclarator_modifier_array',Modifier:a||[],Expression:b});},peg$c37=function peg$c37(a,b){return addPositionInfo({type:'DirectDeclarator_modifier_array',Modifier:['static'].concat(a),Expression:b});},peg$c38=function peg$c38(a){return addPositionInfo({type:'DirectDeclarator_modifier_star_array',Modifier:a.concat['*']});},peg$c39=function peg$c39(a){return addPositionInfo({type:'DirectDeclarator_modifier_IdentifierList',IdentifierList:a});},peg$c40=function peg$c40(a,b){return addPositionInfo({type:'ParameterTypeList',ParameterList:a,varargs:b!==null});},peg$c41=function peg$c41(a,b){if(a)return[a].concat(b);else return b;},peg$c42=function peg$c42(a,b){return addPositionInfo({type:'ParameterDeclaration',DeclarationSpecifiers:a,Declarator:b});},peg$c43=function peg$c43(a,b){return addPositionInfo({type:'TypeName',base:a,extra:b});},peg$c44=function peg$c44(a){return addPositionInfo({type:'AbstractDeclarator',Pointer:a});},peg$c45=function peg$c45(a){return addPositionInfo({type:'Initializer_expr',Expression:a});},peg$c46=function peg$c46(a){return addPositionInfo({type:'Initializer_array',Initializers:a});},peg$c47=function peg$c47(a,b){return[a].concat(b);},peg$c48=function peg$c48(a){return addPositionInfo({type:'IdentifierExpression',Identifier:a});},peg$c49=function peg$c49(a){return addPositionInfo({type:'ConstantExpression',Expression:a});},peg$c50=function peg$c50(a){return addPositionInfo({type:'StringLiteralExpression',value:a});},peg$c51=function peg$c51(a){return addPositionInfo({type:'ParenthesesExpression',Expression:a});},peg$c52=function peg$c52(a,c){return[0,c];},peg$c53=function peg$c53(a,c){return[1,c?c:[]];},peg$c54=function peg$c54(a,c){return[2,c];},peg$c55=function peg$c55(a,c){return[3,c];},peg$c56=function peg$c56(a,c){return[4];},peg$c57=function peg$c57(a,c){return[5];},peg$c58=function peg$c58(a,b){if(b.length>0){var ret=addPositionInfo({Expression:a});for(var i=0;i<b.length;i++){var o=b[i][1];switch(b[i][0]){case 0:ret.type='PostfixExpression_ArrayAccess';ret.index=o;break;case 1:ret.type='PostfixExpression_MethodInvocation';ret.args=o;break;case 2:ret.type='PostfixExpression_MemberAccess';ret.member=o;break;case 3:ret.type='PostfixExpression_MemberPointerAccess';ret.member=o;break;case 4:ret.type='PostfixExpression_PostIncrement';break;case 5:ret.type='PostfixExpression_PostDecrement';break;}ret=addPositionInfo({Expression:ret});}return ret.Expression;}else return a;},peg$c59=function peg$c59(a,b){var ret=[a];for(var i=0;i<b.length;i++){ret.push(b[i][1]);}return ret;},peg$c60=function peg$c60(a){return addPositionInfo({type:'UnaryExpression_PreIncrement',Expression:a});},peg$c61=function peg$c61(a){return addPositionInfo({type:'UnaryExpression_PreDecrement',Expression:a});},peg$c62=function peg$c62(a,b){return addPositionInfo({type:'UnaryExpression',op:a,Expression:b});},peg$c63=function peg$c63(a){return addPositionInfo({type:'UnaryExpression_Sizeof_Expr',Expression:a});},peg$c64=function peg$c64(a){return addPositionInfo({type:'UnaryExpression_Sizeof_Type',TypeName:a});},peg$c65=function peg$c65(a,b){return addPositionInfo({type:'CastExpression',TypeName:a[1],Expression:b});},peg$c66=function peg$c66(a,b){return buildRecursiveBinop(a,b);},peg$c67=function peg$c67(a,b){var ret=a;for(var i=0;i<b.length;i++){ret=addPositionInfo({type:'ConditionalExpression',cond:ret,t:b[i][1],f:b[i][3]});}return ret;},peg$c68=function peg$c68(a,b,c){return addPositionInfo({type:'BinOpExpression',op:b,left:a,right:c});},peg$c69=function peg$c69(a){return a.join('');},peg$c70=/^[ \n\r\t\x0B\f]/,peg$c71={type:"class",value:"[ \\n\\r\\t\\u000B\\u000C]",description:"[ \\n\\r\\t\\u000B\\u000C]"},peg$c72="/*",peg$c73={type:"literal",value:"/*",description:"\"/*\""},peg$c74="*/",peg$c75={type:"literal",value:"*/",description:"\"*/\""},peg$c76=function peg$c76(a){return a.join('');},peg$c77="//",peg$c78={type:"literal",value:"//",description:"\"//\""},peg$c79="\n",peg$c80={type:"literal",value:"\n",description:"\"\\n\""},peg$c81="auto",peg$c82={type:"literal",value:"auto",description:"\"auto\""},peg$c83="break",peg$c84={type:"literal",value:"break",description:"\"break\""},peg$c85="case",peg$c86={type:"literal",value:"case",description:"\"case\""},peg$c87="char",peg$c88={type:"literal",value:"char",description:"\"char\""},peg$c89="const",peg$c90={type:"literal",value:"const",description:"\"const\""},peg$c91="continue",peg$c92={type:"literal",value:"continue",description:"\"continue\""},peg$c93="default",peg$c94={type:"literal",value:"default",description:"\"default\""},peg$c95="double",peg$c96={type:"literal",value:"double",description:"\"double\""},peg$c97="do",peg$c98={type:"literal",value:"do",description:"\"do\""},peg$c99="else",peg$c100={type:"literal",value:"else",description:"\"else\""},peg$c101="enum",peg$c102={type:"literal",value:"enum",description:"\"enum\""},peg$c103="extern",peg$c104={type:"literal",value:"extern",description:"\"extern\""},peg$c105="float",peg$c106={type:"literal",value:"float",description:"\"float\""},peg$c107="for",peg$c108={type:"literal",value:"for",description:"\"for\""},peg$c109="goto",peg$c110={type:"literal",value:"goto",description:"\"goto\""},peg$c111="if",peg$c112={type:"literal",value:"if",description:"\"if\""},peg$c113="int",peg$c114={type:"literal",value:"int",description:"\"int\""},peg$c115="inline",peg$c116={type:"literal",value:"inline",description:"\"inline\""},peg$c117="long",peg$c118={type:"literal",value:"long",description:"\"long\""},peg$c119="register",peg$c120={type:"literal",value:"register",description:"\"register\""},peg$c121="restrict",peg$c122={type:"literal",value:"restrict",description:"\"restrict\""},peg$c123="return",peg$c124={type:"literal",value:"return",description:"\"return\""},peg$c125="short",peg$c126={type:"literal",value:"short",description:"\"short\""},peg$c127="signed",peg$c128={type:"literal",value:"signed",description:"\"signed\""},peg$c129="sizeof",peg$c130={type:"literal",value:"sizeof",description:"\"sizeof\""},peg$c131="static",peg$c132={type:"literal",value:"static",description:"\"static\""},peg$c133="struct",peg$c134={type:"literal",value:"struct",description:"\"struct\""},peg$c135="switch",peg$c136={type:"literal",value:"switch",description:"\"switch\""},peg$c137="typedef",peg$c138={type:"literal",value:"typedef",description:"\"typedef\""},peg$c139="union",peg$c140={type:"literal",value:"union",description:"\"union\""},peg$c141="unsigned",peg$c142={type:"literal",value:"unsigned",description:"\"unsigned\""},peg$c143="void",peg$c144={type:"literal",value:"void",description:"\"void\""},peg$c145="volatile",peg$c146={type:"literal",value:"volatile",description:"\"volatile\""},peg$c147="while",peg$c148={type:"literal",value:"while",description:"\"while\""},peg$c149="_Bool",peg$c150={type:"literal",value:"_Bool",description:"\"_Bool\""},peg$c151="_Complex",peg$c152={type:"literal",value:"_Complex",description:"\"_Complex\""},peg$c153="_stdcall",peg$c154={type:"literal",value:"_stdcall",description:"\"_stdcall\""},peg$c155="__declspec",peg$c156={type:"literal",value:"__declspec",description:"\"__declspec\""},peg$c157="__attribute__",peg$c158={type:"literal",value:"__attribute__",description:"\"__attribute__\""},peg$c159="namespace",peg$c160={type:"literal",value:"namespace",description:"\"namespace\""},peg$c161="using",peg$c162={type:"literal",value:"using",description:"\"using\""},peg$c163="true",peg$c164={type:"literal",value:"true",description:"\"true\""},peg$c165="false",peg$c166={type:"literal",value:"false",description:"\"false\""},peg$c167="_Imaginary",peg$c168={type:"literal",value:"_Imaginary",description:"\"_Imaginary\""},peg$c169=function peg$c169(a,b,c){var scope=a?"global":null;for(var i=0;i<b.length;i++){scope=addPositionInfo({type:"ScopedIdentifier",scope:scope,Identifier:b[i]});}return addPositionInfo({type:"ScopedIdentifier",scope:scope,Identifier:c});},peg$c170=function peg$c170(a,b){return a+b.join('');},peg$c171=/^[a-z]/,peg$c172={type:"class",value:"[a-z]",description:"[a-z]"},peg$c173=/^[A-Z]/,peg$c174={type:"class",value:"[A-Z]",description:"[A-Z]"},peg$c175=/^[_]/,peg$c176={type:"class",value:"[_]",description:"[_]"},peg$c177=/^[0-9]/,peg$c178={type:"class",value:"[0-9]",description:"[0-9]"},peg$c179="\\u",peg$c180={type:"literal",value:"\\u",description:"\"\\\\u\""},peg$c181=function peg$c181(a){return eval("\"\\u"+a.join('')+'"');},peg$c182="\\U",peg$c183={type:"literal",value:"\\U",description:"\"\\\\U\""},peg$c184=function peg$c184(a,b){return eval("\"\\U"+a.join('')+b.join('')+'"');},peg$c185=function peg$c185(a){return addPositionInfo({type:'BooleanConstant',value:a});},peg$c186=/^[1-9]/,peg$c187={type:"class",value:"[1-9]",description:"[1-9]"},peg$c188=function peg$c188(a,b){return addPositionInfo({type:'DecimalConstant',value:a+b.join("")});},peg$c189="0",peg$c190={type:"literal",value:"0",description:"\"0\""},peg$c191=/^[0-7]/,peg$c192={type:"class",value:"[0-7]",description:"[0-7]"},peg$c193=function peg$c193(a){if(a.length>0)return addPositionInfo({type:'OctalConstant',value:a.join("")});else return addPositionInfo({type:'OctalConstant',value:'0'});},peg$c194=function peg$c194(a){return addPositionInfo({type:'HexConstant',value:a.join("")});},peg$c195="0x",peg$c196={type:"literal",value:"0x",description:"\"0x\""},peg$c197="0X",peg$c198={type:"literal",value:"0X",description:"\"0X\""},peg$c199=/^[a-f]/,peg$c200={type:"class",value:"[a-f]",description:"[a-f]"},peg$c201=/^[A-F]/,peg$c202={type:"class",value:"[A-F]",description:"[A-F]"},peg$c203="0b",peg$c204={type:"literal",value:"0b",description:"\"0b\""},peg$c205=/^[0-1]/,peg$c206={type:"class",value:"[0-1]",description:"[0-1]"},peg$c207=function peg$c207(a){return addPositionInfo({type:'BinaryConstant',value:a.join("")});},peg$c208=/^[uU]/,peg$c209={type:"class",value:"[uU]",description:"[uU]"},peg$c210="ll",peg$c211={type:"literal",value:"ll",description:"\"ll\""},peg$c212="LL",peg$c213={type:"literal",value:"LL",description:"\"LL\""},peg$c214=/^[lL]/,peg$c215={type:"class",value:"[lL]",description:"[lL]"},peg$c216=function peg$c216(a,b){if(b)return addPositionInfo({type:'FloatConstant',Expression:a});else return a;},peg$c217=function peg$c217(a,b){return addPositionInfo({type:'DecimalFloatConstant',value:a+b||''});},peg$c218=function peg$c218(a,b){return addPositionInfo({type:'DecimalFloatConstant',value:a.join('')+b});},peg$c219=function peg$c219(a,b,c){return addPositionInfo({type:'HexFloatConstant',value:a+b+c||''});},peg$c220=function peg$c220(a,b,c){return addPositionInfo({type:'HexFloatConstant',value:a+b.join('')+c});},peg$c221=".",peg$c222={type:"literal",value:".",description:"\".\""},peg$c223=function peg$c223(a,b){return a.join('')+'.'+b.join('');},peg$c224=function peg$c224(a){return a.join('')+'.';},peg$c225=/^[eE]/,peg$c226={type:"class",value:"[eE]",description:"[eE]"},peg$c227=/^[+\-]/,peg$c228={type:"class",value:"[+\\-]",description:"[+\\-]"},peg$c229=function peg$c229(a,b,c){return a+(b||"")+c.join('');},peg$c230=/^[pP]/,peg$c231={type:"class",value:"[pP]",description:"[pP]"},peg$c232=function peg$c232(a,b){return a+b.join('');},peg$c233=/^[flFL]/,peg$c234={type:"class",value:"[flFL]",description:"[flFL]"},peg$c235=function peg$c235(a){return addPositionInfo({type:'EnumerationConstant',Identifier:a});},peg$c236="L",peg$c237={type:"literal",value:"L",description:"\"L\""},peg$c238="'",peg$c239={type:"literal",value:"'",description:"\"'\""},peg$c240=function peg$c240(a){return addPositionInfo({type:'CharacterConstant',Char:a});},peg$c241=/^['\n\\]/,peg$c242={type:"class",value:"['\\n\\\\]",description:"['\\n\\\\]"},peg$c243="\\",peg$c244={type:"literal",value:"\\",description:"\"\\\\\""},peg$c245=/^['"?\\abfnrtv]/,peg$c246={type:"class",value:"['\\\"?\\\\abfnrtv]",description:"['\\\"?\\\\abfnrtv]"},peg$c247=function peg$c247(a,b){return eval('"'+a+b+'"');},peg$c248=function peg$c248(a,b,c,d){var ret="\"";ret+=a;ret+=b;if(c)ret+=c;if(d)ret+=d;ret+="\"";return eval(ret);},peg$c249="\\x",peg$c250={type:"literal",value:"\\x",description:"\"\\\\x\""},peg$c251=function peg$c251(a,b){return eval('"'+a+b.join('')+'"');},peg$c252="u8",peg$c253={type:"literal",value:"u8",description:"\"u8\""},peg$c254="u",peg$c255={type:"literal",value:"u",description:"\"u\""},peg$c256="U",peg$c257={type:"literal",value:"U",description:"\"U\""},peg$c258=function peg$c258(a,b){return addPositionInfo({type:'StringLiteral',prefix:a,value:b});},peg$c259="R",peg$c260={type:"literal",value:"R",description:"\"R\""},peg$c261=/^["]/,peg$c262={type:"class",value:"[\"]",description:"[\"]"},peg$c263=function peg$c263(a){return a.join('');},peg$c264=/^["\n]/,peg$c265={type:"class",value:"[\\\"\\n]",description:"[\\\"\\n]"},peg$c266=/^["\n\\]/,peg$c267={type:"class",value:"[\\\"\\n\\\\]",description:"[\\\"\\n\\\\]"},peg$c268="[",peg$c269={type:"literal",value:"[",description:"\"[\""},peg$c270="]",peg$c271={type:"literal",value:"]",description:"\"]\""},peg$c272="(",peg$c273={type:"literal",value:"(",description:"\"(\""},peg$c274=")",peg$c275={type:"literal",value:")",description:"\")\""},peg$c276="{",peg$c277={type:"literal",value:"{",description:"\"{\""},peg$c278="}",peg$c279={type:"literal",value:"}",description:"\"}\""},peg$c280="->",peg$c281={type:"literal",value:"->",description:"\"->\""},peg$c282="++",peg$c283={type:"literal",value:"++",description:"\"++\""},peg$c284="--",peg$c285={type:"literal",value:"--",description:"\"--\""},peg$c286="&",peg$c287={type:"literal",value:"&",description:"\"&\""},peg$c288=/^[&]/,peg$c289={type:"class",value:"[&]",description:"[&]"},peg$c290="*",peg$c291={type:"literal",value:"*",description:"\"*\""},peg$c292=/^[=]/,peg$c293={type:"class",value:"[=]",description:"[=]"},peg$c294="+",peg$c295={type:"literal",value:"+",description:"\"+\""},peg$c296=/^[+=]/,peg$c297={type:"class",value:"[+=]",description:"[+=]"},peg$c298="-",peg$c299={type:"literal",value:"-",description:"\"-\""},peg$c300=/^[\-=>]/,peg$c301={type:"class",value:"[\\-=>]",description:"[\\-=>]"},peg$c302="~",peg$c303={type:"literal",value:"~",description:"\"~\""},peg$c304="!",peg$c305={type:"literal",value:"!",description:"\"!\""},peg$c306="/",peg$c307={type:"literal",value:"/",description:"\"/\""},peg$c308="%",peg$c309={type:"literal",value:"%",description:"\"%\""},peg$c310=/^[=>]/,peg$c311={type:"class",value:"[=>]",description:"[=>]"},peg$c312="<<",peg$c313={type:"literal",value:"<<",description:"\"<<\""},peg$c314=">>",peg$c315={type:"literal",value:">>",description:"\">>\""},peg$c316="<",peg$c317={type:"literal",value:"<",description:"\"<\""},peg$c318=">",peg$c319={type:"literal",value:">",description:"\">\""},peg$c320="<=",peg$c321={type:"literal",value:"<=",description:"\"<=\""},peg$c322=">=",peg$c323={type:"literal",value:">=",description:"\">=\""},peg$c324="==",peg$c325={type:"literal",value:"==",description:"\"==\""},peg$c326="!=",peg$c327={type:"literal",value:"!=",description:"\"!=\""},peg$c328="^",peg$c329={type:"literal",value:"^",description:"\"^\""},peg$c330="|",peg$c331={type:"literal",value:"|",description:"\"|\""},peg$c332="&&",peg$c333={type:"literal",value:"&&",description:"\"&&\""},peg$c334="||",peg$c335={type:"literal",value:"||",description:"\"||\""},peg$c336="?",peg$c337={type:"literal",value:"?",description:"\"?\""},peg$c338=":",peg$c339={type:"literal",value:":",description:"\":\""},peg$c340=/^[>]/,peg$c341={type:"class",value:"[>]",description:"[>]"},peg$c342=";",peg$c343={type:"literal",value:";",description:"\";\""},peg$c344="...",peg$c345={type:"literal",value:"...",description:"\"...\""},peg$c346="=",peg$c347={type:"literal",value:"=",description:"\"=\""},peg$c348="*=",peg$c349={type:"literal",value:"*=",description:"\"*=\""},peg$c350="/=",peg$c351={type:"literal",value:"/=",description:"\"/=\""},peg$c352="%=",peg$c353={type:"literal",value:"%=",description:"\"%=\""},peg$c354="+=",peg$c355={type:"literal",value:"+=",description:"\"+=\""},peg$c356="-=",peg$c357={type:"literal",value:"-=",description:"\"-=\""},peg$c358="<<=",peg$c359={type:"literal",value:"<<=",description:"\"<<=\""},peg$c360=">>=",peg$c361={type:"literal",value:">>=",description:"\">>=\""},peg$c362="&=",peg$c363={type:"literal",value:"&=",description:"\"&=\""},peg$c364="^=",peg$c365={type:"literal",value:"^=",description:"\"^=\""},peg$c366="|=",peg$c367={type:"literal",value:"|=",description:"\"|=\""},peg$c368=",",peg$c369={type:"literal",value:",",description:"\",\""},peg$c370="::",peg$c371={type:"literal",value:"::",description:"\"::\""},peg$c372={type:"any",description:"any character"},peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1,seenCR:false}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions)){throw new Error("Can't start parsing from rule \""+options.startRule+"\".");}peg$startRuleFunction=peg$startRuleFunctions[options.startRule];}function text(){return input.substring(peg$savedPos,peg$currPos);}function location(){return peg$computeLocation(peg$savedPos,peg$currPos);}function expected(description){throw peg$buildException(null,[{type:"other",description:description}],input.substring(peg$savedPos,peg$currPos),peg$computeLocation(peg$savedPos,peg$currPos));}function error(message){throw peg$buildException(message,null,input.substring(peg$savedPos,peg$currPos),peg$computeLocation(peg$savedPos,peg$currPos));}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos],p,ch;if(details){return details;}else{p=pos-1;while(!peg$posDetailsCache[p]){p--;}details=peg$posDetailsCache[p];details={line:details.line,column:details.column,seenCR:details.seenCR};while(p<pos){ch=input.charAt(p);if(ch==="\n"){if(!details.seenCR){details.line++;}details.column=1;details.seenCR=false;}else if(ch==="\r"||ch==="\u2028"||ch==="\u2029"){details.line++;details.column=1;details.seenCR=true;}else{details.column++;details.seenCR=false;}p++;}peg$posDetailsCache[pos]=details;return details;}}function peg$computeLocation(startPos,endPos){var startPosDetails=peg$computePosDetails(startPos),endPosDetails=peg$computePosDetails(endPos);return{start:{offset:startPos,line:startPosDetails.line,column:startPosDetails.column},end:{offset:endPos,line:endPosDetails.line,column:endPosDetails.column}};}function peg$fail(expected){if(peg$currPos<peg$maxFailPos){return;}if(peg$currPos>peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[];}peg$maxFailExpected.push(expected);}function peg$buildException(message,expected,found,location){function cleanupExpected(expected){var i=1;expected.sort(function(a,b){if(a.description<b.description){return-1;}else if(a.description>b.description){return 1;}else{return 0;}});while(i<expected.length){if(expected[i-1]===expected[i]){expected.splice(i,1);}else{i++;}}}function buildMessage(expected,found){function stringEscape(s){function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase();}return s.replace(/\\/g,'\\\\').replace(/"/g,'\\"').replace(/\x08/g,'\\b').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\f/g,'\\f').replace(/\r/g,'\\r').replace(/[\x00-\x07\x0B\x0E\x0F]/g,function(ch){return'\\x0'+hex(ch);}).replace(/[\x10-\x1F\x80-\xFF]/g,function(ch){return'\\x'+hex(ch);}).replace(/[\u0100-\u0FFF]/g,function(ch){return"\\u0"+hex(ch);}).replace(/[\u1000-\uFFFF]/g,function(ch){return"\\u"+hex(ch);});}var expectedDescs=new Array(expected.length),expectedDesc,foundDesc,i;for(i=0;i<expected.length;i++){expectedDescs[i]=expected[i].description;}expectedDesc=expected.length>1?expectedDescs.slice(0,-1).join(", ")+" or "+expectedDescs[expected.length-1]:expectedDescs[0];foundDesc=found?"\""+stringEscape(found)+"\"":"end of input";return"Expected "+expectedDesc+" but "+foundDesc+" found.";}if(expected!==null){cleanupExpected(expected);}return new peg$SyntaxError(message!==null?message:buildMessage(expected,found),expected,found,location);}function peg$parseTranslationUnit(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseSpacing();if(s1!==peg$FAILED){s2=[];s3=peg$parseExternalDeclaration();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseExternalDeclaration();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseEOT();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c0(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseExternalDeclaration(){var s0;s0=peg$parseNamespace();if(s0===peg$FAILED){s0=peg$parseTypedefDeclaration();if(s0===peg$FAILED){s0=peg$parseFunctionDefinition();if(s0===peg$FAILED){s0=peg$parseDeclaration();}}}return s0;}function peg$parseNamespace(){var s0;s0=peg$parseNamespaceDefinition();if(s0===peg$FAILED){s0=peg$parseUsingDirective();if(s0===peg$FAILED){s0=peg$parseUsingDeclaration();if(s0===peg$FAILED){s0=peg$parseNamespaceAliasDefinition();}}}return s0;}function peg$parseNamespaceDefinition(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseNAMESPACE();if(s1!==peg$FAILED){s2=peg$parseIdentifier();if(s2!==peg$FAILED){s3=peg$parseLWING();if(s3!==peg$FAILED){s4=[];s5=peg$parseExternalDeclaration();if(s5!==peg$FAILED){while(s5!==peg$FAILED){s4.push(s5);s5=peg$parseExternalDeclaration();}}else{s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parseRWING();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1(s2,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUsingDirective(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseUSING();if(s1!==peg$FAILED){s2=peg$parseNAMESPACE();if(s2!==peg$FAILED){s3=peg$parseScopedIdentifier();if(s3!==peg$FAILED){s4=peg$parseSEMI();if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c2(s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUsingDeclaration(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseUSING();if(s1!==peg$FAILED){s2=peg$parseScopedIdentifier();if(s2!==peg$FAILED){s3=peg$parseSCOPEOP();if(s3!==peg$FAILED){s4=peg$parseIdentifier();if(s4!==peg$FAILED){s5=peg$parseSEMI();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c3(s2,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseNamespaceAliasDefinition(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseNAMESPACE();if(s1!==peg$FAILED){s2=peg$parseIdentifier();if(s2!==peg$FAILED){s3=peg$parseEQU();if(s3!==peg$FAILED){s4=peg$parseScopedIdentifier();if(s4!==peg$FAILED){s5=peg$parseSEMI();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c4(s2,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseTypedefDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7;s0=peg$currPos;s1=peg$parseTYPEDEF();if(s1!==peg$FAILED){s2=peg$parseDeclarationSpecifiers();if(s2!==peg$FAILED){s3=peg$parseDeclarator();if(s3!==peg$FAILED){s4=[];s5=peg$currPos;s6=peg$parseCOMMA();if(s6!==peg$FAILED){s7=peg$parseDeclarator();if(s7!==peg$FAILED){peg$savedPos=s5;s6=peg$c5(s7,s3);s5=s6;}else{peg$currPos=s5;s5=peg$FAILED;}}else{peg$currPos=s5;s5=peg$FAILED;}while(s5!==peg$FAILED){s4.push(s5);s5=peg$currPos;s6=peg$parseCOMMA();if(s6!==peg$FAILED){s7=peg$parseDeclarator();if(s7!==peg$FAILED){peg$savedPos=s5;s6=peg$c5(s7,s3);s5=s6;}else{peg$currPos=s5;s5=peg$FAILED;}}else{peg$currPos=s5;s5=peg$FAILED;}}if(s4!==peg$FAILED){s5=peg$parseSEMI();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s2,s3,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFunctionDefinition(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseDeclarationSpecifiers();if(s1!==peg$FAILED){s2=peg$parseSTAR();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=peg$parseFunctionDirectDeclarator();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseSEMI();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c7(s1,s2,s3);}s4=s5;if(s4===peg$FAILED){s4=peg$parseCompoundStatement();}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c8(s1,s2,s3,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDeclarationList(){var s0,s1,s2;s0=peg$currPos;s1=[];s2=peg$parseDeclaration();if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseDeclaration();}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c9(s1);}s0=s1;return s0;}function peg$parseStatementORDeclaration(){var s0;s0=peg$parseStatement();if(s0===peg$FAILED){s0=peg$parseDeclaration();}return s0;}function peg$parseStatement(){var s0;s0=peg$parseLabel();if(s0===peg$FAILED){s0=peg$parseCompoundStatement();if(s0===peg$FAILED){s0=peg$parseExpressionStatement();if(s0===peg$FAILED){s0=peg$parseSelectionStatement();if(s0===peg$FAILED){s0=peg$parseIterationStatement();if(s0===peg$FAILED){s0=peg$parseJumpStatement();}}}}}return s0;}function peg$parseLabel(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseCASE();if(s1!==peg$FAILED){s2=peg$parseConditionalExpression();if(s2!==peg$FAILED){s3=peg$parseCOLON();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c10(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseDEFAULT();if(s1!==peg$FAILED){s2=peg$parseCOLON();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c11();s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseCompoundStatement(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseLWING();if(s1!==peg$FAILED){s2=[];s3=peg$parseStatement();if(s3===peg$FAILED){s3=peg$parseDeclaration();}while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseStatement();if(s3===peg$FAILED){s3=peg$parseDeclaration();}}if(s2!==peg$FAILED){s3=peg$parseRWING();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c12(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseExpressionStatement(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseExpression();if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){s2=peg$parseSEMI();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c13(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSelectionStatement(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;s1=peg$parseIF();if(s1!==peg$FAILED){s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseExpression();if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){s5=peg$parseStatement();if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseELSE();if(s7!==peg$FAILED){s8=peg$parseStatement();if(s8!==peg$FAILED){s7=[s7,s8];s6=s7;}else{peg$currPos=s6;s6=peg$FAILED;}}else{peg$currPos=s6;s6=peg$FAILED;}if(s6===peg$FAILED){s6=null;}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c14(s3,s5,s6);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseSWITCH();if(s1!==peg$FAILED){s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseExpression();if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){s5=peg$parseStatement();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c15(s3,s5);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseIterationStatement(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;s1=peg$parseWHILE();if(s1!==peg$FAILED){s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseExpression();if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){s5=peg$parseStatement();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c16(s3,s5);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseDO();if(s1!==peg$FAILED){s2=peg$parseStatement();if(s2!==peg$FAILED){s3=peg$parseWHILE();if(s3!==peg$FAILED){s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseExpression();if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){s7=peg$parseSEMI();if(s7!==peg$FAILED){peg$savedPos=s0;s1=peg$c17(s2,s5);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseFOR();if(s1!==peg$FAILED){s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseDeclaration();if(s3===peg$FAILED){s3=peg$parseExpressionStatement();}if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){s4=peg$parseExpression();if(s4===peg$FAILED){s4=null;}if(s4!==peg$FAILED){s5=peg$parseSEMI();if(s5!==peg$FAILED){s6=peg$parseExpression();if(s6===peg$FAILED){s6=null;}if(s6!==peg$FAILED){s7=peg$parseRPAR();if(s7!==peg$FAILED){s8=peg$parseStatement();if(s8!==peg$FAILED){peg$savedPos=s0;s1=peg$c18(s3,s4,s6,s8);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}}return s0;}function peg$parseJumpStatement(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseGOTO();if(s1!==peg$FAILED){s2=peg$parseIdentifier();if(s2!==peg$FAILED){s3=peg$parseSEMI();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c19(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseCONTINUE();if(s1!==peg$FAILED){s2=peg$parseSEMI();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c20();s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseBREAK();if(s1!==peg$FAILED){s2=peg$parseSEMI();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c21();s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseRETURN();if(s1!==peg$FAILED){s2=peg$parseExpression();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=peg$parseSEMI();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c22(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}}}return s0;}function peg$parseDeclaration(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseDeclarationSpecifiers();if(s1!==peg$FAILED){s2=peg$parseInitDeclaratorList();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=peg$parseSEMI();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c23(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDeclarationSpecifiers(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$currPos;s2=[];s3=peg$parseStorageClassSpecifier();if(s3===peg$FAILED){s3=peg$parseTypeQualifier();if(s3===peg$FAILED){s3=peg$parseFunctionSpecifier();}}while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseStorageClassSpecifier();if(s3===peg$FAILED){s3=peg$parseTypeQualifier();if(s3===peg$FAILED){s3=peg$parseFunctionSpecifier();}}}if(s2!==peg$FAILED){s3=peg$parseIdentifier();if(s3!==peg$FAILED){s4=[];s5=peg$parseStorageClassSpecifier();if(s5===peg$FAILED){s5=peg$parseTypeQualifier();if(s5===peg$FAILED){s5=peg$parseFunctionSpecifier();}}while(s5!==peg$FAILED){s4.push(s5);s5=peg$parseStorageClassSpecifier();if(s5===peg$FAILED){s5=peg$parseTypeQualifier();if(s5===peg$FAILED){s5=peg$parseFunctionSpecifier();}}}if(s4!==peg$FAILED){peg$savedPos=s1;s2=peg$c24(s2,s3,s4);s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c25(s1);}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=[];s2=peg$currPos;s3=peg$parseStorageClassSpecifier();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c26(s3);}s2=s3;if(s2===peg$FAILED){s2=peg$currPos;s3=peg$parseTypeSpecifier();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c26(s3);}s2=s3;if(s2===peg$FAILED){s2=peg$currPos;s3=peg$parseTypeQualifier();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c26(s3);}s2=s3;if(s2===peg$FAILED){s2=peg$currPos;s3=peg$parseFunctionSpecifier();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c26(s3);}s2=s3;}}}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$currPos;s3=peg$parseStorageClassSpecifier();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c26(s3);}s2=s3;if(s2===peg$FAILED){s2=peg$currPos;s3=peg$parseTypeSpecifier();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c26(s3);}s2=s3;if(s2===peg$FAILED){s2=peg$currPos;s3=peg$parseTypeQualifier();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c26(s3);}s2=s3;if(s2===peg$FAILED){s2=peg$currPos;s3=peg$parseFunctionSpecifier();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c26(s3);}s2=s3;}}}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c27(s1);}s0=s1;}return s0;}function peg$parseInitDeclaratorList(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseInitDeclarator();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseInitDeclarator();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c28(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseInitDeclarator();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c28(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c29(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseInitDeclarator(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseDeclarator();if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$parseEQU();if(s3!==peg$FAILED){s4=peg$parseInitializer();if(s4!==peg$FAILED){peg$savedPos=s2;s3=peg$c28(s1,s4);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c30(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseStorageClassSpecifier(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;s1=peg$parseEXTERN();if(s1===peg$FAILED){s1=peg$parseSTATIC();if(s1===peg$FAILED){s1=peg$parseAUTO();if(s1===peg$FAILED){s1=peg$parseREGISTER();if(s1===peg$FAILED){s1=peg$currPos;s2=peg$parseATTRIBUTE();if(s2!==peg$FAILED){s3=peg$parseLPAR();if(s3!==peg$FAILED){s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=[];s6=peg$currPos;s7=peg$currPos;peg$silentFails++;s8=peg$parseRPAR();peg$silentFails--;if(s8===peg$FAILED){s7=void 0;}else{peg$currPos=s7;s7=peg$FAILED;}if(s7!==peg$FAILED){s8=peg$parse_();if(s8!==peg$FAILED){s7=[s7,s8];s6=s7;}else{peg$currPos=s6;s6=peg$FAILED;}}else{peg$currPos=s6;s6=peg$FAILED;}while(s6!==peg$FAILED){s5.push(s6);s6=peg$currPos;s7=peg$currPos;peg$silentFails++;s8=peg$parseRPAR();peg$silentFails--;if(s8===peg$FAILED){s7=void 0;}else{peg$currPos=s7;s7=peg$FAILED;}if(s7!==peg$FAILED){s8=peg$parse_();if(s8!==peg$FAILED){s7=[s7,s8];s6=s7;}else{peg$currPos=s6;s6=peg$FAILED;}}else{peg$currPos=s6;s6=peg$FAILED;}}if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){s7=peg$parseRPAR();if(s7!==peg$FAILED){s2=[s2,s3,s4,s5,s6,s7];s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c31(s1);}s0=s1;return s0;}function peg$parseTypeSpecifier(){var s0,s1;s0=peg$currPos;s1=peg$parseVOID();if(s1===peg$FAILED){s1=peg$parseCHAR();if(s1===peg$FAILED){s1=peg$parseSHORT();if(s1===peg$FAILED){s1=peg$parseINT();if(s1===peg$FAILED){s1=peg$parseLONG();if(s1===peg$FAILED){s1=peg$parseFLOAT();if(s1===peg$FAILED){s1=peg$parseDOUBLE();if(s1===peg$FAILED){s1=peg$parseSIGNED();if(s1===peg$FAILED){s1=peg$parseUNSIGNED();if(s1===peg$FAILED){s1=peg$parseBOOL();if(s1===peg$FAILED){s1=peg$parseCOMPLEX();if(s1===peg$FAILED){s1=peg$parseStructOrUnionSpecifier();if(s1===peg$FAILED){s1=peg$parseEnumSpecifier();}}}}}}}}}}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c31(s1);}s0=s1;return s0;}function peg$parseStructOrUnionSpecifier(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=peg$parseStructOrUnion();if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$parseIdentifier();if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){s4=peg$parseLWING();if(s4!==peg$FAILED){s5=[];s6=peg$parseStructDeclaration();if(s6!==peg$FAILED){while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseStructDeclaration();}}else{s5=peg$FAILED;}if(s5!==peg$FAILED){s6=peg$parseRWING();if(s6!==peg$FAILED){peg$savedPos=s2;s3=peg$c27(s3);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=peg$parseIdentifier();}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseStructOrUnion(){var s0,s1;s0=peg$currPos;s1=peg$parseSTRUCT();if(s1===peg$FAILED){s1=peg$parseUNION();}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);}s0=s1;return s0;}function peg$parseStructDeclaration(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseSpecifierQualifierList();if(s1!==peg$FAILED){s2=peg$parseStructDeclaratorList();if(s2!==peg$FAILED){s3=peg$parseSEMI();if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSpecifierQualifierList(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=[];s2=peg$parseTypeQualifier();while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseTypeQualifier();}if(s1!==peg$FAILED){s2=peg$parseIdentifier();if(s2!==peg$FAILED){s3=[];s4=peg$parseTypeQualifier();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseTypeQualifier();}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=[];s1=peg$parseTypeSpecifier();if(s1===peg$FAILED){s1=peg$parseTypeQualifier();}if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseTypeSpecifier();if(s1===peg$FAILED){s1=peg$parseTypeQualifier();}}}else{s0=peg$FAILED;}}return s0;}function peg$parseStructDeclaratorList(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseStructDeclarator();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseStructDeclarator();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseStructDeclarator();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseStructDeclarator(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseDeclarator();if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){s2=peg$parseCOLON();if(s2!==peg$FAILED){s3=peg$parseConditionalExpression();if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$parseDeclarator();}return s0;}function peg$parseEnumSpecifier(){var s0,s1,s2,s3,s4,s5,s6,s7;s0=peg$currPos;s1=peg$parseENUM();if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$parseIdentifier();if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){s4=peg$parseLWING();if(s4!==peg$FAILED){s5=peg$parseEnumeratorList();if(s5!==peg$FAILED){s6=peg$parseCOMMA();if(s6===peg$FAILED){s6=null;}if(s6!==peg$FAILED){s7=peg$parseRWING();if(s7!==peg$FAILED){s3=[s3,s4,s5,s6,s7];s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=peg$parseIdentifier();}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEnumeratorList(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseEnumerator();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseEnumerator();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseEnumerator();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEnumerator(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseEnumerationConstant();if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$parseEQU();if(s3!==peg$FAILED){s4=peg$parseConditionalExpression();if(s4!==peg$FAILED){s3=[s3,s4];s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseTypeQualifier(){var s0,s1;s0=peg$currPos;s1=peg$parseCONST();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c31(s1);}s0=s1;return s0;}function peg$parseFunctionSpecifier(){var s0,s1;s0=peg$currPos;s1=peg$parseINLINE();if(s1===peg$FAILED){s1=peg$parseSTDCALL();}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c31(s1);}s0=s1;return s0;}function peg$parseFunctionDirectDeclarator(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$currPos;s2=peg$parseIdentifier();if(s2!==peg$FAILED){peg$savedPos=s1;s2=peg$c32(s2);}s1=s2;if(s1===peg$FAILED){s1=peg$currPos;s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseDeclarator();if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){peg$savedPos=s1;s2=peg$c26(s3);s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$parseLPAR();if(s3!==peg$FAILED){s4=peg$parseParameterTypeList();if(s4!==peg$FAILED){s5=peg$parseRPAR();if(s5!==peg$FAILED){peg$savedPos=s2;s3=peg$c33(s4);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c34(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDeclarator(){var s0,s1,s2;s0=peg$currPos;s1=peg$parsePointer();if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){s2=peg$parseDirectDeclarator();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c35(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDirectDeclarator(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;s1=peg$currPos;s2=peg$parseIdentifier();if(s2!==peg$FAILED){peg$savedPos=s1;s2=peg$c32(s2);}s1=s2;if(s1===peg$FAILED){s1=peg$currPos;s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseDeclarator();if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){peg$savedPos=s1;s2=peg$c26(s3);s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=[];s6=peg$parseTypeQualifier();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseTypeQualifier();}if(s5!==peg$FAILED){s6=peg$parseAssignmentExpression();if(s6===peg$FAILED){s6=null;}if(s6!==peg$FAILED){s7=peg$parseRBRK();if(s7!==peg$FAILED){peg$savedPos=s3;s4=peg$c36(s5,s6);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=peg$parseSTATIC();if(s5!==peg$FAILED){s6=[];s7=peg$parseTypeQualifier();while(s7!==peg$FAILED){s6.push(s7);s7=peg$parseTypeQualifier();}if(s6!==peg$FAILED){s7=peg$parseAssignmentExpression();if(s7!==peg$FAILED){s8=peg$parseRBRK();if(s8!==peg$FAILED){peg$savedPos=s3;s4=peg$c37(s6,s7);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=[];s6=peg$parseTypeQualifier();if(s6!==peg$FAILED){while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseTypeQualifier();}}else{s5=peg$FAILED;}if(s5!==peg$FAILED){s6=peg$parseSTATIC();if(s6!==peg$FAILED){s7=peg$parseAssignmentExpression();if(s7!==peg$FAILED){s8=peg$parseRBRK();if(s8!==peg$FAILED){peg$savedPos=s3;s4=peg$c37(s5,s7);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=[];s6=peg$parseTypeQualifier();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseTypeQualifier();}if(s5!==peg$FAILED){s6=peg$parseSTAR();if(s6!==peg$FAILED){s7=peg$parseRBRK();if(s7!==peg$FAILED){peg$savedPos=s3;s4=peg$c38(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseParameterTypeList();if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){peg$savedPos=s3;s4=peg$c33(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseIdentifierList();if(s5===peg$FAILED){s5=null;}if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){peg$savedPos=s3;s4=peg$c39(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}}}}}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=[];s6=peg$parseTypeQualifier();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseTypeQualifier();}if(s5!==peg$FAILED){s6=peg$parseAssignmentExpression();if(s6===peg$FAILED){s6=null;}if(s6!==peg$FAILED){s7=peg$parseRBRK();if(s7!==peg$FAILED){peg$savedPos=s3;s4=peg$c36(s5,s6);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=peg$parseSTATIC();if(s5!==peg$FAILED){s6=[];s7=peg$parseTypeQualifier();while(s7!==peg$FAILED){s6.push(s7);s7=peg$parseTypeQualifier();}if(s6!==peg$FAILED){s7=peg$parseAssignmentExpression();if(s7!==peg$FAILED){s8=peg$parseRBRK();if(s8!==peg$FAILED){peg$savedPos=s3;s4=peg$c37(s6,s7);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=[];s6=peg$parseTypeQualifier();if(s6!==peg$FAILED){while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseTypeQualifier();}}else{s5=peg$FAILED;}if(s5!==peg$FAILED){s6=peg$parseSTATIC();if(s6!==peg$FAILED){s7=peg$parseAssignmentExpression();if(s7!==peg$FAILED){s8=peg$parseRBRK();if(s8!==peg$FAILED){peg$savedPos=s3;s4=peg$c37(s5,s7);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=[];s6=peg$parseTypeQualifier();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseTypeQualifier();}if(s5!==peg$FAILED){s6=peg$parseSTAR();if(s6!==peg$FAILED){s7=peg$parseRBRK();if(s7!==peg$FAILED){peg$savedPos=s3;s4=peg$c38(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseParameterTypeList();if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){peg$savedPos=s3;s4=peg$c33(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseIdentifierList();if(s5===peg$FAILED){s5=null;}if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){peg$savedPos=s3;s4=peg$c39(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}}}}}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c34(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePointer(){var s0,s1,s2,s3,s4;s0=[];s1=peg$currPos;s2=peg$parseSTAR();if(s2!==peg$FAILED){s3=[];s4=peg$parseTypeQualifier();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseTypeQualifier();}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c26(s3);s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$currPos;s2=peg$parseSTAR();if(s2!==peg$FAILED){s3=[];s4=peg$parseTypeQualifier();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseTypeQualifier();}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c26(s3);s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}}else{s0=peg$FAILED;}return s0;}function peg$parseParameterTypeList(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseParameterList();if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$parseCOMMA();if(s3!==peg$FAILED){s4=peg$parseELLIPSIS();if(s4!==peg$FAILED){s3=[s3,s4];s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c40(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseParameterList(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseParameterDeclaration();if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseParameterDeclaration();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c26(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseParameterDeclaration();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c26(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c41(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseParameterDeclaration(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseDeclarationSpecifiers();if(s1!==peg$FAILED){s2=peg$parseInitDeclarator();if(s2===peg$FAILED){s2=peg$parseAbstractDeclarator();}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c42(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIdentifierList(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseIdentifier();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseIdentifier();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c28(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseIdentifier();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c28(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c29(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseTypeName(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseSpecifierQualifierList();if(s1!==peg$FAILED){s2=peg$parseAbstractDeclarator();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c43(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseAbstractDeclarator(){var s0,s1,s2;s0=peg$currPos;s1=peg$parsePointer();if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){s2=peg$parseDirectAbstractDeclarator();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c35(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parsePointer();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c44(s1);}s0=s1;}return s0;}function peg$parseDirectAbstractDeclarator(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=peg$currPos;s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseAbstractDeclarator();if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){s2=[s2,s3,s4];s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}if(s1===peg$FAILED){s1=peg$currPos;s2=peg$parseLBRK();if(s2!==peg$FAILED){s3=peg$parseAssignmentExpression();if(s3===peg$FAILED){s3=peg$parseSTAR();}if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){s4=peg$parseRBRK();if(s4!==peg$FAILED){s2=[s2,s3,s4];s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}if(s1===peg$FAILED){s1=peg$currPos;s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseParameterTypeList();if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){s2=[s2,s3,s4];s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=peg$parseAssignmentExpression();if(s5===peg$FAILED){s5=peg$parseSTAR();}if(s5===peg$FAILED){s5=null;}if(s5!==peg$FAILED){s6=peg$parseRBRK();if(s6!==peg$FAILED){s4=[s4,s5,s6];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseParameterTypeList();if(s5===peg$FAILED){s5=null;}if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){s4=[s4,s5,s6];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=peg$parseAssignmentExpression();if(s5===peg$FAILED){s5=peg$parseSTAR();}if(s5===peg$FAILED){s5=null;}if(s5!==peg$FAILED){s6=peg$parseRBRK();if(s6!==peg$FAILED){s4=[s4,s5,s6];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseParameterTypeList();if(s5===peg$FAILED){s5=null;}if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){s4=[s4,s5,s6];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseInitializer(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseAssignmentExpression();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c45(s1);}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseLWING();if(s1!==peg$FAILED){s2=peg$parseInitializerList();if(s2!==peg$FAILED){s3=peg$parseCOMMA();if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){s4=peg$parseRWING();if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c46(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseInitializerList(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseInitializer();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseInitializer();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c26(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseInitializer();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c26(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c47(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrimaryExpression(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseIdentifier();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c48(s1);}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseConstant();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c49(s1);}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseStringLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c50(s1);}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseLPAR();if(s1!==peg$FAILED){s2=peg$parseExpression();if(s2!==peg$FAILED){s3=peg$parseRPAR();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c51(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}}}return s0;}function peg$parsePostfixExpression(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=peg$parsePrimaryExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=peg$parseExpression();if(s5!==peg$FAILED){s6=peg$parseRBRK();if(s6!==peg$FAILED){peg$savedPos=s3;s4=peg$c52(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseArgumentExpressionList();if(s5===peg$FAILED){s5=null;}if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){peg$savedPos=s3;s4=peg$c53(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseDOT();if(s4!==peg$FAILED){s5=peg$parseIdentifier();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c54(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parsePTR();if(s4!==peg$FAILED){s5=peg$parseIdentifier();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c55(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseINC();if(s4!==peg$FAILED){peg$savedPos=s3;s4=peg$c56(s1,s4);}s3=s4;if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseDEC();if(s4!==peg$FAILED){peg$savedPos=s3;s4=peg$c57(s1,s4);}s3=s4;}}}}}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseLBRK();if(s4!==peg$FAILED){s5=peg$parseExpression();if(s5!==peg$FAILED){s6=peg$parseRBRK();if(s6!==peg$FAILED){peg$savedPos=s3;s4=peg$c52(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseLPAR();if(s4!==peg$FAILED){s5=peg$parseArgumentExpressionList();if(s5===peg$FAILED){s5=null;}if(s5!==peg$FAILED){s6=peg$parseRPAR();if(s6!==peg$FAILED){peg$savedPos=s3;s4=peg$c53(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseDOT();if(s4!==peg$FAILED){s5=peg$parseIdentifier();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c54(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parsePTR();if(s4!==peg$FAILED){s5=peg$parseIdentifier();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c55(s1,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseINC();if(s4!==peg$FAILED){peg$savedPos=s3;s4=peg$c56(s1,s4);}s3=s4;if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parseDEC();if(s4!==peg$FAILED){peg$savedPos=s3;s4=peg$c57(s1,s4);}s3=s4;}}}}}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c58(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseArgumentExpressionList(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseAssignmentExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseAssignmentExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseAssignmentExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c59(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUnaryExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$parsePostfixExpression();if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseINC();if(s1!==peg$FAILED){s2=peg$parseUnaryExpression();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c60(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseDEC();if(s1!==peg$FAILED){s2=peg$parseUnaryExpression();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c61(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseUnaryOperator();if(s1!==peg$FAILED){s2=peg$parseCastExpression();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c62(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseSIZEOF();if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$parseUnaryExpression();if(s3!==peg$FAILED){peg$savedPos=s2;s3=peg$c63(s3);}s2=s3;if(s2===peg$FAILED){s2=peg$currPos;s3=peg$parseLPAR();if(s3!==peg$FAILED){s4=peg$parseTypeName();if(s4!==peg$FAILED){s5=peg$parseRPAR();if(s5!==peg$FAILED){peg$savedPos=s2;s3=peg$c64(s4);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}}}}return s0;}function peg$parseUnaryOperator(){var s0;s0=peg$parseAND();if(s0===peg$FAILED){s0=peg$parseSTAR();if(s0===peg$FAILED){s0=peg$parsePLUS();if(s0===peg$FAILED){s0=peg$parseMINUS();if(s0===peg$FAILED){s0=peg$parseTILDA();if(s0===peg$FAILED){s0=peg$parseBANG();}}}}}return s0;}function peg$parseCastExpression(){var s0,s1,s2,s3,s4;s0=peg$parseUnaryExpression();if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;s2=peg$parseLPAR();if(s2!==peg$FAILED){s3=peg$parseTypeName();if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){s2=[s2,s3,s4];s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parseCastExpression();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c65(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseMultiplicativeExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseCastExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseSTAR();if(s4===peg$FAILED){s4=peg$parseDIV();if(s4===peg$FAILED){s4=peg$parseMOD();}}if(s4!==peg$FAILED){s5=peg$parseCastExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseSTAR();if(s4===peg$FAILED){s4=peg$parseDIV();if(s4===peg$FAILED){s4=peg$parseMOD();}}if(s4!==peg$FAILED){s5=peg$parseCastExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseAdditiveExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseMultiplicativeExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parsePLUS();if(s4===peg$FAILED){s4=peg$parseMINUS();}if(s4!==peg$FAILED){s5=peg$parseMultiplicativeExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parsePLUS();if(s4===peg$FAILED){s4=peg$parseMINUS();}if(s4!==peg$FAILED){s5=peg$parseMultiplicativeExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseShiftExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseAdditiveExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseLEFT();if(s4===peg$FAILED){s4=peg$parseRIGHT();}if(s4!==peg$FAILED){s5=peg$parseAdditiveExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseLEFT();if(s4===peg$FAILED){s4=peg$parseRIGHT();}if(s4!==peg$FAILED){s5=peg$parseAdditiveExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRelationalExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseShiftExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseLE();if(s4===peg$FAILED){s4=peg$parseGE();if(s4===peg$FAILED){s4=peg$parseLT();if(s4===peg$FAILED){s4=peg$parseGT();}}}if(s4!==peg$FAILED){s5=peg$parseShiftExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseLE();if(s4===peg$FAILED){s4=peg$parseGE();if(s4===peg$FAILED){s4=peg$parseLT();if(s4===peg$FAILED){s4=peg$parseGT();}}}if(s4!==peg$FAILED){s5=peg$parseShiftExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEqualityExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseRelationalExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseEQUEQU();if(s4===peg$FAILED){s4=peg$parseBANGEQU();}if(s4!==peg$FAILED){s5=peg$parseRelationalExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseEQUEQU();if(s4===peg$FAILED){s4=peg$parseBANGEQU();}if(s4!==peg$FAILED){s5=peg$parseRelationalExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseANDExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseEqualityExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseAND();if(s4!==peg$FAILED){s5=peg$parseEqualityExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseAND();if(s4!==peg$FAILED){s5=peg$parseEqualityExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseExclusiveORExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseANDExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseHAT();if(s4!==peg$FAILED){s5=peg$parseANDExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseHAT();if(s4!==peg$FAILED){s5=peg$parseANDExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseInclusiveORExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseExclusiveORExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseOR();if(s4!==peg$FAILED){s5=peg$parseExclusiveORExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseOR();if(s4!==peg$FAILED){s5=peg$parseExclusiveORExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLogicalANDExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseInclusiveORExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseANDAND();if(s4!==peg$FAILED){s5=peg$parseInclusiveORExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseANDAND();if(s4!==peg$FAILED){s5=peg$parseInclusiveORExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLogicalORExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseLogicalANDExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseOROR();if(s4!==peg$FAILED){s5=peg$parseLogicalANDExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseOROR();if(s4!==peg$FAILED){s5=peg$parseLogicalANDExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseConditionalExpression(){var s0,s1,s2,s3,s4,s5,s6,s7;s0=peg$currPos;s1=peg$parseLogicalORExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseQUERY();if(s4!==peg$FAILED){s5=peg$parseExpression();if(s5!==peg$FAILED){s6=peg$parseCOLON();if(s6!==peg$FAILED){s7=peg$parseLogicalORExpression();if(s7!==peg$FAILED){s4=[s4,s5,s6,s7];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseQUERY();if(s4!==peg$FAILED){s5=peg$parseExpression();if(s5!==peg$FAILED){s6=peg$parseCOLON();if(s6!==peg$FAILED){s7=peg$parseLogicalORExpression();if(s7!==peg$FAILED){s4=[s4,s5,s6,s7];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c67(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseAssignmentExpression(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseUnaryExpression();if(s1!==peg$FAILED){s2=peg$parseAssignmentOperator();if(s2!==peg$FAILED){s3=peg$parseAssignmentExpression();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c68(s1,s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$parseConditionalExpression();}return s0;}function peg$parseAssignmentOperator(){var s0;s0=peg$parseEQU();if(s0===peg$FAILED){s0=peg$parseSTAREQU();if(s0===peg$FAILED){s0=peg$parseDIVEQU();if(s0===peg$FAILED){s0=peg$parseMODEQU();if(s0===peg$FAILED){s0=peg$parsePLUSEQU();if(s0===peg$FAILED){s0=peg$parseMINUSEQU();if(s0===peg$FAILED){s0=peg$parseLEFTEQU();if(s0===peg$FAILED){s0=peg$parseRIGHTEQU();if(s0===peg$FAILED){s0=peg$parseANDEQU();if(s0===peg$FAILED){s0=peg$parseHATEQU();if(s0===peg$FAILED){s0=peg$parseOREQU();}}}}}}}}}}return s0;}function peg$parseExpression(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseAssignmentExpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseAssignmentExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseCOMMA();if(s4!==peg$FAILED){s5=peg$parseAssignmentExpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c66(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSpacing(){var s0,s1,s2;s0=peg$currPos;s1=[];s2=peg$parseWhiteSpace();if(s2===peg$FAILED){s2=peg$parseLongComment();if(s2===peg$FAILED){s2=peg$parseLineComment();}}while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseWhiteSpace();if(s2===peg$FAILED){s2=peg$parseLongComment();if(s2===peg$FAILED){s2=peg$parseLineComment();}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c69(s1);}s0=s1;return s0;}function peg$parseWhiteSpace(){var s0,s1;s0=peg$currPos;if(peg$c70.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c71);}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);}s0=s1;return s0;}function peg$parseLongComment(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c72){s1=peg$c72;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c73);}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c74){s5=peg$c74;peg$currPos+=2;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c75);}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0;}else{peg$currPos=s4;s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parse_();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c74){s5=peg$c74;peg$currPos+=2;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c75);}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0;}else{peg$currPos=s4;s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parse_();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c74){s3=peg$c74;peg$currPos+=2;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c75);}}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c76(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLineComment(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c77){s1=peg$c77;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c78);}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.charCodeAt(peg$currPos)===10){s5=peg$c79;peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c80);}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0;}else{peg$currPos=s4;s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parse_();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.charCodeAt(peg$currPos)===10){s5=peg$c79;peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c80);}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0;}else{peg$currPos=s4;s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parse_();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c76(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseAUTO(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c81){s1=peg$c81;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c82);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseBREAK(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c83){s1=peg$c83;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c84);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCASE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c85){s1=peg$c85;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c86);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCHAR(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c87){s1=peg$c87;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c88);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCONST(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c89){s1=peg$c89;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c90);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCONTINUE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c91){s1=peg$c91;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c92);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDEFAULT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c93){s1=peg$c93;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c94);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDOUBLE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c95){s1=peg$c95;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c96);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDO(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c97){s1=peg$c97;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c98);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseELSE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c99){s1=peg$c99;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c100);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseENUM(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c101){s1=peg$c101;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c102);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEXTERN(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c103){s1=peg$c103;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c104);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFLOAT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c105){s1=peg$c105;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c106);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFOR(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c107){s1=peg$c107;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c108);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseGOTO(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c109){s1=peg$c109;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c110);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIF(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c111){s1=peg$c111;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c112);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseINT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c113){s1=peg$c113;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c114);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseINLINE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c115){s1=peg$c115;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c116);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLONG(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c117){s1=peg$c117;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c118);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseREGISTER(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c119){s1=peg$c119;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c120);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRESTRICT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c121){s1=peg$c121;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c122);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRETURN(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c123){s1=peg$c123;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c124);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSHORT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c125){s1=peg$c125;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c126);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSIGNED(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c127){s1=peg$c127;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c128);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSIZEOF(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c129){s1=peg$c129;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c130);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSTATIC(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c131){s1=peg$c131;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c132);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSTRUCT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c133){s1=peg$c133;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c134);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSWITCH(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c135){s1=peg$c135;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c136);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseTYPEDEF(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c137){s1=peg$c137;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c138);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUNION(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c139){s1=peg$c139;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c140);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUNSIGNED(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c141){s1=peg$c141;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c142);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseVOID(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c143){s1=peg$c143;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c144);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseVOLATILE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c145){s1=peg$c145;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c146);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseWHILE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c147){s1=peg$c147;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c148);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseBOOL(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c149){s1=peg$c149;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c150);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCOMPLEX(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c151){s1=peg$c151;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c152);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSTDCALL(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c153){s1=peg$c153;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c154);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDECLSPEC(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c155){s1=peg$c155;peg$currPos+=10;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c156);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseATTRIBUTE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c157){s1=peg$c157;peg$currPos+=13;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c158);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseNAMESPACE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c159){s1=peg$c159;peg$currPos+=9;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c160);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUSING(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c161){s1=peg$c161;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c162);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseTRUE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c163){s1=peg$c163;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c164);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFALSE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c165){s1=peg$c165;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c166);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseKeyword(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c81){s1=peg$c81;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c82);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c83){s1=peg$c83;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c84);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c85){s1=peg$c85;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c86);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c87){s1=peg$c87;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c88);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c89){s1=peg$c89;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c90);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c91){s1=peg$c91;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c92);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c93){s1=peg$c93;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c94);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c95){s1=peg$c95;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c96);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c97){s1=peg$c97;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c98);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c99){s1=peg$c99;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c100);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c101){s1=peg$c101;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c102);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c103){s1=peg$c103;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c104);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c105){s1=peg$c105;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c106);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c107){s1=peg$c107;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c108);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c109){s1=peg$c109;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c110);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c111){s1=peg$c111;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c112);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c113){s1=peg$c113;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c114);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c115){s1=peg$c115;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c116);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c117){s1=peg$c117;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c118);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c119){s1=peg$c119;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c120);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c121){s1=peg$c121;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c122);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c123){s1=peg$c123;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c124);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c125){s1=peg$c125;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c126);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c127){s1=peg$c127;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c128);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c129){s1=peg$c129;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c130);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c131){s1=peg$c131;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c132);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c133){s1=peg$c133;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c134);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c135){s1=peg$c135;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c136);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c137){s1=peg$c137;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c138);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c139){s1=peg$c139;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c140);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c141){s1=peg$c141;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c142);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c143){s1=peg$c143;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c144);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c145){s1=peg$c145;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c146);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c147){s1=peg$c147;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c148);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c149){s1=peg$c149;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c150);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c151){s1=peg$c151;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c152);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c167){s1=peg$c167;peg$currPos+=10;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c168);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c153){s1=peg$c153;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c154);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c155){s1=peg$c155;peg$currPos+=10;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c156);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c157){s1=peg$c157;peg$currPos+=13;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c158);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c159){s1=peg$c159;peg$currPos+=9;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c160);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c161){s1=peg$c161;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c162);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c163){s1=peg$c163;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c164);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c165){s1=peg$c165;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c166);}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseScopedIdentifier(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseSCOPEOP();if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$parseIdentifier();if(s4!==peg$FAILED){s5=peg$parseSCOPEOP();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c26(s4);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$parseIdentifier();if(s4!==peg$FAILED){s5=peg$parseSCOPEOP();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c26(s4);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){s3=peg$parseIdentifier();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c169(s1,s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIdentifier(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;s2=peg$parseKeyword();peg$silentFails--;if(s2===peg$FAILED){s1=void 0;}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parseIdNondigit();if(s2!==peg$FAILED){s3=[];s4=peg$parseIdChar();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseIdChar();}if(s3!==peg$FAILED){s4=peg$parseSpacing();if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c170(s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIdNondigit(){var s0;if(peg$c171.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c172);}}if(s0===peg$FAILED){if(peg$c173.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c174);}}if(s0===peg$FAILED){if(peg$c175.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c176);}}if(s0===peg$FAILED){s0=peg$parseUniversalCharacter();}}}return s0;}function peg$parseIdChar(){var s0;if(peg$c171.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c172);}}if(s0===peg$FAILED){if(peg$c173.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c174);}}if(s0===peg$FAILED){if(peg$c177.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}if(s0===peg$FAILED){if(peg$c175.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c176);}}if(s0===peg$FAILED){s0=peg$parseUniversalCharacter();}}}}return s0;}function peg$parseUniversalCharacter(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c179){s1=peg$c179;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c180);}}if(s1!==peg$FAILED){s2=peg$parseHexQuad();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c181(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c182){s1=peg$c182;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c183);}}if(s1!==peg$FAILED){s2=peg$parseHexQuad();if(s2!==peg$FAILED){s3=peg$parseHexQuad();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c184(s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseHexQuad(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseHexDigit();if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s1=[s1,s2,s3,s4];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseConstant(){var s0,s1;s0=peg$currPos;s1=peg$parseFloatConstant();if(s1===peg$FAILED){s1=peg$parseIntegerConstant();if(s1===peg$FAILED){s1=peg$parseEnumerationConstant();if(s1===peg$FAILED){s1=peg$parseCharacterConstant();if(s1===peg$FAILED){s1=peg$parseBooleanConstant();}}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);}s0=s1;return s0;}function peg$parseBooleanConstant(){var s0,s1;s0=peg$currPos;s1=peg$parseTRUE();if(s1===peg$FAILED){s1=peg$parseFALSE();}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c185(s1);}s0=s1;return s0;}function peg$parseIntegerConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseBinaryConstant();if(s1===peg$FAILED){s1=peg$parseDecimalConstant();if(s1===peg$FAILED){s1=peg$parseHexConstant();if(s1===peg$FAILED){s1=peg$parseOctalConstant();}}}if(s1!==peg$FAILED){s2=peg$parseIntegerSuffix();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDecimalConstant(){var s0,s1,s2,s3;s0=peg$currPos;if(peg$c186.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c187);}}if(s1!==peg$FAILED){s2=[];if(peg$c177.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}while(s3!==peg$FAILED){s2.push(s3);if(peg$c177.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c188(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseOctalConstant(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===48){s1=peg$c189;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c190);}}if(s1!==peg$FAILED){s2=[];if(peg$c191.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c192);}}while(s3!==peg$FAILED){s2.push(s3);if(peg$c191.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c192);}}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c193(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseHexConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseHexPrefix();if(s1!==peg$FAILED){s2=[];s3=peg$parseHexDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseHexDigit();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c194(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseHexPrefix(){var s0;if(input.substr(peg$currPos,2)===peg$c195){s0=peg$c195;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c196);}}if(s0===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c197){s0=peg$c197;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c198);}}}return s0;}function peg$parseHexDigit(){var s0;if(peg$c199.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c200);}}if(s0===peg$FAILED){if(peg$c201.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c202);}}if(s0===peg$FAILED){if(peg$c177.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}}}return s0;}function peg$parseBinaryPrefix(){var s0;if(input.substr(peg$currPos,2)===peg$c203){s0=peg$c203;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c204);}}return s0;}function peg$parseBinaryDigit(){var s0;if(peg$c205.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c206);}}return s0;}function peg$parseBinaryConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseBinaryPrefix();if(s1!==peg$FAILED){s2=[];s3=peg$parseBinaryDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseBinaryDigit();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c207(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIntegerSuffix(){var s0,s1,s2;s0=peg$currPos;if(peg$c208.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c209);}}if(s1!==peg$FAILED){s2=peg$parseLsuffix();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseLsuffix();if(s1!==peg$FAILED){if(peg$c208.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c209);}}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseLsuffix(){var s0;if(input.substr(peg$currPos,2)===peg$c210){s0=peg$c210;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c211);}}if(s0===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c212){s0=peg$c212;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c213);}}if(s0===peg$FAILED){if(peg$c214.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c215);}}}}return s0;}function peg$parseFloatConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseDecimalFloatConstant();if(s1===peg$FAILED){s1=peg$parseHexFloatConstant();}if(s1!==peg$FAILED){s2=peg$parseFloatSuffix();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c216(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDecimalFloatConstant(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseFraction();if(s1!==peg$FAILED){s2=peg$parseExponent();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c217(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=[];if(peg$c177.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);if(peg$c177.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parseExponent();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c218(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseHexFloatConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseHexPrefix();if(s1!==peg$FAILED){s2=peg$parseHexFraction();if(s2!==peg$FAILED){s3=peg$parseBinaryExponent();if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c219(s1,s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseHexPrefix();if(s1!==peg$FAILED){s2=[];s3=peg$parseHexDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseHexDigit();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseBinaryExponent();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c220(s1,s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseFraction(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=[];if(peg$c177.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}while(s2!==peg$FAILED){s1.push(s2);if(peg$c177.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c221;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c222);}}if(s2!==peg$FAILED){s3=[];if(peg$c177.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);if(peg$c177.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}}}else{s3=peg$FAILED;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c223(s1,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=[];if(peg$c177.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);if(peg$c177.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c221;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c222);}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c76(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseHexFraction(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=[];s2=peg$parseHexDigit();while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseHexDigit();}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c221;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c222);}}if(s2!==peg$FAILED){s3=[];s4=peg$parseHexDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseHexDigit();}}else{s3=peg$FAILED;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c223(s1,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=[];s2=peg$parseHexDigit();if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseHexDigit();}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c221;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c222);}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c224(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseExponent(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(peg$c225.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c226);}}if(s1!==peg$FAILED){if(peg$c227.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c228);}}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=[];if(peg$c177.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);if(peg$c177.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}}}else{s3=peg$FAILED;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c229(s1,s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseBinaryExponent(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(peg$c230.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c231);}}if(s1!==peg$FAILED){if(peg$c227.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c228);}}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=[];if(peg$c177.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);if(peg$c177.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}}}else{s3=peg$FAILED;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c232(s1,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFloatSuffix(){var s0,s1;s0=peg$currPos;if(peg$c233.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);}s0=s1;return s0;}function peg$parseEnumerationConstant(){var s0,s1;s0=peg$currPos;s1=peg$parseIdentifier();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c235(s1);}s0=s1;return s0;}function peg$parseCharacterConstant(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===76){s1=peg$c236;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c237);}}if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===39){s2=peg$c238;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c239);}}if(s2!==peg$FAILED){s3=[];s4=peg$parseChar();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseChar();}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===39){s4=peg$c238;peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c239);}}if(s4!==peg$FAILED){s5=peg$parseSpacing();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c240(s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseChar(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseEscape();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c241.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c242);}}peg$silentFails--;if(s2===peg$FAILED){s1=void 0;}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseEscape(){var s0,s1;s0=peg$currPos;s1=peg$parseSimpleEscape();if(s1===peg$FAILED){s1=peg$parseOctalEscape();if(s1===peg$FAILED){s1=peg$parseHexEscape();if(s1===peg$FAILED){s1=peg$parseUniversalCharacter();}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);}s0=s1;return s0;}function peg$parseSimpleEscape(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===92){s1=peg$c243;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c244);}}if(s1!==peg$FAILED){if(peg$c245.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c246);}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c247(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseOctalEscape(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===92){s1=peg$c243;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c244);}}if(s1!==peg$FAILED){if(peg$c191.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c192);}}if(s2!==peg$FAILED){if(peg$c191.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c192);}}if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){if(peg$c191.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c192);}}if(s4===peg$FAILED){s4=null;}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c248(s1,s2,s3,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseHexEscape(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c249){s1=peg$c249;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c250);}}if(s1!==peg$FAILED){s2=[];s3=peg$parseHexDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseHexDigit();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c251(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseStringLiteral(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===76){s1=peg$c236;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c237);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c252){s1=peg$c252;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c253);}}if(s1===peg$FAILED){if(input.charCodeAt(peg$currPos)===117){s1=peg$c254;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c255);}}if(s1===peg$FAILED){if(input.charCodeAt(peg$currPos)===85){s1=peg$c256;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c257);}}}}}if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){s2=peg$parseRawStringLiteral();if(s2===peg$FAILED){s2=peg$parseEscapedStringLiteral();}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c258(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRawStringLiteral(){var s0,s1,s2,s3,s4,s5,s6,s7;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===82){s1=peg$c259;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c260);}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;if(peg$c261.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c262);}}if(s4!==peg$FAILED){s5=[];s6=peg$parseRawStringChar();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseRawStringChar();}if(s5!==peg$FAILED){if(peg$c261.test(input.charAt(peg$currPos))){s6=input.charAt(peg$currPos);peg$currPos++;}else{s6=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c262);}}if(s6!==peg$FAILED){s7=peg$parseSpacing();if(s7!==peg$FAILED){peg$savedPos=s3;s4=peg$c76(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;if(peg$c261.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c262);}}if(s4!==peg$FAILED){s5=[];s6=peg$parseRawStringChar();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseRawStringChar();}if(s5!==peg$FAILED){if(peg$c261.test(input.charAt(peg$currPos))){s6=input.charAt(peg$currPos);peg$currPos++;}else{s6=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c262);}}if(s6!==peg$FAILED){s7=peg$parseSpacing();if(s7!==peg$FAILED){peg$savedPos=s3;s4=peg$c76(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c263(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEscapedStringLiteral(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=[];s2=peg$currPos;if(peg$c261.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c262);}}if(s3!==peg$FAILED){s4=[];s5=peg$parseStringChar();while(s5!==peg$FAILED){s4.push(s5);s5=peg$parseStringChar();}if(s4!==peg$FAILED){if(peg$c261.test(input.charAt(peg$currPos))){s5=input.charAt(peg$currPos);peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c262);}}if(s5!==peg$FAILED){s6=peg$parseSpacing();if(s6!==peg$FAILED){peg$savedPos=s2;s3=peg$c76(s4);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$currPos;if(peg$c261.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c262);}}if(s3!==peg$FAILED){s4=[];s5=peg$parseStringChar();while(s5!==peg$FAILED){s4.push(s5);s5=peg$parseStringChar();}if(s4!==peg$FAILED){if(peg$c261.test(input.charAt(peg$currPos))){s5=input.charAt(peg$currPos);peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c262);}}if(s5!==peg$FAILED){s6=peg$parseSpacing();if(s6!==peg$FAILED){peg$savedPos=s2;s3=peg$c76(s4);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c263(s1);}s0=s1;return s0;}function peg$parseRawStringChar(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c264.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c265);}}peg$silentFails--;if(s2===peg$FAILED){s1=void 0;}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseStringChar(){var s0,s1,s2;s0=peg$parseEscape();if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c266.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c267);}}peg$silentFails--;if(s2===peg$FAILED){s1=void 0;}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseLBRK(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c268;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c269);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRBRK(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===93){s1=peg$c270;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c271);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLPAR(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===40){s1=peg$c272;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c273);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRPAR(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===41){s1=peg$c274;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c275);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLWING(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c276;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c277);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRWING(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===125){s1=peg$c278;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c279);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDOT(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===46){s1=peg$c221;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c222);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePTR(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c280){s1=peg$c280;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c281);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseINC(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c282){s1=peg$c282;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c283);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDEC(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c284){s1=peg$c284;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c285);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseAND(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c286;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c287);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c288.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c289);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSTAR(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===42){s1=peg$c290;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c291);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePLUS(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===43){s1=peg$c294;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c295);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c296.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c297);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseMINUS(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===45){s1=peg$c298;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c299);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c300.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c301);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseTILDA(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===126){s1=peg$c302;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c303);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseBANG(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===33){s1=peg$c304;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c305);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDIV(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===47){s1=peg$c306;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c307);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseMOD(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===37){s1=peg$c308;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c309);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c310.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c311);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLEFT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c312){s1=peg$c312;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c313);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRIGHT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c314){s1=peg$c314;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c315);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===60){s1=peg$c316;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c317);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseGT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===62){s1=peg$c318;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c319);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLE(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c320){s1=peg$c320;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c321);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseGE(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c322){s1=peg$c322;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c323);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEQUEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c324){s1=peg$c324;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c325);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseBANGEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c326){s1=peg$c326;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c327);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseHAT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===94){s1=peg$c328;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c329);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseOR(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===124){s1=peg$c330;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c331);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c292.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c293);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseANDAND(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c332){s1=peg$c332;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c333);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseOROR(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c334){s1=peg$c334;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c335);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseQUERY(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===63){s1=peg$c336;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c337);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCOLON(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===58){s1=peg$c338;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c339);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c340.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c341);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSEMI(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===59){s1=peg$c342;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c343);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseELLIPSIS(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c344){s1=peg$c344;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c345);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEQU(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===61){s1=peg$c346;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c347);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(input.charCodeAt(peg$currPos)===61){s3=peg$c346;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c347);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSTAREQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c348){s1=peg$c348;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c349);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDIVEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c350){s1=peg$c350;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c351);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseMODEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c352){s1=peg$c352;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c353);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePLUSEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c354){s1=peg$c354;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c355);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseMINUSEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c356){s1=peg$c356;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c357);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLEFTEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c358){s1=peg$c358;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c359);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRIGHTEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c360){s1=peg$c360;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c361);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseANDEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c362){s1=peg$c362;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c363);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseHATEQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c364){s1=peg$c364;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c365);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseOREQU(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c366){s1=peg$c366;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c367);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCOMMA(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===44){s1=peg$c368;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c369);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSCOPEOP(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c370){s1=peg$c370;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c371);}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c26(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEOT(){var s0,s1;s0=peg$currPos;peg$silentFails++;s1=peg$parse_();peg$silentFails--;if(s1===peg$FAILED){s0=void 0;}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parse_(){var s0;if(input.length>peg$currPos){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c372);}}return s0;}function buildRecursiveBinop(a,b){var ret=a;for(var i=0;i<b.length;i++){ret=addPositionInfo({type:'BinOpExpression',left:ret,op:b[i][0],right:b[i][1]});}return ret;};function addPositionInfo(r){var posDetails=peg$computePosDetails(peg$currPos);r.eLine=posDetails.line;r.eColumn=posDetails.column;r.eOffset=peg$currPos;posDetails=peg$computePosDetails(peg$savedPos);r.sLine=posDetails.line;r.sColumn=posDetails.column;r.sOffset=peg$savedPos;return r;}peg$result=peg$startRuleFunction();if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result;}else{if(peg$result!==peg$FAILED&&peg$currPos<input.length){peg$fail({type:"end",description:"end of input"});}throw peg$buildException(null,peg$maxFailExpected,peg$maxFailPos<input.length?input.charAt(peg$maxFailPos):null,peg$maxFailPos<input.length?peg$computeLocation(peg$maxFailPos,peg$maxFailPos+1):peg$computeLocation(peg$maxFailPos,peg$maxFailPos));}}return{SyntaxError:peg$SyntaxError,parse:peg$parse};}();},{}],2:[function(require,module,exports){var Debugger,Runtime;Runtime=require("./rt");Debugger=function Debugger(){this.src="";this.prevNode=null;this.done=false;this.conditions={isStatement:function isStatement(prevNode,newStmt){return newStmt!=null?newStmt.type.indexOf("Statement">=0):void 0;},positionChanged:function positionChanged(prevNode,newStmt){return(prevNode!=null?prevNode.eOffset:void 0)!==newStmt.eOffset||(prevNode!=null?prevNode.sOffset:void 0)!==newStmt.sOffset;},lineChanged:function lineChanged(prevNode,newStmt){return(prevNode!=null?prevNode.sLine:void 0)!==newStmt.sLine;}};this.stopConditions={isStatement:false,positionChanged:false,lineChanged:true};return this;};Debugger.prototype.start=function(rt,gen){this.rt=rt;return this.gen=gen;};Debugger.prototype["continue"]=function(){var active,curStmt,done,name,ref;while(true){done=this.next();if(done!==false){return done;}curStmt=this.nextNode();ref=this.stopConditions;for(name in ref){active=ref[name];if(active){if(this.conditions[name](this.prevNode,curStmt)){return false;}}}}};Debugger.prototype.next=function(){var ngen;this.prevNode=this.nextNode();ngen=this.gen.next();if(ngen.done){this.done=true;return ngen.value;}else{return false;}};Debugger.prototype.nextLine=function(){var s;s=this.nextNode();return this.src.slice(s.sOffset,s.eOffset).trim();};Debugger.prototype.nextNode=function(){if(this.done){return{sOffset:-1,sLine:-1,sColumn:-1,eOffset:-1,eLine:-1,eColumn:-1};}else{return this.rt.interp.currentNode;}};Debugger.prototype.variable=function(name){var i,ref,ref1,ret,scopeIndex,usedName,v,val;if(name){v=this.rt.readVar(name);return{type:this.rt.makeTypeString(v.t),value:v.v};}else{usedName=new Set();ret=[];for(scopeIndex=i=ref=this.rt.scope.length-1;i>=0;scopeIndex=i+=-1){ref1=this.rt.scope[scopeIndex];for(name in ref1){val=ref1[name];if(_typeof(val)==="object"&&"t"in val&&"v"in val){if(!usedName.has(name)){usedName.add(name);ret.push({name:name,type:this.rt.makeTypeString(val.t),value:this.rt.makeValueString(val)});}}}}return ret;}};module.exports=Debugger;},{"./rt":20}],3:[function(require,module,exports){module.exports=function(){var defaultOpHandler,defaults;defaults=this;this.config={specifiers:["const","inline","_stdcall","extern","static","auto","register"],charTypes:["char","signed char","unsigned char","wchar_t","unsigned wchar_t","char16_t","unsigned char16_t","char32_t","unsigned char32_t"],intTypes:["short","short int","signed short","signed short int","unsigned short","unsigned short int","int","signed int","unsigned","unsigned int","long","long int","long int","signed long","signed long int","unsigned long","unsigned long int","long long","long long int","long long int","signed long long","signed long long int","unsigned long long","unsigned long long int","bool"],limits:{

// BY LRUSSO.COM - FOR ALLOWING EXTENDED ASCII CHARACTERS IN CHAR, LIKE IN ARDUINO
"char":{max:0xff,min:0x00,bytes:1},
"signed char":{max:0xff,min:-0x80,bytes:1},
"unsigned char":{max:0xff,min:0x00,bytes:1},
//"char":{max:0x7f,min:0x00,bytes:1},
//"signed char":{max:0x7f,min:-0x80,bytes:1},
//"unsigned char":{max:0xff,min:0x00,bytes:1},

"wchar_t":{max:0x7fffffff,min:-0x80000000,bytes:4},"unsigned wchar_t":{max:0xffffffff,min:0x00000000,bytes:4},"char16_t":{max:0x7fff,min:-0x8000,bytes:4},"unsigned char16_t":{max:0xffff,min:0x0000,bytes:4},"char32_t":{max:0x7fffffff,min:-0x80000000,bytes:4},"unsigned char32_t":{max:0xffffffff,min:0x00000000,bytes:4},"short":{max:0x7fff,min:-0x8000,bytes:2},"unsigned short":{max:0xffff,min:0x0000,bytes:2},"int":{max:0x7fffffff,min:-0x80000000,bytes:4},"unsigned":{max:0xffffffff,min:0x00000000,bytes:4},"long":{max:0x7fffffff,min:-0x80000000,bytes:4},"unsigned long":{max:0xffffffff,min:0x00000000,bytes:4},"long long":{max:0x7fffffffffffffff,min:-0x8000000000000000,bytes:8},"unsigned long long":{max:0xffffffffffffffff,min:0x0000000000000000,bytes:8},"float":{max:3.40282346638529e+038,min:-3.40282346638529e+038,bytes:4},"double":{max:2e308,min:-2e308,bytes:8},"pointer":{max:void 0,min:void 0,bytes:4},"bool":{max:1,min:0,bytes:1}},loadedLibraries:[]};this.config.limits["short int"]=this.config.limits["short"];this.config.limits["signed short"]=this.config.limits["short"];this.config.limits["signed short int"]=this.config.limits["short"];this.config.limits["unsigned short int"]=this.config.limits["unsigned short"];this.config.limits["signed int"]=this.config.limits["int"];this.config.limits["unsigned int"]=this.config.limits["unsigned"];this.config.limits["long int"]=this.config.limits["long"];this.config.limits["long int"]=this.config.limits["long"];this.config.limits["signed long"]=this.config.limits["long"];this.config.limits["signed long int"]=this.config.limits["long"];this.config.limits["unsigned long int"]=this.config.limits["unsigned long"];this.config.limits["long long int"]=this.config.limits["long long"];this.config.limits["long long int"]=this.config.limits["long long"];this.config.limits["signed long long"]=this.config.limits["long long"];this.config.limits["signed long long int"]=this.config.limits["long long"];this.config.limits["unsigned long long int"]=this.config.limits["unsigned long long"];this.numericTypeOrder=["char","signed char","short","short int","signed short","signed short int","int","signed int","long","long int","long int","signed long","signed long int","long long","long long int","long long int","signed long long","signed long long int","float","double"];defaultOpHandler={"o(*)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support * on "+rt.makeTypeString(r.t));}ret=l.v*r.v;rett=rt.promoteNumeric(l.t,r.t);return rt.val(rett,ret);}},"o(/)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support / on "+rt.makeTypeString(r.t));}ret=l.v/r.v;if(rt.isIntegerType(l.t)&&rt.isIntegerType(r.t)){ret=Math.floor(ret);}rett=rt.promoteNumeric(l.t,r.t);return rt.val(rett,ret);}},"o(%)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)||!rt.isIntegerType(l.t)||!rt.isIntegerType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support % on "+rt.makeTypeString(r.t));}ret=l.v%r.v;rett=rt.promoteNumeric(l.t,r.t);return rt.val(rett,ret);}},"o(+)":{"#default":function _default(rt,l,r){var i,ret,rett;if(r===void 0){// unary
return l;}else{if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support + on "+rt.makeTypeString(r.t));}if(rt.isArrayType(r.t)){i=rt.cast(rt.intTypeLiteral,l).v;return rt.val(r.t,rt.makeArrayPointerValue(r.v.target,r.v.position+i));}else{ret=l.v+r.v;rett=rt.promoteNumeric(l.t,r.t);return rt.val(rett,ret);}}}},"o(-)":{"#default":function _default(rt,l,r){var ret,rett;if(r===void 0){// unary
rett=l.v>0?rt.getSignedType(l.t):l.t;return rt.val(rett,-l.v);}else{// binary
if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support - on "+rt.makeTypeString(r.t));}ret=l.v-r.v;rett=rt.promoteNumeric(l.t,r.t);return rt.val(rett,ret);}}},"o(<<)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)||!rt.isIntegerType(l.t)||!rt.isIntegerType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support << on "+rt.makeTypeString(r.t));}ret=l.v<<r.v;rett=l.t;return rt.val(rett,ret);}},"o(>>)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)||!rt.isIntegerType(l.t)||!rt.isIntegerType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support >> on "+rt.makeTypeString(r.t));}ret=l.v>>r.v;rett=l.t;return rt.val(rett,ret);}},"o(<)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support < on "+rt.makeTypeString(r.t));}ret=l.v<r.v;rett=rt.boolTypeLiteral;return rt.val(rett,ret);}},"o(<=)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support <= on "+rt.makeTypeString(r.t));}ret=l.v<=r.v;rett=rt.boolTypeLiteral;return rt.val(rett,ret);}},"o(>)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support > on "+rt.makeTypeString(r.t));}ret=l.v>r.v;rett=rt.boolTypeLiteral;return rt.val(rett,ret);}},"o(>=)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support >= on "+rt.makeTypeString(r.t));}ret=l.v>=r.v;rett=rt.boolTypeLiteral;return rt.val(rett,ret);}},"o(==)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support == on "+rt.makeTypeString(r.t));}ret=l.v===r.v;rett=rt.boolTypeLiteral;return rt.val(rett,ret);}},"o(!=)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support != on "+rt.makeTypeString(r.t));}ret=l.v!==r.v;rett=rt.boolTypeLiteral;return rt.val(rett,ret);}},"o(&)":{"#default":function _default(rt,l,r){var ret,rett,t;if(r===void 0){if(l.array){return rt.val(rt.arrayPointerType(l.t,l.array.length),rt.makeArrayPointerValue(l.array,l.arrayIndex));}else{t=rt.normalPointerType(l.t);return rt.val(t,rt.makeNormalPointerValue(l));}}else{if(!rt.isIntegerType(l.t)||!rt.isNumericType(r.t)||!rt.isIntegerType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support & on "+rt.makeTypeString(r.t));}ret=l.v&r.v;rett=rt.promoteNumeric(l.t,r.t);return rt.val(rett,ret);}}},"o(^)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)||!rt.isIntegerType(l.t)||!rt.isIntegerType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support ^ on "+rt.makeTypeString(r.t));}ret=l.v^r.v;rett=rt.promoteNumeric(l.t,r.t);return rt.val(rett,ret);}},"o(|)":{"#default":function _default(rt,l,r){var ret,rett;if(!rt.isNumericType(r.t)||!rt.isIntegerType(l.t)||!rt.isIntegerType(r.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support | on "+rt.makeTypeString(r.t));}ret=l.v|r.v;rett=rt.promoteNumeric(l.t,r.t);return rt.val(rett,ret);}},"o(,)":{"#default":function _default(rt,l,r){return r;}},"o(=)":{"#default":function _default(rt,l,r){if(l.left){l.v=rt.cast(l.t,r).v;return l;}else{rt.raiseException(rt.makeValString(l)+" is not a left value");}}},"o(+=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(+)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(-=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(-)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(*=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(*)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(/=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(/)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(%=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(%)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(<<=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(<<)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(>>=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(>>)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(&=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(&)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(^=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(^)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(|=)":{"#default":function _default(rt,l,r){r=defaultOpHandler["o(|)"]["#default"](rt,l,r);return defaultOpHandler["o(=)"]["#default"](rt,l,r);}},"o(++)":{"#default":function _default(rt,l,dummy){var b;if(!rt.isNumericType(l.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support increment");}if(!l.left){rt.raiseException(rt.makeValString(l)+" is not a left value");}if(dummy){b=l.v;l.v=l.v+1;if(rt.inrange(l.t,l.v)){return rt.val(l.t,b);}rt.raiseException("overflow during post-increment ".concat(rt.makeValString(l)));}else{l.v=l.v+1;if(rt.inrange(l.t,l.v)){return l;}rt.raiseException("overflow during pre-increment ".concat(rt.makeValString(l)));}}},"o(--)":{"#default":function _default(rt,l,dummy){var b;if(!rt.isNumericType(l.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support decrement");}if(!l.left){rt.raiseException(rt.makeValString(l)+" is not a left value");}if(dummy){b=l.v;l.v=l.v-1;if(rt.inrange(l.t,l.v)){return rt.val(l.t,b);}rt.raiseException("overflow during post-decrement");}else{l.v=l.v-1;b=l.v;if(rt.inrange(l.t,l.v)){return l;}rt.raiseException("overflow during pre-decrement");}}},"o(~)":{"#default":function _default(rt,l,dummy){var ret,rett;if(!rt.isIntegerType(l.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support ~ on itself");}ret=~l.v;rett=rt.promoteNumeric(l.t,rt.intTypeLiteral);return rt.val(rett,ret);}},"o(!)":{"#default":function _default(rt,l,dummy){var ret,rett;if(!rt.isIntegerType(l.t)){rt.raiseException(rt.makeTypeString(l.t)+" does not support ! on itself");}ret=l.v?0:1;rett=l.t;return rt.val(rett,ret);}}};this.types={"global":{}};this.types["(char)"]=defaultOpHandler;this.types["(signed char)"]=defaultOpHandler;this.types["(unsigned char)"]=defaultOpHandler;this.types["(short)"]=defaultOpHandler;this.types["(short int)"]=defaultOpHandler;this.types["(signed short)"]=defaultOpHandler;this.types["(signed short int)"]=defaultOpHandler;this.types["(unsigned short)"]=defaultOpHandler;this.types["(unsigned short int)"]=defaultOpHandler;this.types["(int)"]=defaultOpHandler;this.types["(signed int)"]=defaultOpHandler;this.types["(unsigned)"]=defaultOpHandler;this.types["(unsigned int)"]=defaultOpHandler;this.types["(long)"]=defaultOpHandler;this.types["(long int)"]=defaultOpHandler;this.types["(long int)"]=defaultOpHandler;this.types["(signed long)"]=defaultOpHandler;this.types["(signed long int)"]=defaultOpHandler;this.types["(unsigned long)"]=defaultOpHandler;this.types["(unsigned long int)"]=defaultOpHandler;this.types["(long long)"]=defaultOpHandler;this.types["(long long int)"]=defaultOpHandler;this.types["(long long int)"]=defaultOpHandler;this.types["(signed long long)"]=defaultOpHandler;this.types["(signed long long int)"]=defaultOpHandler;this.types["(unsigned long long)"]=defaultOpHandler;this.types["(unsigned long long int)"]=defaultOpHandler;this.types["(float)"]=defaultOpHandler;this.types["(double)"]=defaultOpHandler;this.types["(bool)"]=defaultOpHandler;this.types["pointer"]={"o(==)":{"#default":function _default(rt,l,r){if(rt.isTypeEqualTo(l.t,r.t)){if(l.t.ptrType==="array"){return l.v.target===r.v.target&&(l.v.target===null||l.v.position===r.v.position);}else{return l.v.target===r.v.target;}}return false;}},"o(!=)":{"#default":function _default(rt,l,r){return!rt.types["pointer"]["=="]["#default"](rt,l,r);}},"o(,)":{"#default":function _default(rt,l,r){return r;}},"o(=)":{"#default":function _default(rt,l,r){var t;if(!l.left){rt.raiseException(rt.makeValString(l)+" is not a left value");}t=rt.cast(l.t,r);l.t=t.t;l.v=t.v;return l;}},"o(&)":{"#default":function _default(rt,l,r){var t;if(r===void 0){if(l.array){return rt.val(rt.arrayPointerType(l.t,l.array.length),rt.makeArrayPointerValue(l.array,l.arrayIndex));}else{t=rt.normalPointerType(l.t);return rt.val(t,rt.makeNormalPointerValue(l));}}else{rt.raiseException("you cannot cast bitwise and on pointer");}}},"o(())":{"#default":function _default(rt,l,bindThis,args){if(!rt.isFunctionType(l.v.target)){rt.raiseException("pointer target(".concat(rt.makeValueString(l.v.target),") is not a function"));}return rt.types["function"]["o(())"]["default"](rt,l.v.target,bindThis,args);}}};this.types["function"]={"o(())":{"#default":function _default(rt,l,bindThis,args){if(l.t.type==="pointer"&&l.t.targetType.type==="function"){l=l.v.target;}if(l.v.target===null){rt.raiseException("function ".concat(l.v.name," does not seem to be implemented"));}return rt.getCompatibleFunc(l.v.defineType,l.v.name,args).apply(void 0,[rt,bindThis].concat(_toConsumableArray(args)));}},"o(&)":{"#default":function _default(rt,l,r){var t;if(r===void 0){t=rt.normalPointerType(l.t);return rt.val(t,rt.makeNormalPointerValue(l));}else{rt.raiseException("you cannot cast bitwise and on function");}}}};this.types["pointer_normal"]={"o(*)":{"#default":function _default(rt,l,r){if(r===void 0){if(typeof l.v.target==="number"&&isNaN(l.v.target)){rt.raiseException("you cannot dereference an unitialized pointer");}return l.v.target;}else{rt.raiseException("you cannot multiply a pointer");}}},"o(->)":{"#default":function _default(rt,l,r){return rt.getMember(l.v.target,r);}}};this.types["pointer_array"]={"o(*)":{"#default":function _default(rt,l,r){var arr,ret;if(r===void 0){arr=l.v.target;if(l.v.position>=arr.length){rt.raiseException("index out of bound "+l.v.position+" >= "+arr.length);}else if(l.v.position<0){rt.raiseException("negative index "+l.v.position);}ret=arr[l.v.position];ret.array=arr;ret.arrayIndex=l.v.position;return ret;}else{rt.raiseException("you cannot multiply a pointer");}}},"o([])":{"#default":function _default(rt,l,r){r=rt.types["pointer_array"]["o(+)"]["#default"](rt,l,r);return rt.types["pointer_array"]["o(*)"]["#default"](rt,r);}},"o(->)":{"#default":function _default(rt,l,r){l=rt.types["pointer_array"]["o(*)"]["#default"](rt,l);return rt.getMember(l,r);}},"o(-)":{"#default":function _default(rt,l,r){var i;if(rt.isNumericType(r.t)){i=rt.cast(rt.intTypeLiteral,r).v;return rt.val(l.t,rt.makeArrayPointerValue(l.v.target,l.v.position-i));}else if(rt.isArrayType(r.t)){if(l.v.target===r.v.target){return l.v.position-r.v.position;}else{rt.raiseException("you cannot perform minus on pointers pointing to different arrays");}}else{rt.raiseException(rt.makeTypeString(r.t)+" is not an array pointer type");}}},"o(<)":{"#default":function _default(rt,l,r){if(rt.isArrayType(r.t)){if(l.v.target===r.v.target){return l.v.position<r.v.position;}else{rt.raiseException("you cannot perform compare on pointers pointing to different arrays");}}else{rt.raiseException(rt.makeTypeString(r.t)+" is not an array pointer type");}}},"o(>)":{"#default":function _default(rt,l,r){if(rt.isArrayType(r.t)){if(l.v.target===r.v.target){return l.v.position>r.v.position;}else{rt.raiseException("you cannot perform compare on pointers pointing to different arrays");}}else{rt.raiseException(rt.makeTypeString(r.t)+" is not an array pointer type");}}},"o(<=)":{"#default":function _default(rt,l,r){if(rt.isArrayType(r.t)){if(l.v.target===r.v.target){return l.v.position<=r.v.position;}else{rt.raiseException("you cannot perform compare on pointers pointing to different arrays");}}else{rt.raiseException(rt.makeTypeString(r.t)+" is not an array pointer type");}}},"o(>=)":{"#default":function _default(rt,l,r){if(rt.isArrayType(r.t)){if(l.v.target===r.v.target){return l.v.position>=r.v.position;}else{rt.raiseException("you cannot perform compare on pointers pointing to different arrays");}}else{rt.raiseException(rt.makeTypeString(r.t)+" is not an array pointer type");}}},"o(+)":{"#default":function _default(rt,l,r){var i;if(rt.isNumericType(r.t)){i=rt.cast(rt.intTypeLiteral,r).v;return rt.val(l.t,rt.makeArrayPointerValue(l.v.target,l.v.position+i));}else{rt.raiseException("cannot add non-numeric to a pointer");}}},"o(+=)":{"#default":function _default(rt,l,r){r=rt.types["pointer_array"]["o(+)"]["#default"](rt,l,r);return rt.types["pointer"]["="]["#default"](rt,l,r);}},"o(-=)":{"#default":function _default(rt,l,r){r=rt.types["pointer_array"]["o(-)"]["#default"](rt,l,r);return rt.types["pointer"]["="]["#default"](rt,l,r);}},"o(++)":{"#default":function _default(rt,l,dummy){if(!l.left){rt.raiseException(rt.makeValString(l)+" is not a left value");}if(dummy){return rt.val(l.t,rt.makeArrayPointerValue(l.v.target,l.v.position++));}else{l.v.position++;return l;}}},"o(--)":{"#default":function _default(rt,l,dummy){if(!l.left){rt.raiseException(rt.makeValString(l)+" is not a left value");}if(dummy){return rt.val(l.t,rt.makeArrayPointerValue(l.v.target,l.v.position--));}else{l.v.position--;return l;}}}};return this;};},{}],4:[function(require,module,exports){module.exports={load:function load(rt){rt.regFunc(function(rt,_this,x){var c;c=rt.getFunc("global","isdigit",[rt.intTypeLiteral])(rt,_this,x);if(!c.v){return rt.getFunc("global","isalpha",[rt.intTypeLiteral])(rt,_this,x);}return c;},"global","isalnum",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var v;v=x.v>="0".charCodeAt(0)&&x.v<="9".charCodeAt(0)?1:0;return rt.val(rt.intTypeLiteral,v);},"global","isdigit",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var c;c=rt.getFunc("global","isupper",[rt.intTypeLiteral])(rt,_this,x);if(!c.v){return rt.getFunc("global","islower",[rt.intTypeLiteral])(rt,_this,x);}return c;},"global","isalpha",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var ref,v;v=(ref=x.v)===0x20||ref===0x09||ref===0x0a||ref===0x0b||ref===0x0c||ref===0x0d?1:0;return rt.val(rt.intTypeLiteral,v);},"global","isspace",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var v;v=x.v>=0x00&&x.v<=0x1f||x.v===0x7f?1:0;return rt.val(rt.intTypeLiteral,v);},"global","iscntrl",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var v;v=x.v>0x1f&&x.v!==0x7f?1:0;return rt.val(rt.intTypeLiteral,v);},"global","isprint",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var c;c=rt.getFunc("global","isspace",[rt.intTypeLiteral])(rt,_this,x);if(!c.v){c=rt.getFunc("global","isgraph",[rt.intTypeLiteral])(rt,_this,x);if(!c.v){return rt.val(rt.intTypeLiteral,1);}}return rt.val(rt.intTypeLiteral,0);},"global","isgraph",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var v;v=x.v>="a".charCodeAt(0)&&x.v<="z".charCodeAt(0)?1:0;return rt.val(rt.intTypeLiteral,v);},"global","islower",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var v;v=x.v>="A".charCodeAt(0)&&x.v<="Z".charCodeAt(0)?1:0;return rt.val(rt.intTypeLiteral,v);},"global","isupper",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var c;c=rt.getFunc("global","isgraph",[rt.intTypeLiteral])(rt,_this,x);if(c.v){c=rt.getFunc("global","isalnum",[rt.intTypeLiteral])(rt,_this,x);if(!c.v){return rt.val(rt.intTypeLiteral,1);}}return rt.val(rt.intTypeLiteral,0);},"global","ispunct",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var v;v=x.v>="A".charCodeAt(0)&&x.v<="F".charCodeAt(0)||x.v>="a".charCodeAt(0)&&x.v<="f".charCodeAt(0)||x.v>="0".charCodeAt(0)&&x.v<="9".charCodeAt(0)?1:0;return rt.val(rt.intTypeLiteral,v);},"global","isxdigit",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var c;c=rt.getFunc("global","isupper",[rt.intTypeLiteral])(rt,_this,x);if(c.v){return rt.val(rt.intTypeLiteral,x.v+32);}return x;},"global","tolower",[rt.intTypeLiteral],rt.intTypeLiteral);rt.regFunc(function(rt,_this,x){var c;c=rt.getFunc("global","islower",[rt.intTypeLiteral])(rt,_this,x);if(c.v){return rt.val(rt.intTypeLiteral,x.v-32);}return x;},"global","toupper",[rt.intTypeLiteral],rt.intTypeLiteral);}};},{}],5:[function(require,module,exports){module.exports={load:function load(rt){var g,tDouble;tDouble=rt.doubleTypeLiteral;g="global";rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.cos(x.v));},g,"cos",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.sin(x.v));},g,"sin",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.tan(x.v));},g,"tan",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.acos(x.v));},g,"acos",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.asin(x.v));},g,"asin",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.atan(x.v));},g,"atan",[tDouble],tDouble);rt.regFunc(function(rt,_this,y,x){return rt.val(tDouble,Math.atan(y.v/x.v));},g,"atan2",[tDouble,tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.cosh(x.v));},g,"cosh",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.sinh(x.v));},g,"sinh",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.tanh(x.v));},g,"tanh",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.acosh(x.v));},g,"acosh",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.asinh(x.v));},g,"asinh",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.atanh(x.v));},g,"atanh",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.exp(x.v));},g,"exp",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.log(x.v));},g,"log",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.log10(x.v));},g,"log10",[tDouble],tDouble);rt.regFunc(function(rt,_this,x,y){return rt.val(tDouble,Math.pow(x.v,y.v));},g,"pow",[tDouble,tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.sqrt(x.v));},g,"sqrt",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.ceil(x.v));},g,"ceil",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.floor(x.v));},g,"floor",[tDouble],tDouble);rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.abs(x.v));},g,"fabs",[tDouble],tDouble);

// BY LRUSSO.COM - ABS FUNCTION ALREADY DEFINED IN stdlib.h
// rt.regFunc(function(rt,_this,x){return rt.val(tDouble,Math.abs(x.v));},g,"abs",[tDouble],tDouble);

}};},{}],6:[function(require,module,exports){var EOF,NULL,format_type_map,printf,validate_format;printf=require("printf");EOF=0;NULL=-1;format_type_map=function format_type_map(rt,ctrl){switch(ctrl){case"d":case"i":return rt.intTypeLiteral;case"u":case"o":case"x":case"X":return rt.unsignedintTypeLiteral;case"f":case"F":return rt.floatTypeLiteral;case"e":case"E":case"g":case"G":case"a":case"A":return rt.doubleTypeLiteral;case"c":return rt.charTypeLiteral;case"s":return rt.normalPointerType(rt.charTypeLiteral);case"p":return rt.normalPointerType(rt.voidTypeLiteral);case"n":return rt.raiseException("%n is not supported");}};validate_format=function validate_format(rt,format){var casted,ctrl,i,re,results,target,type,val;i=0;re=/%(?:[-+ #0])?(?:[0-9]+|\*)?(?:\.(?:[0-9]+|\*))?([diuoxXfFeEgGaAcspn])/g;results=[];while((ctrl=re.exec(format))!=null){var _ref;type=format_type_map(rt,ctrl[1]);if((arguments.length<=2?0:arguments.length-2)<=i){rt.raiseException("insufficient arguments (at least ".concat(i+1," is required)"));}target=(_ref=i++ +2,_ref<2||arguments.length<=_ref?undefined:arguments[_ref]);casted=rt.cast(type,target);if(rt.isStringType(casted.t)){results.push(val=rt.getStringFromCharArray(casted));}else{if(isNaN(casted.v)){rt.raiseException("uninitialized value when using printf");}results.push(val=casted.v);}}return results;};module.exports={load:function load(rt){var _ASCII,__printf,__scanf,_consume_next_char,_consume_next_line,_deal_type,_get_ASCII_char,_get_char,_get_float,_get_hex,_get_input,_get_integer,_get_line,_get_octal,_get_special_char,_get_string,_getchar,_gets,_hex2int,_int_at_octal,_octal2int,_printf,_putchar,_puts,_regslashs,_scanf,_set_pointer_value,_sprintf,_sscanf,_strcpy,_strip_slashes,char_pointer,input_stream,stdio;char_pointer=rt.normalPointerType(rt.charTypeLiteral);stdio=rt.config.stdio;input_stream=stdio.drain();_consume_next_char=function _consume_next_char(){var char_return;char_return="";if(input_stream.length>0){char_return=input_stream[0];input_stream=input_stream.substr(1);return char_return;}else{throw"EOF";}};_consume_next_line=function _consume_next_line(){input_stream;var next_line_break,retval;next_line_break=input_stream.indexOf('\n');if(next_line_break>-1){retval=input_stream.substr(0,next_line_break);input_stream=input_stream.replace("".concat(retval,"\n"),'');}else{retval=input_stream;input_stream="";}return retval;};_strcpy=require("./shared/cstring_strcpy");__printf=function __printf(format){var parsed_params,retval;if(rt.isStringType(format.t)){format=rt.getStringFromCharArray(format);for(var _len=arguments.length,params=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){params[_key-1]=arguments[_key];}parsed_params=validate_format.apply(void 0,[rt,format].concat(params));retval=printf.apply(void 0,[format].concat(_toConsumableArray(parsed_params)));return rt.makeCharArrayFromString(retval);}else{return rt.raiseException("format must be a string");}};_sprintf=function _sprintf(rt,_this,target,format){var retval;for(var _len2=arguments.length,params=new Array(_len2>4?_len2-4:0),_key2=4;_key2<_len2;_key2++){params[_key2-4]=arguments[_key2];}retval=__printf.apply(void 0,[format].concat(params));_strcpy(rt,null,[target,retval]);return rt.val(rt.intTypeLiteral,retval.length);};rt.regFunc(_sprintf,"global","sprintf",[char_pointer,char_pointer,"?"],rt.intTypeLiteral);_printf=function _printf(rt,_this,format){var retval;for(var _len3=arguments.length,params=new Array(_len3>3?_len3-3:0),_key3=3;_key3<_len3;_key3++){params[_key3-3]=arguments[_key3];}retval=__printf.apply(void 0,[format].concat(params));retval=rt.getStringFromCharArray(retval);stdio.write(retval);return rt.val(rt.intTypeLiteral,retval.length);};rt.regFunc(_printf,"global","printf",[char_pointer,"?"],rt.intTypeLiteral);_getchar=function _getchar(rt,_this){var _char,error;try{_char=_consume_next_char();return rt.val(rt.intTypeLiteral,_char.charCodeAt(0));}catch(error1){error=error1;return rt.val(rt.intTypeLiteral,EOF);}};rt.regFunc(_getchar,"global","getchar",[],rt.intTypeLiteral);_gets=function _gets(rt,_this,charPtr){var destArray,i,j,ref,return_value;return_value=_consume_next_line();destArray=charPtr.v.target;for(i=j=0,ref=return_value.length;0<=ref?j<=ref:j>=ref;i=0<=ref?++j:--j){try{destArray[i]=rt.val(rt.charTypeLiteral,return_value.charCodeAt(i));}catch(error1){destArray[i]=rt.val(rt.charTypeLiteral,0);}}destArray[return_value.length]=rt.val(rt.charTypeLiteral,0);return rt.val(char_pointer,charPtr);};rt.regFunc(_gets,"global","gets",[char_pointer],char_pointer);//#DEPENDENT ON PRINTF##
//#these implementations is dependent on printf implementation
//#but on the original c this behavior is not present
//#for general purposes the result will be the same
//#but maybe could be a good idea to make this implementation
//#indenpendent
_putchar=function _putchar(rt,_this,_char2){var print_mask;print_mask=rt.makeCharArrayFromString("%c");_printf(rt,null,print_mask,_char2);return _char2;};rt.regFunc(_putchar,"global","putchar",[rt.charTypeLiteral],rt.intTypeLiteral);_puts=function _puts(rt,_this,charPtr){var print_mask;print_mask=rt.makeCharArrayFromString("%s");_printf(rt,null,print_mask,charPtr);return rt.val(rt.intTypeLiteral,1);};rt.regFunc(_puts,"global","puts",[char_pointer],rt.intTypeLiteral);//#DEPENDENT ON PRINTF##
//####################HELPER FUNCTION TO SCANF ###############################
_ASCII={a:'a'.charCodeAt(0),f:'f'.charCodeAt(0),A:'A'.charCodeAt(0),F:'F'.charCodeAt(0),0:'0'.charCodeAt(0),8:'8'.charCodeAt(0),9:'9'.charCodeAt(0)};_hex2int=function _hex2int(str){var _int_at_hex,digit,i,j,num,ref,ret;ret=0;digit=0;str=str.replace(/^[0O][Xx]/,'');for(i=j=ref=str.length-1;j>=0;i=j+=-1){num=_int_at_hex(str[i],digit++);if(num!==null){ret+=num;}else{throw new Error('invalid hex '+str);}}ret;return _int_at_hex=function _int_at_hex(c,digit){var ascii;ret=null;ascii=c.charCodeAt(0);if(_ASCII.a<=ascii&&ascii<=_ASCII.f){ret=ascii-_ASCII.a(+10);}else if(_ASCII.A<=ascii&&ascii<=_ASCII.F){ret=ascii-_ASCII.a(+10);}else if(_ASCII[0]<ascii&&ascii<=_ASCII[9]){ret=ascii-_ASCII[0];}else{throw new Error("Ivalid ascii [".concat(c,"]"));}num*=Math.pow(16,digit);return ret;};};_octal2int=function _octal2int(str){var digit,i,j,num,ref,ret;str=str.replace(/^0/,'');ret=0;digit=0;for(i=j=ref=str.length-1;j>=0;i=j+=-1){num=_int_at_octal(str[i],digit++);if(num!==null){ret+=num;}else{throw new Error("invalid octal ".concat(str));}}return ret;};_int_at_octal=function _int_at_octal(c,digit){var ascii,num;num=null;ascii=c.charCodeAt(0);if(ascii>=_ASCII[0]&&ascii<=_ASCII[8]){num=ascii-_ASCII[0];}else{throw new Error("invalid char at [".concat(c,"]"));}num*=Math.pow(8,digit);return num;};_regslashs=function _regslashs(pre){return pre.replace(/\[/g,'\\[').replace(/\]/g,'\\]').replace(/\(/g,'\\(').replace(/\)/g,'\\)').replace(/\|/g,'\\|');};_strip_slashes=function _strip_slashes(str){return str.replace(/\\([\sA-Za-z\\]|[0-7]{1,3})/g,function(str,c){switch(c){case"\\":return"\\";case"0":return"\0";default:if(/^\w$/.test(c)){return _get_special_char(c);}else if(/^\s$/.test(c)){return c;}else if(/([0-7]{1,3})/.test(c)){return _get_ASCII_char(c);}return str;}});};_get_ASCII_char=function _get_ASCII_char(str){var num;num=_octal2int(str);return String.fromCharCode(num);};_get_special_char=function _get_special_char(letter){switch(letter.toLowerCase()){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";default:return letter;}};//####################HELPER FUNCTION TO SCANF ###############################
//############################SCANF IMPL######################################
_get_input=function _get_input(pre,next,match,type){var after_match,before_match,m,replace,result,tmp;result=void 0;tmp=input_stream;replace="(".concat(match,")");if(type==='STR'&&next.trim().length>0){before_match=_regslashs(pre);after_match=_regslashs(next)+'[\\w\\W]*';if(before_match.length){tmp=tmp.replace(new RegExp(before_match),'');}tmp=tmp.replace(new RegExp(after_match),'');}else{replace=_regslashs(pre)+replace;}m=tmp.match(new RegExp(replace));if(!m){//TODO strip match
return null;}result=m[1];input_stream=input_stream.substr(input_stream.indexOf(result)).replace(result,'').replace(next,'');//returing result
return result;};_get_integer=function _get_integer(pre,next){var text;text=_get_input(pre,next,'[-]?[A-Za-z0-9]+');if(!text){return null;}else if(text[0]==='0'){if(text[1]==='x'||text[1]==='X'){return _hex2int(text);}else{return _octal2int(text);}}else{return parseInt(text);}};_get_float=function _get_float(pre,next){var text;text=_get_input(pre,next,'[-]?[0-9]+[\.]?[0-9]*');return parseFloat(text);};_get_hex=function _get_hex(pre,next){var text;text=_get_input(pre,next,'[A-Za-z0-9]+');return _hex2int(text);};_get_octal=function _get_octal(pre,next){var text;text=_get_input(pre,next,'[A-Za-z0-9]+');return _octal2int(text);};_get_string=function _get_string(pre,next){var text;text=_get_input(pre,next,'([\\w\\]=-]|\\S[^\\][^\\ ])+(\\\\[\\w\\ ][\\w\\:]*)*','STR');if(/\\/.test(text)){text=_strip_slashes(text);}return text;};_get_char=function _get_char(pre,next){var text;text=_get_input(pre,next,'.','STR');if(/\\/.test(text)){text=_strip_slashes(text);}return text;};_get_line=function _get_line(pre,next){var text;text=_get_input(pre,next,'[^\n\r]*');if(/\\/.test(text)){text=_strip_slashes(text);}return text;};_deal_type=function _deal_type(format){ret;var next,pre,res,res2,ret,type;res=format.match(/%[A-Za-z]+/);res2=format.match(/[^%]*/);if(!res){return null;}type=res[0];pre;if(!!res2){pre=res2[0];}else{pre=null;}next=format.substr(format.indexOf(type)+type.length);switch(type){case"%d":case"%ld":case"%llu":case"%lu":case"%u":ret=_get_integer(pre,next);break;case"%c":ret=_get_char(pre,next);break;case"%s":ret=_get_string(pre,next);break;case"%S":ret=_get_line(pre,next);break;case'%x':case'%X':ret=_get_hex(pre,next);break;case'%o':case'%O':ret=_get_octal(pre,next);break;case'%f':ret=_get_float(pre,next);break;default:throw new Error('Unknown type "'+type+'"');}return ret;};_set_pointer_value=function _set_pointer_value(pointer,value){var i,j,new_value,ref,results,src_array;try{switch(pointer.t.ptrType){case"normal":if(rt.isNumericType(pointer.t.targetType)){new_value=rt.val(pointer.t.targetType,value,true);return pointer.v.target.v=new_value.v;}else{new_value=rt.val(pointer.t.targetType,value.charCodeAt(0),true);return pointer.v.target.v=new_value.v;}break;case"array":src_array=rt.makeCharArrayFromString(value);if(src_array.v.target.length>pointer.v.target.length){return rt.raiseException("Not enough memory on pointer");}else{results=[];for(i=j=0,ref=src_array.v.target.length;0<=ref?j<=ref:j>=ref;i=0<=ref?++j:--j){try{results.push(pointer.v.target[i]=src_array.v.target[i]);}catch(error1){results.push(rt.raiseException("Not enough memory on pointer"));}}return results;}break;default:return rt.raiseException("Invalid Pointer Type");}}catch(error1){return rt.raiseException("Memory overflow");}};__scanf=function __scanf(format){var j,len,re,results,selectors,val;re=new RegExp('[^%]*%[A-Za-z][^%]*','g');selectors=format.match(re);results=[];for(j=0,len=selectors.length;j<len;j++){val=selectors[j];results.push(_deal_type(val));}return results;};//############################SCANF IMPL#####################################
_scanf=function _scanf(rt,_this,pchar){var format,i,j,len,matched_values,val;format=rt.getStringFromCharArray(pchar);matched_values=__scanf(format);for(var _len4=arguments.length,args=new Array(_len4>3?_len4-3:0),_key4=3;_key4<_len4;_key4++){args[_key4-3]=arguments[_key4];}for(i=j=0,len=matched_values.length;j<len;i=++j){val=matched_values[i];_set_pointer_value(args[i],val);}return rt.val(rt.intTypeLiteral,matched_values.length);};rt.regFunc(_scanf,"global","scanf",[char_pointer,"?"],rt.intTypeLiteral);//TODO change this function to pass the string to __scanf instead of playing with current stream
_sscanf=function _sscanf(rt,_this,original_string_pointer,format_pointer){var format,i,j,len,matched_values,original_input_stream,original_string,val;format=rt.getStringFromCharArray(format_pointer);original_string=rt.getStringFromCharArray(original_string_pointer);original_input_stream=input_stream;input_stream=original_string;matched_values=__scanf(format);for(var _len5=arguments.length,args=new Array(_len5>4?_len5-4:0),_key5=4;_key5<_len5;_key5++){args[_key5-4]=arguments[_key5];}for(i=j=0,len=matched_values.length;j<len;i=++j){val=matched_values[i];_set_pointer_value(args[i],val);}input_stream=original_input_stream;return rt.val(rt.intTypeLiteral,matched_values.length);};return rt.regFunc(_sscanf,"global","sscanf",[char_pointer,char_pointer,"?"],rt.intTypeLiteral);}};},{"./shared/cstring_strcpy":13,"printf":362}],7:[function(require,module,exports){module.exports={load:function load(rt){var _abs,_atof,_atoi,_atol,_bsearch,_div,_labs,_ldiv,_qsort,_rand,_srand,_system,_binary_search,cmpType,div_t_t,ldiv_t_t,m_w,m_z,mask,pchar,random,seed;m_w=123456789;m_z=987654321;mask=0xffffffff;// Takes any integer
seed=function seed(i){return m_w=i;};// Returns number between 0 (inclusive) and 1.0 (exclusive),
// just like Math.random().
random=function random(){var result;m_z=36969*(m_z&65535)+(m_z>>16)&mask;m_w=18000*(m_w&65535)+(m_w>>16)&mask;result=(m_z<<16)+m_w&mask;return result/4294967296+0.5;};pchar=rt.normalPointerType(rt.charTypeLiteral);_atof=function _atof(rt,_this,str){var val;if(rt.isStringType(str.t)){str=rt.getStringFromCharArray(str);val=Number.parseFloat(str);return rt.val(rt.floatTypeLiteral,val);}else{return rt.raiseException("argument is not a string");}};rt.regFunc(_atof,"global","atof",[pchar],rt.floatTypeLiteral);_atoi=function _atoi(rt,_this,str){var val;if(rt.isStringType(str.t)){str=rt.getStringFromCharArray(str);val=Number.parseInt(str);return rt.val(rt.intTypeLiteral,val);}else{return rt.raiseException("argument is not a string");}};rt.regFunc(_atoi,"global","atoi",[pchar],rt.intTypeLiteral);_atol=function _atol(rt,_this,str){var val;if(rt.isStringType(str.t)){str=rt.getStringFromCharArray(str);val=Number.parseInt(str);return rt.val(rt.longTypeLiteral,val);}else{return rt.raiseException("argument is not a string");}};rt.regFunc(_atol,"global","atol",[pchar],rt.longTypeLiteral);if(rt.scope[0]["RAND_MAX"]==null){rt.scope[0]["RAND_MAX"]=0x7fffffff;}_rand=function _rand(rt,_this){var val;val=Math.floor(random()*(rt.scope[0]["RAND_MAX"]+1));return rt.val(rt.intTypeLiteral,val);};rt.regFunc(_rand,"global","rand",[],rt.intTypeLiteral);_srand=function _srand(rt,_this,i){return seed(i.v);};rt.regFunc(_srand,"global","srand",[rt.unsignedintTypeLiteral],rt.voidTypeLiteral);_system=function _system(rt,_this,command){var e,ret,str;if(command===rt.nullPointer){return rt.val(rt.intTypeLiteral,1);}else if(rt.isStringType(command.t)){str=rt.getStringFromCharArray(str);try{ret=eval(str);if(ret!=null){console.log(ret);}return rt.val(rt.intTypeLiteral,1);}catch(error){e=error;return rt.val(rt.intTypeLiteral,0);}}else{return rt.raiseException("command is not a string");}};rt.regFunc(_system,"global","system",[pchar],rt.intTypeLiteral);rt.scope[0]["NULL"]=rt.nullPointer;_binary_search=function binary_search(val,L,cmp){var cmpResult,mid;if(L.length===0){return false;}mid=Math.floor(L.length/2);cmpResult=cmp(val,L[mid],mid);if(cmpResult===0){return mid;}else if(cmpResult>0){return _binary_search(val,L.slice(mid+1,+L.length+1||9e9));}else{return _binary_search(val,L.slice(0,+(mid-1)+1||9e9));}};_bsearch=function _bsearch(rt,_this,key,base,num,size,cmp){var L,bsRet,val,wrapper;if(rt.isArrayType(base)){L=base.v.target;val=key;wrapper=function wrapper(a,b,indexB){var pbType,pbVal,pointerB;pbType=base.t;pbVal=rt.makeArrayPointerValue(L,indexB);pointerB=rt.val(pbType,pbVal);return cmp(rt,null,a,pointerB).v;};bsRet=_binary_search(val,L,wrapper);if(bsRet===false){return rt.nullPointer;}else{return rt.val(base.t,rt.makeArrayPointerValue(L,bsRet));}}else{return rt.raiseException("base must be an array");}};cmpType=rt.functionPointerType(rt.intTypeLiteral,[rt.voidPointerType,rt.voidPointerType]);rt.regFunc(_bsearch,"global","bsearch",[rt.voidPointerType,rt.voidPointerType,rt.intTypeLiteral,rt.intTypeLiteral,cmpType],rt.voidPointerType);_qsort=function _qsort(rt,_this,base,num,size,cmp){var L,ele,i,j,len,wrapper;if(rt.isArrayType(base)){L=base.v.target;for(i=j=0,len=L.length;j<len;i=++j){ele=L[i];ele.index=i;}wrapper=function wrapper(a,b){var pType,paVal,pbVal,pointerA,pointerB;pType=base.t;pbVal=rt.makeArrayPointerValue(L,b.index);paVal=rt.makeArrayPointerValue(L,a.index);pointerB=rt.val(pType,pbVal);pointerA=rt.val(pType,pbVal);return cmp(rt,null,pointerA,pointerB).v;};L.sort(wrapper);}else{return rt.raiseException("base must be an array");}};rt.regFunc(_qsort,"global","qsort",[rt.voidPointerType,rt.intTypeLiteral,rt.intTypeLiteral,cmpType],rt.voidTypeLiteral);_abs=function _abs(rt,_this,n){return rt.val(rt.intTypeLiteral,Math.abs(n.v));};rt.regFunc(_abs,"global","abs",[rt.intTypeLiteral],rt.intTypeLiteral);_div=function _div(rt,_this,numer,denom){var quot,rem;if(denom.v===0){rt.raiseException("divided by zero");}quot=rt.val(rt.intTypeLiteral,Math.floor(numer.v/denom.v));rem=rt.val(rt.intTypeLiteral,numer.v%denom.v);return{t:div_t_t,v:{members:{quot:quot,rem:rem}}};};div_t_t=rt.newClass("div_t",[{type:rt.intTypeLiteral,name:"quot"},{type:rt.intTypeLiteral,name:"rem"}]);rt.regFunc(_div,"global","div",[rt.intTypeLiteral,rt.intTypeLiteral],div_t_t);_labs=function _labs(rt,_this,n){return rt.val(rt.longTypeLiteral,Math.abs(n.v));};rt.regFunc(_labs,"global","labs",[rt.longTypeLiteral],rt.longTypeLiteral);_ldiv=function _ldiv(rt,_this,numer,denom){var quot,rem;if(denom.v===0){rt.raiseException("divided by zero");}quot=rt.val(rt.longTypeLiteral,Math.floor(numer.v/denom.v));rem=rt.val(rt.longTypeLiteral,numer.v%denom.v);return{t:ldiv_t_t,v:{members:{quot:quot,rem:rem}}};};ldiv_t_t=rt.newClass("ldiv_t",[{type:rt.longTypeLiteral,name:"quot"},{type:rt.longTypeLiteral,name:"rem"}]);return rt.regFunc(_ldiv,"global","ldiv",[rt.longTypeLiteral,rt.longTypeLiteral],ldiv_t_t);}};},{}],8:[function(require,module,exports){module.exports={load:function load(rt){var _strcpy,pchar,sizet;pchar=rt.normalPointerType(rt.charTypeLiteral);sizet=rt.primitiveType("unsigned int");_strcpy=require("./shared/cstring_strcpy");rt.regFunc(_strcpy,"global","strcpy",[pchar,pchar],pchar);rt.regFunc(function(rt,_this,dest,src,num){var destarr,i,j,srcarr;if(rt.isArrayType(dest.t)&&rt.isArrayType(src.t)){srcarr=src.v.target;i=src.v.position;destarr=dest.v.target;j=dest.v.position;while(num>0&&i<srcarr.length&&j<destarr.length-1&&srcarr[i].v!==0){destarr[j]=rt.clone(srcarr[i]);num--;i++;j++;}if(srcarr[i].v===0){// padding zeroes
while(num>0&&j<destarr.length){destarr[j++]=rt.val(rt.charTypeLiteral,0);}}if(i===srcarr.length){rt.raiseException("source string does not have a pending \"\\0\"");}else if(j===destarr.length-1){rt.raiseException("destination array is not big enough");}}else{rt.raiseException("destination or source is not an array");}return dest;},"global","strncpy",[pchar,pchar,sizet],pchar);rt.regFunc(function(rt,_this,dest,src){var destarr,i,j,lendest,lensrc,newDest,pCharArr,srcarr;if(rt.isArrayType(dest.t)&&rt.isArrayType(src.t)){srcarr=src.v.target;destarr=dest.v.target;if(srcarr===destarr){i=src.v.position;j=dest.v.position;if(i<j){lensrc=rt.getFunc("global","strlen",[pchar])(rt,null,src).v;if(i+lensrc+1>=j){rt.raiseException("overlap is not allowed");}}else{lensrc=rt.getFunc("global","strlen",[pchar])(rt,null,src).v;lendest=rt.getFunc("global","strlen",[pchar])(rt,null,dest).v;if(j+lensrc+lendest+1>=i){rt.raiseException("overlap is not allowed");}}}lendest=rt.getFunc("global","strlen",[pchar])(rt,null,dest).v;pCharArr=rt.arrayPointerType(rt.charTypeLiteral,dest.t.size);newDest=rt.val(pCharArr,rt.makeArrayPointerValue(dest.v.target,dest.v.position+lendest));return rt.getFunc("global","strcpy",[pchar,pchar])(rt,null,newDest,src);}else{rt.raiseException("destination or source is not an array");}return dest;},"global","strcat",[pchar,pchar],pchar);rt.regFunc(function(rt,_this,dest,src,num){var destarr,i,j,lendest,lensrc,newDest,srcarr;if(rt.isArrayType(dest.t)&&rt.isArrayType(src.t)){srcarr=src.v.target;destarr=dest.v.target;if(srcarr===destarr){i=src.v.position;j=dest.v.position;if(i<j){lensrc=rt.getFunc("global","strlen",[pchar])(rt,null,src).v;if(lensrc>num){lensrc=num;}if(i+lensrc+1>=j){rt.raiseException("overlap is not allowed");}}else{lensrc=rt.getFunc("global","strlen",[pchar])(rt,null,src).v;if(lensrc>num){lensrc=num;}lendest=rt.getFunc("global","strlen",[pchar])(rt,null,dest).v;if(j+lensrc+lendest+1>=i){rt.raiseException("overlap is not allowed");}}}lendest=rt.getFunc("global","strlen",[pchar])(rt,null,dest).v;newDest=rt.val(pchar,rt.makeArrayPointerValue(dest.v.target,dest.v.position+lendest));return rt.getFunc("global","strncpy",[pchar,pchar,sizet])(rt,null,newDest,src,num);}else{rt.raiseException("destination or source is not an array");}return dest;},"global","strncat",[pchar,pchar,sizet],pchar);rt.regFunc(function(rt,_this,str){var arr,i;if(rt.isArrayType(str.t)){arr=str.v.target;i=str.v.position;while(i<arr.length&&arr[i].v!==0){i++;}if(i===arr.length){return rt.raiseException("target string does not have a pending \"\\0\"");}else{return rt.val(rt.intTypeLiteral,i-str.v.position);}}else{return rt.raiseException("target is not an array");}},"global","strlen",[pchar],sizet);rt.regFunc(function(rt,_this,dest,src){var destarr,i,j,srcarr;if(rt.isArrayType(dest.t)&&rt.isArrayType(src.t)){srcarr=src.v.target;i=src.v.position;destarr=dest.v.target;j=dest.v.position;while(i<srcarr.length&&j<destarr.length&&srcarr[i].v===destarr[i].v){i++;j++;}return rt.val(rt.intTypeLiteral,destarr[i].v-srcarr[i].v);}else{return rt.raiseException("str1 or str2 is not an array");}},"global","strcmp",[pchar,pchar],rt.intTypeLiteral);rt.regFunc(function(rt,_this,dest,src,num){var destarr,i,j,srcarr;if(rt.isArrayType(dest.t)&&rt.isArrayType(src.t)){srcarr=src.v.target;i=src.v.position;destarr=dest.v.target;j=dest.v.position;while(num>0&&i<srcarr.length&&j<destarr.length&&srcarr[i].v===destarr[i].v){i++;j++;num--;}return rt.val(rt.intTypeLiteral,destarr[i].v-srcarr[i].v);}else{return rt.raiseException("str1 or str2 is not an array");}},"global","strncmp",[pchar,pchar,sizet],rt.intTypeLiteral);rt.regFunc(function(rt,_this,str,ch){var arr,i;if(rt.isArrayType(str.t)){arr=str.v.target;i=str.v.position;while(i<arr.length&&arr[i].v!==0&&arr[i].v!==ch.v){i++;}if(arr[i].v===0){return rt.val(pchar,rt.nullPointerValue);}else if(arr[i].v===ch.v){return rt.val(pchar,rt.makeArrayPointerValue(arr,i));}else{return rt.raiseException("target string does not have a pending \"\\0\"");}}else{return rt.raiseException("str1 or str2 is not an array");}},"global","strchr",[pchar,rt.charTypeLiteral],pchar);rt.regFunc(function(rt,_this,str,ch){var arr,i,lastpos;if(rt.isArrayType(str.t)){arr=str.v.target;i=str.v.position;lastpos=-1;while(i<arr.length&&arr[i].v!==0){if(arr[i].v===ch.v){lastpos=i;}i++;}if(arr[i].v===0){if(lastpos>=0){return rt.val(pchar,rt.makeArrayPointerValue(arr,lastpos));}else{return rt.val(pchar,rt.nullPointerValue);}}else{return rt.raiseException("target string does not have a pending \"\\0\"");}}else{return rt.raiseException("str1 or str2 is not an array");}},"global","strrchr",[pchar,rt.charTypeLiteral],pchar);return rt.regFunc(function(rt,_this,str1,str2){var _i,arr,i,j,tar;if(rt.isArrayType(str1.t)&&rt.isArrayType(str2.t)){// BM?
arr=str1.v.target;i=str1.v.position;tar=str2.v.target;while(i<arr.length&&arr[i].v!==0){j=str2.v.position;_i=i;while(j<tar.length&&str1[_i].v===str2[j]){_i++;j++;}if(j===tar.length){break;}i++;}if(arr[i].v===0){return rt.val(pchar,rt.nullPointerValue);}else if(i===arr.length){return rt.raiseException("target string does not have a pending \"\\0\"");}else{return rt.val(pchar,rt.makeArrayPointerValue(arr,i));}}else{return rt.raiseException("str1 or str2 is not an array");}},"global","strstr",[pchar,rt.charTypeLiteral],pchar);}};},{"./shared/cstring_strcpy":13}],9:[function(require,module,exports){module.exports={load:function load(rt){var _time;_time=function _time(rt,_this,i){var val;val=Math.floor(Date.now()/1000);return rt.val(rt.intTypeLiteral,val);};// TODO: implement correct return for non-0 argument
return rt.regFunc(_time,"global","time",[rt.longTypeLiteral],rt.longTypeLiteral);}};},{}],10:[function(require,module,exports){module.exports={load:function load(rt){var _plusX,type,typeSig;type=rt.newClass("Foo",[{name:"x",t:rt.intTypeLiteral,initialize:function initialize(rt,_this){return rt.val(rt.intTypeLiteral,2,true);}},{name:"y",t:rt.intTypeLiteral,initialize:function initialize(rt,_this){return rt.val(rt.intTypeLiteral,-2,true);}}]);typeSig=rt.getTypeSignature(type);rt.types[typeSig]["#father"]="object";_plusX=function _plusX(rt,_this,a){var newValue;newValue=_this.v.members["x"].v+a.v;return rt.val(rt.intTypeLiteral,newValue,false);};return rt.regFunc(_plusX,type,"plusX",[rt.intTypeLiteral],rt.intTypeLiteral);}};},{}],11:[function(require,module,exports){module.exports={load:function load(rt){var _addManipulator,_fixed,_setfill,_setprecesion,_setw,oType,type;type=rt.newClass("iomanipulator",[]);oType=rt.simpleType("ostream",[]);_setprecesion=function _setprecesion(rt,_this,x){return{t:type,v:{members:{name:"setprecision",f:function f(config){return config.setprecision=x.v;}}},left:false};};rt.regFunc(_setprecesion,"global","setprecision",[rt.intTypeLiteral],type);_fixed={t:type,v:{members:{name:"fixed",f:function f(config){return config.fixed=true;}}}};rt.scope[0]["fixed"]=_fixed;_setw=function _setw(rt,_this,x){return{t:type,v:{members:{name:"setw",f:function f(config){return config.setw=x.v;}}}};};rt.regFunc(_setw,"global","setw",[rt.intTypeLiteral],type);_setfill=function _setfill(rt,_this,x){return{t:type,v:{members:{name:"setfill",f:function f(config){return config.setfill=String.fromCharCode(x.v);}}}};};rt.regFunc(_setfill,"global","setfill",[rt.charTypeLiteral],type);_addManipulator=function _addManipulator(rt,_cout,m){_cout.manipulators||(_cout.manipulators={config:{},active:{},use:function use(o){var fill,i,j,prec,ref,tarStr;if(rt.isNumericType(o.t)&&!rt.isIntegerType(o.t)){if(this.active.fixed){prec=this.active.setprecision!=null?this.config.setprecision:6;tarStr=o.v.toFixed(prec);}else if(this.active.setprecision!=null){tarStr=o.v.toPrecision(this.config.setprecision).replace(/0+$/,"");}}if(this.active.setw!=null){if(this.active.setfill!=null){fill=this.config.setfill;}else{fill=" ";}if(!(rt.isTypeEqualTo(o.t,rt.charTypeLiteral)&&(o.v===10||o.v===13))){tarStr||(tarStr=rt.isPrimitiveType(o.t)?o.t.name.indexOf("char")>=0?String.fromCharCode(o.v):o.t.name==="bool"?o.v?"1":"0":o.v.toString():rt.isStringType(o.t)?rt.getStringFromCharArray(o):rt.raiseException("<< operator in ostream cannot accept "+rt.makeTypeString(o.t)));for(i=j=0,ref=this.config.setw-tarStr.length;j<ref;i=j+=1){tarStr=fill+tarStr;}delete this.active.setw;}}if(tarStr!=null){return rt.makeCharArrayFromString(tarStr);}else{return o;}}});m.v.members.f(_cout.manipulators.config);_cout.manipulators.active[m.v.members.name]=m.v.members.f;return _cout;};rt.regOperator(_addManipulator,oType,"<<",[type],oType);}};},{}],12:[function(require,module,exports){var _read,_skipSpace;_skipSpace=function _skipSpace(s){var r;r=/^\s*/.exec(s);if(r&&r.length>0){return s.substring(r[0].length);}else{return s;}};_read=function _read(rt,reg,buf,type){var r;r=reg.exec(buf);if(r==null||r.length===0){return rt.raiseException("input format mismatch "+rt.makeTypeString(type)+" with buffer="+buf);}else{return r;}};module.exports={load:function load(rt){var _bool,_cinString,_get,_getline,cin,cout,endl,pchar,stdio,type;stdio=rt.config.stdio;type=rt.newClass("istream",[]);cin={t:type,v:{buf:stdio.drain(),istream:stdio,members:{}},left:false};rt.scope[0]["cin"]=cin;pchar=rt.normalPointerType(rt.charTypeLiteral);rt.types[rt.getTypeSignature(type)]={"#father":"object","o(>>)":{"#default":function _default(rt,_cin,t){var b,len,r,v;if(!t.left){rt.raiseException("only left value can be used as storage");}if(!rt.isPrimitiveType(t.t)){rt.raiseException(">> operator in istream cannot accept "+rt.makeTypeString(t.t));}

// BY LRUSSO.COM
//b=_cin.v.buf;
b=mySimulatorInput;
mySimulatorInput="";

_cin.v.eofbit=b.length===0;switch(t.t.name){case"char":case"signed char":case"unsigned char":b=_skipSpace(b);r=_read(rt,/^./,b,t.t);v=r[0].charCodeAt(0);break;case"short":case"short int":case"signed short":case"signed short int":case"unsigned short":case"unsigned short int":case"int":case"signed int":case"unsigned":case"unsigned int":case"long":case"long int":case"long int":case"signed long":case"signed long int":case"unsigned long":case"unsigned long int":case"long long":case"long long int":case"long long int":case"signed long long":case"signed long long int":case"unsigned long long":case"unsigned long long int":b=_skipSpace(b);r=_read(rt,/^[-+]?(?:([0-9]*)([eE]\+?[0-9]+)?)|0/,b,t.t);v=parseInt(r[0]);break;case"float":case"double":b=_skipSpace(b);r=_read(rt,/^[-+]?(?:[0-9]*\.[0-9]+([eE][-+]?[0-9]+)?)|(?:([1-9][0-9]*)([eE]\+?[0-9]+)?)/,b,t.t);v=parseFloat(r[0]);break;case"bool":b=_skipSpace(b);r=_read(rt,/^(true|false)/,b,t.t);v=r[0]==="true";break;default:rt.raiseException(">> operator in istream cannot accept "+rt.makeTypeString(t.t));}len=r[0].length;_cin.v.failbit=len===0;

if(!_cin.v.failbit)
	{
	t.v=rt.val(t.t,v).v;
	_cin.v.buf=b.substring(len);
	}
	// BY LRUSSO.COM
	else
	{
	t.v="";
	}
return _cin;
}}};_cinString=function _cinString(rt,_cin,t){var b,i,initialPos,j,r,ref,tar;if(!rt.isStringType(t.t)){rt.raiseException("only a pointer to string can be used as storage");}b=_cin.v.buf;_cin.v.eofbit=b.length===0;b=_skipSpace(b);r=_read(rt,/^\S*/,b,t.t)[0];_cin.v.failbit=r.length===0;_cin.v.buf=b.substring(r.length);initialPos=t.v.position;tar=t.v.target;if(tar.length-initialPos<=r.length){rt.raiseException("target string buffer is ".concat(r.length-(tar.length-initialPos)," too short"));}for(i=j=0,ref=r.length;0<=ref?j<ref:j>ref;i=0<=ref?++j:--j){tar[i+initialPos]=rt.val(rt.charTypeLiteral,r.charCodeAt(i));}tar[r.length+initialPos]=rt.val(rt.charTypeLiteral,0);return _cin;};rt.regOperator(_cinString,cin.t,">>",[pchar],cin.t);_getline=function _getline(rt,_cin,t,limit,delim){var b,i,initialPos,j,r,ref,removeDelim,tar;if(!rt.isStringType(t.t)){rt.raiseException("only a pointer to string can be used as storage");}limit=limit.v;delim=delim!=null?delim.v:'\n';b=_cin.v.buf;_cin.v.eofbit=b.length===0;r=_read(rt,new RegExp("^[^".concat(delim,"]*")),b,t.t)[0];if(r.length+1>limit){r=r.substring(0,limit-1);}if(b.charAt(r.length)===delim.charAt(0)){removeDelim=true;_cin.v.failbit=false;}else{_cin.v.failbit=r.length===0;}_cin.v.buf=b.substring(r.length+(removeDelim?1:0));initialPos=t.v.position;tar=t.v.target;if(tar.length-initialPos<=r.length){rt.raiseException("target string buffer is ".concat(r.length-(tar.length-initialPos)," too short"));}for(i=j=0,ref=r.length;0<=ref?j<ref:j>ref;i=0<=ref?++j:--j){tar[i+initialPos]=rt.val(rt.charTypeLiteral,r.charCodeAt(i));}tar[r.length+initialPos]=rt.val(rt.charTypeLiteral,0);return _cin;};rt.regFunc(_getline,cin.t,"getline",[pchar,rt.intTypeLiteral,rt.charTypeLiteral],cin.t);rt.regFunc(_getline,cin.t,"getline",[pchar,rt.intTypeLiteral],cin.t);_get=function _get(rt,_cin){var b,r,v;b=_cin.v.buf;_cin.v.eofbit=b.length===0;if(_cin.v.eofbit){return rt.val(rt.intTypeLiteral,-1);}else{r=_read(rt,/^.|[\r\n]/,b,rt.charTypeLiteral);_cin.v.buf=b.substring(r.length);v=r[0].charCodeAt(0);return rt.val(rt.intTypeLiteral,v);}};rt.regFunc(_get,cin.t,"get",[],rt.intTypeLiteral);_bool=function _bool(rt,_cin){return rt.val(rt.boolTypeLiteral,!_cin.v.failbit);};rt.regOperator(_bool,cin.t,"bool",[],rt.boolTypeLiteral);//######################### cout
type=rt.newClass("ostream",[]);cout={t:rt.simpleType("ostream"),v:{ostream:stdio,members:{}},left:false};rt.scope[0]["cout"]=cout;rt.types[rt.getTypeSignature(cout.t)]={"#father":"object","o(<<)":{"#default":function _default(rt,_cout,t){var r;if(_cout.manipulators!=null){t=_cout.manipulators.use(t);}if(rt.isPrimitiveType(t.t)){if(t.t.name.indexOf("char")>=0){r=String.fromCharCode(t.v);}else if(t.t.name==="bool"){r=t.v?"1":"0";}else{r=t.v.toString();}}else if(rt.isStringType(t.t)){r=rt.getStringFromCharArray(t);}else{rt.raiseException("<< operator in ostream cannot accept "+rt.makeTypeString(t.t));}_cout.v.ostream.write(r);return _cout;}}};endl=rt.val(rt.charTypeLiteral,"\n".charCodeAt(0));rt.scope[0]["endl"]=endl;}};},{}],13:[function(require,module,exports){module.exports=function(rt,_this,dest,src){var destarr,i,j,srcarr;if(rt.isArrayType(dest.t)&&rt.isArrayType(src.t)){srcarr=src.v.target;i=src.v.position;destarr=dest.v.target;j=dest.v.position;while(i<srcarr.length&&j<destarr.length&&srcarr[i].v!==0){destarr[j]=rt.clone(srcarr[i]);i++;j++;}if(i===srcarr.length){rt.raiseException("source string does not have a pending \"\\0\"");}else if(j===destarr.length-1){rt.raiseException("destination array is not big enough");}else{destarr[j]=rt.val(rt.charTypeLiteral,0);}}else{rt.raiseException("destination or source is not an array");}return dest;};},{}],14:[function(require,module,exports){require("babel-polyfill");self.JSCPP=require('./main');},{"./main":17,"babel-polyfill":21}],15:[function(require,module,exports){var Interpreter,isGenerator,isGeneratorFunction,sampleGenerator,sampleGeneratorFunction;sampleGeneratorFunction=/*#__PURE__*/regeneratorRuntime.mark(function sampleGeneratorFunction(){return regeneratorRuntime.wrap(function sampleGeneratorFunction$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return null;case 2:return _context.abrupt("return",_context.sent);case 3:case"end":return _context.stop();}}},sampleGeneratorFunction);});sampleGenerator=sampleGeneratorFunction();isGenerator=function isGenerator(g){return(g!=null?g.constructor:void 0)===sampleGenerator.constructor;};isGeneratorFunction=function isGeneratorFunction(f){return(f!=null?f.constructor:void 0)===sampleGeneratorFunction.constructor;};Interpreter=function Interpreter(rt){this.rt=rt;this.visitors={TranslationUnit:/*#__PURE__*/regeneratorRuntime.mark(function TranslationUnit(interp,s,param){var dec,i;return regeneratorRuntime.wrap(function TranslationUnit$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:rt=interp.rt;i=0;case 2:if(!(i<s.ExternalDeclarations.length)){_context2.next=8;break;}dec=s.ExternalDeclarations[i];return _context2.delegateYield(interp.visit(interp,dec),"t0",5);case 5:i++;_context2.next=2;break;case 8:case"end":return _context2.stop();}}},TranslationUnit);}),DirectDeclarator:/*#__PURE__*/regeneratorRuntime.mark(function DirectDeclarator(interp,s,param){var _basetype,_param,_pointer,_type,argTypes,basetype,dim,dimensions,j,k,l,len,len1,len2,m,ptl,ref,ref1,ref2,ret,right,varargs;return regeneratorRuntime.wrap(function DirectDeclarator$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:rt=interp.rt;basetype=param.basetype;basetype=interp.buildRecursivePointerType(s.Pointer,basetype,0);if(!(s.right.length===1)){_context3.next=47;break;}right=s.right[0];ptl=null;if(right.type==="DirectDeclarator_modifier_ParameterTypeList"){ptl=right.ParameterTypeList;varargs=ptl.varargs;}else if(right.type==="DirectDeclarator_modifier_IdentifierList"&&right.IdentifierList===null){ptl=right.ParameterTypeList;varargs=false;}if(!(ptl!=null)){_context3.next=47;break;}argTypes=[];ref=ptl.ParameterList;k=0,len=ref.length;case 11:if(!(k<len)){_context3.next=46;break;}_param=ref[k];_basetype=rt.simpleType(_param.DeclarationSpecifiers);if(!(_param.Declarator!=null)){_context3.next=41;break;}_pointer=_param.Declarator.Pointer;_type=interp.buildRecursivePointerType(_pointer,_basetype,0);if(!(_param.Declarator.right!=null&&_param.Declarator.right.length>0)){_context3.next=39;break;}dimensions=[];ref1=_param.Declarator.right;j=l=0,len1=ref1.length;case 21:if(!(l<len1)){_context3.next=38;break;}dim=ref1[j];dim=_param.Declarator.right[j];if(dim.type!=="DirectDeclarator_modifier_array"){rt.raiseException("unacceptable array initialization",dim);}if(!(dim.Expression!==null)){_context3.next=33;break;}_context3.t0=rt;_context3.t1=rt.intTypeLiteral;return _context3.delegateYield(interp.visit(interp,dim.Expression,param),"t2",29);case 29:_context3.t3=_context3.t2;dim=_context3.t0.cast.call(_context3.t0,_context3.t1,_context3.t3).v;_context3.next=34;break;case 33:if(j>0){rt.raiseException("multidimensional array must have bounds for all dimensions except the first",dim);}else{dim=-1;}case 34:dimensions.push(dim);case 35:j=++l;_context3.next=21;break;case 38:_type=interp.arrayType(dimensions,0,_type);case 39:_context3.next=42;break;case 41:_type=_basetype;case 42:argTypes.push(_type);case 43:k++;_context3.next=11;break;case 46:basetype=rt.functionType(basetype,argTypes);case 47:if(!(s.right.length>0&&s.right[0].type==="DirectDeclarator_modifier_array")){_context3.next=68;break;}dimensions=[];ref2=s.right;j=m=0,len2=ref2.length;case 51:if(!(m<len2)){_context3.next=67;break;}dim=ref2[j];if(dim.type!=="DirectDeclarator_modifier_array"){rt.raiseException("unacceptable array initialization",dim);}if(!(dim.Expression!==null)){_context3.next=62;break;}_context3.t4=rt;_context3.t5=rt.intTypeLiteral;return _context3.delegateYield(interp.visit(interp,dim.Expression,param),"t6",58);case 58:_context3.t7=_context3.t6;dim=_context3.t4.cast.call(_context3.t4,_context3.t5,_context3.t7).v;_context3.next=63;break;case 62:if(j>0){rt.raiseException("multidimensional array must have bounds for all dimensions except the first",dim);}else{dim=-1;}case 63:dimensions.push(dim);case 64:j=++m;_context3.next=51;break;case 67:basetype=interp.arrayType(dimensions,0,basetype);case 68:if(!(s.left.type==="Identifier")){_context3.next=72;break;}return _context3.abrupt("return",{type:basetype,name:s.left.Identifier});case 72:_basetype=param.basetype;param.basetype=basetype;return _context3.delegateYield(interp.visit(interp,s.left,param),"t8",75);case 75:ret=_context3.t8;param.basetype=_basetype;return _context3.abrupt("return",ret);case 78:case"end":return _context3.stop();}}},DirectDeclarator);}),TypedefDeclaration:/*#__PURE__*/regeneratorRuntime.mark(function TypedefDeclaration(interp,s,param){var _basetype,basetype,declarator,k,len,name,ref,type,_yield$interp$visit;return regeneratorRuntime.wrap(function TypedefDeclaration$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:rt=interp.rt;basetype=rt.simpleType(s.DeclarationSpecifiers);_basetype=param.basetype;param.basetype=basetype;ref=s.Declarators;k=0,len=ref.length;case 6:if(!(k<len)){_context4.next=16;break;}declarator=ref[k];return _context4.delegateYield(interp.visit(interp,declarator,param),"t0",9);case 9:_yield$interp$visit=_context4.t0;type=_yield$interp$visit.type;name=_yield$interp$visit.name;rt.registerTypedef(type,name);case 13:k++;_context4.next=6;break;case 16:param.basetype=_basetype;case 17:case"end":return _context4.stop();}}},TypedefDeclaration);}),FunctionDefinition:/*#__PURE__*/regeneratorRuntime.mark(function FunctionDefinition(interp,s,param){var _basetype,_init,_name,_param,_pointer,_type,argNames,argTypes,basetype,dim,dimensions,i,j,name,optionalArgs,pointer,ptl,scope,stat,varargs;return regeneratorRuntime.wrap(function FunctionDefinition$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:rt=interp.rt;scope=param.scope;name=s.Declarator.left.Identifier;basetype=rt.simpleType(s.DeclarationSpecifiers);pointer=s.Declarator.Pointer;basetype=interp.buildRecursivePointerType(pointer,basetype,0);argTypes=[];argNames=[];optionalArgs=[];ptl=void 0;varargs=void 0;if(s.Declarator.right.type==="DirectDeclarator_modifier_ParameterTypeList"){ptl=s.Declarator.right.ParameterTypeList;varargs=ptl.varargs;}else if(s.Declarator.right.type==="DirectDeclarator_modifier_IdentifierList"&&s.Declarator.right.IdentifierList===null){ptl={ParameterList:[]};varargs=false;}else{rt.raiseException("unacceptable argument list",s.Declarator.right);}i=0;case 13:if(!(i<ptl.ParameterList.length)){_context5.next=45;break;}_param=ptl.ParameterList[i];if(_param.Declarator==null){rt.raiseException("missing declarator for argument",_param);}_init=_param.Declarator.Initializers;_pointer=_param.Declarator.Declarator.Pointer;_basetype=rt.simpleType(_param.DeclarationSpecifiers);_type=interp.buildRecursivePointerType(_pointer,_basetype,0);_name=_param.Declarator.Declarator.left.Identifier;if(!(_param.Declarator.Declarator.right.length>0)){_context5.next=41;break;}dimensions=[];j=0;case 24:if(!(j<_param.Declarator.Declarator.right.length)){_context5.next=40;break;}dim=_param.Declarator.Declarator.right[j];if(dim.type!=="DirectDeclarator_modifier_array"){rt.raiseException("unacceptable array initialization",dim);}if(!(dim.Expression!==null)){_context5.next=35;break;}_context5.t0=rt;_context5.t1=rt.intTypeLiteral;return _context5.delegateYield(interp.visit(interp,dim.Expression,param),"t2",31);case 31:_context5.t3=_context5.t2;dim=_context5.t0.cast.call(_context5.t0,_context5.t1,_context5.t3).v;_context5.next=36;break;case 35:if(j>0){rt.raiseException("multidimensional array must have bounds for all dimensions except the first",dim);}else{dim=-1;}case 36:dimensions.push(dim);j++;_context5.next=24;break;case 40:_type=interp.arrayType(dimensions,0,_type);case 41:if(_init!=null){optionalArgs.push({type:_type,name:_name,expression:_init.Expression});}else{if(optionalArgs.length>0){rt.raiseException("all default arguments must be at the end of arguments list",_param);}argTypes.push(_type);argNames.push(_name);}i++;_context5.next=13;break;case 45:stat=s.CompoundStatement;rt.defFunc(scope,name,basetype,argTypes,argNames,stat,interp,optionalArgs);case 47:case"end":return _context5.stop();}}},FunctionDefinition);}),Declaration:/*#__PURE__*/regeneratorRuntime.mark(function Declaration(interp,s,param){var _basetype,basetype,dec,dim,dimensions,i,init,initializer,j,k,l,len,len1,name,ref,ref1,type,_yield$interp$visit2,_yield$interp$visit3;return regeneratorRuntime.wrap(function Declaration$(_context6){while(1){switch(_context6.prev=_context6.next){case 0:rt=interp.rt;basetype=rt.simpleType(s.DeclarationSpecifiers);ref=s.InitDeclaratorList;i=k=0,len=ref.length;case 4:if(!(k<len)){_context6.next=65;break;}dec=ref[i];init=dec.Initializers;if(!(dec.Declarator.right.length>0&&dec.Declarator.right[0].type==="DirectDeclarator_modifier_array")){_context6.next=48;break;}dimensions=[];ref1=dec.Declarator.right;j=l=0,len1=ref1.length;case 11:if(!(l<len1)){_context6.next=36;break;}dim=ref1[j];if(!(dim.Expression!==null)){_context6.next=21;break;}_context6.t0=rt;_context6.t1=rt.intTypeLiteral;return _context6.delegateYield(interp.visit(interp,dim.Expression,param),"t2",17);case 17:_context6.t3=_context6.t2;dim=_context6.t0.cast.call(_context6.t0,_context6.t1,_context6.t3).v;_context6.next=32;break;case 21:if(!(j>0)){_context6.next=25;break;}rt.raiseException("multidimensional array must have bounds for all dimensions except the first",dim);_context6.next=32;break;case 25:if(!(init.type==="Initializer_expr")){_context6.next=31;break;}return _context6.delegateYield(interp.visit(interp,init,param),"t4",27);case 27:initializer=_context6.t4;if(rt.isCharType(basetype)&&rt.isArrayType(initializer.t)&&rt.isCharType(initializer.t.eleType)){// string init
dim=initializer.v.target.length;init={type:"Initializer_array",Initializers:initializer.v.target.map(function(e){return{type:"Initializer_expr",shorthand:e};})};}else{rt.raiseException("cannot initialize an array to "+rt.makeValString(initializer),init);}_context6.next=32;break;case 31:dim=init.Initializers.length;case 32:dimensions.push(dim);case 33:j=++l;_context6.next=11;break;case 36:return _context6.delegateYield(interp.arrayInit(dimensions,init,0,basetype,param),"t5",37);case 37:init=_context6.t5;_basetype=param.basetype;param.basetype=basetype;return _context6.delegateYield(interp.visit(interp,dec.Declarator,param),"t6",41);case 41:_yield$interp$visit2=_context6.t6;name=_yield$interp$visit2.name;type=_yield$interp$visit2.type;param.basetype=_basetype;rt.defVar(name,init.t,init);_context6.next=62;break;case 48:_basetype=param.basetype;param.basetype=basetype;return _context6.delegateYield(interp.visit(interp,dec.Declarator,param),"t7",51);case 51:_yield$interp$visit3=_context6.t7;name=_yield$interp$visit3.name;type=_yield$interp$visit3.type;param.basetype=_basetype;if(!(init==null)){_context6.next=59;break;}init=rt.defaultValue(type,true);_context6.next=61;break;case 59:return _context6.delegateYield(interp.visit(interp,init.Expression),"t8",60);case 60:init=_context6.t8;case 61:rt.defVar(name,type,init);case 62:i=++k;_context6.next=4;break;case 65:case"end":return _context6.stop();}}},Declaration);}),Initializer_expr:/*#__PURE__*/regeneratorRuntime.mark(function Initializer_expr(interp,s,param){return regeneratorRuntime.wrap(function Initializer_expr$(_context7){while(1){switch(_context7.prev=_context7.next){case 0:rt=interp.rt;return _context7.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:return _context7.abrupt("return",_context7.t0);case 3:case"end":return _context7.stop();}}},Initializer_expr);}),Label_case:/*#__PURE__*/regeneratorRuntime.mark(function Label_case(interp,s,param){var ce;return regeneratorRuntime.wrap(function Label_case$(_context8){while(1){switch(_context8.prev=_context8.next){case 0:rt=interp.rt;return _context8.delegateYield(interp.visit(interp,s.ConstantExpression),"t0",2);case 2:ce=_context8.t0;if(param["switch"]===void 0){rt.raiseException("you cannot use case outside switch block");}if(!(param.scope==="SelectionStatement_switch_cs")){_context8.next=8;break;}return _context8.abrupt("return",["switch",rt.cast(ce.t,param["switch"]).v===ce.v]);case 8:rt.raiseException("you can only use case directly in a switch block");case 9:case"end":return _context8.stop();}}},Label_case);}),Label_default:function Label_default(interp,s,param){rt=interp.rt;if(param["switch"]===void 0){rt.raiseException("you cannot use default outside switch block");}if(param.scope==="SelectionStatement_switch_cs"){return["switch",true];}else{rt.raiseException("you can only use default directly in a switch block");}},CompoundStatement:/*#__PURE__*/regeneratorRuntime.mark(function CompoundStatement(interp,s,param){var _scope,i,k,len,r,stmt,stmts,switchon;return regeneratorRuntime.wrap(function CompoundStatement$(_context9){while(1){switch(_context9.prev=_context9.next){case 0:rt=interp.rt;stmts=s.Statements;r=void 0;i=void 0;_scope=param.scope;if(!(param.scope==="SelectionStatement_switch")){_context9.next=30;break;}param.scope="SelectionStatement_switch_cs";rt.enterScope(param.scope);switchon=false;i=0;case 10:if(!(i<stmts.length)){_context9.next=26;break;}stmt=stmts[i];if(!(stmt.type==="Label_case"||stmt.type==="Label_default")){_context9.next=18;break;}return _context9.delegateYield(interp.visit(interp,stmt,param),"t0",14);case 14:r=_context9.t0;if(r[1]){switchon=true;}_context9.next=23;break;case 18:if(!switchon){_context9.next=23;break;}return _context9.delegateYield(interp.visit(interp,stmt,param),"t1",20);case 20:r=_context9.t1;if(!(r instanceof Array)){_context9.next=23;break;}return _context9.abrupt("return",r);case 23:i++;_context9.next=10;break;case 26:rt.exitScope(param.scope);param.scope=_scope;_context9.next=45;break;case 30:param.scope="CompoundStatement";rt.enterScope(param.scope);k=0,len=stmts.length;case 33:if(!(k<len)){_context9.next=42;break;}stmt=stmts[k];return _context9.delegateYield(interp.visit(interp,stmt,param),"t2",36);case 36:r=_context9.t2;if(!(r instanceof Array)){_context9.next=39;break;}return _context9.abrupt("break",42);case 39:k++;_context9.next=33;break;case 42:rt.exitScope(param.scope);param.scope=_scope;return _context9.abrupt("return",r);case 45:case"end":return _context9.stop();}}},CompoundStatement);}),ExpressionStatement:/*#__PURE__*/regeneratorRuntime.mark(function ExpressionStatement(interp,s,param){return regeneratorRuntime.wrap(function ExpressionStatement$(_context10){while(1){switch(_context10.prev=_context10.next){case 0:rt=interp.rt;if(!(s.Expression!=null)){_context10.next=3;break;}return _context10.delegateYield(interp.visit(interp,s.Expression,param),"t0",3);case 3:case"end":return _context10.stop();}}},ExpressionStatement);}),SelectionStatement_if:/*#__PURE__*/regeneratorRuntime.mark(function SelectionStatement_if(interp,s,param){var e,ret,scope_bak;return regeneratorRuntime.wrap(function SelectionStatement_if$(_context11){while(1){switch(_context11.prev=_context11.next){case 0:rt=interp.rt;scope_bak=param.scope;param.scope="SelectionStatement_if";rt.enterScope(param.scope);return _context11.delegateYield(interp.visit(interp,s.Expression,param),"t0",5);case 5:e=_context11.t0;ret=void 0;if(!rt.cast(rt.boolTypeLiteral,e).v){_context11.next=12;break;}return _context11.delegateYield(interp.visit(interp,s.Statement,param),"t1",9);case 9:ret=_context11.t1;_context11.next=15;break;case 12:if(!s.ElseStatement){_context11.next=15;break;}return _context11.delegateYield(interp.visit(interp,s.ElseStatement,param),"t2",14);case 14:ret=_context11.t2;case 15:rt.exitScope(param.scope);param.scope=scope_bak;return _context11.abrupt("return",ret);case 18:case"end":return _context11.stop();}}},SelectionStatement_if);}),SelectionStatement_switch:/*#__PURE__*/regeneratorRuntime.mark(function SelectionStatement_switch(interp,s,param){var e,r,ret,scope_bak,switch_bak;return regeneratorRuntime.wrap(function SelectionStatement_switch$(_context12){while(1){switch(_context12.prev=_context12.next){case 0:rt=interp.rt;scope_bak=param.scope;param.scope="SelectionStatement_switch";rt.enterScope(param.scope);return _context12.delegateYield(interp.visit(interp,s.Expression,param),"t0",5);case 5:e=_context12.t0;switch_bak=param["switch"];param["switch"]=e;return _context12.delegateYield(interp.visit(interp,s.Statement,param),"t1",9);case 9:r=_context12.t1;param["switch"]=switch_bak;ret=void 0;if(r instanceof Array){if(r[0]!=="break"){ret=r;}}rt.exitScope(param.scope);param.scope=scope_bak;return _context12.abrupt("return",ret);case 16:case"end":return _context12.stop();}}},SelectionStatement_switch);}),IterationStatement_while:/*#__PURE__*/regeneratorRuntime.mark(function IterationStatement_while(interp,s,param){var cond,end_loop,r,return_val,scope_bak;return regeneratorRuntime.wrap(function IterationStatement_while$(_context13){while(1){switch(_context13.prev=_context13.next){case 0:rt=interp.rt;scope_bak=param.scope;param.scope="IterationStatement_while";rt.enterScope(param.scope);case 4:if(!true){_context13.next=26;break;}if(!(s.Expression!=null)){_context13.next=11;break;}return _context13.delegateYield(interp.visit(interp,s.Expression,param),"t0",7);case 7:cond=_context13.t0;cond=rt.cast(rt.boolTypeLiteral,cond).v;if(cond){_context13.next=11;break;}return _context13.abrupt("break",26);case 11:return _context13.delegateYield(interp.visit(interp,s.Statement,param),"t1",12);case 12:r=_context13.t1;if(!(r instanceof Array)){_context13.next=24;break;}_context13.t2=r[0];_context13.next=_context13.t2==="continue"?17:_context13.t2==="break"?18:_context13.t2==="return"?20:22;break;case 17:return _context13.abrupt("break",22);case 18:end_loop=true;return _context13.abrupt("break",22);case 20:return_val=r;end_loop=true;case 22:if(!end_loop){_context13.next=24;break;}return _context13.abrupt("break",26);case 24:_context13.next=4;break;case 26:rt.exitScope(param.scope);param.scope=scope_bak;return _context13.abrupt("return",return_val);case 29:case"end":return _context13.stop();}}},IterationStatement_while);}),IterationStatement_do:/*#__PURE__*/regeneratorRuntime.mark(function IterationStatement_do(interp,s,param){var cond,end_loop,r,return_val,scope_bak;return regeneratorRuntime.wrap(function IterationStatement_do$(_context14){while(1){switch(_context14.prev=_context14.next){case 0:rt=interp.rt;scope_bak=param.scope;param.scope="IterationStatement_do";rt.enterScope(param.scope);case 4:if(!true){_context14.next=26;break;}return _context14.delegateYield(interp.visit(interp,s.Statement,param),"t0",6);case 6:r=_context14.t0;if(!(r instanceof Array)){_context14.next=18;break;}_context14.t1=r[0];_context14.next=_context14.t1==="continue"?11:_context14.t1==="break"?12:_context14.t1==="return"?14:16;break;case 11:return _context14.abrupt("break",16);case 12:end_loop=true;return _context14.abrupt("break",16);case 14:return_val=r;end_loop=true;case 16:if(!end_loop){_context14.next=18;break;}return _context14.abrupt("break",26);case 18:if(!(s.Expression!=null)){_context14.next=24;break;}return _context14.delegateYield(interp.visit(interp,s.Expression,param),"t2",20);case 20:cond=_context14.t2;cond=rt.cast(rt.boolTypeLiteral,cond).v;if(cond){_context14.next=24;break;}return _context14.abrupt("break",26);case 24:_context14.next=4;break;case 26:rt.exitScope(param.scope);param.scope=scope_bak;return _context14.abrupt("return",return_val);case 29:case"end":return _context14.stop();}}},IterationStatement_do);}),IterationStatement_for:/*#__PURE__*/regeneratorRuntime.mark(function IterationStatement_for(interp,s,param){var cond,end_loop,r,return_val,scope_bak;return regeneratorRuntime.wrap(function IterationStatement_for$(_context15){while(1){switch(_context15.prev=_context15.next){case 0:rt=interp.rt;scope_bak=param.scope;param.scope="IterationStatement_for";rt.enterScope(param.scope);if(!s.Initializer){_context15.next=10;break;}if(!(s.Initializer.type==="Declaration")){_context15.next=9;break;}return _context15.delegateYield(interp.visit(interp,s.Initializer,param),"t0",7);case 7:_context15.next=10;break;case 9:return _context15.delegateYield(interp.visit(interp,s.Initializer,param),"t1",10);case 10:if(!true){_context15.next=34;break;}if(!(s.Expression!=null)){_context15.next=17;break;}return _context15.delegateYield(interp.visit(interp,s.Expression,param),"t2",13);case 13:cond=_context15.t2;cond=rt.cast(rt.boolTypeLiteral,cond).v;if(cond){_context15.next=17;break;}return _context15.abrupt("break",34);case 17:return _context15.delegateYield(interp.visit(interp,s.Statement,param),"t3",18);case 18:r=_context15.t3;if(!(r instanceof Array)){_context15.next=30;break;}_context15.t4=r[0];_context15.next=_context15.t4==="continue"?23:_context15.t4==="break"?24:_context15.t4==="return"?26:28;break;case 23:return _context15.abrupt("break",28);case 24:end_loop=true;return _context15.abrupt("break",28);case 26:return_val=r;end_loop=true;case 28:if(!end_loop){_context15.next=30;break;}return _context15.abrupt("break",34);case 30:if(!s.Loop){_context15.next=32;break;}return _context15.delegateYield(interp.visit(interp,s.Loop,param),"t5",32);case 32:_context15.next=10;break;case 34:rt.exitScope(param.scope);param.scope=scope_bak;return _context15.abrupt("return",return_val);case 37:case"end":return _context15.stop();}}},IterationStatement_for);}),JumpStatement_goto:function JumpStatement_goto(interp,s,param){rt=interp.rt;rt.raiseException("not implemented");},JumpStatement_continue:function JumpStatement_continue(interp,s,param){rt=interp.rt;return["continue"];},JumpStatement_break:function JumpStatement_break(interp,s,param){rt=interp.rt;return["break"];},JumpStatement_return:/*#__PURE__*/regeneratorRuntime.mark(function JumpStatement_return(interp,s,param){var ret;return regeneratorRuntime.wrap(function JumpStatement_return$(_context16){while(1){switch(_context16.prev=_context16.next){case 0:rt=interp.rt;if(!s.Expression){_context16.next=5;break;}return _context16.delegateYield(interp.visit(interp,s.Expression,param),"t0",3);case 3:ret=_context16.t0;return _context16.abrupt("return",["return",ret]);case 5:return _context16.abrupt("return",["return"]);case 6:case"end":return _context16.stop();}}},JumpStatement_return);}),IdentifierExpression:function IdentifierExpression(interp,s,param){rt=interp.rt;return rt.readVar(s.Identifier);},ParenthesesExpression:/*#__PURE__*/regeneratorRuntime.mark(function ParenthesesExpression(interp,s,param){return regeneratorRuntime.wrap(function ParenthesesExpression$(_context17){while(1){switch(_context17.prev=_context17.next){case 0:rt=interp.rt;return _context17.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:return _context17.abrupt("return",_context17.t0);case 3:case"end":return _context17.stop();}}},ParenthesesExpression);}),PostfixExpression_ArrayAccess:/*#__PURE__*/regeneratorRuntime.mark(function PostfixExpression_ArrayAccess(interp,s,param){var index,r,ret;return regeneratorRuntime.wrap(function PostfixExpression_ArrayAccess$(_context18){while(1){switch(_context18.prev=_context18.next){case 0:rt=interp.rt;return _context18.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context18.t0;return _context18.delegateYield(interp.visit(interp,s.index,param),"t1",4);case 4:index=_context18.t1;r=rt.getFunc(ret.t,rt.makeOperatorFuncName("[]"),[index.t])(rt,ret,index);if(!isGenerator(r)){_context18.next=11;break;}return _context18.delegateYield(r,"t2",8);case 8:return _context18.abrupt("return",_context18.t2);case 11:return _context18.abrupt("return",r);case 12:case"end":return _context18.stop();}}},PostfixExpression_ArrayAccess);}),PostfixExpression_MethodInvocation:/*#__PURE__*/regeneratorRuntime.mark(function PostfixExpression_MethodInvocation(interp,s,param){var args,bindThis,e,r,ret,thisArg;return regeneratorRuntime.wrap(function PostfixExpression_MethodInvocation$(_context20){while(1){switch(_context20.prev=_context20.next){case 0:rt=interp.rt;return _context20.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context20.t0;return _context20.delegateYield(/*#__PURE__*/regeneratorRuntime.mark(function _callee(){var k,len,ref,results;return regeneratorRuntime.wrap(function _callee$(_context19){while(1){switch(_context19.prev=_context19.next){case 0:ref=s.args;results=[];k=0,len=ref.length;case 3:if(!(k<len)){_context19.next=11;break;}e=ref[k];return _context19.delegateYield(interp.visit(interp,e,param),"t0",6);case 6:thisArg=_context19.t0;// console.log "-------------------"
// console.log "e: " + JSON.stringify(e)
// console.log "-------------------"
results.push(thisArg);case 8:k++;_context19.next=3;break;case 11:return _context19.abrupt("return",results);case 12:case"end":return _context19.stop();}}},_callee);})(),"t1",4);case 4:args=_context20.t1;// console.log "==================="
// console.log "ret: " + JSON.stringify(ret)
// console.log "args: " + JSON.stringify(args)
// console.log "==================="
if(ret.v.bindThis!=null){bindThis=ret.v.bindThis;}else{bindThis=ret;}r=rt.getFunc(ret.t,rt.makeOperatorFuncName("()"),args.map(function(e){return e.t;}))(rt,ret,bindThis,args);if(!isGenerator(r)){_context20.next=12;break;}return _context20.delegateYield(r,"t2",9);case 9:return _context20.abrupt("return",_context20.t2);case 12:return _context20.abrupt("return",r);case 13:case"end":return _context20.stop();}}},PostfixExpression_MethodInvocation);}),PostfixExpression_MemberAccess:/*#__PURE__*/regeneratorRuntime.mark(function PostfixExpression_MemberAccess(interp,s,param){var ret;return regeneratorRuntime.wrap(function PostfixExpression_MemberAccess$(_context21){while(1){switch(_context21.prev=_context21.next){case 0:rt=interp.rt;return _context21.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context21.t0;return _context21.abrupt("return",rt.getMember(ret,s.member));case 4:case"end":return _context21.stop();}}},PostfixExpression_MemberAccess);}),PostfixExpression_MemberPointerAccess:/*#__PURE__*/regeneratorRuntime.mark(function PostfixExpression_MemberPointerAccess(interp,s,param){var member,r,ret;return regeneratorRuntime.wrap(function PostfixExpression_MemberPointerAccess$(_context22){while(1){switch(_context22.prev=_context22.next){case 0:rt=interp.rt;return _context22.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context22.t0;member=void 0;if(!(rt.isPointerType(ret.t)&&!rt.isFunctionType(ret.t))){_context22.next=15;break;}member=s.member;r=rt.getFunc(ret.t,rt.makeOperatorFuncName("->"),[])(rt,ret,member);if(!isGenerator(r)){_context22.next=12;break;}return _context22.delegateYield(r,"t1",9);case 9:return _context22.abrupt("return",_context22.t1);case 12:return _context22.abrupt("return",r);case 13:_context22.next=24;break;case 15:return _context22.delegateYield(interp.visit(interp,{type:"IdentifierExpression",Identifier:s.member},param),"t2",16);case 16:member=_context22.t2;r=rt.getFunc(ret.t,rt.makeOperatorFuncName("->"),[member.t])(rt,ret,member);if(!isGenerator(r)){_context22.next=23;break;}return _context22.delegateYield(r,"t3",20);case 20:return _context22.abrupt("return",_context22.t3);case 23:return _context22.abrupt("return",r);case 24:case"end":return _context22.stop();}}},PostfixExpression_MemberPointerAccess);}),PostfixExpression_PostIncrement:/*#__PURE__*/regeneratorRuntime.mark(function PostfixExpression_PostIncrement(interp,s,param){var r,ret;return regeneratorRuntime.wrap(function PostfixExpression_PostIncrement$(_context23){while(1){switch(_context23.prev=_context23.next){case 0:rt=interp.rt;return _context23.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context23.t0;r=rt.getFunc(ret.t,rt.makeOperatorFuncName("++"),["dummy"])(rt,ret,{t:"dummy",v:null});if(!isGenerator(r)){_context23.next=9;break;}return _context23.delegateYield(r,"t1",6);case 6:return _context23.abrupt("return",_context23.t1);case 9:return _context23.abrupt("return",r);case 10:case"end":return _context23.stop();}}},PostfixExpression_PostIncrement);}),PostfixExpression_PostDecrement:/*#__PURE__*/regeneratorRuntime.mark(function PostfixExpression_PostDecrement(interp,s,param){var r,ret;return regeneratorRuntime.wrap(function PostfixExpression_PostDecrement$(_context24){while(1){switch(_context24.prev=_context24.next){case 0:rt=interp.rt;return _context24.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context24.t0;r=rt.getFunc(ret.t,rt.makeOperatorFuncName("--"),["dummy"])(rt,ret,{t:"dummy",v:null});if(!isGenerator(r)){_context24.next=9;break;}return _context24.delegateYield(r,"t1",6);case 6:return _context24.abrupt("return",_context24.t1);case 9:return _context24.abrupt("return",r);case 10:case"end":return _context24.stop();}}},PostfixExpression_PostDecrement);}),UnaryExpression_PreIncrement:/*#__PURE__*/regeneratorRuntime.mark(function UnaryExpression_PreIncrement(interp,s,param){var r,ret;return regeneratorRuntime.wrap(function UnaryExpression_PreIncrement$(_context25){while(1){switch(_context25.prev=_context25.next){case 0:rt=interp.rt;return _context25.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context25.t0;r=rt.getFunc(ret.t,rt.makeOperatorFuncName("++"),[])(rt,ret);if(!isGenerator(r)){_context25.next=9;break;}return _context25.delegateYield(r,"t1",6);case 6:return _context25.abrupt("return",_context25.t1);case 9:return _context25.abrupt("return",r);case 10:case"end":return _context25.stop();}}},UnaryExpression_PreIncrement);}),UnaryExpression_PreDecrement:/*#__PURE__*/regeneratorRuntime.mark(function UnaryExpression_PreDecrement(interp,s,param){var r,ret;return regeneratorRuntime.wrap(function UnaryExpression_PreDecrement$(_context26){while(1){switch(_context26.prev=_context26.next){case 0:rt=interp.rt;return _context26.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context26.t0;r=rt.getFunc(ret.t,rt.makeOperatorFuncName("--"),[])(rt,ret);if(!isGenerator(r)){_context26.next=9;break;}return _context26.delegateYield(r,"t1",6);case 6:return _context26.abrupt("return",_context26.t1);case 9:return _context26.abrupt("return",r);case 10:case"end":return _context26.stop();}}},UnaryExpression_PreDecrement);}),UnaryExpression:/*#__PURE__*/regeneratorRuntime.mark(function UnaryExpression(interp,s,param){var r,ret;return regeneratorRuntime.wrap(function UnaryExpression$(_context27){while(1){switch(_context27.prev=_context27.next){case 0:rt=interp.rt;return _context27.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context27.t0;r=rt.getFunc(ret.t,rt.makeOperatorFuncName(s.op),[])(rt,ret);if(!isGenerator(r)){_context27.next=9;break;}return _context27.delegateYield(r,"t1",6);case 6:return _context27.abrupt("return",_context27.t1);case 9:return _context27.abrupt("return",r);case 10:case"end":return _context27.stop();}}},UnaryExpression);}),UnaryExpression_Sizeof_Expr:/*#__PURE__*/regeneratorRuntime.mark(function UnaryExpression_Sizeof_Expr(interp,s,param){var ret;return regeneratorRuntime.wrap(function UnaryExpression_Sizeof_Expr$(_context28){while(1){switch(_context28.prev=_context28.next){case 0:rt=interp.rt;return _context28.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context28.t0;return _context28.abrupt("return",rt.val(rt.intTypeLiteral,rt.getSize(ret)));case 4:case"end":return _context28.stop();}}},UnaryExpression_Sizeof_Expr);}),UnaryExpression_Sizeof_Type:/*#__PURE__*/regeneratorRuntime.mark(function UnaryExpression_Sizeof_Type(interp,s,param){var type;return regeneratorRuntime.wrap(function UnaryExpression_Sizeof_Type$(_context29){while(1){switch(_context29.prev=_context29.next){case 0:rt=interp.rt;return _context29.delegateYield(interp.visit(interp,s.TypeName,param),"t0",2);case 2:type=_context29.t0;return _context29.abrupt("return",rt.val(rt.intTypeLiteral,rt.getSizeByType(type)));case 4:case"end":return _context29.stop();}}},UnaryExpression_Sizeof_Type);}),CastExpression:/*#__PURE__*/regeneratorRuntime.mark(function CastExpression(interp,s,param){var ret,type;return regeneratorRuntime.wrap(function CastExpression$(_context30){while(1){switch(_context30.prev=_context30.next){case 0:rt=interp.rt;return _context30.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:ret=_context30.t0;return _context30.delegateYield(interp.visit(interp,s.TypeName,param),"t1",4);case 4:type=_context30.t1;return _context30.abrupt("return",rt.cast(type,ret));case 6:case"end":return _context30.stop();}}},CastExpression);}),TypeName:function TypeName(interp,s,param){var baseType,k,len,ref,typename;rt=interp.rt;typename=[];ref=s.base;for(k=0,len=ref.length;k<len;k++){baseType=ref[k];if(baseType!=="const"){typename.push(baseType);}}return rt.simpleType(typename);},BinOpExpression:/*#__PURE__*/regeneratorRuntime.mark(function BinOpExpression(interp,s,param){var left,op,r,right;return regeneratorRuntime.wrap(function BinOpExpression$(_context31){while(1){switch(_context31.prev=_context31.next){case 0:rt=interp.rt;op=s.op;if(!(op==="&&")){_context31.next=8;break;}s.type="LogicalANDExpression";return _context31.delegateYield(interp.visit(interp,s,param),"t0",5);case 5:return _context31.abrupt("return",_context31.t0);case 8:if(!(op==="||")){_context31.next=14;break;}s.type="LogicalORExpression";return _context31.delegateYield(interp.visit(interp,s,param),"t1",11);case 11:return _context31.abrupt("return",_context31.t1);case 14:return _context31.delegateYield(interp.visit(interp,s.left,param),"t2",15);case 15:left=_context31.t2;return _context31.delegateYield(interp.visit(interp,s.right,param),"t3",17);case 17:right=_context31.t3;// console.log "==================="
// console.log "left: " + JSON.stringify(left)
// console.log "right: " + JSON.stringify(right)
// console.log "==================="
r=rt.getFunc(left.t,rt.makeOperatorFuncName(op),[right.t])(rt,left,right);if(!isGenerator(r)){_context31.next=24;break;}return _context31.delegateYield(r,"t4",21);case 21:return _context31.abrupt("return",_context31.t4);case 24:return _context31.abrupt("return",r);case 25:case"end":return _context31.stop();}}},BinOpExpression);}),LogicalANDExpression:/*#__PURE__*/regeneratorRuntime.mark(function LogicalANDExpression(interp,s,param){var left,lt,r,right;return regeneratorRuntime.wrap(function LogicalANDExpression$(_context32){while(1){switch(_context32.prev=_context32.next){case 0:rt=interp.rt;return _context32.delegateYield(interp.visit(interp,s.left,param),"t0",2);case 2:left=_context32.t0;lt=rt.types[rt.getTypeSignature(left.t)];if(!("&&"in lt)){_context32.next=16;break;}return _context32.delegateYield(interp.visit(interp,s.right,param),"t1",6);case 6:right=_context32.t1;r=rt.getFunc(left.t,rt.makeOperatorFuncName("&&"),[right.t])(rt,left,right);if(!isGenerator(r)){_context32.next=13;break;}return _context32.delegateYield(r,"t2",10);case 10:return _context32.abrupt("return",_context32.t2);case 13:return _context32.abrupt("return",r);case 14:_context32.next=22;break;case 16:if(!rt.cast(rt.boolTypeLiteral,left).v){_context32.next=21;break;}return _context32.delegateYield(interp.visit(interp,s.right,param),"t3",18);case 18:return _context32.abrupt("return",_context32.t3);case 21:return _context32.abrupt("return",left);case 22:case"end":return _context32.stop();}}},LogicalANDExpression);}),LogicalORExpression:/*#__PURE__*/regeneratorRuntime.mark(function LogicalORExpression(interp,s,param){var left,lt,r,right;return regeneratorRuntime.wrap(function LogicalORExpression$(_context33){while(1){switch(_context33.prev=_context33.next){case 0:rt=interp.rt;return _context33.delegateYield(interp.visit(interp,s.left,param),"t0",2);case 2:left=_context33.t0;lt=rt.types[rt.getTypeSignature(left.t)];if(!("||"in lt)){_context33.next=16;break;}return _context33.delegateYield(interp.visit(interp,s.right,param),"t1",6);case 6:right=_context33.t1;r=rt.getFunc(left.t,rt.makeOperatorFuncName("||"),[right.t])(rt,left,right);if(!isGenerator(r)){_context33.next=13;break;}return _context33.delegateYield(r,"t2",10);case 10:return _context33.abrupt("return",_context33.t2);case 13:return _context33.abrupt("return",r);case 14:_context33.next=22;break;case 16:if(!rt.cast(rt.boolTypeLiteral,left).v){_context33.next=20;break;}return _context33.abrupt("return",left);case 20:return _context33.delegateYield(interp.visit(interp,s.right,param),"t3",21);case 21:return _context33.abrupt("return",_context33.t3);case 22:case"end":return _context33.stop();}}},LogicalORExpression);}),ConditionalExpression:/*#__PURE__*/regeneratorRuntime.mark(function ConditionalExpression(interp,s,param){var cond;return regeneratorRuntime.wrap(function ConditionalExpression$(_context34){while(1){switch(_context34.prev=_context34.next){case 0:rt=interp.rt;_context34.t0=rt;_context34.t1=rt.boolTypeLiteral;return _context34.delegateYield(interp.visit(interp,s.cond,param),"t2",4);case 4:_context34.t3=_context34.t2;cond=_context34.t0.cast.call(_context34.t0,_context34.t1,_context34.t3).v;if(!cond){_context34.next=11;break;}return _context34.delegateYield(interp.visit(interp,s.t,param),"t4",8);case 8:return _context34.abrupt("return",_context34.t4);case 11:return _context34.delegateYield(interp.visit(interp,s.f,param),"t5",12);case 12:return _context34.abrupt("return",_context34.t5);case 13:case"end":return _context34.stop();}}},ConditionalExpression);}),ConstantExpression:/*#__PURE__*/regeneratorRuntime.mark(function ConstantExpression(interp,s,param){return regeneratorRuntime.wrap(function ConstantExpression$(_context35){while(1){switch(_context35.prev=_context35.next){case 0:rt=interp.rt;return _context35.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:return _context35.abrupt("return",_context35.t0);case 3:case"end":return _context35.stop();}}},ConstantExpression);}),StringLiteralExpression:/*#__PURE__*/regeneratorRuntime.mark(function StringLiteralExpression(interp,s,param){return regeneratorRuntime.wrap(function StringLiteralExpression$(_context36){while(1){switch(_context36.prev=_context36.next){case 0:return _context36.delegateYield(interp.visit(interp,s.value,param),"t0",1);case 1:return _context36.abrupt("return",_context36.t0);case 2:case"end":return _context36.stop();}}},StringLiteralExpression);}),StringLiteral:function StringLiteral(interp,s,param){var code,i,k,len,limits,maxCode,minCode,ref,typeName;rt=interp.rt;switch(s.prefix){case null:maxCode=-1;minCode=1;ref=s.value;for(k=0,len=ref.length;k<len;k++){i=ref[k];code=i.charCodeAt(0);if(maxCode<code){maxCode=code;}if(minCode>code){minCode=code;}}limits=rt.config.limits;typeName=maxCode<=limits["char"].max&&minCode>=limits["char"].min?"char":"wchar_t";return rt.makeCharArrayFromString(s.value,typeName);case"L":return rt.makeCharArrayFromString(s.value,"wchar_t");case"u8":return rt.makeCharArrayFromString(s.value,"char");case"u":return rt.makeCharArrayFromString(s.value,"char16_t");case"U":return rt.makeCharArrayFromString(s.value,"char32_t");}},BooleanConstant:function BooleanConstant(interp,s,param){rt=interp.rt;return rt.val(rt.boolTypeLiteral,s.value==="true"?1:0);},CharacterConstant:function CharacterConstant(interp,s,param){var a;rt=interp.rt;a=s.Char;if(a.length!==1){rt.raiseException("a character constant must have and only have one character.");}return rt.val(rt.charTypeLiteral,a[0].charCodeAt(0));},FloatConstant:/*#__PURE__*/regeneratorRuntime.mark(function FloatConstant(interp,s,param){var val;return regeneratorRuntime.wrap(function FloatConstant$(_context37){while(1){switch(_context37.prev=_context37.next){case 0:rt=interp.rt;return _context37.delegateYield(interp.visit(interp,s.Expression,param),"t0",2);case 2:val=_context37.t0;return _context37.abrupt("return",rt.val(rt.floatTypeLiteral,val.v));case 4:case"end":return _context37.stop();}}},FloatConstant);}),DecimalConstant:function DecimalConstant(interp,s,param){rt=interp.rt;return rt.val(rt.unsignedintTypeLiteral,parseInt(s.value,10));},HexConstant:function HexConstant(interp,s,param){rt=interp.rt;return rt.val(rt.unsignedintTypeLiteral,parseInt(s.value,16));},BinaryConstant:function BinaryConstant(interp,s,param){rt=interp.rt;return rt.val(rt.unsignedintTypeLiteral,parseInt(s.value,2));},DecimalFloatConstant:function DecimalFloatConstant(interp,s,param){rt=interp.rt;return rt.val(rt.doubleTypeLiteral,parseFloat(s.value));},HexFloatConstant:function HexFloatConstant(interp,s,param){rt=interp.rt;return rt.val(rt.doubleTypeLiteral,parseFloat(s.value,16));},OctalConstant:function OctalConstant(interp,s,param){rt=interp.rt;return rt.val(rt.unsignedintTypeLiteral,parseInt(s.value,8));},NamespaceDefinition:function NamespaceDefinition(interp,s,param){rt=interp.rt;rt.raiseException("not implemented");},UsingDirective:function UsingDirective(interp,s,param){var id;rt=interp.rt;id=s.Identifier;},//rt.raiseException("not implemented");
UsingDeclaration:function UsingDeclaration(interp,s,param){rt=interp.rt;rt.raiseException("not implemented");},NamespaceAliasDefinition:function NamespaceAliasDefinition(interp,s,param){rt=interp.rt;rt.raiseException("not implemented");},unknown:function unknown(interp,s,param){rt=interp.rt;rt.raiseException("unhandled syntax "+s.type);}};};Interpreter.prototype.visit=/*#__PURE__*/regeneratorRuntime.mark(function _callee2(interp,s,param){var _node,f,ret,rt;return regeneratorRuntime.wrap(function _callee2$(_context38){while(1){switch(_context38.prev=_context38.next){case 0:rt=interp.rt;// console.log "#{s.sLine}: visiting #{s.type}"
if(!("type"in s)){_context38.next=20;break;}if(param===void 0){param={scope:"global"};}_node=this.currentNode;this.currentNode=s;if(!(s.type in this.visitors)){_context38.next=16;break;}f=this.visitors[s.type];if(!isGeneratorFunction(f)){_context38.next=12;break;}return _context38.delegateYield(f(interp,s,param),"t0",9);case 9:ret=_context38.t0;_context38.next=14;break;case 12:_context38.next=14;return ret=f(interp,s,param);case 14:_context38.next=17;break;case 16:ret=this.visitors["unknown"](interp,s,param);case 17:this.currentNode=_node;_context38.next=22;break;case 20:this.currentNode=s;this.rt.raiseException("untyped syntax structure");case 22:return _context38.abrupt("return",ret);case 23:case"end":return _context38.stop();}}},_callee2,this);});Interpreter.prototype.run=/*#__PURE__*/regeneratorRuntime.mark(function _callee3(tree,source,param){return regeneratorRuntime.wrap(function _callee3$(_context39){while(1){switch(_context39.prev=_context39.next){case 0:this.rt.interp=this;this.source=source;return _context39.delegateYield(this.visit(this,tree,param),"t0",3);case 3:return _context39.abrupt("return",_context39.t0);case 4:case"end":return _context39.stop();}}},_callee3,this);});Interpreter.prototype.arrayInit=/*#__PURE__*/regeneratorRuntime.mark(function _callee4(dimensions,init,level,type,param){var _init,arr,curDim,i,initializer,initval,ret,val;return regeneratorRuntime.wrap(function _callee4$(_context40){while(1){switch(_context40.prev=_context40.next){case 0:arr=void 0;i=void 0;ret=void 0;initval=void 0;if(!(dimensions.length>level)){_context40.next=73;break;}curDim=dimensions[level];if(!init){_context40.next=56;break;}if(!(init.type==="Initializer_array"&&curDim>=init.Initializers.length&&(init.Initializers.length===0||init.Initializers[0].type==="Initializer_expr"))){_context40.next=44;break;}if(!(init.Initializers.length===0)){_context40.next=15;break;}arr=new Array(curDim);i=0;while(i<curDim){arr[i]={type:"Initializer_expr",shorthand:this.rt.defaultValue(type)};i++;}init.Initializers=arr;_context40.next=42;break;case 15:if(!(init.Initializers.length===1&&this.rt.isIntegerType(type))){_context40.next=24;break;}_context40.t0=this.rt;_context40.t1=type;return _context40.delegateYield(this.visit(this,init.Initializers[0].Expression,param),"t2",19);case 19:_context40.t3=_context40.t2;val=_context40.t0.cast.call(_context40.t0,_context40.t1,_context40.t3);if(val.v===-1||val.v===0){arr=new Array(curDim);i=0;while(i<curDim){arr[i]={type:"Initializer_expr",shorthand:this.rt.val(type,val.v)};i++;}init.Initializers=arr;}else{arr=new Array(curDim);arr[0]=this.rt.val(type,-1);i=1;while(i<curDim){arr[i]={type:"Initializer_expr",shorthand:this.rt.defaultValue(type)};i++;}init.Initializers=arr;}_context40.next=42;break;case 24:arr=new Array(curDim);i=0;case 26:if(!(i<init.Initializers.length)){_context40.next=39;break;}_init=init.Initializers[i];if(!("shorthand"in _init)){_context40.next=32;break;}initval=_init;_context40.next=35;break;case 32:return _context40.delegateYield(this.visit(this,_init.Expression,param),"t4",33);case 33:_context40.t5=_context40.t4;initval={type:"Initializer_expr",shorthand:_context40.t5};case 35:arr[i]=initval;i++;_context40.next=26;break;case 39:i=init.Initializers.length;while(i<curDim){arr[i]={type:"Initializer_expr",shorthand:this.rt.defaultValue(type)};i++;}init.Initializers=arr;case 42:_context40.next=56;break;case 44:if(!(init.type==="Initializer_expr")){_context40.next=55;break;}initializer=void 0;if(!("shorthand"in init)){_context40.next=50;break;}initializer=init.shorthand;_context40.next=52;break;case 50:return _context40.delegateYield(this.visit(this,init,param),"t6",51);case 51:initializer=_context40.t6;case 52:if(this.rt.isCharType(type)&&this.rt.isArrayType(initializer.t)&&this.rt.isCharType(initializer.t.eleType)){// string init
init={type:"Initializer_array",Initializers:initializer.v.target.map(function(e){return{type:"Initializer_expr",shorthand:e};})};}else{this.rt.raiseException("cannot initialize an array to "+this.rt.makeValString(initializer),init);}_context40.next=56;break;case 55:this.rt.raiseException("dimensions do not agree, "+curDim+" != "+init.Initializers.length);case 56:arr=[];ret=this.rt.val(this.arrayType(dimensions,level,type),this.rt.makeArrayPointerValue(arr,0),true);i=0;case 59:if(!(i<curDim)){_context40.next=70;break;}if(!(init&&i<init.Initializers.length)){_context40.next=65;break;}return _context40.delegateYield(this.arrayInit(dimensions,init.Initializers[i],level+1,type,param),"t7",62);case 62:arr[i]=_context40.t7;_context40.next=67;break;case 65:return _context40.delegateYield(this.arrayInit(dimensions,null,level+1,type,param),"t8",66);case 66:arr[i]=_context40.t8;case 67:i++;_context40.next=59;break;case 70:return _context40.abrupt("return",ret);case 73:if(init&&init.type!=="Initializer_expr"){this.rt.raiseException("dimensions do not agree, too few initializers",init);}if(!init){_context40.next=83;break;}if(!("shorthand"in init)){_context40.next=79;break;}initval=init.shorthand;_context40.next=81;break;case 79:return _context40.delegateYield(this.visit(this,init.Expression,param),"t9",80);case 80:initval=_context40.t9;case 81:_context40.next=84;break;case 83:initval=this.rt.defaultValue(type);case 84:ret=this.rt.cast(type,initval);ret.left=true;return _context40.abrupt("return",ret);case 87:case"end":return _context40.stop();}}},_callee4,this);});Interpreter.prototype.arrayType=function(dimensions,level,type){if(dimensions.length>level){return this.rt.arrayPointerType(this.arrayType(dimensions,level+1,type),dimensions[level]);}else{return type;}};Interpreter.prototype.buildRecursivePointerType=function(pointer,basetype,level){var type;if(pointer&&pointer.length>level){type=this.rt.normalPointerType(basetype);return this.buildRecursivePointerType(pointer,type,level+1);}else{return basetype;}};module.exports=Interpreter;},{}],16:[function(require,module,exports){(function(process){//logger = require("tracer").colorConsole();
var CRuntime,Debugger,Interpreter,PEGUtil,alias,ast,headerAlias,includes,_mergeConfig,preprocessor,realName;CRuntime=require("./rt");Interpreter=require("./interpreter");ast=require("./ast");preprocessor=require("./preprocessor");Debugger=require("./debugger");PEGUtil=require("pegjs-util");_mergeConfig=function mergeConfig(a,b){var o;for(o in b){if(o in a&&_typeof(b[o])==="object"){_mergeConfig(a[o],b[o]);}else{a[o]=b[o];}}};includes={iostream:require("./includes/iostream"),cctype:require("./includes/cctype"),cstring:require("./includes/cstring"),cmath:require("./includes/cmath"),cstdio:require("./includes/cstdio"),cstdlib:require("./includes/cstdlib"),ctime:require("./includes/ctime"),iomanip:require("./includes/iomanip"),foo:require("./includes/dummy_class_foo")};headerAlias={"ctype.h":"cctype","string.h":"cstring","math.h":"cmath","stdio.h":"cstdio","stdlib.h":"cstdlib","time.h":"ctime"};for(alias in headerAlias){realName=headerAlias[alias];includes[alias]=includes[realName];}module.exports={includes:includes,run:function run(code,input,config){var _config,defGen,inputbuffer,interpreter,mainGen,mydebugger,result,rt,self,step;inputbuffer=input.toString();self=this;_config={stdio:{drain:function drain(){var x;x=inputbuffer;inputbuffer=null;return x;},write:function write(s){process.stdout.write(s);}},includes:self.includes};_mergeConfig(_config,config);rt=new CRuntime(_config);code=code.toString();code=preprocessor.parse(rt,code);mydebugger=new Debugger();if(_config.debug){mydebugger.src=code;}result=PEGUtil.parse(ast,code);if(result.error!=null){throw"ERROR: Parsing Failure:\n"+PEGUtil.errorMessage(result.error,true);}interpreter=new Interpreter(rt);defGen=interpreter.run(result.ast,code);while(true){step=defGen.next();if(step.done){break;}}mainGen=rt.getFunc("global","main",[])(rt,null);if(_config.debug){mydebugger.start(rt,mainGen);return mydebugger;}else{while(true){step=mainGen.next();if(step.done){break;}}return step.value.v;}}};}).call(this,require('_process'));},{"./ast":1,"./debugger":2,"./includes/cctype":4,"./includes/cmath":5,"./includes/cstdio":6,"./includes/cstdlib":7,"./includes/cstring":8,"./includes/ctime":9,"./includes/dummy_class_foo":10,"./includes/iomanip":11,"./includes/iostream":12,"./interpreter":15,"./preprocessor":19,"./rt":20,"_process":364,"pegjs-util":361}],17:[function(require,module,exports){module.exports=require("./launcher");},{"./launcher":16}],18:[function(require,module,exports){module.exports=function(){"use strict";
/*
* Generated by PEG.js 0.9.0.
*
* http://pegjs.org/
*/
function peg$subclass(child,parent){function ctor(){this.constructor=child;}ctor.prototype=parent.prototype;child.prototype=new ctor();}function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError);}}peg$subclass(peg$SyntaxError,Error);function peg$parse(input){var options=arguments.length>1?arguments[1]:{},parser=this,peg$FAILED={},peg$startRuleFunctions={TranslationUnit:peg$parseTranslationUnit},peg$startRuleFunction=peg$parseTranslationUnit,peg$c0=function peg$c0(a,b){return addPositionInfo({type:'Code',val:a,space:b});},peg$c1=function peg$c1(a){return addPositionInfo({type:'TranslationUnit',lines:a});},peg$c2=function peg$c2(a,b){a.space=b;return a;},peg$c3=function peg$c3(a){return addPositionInfo({type:'PrepUndef',Identifier:a});},peg$c4=function peg$c4(a,b){return addPositionInfo({type:'PrepSimpleMacro',Identifier:a,Replacement:b});},peg$c5=function peg$c5(a,b,c){return addPositionInfo({type:'PrepFunctionMacro',Identifier:a,Args:b,Replacement:c});},peg$c6=function peg$c6(a){return a;},peg$c7=function peg$c7(a,b){return[a].concat(b);},peg$c8=function peg$c8(a,b,c){return{type:'PrepFunctionMacroCall',Identifier:a,Args:b,space:c};},peg$c9=function peg$c9(a){var ret=[];var lastString=null;for(var i=0;i<a.length;i++){if(a[i].type==='Seperator'){if(lastString===null){lastString=a[i];}else{lastString.val+=lastString.space+a[i].val;lastString.space=a[i].space;}}else{if(lastString!==null){ret.push(lastString);lastString=null;}ret.push(a[i]);}}if(lastString!==null)ret.push(lastString);return ret;},peg$c10=function peg$c10(a){return addPositionInfo({type:'PrepIncludeLib',name:a});},peg$c11=function peg$c11(a){return addPositionInfo({type:'PrepIncludeLocal',name:a});},peg$c12=/^[\/\\.]/,peg$c13={type:"class",value:"[/\\\\.]",description:"[/\\\\.]"},peg$c14=function peg$c14(a){return a.join('');},peg$c15=function peg$c15(a){return addPositionInfo({type:'PrepIfdef',Identifier:a});},peg$c16=function peg$c16(a){return addPositionInfo({type:'PrepIfndef',Identifier:a});},peg$c17=function peg$c17(){return addPositionInfo({type:'PrepEndif'});},peg$c18=function peg$c18(){return addPositionInfo({type:'PrepElse'});},peg$c19="#",peg$c20={type:"literal",value:"#",description:"\"#\""},peg$c21="define",peg$c22={type:"literal",value:"define",description:"\"define\""},peg$c23="undef",peg$c24={type:"literal",value:"undef",description:"\"undef\""},peg$c25="include",peg$c26={type:"literal",value:"include",description:"\"include\""},peg$c27="ifdef",peg$c28={type:"literal",value:"ifdef",description:"\"ifdef\""},peg$c29="ifndef",peg$c30={type:"literal",value:"ifndef",description:"\"ifndef\""},peg$c31="endif",peg$c32={type:"literal",value:"endif",description:"\"endif\""},peg$c33="else",peg$c34={type:"literal",value:"else",description:"\"else\""},peg$c35=function peg$c35(a){return a.join('');},peg$c36=/^[ \t\x0B\f]/,peg$c37={type:"class",value:"[ \\t\\u000B\\u000C]",description:"[ \\t\\u000B\\u000C]"},peg$c38=/^[ \n\r\t\x0B\f]/,peg$c39={type:"class",value:"[ \\n\\r\\t\\u000B\\u000C]",description:"[ \\n\\r\\t\\u000B\\u000C]"},peg$c40="/*",peg$c41={type:"literal",value:"/*",description:"\"/*\""},peg$c42="*/",peg$c43={type:"literal",value:"*/",description:"\"*/\""},peg$c44=function peg$c44(a){return'';},peg$c45="//",peg$c46={type:"literal",value:"//",description:"\"//\""},peg$c47="\n",peg$c48={type:"literal",value:"\n",description:"\"\\n\""},peg$c49="auto",peg$c50={type:"literal",value:"auto",description:"\"auto\""},peg$c51="break",peg$c52={type:"literal",value:"break",description:"\"break\""},peg$c53="case",peg$c54={type:"literal",value:"case",description:"\"case\""},peg$c55="char",peg$c56={type:"literal",value:"char",description:"\"char\""},peg$c57="const",peg$c58={type:"literal",value:"const",description:"\"const\""},peg$c59="continue",peg$c60={type:"literal",value:"continue",description:"\"continue\""},peg$c61="default",peg$c62={type:"literal",value:"default",description:"\"default\""},peg$c63="double",peg$c64={type:"literal",value:"double",description:"\"double\""},peg$c65="do",peg$c66={type:"literal",value:"do",description:"\"do\""},peg$c67="enum",peg$c68={type:"literal",value:"enum",description:"\"enum\""},peg$c69="extern",peg$c70={type:"literal",value:"extern",description:"\"extern\""},peg$c71="float",peg$c72={type:"literal",value:"float",description:"\"float\""},peg$c73="for",peg$c74={type:"literal",value:"for",description:"\"for\""},peg$c75="goto",peg$c76={type:"literal",value:"goto",description:"\"goto\""},peg$c77="if",peg$c78={type:"literal",value:"if",description:"\"if\""},peg$c79="int",peg$c80={type:"literal",value:"int",description:"\"int\""},peg$c81="inline",peg$c82={type:"literal",value:"inline",description:"\"inline\""},peg$c83="long",peg$c84={type:"literal",value:"long",description:"\"long\""},peg$c85="register",peg$c86={type:"literal",value:"register",description:"\"register\""},peg$c87="restrict",peg$c88={type:"literal",value:"restrict",description:"\"restrict\""},peg$c89="return",peg$c90={type:"literal",value:"return",description:"\"return\""},peg$c91="short",peg$c92={type:"literal",value:"short",description:"\"short\""},peg$c93="signed",peg$c94={type:"literal",value:"signed",description:"\"signed\""},peg$c95="sizeof",peg$c96={type:"literal",value:"sizeof",description:"\"sizeof\""},peg$c97="static",peg$c98={type:"literal",value:"static",description:"\"static\""},peg$c99="struct",peg$c100={type:"literal",value:"struct",description:"\"struct\""},peg$c101="switch",peg$c102={type:"literal",value:"switch",description:"\"switch\""},peg$c103="typedef",peg$c104={type:"literal",value:"typedef",description:"\"typedef\""},peg$c105="union",peg$c106={type:"literal",value:"union",description:"\"union\""},peg$c107="unsigned",peg$c108={type:"literal",value:"unsigned",description:"\"unsigned\""},peg$c109="void",peg$c110={type:"literal",value:"void",description:"\"void\""},peg$c111="volatile",peg$c112={type:"literal",value:"volatile",description:"\"volatile\""},peg$c113="while",peg$c114={type:"literal",value:"while",description:"\"while\""},peg$c115="_Bool",peg$c116={type:"literal",value:"_Bool",description:"\"_Bool\""},peg$c117="_Complex",peg$c118={type:"literal",value:"_Complex",description:"\"_Complex\""},peg$c119="_stdcall",peg$c120={type:"literal",value:"_stdcall",description:"\"_stdcall\""},peg$c121="__declspec",peg$c122={type:"literal",value:"__declspec",description:"\"__declspec\""},peg$c123="__attribute__",peg$c124={type:"literal",value:"__attribute__",description:"\"__attribute__\""},peg$c125="namespace",peg$c126={type:"literal",value:"namespace",description:"\"namespace\""},peg$c127="using",peg$c128={type:"literal",value:"using",description:"\"using\""},peg$c129="true",peg$c130={type:"literal",value:"true",description:"\"true\""},peg$c131="false",peg$c132={type:"literal",value:"false",description:"\"false\""},peg$c133="_Imaginary",peg$c134={type:"literal",value:"_Imaginary",description:"\"_Imaginary\""},peg$c135=function peg$c135(a,b,c){return{type:'Identifier',val:a+b.join(''),space:c};},peg$c136=/^[\r\n,)]/,peg$c137={type:"class",value:"[\\r\\n,)]",description:"[\\r\\n,)]"},peg$c138=function peg$c138(a,b){return{type:'Seperator',val:a,space:b};},peg$c139=/^[\r\n]/,peg$c140={type:"class",value:"[\\r\\n]",description:"[\\r\\n]"},peg$c141=function peg$c141(a,b){return{type:'Seperator',val:handleConstant(input,a),space:b};},peg$c142=/^[a-z]/,peg$c143={type:"class",value:"[a-z]",description:"[a-z]"},peg$c144=/^[A-Z]/,peg$c145={type:"class",value:"[A-Z]",description:"[A-Z]"},peg$c146=/^[_]/,peg$c147={type:"class",value:"[_]",description:"[_]"},peg$c148=/^[0-9]/,peg$c149={type:"class",value:"[0-9]",description:"[0-9]"},peg$c150="\\u",peg$c151={type:"literal",value:"\\u",description:"\"\\\\u\""},peg$c152=function peg$c152(a){return String.fromCharCode(a);},peg$c153="\\U",peg$c154={type:"literal",value:"\\U",description:"\"\\\\U\""},peg$c155=function peg$c155(a){return parseInt(a.join(''),16);},peg$c156=/^[a-f]/,peg$c157={type:"class",value:"[a-f]",description:"[a-f]"},peg$c158=/^[A-F]/,peg$c159={type:"class",value:"[A-F]",description:"[A-F]"},peg$c160=function peg$c160(a){return a;},peg$c161=function peg$c161(a,b){return a;},peg$c162=/^[1-9]/,peg$c163={type:"class",value:"[1-9]",description:"[1-9]"},peg$c164=function peg$c164(a,b){return addPositionInfo({type:'DecimalConstant',value:a+b.join("")});},peg$c165="0",peg$c166={type:"literal",value:"0",description:"\"0\""},peg$c167=/^[0-7]/,peg$c168={type:"class",value:"[0-7]",description:"[0-7]"},peg$c169=function peg$c169(a){if(a.length>0)return addPositionInfo({type:'OctalConstant',value:a.join("")});else return addPositionInfo({type:'OctalConstant',value:'0'});},peg$c170=function peg$c170(a){return addPositionInfo({type:'HexConstant',value:a.join("")});},peg$c171="0x",peg$c172={type:"literal",value:"0x",description:"\"0x\""},peg$c173="0X",peg$c174={type:"literal",value:"0X",description:"\"0X\""},peg$c175="0b",peg$c176={type:"literal",value:"0b",description:"\"0b\""},peg$c177=/^[0-1]/,peg$c178={type:"class",value:"[0-1]",description:"[0-1]"},peg$c179=function peg$c179(a){return addPositionInfo({type:'BinaryConstant',value:a.join("")});},peg$c180=/^[uU]/,peg$c181={type:"class",value:"[uU]",description:"[uU]"},peg$c182="ll",peg$c183={type:"literal",value:"ll",description:"\"ll\""},peg$c184="LL",peg$c185={type:"literal",value:"LL",description:"\"LL\""},peg$c186=/^[lL]/,peg$c187={type:"class",value:"[lL]",description:"[lL]"},peg$c188=function peg$c188(a,b){if(b)return addPositionInfo({type:'FloatConstant',Expression:a});else return a;},peg$c189=function peg$c189(a,b){return addPositionInfo({type:'DecimalFloatConstant',value:a+b||''});},peg$c190=function peg$c190(a,b){return addPositionInfo({type:'DecimalFloatConstant',value:a.join('')+b});},peg$c191=function peg$c191(a,b,c){return addPositionInfo({type:'HexFloatConstant',value:a+b+c||''});},peg$c192=function peg$c192(a,b,c){return addPositionInfo({type:'HexFloatConstant',value:a+b.join('')+c});},peg$c193=".",peg$c194={type:"literal",value:".",description:"\".\""},peg$c195=function peg$c195(a,b){return a.join('')+'.'+b.join('');},peg$c196=function peg$c196(a){return a.join('')+'.';},peg$c197=/^[eE]/,peg$c198={type:"class",value:"[eE]",description:"[eE]"},peg$c199=/^[+\-]/,peg$c200={type:"class",value:"[+\\-]",description:"[+\\-]"},peg$c201=function peg$c201(a,b,c){return a+(b||"")+c.join('');},peg$c202=/^[pP]/,peg$c203={type:"class",value:"[pP]",description:"[pP]"},peg$c204=function peg$c204(a,b){return a+b.join('');},peg$c205=/^[flFL]/,peg$c206={type:"class",value:"[flFL]",description:"[flFL]"},peg$c207=function peg$c207(a){return addPositionInfo({type:'EnumerationConstant',Identifier:a});},peg$c208="L",peg$c209={type:"literal",value:"L",description:"\"L\""},peg$c210="'",peg$c211={type:"literal",value:"'",description:"\"'\""},peg$c212=function peg$c212(a){return addPositionInfo({type:'CharacterConstant',Char:a});},peg$c213=/^['\n\\]/,peg$c214={type:"class",value:"['\\n\\\\]",description:"['\\n\\\\]"},peg$c215="\\",peg$c216={type:"literal",value:"\\",description:"\"\\\\\""},peg$c217=/^['"?\\abfnrtv]/,peg$c218={type:"class",value:"['\\\"?\\\\abfnrtv]",description:"['\\\"?\\\\abfnrtv]"},peg$c219=function peg$c219(a,b){return eval('"'+a+b+'"');},peg$c220=function peg$c220(a,b,c,d){var ret="\"";ret+=a;ret+=b;if(c)ret+=c;if(d)ret+=d;ret+="\"";return eval(ret);},peg$c221="\\x",peg$c222={type:"literal",value:"\\x",description:"\"\\\\x\""},peg$c223=function peg$c223(a,b){return eval('"'+a+b.join('')+'"');},peg$c224="u8",peg$c225={type:"literal",value:"u8",description:"\"u8\""},peg$c226="u",peg$c227={type:"literal",value:"u",description:"\"u\""},peg$c228="U",peg$c229={type:"literal",value:"U",description:"\"U\""},peg$c230=function peg$c230(a,b){return addPositionInfo({type:'StringLiteral',prefix:a,value:b});},peg$c231="R",peg$c232={type:"literal",value:"R",description:"\"R\""},peg$c233=/^["]/,peg$c234={type:"class",value:"[\"]",description:"[\"]"},peg$c235=function peg$c235(a){return a.join('');},peg$c236=/^["\n]/,peg$c237={type:"class",value:"[\\\"\\n]",description:"[\\\"\\n]"},peg$c238=/^["\n\\]/,peg$c239={type:"class",value:"[\\\"\\n\\\\]",description:"[\\\"\\n\\\\]"},peg$c240="(",peg$c241={type:"literal",value:"(",description:"\"(\""},peg$c242=")",peg$c243={type:"literal",value:")",description:"\")\""},peg$c244=",",peg$c245={type:"literal",value:",",description:"\",\""},peg$c246="<",peg$c247={type:"literal",value:"<",description:"\"<\""},peg$c248=/^[=]/,peg$c249={type:"class",value:"[=]",description:"[=]"},peg$c250=">",peg$c251={type:"literal",value:">",description:"\">\""},peg$c252="\"",peg$c253={type:"literal",value:"\"",description:"\"\\\"\""},peg$c254={type:"any",description:"any character"},peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1,seenCR:false}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions)){throw new Error("Can't start parsing from rule \""+options.startRule+"\".");}peg$startRuleFunction=peg$startRuleFunctions[options.startRule];}function text(){return input.substring(peg$savedPos,peg$currPos);}function location(){return peg$computeLocation(peg$savedPos,peg$currPos);}function expected(description){throw peg$buildException(null,[{type:"other",description:description}],input.substring(peg$savedPos,peg$currPos),peg$computeLocation(peg$savedPos,peg$currPos));}function error(message){throw peg$buildException(message,null,input.substring(peg$savedPos,peg$currPos),peg$computeLocation(peg$savedPos,peg$currPos));}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos],p,ch;if(details){return details;}else{p=pos-1;while(!peg$posDetailsCache[p]){p--;}details=peg$posDetailsCache[p];details={line:details.line,column:details.column,seenCR:details.seenCR};while(p<pos){ch=input.charAt(p);if(ch==="\n"){if(!details.seenCR){details.line++;}details.column=1;details.seenCR=false;}else if(ch==="\r"||ch==="\u2028"||ch==="\u2029"){details.line++;details.column=1;details.seenCR=true;}else{details.column++;details.seenCR=false;}p++;}peg$posDetailsCache[pos]=details;return details;}}function peg$computeLocation(startPos,endPos){var startPosDetails=peg$computePosDetails(startPos),endPosDetails=peg$computePosDetails(endPos);return{start:{offset:startPos,line:startPosDetails.line,column:startPosDetails.column},end:{offset:endPos,line:endPosDetails.line,column:endPosDetails.column}};}function peg$fail(expected){if(peg$currPos<peg$maxFailPos){return;}if(peg$currPos>peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[];}peg$maxFailExpected.push(expected);}function peg$buildException(message,expected,found,location){function cleanupExpected(expected){var i=1;expected.sort(function(a,b){if(a.description<b.description){return-1;}else if(a.description>b.description){return 1;}else{return 0;}});while(i<expected.length){if(expected[i-1]===expected[i]){expected.splice(i,1);}else{i++;}}}function buildMessage(expected,found){function stringEscape(s){function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase();}return s.replace(/\\/g,'\\\\').replace(/"/g,'\\"').replace(/\x08/g,'\\b').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\f/g,'\\f').replace(/\r/g,'\\r').replace(/[\x00-\x07\x0B\x0E\x0F]/g,function(ch){return'\\x0'+hex(ch);}).replace(/[\x10-\x1F\x80-\xFF]/g,function(ch){return'\\x'+hex(ch);}).replace(/[\u0100-\u0FFF]/g,function(ch){return"\\u0"+hex(ch);}).replace(/[\u1000-\uFFFF]/g,function(ch){return"\\u"+hex(ch);});}var expectedDescs=new Array(expected.length),expectedDesc,foundDesc,i;for(i=0;i<expected.length;i++){expectedDescs[i]=expected[i].description;}expectedDesc=expected.length>1?expectedDescs.slice(0,-1).join(", ")+" or "+expectedDescs[expected.length-1]:expectedDescs[0];foundDesc=found?"\""+stringEscape(found)+"\"":"end of input";return"Expected "+expectedDesc+" but "+foundDesc+" found.";}if(expected!==null){cleanupExpected(expected);}return new peg$SyntaxError(message!==null?message:buildMessage(expected,found),expected,found,location);}function peg$parseTranslationUnit(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseSpacing();if(s1!==peg$FAILED){s2=[];s3=peg$parsePreprocessor();if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parsePrepMacroText();if(s4!==peg$FAILED){s5=peg$parseSpacing();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c0(s4,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parsePreprocessor();if(s3===peg$FAILED){s3=peg$currPos;s4=peg$parsePrepMacroText();if(s4!==peg$FAILED){s5=peg$parseSpacing();if(s5!==peg$FAILED){peg$savedPos=s3;s4=peg$c0(s4,s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseEOT();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePreprocessor(){var s0,s1,s2;s0=peg$currPos;s1=peg$parsePrepDefine();if(s1===peg$FAILED){s1=peg$parsePrepInclude();if(s1===peg$FAILED){s1=peg$parseConditionalInclusion();}}if(s1!==peg$FAILED){s2=peg$parseSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c2(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepDefine(){var s0;s0=peg$parsePrepFunctionMacro();if(s0===peg$FAILED){s0=peg$parsePrepSimpleMacro();if(s0===peg$FAILED){s0=peg$parsePrepUndef();}}return s0;}function peg$parsePrepUndef(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseUNDEF();if(s2!==peg$FAILED){s3=peg$parseIdentifier();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c3(s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepSimpleMacro(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseDEFINE();if(s2!==peg$FAILED){s3=peg$parseIdentifier();if(s3!==peg$FAILED){s4=peg$parsePrepMacroText();if(s4===peg$FAILED){s4=null;}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c4(s3,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepFunctionMacro(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseDEFINE();if(s2!==peg$FAILED){s3=peg$parseIdentifier();if(s3!==peg$FAILED){s4=peg$parsePrepFunctionMacroArgs();if(s4!==peg$FAILED){s5=peg$parsePrepMacroText();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c5(s3,s4,s5);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepFunctionMacroArgs(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=peg$parseLPAR();if(s1!==peg$FAILED){s2=peg$parseIdentifier();if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseCOMMA();if(s5!==peg$FAILED){s6=peg$parseIdentifier();if(s6!==peg$FAILED){peg$savedPos=s4;s5=peg$c6(s6);s4=s5;}else{peg$currPos=s4;s4=peg$FAILED;}}else{peg$currPos=s4;s4=peg$FAILED;}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseCOMMA();if(s5!==peg$FAILED){s6=peg$parseIdentifier();if(s6!==peg$FAILED){peg$savedPos=s4;s5=peg$c6(s6);s4=s5;}else{peg$currPos=s4;s4=peg$FAILED;}}else{peg$currPos=s4;s4=peg$FAILED;}}if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c7(s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepFunctionMacroCallArgs(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=peg$parseLPAR();if(s1!==peg$FAILED){s2=peg$parsePrepMacroMacroCallText();if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseCOMMA();if(s5!==peg$FAILED){s6=peg$parsePrepMacroMacroCallText();if(s6!==peg$FAILED){peg$savedPos=s4;s5=peg$c6(s6);s4=s5;}else{peg$currPos=s4;s4=peg$FAILED;}}else{peg$currPos=s4;s4=peg$FAILED;}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseCOMMA();if(s5!==peg$FAILED){s6=peg$parsePrepMacroMacroCallText();if(s6!==peg$FAILED){peg$savedPos=s4;s5=peg$c6(s6);s4=s5;}else{peg$currPos=s4;s4=peg$FAILED;}}else{peg$currPos=s4;s4=peg$FAILED;}}if(s3!==peg$FAILED){s4=peg$parseRPAR();if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c7(s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepMacroMacroCallText(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=[];s2=peg$currPos;s3=peg$parseIdentifier();if(s3!==peg$FAILED){s4=peg$parsePrepFunctionMacroCallArgs();if(s4!==peg$FAILED){s5=peg$parseInlineSpacing();if(s5!==peg$FAILED){peg$savedPos=s2;s3=peg$c8(s3,s4,s5);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=peg$parseIdentifier();if(s2===peg$FAILED){s2=peg$parseSeperatorArgs();}}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$currPos;s3=peg$parseIdentifier();if(s3!==peg$FAILED){s4=peg$parsePrepFunctionMacroCallArgs();if(s4!==peg$FAILED){s5=peg$parseInlineSpacing();if(s5!==peg$FAILED){peg$savedPos=s2;s3=peg$c8(s3,s4,s5);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=peg$parseIdentifier();if(s2===peg$FAILED){s2=peg$parseSeperatorArgs();}}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c9(s1);}s0=s1;return s0;}function peg$parsePrepMacroText(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=[];s2=peg$currPos;s3=peg$parseIdentifier();if(s3!==peg$FAILED){s4=peg$parsePrepFunctionMacroCallArgs();if(s4!==peg$FAILED){s5=peg$parseInlineSpacing();if(s5!==peg$FAILED){peg$savedPos=s2;s3=peg$c8(s3,s4,s5);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=peg$parseIdentifier();if(s2===peg$FAILED){s2=peg$parseSeperator();}}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$currPos;s3=peg$parseIdentifier();if(s3!==peg$FAILED){s4=peg$parsePrepFunctionMacroCallArgs();if(s4!==peg$FAILED){s5=peg$parseInlineSpacing();if(s5!==peg$FAILED){peg$savedPos=s2;s3=peg$c8(s3,s4,s5);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2===peg$FAILED){s2=peg$parseIdentifier();if(s2===peg$FAILED){s2=peg$parseSeperator();}}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c9(s1);}s0=s1;return s0;}function peg$parsePrepInclude(){var s0;s0=peg$parsePrepIncludeLib();if(s0===peg$FAILED){s0=peg$parsePrepIncludeLocal();}return s0;}function peg$parsePrepIncludeLib(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseINCLUDE();if(s2!==peg$FAILED){s3=peg$parseLT();if(s3!==peg$FAILED){s4=peg$parseFilename();if(s4!==peg$FAILED){s5=peg$parseGT();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c10(s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepIncludeLocal(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseINCLUDE();if(s2!==peg$FAILED){s3=peg$parseQUO();if(s3!==peg$FAILED){s4=peg$parseFilename();if(s4!==peg$FAILED){s5=peg$parseQUO();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c11(s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFilename(){var s0,s1,s2;s0=peg$currPos;s1=[];s2=peg$parseIdChar();if(s2===peg$FAILED){if(peg$c12.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c13);}}}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseIdChar();if(s2===peg$FAILED){if(peg$c12.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c13);}}}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c14(s1);}s0=s1;return s0;}function peg$parseConditionalInclusion(){var s0;s0=peg$parsePrepIfdef();if(s0===peg$FAILED){s0=peg$parsePrepIfndef();if(s0===peg$FAILED){s0=peg$parsePrepEndif();if(s0===peg$FAILED){s0=peg$parsePrepElse();}}}return s0;}function peg$parsePrepIfdef(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseIFDEF();if(s2!==peg$FAILED){s3=peg$parseIdentifier();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c15(s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepIfndef(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseIFNDEF();if(s2!==peg$FAILED){s3=peg$parseIdentifier();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c16(s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepEndif(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseENDIF();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c17();s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parsePrepElse(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseSHARP();if(s1!==peg$FAILED){s2=peg$parseELSE();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c18();s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSHARP(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c19;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c20);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDEFINE(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c21){s1=peg$c21;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c22);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUNDEF(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c23){s1=peg$c23;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c24);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseINCLUDE(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c25){s1=peg$c25;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c26);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIFDEF(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c27){s1=peg$c27;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c28);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIFNDEF(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c29){s1=peg$c29;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c30);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseENDIF(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c31){s1=peg$c31;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c32);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseELSE(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c33){s1=peg$c33;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c34);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseInlineSpacing(){var s0,s1,s2;s0=peg$currPos;s1=[];s2=peg$parseInlineWhiteSpace();if(s2===peg$FAILED){s2=peg$parseLongComment();if(s2===peg$FAILED){s2=peg$parseLineComment();}}while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseInlineWhiteSpace();if(s2===peg$FAILED){s2=peg$parseLongComment();if(s2===peg$FAILED){s2=peg$parseLineComment();}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c35(s1);}s0=s1;return s0;}function peg$parseSpacing(){var s0,s1,s2;s0=peg$currPos;s1=[];s2=peg$parseWhiteSpace();if(s2===peg$FAILED){s2=peg$parseLongComment();if(s2===peg$FAILED){s2=peg$parseLineComment();}}while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseWhiteSpace();if(s2===peg$FAILED){s2=peg$parseLongComment();if(s2===peg$FAILED){s2=peg$parseLineComment();}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c35(s1);}s0=s1;return s0;}function peg$parseInlineWhiteSpace(){var s0,s1;s0=peg$currPos;if(peg$c36.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c37);}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);}s0=s1;return s0;}function peg$parseWhiteSpace(){var s0,s1;s0=peg$currPos;if(peg$c38.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c39);}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);}s0=s1;return s0;}function peg$parseLongComment(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c40){s1=peg$c40;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c41);}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c42){s5=peg$c42;peg$currPos+=2;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c43);}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0;}else{peg$currPos=s4;s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parse_();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c42){s5=peg$c42;peg$currPos+=2;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c43);}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0;}else{peg$currPos=s4;s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parse_();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c42){s3=peg$c42;peg$currPos+=2;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c43);}}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c44(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLineComment(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c45){s1=peg$c45;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c46);}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.charCodeAt(peg$currPos)===10){s5=peg$c47;peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48);}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0;}else{peg$currPos=s4;s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parse_();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.charCodeAt(peg$currPos)===10){s5=peg$c47;peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48);}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0;}else{peg$currPos=s4;s4=peg$FAILED;}if(s4!==peg$FAILED){s5=peg$parse_();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c44(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseAUTO(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c49){s1=peg$c49;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c50);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseBREAK(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c51){s1=peg$c51;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c52);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCASE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c53){s1=peg$c53;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c54);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCHAR(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c55){s1=peg$c55;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c56);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCONST(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c57){s1=peg$c57;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c58);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCONTINUE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c59){s1=peg$c59;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c60);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDEFAULT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c61){s1=peg$c61;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c62);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDOUBLE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c63){s1=peg$c63;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c64);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDO(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c65){s1=peg$c65;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c66);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseELSE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c33){s1=peg$c33;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c34);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseENUM(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c67){s1=peg$c67;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c68);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEXTERN(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c69){s1=peg$c69;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c70);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFLOAT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c71){s1=peg$c71;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c72);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFOR(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c73){s1=peg$c73;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c74);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseGOTO(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c75){s1=peg$c75;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c76);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIF(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c77){s1=peg$c77;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c78);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseINT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c79){s1=peg$c79;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c80);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseINLINE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c81){s1=peg$c81;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c82);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLONG(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c83){s1=peg$c83;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c84);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseREGISTER(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c85){s1=peg$c85;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c86);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRESTRICT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c87){s1=peg$c87;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c88);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRETURN(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c89){s1=peg$c89;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c90);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSHORT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c91){s1=peg$c91;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c92);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSIGNED(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c93){s1=peg$c93;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c94);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSIZEOF(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c95){s1=peg$c95;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c96);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSTATIC(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c97){s1=peg$c97;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c98);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSTRUCT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c99){s1=peg$c99;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c100);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSWITCH(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c101){s1=peg$c101;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c102);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseTYPEDEF(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c103){s1=peg$c103;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c104);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUNION(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c105){s1=peg$c105;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c106);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUNSIGNED(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c107){s1=peg$c107;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c108);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseVOID(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c109){s1=peg$c109;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c110);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseVOLATILE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c111){s1=peg$c111;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c112);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseWHILE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c113){s1=peg$c113;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c114);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseBOOL(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c115){s1=peg$c115;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c116);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCOMPLEX(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c117){s1=peg$c117;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c118);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSTDCALL(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c119){s1=peg$c119;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c120);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDECLSPEC(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c121){s1=peg$c121;peg$currPos+=10;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c122);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseATTRIBUTE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c123){s1=peg$c123;peg$currPos+=13;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c124);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseNAMESPACE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c125){s1=peg$c125;peg$currPos+=9;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c126);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseUSING(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c127){s1=peg$c127;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c128);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseTRUE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c129){s1=peg$c129;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c130);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFALSE(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c131){s1=peg$c131;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c132);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseKeyword(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c49){s1=peg$c49;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c50);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c51){s1=peg$c51;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c52);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c53){s1=peg$c53;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c54);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c55){s1=peg$c55;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c56);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c57){s1=peg$c57;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c58);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c59){s1=peg$c59;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c60);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c61){s1=peg$c61;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c62);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c63){s1=peg$c63;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c64);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c65){s1=peg$c65;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c66);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c33){s1=peg$c33;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c34);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c67){s1=peg$c67;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c68);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c69){s1=peg$c69;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c70);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c71){s1=peg$c71;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c72);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c73){s1=peg$c73;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c74);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c75){s1=peg$c75;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c76);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c77){s1=peg$c77;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c78);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c79){s1=peg$c79;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c80);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c81){s1=peg$c81;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c82);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c83){s1=peg$c83;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c84);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c85){s1=peg$c85;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c86);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c87){s1=peg$c87;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c88);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c89){s1=peg$c89;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c90);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c91){s1=peg$c91;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c92);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c93){s1=peg$c93;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c94);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c95){s1=peg$c95;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c96);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c97){s1=peg$c97;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c98);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c99){s1=peg$c99;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c100);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c101){s1=peg$c101;peg$currPos+=6;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c102);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c103){s1=peg$c103;peg$currPos+=7;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c104);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c105){s1=peg$c105;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c106);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c107){s1=peg$c107;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c108);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c109){s1=peg$c109;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c110);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c111){s1=peg$c111;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c112);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c113){s1=peg$c113;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c114);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c115){s1=peg$c115;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c116);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c117){s1=peg$c117;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c118);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c133){s1=peg$c133;peg$currPos+=10;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c134);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c119){s1=peg$c119;peg$currPos+=8;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c120);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c121){s1=peg$c121;peg$currPos+=10;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c122);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c123){s1=peg$c123;peg$currPos+=13;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c124);}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseIdChar();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIdentifier(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;s2=peg$parseKeyword();peg$silentFails--;if(s2===peg$FAILED){s1=void 0;}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parseIdNondigit();if(s2!==peg$FAILED){s3=[];s4=peg$parseIdChar();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseIdChar();}if(s3!==peg$FAILED){s4=peg$parseInlineSpacing();if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c135(s2,s3,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSeperatorArgs(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseKeyword();if(s1===peg$FAILED){s1=peg$currPos;s2=peg$currPos;peg$silentFails++;s3=peg$parseIdNondigit();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;if(peg$c136.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c137);}}peg$silentFails--;if(s4===peg$FAILED){s3=void 0;}else{peg$currPos=s3;s3=peg$FAILED;}if(s3!==peg$FAILED){s4=peg$parse_();if(s4!==peg$FAILED){peg$savedPos=s1;s2=peg$c6(s4);s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c138(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseSeperator(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseKeyword();if(s1===peg$FAILED){s1=peg$parseConstant();if(s1===peg$FAILED){s1=peg$parseStringLiteral();if(s1===peg$FAILED){s1=peg$currPos;s2=peg$currPos;peg$silentFails++;s3=peg$parseIdNondigit();peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;if(peg$c139.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c140);}}peg$silentFails--;if(s4===peg$FAILED){s3=void 0;}else{peg$currPos=s3;s3=peg$FAILED;}if(s3!==peg$FAILED){s4=peg$parse_();if(s4!==peg$FAILED){peg$savedPos=s1;s2=peg$c6(s4);s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c141(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIdNondigit(){var s0;if(peg$c142.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c143);}}if(s0===peg$FAILED){if(peg$c144.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c145);}}if(s0===peg$FAILED){if(peg$c146.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c147);}}if(s0===peg$FAILED){s0=peg$parseUniversalCharacter();}}}return s0;}function peg$parseIdChar(){var s0;if(peg$c142.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c143);}}if(s0===peg$FAILED){if(peg$c144.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c145);}}if(s0===peg$FAILED){if(peg$c148.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}if(s0===peg$FAILED){if(peg$c146.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c147);}}if(s0===peg$FAILED){s0=peg$parseUniversalCharacter();}}}}return s0;}function peg$parseUniversalCharacter(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c150){s1=peg$c150;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c151);}}if(s1!==peg$FAILED){s2=peg$parseHexQuad();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c152(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c153){s1=peg$c153;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c154);}}if(s1!==peg$FAILED){s2=peg$parseHexOcto();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c152(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseHexOcto(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$currPos;s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseHexDigit();if(s8!==peg$FAILED){s9=peg$parseHexDigit();if(s9!==peg$FAILED){s2=[s2,s3,s4,s5,s6,s7,s8,s9];s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c155(s1);}s0=s1;return s0;}function peg$parseHexQuad(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$currPos;s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s2=[s2,s3,s4,s5];s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c155(s1);}s0=s1;return s0;}function peg$parseHexDigit(){var s0;if(peg$c156.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c157);}}if(s0===peg$FAILED){if(peg$c158.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c159);}}if(s0===peg$FAILED){if(peg$c148.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}}return s0;}function peg$parseConstant(){var s0,s1;s0=peg$currPos;s1=peg$parseFloatConstant();if(s1===peg$FAILED){s1=peg$parseIntegerConstant();if(s1===peg$FAILED){s1=peg$parseEnumerationConstant();if(s1===peg$FAILED){s1=peg$parseCharacterConstant();if(s1===peg$FAILED){s1=peg$parseBooleanConstant();}}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);}s0=s1;return s0;}function peg$parseBooleanConstant(){var s0,s1;s0=peg$currPos;s1=peg$parseTRUE();if(s1===peg$FAILED){s1=peg$parseFALSE();}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c160(s1);}s0=s1;return s0;}function peg$parseIntegerConstant(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseBinaryConstant();if(s1===peg$FAILED){s1=peg$parseDecimalConstant();if(s1===peg$FAILED){s1=peg$parseHexConstant();if(s1===peg$FAILED){s1=peg$parseOctalConstant();}}}if(s1!==peg$FAILED){s2=peg$parseIntegerSuffix();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c161(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDecimalConstant(){var s0,s1,s2,s3;s0=peg$currPos;if(peg$c162.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c163);}}if(s1!==peg$FAILED){s2=[];if(peg$c148.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}while(s3!==peg$FAILED){s2.push(s3);if(peg$c148.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c164(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseOctalConstant(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===48){s1=peg$c165;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c166);}}if(s1!==peg$FAILED){s2=[];if(peg$c167.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c168);}}while(s3!==peg$FAILED){s2.push(s3);if(peg$c167.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c168);}}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c169(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseHexConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseHexPrefix();if(s1!==peg$FAILED){s2=[];s3=peg$parseHexDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseHexDigit();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c170(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseHexPrefix(){var s0;if(input.substr(peg$currPos,2)===peg$c171){s0=peg$c171;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c172);}}if(s0===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c173){s0=peg$c173;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c174);}}}return s0;}function peg$parseHexDigit(){var s0;if(peg$c156.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c157);}}if(s0===peg$FAILED){if(peg$c158.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c159);}}if(s0===peg$FAILED){if(peg$c148.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}}return s0;}function peg$parseBinaryPrefix(){var s0;if(input.substr(peg$currPos,2)===peg$c175){s0=peg$c175;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c176);}}return s0;}function peg$parseBinaryDigit(){var s0;if(peg$c177.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c178);}}return s0;}function peg$parseBinaryConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseBinaryPrefix();if(s1!==peg$FAILED){s2=[];s3=peg$parseBinaryDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseBinaryDigit();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c179(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseIntegerSuffix(){var s0,s1,s2;s0=peg$currPos;if(peg$c180.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c181);}}if(s1!==peg$FAILED){s2=peg$parseLsuffix();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseLsuffix();if(s1!==peg$FAILED){if(peg$c180.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c181);}}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseLsuffix(){var s0;if(input.substr(peg$currPos,2)===peg$c182){s0=peg$c182;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c183);}}if(s0===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c184){s0=peg$c184;peg$currPos+=2;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c185);}}if(s0===peg$FAILED){if(peg$c186.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c187);}}}}return s0;}function peg$parseFloatConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseDecimalFloatConstant();if(s1===peg$FAILED){s1=peg$parseHexFloatConstant();}if(s1!==peg$FAILED){s2=peg$parseFloatSuffix();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=peg$parseSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c188(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseDecimalFloatConstant(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseFraction();if(s1!==peg$FAILED){s2=peg$parseExponent();if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c189(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=[];if(peg$c148.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);if(peg$c148.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parseExponent();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c190(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseHexFloatConstant(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseHexPrefix();if(s1!==peg$FAILED){s2=peg$parseHexFraction();if(s2!==peg$FAILED){s3=peg$parseBinaryExponent();if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c191(s1,s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseHexPrefix();if(s1!==peg$FAILED){s2=[];s3=peg$parseHexDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseHexDigit();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseBinaryExponent();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c192(s1,s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseFraction(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=[];if(peg$c148.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}while(s2!==peg$FAILED){s1.push(s2);if(peg$c148.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c193;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c194);}}if(s2!==peg$FAILED){s3=[];if(peg$c148.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);if(peg$c148.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}}else{s3=peg$FAILED;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c195(s1,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=[];if(peg$c148.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);if(peg$c148.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c193;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c194);}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c14(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseHexFraction(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=[];s2=peg$parseHexDigit();while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseHexDigit();}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c193;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c194);}}if(s2!==peg$FAILED){s3=[];s4=peg$parseHexDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseHexDigit();}}else{s3=peg$FAILED;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c195(s1,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}if(s0===peg$FAILED){s0=peg$currPos;s1=[];s2=peg$parseHexDigit();if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseHexDigit();}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c193;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c194);}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c196(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseExponent(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(peg$c197.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c198);}}if(s1!==peg$FAILED){if(peg$c199.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c200);}}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=[];if(peg$c148.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);if(peg$c148.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}}else{s3=peg$FAILED;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c201(s1,s2,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseBinaryExponent(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(peg$c202.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c203);}}if(s1!==peg$FAILED){if(peg$c199.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c200);}}if(s2===peg$FAILED){s2=null;}if(s2!==peg$FAILED){s3=[];if(peg$c148.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);if(peg$c148.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c149);}}}}else{s3=peg$FAILED;}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c204(s1,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseFloatSuffix(){var s0,s1;s0=peg$currPos;if(peg$c205.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c206);}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);}s0=s1;return s0;}function peg$parseEnumerationConstant(){var s0,s1;s0=peg$currPos;s1=peg$parseIdentifier();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c207(s1);}s0=s1;return s0;}function peg$parseCharacterConstant(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===76){s1=peg$c208;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c209);}}if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===39){s2=peg$c210;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c211);}}if(s2!==peg$FAILED){s3=[];s4=peg$parseChar();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseChar();}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===39){s4=peg$c210;peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c211);}}if(s4!==peg$FAILED){s5=peg$parseSpacing();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c212(s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseChar(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseEscape();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c213.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c214);}}peg$silentFails--;if(s2===peg$FAILED){s1=void 0;}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseEscape(){var s0,s1;s0=peg$currPos;s1=peg$parseSimpleEscape();if(s1===peg$FAILED){s1=peg$parseOctalEscape();if(s1===peg$FAILED){s1=peg$parseHexEscape();if(s1===peg$FAILED){s1=peg$parseUniversalCharacter();}}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);}s0=s1;return s0;}function peg$parseSimpleEscape(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===92){s1=peg$c215;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c216);}}if(s1!==peg$FAILED){if(peg$c217.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c218);}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c219(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseOctalEscape(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===92){s1=peg$c215;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c216);}}if(s1!==peg$FAILED){if(peg$c167.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c168);}}if(s2!==peg$FAILED){if(peg$c167.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c168);}}if(s3===peg$FAILED){s3=null;}if(s3!==peg$FAILED){if(peg$c167.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c168);}}if(s4===peg$FAILED){s4=null;}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c220(s1,s2,s3,s4);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseHexEscape(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c221){s1=peg$c221;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c222);}}if(s1!==peg$FAILED){s2=[];s3=peg$parseHexDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseHexDigit();}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c223(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseStringLiteral(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===76){s1=peg$c208;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c209);}}if(s1===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c224){s1=peg$c224;peg$currPos+=2;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c225);}}if(s1===peg$FAILED){if(input.charCodeAt(peg$currPos)===117){s1=peg$c226;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c227);}}if(s1===peg$FAILED){if(input.charCodeAt(peg$currPos)===85){s1=peg$c228;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c229);}}}}}if(s1===peg$FAILED){s1=null;}if(s1!==peg$FAILED){s2=peg$parseRawStringLiteral();if(s2===peg$FAILED){s2=peg$parseEscapedStringLiteral();}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c230(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRawStringLiteral(){var s0,s1,s2,s3,s4,s5,s6,s7;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===82){s1=peg$c231;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c232);}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;if(peg$c233.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s4!==peg$FAILED){s5=[];s6=peg$parseRawStringChar();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseRawStringChar();}if(s5!==peg$FAILED){if(peg$c233.test(input.charAt(peg$currPos))){s6=input.charAt(peg$currPos);peg$currPos++;}else{s6=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s6!==peg$FAILED){s7=peg$parseSpacing();if(s7!==peg$FAILED){peg$savedPos=s3;s4=peg$c14(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;if(peg$c233.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s4!==peg$FAILED){s5=[];s6=peg$parseRawStringChar();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseRawStringChar();}if(s5!==peg$FAILED){if(peg$c233.test(input.charAt(peg$currPos))){s6=input.charAt(peg$currPos);peg$currPos++;}else{s6=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s6!==peg$FAILED){s7=peg$parseSpacing();if(s7!==peg$FAILED){peg$savedPos=s3;s4=peg$c14(s5);s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}}else{s2=peg$FAILED;}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c235(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEscapedStringLiteral(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;s1=[];s2=peg$currPos;if(peg$c233.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s3!==peg$FAILED){s4=[];s5=peg$parseStringChar();while(s5!==peg$FAILED){s4.push(s5);s5=peg$parseStringChar();}if(s4!==peg$FAILED){if(peg$c233.test(input.charAt(peg$currPos))){s5=input.charAt(peg$currPos);peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s5!==peg$FAILED){s6=peg$parseSpacing();if(s6!==peg$FAILED){peg$savedPos=s2;s3=peg$c14(s4);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$currPos;if(peg$c233.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s3!==peg$FAILED){s4=[];s5=peg$parseStringChar();while(s5!==peg$FAILED){s4.push(s5);s5=peg$parseStringChar();}if(s4!==peg$FAILED){if(peg$c233.test(input.charAt(peg$currPos))){s5=input.charAt(peg$currPos);peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c234);}}if(s5!==peg$FAILED){s6=peg$parseSpacing();if(s6!==peg$FAILED){peg$savedPos=s2;s3=peg$c14(s4);s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}}}else{s1=peg$FAILED;}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c235(s1);}s0=s1;return s0;}function peg$parseRawStringChar(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c236.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c237);}}peg$silentFails--;if(s2===peg$FAILED){s1=void 0;}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseStringChar(){var s0,s1,s2;s0=peg$parseEscape();if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c238.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c239);}}peg$silentFails--;if(s2===peg$FAILED){s1=void 0;}else{peg$currPos=s1;s1=peg$FAILED;}if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}return s0;}function peg$parseLPAR(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===40){s1=peg$c240;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c241);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseRPAR(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===41){s1=peg$c242;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c243);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseCOMMA(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===44){s1=peg$c244;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c245);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseLT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===60){s1=peg$c246;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c247);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c248.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c249);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseInlineSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseGT(){var s0,s1,s2,s3;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===62){s1=peg$c250;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c251);}}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;if(peg$c248.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c249);}}peg$silentFails--;if(s3===peg$FAILED){s2=void 0;}else{peg$currPos=s2;s2=peg$FAILED;}if(s2!==peg$FAILED){s3=peg$parseInlineSpacing();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseQUO(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===34){s1=peg$c252;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c253);}}if(s1!==peg$FAILED){s2=peg$parseInlineSpacing();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c6(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parseEOT(){var s0,s1;s0=peg$currPos;peg$silentFails++;s1=peg$parse_();peg$silentFails--;if(s1===peg$FAILED){s0=void 0;}else{peg$currPos=s0;s0=peg$FAILED;}return s0;}function peg$parse_(){var s0;if(input.length>peg$currPos){s0=input.charAt(peg$currPos);peg$currPos++;}else{s0=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c254);}}return s0;}function addPositionInfo(r){var posDetails=peg$computePosDetails(peg$currPos);r.eLine=posDetails.line;r.eColumn=posDetails.column;r.eOffset=peg$currPos;posDetails=peg$computePosDetails(peg$savedPos);r.sLine=posDetails.line;r.sColumn=posDetails.column;r.sOffset=peg$savedPos;return r;}function handleConstant(input,r){if(r.eOffset==null){return r;}return input.substring(r.sOffset,r.eOffset);}peg$result=peg$startRuleFunction();if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result;}else{if(peg$result!==peg$FAILED&&peg$currPos<input.length){peg$fail({type:"end",description:"end of input"});}throw peg$buildException(null,peg$maxFailExpected,peg$maxFailPos<input.length?input.charAt(peg$maxFailPos):null,peg$maxFailPos<input.length?peg$computeLocation(peg$maxFailPos,peg$maxFailPos+1):peg$computeLocation(peg$maxFailPos,peg$maxFailPos));}}return{SyntaxError:peg$SyntaxError,parse:peg$parse};}();},{}],19:[function(require,module,exports){var PEGUtil,Preprocessor,prepast;prepast=require("./prepast");PEGUtil=require("pegjs-util");Preprocessor=function Preprocessor(rt){var pushInc,self;pushInc=function pushInc(b){self.doinclude.push(self.doinclude[self.doinclude.length-1]&&b);};this.rt=rt;this.ret="";this.macros={};this.macroStack=[];this.doinclude=[true];self=this;this.visitors={TranslationUnit:function TranslationUnit(interp,s,code){var dec,i;i=0;while(i<s.lines.length){dec=s.lines[i];interp.visit(dec,code);interp.ret+=dec.space;i++;}return interp.ret;},Code:function Code(interp,s,code){var i,x;if(interp.doinclude[interp.doinclude.length-1]){i=0;while(i<s.val.length){x=interp.work(s.val[i]);interp.ret+=x;i++;}}},PrepSimpleMacro:function PrepSimpleMacro(interp,s,code){interp.newMacro(s.Identifier,s.Replacement);},PrepFunctionMacro:function PrepFunctionMacro(interp,s,code){interp.newMacroFunction(s.Identifier,s.Args,s.Replacement);},PrepIncludeLib:function PrepIncludeLib(interp,s,code){interp.rt.include(s.name);},PrepIncludeLocal:function PrepIncludeLocal(interp,s,code){var includes;includes=interp.rt.config.includes;if(s.name in includes){includes[s.name].load(interp.rt);}else{interp.rt.raiseException("cannot find file: "+s.name);}},PrepUndef:function PrepUndef(interp,s,code){if(interp.isMacroDefined(s.Identifier)){delete interp.macros[s.Identifier.val];}},PrepIfdef:function PrepIfdef(interp,s,code){pushInc(interp.isMacroDefined(s.Identifier));},PrepIfndef:function PrepIfndef(interp,s,code){pushInc(!interp.isMacroDefined(s.Identifier));},PrepElse:function PrepElse(interp,s,code){var x;if(interp.doinclude.length>1){x=interp.doinclude.pop();pushInc(!x);}else{interp.rt.raiseException("#else must be used after a #if");}},PrepEndif:function PrepEndif(interp,s,code){if(interp.doinclude.length>1){interp.doinclude.pop();}else{interp.rt.raiseException("#endif must be used after a #if");}},unknown:function unknown(interp,s,code){interp.rt.raiseException("unhandled syntax "+s.type);}};};Preprocessor.prototype.visit=function(s,code){var _node;if("type"in s){_node=this.currentNode;this.currentNode=s;if(s.type in this.visitors){return this.visitors[s.type](this,s,code);}else{return this.visitors["unknown"](this,s,code);}this.currentNode=_node;}else{this.currentNode=s;this.rt.raiseException("untyped syntax structure: "+JSON.stringify(s));}};Preprocessor.prototype.isMacroDefined=function(node){if(node.type==="Identifier"){return node.val in this.macros;}else{return node.Identifier.val in this.macros;}};Preprocessor.prototype.isMacro=function(node){return this.isMacroDefined(node)&&"val"in node&&this.macros[node.val].type==="simple";};Preprocessor.prototype.isMacroFunction=function(node){return this.isMacroDefined(node)&&"Identifier"in node&&this.macros[node.Identifier.val].type==="function";};Preprocessor.prototype.newMacro=function(id,replacement){if(this.isMacroDefined(id)){this.rt.raiseException("macro "+id.val+" is already defined");}this.macros[id.val]={type:"simple",replacement:replacement};};Preprocessor.prototype.newMacroFunction=function(id,args,replacement){if(this.isMacroDefined(id)){this.rt.raiseException("macro "+id.val+" is already defined");}this.macros[id.val]={type:"function",args:args,replacement:replacement};};Preprocessor.prototype.work=function(node){if(node.type==="Seperator"){return node.val+node.space;}else{if(node in this.macroStack){this.rt.raiseException("recursive macro detected");}this.macroStack.push(node);if(node.type==="Identifier"){return this.replaceMacro(node)+node.space;}else if(node.type==="PrepFunctionMacroCall"){return this.replaceMacroFunction(node);}this.macroStack.pop();}};Preprocessor.prototype.replaceMacro=function(id){var i,rep,ret,v;if(this.isMacro(id)){ret="";rep=this.macros[id.val].replacement;i=0;while(i<rep.length){v=this.work(rep[i]);ret+=v;i++;}return ret;}else{return id.val;}};Preprocessor.prototype.replaceMacroFunction=function(node){var argi,args,argsText,i,j,name,rep,ret,v,x;if(this.isMacroFunction(node)){name=node.Identifier.val;argsText=node.Args;rep=this.macros[name].replacement;args=this.macros[name].args;if(args.length===argsText.length){ret="";i=0;while(i<rep.length){if(rep[i].type==="Seperator"){v=this.work(rep[i]);ret+=v;}else{argi=-1;j=0;while(j<args.length){if(rep[i].type==="Identifier"&&args[j].val===rep[i].val){argi=j;break;}j++;}if(argi>=0){v="";j=0;while(j<argsText[argi].length){v+=this.work(argsText[argi][j]);j++;}ret+=v+rep[i].space;}else{v=this.work(rep[i]);ret+=v;}}i++;}return ret;}else{this.rt.raiseException("macro "+name+" requires "+args.length+" arguments ("+argsText.length+" given)");}}else{argsText=node.Args;v=[];i=0;while(i<argsText.length){x="";j=0;while(j<argsText[i].length){x+=this.work(argsText[i][j]);j++;}v.push(x);i++;}return node.Identifier.val+"("+v.join(",")+")"+node.space;}};Preprocessor.prototype.parse=function(code){var result;result=PEGUtil.parse(prepast,code);if(result.error!=null){throw"ERROR: Preprocessing Failure:\n"+PEGUtil.errorMessage(result.error,true);}this.rt.interp=this;return this.visit(result.ast,code);};module.exports={parse:function parse(rt,code){return new Preprocessor(rt).parse(code);}};},{"./prepast":18,"pegjs-util":361}],20:[function(require,module,exports){var CRuntime,Defaults,indexOf=[].indexOf;Defaults=require("./defaults");CRuntime=function CRuntime(config){var defaults,_mergeConfig2;_mergeConfig2=function mergeConfig(a,b){var o;for(o in b){if(o in a&&_typeof(b[o])==="object"){_mergeConfig2(a[o],b[o]);}else{a[o]=b[o];}}};defaults=new Defaults();this.config=defaults.config;_mergeConfig2(this.config,config);this.numericTypeOrder=defaults.numericTypeOrder;this.types=defaults.types;this.intTypeLiteral=this.primitiveType("int");this.unsignedintTypeLiteral=this.primitiveType("unsigned int");this.longTypeLiteral=this.primitiveType("long");this.floatTypeLiteral=this.primitiveType("float");this.doubleTypeLiteral=this.primitiveType("double");this.charTypeLiteral=this.primitiveType("char");this.unsignedcharTypeLiteral=this.primitiveType("unsigned char");this.boolTypeLiteral=this.primitiveType("bool");this.voidTypeLiteral=this.primitiveType("void");this.nullPointerValue=this.makeNormalPointerValue(null);this.voidPointerType=this.normalPointerType(this.voidTypeLiteral);this.nullPointer=this.val(this.voidPointerType,this.nullPointerValue);this.scope=[{"$name":"global"}];this.typedefs={};return this;};CRuntime.prototype.include=function(name){var includes,lib;includes=this.config.includes;if(name in includes){lib=includes[name];if(indexOf.call(this.config.loadedLibraries,name)>=0){return;}this.config.loadedLibraries.push(name);includes[name].load(this);}else{this.raiseException("cannot find library: "+name);}};CRuntime.prototype.getSize=function(element){var i,ret;ret=0;if(this.isArrayType(element.t)&&element.v.position===0){i=0;while(i<element.v.target.length){ret+=this.getSize(element.v.target[i]);i++;}}else{ret+=this.getSizeByType(element.t);}return ret;};CRuntime.prototype.getSizeByType=function(type){if(this.isPointerType(type)){return this.config.limits["pointer"].bytes;}else if(this.isPrimitiveType(type)){return this.config.limits[type.name].bytes;}else{this.raiseException("not implemented");}};CRuntime.prototype.getMember=function(l,r){var lt,ltsig,t;lt=l.t;if(this.isClassType(lt)){ltsig=this.getTypeSignature(lt);if(ltsig in this.types){t=this.types[ltsig];if(r in t){return{t:{type:"function"},v:{defineType:lt,name:r,bindThis:l}};}else if(r in l.v.members){return l.v.members[r];}}else{this.raiseException("type "+this.makeTypeString(lt)+" is unknown");}}else{this.raiseException("only a class can have members");}};CRuntime.prototype.defFunc=function(lt,name,retType,argTypes,argNames,stmts,interp,optionalArgs){var f,rt;rt=this;if(stmts!=null){f=/*#__PURE__*/regeneratorRuntime.mark(function f(rt,_this){var _len6,args,_key6,argValue,i,j,optionalArg,ref,ret,_args41=arguments;return regeneratorRuntime.wrap(function f$(_context41){while(1){switch(_context41.prev=_context41.next){case 0:for(_len6=_args41.length,args=new Array(_len6>2?_len6-2:0),_key6=2;_key6<_len6;_key6++){args[_key6-2]=_args41[_key6];}// logger.warn("calling function: %j", name);
rt.enterScope("function "+name);argNames.forEach(function(argName,i){rt.defVar(argName,argTypes[i],args[i]);});i=j=0,ref=optionalArgs.length;case 4:if(!(j<ref)){_context41.next=16;break;}optionalArg=optionalArgs[i];if(!(args[argNames.length+i]!=null)){_context41.next=10;break;}rt.defVar(optionalArg.name,optionalArg.type,args[argNames.length+i]);_context41.next=13;break;case 10:return _context41.delegateYield(interp.visit(interp,optionalArg.expression),"t0",11);case 11:argValue=_context41.t0;rt.defVar(optionalArg.name,optionalArg.type,rt.cast(optionalArg.type,argValue));case 13:i=j+=1;_context41.next=4;break;case 16:return _context41.delegateYield(interp.run(stmts,interp.source,{scope:"function"}),"t1",17);case 17:ret=_context41.t1;if(!rt.isTypeEqualTo(retType,rt.voidTypeLiteral)){if(ret instanceof Array&&ret[0]==="return"){ret=rt.cast(retType,ret[1]);}else{rt.raiseException("you must return a value");}}else{if(typeof ret==="Array"){if(ret[0]==="return"&&ret[1]){rt.raiseException("you cannot return a value from a void function");}}ret=void 0;}rt.exitScope("function "+name);// logger.warn("function: returing %j", ret);
return _context41.abrupt("return",ret);case 21:case"end":return _context41.stop();}}},f);});this.regFunc(f,lt,name,argTypes,retType,optionalArgs);}else{this.regFuncPrototype(lt,name,argTypes,retType,optionalArgs);}};CRuntime.prototype.makeParametersSignature=function(args){var i,ret;ret=new Array(args.length);i=0;while(i<args.length){ret[i]=this.getTypeSignature(args[i]);i++;}return ret.join(",");};CRuntime.prototype.getCompatibleFunc=function(lt,name,args){var _this3=this;var argsStr,compatibles,ltsig,reg,ret,sig,t,ts;ltsig=this.getTypeSignature(lt);if(ltsig in this.types){t=this.types[ltsig];if(name in t){// logger.info("method found");
ts=args.map(function(v){return v.t;});sig=this.makeParametersSignature(ts);if(sig in t[name]){ret=t[name][sig];}else{compatibles=[];reg=t[name]["reg"];Object.keys(reg).forEach(function(signature){var dts,i,newTs,ok,optionalArgs,regArgInfo;regArgInfo=reg[signature];dts=regArgInfo.args;optionalArgs=regArgInfo.optionalArgs;if(dts[dts.length-1]==="?"&&dts.length-1<=ts.length){newTs=ts.slice(0,dts.length-1);dts=dts.slice(0,-1);}else{newTs=ts;}if(dts.length<=newTs.length){ok=true;i=0;while(ok&&i<dts.length){ok=_this3.castable(newTs[i],dts[i]);i++;}while(ok&&i<newTs.length){ok=_this3.castable(newTs[i],optionalArgs[i-dts.length].type);i++;}if(ok){compatibles.push(t[name][_this3.makeParametersSignature(regArgInfo.args)]);}}});if(compatibles.length===0){if("#default"in t[name]){ret=t[name]["#default"];}else{argsStr=ts.map(function(v){return _this3.makeTypeString(v);}).join(",");this.raiseException("no method "+name+" in "+lt+" accepts "+argsStr);}}else if(compatibles.length>1){this.raiseException("ambiguous method invoking, "+compatibles.length+" compatible methods");}else{ret=compatibles[0];}}}else{this.raiseException("method "+name+" is not defined in "+this.makeTypeString(lt));}}else{this.raiseException("type "+this.makeTypeString(lt)+" is unknown");}if(ret==null){this.raiseException("method "+name+" does not seem to be implemented");}return ret;};CRuntime.prototype.matchVarArg=function(methods,sig){var _sig;for(_sig in methods){if(_sig[_sig.length-1]==="?"){_sig=_sig.slice(0,-1);if(sig.startsWith(_sig)){return methods[_sig];}}}return null;};CRuntime.prototype.getFunc=function(lt,name,args){var f,ltsig,method,sig,t;method=void 0;if(this.isPointerType(lt)||this.isFunctionType(lt)){f=void 0;if(this.isArrayType(lt)){f="pointer_array";}else if(this.isFunctionType(lt)){f="function";}else{f="pointer_normal";}t=null;if(name in this.types[f]){t=this.types[f];}else if(name in this.types["pointer"]){t=this.types["pointer"];}if(t){sig=this.makeParametersSignature(args);if(sig in t[name]){return t[name][sig];}else if((method=this.matchVarArg(t[name],sig))!==null){return method;}else if("#default"in t[name]){return t[name]["#default"];}else{this.raiseException("no method "+name+" in "+this.makeTypeString(lt)+" accepts ("+sig+")");}}}ltsig=this.getTypeSignature(lt);if(ltsig in this.types){t=this.types[ltsig];if(name in t){sig=this.makeParametersSignature(args);if(sig in t[name]){return t[name][sig];}else if((method=this.matchVarArg(t[name],sig))!==null){return method;}else if("#default"in t[name]){return t[name]["#default"];}else{this.raiseException("no method "+name+" in "+this.makeTypeString(lt)+" accepts ("+sig+")");}}else{this.raiseException("method "+name+" is not defined in "+this.makeTypeString(lt));}}else{if(this.isPointerType(lt)){this.raiseException("this pointer has no proper method overload");}else{this.raiseException("type "+this.makeTypeString(lt)+" is not defined");}}};CRuntime.prototype.makeOperatorFuncName=function(name){return"o(".concat(name,")");};CRuntime.prototype.regOperator=function(f,lt,name,args,retType){return this.regFunc(f,lt,this.makeOperatorFuncName(name),args,retType);};CRuntime.prototype.regFuncPrototype=function(lt,name,args,retType,optionalArgs){var base,ltsig,sig,t,type;ltsig=this.getTypeSignature(lt);if(ltsig in this.types){t=this.types[ltsig];if(!(name in t)){t[name]={};}if(!("reg"in t[name])){t[name]["reg"]={};}sig=this.makeParametersSignature(args);if(sig in t[name]){this.raiseException("method "+name+" with parameters ("+sig+") is already defined");}type=this.functionType(retType,args);if(lt==="global"){this.defVar(name,type,this.val(type,this.makeFunctionPointerValue(null,name,lt,args,retType)));}t[name][sig]=null;if((base=t[name]["reg"])[sig]==null){base[sig]={args:args,optionalArgs:optionalArgs};}}else{this.raiseException("type "+this.makeTypeString(lt)+" is unknown");}};CRuntime.prototype.regFunc=function(f,lt,name,args,retType,optionalArgs){var func,ltsig,sig,t,type;ltsig=this.getTypeSignature(lt);if(ltsig in this.types){optionalArgs||(optionalArgs=[]);t=this.types[ltsig];if(!(name in t)){t[name]={};}if(!("reg"in t[name])){t[name]["reg"]={};}sig=this.makeParametersSignature(args);if(sig in t[name]&&t[name][sig]!=null){this.raiseException("method "+name+" with parameters ("+sig+") is already defined");}type=this.functionType(retType,args);if(lt==="global"){if(this.varAlreadyDefined(name)){func=this.scope[0][name];if(func.v.target!==null){this.raiseException("global method "+name+" with parameters ("+sig+") is already defined");}else{func.v.target=f;}}else{this.defVar(name,type,this.val(type,this.makeFunctionPointerValue(f,name,lt,args,retType)));}}t[name][sig]=f;t[name]["reg"][sig]={args:args,optionalArgs:optionalArgs};}else{this.raiseException("type "+this.makeTypeString(lt)+" is unknown");}};CRuntime.prototype.registerTypedef=function(basttype,name){return this.typedefs[name]=basttype;};CRuntime.prototype.promoteNumeric=function(l,r){var rett,slt,slti,srt,srti;if(!this.isNumericType(l)||!this.isNumericType(r)){this.raiseException("you cannot promote (to) a non numeric type");}if(this.isTypeEqualTo(l,r)){if(this.isTypeEqualTo(l,this.boolTypeLiteral)){return this.intTypeLiteral;}if(this.isTypeEqualTo(l,this.charTypeLiteral)){return this.intTypeLiteral;}if(this.isTypeEqualTo(l,this.unsignedcharTypeLiteral)){return this.unsignedintTypeLiteral;}return l;}else if(this.isIntegerType(l)&&this.isIntegerType(r)){slt=this.getSignedType(l);srt=this.getSignedType(r);if(this.isTypeEqualTo(slt,srt)){rett=slt;}else{slti=this.numericTypeOrder.indexOf(slt.name);srti=this.numericTypeOrder.indexOf(srt.name);if(slti<=srti){if(this.isUnsignedType(l)&&this.isUnsignedType(r)){rett=r;}else{rett=srt;}}else{if(this.isUnsignedType(l)&&this.isUnsignedType(r)){rett=l;}else{rett=slt;}}}return rett;}else if(!this.isIntegerType(l)&&this.isIntegerType(r)){return l;}else if(this.isIntegerType(l)&&!this.isIntegerType(r)){return r;}else if(!this.isIntegerType(l)&&!this.isIntegerType(r)){return this.primitiveType("double");}};CRuntime.prototype.readVar=function(varname){var i,ret,vc;i=this.scope.length-1;while(i>=0){vc=this.scope[i];if(vc[varname]){ret=vc[varname];return ret;}i--;}this.raiseException("variable "+varname+" does not exist");};CRuntime.prototype.varAlreadyDefined=function(varname){var vc;vc=this.scope[this.scope.length-1];return varname in vc;};CRuntime.prototype.defVar=function(varname,type,initval){var vc;if(this.varAlreadyDefined(varname)){this.raiseException("variable "+varname+" already defined");}vc=this.scope[this.scope.length-1];// logger.log("defining variable: %j, %j", varname, type);
initval=this.clone(this.cast(type,initval),true);if(initval===void 0){vc[varname]=this.defaultValue(type);vc[varname].left=true;}else{vc[varname]=initval;vc[varname].left=true;}};CRuntime.prototype.inrange=function(type,value){var limit;if(this.isPrimitiveType(type)){limit=this.config.limits[type.name];return value<=limit.max&&value>=limit.min;}else{return true;}};CRuntime.prototype.isNumericType=function(type){return this.isFloatType(type)||this.isIntegerType(type);};CRuntime.prototype.isUnsignedType=function(type){if(typeof type==="string"){switch(type){case"unsigned char":case"unsigned short":case"unsigned short int":case"unsigned":case"unsigned int":case"unsigned long":case"unsigned long int":case"unsigned long long":case"unsigned long long int":return true;default:return false;}}else{return type.type==="primitive"&&this.isUnsignedType(type.name);}};CRuntime.prototype.isIntegerType=function(type){if(typeof type==="string"){return indexOf.call(this.config.charTypes,type)>=0||indexOf.call(this.config.intTypes,type)>=0;}else{return type.type==="primitive"&&this.isIntegerType(type.name);}};CRuntime.prototype.isFloatType=function(type){if(typeof type==="string"){switch(type){case"float":case"double":return true;default:return false;}}else{return type.type==="primitive"&&this.isFloatType(type.name);}};CRuntime.prototype.getSignedType=function(type){if(type!=="unsigned"){return this.primitiveType(type.name.replace("unsigned","").trim());}else{return this.primitiveType("int");}};CRuntime.prototype.castable=function(type1,type2){if(this.isTypeEqualTo(type1,type2)){return true;}if(this.isPrimitiveType(type1)&&this.isPrimitiveType(type2)){return this.isNumericType(type2)&&this.isNumericType(type1);}else if(this.isPointerType(type1)&&this.isPointerType(type2)){if(this.isFunctionType(type1)){return this.isPointerType(type2);}return!this.isFunctionType(type2);}else if(this.isClassType(type1)||this.isClassType(type2)){this.raiseException("not implemented");}return false;};CRuntime.prototype.cast=function(type,value){var bytes,newValue,ref,v;// TODO: looking for global overload
if(this.isTypeEqualTo(value.t,type)){return value;}if(this.isPrimitiveType(type)&&this.isPrimitiveType(value.t)){if(type.name==="bool"){return this.val(type,value.v?1:0);}else if((ref=type.name)==="float"||ref==="double"){if(!this.isNumericType(value.t)){this.raiseException("cannot cast "+this.makeTypeString(value.t)+" to "+this.makeTypeString(type));}if(this.inrange(type,value.v)){return this.val(type,value.v);}else{this.raiseException("overflow when casting "+this.makeTypeString(value.t)+" to "+this.makeTypeString(type));}}else{if(type.name.slice(0,8)==="unsigned"){if(!this.isNumericType(value.t)){this.raiseException("cannot cast "+this.makeTypeString(value.t)+" to "+this.makeTypeString(type));}else if(value.v<0){bytes=this.config.limits[type.name].bytes;newValue=value.v&(1<<8*bytes)-1;// truncates
if(!this.inrange(type,newValue)){this.raiseException("cannot cast negative value ".concat(newValue," to ")+this.makeTypeString(type));}else{// unsafe! bitwise truncation is platform dependent
return this.val(type,newValue);}}}if(!this.isNumericType(value.t)){this.raiseException("cannot cast "+this.makeTypeString(value.t)+" to "+this.makeTypeString(type));}if(value.t.name==="float"||value.t.name==="double"){v=value.v>0?Math.floor(value.v):Math.ceil(value.v);if(this.inrange(type,v)){return this.val(type,v);}else{this.raiseException("overflow when casting "+this.makeValString(value)+" to "+this.makeTypeString(type));}}else{if(this.inrange(type,value.v)){return this.val(type,value.v);}else{this.raiseException("overflow when casting "+this.makeValString(value)+" to "+this.makeTypeString(type));}}}}else if(this.isPointerType(type)){if(this.isArrayType(value.t)){if(this.isNormalPointerType(type)){if(this.isTypeEqualTo(type.targetType,value.t.eleType)){return value;}else{this.raiseException(this.makeTypeString(type.targetType)+" is not equal to array element type "+this.makeTypeString(value.t.eleType));}}else if(this.isArrayType(type)){if(this.isTypeEqualTo(type.eleType,value.t.eleType)){return value;}else{this.raiseException("array element type "+this.makeTypeString(type.eleType)+" is not equal to array element type "+this.makeTypeString(value.t.eleType));}}else{this.raiseException("cannot cast a function to a regular pointer");}}else{if(this.isNormalPointerType(type)){if(this.isTypeEqualTo(type.targetType,value.t.targetType)){return value;}else{this.raiseException(this.makeTypeString(type.targetType)+" is not equal to "+this.makeTypeString(value.t.eleType));}}else if(this.isArrayType(type)){if(this.isTypeEqualTo(type.eleType,value.t.targetType)){return value;}else{this.raiseException("array element type "+this.makeTypeString(type.eleType)+" is not equal to "+this.makeTypeString(value.t.eleType));}}else{this.raiseException("cannot cast a function to a regular pointer");}}}else if(this.isFunctionType(type)){if(this.isFunctionType(value.t)){return this.val(value.t,value.v);}else{this.raiseException("cannot cast a regular pointer to a function");}}else if(this.isClassType(type)){this.raiseException("not implemented");}else if(this.isClassType(value.t)){value=this.getCompatibleFunc(value.t,this.makeOperatorFuncName(type.name),[])(this,value);return value;}else{this.raiseException("cast failed from type "+this.makeTypeString(type)+" to "+this.makeTypeString(value.t));}};CRuntime.prototype.clone=function(v,isInitializing){return this.val(v.t,v.v,false,isInitializing);};CRuntime.prototype.enterScope=function(scopename){this.scope.push({"$name":scopename});};CRuntime.prototype.exitScope=function(scopename){var s;while(true){// logger.info("%j", this.scope);
s=this.scope.pop();if(!(scopename&&this.scope.length>1&&s["$name"]!==scopename)){break;}}};CRuntime.prototype.val=function(type,v,left,isInitializing){var checkRange;if(this.isNumericType(type)){if(isInitializing){if(isNaN(v)){checkRange=false;}else{checkRange=true;}}else{checkRange=true;}if(checkRange&&!this.inrange(type,v)){this.raiseException("overflow of ".concat(this.makeValString({t:type,v:v})));}}if(left===void 0){left=false;}return{"t":type,"v":v,"left":left};};CRuntime.prototype.isTypeEqualTo=function(type1,type2){var _this;if(type1.type===type2.type){switch(type1.type){case"primitive":case"class":return type1.name===type2.name;case"pointer":if(type1.ptrType===type2.ptrType||type1.ptrType!=="function"&&type2.ptrType!=="function"){switch(type1.ptrType){case"array":return this.isTypeEqualTo(type1.eleType,type2.eleType||type2.targetType);case"function":return this.isTypeEqualTo(type1.funcType,type2.funcType);case"normal":return this.isTypeEqualTo(type1.targetType,type2.eleType||type2.targetType);}}break;case"function":if(this.isTypeEqualTo(type1.retType,type2.retType)&&type1.signature.length===type2.signature.length){_this=this;return type1.signature.every(function(type,index,arr){var x;x=_this.isTypeEqualTo(type,type2.signature[index]);return x;});}}}return type1===type2;};CRuntime.prototype.isBoolType=function(type){if(typeof type==="string"){return type==="bool";}else{return type.type==="primitive"&&this.isBoolType(type.name);}};CRuntime.prototype.isVoidType=function(type){if(typeof type==="string"){return type==="void";}else{return type.type==="primitive"&&this.isVoidType(type.name);}};CRuntime.prototype.isPrimitiveType=function(type){return this.isNumericType(type)||this.isBoolType(type)||this.isVoidType(type);};CRuntime.prototype.isArrayType=function(type){return this.isPointerType(type)&&type.ptrType==="array";};CRuntime.prototype.isFunctionType=function(type){return type.type==="function"||this.isNormalPointerType(type)&&this.isFunctionType(type.targetType);};CRuntime.prototype.isNormalPointerType=function(type){return this.isPointerType(type)&&type.ptrType==="normal";};CRuntime.prototype.isPointerType=function(type){return type.type==="pointer";};CRuntime.prototype.isClassType=function(type){return type.type==="class";};CRuntime.prototype.arrayPointerType=function(eleType,size){return{type:"pointer",ptrType:"array",eleType:eleType,size:size};};CRuntime.prototype.makeArrayPointerValue=function(arr,position){return{target:arr,position:position};};CRuntime.prototype.functionPointerType=function(retType,signature){return this.normalPointerType(this.functionType(retType,signature));};CRuntime.prototype.functionType=function(retType,signature){return{type:"function",retType:retType,signature:signature};};CRuntime.prototype.makeFunctionPointerValue=function(f,name,lt,args,retType){return{target:f,name:name,defineType:lt,args:args,retType:retType};};CRuntime.prototype.normalPointerType=function(targetType){return{type:"pointer",ptrType:"normal",targetType:targetType};};CRuntime.prototype.makeNormalPointerValue=function(target){return{target:target};};CRuntime.prototype.simpleType=function(type){var _this4=this;var clsType,typeStr;if(Array.isArray(type)){if(type.length>1){typeStr=type.filter(function(t){return indexOf.call(_this4.config.specifiers,t)<0;}).join(" ");return this.simpleType(typeStr);}else{return this.typedefs[type[0]]||this.simpleType(type[0]);}}else{if(this.isPrimitiveType(type)){return this.primitiveType(type);}else{clsType={type:"class",name:type};if(this.getTypeSignature(clsType)in this.types){return clsType;}else{this.raiseException("type "+this.makeTypeString(type)+" is not defined");}}}};CRuntime.prototype.newClass=function(classname,members){var clsType,sig;clsType={type:"class",name:classname};sig=this.getTypeSignature(clsType);if(sig in this.types){this.raiseException(this.makeTypeString(clsType)+" is already defined");}this.types[sig]={"#constructor":function constructor(rt,_this){var i,member;_this.v.members={};i=0;while(i<members.length){member=members[i];_this.v.members[member.name]=member.initialize!=null?member.initialize(rt,_this):rt.defaultValue(member.t,true);i++;}},"#members":members};return clsType;};CRuntime.prototype.primitiveType=function(type){return{type:"primitive",name:type};};CRuntime.prototype.isCharType=function(type){return this.config.charTypes.indexOf(type.name)!==-1;};CRuntime.prototype.isStringType=function(type){return this.isArrayType(type)&&this.isCharType(type.eleType);};CRuntime.prototype.getStringFromCharArray=function(element){var charVal,i,result,target;if(this.isStringType(element.t)){target=element.v.target;result="";i=0;while(i<target.length){charVal=target[i];if(charVal.v===0){break;}result+=String.fromCharCode(charVal.v);i++;}return result;}else{this.raiseException("target is not a string");}};CRuntime.prototype.makeCharArrayFromString=function(str,typename){var charType,self,trailingZero,type;self=this;typename||(typename="char");charType=this.primitiveType(typename);type=this.arrayPointerType(charType,str.length+1);trailingZero=this.val(charType,0);return this.val(type,{target:str.split("").map(function(c){return self.val(charType,c.charCodeAt(0));}).concat([trailingZero]),position:0});};CRuntime.prototype.getTypeSignature=function(type){var _this5=this;var ret,self;// (primitive), [class], {pointer}
ret=type;self=this;if(type.type==="primitive"){ret="("+type.name+")";}else if(type.type==="class"){ret="["+type.name+"]";}else if(type.type==="pointer"){// !targetType, @size!eleType, !#retType!param1,param2,...
ret="{";if(type.ptrType==="normal"){ret+="!"+this.getTypeSignature(type.targetType);}else if(type.ptrType==="array"){ret+="!"+this.getTypeSignature(type.eleType);}ret+="}";}else if(type.type==="function"){// #retType!param1,param2,...
ret="#"+this.getTypeSignature(type.retType)+"!"+type.signature.map(function(e){return _this5.getTypeSignature(e);}).join(",");}return ret;};CRuntime.prototype.makeTypeString=function(type){var _this6=this;var ret;// (primitive), [class], {pointer}
ret="$"+type;if(type.type==="primitive"){ret=type.name;}else if(type.type==="class"){ret=type.name;}else if(type.type==="pointer"){// !targetType, @size!eleType, #retType!param1,param2,...
ret="";if(type.ptrType==="normal"){ret+=this.makeTypeString(type.targetType)+"*";}else if(type.ptrType==="array"){ret+=this.makeTypeString(type.eleType)+"[".concat(type.size,"]");}else if(type.ptrType==="function"){ret+=this.makeTypeString(type.retType)+"(*f)"+"("+type.signature.map(function(e){return _this6.makeTypeString(e);}).join(",")+")";}}return ret;};CRuntime.prototype.makeValueString=function(l,options){var display,i,j,ref,ref1;options||(options={});if(this.isPrimitiveType(l.t)){if(this.isTypeEqualTo(l.t,this.charTypeLiteral)){display="'"+String.fromCharCode(l.v)+"'";}else if(this.isBoolType(l.t)){display=l.v!==0?"true":"false";}else{display=l.v;}}else if(this.isPointerType(l.t)){if(this.isFunctionType(l.t)){display="<function>";}else if(this.isArrayType(l.t)){if(this.isTypeEqualTo(l.t.eleType,this.charTypeLiteral)){// string
display="\""+this.getStringFromCharArray(l)+"\"";}else if(options.noArray){display="[...]";}else{options.noArray=true;display=[];for(i=j=ref=l.v.position,ref1=l.v.target.length;ref<=ref1?j<ref1:j>ref1;i=ref<=ref1?++j:--j){display.push(this.makeValueString(l.v.target[i],options));}display="["+display.join(",")+"]";}}else if(this.isNormalPointerType(l.t)){if(options.noPointer){display="->?";}else{options.noPointer=true;display="->"+this.makeValueString(l.v.target);}}else{this.raiseException("unknown pointer type");}}else if(this.isClassType(l.t)){display="<object>";}return display;};CRuntime.prototype.makeValString=function(l){return this.makeValueString(l)+"("+this.makeTypeString(l.t)+")";};CRuntime.prototype.defaultValue=function(type,left){var i,init,j,ref,ret;if(type.type==="primitive"){if(this.isNumericType(type)){return this.val(type,0/0,left,true);}}else if(type.type==="class"){ret=this.val(type,{},left);this.types[this.getTypeSignature(type)]["#constructor"](this,ret);return ret;}else if(type.type==="pointer"){if(type.ptrType==="normal"){return this.val(type,this.makeNormalPointerValue(0/0),left);}else if(type.ptrType==="array"){init=[];for(i=j=0,ref=type.size;0<=ref?j<ref:j>ref;i=0<=ref?++j:--j){init[i]=this.defaultValue(type.eleType,true);}return this.val(type,this.makeArrayPointerValue(init,0),left);}}};

CRuntime.prototype.raiseException=function(message,currentNode)
	{
	// BY LRUSSO.COM

	// SHOWING THE ERROR IN THE SERIAL MONITOR
	self.postMessage("<br />Error: " + message);

	// TELLING THE WEB CLIENT THAT THE CODE HAS A BUG
	self.postMessage(null);

	var col,ln,posInfo;if(this.interp){if(currentNode==null){currentNode=this.interp.currentNode;}posInfo=currentNode!=null?(ln=currentNode.sLine,col=currentNode.sColumn,ln+":"+col):"<position unavailable>";throw posInfo+" "+message;}else{throw message;}
	};

module.exports=CRuntime;},{"./defaults":3}],21:[function(require,module,exports){(function(global){"use strict";require("core-js/shim");require("regenerator-runtime/runtime");require("core-js/fn/regexp/escape");if(global._babelPolyfill){throw new Error("only one instance of babel-polyfill is allowed");}global._babelPolyfill=true;var DEFINE_PROPERTY="defineProperty";function define(O,key,value){O[key]||Object[DEFINE_PROPERTY](O,key,{writable:true,configurable:true,value:value});}define(String.prototype,"padLeft","".padStart);define(String.prototype,"padRight","".padEnd);"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function(key){[][key]&&define(Array,key,Function.call.bind([][key]));});}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"core-js/fn/regexp/escape":26,"core-js/shim":354,"regenerator-runtime/runtime":22}],22:[function(require,module,exports){(function(global){/**
 * Copyright (c) 2014, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * https://raw.github.com/facebook/regenerator/master/LICENSE file. An
 * additional grant of patent rights can be found in the PATENTS file in
 * the same directory.
 */!function(global){"use strict";var Op=Object.prototype;var hasOwn=Op.hasOwnProperty;var undefined;// More compressible than void 0.
var $Symbol=typeof Symbol==="function"?Symbol:{};var iteratorSymbol=$Symbol.iterator||"@@iterator";var asyncIteratorSymbol=$Symbol.asyncIterator||"@@asyncIterator";var toStringTagSymbol=$Symbol.toStringTag||"@@toStringTag";var inModule=_typeof(module)==="object";var runtime=global.regeneratorRuntime;if(runtime){if(inModule){// If regeneratorRuntime is defined globally and we're in a module,
// make the exports object identical to regeneratorRuntime.
module.exports=runtime;}// Don't bother evaluating the rest of this file if the runtime was
// already defined globally.
return;}// Define the runtime globally (as expected by generated code) as either
// module.exports (if we're in a module) or a new, empty object.
runtime=global.regeneratorRuntime=inModule?module.exports:{};function wrap(innerFn,outerFn,self,tryLocsList){// If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
var protoGenerator=outerFn&&outerFn.prototype instanceof Generator?outerFn:Generator;var generator=Object.create(protoGenerator.prototype);var context=new Context(tryLocsList||[]);// The ._invoke method unifies the implementations of the .next,
// .throw, and .return methods.
generator._invoke=makeInvokeMethod(innerFn,self,context);return generator;}runtime.wrap=wrap;// Try/catch helper to minimize deoptimizations. Returns a completion
// record like context.tryEntries[i].completion. This interface could
// have been (and was previously) designed to take a closure to be
// invoked without arguments, but in all the cases we care about we
// already have an existing method we want to call, so there's no need
// to create a new function object. We can even get away with assuming
// the method takes exactly one argument, since that happens to be true
// in every case, so we don't have to touch the arguments object. The
// only additional allocation required is the completion record, which
// has a stable shape and so hopefully should be cheap to allocate.
function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)};}catch(err){return{type:"throw",arg:err};}}var GenStateSuspendedStart="suspendedStart";var GenStateSuspendedYield="suspendedYield";var GenStateExecuting="executing";var GenStateCompleted="completed";// Returning this object from the innerFn has the same effect as
// breaking out of the dispatch switch statement.
var ContinueSentinel={};// Dummy constructor functions that we use as the .constructor and
// .constructor.prototype properties for functions that return Generator
// objects. For full spec compliance, you may wish to configure your
// minifier not to mangle the names of these two functions.
function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}// This is a polyfill for %IteratorPrototype% for environments that
// don't natively support it.
var IteratorPrototype={};IteratorPrototype[iteratorSymbol]=function(){return this;};var getProto=Object.getPrototypeOf;var NativeIteratorPrototype=getProto&&getProto(getProto(values([])));if(NativeIteratorPrototype&&NativeIteratorPrototype!==Op&&hasOwn.call(NativeIteratorPrototype,iteratorSymbol)){// This environment has a native %IteratorPrototype%; use it instead
// of the polyfill.
IteratorPrototype=NativeIteratorPrototype;}var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(IteratorPrototype);GeneratorFunction.prototype=Gp.constructor=GeneratorFunctionPrototype;GeneratorFunctionPrototype.constructor=GeneratorFunction;GeneratorFunctionPrototype[toStringTagSymbol]=GeneratorFunction.displayName="GeneratorFunction";// Helper for defining the .next, .throw, and .return methods of the
// Iterator interface in terms of a single ._invoke method.
function defineIteratorMethods(prototype){["next","throw","return"].forEach(function(method){prototype[method]=function(arg){return this._invoke(method,arg);};});}runtime.isGeneratorFunction=function(genFun){var ctor=typeof genFun==="function"&&genFun.constructor;return ctor?ctor===GeneratorFunction||// For the native GeneratorFunction constructor, the best we can
// do is to check its .name property.
(ctor.displayName||ctor.name)==="GeneratorFunction":false;};runtime.mark=function(genFun){if(Object.setPrototypeOf){Object.setPrototypeOf(genFun,GeneratorFunctionPrototype);}else{genFun.__proto__=GeneratorFunctionPrototype;if(!(toStringTagSymbol in genFun)){genFun[toStringTagSymbol]="GeneratorFunction";}}genFun.prototype=Object.create(Gp);return genFun;};// Within the body of any async function, `await x` is transformed to
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
// `hasOwn.call(value, "__await")` to determine if the yielded value is
// meant to be awaited.
runtime.awrap=function(arg){return{__await:arg};};function AsyncIterator(generator){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if(record.type==="throw"){reject(record.arg);}else{var result=record.arg;var value=result.value;if(value&&_typeof(value)==="object"&&hasOwn.call(value,"__await")){return Promise.resolve(value.__await).then(function(value){invoke("next",value,resolve,reject);},function(err){invoke("throw",err,resolve,reject);});}return Promise.resolve(value).then(function(unwrapped){// When a yielded Promise is resolved, its final value becomes
// the .value of the Promise<{value,done}> result for the
// current iteration. If the Promise is rejected, however, the
// result for this iteration will be rejected with the same
// reason. Note that rejections of yielded Promises are not
// thrown back into the generator function, as is the case
// when an awaited Promise is rejected. This difference in
// behavior between yield and await is important, because it
// allows the consumer to decide what to do with the yielded
// rejection (swallow it and continue, manually .throw it back
// into the generator, abandon iteration, whatever). With
// await, by contrast, there is no opportunity to examine the
// rejection reason outside the generator function, so the
// only option is to throw it from the await expression, and
// let the generator function handle the exception.
result.value=unwrapped;resolve(result);},reject);}}if(_typeof(global.process)==="object"&&global.process.domain){invoke=global.process.domain.bind(invoke);}var previousPromise;function enqueue(method,arg){function callInvokeWithMethodAndArg(){return new Promise(function(resolve,reject){invoke(method,arg,resolve,reject);});}return previousPromise=// If enqueue has been called before, then we want to wait until
// all previous Promises have been resolved before calling invoke,
// so that results are always delivered in the correct order. If
// enqueue has not been called before, then it is important to
// call invoke immediately, without waiting on a callback to fire,
// so that the async generator function has the opportunity to do
// any necessary setup in a predictable way. This predictability
// is why the Promise constructor synchronously invokes its
// executor callback, and why async functions synchronously
// execute code before the first await. Since we implement simple
// async functions in terms of async generators, it is especially
// important to get this right, even though it requires care.
previousPromise?previousPromise.then(callInvokeWithMethodAndArg,// Avoid propagating failures to Promises returned by later
// invocations of the iterator.
callInvokeWithMethodAndArg):callInvokeWithMethodAndArg();}// Define the unified helper method that is used to implement .next,
// .throw, and .return (see defineIteratorMethods).
this._invoke=enqueue;}defineIteratorMethods(AsyncIterator.prototype);AsyncIterator.prototype[asyncIteratorSymbol]=function(){return this;};runtime.AsyncIterator=AsyncIterator;// Note that simple async functions are implemented on top of
// AsyncIterator objects; they just return a Promise for the value of
// the final result produced by the iterator.
runtime.async=function(innerFn,outerFn,self,tryLocsList){var iter=new AsyncIterator(wrap(innerFn,outerFn,self,tryLocsList));return runtime.isGeneratorFunction(outerFn)?iter// If outerFn is a generator, return the full iterator.
:iter.next().then(function(result){return result.done?result.value:iter.next();});};function makeInvokeMethod(innerFn,self,context){var state=GenStateSuspendedStart;return function invoke(method,arg){if(state===GenStateExecuting){throw new Error("Generator is already running");}if(state===GenStateCompleted){if(method==="throw"){throw arg;}// Be forgiving, per 25.3.3.3.3 of the spec:
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
return doneResult();}context.method=method;context.arg=arg;while(true){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult;}}if(context.method==="next"){// Setting context._sent for legacy support of Babel's
// function.sent implementation.
context.sent=context._sent=context.arg;}else if(context.method==="throw"){if(state===GenStateSuspendedStart){state=GenStateCompleted;throw context.arg;}context.dispatchException(context.arg);}else if(context.method==="return"){context.abrupt("return",context.arg);}state=GenStateExecuting;var record=tryCatch(innerFn,self,context);if(record.type==="normal"){// If an exception is thrown from innerFn, we leave state ===
// GenStateExecuting and loop back for another invocation.
state=context.done?GenStateCompleted:GenStateSuspendedYield;if(record.arg===ContinueSentinel){continue;}return{value:record.arg,done:context.done};}else if(record.type==="throw"){state=GenStateCompleted;// Dispatch the exception by looping back around to the
// context.dispatchException(context.arg) call above.
context.method="throw";context.arg=record.arg;}}};}// Call delegate.iterator[context.method](context.arg) and handle the
// result, either by returning a { value, done } result from the
// delegate iterator, or by modifying context.method and context.arg,
// setting context.delegate to null, and returning the ContinueSentinel.
function maybeInvokeDelegate(delegate,context){var method=delegate.iterator[context.method];if(method===undefined){// A .throw or .return when the delegate iterator has no .throw
// method always terminates the yield* loop.
context.delegate=null;if(context.method==="throw"){if(delegate.iterator["return"]){// If the delegate iterator has a return method, give it a
// chance to clean up.
context.method="return";context.arg=undefined;maybeInvokeDelegate(delegate,context);if(context.method==="throw"){// If maybeInvokeDelegate(context) changed context.method from
// "return" to "throw", let that override the TypeError below.
return ContinueSentinel;}}context.method="throw";context.arg=new TypeError("The iterator does not provide a 'throw' method");}return ContinueSentinel;}var record=tryCatch(method,delegate.iterator,context.arg);if(record.type==="throw"){context.method="throw";context.arg=record.arg;context.delegate=null;return ContinueSentinel;}var info=record.arg;if(!info){context.method="throw";context.arg=new TypeError("iterator result is not an object");context.delegate=null;return ContinueSentinel;}if(info.done){// Assign the result of the finished delegate to the temporary
// variable specified by delegate.resultName (see delegateYield).
context[delegate.resultName]=info.value;// Resume execution at the desired location (see delegateYield).
context.next=delegate.nextLoc;// If context.method was "throw" but the delegate handled the
// exception, let the outer generator proceed normally. If
// context.method was "next", forget context.arg since it has been
// "consumed" by the delegate iterator. If context.method was
// "return", allow the original .return call to continue in the
// outer generator.
if(context.method!=="return"){context.method="next";context.arg=undefined;}}else{// Re-yield the result returned by the delegate method.
return info;}// The delegate iterator is finished, so forget it and continue with
// the outer generator.
context.delegate=null;return ContinueSentinel;}// Define Generator.prototype.{next,throw,return} in terms of the
// unified ._invoke helper method.
defineIteratorMethods(Gp);Gp[toStringTagSymbol]="Generator";// A Generator should always return itself as the iterator object when the
// @@iterator function is called on it. Some browsers' implementations of the
// iterator prototype chain incorrectly implement this, causing the Generator
// object to not be returned from this call. This ensures that doesn't happen.
// See https://github.com/facebook/regenerator/issues/274 for more details.
Gp[iteratorSymbol]=function(){return this;};Gp.toString=function(){return"[object Generator]";};function pushTryEntry(locs){var entry={tryLoc:locs[0]};if(1 in locs){entry.catchLoc=locs[1];}if(2 in locs){entry.finallyLoc=locs[2];entry.afterLoc=locs[3];}this.tryEntries.push(entry);}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal";delete record.arg;entry.completion=record;}function Context(tryLocsList){// The root entry object (effectively a try statement without a catch
// or a finally block) gives us a place to store values thrown from
// locations where there is no enclosing try statement.
this.tryEntries=[{tryLoc:"root"}];tryLocsList.forEach(pushTryEntry,this);this.reset(true);}runtime.keys=function(object){var keys=[];for(var key in object){keys.push(key);}keys.reverse();// Rather than returning an object with a next method, we keep
// things simple and return the next function itself.
return function next(){while(keys.length){var key=keys.pop();if(key in object){next.value=key;next.done=false;return next;}}// To avoid creating an additional object, we just hang the .value
// and .done properties off the next function object itself. This
// also ensures that the minifier will not anonymize the function.
next.done=true;return next;};};function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod){return iteratorMethod.call(iterable);}if(typeof iterable.next==="function"){return iterable;}if(!isNaN(iterable.length)){var i=-1,next=function next(){while(++i<iterable.length){if(hasOwn.call(iterable,i)){next.value=iterable[i];next.done=false;return next;}}next.value=undefined;next.done=true;return next;};return next.next=next;}}// Return an iterator with no values.
return{next:doneResult};}runtime.values=values;function doneResult(){return{value:undefined,done:true};}Context.prototype={constructor:Context,reset:function reset(skipTempReset){this.prev=0;this.next=0;// Resetting context._sent for legacy support of Babel's
// function.sent implementation.
this.sent=this._sent=undefined;this.done=false;this.delegate=null;this.method="next";this.arg=undefined;this.tryEntries.forEach(resetTryEntry);if(!skipTempReset){for(var name in this){// Not sure about the optimal order of these conditions:
if(name.charAt(0)==="t"&&hasOwn.call(this,name)&&!isNaN(+name.slice(1))){this[name]=undefined;}}}},stop:function stop(){this.done=true;var rootEntry=this.tryEntries[0];var rootRecord=rootEntry.completion;if(rootRecord.type==="throw"){throw rootRecord.arg;}return this.rval;},dispatchException:function dispatchException(exception){if(this.done){throw exception;}var context=this;function handle(loc,caught){record.type="throw";record.arg=exception;context.next=loc;if(caught){// If the dispatched exception was caught by a catch block,
// then let that catch block handle the exception normally.
context.method="next";context.arg=undefined;}return!!caught;}for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];var record=entry.completion;if(entry.tryLoc==="root"){// Exception thrown outside of any try block that could handle
// it, so set the completion value of the entire function to
// throw the exception.
return handle("end");}if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc");var hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev<entry.catchLoc){return handle(entry.catchLoc,true);}else if(this.prev<entry.finallyLoc){return handle(entry.finallyLoc);}}else if(hasCatch){if(this.prev<entry.catchLoc){return handle(entry.catchLoc,true);}}else if(hasFinally){if(this.prev<entry.finallyLoc){return handle(entry.finallyLoc);}}else{throw new Error("try statement without catch or finally");}}}},abrupt:function abrupt(type,arg){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev<entry.finallyLoc){var finallyEntry=entry;break;}}if(finallyEntry&&(type==="break"||type==="continue")&&finallyEntry.tryLoc<=arg&&arg<=finallyEntry.finallyLoc){// Ignore the finally entry if control is not jumping to a
// location outside the try/catch block.
finallyEntry=null;}var record=finallyEntry?finallyEntry.completion:{};record.type=type;record.arg=arg;if(finallyEntry){this.method="next";this.next=finallyEntry.finallyLoc;return ContinueSentinel;}return this.complete(record);},complete:function complete(record,afterLoc){if(record.type==="throw"){throw record.arg;}if(record.type==="break"||record.type==="continue"){this.next=record.arg;}else if(record.type==="return"){this.rval=this.arg=record.arg;this.method="return";this.next="end";}else if(record.type==="normal"&&afterLoc){this.next=afterLoc;}return ContinueSentinel;},finish:function finish(finallyLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc){this.complete(entry.completion,entry.afterLoc);resetTryEntry(entry);return ContinueSentinel;}}},"catch":function _catch(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if(record.type==="throw"){var thrown=record.arg;resetTryEntry(entry);}return thrown;}}// The context.catch method must only be called with a location
// argument that corresponds to a known catch block.
throw new Error("illegal catch attempt");},delegateYield:function delegateYield(iterable,resultName,nextLoc){this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc};if(this.method==="next"){// Deliberately forget the last sent value so that we don't
// accidentally pass it on to the delegate.
this.arg=undefined;}return ContinueSentinel;}};}(// Among the various tricks for obtaining a reference to the global
// object, this seems to be the most reliable technique that does not
// use indirect eval (which violates Content Security Policy).
_typeof(global)==="object"?global:(typeof window==="undefined"?"undefined":_typeof(window))==="object"?window:(typeof self==="undefined"?"undefined":_typeof(self))==="object"?self:this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],23:[function(require,module,exports){'use strict';exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=='undefined'?Uint8Array:Array;var code='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';for(var i=0,len=code.length;i<len;++i){lookup[i]=code[i];revLookup[code.charCodeAt(i)]=i;}// Support decoding URL-safe base64 strings, as Node.js does.
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
revLookup['-'.charCodeAt(0)]=62;revLookup['_'.charCodeAt(0)]=63;function getLens(b64){var len=b64.length;if(len%4>0){throw new Error('Invalid string. Length must be a multiple of 4');}// Trim off extra bytes after placeholder bytes are found
// See: https://github.com/beatgammit/base64-js/issues/42
var validLen=b64.indexOf('=');if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen];}// base64 is 4/3 + up to two characters of the original data
function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen;}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen;}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;// if there are placeholders, only get up to the last complete 4 chars
var len=placeHoldersLen>0?validLen-4:validLen;for(var i=0;i<len;i+=4){tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)];arr[curByte++]=tmp>>16&0xFF;arr[curByte++]=tmp>>8&0xFF;arr[curByte++]=tmp&0xFF;}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&0xFF;}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&0xFF;arr[curByte++]=tmp&0xFF;}return arr;}function tripletToBase64(num){return lookup[num>>18&0x3F]+lookup[num>>12&0x3F]+lookup[num>>6&0x3F]+lookup[num&0x3F];}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;i<end;i+=3){tmp=(uint8[i]<<16&0xFF0000)+(uint8[i+1]<<8&0xFF00)+(uint8[i+2]&0xFF);output.push(tripletToBase64(tmp));}return output.join('');}function fromByteArray(uint8){var tmp;var len=uint8.length;var extraBytes=len%3;// if we have 1 byte left, pad 2 bytes
var parts=[];var maxChunkLength=16383;// must be multiple of 3
// go through the array every three bytes, we'll deal with trailing stuff later
for(var i=0,len2=len-extraBytes;i<len2;i+=maxChunkLength){parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength));}// pad the end with zeros, but make sure to not forget the extra bytes
if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&0x3F]+'==');}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&0x3F]+lookup[tmp<<2&0x3F]+'=');}return parts.join('');}},{}],24:[function(require,module,exports){},{}],25:[function(require,module,exports){(function(Buffer){/*!
 * The buffer module from node.js, for the browser.
 *
 * @author   Feross Aboukhadijeh <https://feross.org>
 * @license  MIT
 */ /* eslint-disable no-proto */'use strict';var base64=require('base64-js');var ieee754=require('ieee754');exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=0x7fffffff;exports.kMaxLength=K_MAX_LENGTH;/**
 * If `Buffer.TYPED_ARRAY_SUPPORT`:
 *   === true    Use Uint8Array implementation (fastest)
 *   === false   Print warning and recommend using `buffer` v4.x which has an Object
 *               implementation (most compatible, even IE6)
 *
 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
 * Opera 11.6+, iOS 4.2+.
 *
 * We report that the browser does not support typed arrays if the are not subclassable
 * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`
 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support
 * for __proto__ and has a buggy typed array implementation.
 */Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!=='undefined'&&typeof console.error==='function'){console.error('This browser lacks typed array (Uint8Array) support which is required by '+'`buffer` v5.x. Use `buffer` v4.x if you require old browser support.');}function typedArraySupport(){// Can typed array instances can be augmented?
try{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function foo(){return 42;}};return arr.foo()===42;}catch(e){return false;}}Object.defineProperty(Buffer.prototype,'parent',{enumerable:true,get:function get(){if(!Buffer.isBuffer(this))return undefined;return this.buffer;}});Object.defineProperty(Buffer.prototype,'offset',{enumerable:true,get:function get(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset;}});function createBuffer(length){if(length>K_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"');}// Return an augmented `Uint8Array` instance
var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf;}/**
 * The Buffer constructor returns instances of `Uint8Array` that have their
 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
 * returns a single octet.
 *
 * The `Uint8Array` prototype remains unmodified.
 */function Buffer(arg,encodingOrOffset,length){// Common case.
if(typeof arg==='number'){if(typeof encodingOrOffset==='string'){throw new TypeError('The "string" argument must be of type string. Received type number');}return allocUnsafe(arg);}return from(arg,encodingOrOffset,length);}// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
if(typeof Symbol!=='undefined'&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false});}Buffer.poolSize=8192;// not used by this implementation
function from(value,encodingOrOffset,length){if(typeof value==='string'){return fromString(value,encodingOrOffset);}if(ArrayBuffer.isView(value)){return fromArrayLike(value);}if(value==null){throw TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, '+'or Array-like Object. Received type '+_typeof(value));}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length);}if(typeof value==='number'){throw new TypeError('The "value" argument must not be of type number. Received type number');}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length);}var b=fromObject(value);if(b)return b;if(typeof Symbol!=='undefined'&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==='function'){return Buffer.from(value[Symbol.toPrimitive]('string'),encodingOrOffset,length);}throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, '+'or Array-like Object. Received type '+_typeof(value));}/**
 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
 * if value is a number.
 * Buffer.from(str[, encoding])
 * Buffer.from(array)
 * Buffer.from(buffer)
 * Buffer.from(arrayBuffer[, byteOffset[, length]])
 **/Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length);};// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
// https://github.com/feross/buffer/pull/148
Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=='number'){throw new TypeError('"size" argument must be of type number');}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"');}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size);}if(fill!==undefined){// Only pay attention to encoding if it's a string. This
// prevents accidentally sending in a number that would
// be interpretted as a start offset.
return typeof encoding==='string'?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill);}return createBuffer(size);}/**
 * Creates a new filled Buffer instance.
 * alloc(size[, fill[, encoding]])
 **/Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding);};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0);}/**
 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
 * */Buffer.allocUnsafe=function(size){return allocUnsafe(size);};/**
 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
 */Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size);};function fromString(string,encoding){if(typeof encoding!=='string'||encoding===''){encoding='utf8';}if(!Buffer.isEncoding(encoding)){throw new TypeError('Unknown encoding: '+encoding);}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){// Writing a hex string, for example, that contains invalid characters will
// cause everything after the first invalid character to be ignored. (e.g.
// 'abxxcd' will be treated as 'ab')
buf=buf.slice(0,actual);}return buf;}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i<length;i+=1){buf[i]=array[i]&255;}return buf;}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset){throw new RangeError('"offset" is outside of buffer bounds');}if(array.byteLength<byteOffset+(length||0)){throw new RangeError('"length" is outside of buffer bounds');}var buf;if(byteOffset===undefined&&length===undefined){buf=new Uint8Array(array);}else if(length===undefined){buf=new Uint8Array(array,byteOffset);}else{buf=new Uint8Array(array,byteOffset,length);}// Return an augmented `Uint8Array` instance
buf.__proto__=Buffer.prototype;return buf;}function fromObject(obj){if(Buffer.isBuffer(obj)){var len=checked(obj.length)|0;var buf=createBuffer(len);if(buf.length===0){return buf;}obj.copy(buf,0,0,len);return buf;}if(obj.length!==undefined){if(typeof obj.length!=='number'||numberIsNaN(obj.length)){return createBuffer(0);}return fromArrayLike(obj);}if(obj.type==='Buffer'&&Array.isArray(obj.data)){return fromArrayLike(obj.data);}}function checked(length){// Note: cannot use `length < K_MAX_LENGTH` here because that fails when
// length is NaN (which is otherwise coerced to zero.)
if(length>=K_MAX_LENGTH){throw new RangeError('Attempt to allocate Buffer larger than maximum '+'size: 0x'+K_MAX_LENGTH.toString(16)+' bytes');}return length|0;}function SlowBuffer(length){if(+length!=length){// eslint-disable-line eqeqeq
length=0;}return Buffer.alloc(+length);}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype;// so Buffer.isBuffer(Buffer.prototype) will be false
};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i<len;++i){if(a[i]!==b[i]){x=a[i];y=b[i];break;}}if(x<y)return-1;if(y<x)return 1;return 0;};Buffer.isEncoding=function isEncoding(encoding){switch(String(encoding).toLowerCase()){case'hex':case'utf8':case'utf-8':case'ascii':case'latin1':case'binary':case'base64':case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return true;default:return false;}};Buffer.concat=function concat(list,length){if(!Array.isArray(list)){throw new TypeError('"list" argument must be an Array of Buffers');}if(list.length===0){return Buffer.alloc(0);}var i;if(length===undefined){length=0;for(i=0;i<list.length;++i){length+=list[i].length;}}var buffer=Buffer.allocUnsafe(length);var pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array)){buf=Buffer.from(buf);}if(!Buffer.isBuffer(buf)){throw new TypeError('"list" argument must be an Array of Buffers');}buf.copy(buffer,pos);pos+=buf.length;}return buffer;};function byteLength(string,encoding){if(Buffer.isBuffer(string)){return string.length;}if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer)){return string.byteLength;}if(typeof string!=='string'){throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. '+'Received type '+_typeof(string));}var len=string.length;var mustMatch=arguments.length>2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;// Use a for loop to avoid recursion
var loweredCase=false;for(;;){switch(encoding){case'ascii':case'latin1':case'binary':return len;case'utf8':case'utf-8':return utf8ToBytes(string).length;case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return len*2;case'hex':return len>>>1;case'base64':return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length;// assume utf8
}encoding=(''+encoding).toLowerCase();loweredCase=true;}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;// No need to verify that "this.length <= MAX_UINT32" since it's a read-only
// property of a typed array.
// This behaves neither like String nor Uint8Array in that we set start/end
// to their upper/lower bounds if the value passed is out of range.
// undefined is handled specially as per ECMA-262 6th Edition,
// Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
if(start===undefined||start<0){start=0;}// Return early if start > this.length. Done here to prevent potential uint32
// coercion fail below.
if(start>this.length){return'';}if(end===undefined||end>this.length){end=this.length;}if(end<=0){return'';}// Force coersion to uint32. This will also coerce falsey/NaN values to 0.
end>>>=0;start>>>=0;if(end<=start){return'';}if(!encoding)encoding='utf8';while(true){switch(encoding){case'hex':return hexSlice(this,start,end);case'utf8':case'utf-8':return utf8Slice(this,start,end);case'ascii':return asciiSlice(this,start,end);case'latin1':case'binary':return latin1Slice(this,start,end);case'base64':return base64Slice(this,start,end);case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError('Unknown encoding: '+encoding);encoding=(encoding+'').toLowerCase();loweredCase=true;}}}// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
// to detect a Buffer instance. It's not possible to use `instanceof Buffer`
// reliably in a browserify context because there could be multiple different
// copies of the 'buffer' package in use. This method works even for Buffer
// instances that were created from another copy of the `buffer` package.
// See: https://github.com/feross/buffer/issues/154
Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i;}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError('Buffer size must be a multiple of 16-bits');}for(var i=0;i<len;i+=2){swap(this,i,i+1);}return this;};Buffer.prototype.swap32=function swap32(){var len=this.length;if(len%4!==0){throw new RangeError('Buffer size must be a multiple of 32-bits');}for(var i=0;i<len;i+=4){swap(this,i,i+3);swap(this,i+1,i+2);}return this;};Buffer.prototype.swap64=function swap64(){var len=this.length;if(len%8!==0){throw new RangeError('Buffer size must be a multiple of 64-bits');}for(var i=0;i<len;i+=8){swap(this,i,i+7);swap(this,i+1,i+6);swap(this,i+2,i+5);swap(this,i+3,i+4);}return this;};Buffer.prototype.toString=function toString(){var length=this.length;if(length===0)return'';if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments);};Buffer.prototype.toLocaleString=Buffer.prototype.toString;Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError('Argument must be a Buffer');if(this===b)return true;return Buffer.compare(this,b)===0;};Buffer.prototype.inspect=function inspect(){var str='';var max=exports.INSPECT_MAX_BYTES;str=this.toString('hex',0,max).replace(/(.{2})/g,'$1 ').trim();if(this.length>max)str+=' ... ';return'<Buffer '+str+'>';};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength);}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+'Received type '+_typeof(target));}if(start===undefined){start=0;}if(end===undefined){end=target?target.length:0;}if(thisStart===undefined){thisStart=0;}if(thisEnd===undefined){thisEnd=this.length;}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError('out of range index');}if(thisStart>=thisEnd&&start>=end){return 0;}if(thisStart>=thisEnd){return-1;}if(start>=end){return 1;}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i<len;++i){if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i];y=targetCopy[i];break;}}if(x<y)return-1;if(y<x)return 1;return 0;};// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
//
// Arguments:
// - buffer - a Buffer to search
// - val - a string, Buffer, or number
// - byteOffset - an index into `buffer`; will be clamped to an int32
// - encoding - an optional encoding, relevant is val is a string
// - dir - true for indexOf, false for lastIndexOf
function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){// Empty buffer means no match
if(buffer.length===0)return-1;// Normalize byteOffset
if(typeof byteOffset==='string'){encoding=byteOffset;byteOffset=0;}else if(byteOffset>0x7fffffff){byteOffset=0x7fffffff;}else if(byteOffset<-0x80000000){byteOffset=-0x80000000;}byteOffset=+byteOffset;// Coerce to Number.
if(numberIsNaN(byteOffset)){// byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
byteOffset=dir?0:buffer.length-1;}// Normalize byteOffset: negative offsets start from the end of the buffer
if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1;}else if(byteOffset<0){if(dir)byteOffset=0;else return-1;}// Normalize val
if(typeof val==='string'){val=Buffer.from(val,encoding);}// Finally, search either indexOf (if dir is true) or lastIndexOf
if(Buffer.isBuffer(val)){// Special case: looking for empty string/buffer always fails
if(val.length===0){return-1;}return arrayIndexOf(buffer,val,byteOffset,encoding,dir);}else if(typeof val==='number'){val=val&0xFF;// Search for a byte value [0-255]
if(typeof Uint8Array.prototype.indexOf==='function'){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset);}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset);}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir);}throw new TypeError('val must be string, number or Buffer');}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==='ucs2'||encoding==='ucs-2'||encoding==='utf16le'||encoding==='utf-16le'){if(arr.length<2||val.length<2){return-1;}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2;}}function read(buf,i){if(indexSize===1){return buf[i];}else{return buf.readUInt16BE(i*indexSize);}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++){if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1)foundIndex=i;if(i-foundIndex+1===valLength)return foundIndex*indexSize;}else{if(foundIndex!==-1)i-=i-foundIndex;foundIndex=-1;}}}else{if(byteOffset+valLength>arrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;j<valLength;j++){if(read(arr,i+j)!==read(val,j)){found=false;break;}}if(found)return i;}}return-1;}Buffer.prototype.includes=function includes(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1;};Buffer.prototype.indexOf=function indexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,true);};Buffer.prototype.lastIndexOf=function lastIndexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,false);};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining;}else{length=Number(length);if(length>remaining){length=remaining;}}var strLen=string.length;if(length>strLen/2){length=strLen/2;}for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed;}return i;}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length);}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length);}function latin1Write(buf,string,offset,length){return asciiWrite(buf,string,offset,length);}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length);}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length);}Buffer.prototype.write=function write(string,offset,length,encoding){// Buffer#write(string)
if(offset===undefined){encoding='utf8';length=this.length;offset=0;// Buffer#write(string, encoding)
}else if(length===undefined&&typeof offset==='string'){encoding=offset;length=this.length;offset=0;// Buffer#write(string, offset[, length][, encoding])
}else if(isFinite(offset)){offset=offset>>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding='utf8';}else{encoding=length;length=undefined;}}else{throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError('Attempt to write outside buffer bounds');}if(!encoding)encoding='utf8';var loweredCase=false;for(;;){switch(encoding){case'hex':return hexWrite(this,string,offset,length);case'utf8':case'utf-8':return utf8Write(this,string,offset,length);case'ascii':return asciiWrite(this,string,offset,length);case'latin1':case'binary':return latin1Write(this,string,offset,length);case'base64':// Warning: maxLength not taken into account in base64Write
return base64Write(this,string,offset,length);case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError('Unknown encoding: '+encoding);encoding=(''+encoding).toLowerCase();loweredCase=true;}}};Buffer.prototype.toJSON=function toJSON(){return{type:'Buffer',data:Array.prototype.slice.call(this._arr||this,0)};};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf);}else{return base64.fromByteArray(buf.slice(start,end));}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i<end){var firstByte=buf[i];var codePoint=null;var bytesPerSequence=firstByte>0xEF?4:firstByte>0xDF?3:firstByte>0xBF?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<0x80){codePoint=firstByte;}break;case 2:secondByte=buf[i+1];if((secondByte&0xC0)===0x80){tempCodePoint=(firstByte&0x1F)<<0x6|secondByte&0x3F;if(tempCodePoint>0x7F){codePoint=tempCodePoint;}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&0xC0)===0x80&&(thirdByte&0xC0)===0x80){tempCodePoint=(firstByte&0xF)<<0xC|(secondByte&0x3F)<<0x6|thirdByte&0x3F;if(tempCodePoint>0x7FF&&(tempCodePoint<0xD800||tempCodePoint>0xDFFF)){codePoint=tempCodePoint;}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&0xC0)===0x80&&(thirdByte&0xC0)===0x80&&(fourthByte&0xC0)===0x80){tempCodePoint=(firstByte&0xF)<<0x12|(secondByte&0x3F)<<0xC|(thirdByte&0x3F)<<0x6|fourthByte&0x3F;if(tempCodePoint>0xFFFF&&tempCodePoint<0x110000){codePoint=tempCodePoint;}}}}if(codePoint===null){// we did not generate a valid codePoint so insert a
// replacement char (U+FFFD) and advance only 1 byte
codePoint=0xFFFD;bytesPerSequence=1;}else if(codePoint>0xFFFF){// encode to utf16 (surrogate pair dance)
codePoint-=0x10000;res.push(codePoint>>>10&0x3FF|0xD800);codePoint=0xDC00|codePoint&0x3FF;}res.push(codePoint);i+=bytesPerSequence;}return decodeCodePointsArray(res);}// Based on http://stackoverflow.com/a/22747272/680742, the browser with
// the lowest limit is Chrome, with 0x10000 args.
// We go 1 magnitude less, for safety
var MAX_ARGUMENTS_LENGTH=0x1000;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints);// avoid extra slice()
}// Decode in chunks to avoid "call stack size exceeded".
var res='';var i=0;while(i<len){res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));}return res;}function asciiSlice(buf,start,end){var ret='';end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i]&0x7F);}return ret;}function latin1Slice(buf,start,end){var ret='';end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i]);}return ret;}function hexSlice(buf,start,end){var len=buf.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out='';for(var i=start;i<end;++i){out+=toHex(buf[i]);}return out;}function utf16leSlice(buf,start,end){var bytes=buf.slice(start,end);var res='';for(var i=0;i<bytes.length;i+=2){res+=String.fromCharCode(bytes[i]+bytes[i+1]*256);}return res;}Buffer.prototype.slice=function slice(start,end){var len=this.length;start=~~start;end=end===undefined?len:~~end;if(start<0){start+=len;if(start<0)start=0;}else if(start>len){start=len;}if(end<0){end+=len;if(end<0)end=0;}else if(end>len){end=len;}if(end<start)end=start;var newBuf=this.subarray(start,end);// Return an augmented `Uint8Array` instance
newBuf.__proto__=Buffer.prototype;return newBuf;};/*
 * Need to make sure that buffer isn't trying to write out of bounds.
 */function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError('offset is not uint');if(offset+ext>length)throw new RangeError('Trying to access beyond buffer length');}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=0x100)){val+=this[offset+i]*mul;}return val;};Buffer.prototype.readUIntBE=function readUIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length);}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=0x100)){val+=this[offset+--byteLength]*mul;}return val;};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset];};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8;};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1];};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*0x1000000;};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*0x1000000+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3]);};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=0x100)){val+=this[offset+i]*mul;}mul*=0x80;if(val>=mul)val-=Math.pow(2,8*byteLength);return val;};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=0x100)){val+=this[offset+--i]*mul;}mul*=0x80;if(val>=mul)val-=Math.pow(2,8*byteLength);return val;};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&0x80))return this[offset];return(0xff-this[offset]+1)*-1;};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&0x8000?val|0xFFFF0000:val;};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&0x8000?val|0xFFFF0000:val;};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24;};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3];};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4);};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4);};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8);};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8);};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError('Index out of range');}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0);}var mul=1;var i=0;this[offset]=value&0xFF;while(++i<byteLength&&(mul*=0x100)){this[offset+i]=value/mul&0xFF;}return offset+byteLength;};Buffer.prototype.writeUIntBE=function writeUIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0);}var i=byteLength-1;var mul=1;this[offset+i]=value&0xFF;while(--i>=0&&(mul*=0x100)){this[offset+i]=value/mul&0xFF;}return offset+byteLength;};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,0xff,0);this[offset]=value&0xff;return offset+1;};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0xffff,0);this[offset]=value&0xff;this[offset+1]=value>>>8;return offset+2;};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0xffff,0);this[offset]=value>>>8;this[offset+1]=value&0xff;return offset+2;};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0xffffffff,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&0xff;return offset+4;};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0xffffffff,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&0xff;return offset+4;};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit);}var i=0;var mul=1;var sub=0;this[offset]=value&0xFF;while(++i<byteLength&&(mul*=0x100)){if(value<0&&sub===0&&this[offset+i-1]!==0){sub=1;}this[offset+i]=(value/mul>>0)-sub&0xFF;}return offset+byteLength;};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit);}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&0xFF;while(--i>=0&&(mul*=0x100)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1;}this[offset+i]=(value/mul>>0)-sub&0xFF;}return offset+byteLength;};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,0x7f,-0x80);if(value<0)value=0xff+value+1;this[offset]=value&0xff;return offset+1;};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0x7fff,-0x8000);this[offset]=value&0xff;this[offset+1]=value>>>8;return offset+2;};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0x7fff,-0x8000);this[offset]=value>>>8;this[offset+1]=value&0xff;return offset+2;};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0x7fffffff,-0x80000000);this[offset]=value&0xff;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4;};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0x7fffffff,-0x80000000);if(value<0)value=0xffffffff+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&0xff;return offset+4;};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError('Index out of range');if(offset<0)throw new RangeError('Index out of range');}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,3.4028234663852886e+38,-3.4028234663852886e+38);}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4;}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert);};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert);};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,1.7976931348623157E+308,-1.7976931348623157E+308);}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8;}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert);};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert);};// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError('argument should be a Buffer');if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end<start)end=start;// Copy 0 bytes; we're done
if(end===start)return 0;if(target.length===0||this.length===0)return 0;// Fatal error conditions
if(targetStart<0){throw new RangeError('targetStart out of bounds');}if(start<0||start>=this.length)throw new RangeError('Index out of range');if(end<0)throw new RangeError('sourceEnd out of bounds');// Are we oob?
if(end>this.length)end=this.length;if(target.length-targetStart<end-start){end=target.length-targetStart+start;}var len=end-start;if(this===target&&typeof Uint8Array.prototype.copyWithin==='function'){// Use built-in when available, missing from IE11
this.copyWithin(targetStart,start,end);}else if(this===target&&start<targetStart&&targetStart<end){// descending copy from end
for(var i=len-1;i>=0;--i){target[i+targetStart]=this[i+start];}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart);}return len;};// Usage:
//    buffer.fill(number[, offset[, end]])
//    buffer.fill(buffer[, offset[, end]])
//    buffer.fill(string[, offset[, end]][, encoding])
Buffer.prototype.fill=function fill(val,start,end,encoding){// Handle string cases:
if(typeof val==='string'){if(typeof start==='string'){encoding=start;start=0;end=this.length;}else if(typeof end==='string'){encoding=end;end=this.length;}if(encoding!==undefined&&typeof encoding!=='string'){throw new TypeError('encoding must be a string');}if(typeof encoding==='string'&&!Buffer.isEncoding(encoding)){throw new TypeError('Unknown encoding: '+encoding);}if(val.length===1){var code=val.charCodeAt(0);if(encoding==='utf8'&&code<128||encoding==='latin1'){// Fast path: If `val` fits into a single byte, use that numeric value.
val=code;}}}else if(typeof val==='number'){val=val&255;}// Invalid ranges are not set to a default, so can range check early.
if(start<0||this.length<start||this.length<end){throw new RangeError('Out of range index');}if(end<=start){return this;}start=start>>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==='number'){for(i=start;i<end;++i){this[i]=val;}}else{var bytes=Buffer.isBuffer(val)?val:Buffer.from(val,encoding);var len=bytes.length;if(len===0){throw new TypeError('The value "'+val+'" is invalid for argument "value"');}for(i=0;i<end-start;++i){this[i+start]=bytes[i%len];}}return this;};// HELPER FUNCTIONS
// ================
var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){// Node takes equal signs as end of the Base64 encoding
str=str.split('=')[0];// Node strips out invalid characters like \n and \t from the string, base64-js does not
str=str.trim().replace(INVALID_BASE64_RE,'');// Node converts strings with length < 2 to ''
if(str.length<2)return'';// Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
while(str.length%4!==0){str=str+'=';}return str;}function toHex(n){if(n<16)return'0'+n.toString(16);return n.toString(16);}function utf8ToBytes(string,units){units=units||Infinity;var codePoint;var length=string.length;var leadSurrogate=null;var bytes=[];for(var i=0;i<length;++i){codePoint=string.charCodeAt(i);// is surrogate component
if(codePoint>0xD7FF&&codePoint<0xE000){// last char was a lead
if(!leadSurrogate){// no lead yet
if(codePoint>0xDBFF){// unexpected trail
if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);continue;}else if(i+1===length){// unpaired lead
if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);continue;}// valid lead
leadSurrogate=codePoint;continue;}// 2 leads in a row
if(codePoint<0xDC00){if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);leadSurrogate=codePoint;continue;}// valid surrogate pair
codePoint=(leadSurrogate-0xD800<<10|codePoint-0xDC00)+0x10000;}else if(leadSurrogate){// valid bmp char, but last char was a lead
if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);}leadSurrogate=null;// encode utf8
if(codePoint<0x80){if((units-=1)<0)break;bytes.push(codePoint);}else if(codePoint<0x800){if((units-=2)<0)break;bytes.push(codePoint>>0x6|0xC0,codePoint&0x3F|0x80);}else if(codePoint<0x10000){if((units-=3)<0)break;bytes.push(codePoint>>0xC|0xE0,codePoint>>0x6&0x3F|0x80,codePoint&0x3F|0x80);}else if(codePoint<0x110000){if((units-=4)<0)break;bytes.push(codePoint>>0x12|0xF0,codePoint>>0xC&0x3F|0x80,codePoint>>0x6&0x3F|0x80,codePoint&0x3F|0x80);}else{throw new Error('Invalid code point');}}return bytes;}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;++i){// Node's code seems to be doing this and not & 0x7F..
byteArray.push(str.charCodeAt(i)&0xFF);}return byteArray;}function utf16leToBytes(str,units){var c,hi,lo;var byteArray=[];for(var i=0;i<str.length;++i){if((units-=2)<0)break;c=str.charCodeAt(i);hi=c>>8;lo=c%256;byteArray.push(lo);byteArray.push(hi);}return byteArray;}function base64ToBytes(str){return base64.toByteArray(base64clean(str));}function blitBuffer(src,dst,offset,length){for(var i=0;i<length;++i){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i];}return i;}// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass
// the `instanceof` check but they should be treated as of that type.
// See: https://github.com/feross/buffer/issues/166
function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name;}function numberIsNaN(obj){// For IE11 support
return obj!==obj;// eslint-disable-line no-self-compare
}}).call(this,require("buffer").Buffer);},{"base64-js":23,"buffer":25,"ieee754":357}],26:[function(require,module,exports){require('../../modules/core.regexp.escape');module.exports=require('../../modules/_core').RegExp.escape;},{"../../modules/_core":48,"../../modules/core.regexp.escape":156}],27:[function(require,module,exports){module.exports=function(it){if(typeof it!='function')throw TypeError(it+' is not a function!');return it;};},{}],28:[function(require,module,exports){var cof=require('./_cof');module.exports=function(it,msg){if(typeof it!='number'&&cof(it)!='Number')throw TypeError(msg);return+it;};},{"./_cof":43}],29:[function(require,module,exports){// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES=require('./_wks')('unscopables');var ArrayProto=Array.prototype;if(ArrayProto[UNSCOPABLES]==undefined)require('./_hide')(ArrayProto,UNSCOPABLES,{});module.exports=function(key){ArrayProto[UNSCOPABLES][key]=true;};},{"./_hide":68,"./_wks":154}],30:[function(require,module,exports){'use strict';var at=require('./_string-at')(true);// `AdvanceStringIndex` abstract operation
// https://tc39.github.io/ecma262/#sec-advancestringindex
module.exports=function(S,index,unicode){return index+(unicode?at(S,index).length:1);};},{"./_string-at":131}],31:[function(require,module,exports){module.exports=function(it,Constructor,name,forbiddenField){if(!(it instanceof Constructor)||forbiddenField!==undefined&&forbiddenField in it){throw TypeError(name+': incorrect invocation!');}return it;};},{}],32:[function(require,module,exports){var isObject=require('./_is-object');module.exports=function(it){if(!isObject(it))throw TypeError(it+' is not an object!');return it;};},{"./_is-object":77}],33:[function(require,module,exports){// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
'use strict';var toObject=require('./_to-object');var toAbsoluteIndex=require('./_to-absolute-index');var toLength=require('./_to-length');module.exports=[].copyWithin||function copyWithin(target/* = 0 */,start/* = 0, end = @length */){var O=toObject(this);var len=toLength(O.length);var to=toAbsoluteIndex(target,len);var from=toAbsoluteIndex(start,len);var end=arguments.length>2?arguments[2]:undefined;var count=Math.min((end===undefined?len:toAbsoluteIndex(end,len))-from,len-to);var inc=1;if(from<to&&to<from+count){inc=-1;from+=count-1;to+=count-1;}while(count-->0){if(from in O)O[to]=O[from];else delete O[to];to+=inc;from+=inc;}return O;};},{"./_to-absolute-index":139,"./_to-length":143,"./_to-object":144}],34:[function(require,module,exports){// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
'use strict';var toObject=require('./_to-object');var toAbsoluteIndex=require('./_to-absolute-index');var toLength=require('./_to-length');module.exports=function fill(value/* , start = 0, end = @length */){var O=toObject(this);var length=toLength(O.length);var aLen=arguments.length;var index=toAbsoluteIndex(aLen>1?arguments[1]:undefined,length);var end=aLen>2?arguments[2]:undefined;var endPos=end===undefined?length:toAbsoluteIndex(end,length);while(endPos>index){O[index++]=value;}return O;};},{"./_to-absolute-index":139,"./_to-length":143,"./_to-object":144}],35:[function(require,module,exports){var forOf=require('./_for-of');module.exports=function(iter,ITERATOR){var result=[];forOf(iter,false,result.push,result,ITERATOR);return result;};},{"./_for-of":64}],36:[function(require,module,exports){// false -> Array#indexOf
// true  -> Array#includes
var toIObject=require('./_to-iobject');var toLength=require('./_to-length');var toAbsoluteIndex=require('./_to-absolute-index');module.exports=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIObject($this);var length=toLength(O.length);var index=toAbsoluteIndex(fromIndex,length);var value;// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if(IS_INCLUDES&&el!=el)while(length>index){value=O[index++];// eslint-disable-next-line no-self-compare
if(value!=value)return true;// Array#indexOf ignores holes, Array#includes - not
}else for(;length>index;index++){if(IS_INCLUDES||index in O){if(O[index]===el)return IS_INCLUDES||index||0;}}return!IS_INCLUDES&&-1;};};},{"./_to-absolute-index":139,"./_to-iobject":142,"./_to-length":143}],37:[function(require,module,exports){// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx=require('./_ctx');var IObject=require('./_iobject');var toObject=require('./_to-object');var toLength=require('./_to-length');var asc=require('./_array-species-create');module.exports=function(TYPE,$create){var IS_MAP=TYPE==1;var IS_FILTER=TYPE==2;var IS_SOME=TYPE==3;var IS_EVERY=TYPE==4;var IS_FIND_INDEX=TYPE==6;var NO_HOLES=TYPE==5||IS_FIND_INDEX;var create=$create||asc;return function($this,callbackfn,that){var O=toObject($this);var self=IObject(O);var f=ctx(callbackfn,that,3);var length=toLength(self.length);var index=0;var result=IS_MAP?create($this,length):IS_FILTER?create($this,0):undefined;var val,res;for(;length>index;index++){if(NO_HOLES||index in self){val=self[index];res=f(val,index,O);if(TYPE){if(IS_MAP)result[index]=res;// map
else if(res)switch(TYPE){case 3:return true;// some
case 5:return val;// find
case 6:return index;// findIndex
case 2:result.push(val);// filter
}else if(IS_EVERY)return false;// every
}}}return IS_FIND_INDEX?-1:IS_SOME||IS_EVERY?IS_EVERY:result;};};},{"./_array-species-create":40,"./_ctx":50,"./_iobject":73,"./_to-length":143,"./_to-object":144}],38:[function(require,module,exports){var aFunction=require('./_a-function');var toObject=require('./_to-object');var IObject=require('./_iobject');var toLength=require('./_to-length');module.exports=function(that,callbackfn,aLen,memo,isRight){aFunction(callbackfn);var O=toObject(that);var self=IObject(O);var length=toLength(O.length);var index=isRight?length-1:0;var i=isRight?-1:1;if(aLen<2)for(;;){if(index in self){memo=self[index];index+=i;break;}index+=i;if(isRight?index<0:length<=index){throw TypeError('Reduce of empty array with no initial value');}}for(;isRight?index>=0:length>index;index+=i){if(index in self){memo=callbackfn(memo,self[index],index,O);}}return memo;};},{"./_a-function":27,"./_iobject":73,"./_to-length":143,"./_to-object":144}],39:[function(require,module,exports){var isObject=require('./_is-object');var isArray=require('./_is-array');var SPECIES=require('./_wks')('species');module.exports=function(original){var C;if(isArray(original)){C=original.constructor;// cross-realm fallback
if(typeof C=='function'&&(C===Array||isArray(C.prototype)))C=undefined;if(isObject(C)){C=C[SPECIES];if(C===null)C=undefined;}}return C===undefined?Array:C;};},{"./_is-array":75,"./_is-object":77,"./_wks":154}],40:[function(require,module,exports){// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor=require('./_array-species-constructor');module.exports=function(original,length){return new(speciesConstructor(original))(length);};},{"./_array-species-constructor":39}],41:[function(require,module,exports){'use strict';var aFunction=require('./_a-function');var isObject=require('./_is-object');var invoke=require('./_invoke');var arraySlice=[].slice;var factories={};var construct=function construct(F,len,args){if(!(len in factories)){for(var n=[],i=0;i<len;i++){n[i]='a['+i+']';}// eslint-disable-next-line no-new-func
factories[len]=Function('F,a','return new F('+n.join(',')+')');}return factories[len](F,args);};module.exports=Function.bind||function bind(that/* , ...args */){var fn=aFunction(this);var partArgs=arraySlice.call(arguments,1);var bound=function bound()/* args... */{var args=partArgs.concat(arraySlice.call(arguments));return this instanceof bound?construct(fn,args.length,args):invoke(fn,args,that);};if(isObject(fn.prototype))bound.prototype=fn.prototype;return bound;};},{"./_a-function":27,"./_invoke":72,"./_is-object":77}],42:[function(require,module,exports){// getting tag from 19.1.3.6 Object.prototype.toString()
var cof=require('./_cof');var TAG=require('./_wks')('toStringTag');// ES3 wrong here
var ARG=cof(function(){return arguments;}())=='Arguments';// fallback for IE11 Script Access Denied error
var tryGet=function tryGet(it,key){try{return it[key];}catch(e){/* empty */}};module.exports=function(it){var O,T,B;return it===undefined?'Undefined':it===null?'Null'// @@toStringTag case
:typeof(T=tryGet(O=Object(it),TAG))=='string'?T// builtinTag case
:ARG?cof(O)// ES3 arguments fallback
:(B=cof(O))=='Object'&&typeof O.callee=='function'?'Arguments':B;};},{"./_cof":43,"./_wks":154}],43:[function(require,module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1);};},{}],44:[function(require,module,exports){'use strict';var dP=require('./_object-dp').f;var create=require('./_object-create');var redefineAll=require('./_redefine-all');var ctx=require('./_ctx');var anInstance=require('./_an-instance');var forOf=require('./_for-of');var $iterDefine=require('./_iter-define');var step=require('./_iter-step');var setSpecies=require('./_set-species');var DESCRIPTORS=require('./_descriptors');var fastKey=require('./_meta').fastKey;var validate=require('./_validate-collection');var SIZE=DESCRIPTORS?'_s':'size';var getEntry=function getEntry(that,key){// fast case
var index=fastKey(key);var entry;if(index!=='F')return that._i[index];// frozen object case
for(entry=that._f;entry;entry=entry.n){if(entry.k==key)return entry;}};module.exports={getConstructor:function getConstructor(wrapper,NAME,IS_MAP,ADDER){var C=wrapper(function(that,iterable){anInstance(that,C,NAME,'_i');that._t=NAME;// collection type
that._i=create(null);// index
that._f=undefined;// first entry
that._l=undefined;// last entry
that[SIZE]=0;// size
if(iterable!=undefined)forOf(iterable,IS_MAP,that[ADDER],that);});redefineAll(C.prototype,{// 23.1.3.1 Map.prototype.clear()
// 23.2.3.2 Set.prototype.clear()
clear:function clear(){for(var that=validate(this,NAME),data=that._i,entry=that._f;entry;entry=entry.n){entry.r=true;if(entry.p)entry.p=entry.p.n=undefined;delete data[entry.i];}that._f=that._l=undefined;that[SIZE]=0;},// 23.1.3.3 Map.prototype.delete(key)
// 23.2.3.4 Set.prototype.delete(value)
'delete':function _delete(key){var that=validate(this,NAME);var entry=getEntry(that,key);if(entry){var next=entry.n;var prev=entry.p;delete that._i[entry.i];entry.r=true;if(prev)prev.n=next;if(next)next.p=prev;if(that._f==entry)that._f=next;if(that._l==entry)that._l=prev;that[SIZE]--;}return!!entry;},// 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
// 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
forEach:function forEach(callbackfn/* , that = undefined */){validate(this,NAME);var f=ctx(callbackfn,arguments.length>1?arguments[1]:undefined,3);var entry;while(entry=entry?entry.n:this._f){f(entry.v,entry.k,this);// revert to the last existing entry
while(entry&&entry.r){entry=entry.p;}}},// 23.1.3.7 Map.prototype.has(key)
// 23.2.3.7 Set.prototype.has(value)
has:function has(key){return!!getEntry(validate(this,NAME),key);}});if(DESCRIPTORS)dP(C.prototype,'size',{get:function get(){return validate(this,NAME)[SIZE];}});return C;},def:function def(that,key,value){var entry=getEntry(that,key);var prev,index;// change existing entry
if(entry){entry.v=value;// create new entry
}else{that._l=entry={i:index=fastKey(key,true),// <- index
k:key,// <- key
v:value,// <- value
p:prev=that._l,// <- previous entry
n:undefined,// <- next entry
r:false// <- removed
};if(!that._f)that._f=entry;if(prev)prev.n=entry;that[SIZE]++;// add to index
if(index!=='F')that._i[index]=entry;}return that;},getEntry:getEntry,setStrong:function setStrong(C,NAME,IS_MAP){// add .keys, .values, .entries, [@@iterator]
// 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
$iterDefine(C,NAME,function(iterated,kind){this._t=validate(iterated,NAME);// target
this._k=kind;// kind
this._l=undefined;// previous
},function(){var that=this;var kind=that._k;var entry=that._l;// revert to the last existing entry
while(entry&&entry.r){entry=entry.p;}// get next entry
if(!that._t||!(that._l=entry=entry?entry.n:that._t._f)){// or finish the iteration
that._t=undefined;return step(1);}// return step by kind
if(kind=='keys')return step(0,entry.k);if(kind=='values')return step(0,entry.v);return step(0,[entry.k,entry.v]);},IS_MAP?'entries':'values',!IS_MAP,true);// add [@@species], 23.1.2.2, 23.2.2.2
setSpecies(NAME);}};},{"./_an-instance":31,"./_ctx":50,"./_descriptors":54,"./_for-of":64,"./_iter-define":81,"./_iter-step":83,"./_meta":91,"./_object-create":96,"./_object-dp":97,"./_redefine-all":116,"./_set-species":125,"./_validate-collection":151}],45:[function(require,module,exports){// https://github.com/DavidBruant/Map-Set.prototype.toJSON
var classof=require('./_classof');var from=require('./_array-from-iterable');module.exports=function(NAME){return function toJSON(){if(classof(this)!=NAME)throw TypeError(NAME+"#toJSON isn't generic");return from(this);};};},{"./_array-from-iterable":35,"./_classof":42}],46:[function(require,module,exports){'use strict';var redefineAll=require('./_redefine-all');var getWeak=require('./_meta').getWeak;var anObject=require('./_an-object');var isObject=require('./_is-object');var anInstance=require('./_an-instance');var forOf=require('./_for-of');var createArrayMethod=require('./_array-methods');var $has=require('./_has');var validate=require('./_validate-collection');var arrayFind=createArrayMethod(5);var arrayFindIndex=createArrayMethod(6);var id=0;// fallback for uncaught frozen keys
var uncaughtFrozenStore=function uncaughtFrozenStore(that){return that._l||(that._l=new UncaughtFrozenStore());};var UncaughtFrozenStore=function UncaughtFrozenStore(){this.a=[];};var findUncaughtFrozen=function findUncaughtFrozen(store,key){return arrayFind(store.a,function(it){return it[0]===key;});};UncaughtFrozenStore.prototype={get:function get(key){var entry=findUncaughtFrozen(this,key);if(entry)return entry[1];},has:function has(key){return!!findUncaughtFrozen(this,key);},set:function set(key,value){var entry=findUncaughtFrozen(this,key);if(entry)entry[1]=value;else this.a.push([key,value]);},'delete':function _delete(key){var index=arrayFindIndex(this.a,function(it){return it[0]===key;});if(~index)this.a.splice(index,1);return!!~index;}};module.exports={getConstructor:function getConstructor(wrapper,NAME,IS_MAP,ADDER){var C=wrapper(function(that,iterable){anInstance(that,C,NAME,'_i');that._t=NAME;// collection type
that._i=id++;// collection id
that._l=undefined;// leak store for uncaught frozen objects
if(iterable!=undefined)forOf(iterable,IS_MAP,that[ADDER],that);});redefineAll(C.prototype,{// 23.3.3.2 WeakMap.prototype.delete(key)
// 23.4.3.3 WeakSet.prototype.delete(value)
'delete':function _delete(key){if(!isObject(key))return false;var data=getWeak(key);if(data===true)return uncaughtFrozenStore(validate(this,NAME))['delete'](key);return data&&$has(data,this._i)&&delete data[this._i];},// 23.3.3.4 WeakMap.prototype.has(key)
// 23.4.3.4 WeakSet.prototype.has(value)
has:function has(key){if(!isObject(key))return false;var data=getWeak(key);if(data===true)return uncaughtFrozenStore(validate(this,NAME)).has(key);return data&&$has(data,this._i);}});return C;},def:function def(that,key,value){var data=getWeak(anObject(key),true);if(data===true)uncaughtFrozenStore(that).set(key,value);else data[that._i]=value;return that;},ufstore:uncaughtFrozenStore};},{"./_an-instance":31,"./_an-object":32,"./_array-methods":37,"./_for-of":64,"./_has":67,"./_is-object":77,"./_meta":91,"./_redefine-all":116,"./_validate-collection":151}],47:[function(require,module,exports){'use strict';var global=require('./_global');var $export=require('./_export');var redefine=require('./_redefine');var redefineAll=require('./_redefine-all');var meta=require('./_meta');var forOf=require('./_for-of');var anInstance=require('./_an-instance');var isObject=require('./_is-object');var fails=require('./_fails');var $iterDetect=require('./_iter-detect');var setToStringTag=require('./_set-to-string-tag');var inheritIfRequired=require('./_inherit-if-required');module.exports=function(NAME,wrapper,methods,common,IS_MAP,IS_WEAK){var Base=global[NAME];var C=Base;var ADDER=IS_MAP?'set':'add';var proto=C&&C.prototype;var O={};var fixMethod=function fixMethod(KEY){var fn=proto[KEY];redefine(proto,KEY,KEY=='delete'?function(a){return IS_WEAK&&!isObject(a)?false:fn.call(this,a===0?0:a);}:KEY=='has'?function has(a){return IS_WEAK&&!isObject(a)?false:fn.call(this,a===0?0:a);}:KEY=='get'?function get(a){return IS_WEAK&&!isObject(a)?undefined:fn.call(this,a===0?0:a);}:KEY=='add'?function add(a){fn.call(this,a===0?0:a);return this;}:function set(a,b){fn.call(this,a===0?0:a,b);return this;});};if(typeof C!='function'||!(IS_WEAK||proto.forEach&&!fails(function(){new C().entries().next();}))){// create collection constructor
C=common.getConstructor(wrapper,NAME,IS_MAP,ADDER);redefineAll(C.prototype,methods);meta.NEED=true;}else{var instance=new C();// early implementations not supports chaining
var HASNT_CHAINING=instance[ADDER](IS_WEAK?{}:-0,1)!=instance;// V8 ~  Chromium 40- weak-collections throws on primitives, but should return false
var THROWS_ON_PRIMITIVES=fails(function(){instance.has(1);});// most early implementations doesn't supports iterables, most modern - not close it correctly
var ACCEPT_ITERABLES=$iterDetect(function(iter){new C(iter);});// eslint-disable-line no-new
// for early implementations -0 and +0 not the same
var BUGGY_ZERO=!IS_WEAK&&fails(function(){// V8 ~ Chromium 42- fails only with 5+ elements
var $instance=new C();var index=5;while(index--){$instance[ADDER](index,index);}return!$instance.has(-0);});if(!ACCEPT_ITERABLES){C=wrapper(function(target,iterable){anInstance(target,C,NAME);var that=inheritIfRequired(new Base(),target,C);if(iterable!=undefined)forOf(iterable,IS_MAP,that[ADDER],that);return that;});C.prototype=proto;proto.constructor=C;}if(THROWS_ON_PRIMITIVES||BUGGY_ZERO){fixMethod('delete');fixMethod('has');IS_MAP&&fixMethod('get');}if(BUGGY_ZERO||HASNT_CHAINING)fixMethod(ADDER);// weak collections should not contains .clear method
if(IS_WEAK&&proto.clear)delete proto.clear;}setToStringTag(C,NAME);O[NAME]=C;$export($export.G+$export.W+$export.F*(C!=Base),O);if(!IS_WEAK)common.setStrong(C,NAME,IS_MAP);return C;};},{"./_an-instance":31,"./_export":58,"./_fails":60,"./_for-of":64,"./_global":66,"./_inherit-if-required":71,"./_is-object":77,"./_iter-detect":82,"./_meta":91,"./_redefine":117,"./_redefine-all":116,"./_set-to-string-tag":126}],48:[function(require,module,exports){var core=module.exports={version:'2.6.11'};if(typeof __e=='number')__e=core;// eslint-disable-line no-undef
},{}],49:[function(require,module,exports){'use strict';var $defineProperty=require('./_object-dp');var createDesc=require('./_property-desc');module.exports=function(object,index,value){if(index in object)$defineProperty.f(object,index,createDesc(0,value));else object[index]=value;};},{"./_object-dp":97,"./_property-desc":115}],50:[function(require,module,exports){// optional / simple context binding
var aFunction=require('./_a-function');module.exports=function(fn,that,length){aFunction(fn);if(that===undefined)return fn;switch(length){case 1:return function(a){return fn.call(that,a);};case 2:return function(a,b){return fn.call(that,a,b);};case 3:return function(a,b,c){return fn.call(that,a,b,c);};}return function()/* ...args */{return fn.apply(that,arguments);};};},{"./_a-function":27}],51:[function(require,module,exports){'use strict';// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
var fails=require('./_fails');var getTime=Date.prototype.getTime;var $toISOString=Date.prototype.toISOString;var lz=function lz(num){return num>9?num:'0'+num;};// PhantomJS / old WebKit has a broken implementations
module.exports=fails(function(){return $toISOString.call(new Date(-5e13-1))!='0385-07-25T07:06:39.999Z';})||!fails(function(){$toISOString.call(new Date(NaN));})?function toISOString(){if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');var d=this;var y=d.getUTCFullYear();var m=d.getUTCMilliseconds();var s=y<0?'-':y>9999?'+':'';return s+('00000'+Math.abs(y)).slice(s?-6:-4)+'-'+lz(d.getUTCMonth()+1)+'-'+lz(d.getUTCDate())+'T'+lz(d.getUTCHours())+':'+lz(d.getUTCMinutes())+':'+lz(d.getUTCSeconds())+'.'+(m>99?m:'0'+lz(m))+'Z';}:$toISOString;},{"./_fails":60}],52:[function(require,module,exports){'use strict';var anObject=require('./_an-object');var toPrimitive=require('./_to-primitive');var NUMBER='number';module.exports=function(hint){if(hint!=='string'&&hint!==NUMBER&&hint!=='default')throw TypeError('Incorrect hint');return toPrimitive(anObject(this),hint!=NUMBER);};},{"./_an-object":32,"./_to-primitive":145}],53:[function(require,module,exports){// 7.2.1 RequireObjectCoercible(argument)
module.exports=function(it){if(it==undefined)throw TypeError("Can't call method on  "+it);return it;};},{}],54:[function(require,module,exports){// Thank's IE8 for his funny defineProperty
module.exports=!require('./_fails')(function(){return Object.defineProperty({},'a',{get:function get(){return 7;}}).a!=7;});},{"./_fails":60}],55:[function(require,module,exports){var isObject=require('./_is-object');var document=require('./_global').document;// typeof document.createElement is 'object' in old IE
var is=isObject(document)&&isObject(document.createElement);module.exports=function(it){return is?document.createElement(it):{};};},{"./_global":66,"./_is-object":77}],56:[function(require,module,exports){// IE 8- don't enum bug keys
module.exports='constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');},{}],57:[function(require,module,exports){// all enumerable object keys, includes symbols
var getKeys=require('./_object-keys');var gOPS=require('./_object-gops');var pIE=require('./_object-pie');module.exports=function(it){var result=getKeys(it);var getSymbols=gOPS.f;if(getSymbols){var symbols=getSymbols(it);var isEnum=pIE.f;var i=0;var key;while(symbols.length>i){if(isEnum.call(it,key=symbols[i++]))result.push(key);}}return result;};},{"./_object-gops":103,"./_object-keys":106,"./_object-pie":107}],58:[function(require,module,exports){var global=require('./_global');var core=require('./_core');var hide=require('./_hide');var redefine=require('./_redefine');var ctx=require('./_ctx');var PROTOTYPE='prototype';var $export=function $export(type,name,source){var IS_FORCED=type&$export.F;var IS_GLOBAL=type&$export.G;var IS_STATIC=type&$export.S;var IS_PROTO=type&$export.P;var IS_BIND=type&$export.B;var target=IS_GLOBAL?global:IS_STATIC?global[name]||(global[name]={}):(global[name]||{})[PROTOTYPE];var exports=IS_GLOBAL?core:core[name]||(core[name]={});var expProto=exports[PROTOTYPE]||(exports[PROTOTYPE]={});var key,own,out,exp;if(IS_GLOBAL)source=name;for(key in source){// contains in native
own=!IS_FORCED&&target&&target[key]!==undefined;// export native or passed
out=(own?target:source)[key];// bind timers to global for call from export context
exp=IS_BIND&&own?ctx(out,global):IS_PROTO&&typeof out=='function'?ctx(Function.call,out):out;// extend global
if(target)redefine(target,key,out,type&$export.U);// export
if(exports[key]!=out)hide(exports,key,exp);if(IS_PROTO&&expProto[key]!=out)expProto[key]=out;}};global.core=core;// type bitmap
$export.F=1;// forced
$export.G=2;// global
$export.S=4;// static
$export.P=8;// proto
$export.B=16;// bind
$export.W=32;// wrap
$export.U=64;// safe
$export.R=128;// real proto method for `library`
module.exports=$export;},{"./_core":48,"./_ctx":50,"./_global":66,"./_hide":68,"./_redefine":117}],59:[function(require,module,exports){var MATCH=require('./_wks')('match');module.exports=function(KEY){var re=/./;try{'/./'[KEY](re);}catch(e){try{re[MATCH]=false;return!'/./'[KEY](re);}catch(f){/* empty */}}return true;};},{"./_wks":154}],60:[function(require,module,exports){module.exports=function(exec){try{return!!exec();}catch(e){return true;}};},{}],61:[function(require,module,exports){'use strict';require('./es6.regexp.exec');var redefine=require('./_redefine');var hide=require('./_hide');var fails=require('./_fails');var defined=require('./_defined');var wks=require('./_wks');var regexpExec=require('./_regexp-exec');var SPECIES=wks('species');var REPLACE_SUPPORTS_NAMED_GROUPS=!fails(function(){// #replace needs built-in support for named groups.
// #match works fine because it just return the exec results, even if it has
// a "grops" property.
var re=/./;re.exec=function(){var result=[];result.groups={a:'7'};return result;};return''.replace(re,'$<a>')!=='7';});var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC=function(){// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
var re=/(?:)/;var originalExec=re.exec;re.exec=function(){return originalExec.apply(this,arguments);};var result='ab'.split(re);return result.length===2&&result[0]==='a'&&result[1]==='b';}();module.exports=function(KEY,length,exec){var SYMBOL=wks(KEY);var DELEGATES_TO_SYMBOL=!fails(function(){// String methods call symbol-named RegEp methods
var O={};O[SYMBOL]=function(){return 7;};return''[KEY](O)!=7;});var DELEGATES_TO_EXEC=DELEGATES_TO_SYMBOL?!fails(function(){// Symbol-named RegExp methods call .exec
var execCalled=false;var re=/a/;re.exec=function(){execCalled=true;return null;};if(KEY==='split'){// RegExp[@@split] doesn't call the regex's exec method, but first creates
// a new one. We need to return the patched regex when creating the new one.
re.constructor={};re.constructor[SPECIES]=function(){return re;};}re[SYMBOL]('');return!execCalled;}):undefined;if(!DELEGATES_TO_SYMBOL||!DELEGATES_TO_EXEC||KEY==='replace'&&!REPLACE_SUPPORTS_NAMED_GROUPS||KEY==='split'&&!SPLIT_WORKS_WITH_OVERWRITTEN_EXEC){var nativeRegExpMethod=/./[SYMBOL];var fns=exec(defined,SYMBOL,''[KEY],function maybeCallNative(nativeMethod,regexp,str,arg2,forceStringMethod){if(regexp.exec===regexpExec){if(DELEGATES_TO_SYMBOL&&!forceStringMethod){// The native String method already delegates to @@method (this
// polyfilled function), leasing to infinite recursion.
// We avoid it by directly calling the native @@method method.
return{done:true,value:nativeRegExpMethod.call(regexp,str,arg2)};}return{done:true,value:nativeMethod.call(str,regexp,arg2)};}return{done:false};});var strfn=fns[0];var rxfn=fns[1];redefine(String.prototype,KEY,strfn);hide(RegExp.prototype,SYMBOL,length==2// 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
// 21.2.5.11 RegExp.prototype[@@split](string, limit)
?function(string,arg){return rxfn.call(string,this,arg);}// 21.2.5.6 RegExp.prototype[@@match](string)
// 21.2.5.9 RegExp.prototype[@@search](string)
:function(string){return rxfn.call(string,this);});}};},{"./_defined":53,"./_fails":60,"./_hide":68,"./_redefine":117,"./_regexp-exec":119,"./_wks":154,"./es6.regexp.exec":251}],62:[function(require,module,exports){'use strict';// 21.2.5.3 get RegExp.prototype.flags
var anObject=require('./_an-object');module.exports=function(){var that=anObject(this);var result='';if(that.global)result+='g';if(that.ignoreCase)result+='i';if(that.multiline)result+='m';if(that.unicode)result+='u';if(that.sticky)result+='y';return result;};},{"./_an-object":32}],63:[function(require,module,exports){'use strict';// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
var isArray=require('./_is-array');var isObject=require('./_is-object');var toLength=require('./_to-length');var ctx=require('./_ctx');var IS_CONCAT_SPREADABLE=require('./_wks')('isConcatSpreadable');function flattenIntoArray(target,original,source,sourceLen,start,depth,mapper,thisArg){var targetIndex=start;var sourceIndex=0;var mapFn=mapper?ctx(mapper,thisArg,3):false;var element,spreadable;while(sourceIndex<sourceLen){if(sourceIndex in source){element=mapFn?mapFn(source[sourceIndex],sourceIndex,original):source[sourceIndex];spreadable=false;if(isObject(element)){spreadable=element[IS_CONCAT_SPREADABLE];spreadable=spreadable!==undefined?!!spreadable:isArray(element);}if(spreadable&&depth>0){targetIndex=flattenIntoArray(target,original,element,toLength(element.length),targetIndex,depth-1)-1;}else{if(targetIndex>=0x1fffffffffffff)throw TypeError();target[targetIndex]=element;}targetIndex++;}sourceIndex++;}return targetIndex;}module.exports=flattenIntoArray;},{"./_ctx":50,"./_is-array":75,"./_is-object":77,"./_to-length":143,"./_wks":154}],64:[function(require,module,exports){var ctx=require('./_ctx');var call=require('./_iter-call');var isArrayIter=require('./_is-array-iter');var anObject=require('./_an-object');var toLength=require('./_to-length');var getIterFn=require('./core.get-iterator-method');var BREAK={};var RETURN={};var exports=module.exports=function(iterable,entries,fn,that,ITERATOR){var iterFn=ITERATOR?function(){return iterable;}:getIterFn(iterable);var f=ctx(fn,that,entries?2:1);var index=0;var length,step,iterator,result;if(typeof iterFn!='function')throw TypeError(iterable+' is not iterable!');// fast case for arrays with default iterator
if(isArrayIter(iterFn))for(length=toLength(iterable.length);length>index;index++){result=entries?f(anObject(step=iterable[index])[0],step[1]):f(iterable[index]);if(result===BREAK||result===RETURN)return result;}else for(iterator=iterFn.call(iterable);!(step=iterator.next()).done;){result=call(iterator,f,step.value,entries);if(result===BREAK||result===RETURN)return result;}};exports.BREAK=BREAK;exports.RETURN=RETURN;},{"./_an-object":32,"./_ctx":50,"./_is-array-iter":74,"./_iter-call":79,"./_to-length":143,"./core.get-iterator-method":155}],65:[function(require,module,exports){module.exports=require('./_shared')('native-function-to-string',Function.toString);},{"./_shared":128}],66:[function(require,module,exports){// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global=module.exports=typeof window!='undefined'&&window.Math==Math?window:typeof self!='undefined'&&self.Math==Math?self// eslint-disable-next-line no-new-func
:Function('return this')();if(typeof __g=='number')__g=global;// eslint-disable-line no-undef
},{}],67:[function(require,module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key);};},{}],68:[function(require,module,exports){var dP=require('./_object-dp');var createDesc=require('./_property-desc');module.exports=require('./_descriptors')?function(object,key,value){return dP.f(object,key,createDesc(1,value));}:function(object,key,value){object[key]=value;return object;};},{"./_descriptors":54,"./_object-dp":97,"./_property-desc":115}],69:[function(require,module,exports){var document=require('./_global').document;module.exports=document&&document.documentElement;},{"./_global":66}],70:[function(require,module,exports){module.exports=!require('./_descriptors')&&!require('./_fails')(function(){return Object.defineProperty(require('./_dom-create')('div'),'a',{get:function get(){return 7;}}).a!=7;});},{"./_descriptors":54,"./_dom-create":55,"./_fails":60}],71:[function(require,module,exports){var isObject=require('./_is-object');var setPrototypeOf=require('./_set-proto').set;module.exports=function(that,target,C){var S=target.constructor;var P;if(S!==C&&typeof S=='function'&&(P=S.prototype)!==C.prototype&&isObject(P)&&setPrototypeOf){setPrototypeOf(that,P);}return that;};},{"./_is-object":77,"./_set-proto":124}],72:[function(require,module,exports){// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports=function(fn,args,that){var un=that===undefined;switch(args.length){case 0:return un?fn():fn.call(that);case 1:return un?fn(args[0]):fn.call(that,args[0]);case 2:return un?fn(args[0],args[1]):fn.call(that,args[0],args[1]);case 3:return un?fn(args[0],args[1],args[2]):fn.call(that,args[0],args[1],args[2]);case 4:return un?fn(args[0],args[1],args[2],args[3]):fn.call(that,args[0],args[1],args[2],args[3]);}return fn.apply(that,args);};},{}],73:[function(require,module,exports){// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof=require('./_cof');// eslint-disable-next-line no-prototype-builtins
module.exports=Object('z').propertyIsEnumerable(0)?Object:function(it){return cof(it)=='String'?it.split(''):Object(it);};},{"./_cof":43}],74:[function(require,module,exports){// check on default Array iterator
var Iterators=require('./_iterators');var ITERATOR=require('./_wks')('iterator');var ArrayProto=Array.prototype;module.exports=function(it){return it!==undefined&&(Iterators.Array===it||ArrayProto[ITERATOR]===it);};},{"./_iterators":84,"./_wks":154}],75:[function(require,module,exports){// 7.2.2 IsArray(argument)
var cof=require('./_cof');module.exports=Array.isArray||function isArray(arg){return cof(arg)=='Array';};},{"./_cof":43}],76:[function(require,module,exports){// 20.1.2.3 Number.isInteger(number)
var isObject=require('./_is-object');var floor=Math.floor;module.exports=function isInteger(it){return!isObject(it)&&isFinite(it)&&floor(it)===it;};},{"./_is-object":77}],77:[function(require,module,exports){module.exports=function(it){return _typeof(it)==='object'?it!==null:typeof it==='function';};},{}],78:[function(require,module,exports){// 7.2.8 IsRegExp(argument)
var isObject=require('./_is-object');var cof=require('./_cof');var MATCH=require('./_wks')('match');module.exports=function(it){var isRegExp;return isObject(it)&&((isRegExp=it[MATCH])!==undefined?!!isRegExp:cof(it)=='RegExp');};},{"./_cof":43,"./_is-object":77,"./_wks":154}],79:[function(require,module,exports){// call something on iterator step with safe closing on error
var anObject=require('./_an-object');module.exports=function(iterator,fn,value,entries){try{return entries?fn(anObject(value)[0],value[1]):fn(value);// 7.4.6 IteratorClose(iterator, completion)
}catch(e){var ret=iterator['return'];if(ret!==undefined)anObject(ret.call(iterator));throw e;}};},{"./_an-object":32}],80:[function(require,module,exports){'use strict';var create=require('./_object-create');var descriptor=require('./_property-desc');var setToStringTag=require('./_set-to-string-tag');var IteratorPrototype={};// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
require('./_hide')(IteratorPrototype,require('./_wks')('iterator'),function(){return this;});module.exports=function(Constructor,NAME,next){Constructor.prototype=create(IteratorPrototype,{next:descriptor(1,next)});setToStringTag(Constructor,NAME+' Iterator');};},{"./_hide":68,"./_object-create":96,"./_property-desc":115,"./_set-to-string-tag":126,"./_wks":154}],81:[function(require,module,exports){'use strict';var LIBRARY=require('./_library');var $export=require('./_export');var redefine=require('./_redefine');var hide=require('./_hide');var Iterators=require('./_iterators');var $iterCreate=require('./_iter-create');var setToStringTag=require('./_set-to-string-tag');var getPrototypeOf=require('./_object-gpo');var ITERATOR=require('./_wks')('iterator');var BUGGY=!([].keys&&'next'in[].keys());// Safari has buggy iterators w/o `next`
var FF_ITERATOR='@@iterator';var KEYS='keys';var VALUES='values';var returnThis=function returnThis(){return this;};module.exports=function(Base,NAME,Constructor,next,DEFAULT,IS_SET,FORCED){$iterCreate(Constructor,NAME,next);var getMethod=function getMethod(kind){if(!BUGGY&&kind in proto)return proto[kind];switch(kind){case KEYS:return function keys(){return new Constructor(this,kind);};case VALUES:return function values(){return new Constructor(this,kind);};}return function entries(){return new Constructor(this,kind);};};var TAG=NAME+' Iterator';var DEF_VALUES=DEFAULT==VALUES;var VALUES_BUG=false;var proto=Base.prototype;var $native=proto[ITERATOR]||proto[FF_ITERATOR]||DEFAULT&&proto[DEFAULT];var $default=$native||getMethod(DEFAULT);var $entries=DEFAULT?!DEF_VALUES?$default:getMethod('entries'):undefined;var $anyNative=NAME=='Array'?proto.entries||$native:$native;var methods,key,IteratorPrototype;// Fix native
if($anyNative){IteratorPrototype=getPrototypeOf($anyNative.call(new Base()));if(IteratorPrototype!==Object.prototype&&IteratorPrototype.next){// Set @@toStringTag to native iterators
setToStringTag(IteratorPrototype,TAG,true);// fix for some old engines
if(!LIBRARY&&typeof IteratorPrototype[ITERATOR]!='function')hide(IteratorPrototype,ITERATOR,returnThis);}}// fix Array#{values, @@iterator}.name in V8 / FF
if(DEF_VALUES&&$native&&$native.name!==VALUES){VALUES_BUG=true;$default=function values(){return $native.call(this);};}// Define iterator
if((!LIBRARY||FORCED)&&(BUGGY||VALUES_BUG||!proto[ITERATOR])){hide(proto,ITERATOR,$default);}// Plug for library
Iterators[NAME]=$default;Iterators[TAG]=returnThis;if(DEFAULT){methods={values:DEF_VALUES?$default:getMethod(VALUES),keys:IS_SET?$default:getMethod(KEYS),entries:$entries};if(FORCED)for(key in methods){if(!(key in proto))redefine(proto,key,methods[key]);}else $export($export.P+$export.F*(BUGGY||VALUES_BUG),NAME,methods);}return methods;};},{"./_export":58,"./_hide":68,"./_iter-create":80,"./_iterators":84,"./_library":85,"./_object-gpo":104,"./_redefine":117,"./_set-to-string-tag":126,"./_wks":154}],82:[function(require,module,exports){var ITERATOR=require('./_wks')('iterator');var SAFE_CLOSING=false;try{var riter=[7][ITERATOR]();riter['return']=function(){SAFE_CLOSING=true;};// eslint-disable-next-line no-throw-literal
Array.from(riter,function(){throw 2;});}catch(e){/* empty */}module.exports=function(exec,skipClosing){if(!skipClosing&&!SAFE_CLOSING)return false;var safe=false;try{var arr=[7];var iter=arr[ITERATOR]();iter.next=function(){return{done:safe=true};};arr[ITERATOR]=function(){return iter;};exec(arr);}catch(e){/* empty */}return safe;};},{"./_wks":154}],83:[function(require,module,exports){module.exports=function(done,value){return{value:value,done:!!done};};},{}],84:[function(require,module,exports){module.exports={};},{}],85:[function(require,module,exports){module.exports=false;},{}],86:[function(require,module,exports){// 20.2.2.14 Math.expm1(x)
var $expm1=Math.expm1;module.exports=!$expm1// Old FF bug
||$expm1(10)>22025.465794806719||$expm1(10)<22025.4657948067165168// Tor Browser bug
||$expm1(-2e-17)!=-2e-17?function expm1(x){return(x=+x)==0?x:x>-1e-6&&x<1e-6?x+x*x/2:Math.exp(x)-1;}:$expm1;},{}],87:[function(require,module,exports){// 20.2.2.16 Math.fround(x)
var sign=require('./_math-sign');var pow=Math.pow;var EPSILON=pow(2,-52);var EPSILON32=pow(2,-23);var MAX32=pow(2,127)*(2-EPSILON32);var MIN32=pow(2,-126);var roundTiesToEven=function roundTiesToEven(n){return n+1/EPSILON-1/EPSILON;};module.exports=Math.fround||function fround(x){var $abs=Math.abs(x);var $sign=sign(x);var a,result;if($abs<MIN32)return $sign*roundTiesToEven($abs/MIN32/EPSILON32)*MIN32*EPSILON32;a=(1+EPSILON32/EPSILON)*$abs;result=a-(a-$abs);// eslint-disable-next-line no-self-compare
if(result>MAX32||result!=result)return $sign*Infinity;return $sign*result;};},{"./_math-sign":90}],88:[function(require,module,exports){// 20.2.2.20 Math.log1p(x)
module.exports=Math.log1p||function log1p(x){return(x=+x)>-1e-8&&x<1e-8?x-x*x/2:Math.log(1+x);};},{}],89:[function(require,module,exports){// https://rwaldron.github.io/proposal-math-extensions/
module.exports=Math.scale||function scale(x,inLow,inHigh,outLow,outHigh){if(arguments.length===0// eslint-disable-next-line no-self-compare
||x!=x// eslint-disable-next-line no-self-compare
||inLow!=inLow// eslint-disable-next-line no-self-compare
||inHigh!=inHigh// eslint-disable-next-line no-self-compare
||outLow!=outLow// eslint-disable-next-line no-self-compare
||outHigh!=outHigh)return NaN;if(x===Infinity||x===-Infinity)return x;return(x-inLow)*(outHigh-outLow)/(inHigh-inLow)+outLow;};},{}],90:[function(require,module,exports){// 20.2.2.28 Math.sign(x)
module.exports=Math.sign||function sign(x){// eslint-disable-next-line no-self-compare
return(x=+x)==0||x!=x?x:x<0?-1:1;};},{}],91:[function(require,module,exports){var META=require('./_uid')('meta');var isObject=require('./_is-object');var has=require('./_has');var setDesc=require('./_object-dp').f;var id=0;var isExtensible=Object.isExtensible||function(){return true;};var FREEZE=!require('./_fails')(function(){return isExtensible(Object.preventExtensions({}));});var setMeta=function setMeta(it){setDesc(it,META,{value:{i:'O'+ ++id,// object ID
w:{}// weak collections IDs
}});};var fastKey=function fastKey(it,create){// return primitive with prefix
if(!isObject(it))return _typeof(it)=='symbol'?it:(typeof it=='string'?'S':'P')+it;if(!has(it,META)){// can't set metadata to uncaught frozen object
if(!isExtensible(it))return'F';// not necessary to add metadata
if(!create)return'E';// add missing metadata
setMeta(it);// return object ID
}return it[META].i;};var getWeak=function getWeak(it,create){if(!has(it,META)){// can't set metadata to uncaught frozen object
if(!isExtensible(it))return true;// not necessary to add metadata
if(!create)return false;// add missing metadata
setMeta(it);// return hash weak collections IDs
}return it[META].w;};// add metadata on freeze-family methods calling
var onFreeze=function onFreeze(it){if(FREEZE&&meta.NEED&&isExtensible(it)&&!has(it,META))setMeta(it);return it;};var meta=module.exports={KEY:META,NEED:false,fastKey:fastKey,getWeak:getWeak,onFreeze:onFreeze};},{"./_fails":60,"./_has":67,"./_is-object":77,"./_object-dp":97,"./_uid":149}],92:[function(require,module,exports){var Map=require('./es6.map');var $export=require('./_export');var shared=require('./_shared')('metadata');var store=shared.store||(shared.store=new(require('./es6.weak-map'))());var getOrCreateMetadataMap=function getOrCreateMetadataMap(target,targetKey,create){var targetMetadata=store.get(target);if(!targetMetadata){if(!create)return undefined;store.set(target,targetMetadata=new Map());}var keyMetadata=targetMetadata.get(targetKey);if(!keyMetadata){if(!create)return undefined;targetMetadata.set(targetKey,keyMetadata=new Map());}return keyMetadata;};var ordinaryHasOwnMetadata=function ordinaryHasOwnMetadata(MetadataKey,O,P){var metadataMap=getOrCreateMetadataMap(O,P,false);return metadataMap===undefined?false:metadataMap.has(MetadataKey);};var ordinaryGetOwnMetadata=function ordinaryGetOwnMetadata(MetadataKey,O,P){var metadataMap=getOrCreateMetadataMap(O,P,false);return metadataMap===undefined?undefined:metadataMap.get(MetadataKey);};var ordinaryDefineOwnMetadata=function ordinaryDefineOwnMetadata(MetadataKey,MetadataValue,O,P){getOrCreateMetadataMap(O,P,true).set(MetadataKey,MetadataValue);};var ordinaryOwnMetadataKeys=function ordinaryOwnMetadataKeys(target,targetKey){var metadataMap=getOrCreateMetadataMap(target,targetKey,false);var keys=[];if(metadataMap)metadataMap.forEach(function(_,key){keys.push(key);});return keys;};var toMetaKey=function toMetaKey(it){return it===undefined||_typeof(it)=='symbol'?it:String(it);};var exp=function exp(O){$export($export.S,'Reflect',O);};module.exports={store:store,map:getOrCreateMetadataMap,has:ordinaryHasOwnMetadata,get:ordinaryGetOwnMetadata,set:ordinaryDefineOwnMetadata,keys:ordinaryOwnMetadataKeys,key:toMetaKey,exp:exp};},{"./_export":58,"./_shared":128,"./es6.map":186,"./es6.weak-map":293}],93:[function(require,module,exports){var global=require('./_global');var macrotask=require('./_task').set;var Observer=global.MutationObserver||global.WebKitMutationObserver;var process=global.process;var Promise=global.Promise;var isNode=require('./_cof')(process)=='process';module.exports=function(){var head,last,notify;var flush=function flush(){var parent,fn;if(isNode&&(parent=process.domain))parent.exit();while(head){fn=head.fn;head=head.next;try{fn();}catch(e){if(head)notify();else last=undefined;throw e;}}last=undefined;if(parent)parent.enter();};// Node.js
if(isNode){notify=function notify(){process.nextTick(flush);};// browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
}else if(Observer&&!(global.navigator&&global.navigator.standalone)){var toggle=true;var node=document.createTextNode('');new Observer(flush).observe(node,{characterData:true});// eslint-disable-line no-new
notify=function notify(){node.data=toggle=!toggle;};// environments with maybe non-completely correct, but existent Promise
}else if(Promise&&Promise.resolve){// Promise.resolve without an argument throws an error in LG WebOS 2
var promise=Promise.resolve(undefined);notify=function notify(){promise.then(flush);};// for other environments - macrotask based on:
// - setImmediate
// - MessageChannel
// - window.postMessag
// - onreadystatechange
// - setTimeout
}else{notify=function notify(){// strange IE + webpack dev server bug - use .call(global)
macrotask.call(global,flush);};}return function(fn){var task={fn:fn,next:undefined};if(last)last.next=task;if(!head){head=task;notify();}last=task;};};},{"./_cof":43,"./_global":66,"./_task":138}],94:[function(require,module,exports){'use strict';// 25.4.1.5 NewPromiseCapability(C)
var aFunction=require('./_a-function');function PromiseCapability(C){var resolve,reject;this.promise=new C(function($$resolve,$$reject){if(resolve!==undefined||reject!==undefined)throw TypeError('Bad Promise constructor');resolve=$$resolve;reject=$$reject;});this.resolve=aFunction(resolve);this.reject=aFunction(reject);}module.exports.f=function(C){return new PromiseCapability(C);};},{"./_a-function":27}],95:[function(require,module,exports){'use strict';// 19.1.2.1 Object.assign(target, source, ...)
var DESCRIPTORS=require('./_descriptors');var getKeys=require('./_object-keys');var gOPS=require('./_object-gops');var pIE=require('./_object-pie');var toObject=require('./_to-object');var IObject=require('./_iobject');var $assign=Object.assign;// should work with symbols and should have deterministic property order (V8 bug)
module.exports=!$assign||require('./_fails')(function(){var A={};var B={};// eslint-disable-next-line no-undef
var S=Symbol();var K='abcdefghijklmnopqrst';A[S]=7;K.split('').forEach(function(k){B[k]=k;});return $assign({},A)[S]!=7||Object.keys($assign({},B)).join('')!=K;})?function assign(target,source){// eslint-disable-line no-unused-vars
var T=toObject(target);var aLen=arguments.length;var index=1;var getSymbols=gOPS.f;var isEnum=pIE.f;while(aLen>index){var S=IObject(arguments[index++]);var keys=getSymbols?getKeys(S).concat(getSymbols(S)):getKeys(S);var length=keys.length;var j=0;var key;while(length>j){key=keys[j++];if(!DESCRIPTORS||isEnum.call(S,key))T[key]=S[key];}}return T;}:$assign;},{"./_descriptors":54,"./_fails":60,"./_iobject":73,"./_object-gops":103,"./_object-keys":106,"./_object-pie":107,"./_to-object":144}],96:[function(require,module,exports){// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject=require('./_an-object');var dPs=require('./_object-dps');var enumBugKeys=require('./_enum-bug-keys');var IE_PROTO=require('./_shared-key')('IE_PROTO');var Empty=function Empty(){/* empty */};var PROTOTYPE='prototype';// Create object with fake `null` prototype: use iframe Object with cleared prototype
var _createDict=function createDict(){// Thrash, waste and sodomy: IE GC bug
var iframe=require('./_dom-create')('iframe');var i=enumBugKeys.length;var lt='<';var gt='>';var iframeDocument;iframe.style.display='none';require('./_html').appendChild(iframe);iframe.src='javascript:';// eslint-disable-line no-script-url
// createDict = iframe.contentWindow.Object;
// html.removeChild(iframe);
iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(lt+'script'+gt+'document.F=Object'+lt+'/script'+gt);iframeDocument.close();_createDict=iframeDocument.F;while(i--){delete _createDict[PROTOTYPE][enumBugKeys[i]];}return _createDict();};module.exports=Object.create||function create(O,Properties){var result;if(O!==null){Empty[PROTOTYPE]=anObject(O);result=new Empty();Empty[PROTOTYPE]=null;// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO]=O;}else result=_createDict();return Properties===undefined?result:dPs(result,Properties);};},{"./_an-object":32,"./_dom-create":55,"./_enum-bug-keys":56,"./_html":69,"./_object-dps":98,"./_shared-key":127}],97:[function(require,module,exports){var anObject=require('./_an-object');var IE8_DOM_DEFINE=require('./_ie8-dom-define');var toPrimitive=require('./_to-primitive');var dP=Object.defineProperty;exports.f=require('./_descriptors')?Object.defineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPrimitive(P,true);anObject(Attributes);if(IE8_DOM_DEFINE)try{return dP(O,P,Attributes);}catch(e){/* empty */}if('get'in Attributes||'set'in Attributes)throw TypeError('Accessors not supported!');if('value'in Attributes)O[P]=Attributes.value;return O;};},{"./_an-object":32,"./_descriptors":54,"./_ie8-dom-define":70,"./_to-primitive":145}],98:[function(require,module,exports){var dP=require('./_object-dp');var anObject=require('./_an-object');var getKeys=require('./_object-keys');module.exports=require('./_descriptors')?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var keys=getKeys(Properties);var length=keys.length;var i=0;var P;while(length>i){dP.f(O,P=keys[i++],Properties[P]);}return O;};},{"./_an-object":32,"./_descriptors":54,"./_object-dp":97,"./_object-keys":106}],99:[function(require,module,exports){'use strict';// Forced replacement prototype accessors methods
module.exports=require('./_library')||!require('./_fails')(function(){var K=Math.random();// In FF throws only define methods
// eslint-disable-next-line no-undef, no-useless-call
__defineSetter__.call(null,K,function(){/* empty */});delete require('./_global')[K];});},{"./_fails":60,"./_global":66,"./_library":85}],100:[function(require,module,exports){var pIE=require('./_object-pie');var createDesc=require('./_property-desc');var toIObject=require('./_to-iobject');var toPrimitive=require('./_to-primitive');var has=require('./_has');var IE8_DOM_DEFINE=require('./_ie8-dom-define');var gOPD=Object.getOwnPropertyDescriptor;exports.f=require('./_descriptors')?gOPD:function getOwnPropertyDescriptor(O,P){O=toIObject(O);P=toPrimitive(P,true);if(IE8_DOM_DEFINE)try{return gOPD(O,P);}catch(e){/* empty */}if(has(O,P))return createDesc(!pIE.f.call(O,P),O[P]);};},{"./_descriptors":54,"./_has":67,"./_ie8-dom-define":70,"./_object-pie":107,"./_property-desc":115,"./_to-iobject":142,"./_to-primitive":145}],101:[function(require,module,exports){// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject=require('./_to-iobject');var gOPN=require('./_object-gopn').f;var toString={}.toString;var windowNames=(typeof window==="undefined"?"undefined":_typeof(window))=='object'&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function getWindowNames(it){try{return gOPN(it);}catch(e){return windowNames.slice();}};module.exports.f=function getOwnPropertyNames(it){return windowNames&&toString.call(it)=='[object Window]'?getWindowNames(it):gOPN(toIObject(it));};},{"./_object-gopn":102,"./_to-iobject":142}],102:[function(require,module,exports){// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys=require('./_object-keys-internal');var hiddenKeys=require('./_enum-bug-keys').concat('length','prototype');exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return $keys(O,hiddenKeys);};},{"./_enum-bug-keys":56,"./_object-keys-internal":105}],103:[function(require,module,exports){exports.f=Object.getOwnPropertySymbols;},{}],104:[function(require,module,exports){// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has=require('./_has');var toObject=require('./_to-object');var IE_PROTO=require('./_shared-key')('IE_PROTO');var ObjectProto=Object.prototype;module.exports=Object.getPrototypeOf||function(O){O=toObject(O);if(has(O,IE_PROTO))return O[IE_PROTO];if(typeof O.constructor=='function'&&O instanceof O.constructor){return O.constructor.prototype;}return O instanceof Object?ObjectProto:null;};},{"./_has":67,"./_shared-key":127,"./_to-object":144}],105:[function(require,module,exports){var has=require('./_has');var toIObject=require('./_to-iobject');var arrayIndexOf=require('./_array-includes')(false);var IE_PROTO=require('./_shared-key')('IE_PROTO');module.exports=function(object,names){var O=toIObject(object);var i=0;var result=[];var key;for(key in O){if(key!=IE_PROTO)has(O,key)&&result.push(key);}// Don't enum bug & hidden keys
while(names.length>i){if(has(O,key=names[i++])){~arrayIndexOf(result,key)||result.push(key);}}return result;};},{"./_array-includes":36,"./_has":67,"./_shared-key":127,"./_to-iobject":142}],106:[function(require,module,exports){// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys=require('./_object-keys-internal');var enumBugKeys=require('./_enum-bug-keys');module.exports=Object.keys||function keys(O){return $keys(O,enumBugKeys);};},{"./_enum-bug-keys":56,"./_object-keys-internal":105}],107:[function(require,module,exports){exports.f={}.propertyIsEnumerable;},{}],108:[function(require,module,exports){// most Object methods by ES6 should accept primitives
var $export=require('./_export');var core=require('./_core');var fails=require('./_fails');module.exports=function(KEY,exec){var fn=(core.Object||{})[KEY]||Object[KEY];var exp={};exp[KEY]=exec(fn);$export($export.S+$export.F*fails(function(){fn(1);}),'Object',exp);};},{"./_core":48,"./_export":58,"./_fails":60}],109:[function(require,module,exports){var DESCRIPTORS=require('./_descriptors');var getKeys=require('./_object-keys');var toIObject=require('./_to-iobject');var isEnum=require('./_object-pie').f;module.exports=function(isEntries){return function(it){var O=toIObject(it);var keys=getKeys(O);var length=keys.length;var i=0;var result=[];var key;while(length>i){key=keys[i++];if(!DESCRIPTORS||isEnum.call(O,key)){result.push(isEntries?[key,O[key]]:O[key]);}}return result;};};},{"./_descriptors":54,"./_object-keys":106,"./_object-pie":107,"./_to-iobject":142}],110:[function(require,module,exports){// all object keys, includes non-enumerable and symbols
var gOPN=require('./_object-gopn');var gOPS=require('./_object-gops');var anObject=require('./_an-object');var Reflect=require('./_global').Reflect;module.exports=Reflect&&Reflect.ownKeys||function ownKeys(it){var keys=gOPN.f(anObject(it));var getSymbols=gOPS.f;return getSymbols?keys.concat(getSymbols(it)):keys;};},{"./_an-object":32,"./_global":66,"./_object-gopn":102,"./_object-gops":103}],111:[function(require,module,exports){var $parseFloat=require('./_global').parseFloat;var $trim=require('./_string-trim').trim;module.exports=1/$parseFloat(require('./_string-ws')+'-0')!==-Infinity?function parseFloat(str){var string=$trim(String(str),3);var result=$parseFloat(string);return result===0&&string.charAt(0)=='-'?-0:result;}:$parseFloat;},{"./_global":66,"./_string-trim":136,"./_string-ws":137}],112:[function(require,module,exports){var $parseInt=require('./_global').parseInt;var $trim=require('./_string-trim').trim;var ws=require('./_string-ws');var hex=/^[-+]?0[xX]/;module.exports=$parseInt(ws+'08')!==8||$parseInt(ws+'0x16')!==22?function parseInt(str,radix){var string=$trim(String(str),3);return $parseInt(string,radix>>>0||(hex.test(string)?16:10));}:$parseInt;},{"./_global":66,"./_string-trim":136,"./_string-ws":137}],113:[function(require,module,exports){module.exports=function(exec){try{return{e:false,v:exec()};}catch(e){return{e:true,v:e};}};},{}],114:[function(require,module,exports){var anObject=require('./_an-object');var isObject=require('./_is-object');var newPromiseCapability=require('./_new-promise-capability');module.exports=function(C,x){anObject(C);if(isObject(x)&&x.constructor===C)return x;var promiseCapability=newPromiseCapability.f(C);var resolve=promiseCapability.resolve;resolve(x);return promiseCapability.promise;};},{"./_an-object":32,"./_is-object":77,"./_new-promise-capability":94}],115:[function(require,module,exports){module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value};};},{}],116:[function(require,module,exports){var redefine=require('./_redefine');module.exports=function(target,src,safe){for(var key in src){redefine(target,key,src[key],safe);}return target;};},{"./_redefine":117}],117:[function(require,module,exports){var global=require('./_global');var hide=require('./_hide');var has=require('./_has');var SRC=require('./_uid')('src');var $toString=require('./_function-to-string');var TO_STRING='toString';var TPL=(''+$toString).split(TO_STRING);require('./_core').inspectSource=function(it){return $toString.call(it);};(module.exports=function(O,key,val,safe){var isFunction=typeof val=='function';if(isFunction)has(val,'name')||hide(val,'name',key);if(O[key]===val)return;if(isFunction)has(val,SRC)||hide(val,SRC,O[key]?''+O[key]:TPL.join(String(key)));if(O===global){O[key]=val;}else if(!safe){delete O[key];hide(O,key,val);}else if(O[key]){O[key]=val;}else{hide(O,key,val);}// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype,TO_STRING,function toString(){return typeof this=='function'&&this[SRC]||$toString.call(this);});},{"./_core":48,"./_function-to-string":65,"./_global":66,"./_has":67,"./_hide":68,"./_uid":149}],118:[function(require,module,exports){'use strict';var classof=require('./_classof');var builtinExec=RegExp.prototype.exec;// `RegExpExec` abstract operation
// https://tc39.github.io/ecma262/#sec-regexpexec
module.exports=function(R,S){var exec=R.exec;if(typeof exec==='function'){var result=exec.call(R,S);if(_typeof(result)!=='object'){throw new TypeError('RegExp exec method returned something other than an Object or null');}return result;}if(classof(R)!=='RegExp'){throw new TypeError('RegExp#exec called on incompatible receiver');}return builtinExec.call(R,S);};},{"./_classof":42}],119:[function(require,module,exports){'use strict';var regexpFlags=require('./_flags');var nativeExec=RegExp.prototype.exec;// This always refers to the native implementation, because the
// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
// which loads this file before patching the method.
var nativeReplace=String.prototype.replace;var patchedExec=nativeExec;var LAST_INDEX='lastIndex';var UPDATES_LAST_INDEX_WRONG=function(){var re1=/a/,re2=/b*/g;nativeExec.call(re1,'a');nativeExec.call(re2,'a');return re1[LAST_INDEX]!==0||re2[LAST_INDEX]!==0;}();// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED=/()??/.exec('')[1]!==undefined;var PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED;if(PATCH){patchedExec=function exec(str){var re=this;var lastIndex,reCopy,match,i;if(NPCG_INCLUDED){reCopy=new RegExp('^'+re.source+'$(?!\\s)',regexpFlags.call(re));}if(UPDATES_LAST_INDEX_WRONG)lastIndex=re[LAST_INDEX];match=nativeExec.call(re,str);if(UPDATES_LAST_INDEX_WRONG&&match){re[LAST_INDEX]=re.global?match.index+match[0].length:lastIndex;}if(NPCG_INCLUDED&&match&&match.length>1){// Fix browsers whose `exec` methods don't consistently return `undefined`
// for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
// eslint-disable-next-line no-loop-func
nativeReplace.call(match[0],reCopy,function(){for(i=1;i<arguments.length-2;i++){if(arguments[i]===undefined)match[i]=undefined;}});}return match;};}module.exports=patchedExec;},{"./_flags":62}],120:[function(require,module,exports){module.exports=function(regExp,replace){var replacer=replace===Object(replace)?function(part){return replace[part];}:replace;return function(it){return String(it).replace(regExp,replacer);};};},{}],121:[function(require,module,exports){// 7.2.9 SameValue(x, y)
module.exports=Object.is||function is(x,y){// eslint-disable-next-line no-self-compare
return x===y?x!==0||1/x===1/y:x!=x&&y!=y;};},{}],122:[function(require,module,exports){'use strict';// https://tc39.github.io/proposal-setmap-offrom/
var $export=require('./_export');var aFunction=require('./_a-function');var ctx=require('./_ctx');var forOf=require('./_for-of');module.exports=function(COLLECTION){$export($export.S,COLLECTION,{from:function from(source/* , mapFn, thisArg */){var mapFn=arguments[1];var mapping,A,n,cb;aFunction(this);mapping=mapFn!==undefined;if(mapping)aFunction(mapFn);if(source==undefined)return new this();A=[];if(mapping){n=0;cb=ctx(mapFn,arguments[2],2);forOf(source,false,function(nextItem){A.push(cb(nextItem,n++));});}else{forOf(source,false,A.push,A);}return new this(A);}});};},{"./_a-function":27,"./_ctx":50,"./_export":58,"./_for-of":64}],123:[function(require,module,exports){'use strict';// https://tc39.github.io/proposal-setmap-offrom/
var $export=require('./_export');module.exports=function(COLLECTION){$export($export.S,COLLECTION,{of:function of(){var length=arguments.length;var A=new Array(length);while(length--){A[length]=arguments[length];}return new this(A);}});};},{"./_export":58}],124:[function(require,module,exports){// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */var isObject=require('./_is-object');var anObject=require('./_an-object');var check=function check(O,proto){anObject(O);if(!isObject(proto)&&proto!==null)throw TypeError(proto+": can't set as prototype!");};module.exports={set:Object.setPrototypeOf||('__proto__'in{}?// eslint-disable-line
function(test,buggy,set){try{set=require('./_ctx')(Function.call,require('./_object-gopd').f(Object.prototype,'__proto__').set,2);set(test,[]);buggy=!(test instanceof Array);}catch(e){buggy=true;}return function setPrototypeOf(O,proto){check(O,proto);if(buggy)O.__proto__=proto;else set(O,proto);return O;};}({},false):undefined),check:check};},{"./_an-object":32,"./_ctx":50,"./_is-object":77,"./_object-gopd":100}],125:[function(require,module,exports){'use strict';var global=require('./_global');var dP=require('./_object-dp');var DESCRIPTORS=require('./_descriptors');var SPECIES=require('./_wks')('species');module.exports=function(KEY){var C=global[KEY];if(DESCRIPTORS&&C&&!C[SPECIES])dP.f(C,SPECIES,{configurable:true,get:function get(){return this;}});};},{"./_descriptors":54,"./_global":66,"./_object-dp":97,"./_wks":154}],126:[function(require,module,exports){var def=require('./_object-dp').f;var has=require('./_has');var TAG=require('./_wks')('toStringTag');module.exports=function(it,tag,stat){if(it&&!has(it=stat?it:it.prototype,TAG))def(it,TAG,{configurable:true,value:tag});};},{"./_has":67,"./_object-dp":97,"./_wks":154}],127:[function(require,module,exports){var shared=require('./_shared')('keys');var uid=require('./_uid');module.exports=function(key){return shared[key]||(shared[key]=uid(key));};},{"./_shared":128,"./_uid":149}],128:[function(require,module,exports){var core=require('./_core');var global=require('./_global');var SHARED='__core-js_shared__';var store=global[SHARED]||(global[SHARED]={});(module.exports=function(key,value){return store[key]||(store[key]=value!==undefined?value:{});})('versions',[]).push({version:core.version,mode:require('./_library')?'pure':'global',copyright:'© 2019 Denis Pushkarev (zloirock.ru)'});},{"./_core":48,"./_global":66,"./_library":85}],129:[function(require,module,exports){// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject=require('./_an-object');var aFunction=require('./_a-function');var SPECIES=require('./_wks')('species');module.exports=function(O,D){var C=anObject(O).constructor;var S;return C===undefined||(S=anObject(C)[SPECIES])==undefined?D:aFunction(S);};},{"./_a-function":27,"./_an-object":32,"./_wks":154}],130:[function(require,module,exports){'use strict';var fails=require('./_fails');module.exports=function(method,arg){return!!method&&fails(function(){// eslint-disable-next-line no-useless-call
arg?method.call(null,function(){/* empty */},1):method.call(null);});};},{"./_fails":60}],131:[function(require,module,exports){var toInteger=require('./_to-integer');var defined=require('./_defined');// true  -> String#at
// false -> String#codePointAt
module.exports=function(TO_STRING){return function(that,pos){var s=String(defined(that));var i=toInteger(pos);var l=s.length;var a,b;if(i<0||i>=l)return TO_STRING?'':undefined;a=s.charCodeAt(i);return a<0xd800||a>0xdbff||i+1===l||(b=s.charCodeAt(i+1))<0xdc00||b>0xdfff?TO_STRING?s.charAt(i):a:TO_STRING?s.slice(i,i+2):(a-0xd800<<10)+(b-0xdc00)+0x10000;};};},{"./_defined":53,"./_to-integer":141}],132:[function(require,module,exports){// helper for String#{startsWith, endsWith, includes}
var isRegExp=require('./_is-regexp');var defined=require('./_defined');module.exports=function(that,searchString,NAME){if(isRegExp(searchString))throw TypeError('String#'+NAME+" doesn't accept regex!");return String(defined(that));};},{"./_defined":53,"./_is-regexp":78}],133:[function(require,module,exports){var $export=require('./_export');var fails=require('./_fails');var defined=require('./_defined');var quot=/"/g;// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
var createHTML=function createHTML(string,tag,attribute,value){var S=String(defined(string));var p1='<'+tag;if(attribute!=='')p1+=' '+attribute+'="'+String(value).replace(quot,'&quot;')+'"';return p1+'>'+S+'</'+tag+'>';};module.exports=function(NAME,exec){var O={};O[NAME]=exec(createHTML);$export($export.P+$export.F*fails(function(){var test=''[NAME]('"');return test!==test.toLowerCase()||test.split('"').length>3;}),'String',O);};},{"./_defined":53,"./_export":58,"./_fails":60}],134:[function(require,module,exports){// https://github.com/tc39/proposal-string-pad-start-end
var toLength=require('./_to-length');var repeat=require('./_string-repeat');var defined=require('./_defined');module.exports=function(that,maxLength,fillString,left){var S=String(defined(that));var stringLength=S.length;var fillStr=fillString===undefined?' ':String(fillString);var intMaxLength=toLength(maxLength);if(intMaxLength<=stringLength||fillStr=='')return S;var fillLen=intMaxLength-stringLength;var stringFiller=repeat.call(fillStr,Math.ceil(fillLen/fillStr.length));if(stringFiller.length>fillLen)stringFiller=stringFiller.slice(0,fillLen);return left?stringFiller+S:S+stringFiller;};},{"./_defined":53,"./_string-repeat":135,"./_to-length":143}],135:[function(require,module,exports){'use strict';var toInteger=require('./_to-integer');var defined=require('./_defined');module.exports=function repeat(count){var str=String(defined(this));var res='';var n=toInteger(count);if(n<0||n==Infinity)throw RangeError("Count can't be negative");for(;n>0;(n>>>=1)&&(str+=str)){if(n&1)res+=str;}return res;};},{"./_defined":53,"./_to-integer":141}],136:[function(require,module,exports){var $export=require('./_export');var defined=require('./_defined');var fails=require('./_fails');var spaces=require('./_string-ws');var space='['+spaces+']';var non="\u200B\x85";var ltrim=RegExp('^'+space+space+'*');var rtrim=RegExp(space+space+'*$');var exporter=function exporter(KEY,exec,ALIAS){var exp={};var FORCE=fails(function(){return!!spaces[KEY]()||non[KEY]()!=non;});var fn=exp[KEY]=FORCE?exec(trim):spaces[KEY];if(ALIAS)exp[ALIAS]=fn;$export($export.P+$export.F*FORCE,'String',exp);};// 1 -> String#trimLeft
// 2 -> String#trimRight
// 3 -> String#trim
var trim=exporter.trim=function(string,TYPE){string=String(defined(string));if(TYPE&1)string=string.replace(ltrim,'');if(TYPE&2)string=string.replace(rtrim,'');return string;};module.exports=exporter;},{"./_defined":53,"./_export":58,"./_fails":60,"./_string-ws":137}],137:[function(require,module,exports){module.exports="\t\n\x0B\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003"+"\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";},{}],138:[function(require,module,exports){var ctx=require('./_ctx');var invoke=require('./_invoke');var html=require('./_html');var cel=require('./_dom-create');var global=require('./_global');var process=global.process;var setTask=global.setImmediate;var clearTask=global.clearImmediate;var MessageChannel=global.MessageChannel;var Dispatch=global.Dispatch;var counter=0;var queue={};var ONREADYSTATECHANGE='onreadystatechange';var defer,channel,port;var run=function run(){var id=+this;// eslint-disable-next-line no-prototype-builtins
if(queue.hasOwnProperty(id)){var fn=queue[id];delete queue[id];fn();}};var listener=function listener(event){run.call(event.data);};// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if(!setTask||!clearTask){setTask=function setImmediate(fn){var args=[];var i=1;while(arguments.length>i){args.push(arguments[i++]);}queue[++counter]=function(){// eslint-disable-next-line no-new-func
invoke(typeof fn=='function'?fn:Function(fn),args);};defer(counter);return counter;};clearTask=function clearImmediate(id){delete queue[id];};// Node.js 0.8-
if(require('./_cof')(process)=='process'){defer=function defer(id){process.nextTick(ctx(run,id,1));};// Sphere (JS game engine) Dispatch API
}else if(Dispatch&&Dispatch.now){defer=function defer(id){Dispatch.now(ctx(run,id,1));};// Browsers with MessageChannel, includes WebWorkers
}else if(MessageChannel){channel=new MessageChannel();port=channel.port2;channel.port1.onmessage=listener;defer=ctx(port.postMessage,port,1);// Browsers with postMessage, skip WebWorkers
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
}else if(global.addEventListener&&typeof postMessage=='function'&&!global.importScripts){defer=function defer(id){global.postMessage(id+'','*');};global.addEventListener('message',listener,false);// IE8-
}else if(ONREADYSTATECHANGE in cel('script')){defer=function defer(id){html.appendChild(cel('script'))[ONREADYSTATECHANGE]=function(){html.removeChild(this);run.call(id);};};// Rest old browsers
}else{defer=function defer(id){setTimeout(ctx(run,id,1),0);};}}module.exports={set:setTask,clear:clearTask};},{"./_cof":43,"./_ctx":50,"./_dom-create":55,"./_global":66,"./_html":69,"./_invoke":72}],139:[function(require,module,exports){var toInteger=require('./_to-integer');var max=Math.max;var min=Math.min;module.exports=function(index,length){index=toInteger(index);return index<0?max(index+length,0):min(index,length);};},{"./_to-integer":141}],140:[function(require,module,exports){// https://tc39.github.io/ecma262/#sec-toindex
var toInteger=require('./_to-integer');var toLength=require('./_to-length');module.exports=function(it){if(it===undefined)return 0;var number=toInteger(it);var length=toLength(number);if(number!==length)throw RangeError('Wrong length!');return length;};},{"./_to-integer":141,"./_to-length":143}],141:[function(require,module,exports){// 7.1.4 ToInteger
var ceil=Math.ceil;var floor=Math.floor;module.exports=function(it){return isNaN(it=+it)?0:(it>0?floor:ceil)(it);};},{}],142:[function(require,module,exports){// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject=require('./_iobject');var defined=require('./_defined');module.exports=function(it){return IObject(defined(it));};},{"./_defined":53,"./_iobject":73}],143:[function(require,module,exports){// 7.1.15 ToLength
var toInteger=require('./_to-integer');var min=Math.min;module.exports=function(it){return it>0?min(toInteger(it),0x1fffffffffffff):0;// pow(2, 53) - 1 == 9007199254740991
};},{"./_to-integer":141}],144:[function(require,module,exports){// 7.1.13 ToObject(argument)
var defined=require('./_defined');module.exports=function(it){return Object(defined(it));};},{"./_defined":53}],145:[function(require,module,exports){// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject=require('./_is-object');// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports=function(it,S){if(!isObject(it))return it;var fn,val;if(S&&typeof(fn=it.toString)=='function'&&!isObject(val=fn.call(it)))return val;if(typeof(fn=it.valueOf)=='function'&&!isObject(val=fn.call(it)))return val;if(!S&&typeof(fn=it.toString)=='function'&&!isObject(val=fn.call(it)))return val;throw TypeError("Can't convert object to primitive value");};},{"./_is-object":77}],146:[function(require,module,exports){'use strict';if(require('./_descriptors')){var LIBRARY=require('./_library');var global=require('./_global');var fails=require('./_fails');var $export=require('./_export');var $typed=require('./_typed');var $buffer=require('./_typed-buffer');var ctx=require('./_ctx');var anInstance=require('./_an-instance');var propertyDesc=require('./_property-desc');var hide=require('./_hide');var redefineAll=require('./_redefine-all');var toInteger=require('./_to-integer');var toLength=require('./_to-length');var toIndex=require('./_to-index');var toAbsoluteIndex=require('./_to-absolute-index');var toPrimitive=require('./_to-primitive');var has=require('./_has');var classof=require('./_classof');var isObject=require('./_is-object');var toObject=require('./_to-object');var isArrayIter=require('./_is-array-iter');var create=require('./_object-create');var getPrototypeOf=require('./_object-gpo');var gOPN=require('./_object-gopn').f;var getIterFn=require('./core.get-iterator-method');var uid=require('./_uid');var wks=require('./_wks');var createArrayMethod=require('./_array-methods');var createArrayIncludes=require('./_array-includes');var speciesConstructor=require('./_species-constructor');var ArrayIterators=require('./es6.array.iterator');var Iterators=require('./_iterators');var $iterDetect=require('./_iter-detect');var setSpecies=require('./_set-species');var arrayFill=require('./_array-fill');var arrayCopyWithin=require('./_array-copy-within');var $DP=require('./_object-dp');var $GOPD=require('./_object-gopd');var dP=$DP.f;var gOPD=$GOPD.f;var RangeError=global.RangeError;var TypeError=global.TypeError;var Uint8Array=global.Uint8Array;var ARRAY_BUFFER='ArrayBuffer';var SHARED_BUFFER='Shared'+ARRAY_BUFFER;var BYTES_PER_ELEMENT='BYTES_PER_ELEMENT';var PROTOTYPE='prototype';var ArrayProto=Array[PROTOTYPE];var $ArrayBuffer=$buffer.ArrayBuffer;var $DataView=$buffer.DataView;var arrayForEach=createArrayMethod(0);var arrayFilter=createArrayMethod(2);var arraySome=createArrayMethod(3);var arrayEvery=createArrayMethod(4);var arrayFind=createArrayMethod(5);var arrayFindIndex=createArrayMethod(6);var arrayIncludes=createArrayIncludes(true);var arrayIndexOf=createArrayIncludes(false);var arrayValues=ArrayIterators.values;var arrayKeys=ArrayIterators.keys;var arrayEntries=ArrayIterators.entries;var arrayLastIndexOf=ArrayProto.lastIndexOf;var arrayReduce=ArrayProto.reduce;var arrayReduceRight=ArrayProto.reduceRight;var arrayJoin=ArrayProto.join;var arraySort=ArrayProto.sort;var arraySlice=ArrayProto.slice;var arrayToString=ArrayProto.toString;var arrayToLocaleString=ArrayProto.toLocaleString;var ITERATOR=wks('iterator');var TAG=wks('toStringTag');var TYPED_CONSTRUCTOR=uid('typed_constructor');var DEF_CONSTRUCTOR=uid('def_constructor');var ALL_CONSTRUCTORS=$typed.CONSTR;var TYPED_ARRAY=$typed.TYPED;var VIEW=$typed.VIEW;var WRONG_LENGTH='Wrong length!';var $map=createArrayMethod(1,function(O,length){return allocate(speciesConstructor(O,O[DEF_CONSTRUCTOR]),length);});var LITTLE_ENDIAN=fails(function(){// eslint-disable-next-line no-undef
return new Uint8Array(new Uint16Array([1]).buffer)[0]===1;});var FORCED_SET=!!Uint8Array&&!!Uint8Array[PROTOTYPE].set&&fails(function(){new Uint8Array(1).set({});});var toOffset=function toOffset(it,BYTES){var offset=toInteger(it);if(offset<0||offset%BYTES)throw RangeError('Wrong offset!');return offset;};var validate=function validate(it){if(isObject(it)&&TYPED_ARRAY in it)return it;throw TypeError(it+' is not a typed array!');};var allocate=function allocate(C,length){if(!(isObject(C)&&TYPED_CONSTRUCTOR in C)){throw TypeError('It is not a typed array constructor!');}return new C(length);};var speciesFromList=function speciesFromList(O,list){return fromList(speciesConstructor(O,O[DEF_CONSTRUCTOR]),list);};var fromList=function fromList(C,list){var index=0;var length=list.length;var result=allocate(C,length);while(length>index){result[index]=list[index++];}return result;};var addGetter=function addGetter(it,key,internal){dP(it,key,{get:function get(){return this._d[internal];}});};var $from=function from(source/* , mapfn, thisArg */){var O=toObject(source);var aLen=arguments.length;var mapfn=aLen>1?arguments[1]:undefined;var mapping=mapfn!==undefined;var iterFn=getIterFn(O);var i,length,values,result,step,iterator;if(iterFn!=undefined&&!isArrayIter(iterFn)){for(iterator=iterFn.call(O),values=[],i=0;!(step=iterator.next()).done;i++){values.push(step.value);}O=values;}if(mapping&&aLen>2)mapfn=ctx(mapfn,arguments[2],2);for(i=0,length=toLength(O.length),result=allocate(this,length);length>i;i++){result[i]=mapping?mapfn(O[i],i):O[i];}return result;};var $of=function of()/* ...items */{var index=0;var length=arguments.length;var result=allocate(this,length);while(length>index){result[index]=arguments[index++];}return result;};// iOS Safari 6.x fails here
var TO_LOCALE_BUG=!!Uint8Array&&fails(function(){arrayToLocaleString.call(new Uint8Array(1));});var $toLocaleString=function toLocaleString(){return arrayToLocaleString.apply(TO_LOCALE_BUG?arraySlice.call(validate(this)):validate(this),arguments);};var proto={copyWithin:function copyWithin(target,start/* , end */){return arrayCopyWithin.call(validate(this),target,start,arguments.length>2?arguments[2]:undefined);},every:function every(callbackfn/* , thisArg */){return arrayEvery(validate(this),callbackfn,arguments.length>1?arguments[1]:undefined);},fill:function fill(value/* , start, end */){// eslint-disable-line no-unused-vars
return arrayFill.apply(validate(this),arguments);},filter:function filter(callbackfn/* , thisArg */){return speciesFromList(this,arrayFilter(validate(this),callbackfn,arguments.length>1?arguments[1]:undefined));},find:function find(predicate/* , thisArg */){return arrayFind(validate(this),predicate,arguments.length>1?arguments[1]:undefined);},findIndex:function findIndex(predicate/* , thisArg */){return arrayFindIndex(validate(this),predicate,arguments.length>1?arguments[1]:undefined);},forEach:function forEach(callbackfn/* , thisArg */){arrayForEach(validate(this),callbackfn,arguments.length>1?arguments[1]:undefined);},indexOf:function indexOf(searchElement/* , fromIndex */){return arrayIndexOf(validate(this),searchElement,arguments.length>1?arguments[1]:undefined);},includes:function includes(searchElement/* , fromIndex */){return arrayIncludes(validate(this),searchElement,arguments.length>1?arguments[1]:undefined);},join:function join(separator){// eslint-disable-line no-unused-vars
return arrayJoin.apply(validate(this),arguments);},lastIndexOf:function lastIndexOf(searchElement/* , fromIndex */){// eslint-disable-line no-unused-vars
return arrayLastIndexOf.apply(validate(this),arguments);},map:function map(mapfn/* , thisArg */){return $map(validate(this),mapfn,arguments.length>1?arguments[1]:undefined);},reduce:function reduce(callbackfn/* , initialValue */){// eslint-disable-line no-unused-vars
return arrayReduce.apply(validate(this),arguments);},reduceRight:function reduceRight(callbackfn/* , initialValue */){// eslint-disable-line no-unused-vars
return arrayReduceRight.apply(validate(this),arguments);},reverse:function reverse(){var that=this;var length=validate(that).length;var middle=Math.floor(length/2);var index=0;var value;while(index<middle){value=that[index];that[index++]=that[--length];that[length]=value;}return that;},some:function some(callbackfn/* , thisArg */){return arraySome(validate(this),callbackfn,arguments.length>1?arguments[1]:undefined);},sort:function sort(comparefn){return arraySort.call(validate(this),comparefn);},subarray:function subarray(begin,end){var O=validate(this);var length=O.length;var $begin=toAbsoluteIndex(begin,length);return new(speciesConstructor(O,O[DEF_CONSTRUCTOR]))(O.buffer,O.byteOffset+$begin*O.BYTES_PER_ELEMENT,toLength((end===undefined?length:toAbsoluteIndex(end,length))-$begin));}};var $slice=function slice(start,end){return speciesFromList(this,arraySlice.call(validate(this),start,end));};var $set=function set(arrayLike/* , offset */){validate(this);var offset=toOffset(arguments[1],1);var length=this.length;var src=toObject(arrayLike);var len=toLength(src.length);var index=0;if(len+offset>length)throw RangeError(WRONG_LENGTH);while(index<len){this[offset+index]=src[index++];}};var $iterators={entries:function entries(){return arrayEntries.call(validate(this));},keys:function keys(){return arrayKeys.call(validate(this));},values:function values(){return arrayValues.call(validate(this));}};var isTAIndex=function isTAIndex(target,key){return isObject(target)&&target[TYPED_ARRAY]&&_typeof(key)!='symbol'&&key in target&&String(+key)==String(key);};var $getDesc=function getOwnPropertyDescriptor(target,key){return isTAIndex(target,key=toPrimitive(key,true))?propertyDesc(2,target[key]):gOPD(target,key);};var $setDesc=function defineProperty(target,key,desc){if(isTAIndex(target,key=toPrimitive(key,true))&&isObject(desc)&&has(desc,'value')&&!has(desc,'get')&&!has(desc,'set')// TODO: add validation descriptor w/o calling accessors
&&!desc.configurable&&(!has(desc,'writable')||desc.writable)&&(!has(desc,'enumerable')||desc.enumerable)){target[key]=desc.value;return target;}return dP(target,key,desc);};if(!ALL_CONSTRUCTORS){$GOPD.f=$getDesc;$DP.f=$setDesc;}$export($export.S+$export.F*!ALL_CONSTRUCTORS,'Object',{getOwnPropertyDescriptor:$getDesc,defineProperty:$setDesc});if(fails(function(){arrayToString.call({});})){arrayToString=arrayToLocaleString=function toString(){return arrayJoin.call(this);};}var $TypedArrayPrototype$=redefineAll({},proto);redefineAll($TypedArrayPrototype$,$iterators);hide($TypedArrayPrototype$,ITERATOR,$iterators.values);redefineAll($TypedArrayPrototype$,{slice:$slice,set:$set,constructor:function constructor(){/* noop */},toString:arrayToString,toLocaleString:$toLocaleString});addGetter($TypedArrayPrototype$,'buffer','b');addGetter($TypedArrayPrototype$,'byteOffset','o');addGetter($TypedArrayPrototype$,'byteLength','l');addGetter($TypedArrayPrototype$,'length','e');dP($TypedArrayPrototype$,TAG,{get:function get(){return this[TYPED_ARRAY];}});// eslint-disable-next-line max-statements
module.exports=function(KEY,BYTES,wrapper,CLAMPED){CLAMPED=!!CLAMPED;var NAME=KEY+(CLAMPED?'Clamped':'')+'Array';var GETTER='get'+KEY;var SETTER='set'+KEY;var TypedArray=global[NAME];var Base=TypedArray||{};var TAC=TypedArray&&getPrototypeOf(TypedArray);var FORCED=!TypedArray||!$typed.ABV;var O={};var TypedArrayPrototype=TypedArray&&TypedArray[PROTOTYPE];var getter=function getter(that,index){var data=that._d;return data.v[GETTER](index*BYTES+data.o,LITTLE_ENDIAN);};var setter=function setter(that,index,value){var data=that._d;if(CLAMPED)value=(value=Math.round(value))<0?0:value>0xff?0xff:value&0xff;data.v[SETTER](index*BYTES+data.o,value,LITTLE_ENDIAN);};var addElement=function addElement(that,index){dP(that,index,{get:function get(){return getter(this,index);},set:function set(value){return setter(this,index,value);},enumerable:true});};if(FORCED){TypedArray=wrapper(function(that,data,$offset,$length){anInstance(that,TypedArray,NAME,'_d');var index=0;var offset=0;var buffer,byteLength,length,klass;if(!isObject(data)){length=toIndex(data);byteLength=length*BYTES;buffer=new $ArrayBuffer(byteLength);}else if(data instanceof $ArrayBuffer||(klass=classof(data))==ARRAY_BUFFER||klass==SHARED_BUFFER){buffer=data;offset=toOffset($offset,BYTES);var $len=data.byteLength;if($length===undefined){if($len%BYTES)throw RangeError(WRONG_LENGTH);byteLength=$len-offset;if(byteLength<0)throw RangeError(WRONG_LENGTH);}else{byteLength=toLength($length)*BYTES;if(byteLength+offset>$len)throw RangeError(WRONG_LENGTH);}length=byteLength/BYTES;}else if(TYPED_ARRAY in data){return fromList(TypedArray,data);}else{return $from.call(TypedArray,data);}hide(that,'_d',{b:buffer,o:offset,l:byteLength,e:length,v:new $DataView(buffer)});while(index<length){addElement(that,index++);}});TypedArrayPrototype=TypedArray[PROTOTYPE]=create($TypedArrayPrototype$);hide(TypedArrayPrototype,'constructor',TypedArray);}else if(!fails(function(){TypedArray(1);})||!fails(function(){new TypedArray(-1);// eslint-disable-line no-new
})||!$iterDetect(function(iter){new TypedArray();// eslint-disable-line no-new
new TypedArray(null);// eslint-disable-line no-new
new TypedArray(1.5);// eslint-disable-line no-new
new TypedArray(iter);// eslint-disable-line no-new
},true)){TypedArray=wrapper(function(that,data,$offset,$length){anInstance(that,TypedArray,NAME);var klass;// `ws` module bug, temporarily remove validation length for Uint8Array
// https://github.com/websockets/ws/pull/645
if(!isObject(data))return new Base(toIndex(data));if(data instanceof $ArrayBuffer||(klass=classof(data))==ARRAY_BUFFER||klass==SHARED_BUFFER){return $length!==undefined?new Base(data,toOffset($offset,BYTES),$length):$offset!==undefined?new Base(data,toOffset($offset,BYTES)):new Base(data);}if(TYPED_ARRAY in data)return fromList(TypedArray,data);return $from.call(TypedArray,data);});arrayForEach(TAC!==Function.prototype?gOPN(Base).concat(gOPN(TAC)):gOPN(Base),function(key){if(!(key in TypedArray))hide(TypedArray,key,Base[key]);});TypedArray[PROTOTYPE]=TypedArrayPrototype;if(!LIBRARY)TypedArrayPrototype.constructor=TypedArray;}var $nativeIterator=TypedArrayPrototype[ITERATOR];var CORRECT_ITER_NAME=!!$nativeIterator&&($nativeIterator.name=='values'||$nativeIterator.name==undefined);var $iterator=$iterators.values;hide(TypedArray,TYPED_CONSTRUCTOR,true);hide(TypedArrayPrototype,TYPED_ARRAY,NAME);hide(TypedArrayPrototype,VIEW,true);hide(TypedArrayPrototype,DEF_CONSTRUCTOR,TypedArray);if(CLAMPED?new TypedArray(1)[TAG]!=NAME:!(TAG in TypedArrayPrototype)){dP(TypedArrayPrototype,TAG,{get:function get(){return NAME;}});}O[NAME]=TypedArray;$export($export.G+$export.W+$export.F*(TypedArray!=Base),O);$export($export.S,NAME,{BYTES_PER_ELEMENT:BYTES});$export($export.S+$export.F*fails(function(){Base.of.call(TypedArray,1);}),NAME,{from:$from,of:$of});if(!(BYTES_PER_ELEMENT in TypedArrayPrototype))hide(TypedArrayPrototype,BYTES_PER_ELEMENT,BYTES);$export($export.P,NAME,proto);setSpecies(NAME);$export($export.P+$export.F*FORCED_SET,NAME,{set:$set});$export($export.P+$export.F*!CORRECT_ITER_NAME,NAME,$iterators);if(!LIBRARY&&TypedArrayPrototype.toString!=arrayToString)TypedArrayPrototype.toString=arrayToString;$export($export.P+$export.F*fails(function(){new TypedArray(1).slice();}),NAME,{slice:$slice});$export($export.P+$export.F*(fails(function(){return[1,2].toLocaleString()!=new TypedArray([1,2]).toLocaleString();})||!fails(function(){TypedArrayPrototype.toLocaleString.call([1,2]);})),NAME,{toLocaleString:$toLocaleString});Iterators[NAME]=CORRECT_ITER_NAME?$nativeIterator:$iterator;if(!LIBRARY&&!CORRECT_ITER_NAME)hide(TypedArrayPrototype,ITERATOR,$iterator);};}else module.exports=function(){/* empty */};},{"./_an-instance":31,"./_array-copy-within":33,"./_array-fill":34,"./_array-includes":36,"./_array-methods":37,"./_classof":42,"./_ctx":50,"./_descriptors":54,"./_export":58,"./_fails":60,"./_global":66,"./_has":67,"./_hide":68,"./_is-array-iter":74,"./_is-object":77,"./_iter-detect":82,"./_iterators":84,"./_library":85,"./_object-create":96,"./_object-dp":97,"./_object-gopd":100,"./_object-gopn":102,"./_object-gpo":104,"./_property-desc":115,"./_redefine-all":116,"./_set-species":125,"./_species-constructor":129,"./_to-absolute-index":139,"./_to-index":140,"./_to-integer":141,"./_to-length":143,"./_to-object":144,"./_to-primitive":145,"./_typed":148,"./_typed-buffer":147,"./_uid":149,"./_wks":154,"./core.get-iterator-method":155,"./es6.array.iterator":167}],147:[function(require,module,exports){'use strict';var global=require('./_global');var DESCRIPTORS=require('./_descriptors');var LIBRARY=require('./_library');var $typed=require('./_typed');var hide=require('./_hide');var redefineAll=require('./_redefine-all');var fails=require('./_fails');var anInstance=require('./_an-instance');var toInteger=require('./_to-integer');var toLength=require('./_to-length');var toIndex=require('./_to-index');var gOPN=require('./_object-gopn').f;var dP=require('./_object-dp').f;var arrayFill=require('./_array-fill');var setToStringTag=require('./_set-to-string-tag');var ARRAY_BUFFER='ArrayBuffer';var DATA_VIEW='DataView';var PROTOTYPE='prototype';var WRONG_LENGTH='Wrong length!';var WRONG_INDEX='Wrong index!';var $ArrayBuffer=global[ARRAY_BUFFER];var $DataView=global[DATA_VIEW];var Math=global.Math;var RangeError=global.RangeError;// eslint-disable-next-line no-shadow-restricted-names
var Infinity=global.Infinity;var BaseBuffer=$ArrayBuffer;var abs=Math.abs;var pow=Math.pow;var floor=Math.floor;var log=Math.log;var LN2=Math.LN2;var BUFFER='buffer';var BYTE_LENGTH='byteLength';var BYTE_OFFSET='byteOffset';var $BUFFER=DESCRIPTORS?'_b':BUFFER;var $LENGTH=DESCRIPTORS?'_l':BYTE_LENGTH;var $OFFSET=DESCRIPTORS?'_o':BYTE_OFFSET;// IEEE754 conversions based on https://github.com/feross/ieee754
function packIEEE754(value,mLen,nBytes){var buffer=new Array(nBytes);var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?pow(2,-24)-pow(2,-77):0;var i=0;var s=value<0||value===0&&1/value<0?1:0;var e,m,c;value=abs(value);// eslint-disable-next-line no-self-compare
if(value!=value||value===Infinity){// eslint-disable-next-line no-self-compare
m=value!=value?1:0;e=eMax;}else{e=floor(log(value)/LN2);if(value*(c=pow(2,-e))<1){e--;c*=2;}if(e+eBias>=1){value+=rt/c;}else{value+=rt*pow(2,1-eBias);}if(value*c>=2){e++;c/=2;}if(e+eBias>=eMax){m=0;e=eMax;}else if(e+eBias>=1){m=(value*c-1)*pow(2,mLen);e=e+eBias;}else{m=value*pow(2,eBias-1)*pow(2,mLen);e=0;}}for(;mLen>=8;buffer[i++]=m&255,m/=256,mLen-=8){;}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[i++]=e&255,e/=256,eLen-=8){;}buffer[--i]|=s*128;return buffer;}function unpackIEEE754(buffer,mLen,nBytes){var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=eLen-7;var i=nBytes-1;var s=buffer[i--];var e=s&127;var m;s>>=7;for(;nBits>0;e=e*256+buffer[i],i--,nBits-=8){;}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[i],i--,nBits-=8){;}if(e===0){e=1-eBias;}else if(e===eMax){return m?NaN:s?-Infinity:Infinity;}else{m=m+pow(2,mLen);e=e-eBias;}return(s?-1:1)*m*pow(2,e-mLen);}function unpackI32(bytes){return bytes[3]<<24|bytes[2]<<16|bytes[1]<<8|bytes[0];}function packI8(it){return[it&0xff];}function packI16(it){return[it&0xff,it>>8&0xff];}function packI32(it){return[it&0xff,it>>8&0xff,it>>16&0xff,it>>24&0xff];}function packF64(it){return packIEEE754(it,52,8);}function packF32(it){return packIEEE754(it,23,4);}function addGetter(C,key,internal){dP(C[PROTOTYPE],key,{get:function get(){return this[internal];}});}function get(view,bytes,index,isLittleEndian){var numIndex=+index;var intIndex=toIndex(numIndex);if(intIndex+bytes>view[$LENGTH])throw RangeError(WRONG_INDEX);var store=view[$BUFFER]._b;var start=intIndex+view[$OFFSET];var pack=store.slice(start,start+bytes);return isLittleEndian?pack:pack.reverse();}function set(view,bytes,index,conversion,value,isLittleEndian){var numIndex=+index;var intIndex=toIndex(numIndex);if(intIndex+bytes>view[$LENGTH])throw RangeError(WRONG_INDEX);var store=view[$BUFFER]._b;var start=intIndex+view[$OFFSET];var pack=conversion(+value);for(var i=0;i<bytes;i++){store[start+i]=pack[isLittleEndian?i:bytes-i-1];}}if(!$typed.ABV){$ArrayBuffer=function ArrayBuffer(length){anInstance(this,$ArrayBuffer,ARRAY_BUFFER);var byteLength=toIndex(length);this._b=arrayFill.call(new Array(byteLength),0);this[$LENGTH]=byteLength;};$DataView=function DataView(buffer,byteOffset,byteLength){anInstance(this,$DataView,DATA_VIEW);anInstance(buffer,$ArrayBuffer,DATA_VIEW);var bufferLength=buffer[$LENGTH];var offset=toInteger(byteOffset);if(offset<0||offset>bufferLength)throw RangeError('Wrong offset!');byteLength=byteLength===undefined?bufferLength-offset:toLength(byteLength);if(offset+byteLength>bufferLength)throw RangeError(WRONG_LENGTH);this[$BUFFER]=buffer;this[$OFFSET]=offset;this[$LENGTH]=byteLength;};if(DESCRIPTORS){addGetter($ArrayBuffer,BYTE_LENGTH,'_l');addGetter($DataView,BUFFER,'_b');addGetter($DataView,BYTE_LENGTH,'_l');addGetter($DataView,BYTE_OFFSET,'_o');}redefineAll($DataView[PROTOTYPE],{getInt8:function getInt8(byteOffset){return get(this,1,byteOffset)[0]<<24>>24;},getUint8:function getUint8(byteOffset){return get(this,1,byteOffset)[0];},getInt16:function getInt16(byteOffset/* , littleEndian */){var bytes=get(this,2,byteOffset,arguments[1]);return(bytes[1]<<8|bytes[0])<<16>>16;},getUint16:function getUint16(byteOffset/* , littleEndian */){var bytes=get(this,2,byteOffset,arguments[1]);return bytes[1]<<8|bytes[0];},getInt32:function getInt32(byteOffset/* , littleEndian */){return unpackI32(get(this,4,byteOffset,arguments[1]));},getUint32:function getUint32(byteOffset/* , littleEndian */){return unpackI32(get(this,4,byteOffset,arguments[1]))>>>0;},getFloat32:function getFloat32(byteOffset/* , littleEndian */){return unpackIEEE754(get(this,4,byteOffset,arguments[1]),23,4);},getFloat64:function getFloat64(byteOffset/* , littleEndian */){return unpackIEEE754(get(this,8,byteOffset,arguments[1]),52,8);},setInt8:function setInt8(byteOffset,value){set(this,1,byteOffset,packI8,value);},setUint8:function setUint8(byteOffset,value){set(this,1,byteOffset,packI8,value);},setInt16:function setInt16(byteOffset,value/* , littleEndian */){set(this,2,byteOffset,packI16,value,arguments[2]);},setUint16:function setUint16(byteOffset,value/* , littleEndian */){set(this,2,byteOffset,packI16,value,arguments[2]);},setInt32:function setInt32(byteOffset,value/* , littleEndian */){set(this,4,byteOffset,packI32,value,arguments[2]);},setUint32:function setUint32(byteOffset,value/* , littleEndian */){set(this,4,byteOffset,packI32,value,arguments[2]);},setFloat32:function setFloat32(byteOffset,value/* , littleEndian */){set(this,4,byteOffset,packF32,value,arguments[2]);},setFloat64:function setFloat64(byteOffset,value/* , littleEndian */){set(this,8,byteOffset,packF64,value,arguments[2]);}});}else{if(!fails(function(){$ArrayBuffer(1);})||!fails(function(){new $ArrayBuffer(-1);// eslint-disable-line no-new
})||fails(function(){new $ArrayBuffer();// eslint-disable-line no-new
new $ArrayBuffer(1.5);// eslint-disable-line no-new
new $ArrayBuffer(NaN);// eslint-disable-line no-new
return $ArrayBuffer.name!=ARRAY_BUFFER;})){$ArrayBuffer=function ArrayBuffer(length){anInstance(this,$ArrayBuffer);return new BaseBuffer(toIndex(length));};var ArrayBufferProto=$ArrayBuffer[PROTOTYPE]=BaseBuffer[PROTOTYPE];for(var keys=gOPN(BaseBuffer),j=0,key;keys.length>j;){if(!((key=keys[j++])in $ArrayBuffer))hide($ArrayBuffer,key,BaseBuffer[key]);}if(!LIBRARY)ArrayBufferProto.constructor=$ArrayBuffer;}// iOS Safari 7.x bug
var view=new $DataView(new $ArrayBuffer(2));var $setInt8=$DataView[PROTOTYPE].setInt8;view.setInt8(0,2147483648);view.setInt8(1,2147483649);if(view.getInt8(0)||!view.getInt8(1))redefineAll($DataView[PROTOTYPE],{setInt8:function setInt8(byteOffset,value){$setInt8.call(this,byteOffset,value<<24>>24);},setUint8:function setUint8(byteOffset,value){$setInt8.call(this,byteOffset,value<<24>>24);}},true);}setToStringTag($ArrayBuffer,ARRAY_BUFFER);setToStringTag($DataView,DATA_VIEW);hide($DataView[PROTOTYPE],$typed.VIEW,true);exports[ARRAY_BUFFER]=$ArrayBuffer;exports[DATA_VIEW]=$DataView;},{"./_an-instance":31,"./_array-fill":34,"./_descriptors":54,"./_fails":60,"./_global":66,"./_hide":68,"./_library":85,"./_object-dp":97,"./_object-gopn":102,"./_redefine-all":116,"./_set-to-string-tag":126,"./_to-index":140,"./_to-integer":141,"./_to-length":143,"./_typed":148}],148:[function(require,module,exports){var global=require('./_global');var hide=require('./_hide');var uid=require('./_uid');var TYPED=uid('typed_array');var VIEW=uid('view');var ABV=!!(global.ArrayBuffer&&global.DataView);var CONSTR=ABV;var i=0;var l=9;var Typed;var TypedArrayConstructors='Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'.split(',');while(i<l){if(Typed=global[TypedArrayConstructors[i++]]){hide(Typed.prototype,TYPED,true);hide(Typed.prototype,VIEW,true);}else CONSTR=false;}module.exports={ABV:ABV,CONSTR:CONSTR,TYPED:TYPED,VIEW:VIEW};},{"./_global":66,"./_hide":68,"./_uid":149}],149:[function(require,module,exports){var id=0;var px=Math.random();module.exports=function(key){return'Symbol('.concat(key===undefined?'':key,')_',(++id+px).toString(36));};},{}],150:[function(require,module,exports){var global=require('./_global');var navigator=global.navigator;module.exports=navigator&&navigator.userAgent||'';},{"./_global":66}],151:[function(require,module,exports){var isObject=require('./_is-object');module.exports=function(it,TYPE){if(!isObject(it)||it._t!==TYPE)throw TypeError('Incompatible receiver, '+TYPE+' required!');return it;};},{"./_is-object":77}],152:[function(require,module,exports){var global=require('./_global');var core=require('./_core');var LIBRARY=require('./_library');var wksExt=require('./_wks-ext');var defineProperty=require('./_object-dp').f;module.exports=function(name){var $Symbol=core.Symbol||(core.Symbol=LIBRARY?{}:global.Symbol||{});if(name.charAt(0)!='_'&&!(name in $Symbol))defineProperty($Symbol,name,{value:wksExt.f(name)});};},{"./_core":48,"./_global":66,"./_library":85,"./_object-dp":97,"./_wks-ext":153}],153:[function(require,module,exports){exports.f=require('./_wks');},{"./_wks":154}],154:[function(require,module,exports){var store=require('./_shared')('wks');var uid=require('./_uid');var _Symbol=require('./_global').Symbol;var USE_SYMBOL=typeof _Symbol=='function';var $exports=module.exports=function(name){return store[name]||(store[name]=USE_SYMBOL&&_Symbol[name]||(USE_SYMBOL?_Symbol:uid)('Symbol.'+name));};$exports.store=store;},{"./_global":66,"./_shared":128,"./_uid":149}],155:[function(require,module,exports){var classof=require('./_classof');var ITERATOR=require('./_wks')('iterator');var Iterators=require('./_iterators');module.exports=require('./_core').getIteratorMethod=function(it){if(it!=undefined)return it[ITERATOR]||it['@@iterator']||Iterators[classof(it)];};},{"./_classof":42,"./_core":48,"./_iterators":84,"./_wks":154}],156:[function(require,module,exports){// https://github.com/benjamingr/RexExp.escape
var $export=require('./_export');var $re=require('./_replacer')(/[\\^$*+?.()|[\]{}]/g,'\\$&');$export($export.S,'RegExp',{escape:function escape(it){return $re(it);}});},{"./_export":58,"./_replacer":120}],157:[function(require,module,exports){// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
var $export=require('./_export');$export($export.P,'Array',{copyWithin:require('./_array-copy-within')});require('./_add-to-unscopables')('copyWithin');},{"./_add-to-unscopables":29,"./_array-copy-within":33,"./_export":58}],158:[function(require,module,exports){'use strict';var $export=require('./_export');var $every=require('./_array-methods')(4);$export($export.P+$export.F*!require('./_strict-method')([].every,true),'Array',{// 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
every:function every(callbackfn/* , thisArg */){return $every(this,callbackfn,arguments[1]);}});},{"./_array-methods":37,"./_export":58,"./_strict-method":130}],159:[function(require,module,exports){// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
var $export=require('./_export');$export($export.P,'Array',{fill:require('./_array-fill')});require('./_add-to-unscopables')('fill');},{"./_add-to-unscopables":29,"./_array-fill":34,"./_export":58}],160:[function(require,module,exports){'use strict';var $export=require('./_export');var $filter=require('./_array-methods')(2);$export($export.P+$export.F*!require('./_strict-method')([].filter,true),'Array',{// 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
filter:function filter(callbackfn/* , thisArg */){return $filter(this,callbackfn,arguments[1]);}});},{"./_array-methods":37,"./_export":58,"./_strict-method":130}],161:[function(require,module,exports){'use strict';// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
var $export=require('./_export');var $find=require('./_array-methods')(6);var KEY='findIndex';var forced=true;// Shouldn't skip holes
if(KEY in[])Array(1)[KEY](function(){forced=false;});$export($export.P+$export.F*forced,'Array',{findIndex:function findIndex(callbackfn/* , that = undefined */){return $find(this,callbackfn,arguments.length>1?arguments[1]:undefined);}});require('./_add-to-unscopables')(KEY);},{"./_add-to-unscopables":29,"./_array-methods":37,"./_export":58}],162:[function(require,module,exports){'use strict';// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export=require('./_export');var $find=require('./_array-methods')(5);var KEY='find';var forced=true;// Shouldn't skip holes
if(KEY in[])Array(1)[KEY](function(){forced=false;});$export($export.P+$export.F*forced,'Array',{find:function find(callbackfn/* , that = undefined */){return $find(this,callbackfn,arguments.length>1?arguments[1]:undefined);}});require('./_add-to-unscopables')(KEY);},{"./_add-to-unscopables":29,"./_array-methods":37,"./_export":58}],163:[function(require,module,exports){'use strict';var $export=require('./_export');var $forEach=require('./_array-methods')(0);var STRICT=require('./_strict-method')([].forEach,true);$export($export.P+$export.F*!STRICT,'Array',{// 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
forEach:function forEach(callbackfn/* , thisArg */){return $forEach(this,callbackfn,arguments[1]);}});},{"./_array-methods":37,"./_export":58,"./_strict-method":130}],164:[function(require,module,exports){'use strict';var ctx=require('./_ctx');var $export=require('./_export');var toObject=require('./_to-object');var call=require('./_iter-call');var isArrayIter=require('./_is-array-iter');var toLength=require('./_to-length');var createProperty=require('./_create-property');var getIterFn=require('./core.get-iterator-method');$export($export.S+$export.F*!require('./_iter-detect')(function(iter){Array.from(iter);}),'Array',{// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from:function from(arrayLike/* , mapfn = undefined, thisArg = undefined */){var O=toObject(arrayLike);var C=typeof this=='function'?this:Array;var aLen=arguments.length;var mapfn=aLen>1?arguments[1]:undefined;var mapping=mapfn!==undefined;var index=0;var iterFn=getIterFn(O);var length,result,step,iterator;if(mapping)mapfn=ctx(mapfn,aLen>2?arguments[2]:undefined,2);// if object isn't iterable or it's array with default iterator - use simple case
if(iterFn!=undefined&&!(C==Array&&isArrayIter(iterFn))){for(iterator=iterFn.call(O),result=new C();!(step=iterator.next()).done;index++){createProperty(result,index,mapping?call(iterator,mapfn,[step.value,index],true):step.value);}}else{length=toLength(O.length);for(result=new C(length);length>index;index++){createProperty(result,index,mapping?mapfn(O[index],index):O[index]);}}result.length=index;return result;}});},{"./_create-property":49,"./_ctx":50,"./_export":58,"./_is-array-iter":74,"./_iter-call":79,"./_iter-detect":82,"./_to-length":143,"./_to-object":144,"./core.get-iterator-method":155}],165:[function(require,module,exports){'use strict';var $export=require('./_export');var $indexOf=require('./_array-includes')(false);var $native=[].indexOf;var NEGATIVE_ZERO=!!$native&&1/[1].indexOf(1,-0)<0;$export($export.P+$export.F*(NEGATIVE_ZERO||!require('./_strict-method')($native)),'Array',{// 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
indexOf:function indexOf(searchElement/* , fromIndex = 0 */){return NEGATIVE_ZERO// convert -0 to +0
?$native.apply(this,arguments)||0:$indexOf(this,searchElement,arguments[1]);}});},{"./_array-includes":36,"./_export":58,"./_strict-method":130}],166:[function(require,module,exports){// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
var $export=require('./_export');$export($export.S,'Array',{isArray:require('./_is-array')});},{"./_export":58,"./_is-array":75}],167:[function(require,module,exports){'use strict';var addToUnscopables=require('./_add-to-unscopables');var step=require('./_iter-step');var Iterators=require('./_iterators');var toIObject=require('./_to-iobject');// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports=require('./_iter-define')(Array,'Array',function(iterated,kind){this._t=toIObject(iterated);// target
this._i=0;// next index
this._k=kind;// kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
},function(){var O=this._t;var kind=this._k;var index=this._i++;if(!O||index>=O.length){this._t=undefined;return step(1);}if(kind=='keys')return step(0,index);if(kind=='values')return step(0,O[index]);return step(0,[index,O[index]]);},'values');// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments=Iterators.Array;addToUnscopables('keys');addToUnscopables('values');addToUnscopables('entries');},{"./_add-to-unscopables":29,"./_iter-define":81,"./_iter-step":83,"./_iterators":84,"./_to-iobject":142}],168:[function(require,module,exports){'use strict';// 22.1.3.13 Array.prototype.join(separator)
var $export=require('./_export');var toIObject=require('./_to-iobject');var arrayJoin=[].join;// fallback for not array-like strings
$export($export.P+$export.F*(require('./_iobject')!=Object||!require('./_strict-method')(arrayJoin)),'Array',{join:function join(separator){return arrayJoin.call(toIObject(this),separator===undefined?',':separator);}});},{"./_export":58,"./_iobject":73,"./_strict-method":130,"./_to-iobject":142}],169:[function(require,module,exports){'use strict';var $export=require('./_export');var toIObject=require('./_to-iobject');var toInteger=require('./_to-integer');var toLength=require('./_to-length');var $native=[].lastIndexOf;var NEGATIVE_ZERO=!!$native&&1/[1].lastIndexOf(1,-0)<0;$export($export.P+$export.F*(NEGATIVE_ZERO||!require('./_strict-method')($native)),'Array',{// 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
lastIndexOf:function lastIndexOf(searchElement/* , fromIndex = @[*-1] */){// convert -0 to +0
if(NEGATIVE_ZERO)return $native.apply(this,arguments)||0;var O=toIObject(this);var length=toLength(O.length);var index=length-1;if(arguments.length>1)index=Math.min(index,toInteger(arguments[1]));if(index<0)index=length+index;for(;index>=0;index--){if(index in O)if(O[index]===searchElement)return index||0;}return-1;}});},{"./_export":58,"./_strict-method":130,"./_to-integer":141,"./_to-iobject":142,"./_to-length":143}],170:[function(require,module,exports){'use strict';var $export=require('./_export');var $map=require('./_array-methods')(1);$export($export.P+$export.F*!require('./_strict-method')([].map,true),'Array',{// 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
map:function map(callbackfn/* , thisArg */){return $map(this,callbackfn,arguments[1]);}});},{"./_array-methods":37,"./_export":58,"./_strict-method":130}],171:[function(require,module,exports){'use strict';var $export=require('./_export');var createProperty=require('./_create-property');// WebKit Array.of isn't generic
$export($export.S+$export.F*require('./_fails')(function(){function F(){/* empty */}return!(Array.of.call(F)instanceof F);}),'Array',{// 22.1.2.3 Array.of( ...items)
of:function of()/* ...args */{var index=0;var aLen=arguments.length;var result=new(typeof this=='function'?this:Array)(aLen);while(aLen>index){createProperty(result,index,arguments[index++]);}result.length=aLen;return result;}});},{"./_create-property":49,"./_export":58,"./_fails":60}],172:[function(require,module,exports){'use strict';var $export=require('./_export');var $reduce=require('./_array-reduce');$export($export.P+$export.F*!require('./_strict-method')([].reduceRight,true),'Array',{// 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
reduceRight:function reduceRight(callbackfn/* , initialValue */){return $reduce(this,callbackfn,arguments.length,arguments[1],true);}});},{"./_array-reduce":38,"./_export":58,"./_strict-method":130}],173:[function(require,module,exports){'use strict';var $export=require('./_export');var $reduce=require('./_array-reduce');$export($export.P+$export.F*!require('./_strict-method')([].reduce,true),'Array',{// 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
reduce:function reduce(callbackfn/* , initialValue */){return $reduce(this,callbackfn,arguments.length,arguments[1],false);}});},{"./_array-reduce":38,"./_export":58,"./_strict-method":130}],174:[function(require,module,exports){'use strict';var $export=require('./_export');var html=require('./_html');var cof=require('./_cof');var toAbsoluteIndex=require('./_to-absolute-index');var toLength=require('./_to-length');var arraySlice=[].slice;// fallback for not array-like ES3 strings and DOM objects
$export($export.P+$export.F*require('./_fails')(function(){if(html)arraySlice.call(html);}),'Array',{slice:function slice(begin,end){var len=toLength(this.length);var klass=cof(this);end=end===undefined?len:end;if(klass=='Array')return arraySlice.call(this,begin,end);var start=toAbsoluteIndex(begin,len);var upTo=toAbsoluteIndex(end,len);var size=toLength(upTo-start);var cloned=new Array(size);var i=0;for(;i<size;i++){cloned[i]=klass=='String'?this.charAt(start+i):this[start+i];}return cloned;}});},{"./_cof":43,"./_export":58,"./_fails":60,"./_html":69,"./_to-absolute-index":139,"./_to-length":143}],175:[function(require,module,exports){'use strict';var $export=require('./_export');var $some=require('./_array-methods')(3);$export($export.P+$export.F*!require('./_strict-method')([].some,true),'Array',{// 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
some:function some(callbackfn/* , thisArg */){return $some(this,callbackfn,arguments[1]);}});},{"./_array-methods":37,"./_export":58,"./_strict-method":130}],176:[function(require,module,exports){'use strict';var $export=require('./_export');var aFunction=require('./_a-function');var toObject=require('./_to-object');var fails=require('./_fails');var $sort=[].sort;var test=[1,2,3];$export($export.P+$export.F*(fails(function(){// IE8-
test.sort(undefined);})||!fails(function(){// V8 bug
test.sort(null);// Old WebKit
})||!require('./_strict-method')($sort)),'Array',{// 22.1.3.25 Array.prototype.sort(comparefn)
sort:function sort(comparefn){return comparefn===undefined?$sort.call(toObject(this)):$sort.call(toObject(this),aFunction(comparefn));}});},{"./_a-function":27,"./_export":58,"./_fails":60,"./_strict-method":130,"./_to-object":144}],177:[function(require,module,exports){require('./_set-species')('Array');},{"./_set-species":125}],178:[function(require,module,exports){// 20.3.3.1 / 15.9.4.4 Date.now()
var $export=require('./_export');$export($export.S,'Date',{now:function now(){return new Date().getTime();}});},{"./_export":58}],179:[function(require,module,exports){// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
var $export=require('./_export');var toISOString=require('./_date-to-iso-string');// PhantomJS / old WebKit has a broken implementations
$export($export.P+$export.F*(Date.prototype.toISOString!==toISOString),'Date',{toISOString:toISOString});},{"./_date-to-iso-string":51,"./_export":58}],180:[function(require,module,exports){'use strict';var $export=require('./_export');var toObject=require('./_to-object');var toPrimitive=require('./_to-primitive');$export($export.P+$export.F*require('./_fails')(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function toISOString(){return 1;}})!==1;}),'Date',{// eslint-disable-next-line no-unused-vars
toJSON:function toJSON(key){var O=toObject(this);var pv=toPrimitive(O);return typeof pv=='number'&&!isFinite(pv)?null:O.toISOString();}});},{"./_export":58,"./_fails":60,"./_to-object":144,"./_to-primitive":145}],181:[function(require,module,exports){var TO_PRIMITIVE=require('./_wks')('toPrimitive');var proto=Date.prototype;if(!(TO_PRIMITIVE in proto))require('./_hide')(proto,TO_PRIMITIVE,require('./_date-to-primitive'));},{"./_date-to-primitive":52,"./_hide":68,"./_wks":154}],182:[function(require,module,exports){var DateProto=Date.prototype;var INVALID_DATE='Invalid Date';var TO_STRING='toString';var $toString=DateProto[TO_STRING];var getTime=DateProto.getTime;if(new Date(NaN)+''!=INVALID_DATE){require('./_redefine')(DateProto,TO_STRING,function toString(){var value=getTime.call(this);// eslint-disable-next-line no-self-compare
return value===value?$toString.call(this):INVALID_DATE;});}},{"./_redefine":117}],183:[function(require,module,exports){// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
var $export=require('./_export');$export($export.P,'Function',{bind:require('./_bind')});},{"./_bind":41,"./_export":58}],184:[function(require,module,exports){'use strict';var isObject=require('./_is-object');var getPrototypeOf=require('./_object-gpo');var HAS_INSTANCE=require('./_wks')('hasInstance');var FunctionProto=Function.prototype;// 19.2.3.6 Function.prototype[@@hasInstance](V)
if(!(HAS_INSTANCE in FunctionProto))require('./_object-dp').f(FunctionProto,HAS_INSTANCE,{value:function value(O){if(typeof this!='function'||!isObject(O))return false;if(!isObject(this.prototype))return O instanceof this;// for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
while(O=getPrototypeOf(O)){if(this.prototype===O)return true;}return false;}});},{"./_is-object":77,"./_object-dp":97,"./_object-gpo":104,"./_wks":154}],185:[function(require,module,exports){var dP=require('./_object-dp').f;var FProto=Function.prototype;var nameRE=/^\s*function ([^ (]*)/;var NAME='name';// 19.2.4.2 name
NAME in FProto||require('./_descriptors')&&dP(FProto,NAME,{configurable:true,get:function get(){try{return(''+this).match(nameRE)[1];}catch(e){return'';}}});},{"./_descriptors":54,"./_object-dp":97}],186:[function(require,module,exports){'use strict';var strong=require('./_collection-strong');var validate=require('./_validate-collection');var MAP='Map';// 23.1 Map Objects
module.exports=require('./_collection')(MAP,function(get){return function Map(){return get(this,arguments.length>0?arguments[0]:undefined);};},{// 23.1.3.6 Map.prototype.get(key)
get:function get(key){var entry=strong.getEntry(validate(this,MAP),key);return entry&&entry.v;},// 23.1.3.9 Map.prototype.set(key, value)
set:function set(key,value){return strong.def(validate(this,MAP),key===0?0:key,value);}},strong,true);},{"./_collection":47,"./_collection-strong":44,"./_validate-collection":151}],187:[function(require,module,exports){// 20.2.2.3 Math.acosh(x)
var $export=require('./_export');var log1p=require('./_math-log1p');var sqrt=Math.sqrt;var $acosh=Math.acosh;$export($export.S+$export.F*!($acosh// V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
&&Math.floor($acosh(Number.MAX_VALUE))==710// Tor Browser bug: Math.acosh(Infinity) -> NaN
&&$acosh(Infinity)==Infinity),'Math',{acosh:function acosh(x){return(x=+x)<1?NaN:x>94906265.62425156?Math.log(x)+Math.LN2:log1p(x-1+sqrt(x-1)*sqrt(x+1));}});},{"./_export":58,"./_math-log1p":88}],188:[function(require,module,exports){// 20.2.2.5 Math.asinh(x)
var $export=require('./_export');var $asinh=Math.asinh;function asinh(x){return!isFinite(x=+x)||x==0?x:x<0?-asinh(-x):Math.log(x+Math.sqrt(x*x+1));}// Tor Browser bug: Math.asinh(0) -> -0
$export($export.S+$export.F*!($asinh&&1/$asinh(0)>0),'Math',{asinh:asinh});},{"./_export":58}],189:[function(require,module,exports){// 20.2.2.7 Math.atanh(x)
var $export=require('./_export');var $atanh=Math.atanh;// Tor Browser bug: Math.atanh(-0) -> 0
$export($export.S+$export.F*!($atanh&&1/$atanh(-0)<0),'Math',{atanh:function atanh(x){return(x=+x)==0?x:Math.log((1+x)/(1-x))/2;}});},{"./_export":58}],190:[function(require,module,exports){// 20.2.2.9 Math.cbrt(x)
var $export=require('./_export');var sign=require('./_math-sign');$export($export.S,'Math',{cbrt:function cbrt(x){return sign(x=+x)*Math.pow(Math.abs(x),1/3);}});},{"./_export":58,"./_math-sign":90}],191:[function(require,module,exports){// 20.2.2.11 Math.clz32(x)
var $export=require('./_export');$export($export.S,'Math',{clz32:function clz32(x){return(x>>>=0)?31-Math.floor(Math.log(x+0.5)*Math.LOG2E):32;}});},{"./_export":58}],192:[function(require,module,exports){// 20.2.2.12 Math.cosh(x)
var $export=require('./_export');var exp=Math.exp;$export($export.S,'Math',{cosh:function cosh(x){return(exp(x=+x)+exp(-x))/2;}});},{"./_export":58}],193:[function(require,module,exports){// 20.2.2.14 Math.expm1(x)
var $export=require('./_export');var $expm1=require('./_math-expm1');$export($export.S+$export.F*($expm1!=Math.expm1),'Math',{expm1:$expm1});},{"./_export":58,"./_math-expm1":86}],194:[function(require,module,exports){// 20.2.2.16 Math.fround(x)
var $export=require('./_export');$export($export.S,'Math',{fround:require('./_math-fround')});},{"./_export":58,"./_math-fround":87}],195:[function(require,module,exports){// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
var $export=require('./_export');var abs=Math.abs;$export($export.S,'Math',{hypot:function hypot(value1,value2){// eslint-disable-line no-unused-vars
var sum=0;var i=0;var aLen=arguments.length;var larg=0;var arg,div;while(i<aLen){arg=abs(arguments[i++]);if(larg<arg){div=larg/arg;sum=sum*div*div+1;larg=arg;}else if(arg>0){div=arg/larg;sum+=div*div;}else sum+=arg;}return larg===Infinity?Infinity:larg*Math.sqrt(sum);}});},{"./_export":58}],196:[function(require,module,exports){// 20.2.2.18 Math.imul(x, y)
var $export=require('./_export');var $imul=Math.imul;// some WebKit versions fails with big numbers, some has wrong arity
$export($export.S+$export.F*require('./_fails')(function(){return $imul(0xffffffff,5)!=-5||$imul.length!=2;}),'Math',{imul:function imul(x,y){var UINT16=0xffff;var xn=+x;var yn=+y;var xl=UINT16&xn;var yl=UINT16&yn;return 0|xl*yl+((UINT16&xn>>>16)*yl+xl*(UINT16&yn>>>16)<<16>>>0);}});},{"./_export":58,"./_fails":60}],197:[function(require,module,exports){// 20.2.2.21 Math.log10(x)
var $export=require('./_export');$export($export.S,'Math',{log10:function log10(x){return Math.log(x)*Math.LOG10E;}});},{"./_export":58}],198:[function(require,module,exports){// 20.2.2.20 Math.log1p(x)
var $export=require('./_export');$export($export.S,'Math',{log1p:require('./_math-log1p')});},{"./_export":58,"./_math-log1p":88}],199:[function(require,module,exports){// 20.2.2.22 Math.log2(x)
var $export=require('./_export');$export($export.S,'Math',{log2:function log2(x){return Math.log(x)/Math.LN2;}});},{"./_export":58}],200:[function(require,module,exports){// 20.2.2.28 Math.sign(x)
var $export=require('./_export');$export($export.S,'Math',{sign:require('./_math-sign')});},{"./_export":58,"./_math-sign":90}],201:[function(require,module,exports){// 20.2.2.30 Math.sinh(x)
var $export=require('./_export');var expm1=require('./_math-expm1');var exp=Math.exp;// V8 near Chromium 38 has a problem with very small numbers
$export($export.S+$export.F*require('./_fails')(function(){return!Math.sinh(-2e-17)!=-2e-17;}),'Math',{sinh:function sinh(x){return Math.abs(x=+x)<1?(expm1(x)-expm1(-x))/2:(exp(x-1)-exp(-x-1))*(Math.E/2);}});},{"./_export":58,"./_fails":60,"./_math-expm1":86}],202:[function(require,module,exports){// 20.2.2.33 Math.tanh(x)
var $export=require('./_export');var expm1=require('./_math-expm1');var exp=Math.exp;$export($export.S,'Math',{tanh:function tanh(x){var a=expm1(x=+x);var b=expm1(-x);return a==Infinity?1:b==Infinity?-1:(a-b)/(exp(x)+exp(-x));}});},{"./_export":58,"./_math-expm1":86}],203:[function(require,module,exports){// 20.2.2.34 Math.trunc(x)
var $export=require('./_export');$export($export.S,'Math',{trunc:function trunc(it){return(it>0?Math.floor:Math.ceil)(it);}});},{"./_export":58}],204:[function(require,module,exports){'use strict';var global=require('./_global');var has=require('./_has');var cof=require('./_cof');var inheritIfRequired=require('./_inherit-if-required');var toPrimitive=require('./_to-primitive');var fails=require('./_fails');var gOPN=require('./_object-gopn').f;var gOPD=require('./_object-gopd').f;var dP=require('./_object-dp').f;var $trim=require('./_string-trim').trim;var NUMBER='Number';var $Number=global[NUMBER];var Base=$Number;var proto=$Number.prototype;// Opera ~12 has broken Object#toString
var BROKEN_COF=cof(require('./_object-create')(proto))==NUMBER;var TRIM=('trim'in String.prototype);// 7.1.3 ToNumber(argument)
var toNumber=function toNumber(argument){var it=toPrimitive(argument,false);if(typeof it=='string'&&it.length>2){it=TRIM?it.trim():$trim(it,3);var first=it.charCodeAt(0);var third,radix,maxCode;if(first===43||first===45){third=it.charCodeAt(2);if(third===88||third===120)return NaN;// Number('+0x1') should be NaN, old V8 fix
}else if(first===48){switch(it.charCodeAt(1)){case 66:case 98:radix=2;maxCode=49;break;// fast equal /^0b[01]+$/i
case 79:case 111:radix=8;maxCode=55;break;// fast equal /^0o[0-7]+$/i
default:return+it;}for(var digits=it.slice(2),i=0,l=digits.length,code;i<l;i++){code=digits.charCodeAt(i);// parseInt parses a string to a first unavailable symbol
// but ToNumber should return NaN if a string contains unavailable symbols
if(code<48||code>maxCode)return NaN;}return parseInt(digits,radix);}}return+it;};if(!$Number(' 0o1')||!$Number('0b1')||$Number('+0x1')){$Number=function Number(value){var it=arguments.length<1?0:value;var that=this;return that instanceof $Number// check on 1..constructor(foo) case
&&(BROKEN_COF?fails(function(){proto.valueOf.call(that);}):cof(that)!=NUMBER)?inheritIfRequired(new Base(toNumber(it)),that,$Number):toNumber(it);};for(var keys=require('./_descriptors')?gOPN(Base):(// ES3:
'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,'+// ES6 (in case, if modules with ES6 Number statics required before):
'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,'+'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger').split(','),j=0,key;keys.length>j;j++){if(has(Base,key=keys[j])&&!has($Number,key)){dP($Number,key,gOPD(Base,key));}}$Number.prototype=proto;proto.constructor=$Number;require('./_redefine')(global,NUMBER,$Number);}},{"./_cof":43,"./_descriptors":54,"./_fails":60,"./_global":66,"./_has":67,"./_inherit-if-required":71,"./_object-create":96,"./_object-dp":97,"./_object-gopd":100,"./_object-gopn":102,"./_redefine":117,"./_string-trim":136,"./_to-primitive":145}],205:[function(require,module,exports){// 20.1.2.1 Number.EPSILON
var $export=require('./_export');$export($export.S,'Number',{EPSILON:Math.pow(2,-52)});},{"./_export":58}],206:[function(require,module,exports){// 20.1.2.2 Number.isFinite(number)
var $export=require('./_export');var _isFinite=require('./_global').isFinite;$export($export.S,'Number',{isFinite:function isFinite(it){return typeof it=='number'&&_isFinite(it);}});},{"./_export":58,"./_global":66}],207:[function(require,module,exports){// 20.1.2.3 Number.isInteger(number)
var $export=require('./_export');$export($export.S,'Number',{isInteger:require('./_is-integer')});},{"./_export":58,"./_is-integer":76}],208:[function(require,module,exports){// 20.1.2.4 Number.isNaN(number)
var $export=require('./_export');$export($export.S,'Number',{isNaN:function isNaN(number){// eslint-disable-next-line no-self-compare
return number!=number;}});},{"./_export":58}],209:[function(require,module,exports){// 20.1.2.5 Number.isSafeInteger(number)
var $export=require('./_export');var isInteger=require('./_is-integer');var abs=Math.abs;$export($export.S,'Number',{isSafeInteger:function isSafeInteger(number){return isInteger(number)&&abs(number)<=0x1fffffffffffff;}});},{"./_export":58,"./_is-integer":76}],210:[function(require,module,exports){// 20.1.2.6 Number.MAX_SAFE_INTEGER
var $export=require('./_export');$export($export.S,'Number',{MAX_SAFE_INTEGER:0x1fffffffffffff});},{"./_export":58}],211:[function(require,module,exports){// 20.1.2.10 Number.MIN_SAFE_INTEGER
var $export=require('./_export');$export($export.S,'Number',{MIN_SAFE_INTEGER:-0x1fffffffffffff});},{"./_export":58}],212:[function(require,module,exports){var $export=require('./_export');var $parseFloat=require('./_parse-float');// 20.1.2.12 Number.parseFloat(string)
$export($export.S+$export.F*(Number.parseFloat!=$parseFloat),'Number',{parseFloat:$parseFloat});},{"./_export":58,"./_parse-float":111}],213:[function(require,module,exports){var $export=require('./_export');var $parseInt=require('./_parse-int');// 20.1.2.13 Number.parseInt(string, radix)
$export($export.S+$export.F*(Number.parseInt!=$parseInt),'Number',{parseInt:$parseInt});},{"./_export":58,"./_parse-int":112}],214:[function(require,module,exports){'use strict';var $export=require('./_export');var toInteger=require('./_to-integer');var aNumberValue=require('./_a-number-value');var repeat=require('./_string-repeat');var $toFixed=1.0.toFixed;var floor=Math.floor;var data=[0,0,0,0,0,0];var ERROR='Number.toFixed: incorrect invocation!';var ZERO='0';var multiply=function multiply(n,c){var i=-1;var c2=c;while(++i<6){c2+=n*data[i];data[i]=c2%1e7;c2=floor(c2/1e7);}};var divide=function divide(n){var i=6;var c=0;while(--i>=0){c+=data[i];data[i]=floor(c/n);c=c%n*1e7;}};var numToString=function numToString(){var i=6;var s='';while(--i>=0){if(s!==''||i===0||data[i]!==0){var t=String(data[i]);s=s===''?t:s+repeat.call(ZERO,7-t.length)+t;}}return s;};var pow=function pow(x,n,acc){return n===0?acc:n%2===1?pow(x,n-1,acc*x):pow(x*x,n/2,acc);};var log=function log(x){var n=0;var x2=x;while(x2>=4096){n+=12;x2/=4096;}while(x2>=2){n+=1;x2/=2;}return n;};$export($export.P+$export.F*(!!$toFixed&&(0.00008.toFixed(3)!=='0.000'||0.9.toFixed(0)!=='1'||1.255.toFixed(2)!=='1.25'||1000000000000000128.0.toFixed(0)!=='1000000000000000128')||!require('./_fails')(function(){// V8 ~ Android 4.3-
$toFixed.call({});})),'Number',{toFixed:function toFixed(fractionDigits){var x=aNumberValue(this,ERROR);var f=toInteger(fractionDigits);var s='';var m=ZERO;var e,z,j,k;if(f<0||f>20)throw RangeError(ERROR);// eslint-disable-next-line no-self-compare
if(x!=x)return'NaN';if(x<=-1e21||x>=1e21)return String(x);if(x<0){s='-';x=-x;}if(x>1e-21){e=log(x*pow(2,69,1))-69;z=e<0?x*pow(2,-e,1):x/pow(2,e,1);z*=0x10000000000000;e=52-e;if(e>0){multiply(0,z);j=f;while(j>=7){multiply(1e7,0);j-=7;}multiply(pow(10,j,1),0);j=e-1;while(j>=23){divide(1<<23);j-=23;}divide(1<<j);multiply(1,1);divide(2);m=numToString();}else{multiply(0,z);multiply(1<<-e,0);m=numToString()+repeat.call(ZERO,f);}}if(f>0){k=m.length;m=s+(k<=f?'0.'+repeat.call(ZERO,f-k)+m:m.slice(0,k-f)+'.'+m.slice(k-f));}else{m=s+m;}return m;}});},{"./_a-number-value":28,"./_export":58,"./_fails":60,"./_string-repeat":135,"./_to-integer":141}],215:[function(require,module,exports){'use strict';var $export=require('./_export');var $fails=require('./_fails');var aNumberValue=require('./_a-number-value');var $toPrecision=1.0.toPrecision;$export($export.P+$export.F*($fails(function(){// IE7-
return $toPrecision.call(1,undefined)!=='1';})||!$fails(function(){// V8 ~ Android 4.3-
$toPrecision.call({});})),'Number',{toPrecision:function toPrecision(precision){var that=aNumberValue(this,'Number#toPrecision: incorrect invocation!');return precision===undefined?$toPrecision.call(that):$toPrecision.call(that,precision);}});},{"./_a-number-value":28,"./_export":58,"./_fails":60}],216:[function(require,module,exports){// 19.1.3.1 Object.assign(target, source)
var $export=require('./_export');$export($export.S+$export.F,'Object',{assign:require('./_object-assign')});},{"./_export":58,"./_object-assign":95}],217:[function(require,module,exports){var $export=require('./_export');// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S,'Object',{create:require('./_object-create')});},{"./_export":58,"./_object-create":96}],218:[function(require,module,exports){var $export=require('./_export');// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
$export($export.S+$export.F*!require('./_descriptors'),'Object',{defineProperties:require('./_object-dps')});},{"./_descriptors":54,"./_export":58,"./_object-dps":98}],219:[function(require,module,exports){var $export=require('./_export');// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S+$export.F*!require('./_descriptors'),'Object',{defineProperty:require('./_object-dp').f});},{"./_descriptors":54,"./_export":58,"./_object-dp":97}],220:[function(require,module,exports){// 19.1.2.5 Object.freeze(O)
var isObject=require('./_is-object');var meta=require('./_meta').onFreeze;require('./_object-sap')('freeze',function($freeze){return function freeze(it){return $freeze&&isObject(it)?$freeze(meta(it)):it;};});},{"./_is-object":77,"./_meta":91,"./_object-sap":108}],221:[function(require,module,exports){// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject=require('./_to-iobject');var $getOwnPropertyDescriptor=require('./_object-gopd').f;require('./_object-sap')('getOwnPropertyDescriptor',function(){return function getOwnPropertyDescriptor(it,key){return $getOwnPropertyDescriptor(toIObject(it),key);};});},{"./_object-gopd":100,"./_object-sap":108,"./_to-iobject":142}],222:[function(require,module,exports){// 19.1.2.7 Object.getOwnPropertyNames(O)
require('./_object-sap')('getOwnPropertyNames',function(){return require('./_object-gopn-ext').f;});},{"./_object-gopn-ext":101,"./_object-sap":108}],223:[function(require,module,exports){// 19.1.2.9 Object.getPrototypeOf(O)
var toObject=require('./_to-object');var $getPrototypeOf=require('./_object-gpo');require('./_object-sap')('getPrototypeOf',function(){return function getPrototypeOf(it){return $getPrototypeOf(toObject(it));};});},{"./_object-gpo":104,"./_object-sap":108,"./_to-object":144}],224:[function(require,module,exports){// 19.1.2.11 Object.isExtensible(O)
var isObject=require('./_is-object');require('./_object-sap')('isExtensible',function($isExtensible){return function isExtensible(it){return isObject(it)?$isExtensible?$isExtensible(it):true:false;};});},{"./_is-object":77,"./_object-sap":108}],225:[function(require,module,exports){// 19.1.2.12 Object.isFrozen(O)
var isObject=require('./_is-object');require('./_object-sap')('isFrozen',function($isFrozen){return function isFrozen(it){return isObject(it)?$isFrozen?$isFrozen(it):false:true;};});},{"./_is-object":77,"./_object-sap":108}],226:[function(require,module,exports){// 19.1.2.13 Object.isSealed(O)
var isObject=require('./_is-object');require('./_object-sap')('isSealed',function($isSealed){return function isSealed(it){return isObject(it)?$isSealed?$isSealed(it):false:true;};});},{"./_is-object":77,"./_object-sap":108}],227:[function(require,module,exports){// 19.1.3.10 Object.is(value1, value2)
var $export=require('./_export');$export($export.S,'Object',{is:require('./_same-value')});},{"./_export":58,"./_same-value":121}],228:[function(require,module,exports){// 19.1.2.14 Object.keys(O)
var toObject=require('./_to-object');var $keys=require('./_object-keys');require('./_object-sap')('keys',function(){return function keys(it){return $keys(toObject(it));};});},{"./_object-keys":106,"./_object-sap":108,"./_to-object":144}],229:[function(require,module,exports){// 19.1.2.15 Object.preventExtensions(O)
var isObject=require('./_is-object');var meta=require('./_meta').onFreeze;require('./_object-sap')('preventExtensions',function($preventExtensions){return function preventExtensions(it){return $preventExtensions&&isObject(it)?$preventExtensions(meta(it)):it;};});},{"./_is-object":77,"./_meta":91,"./_object-sap":108}],230:[function(require,module,exports){// 19.1.2.17 Object.seal(O)
var isObject=require('./_is-object');var meta=require('./_meta').onFreeze;require('./_object-sap')('seal',function($seal){return function seal(it){return $seal&&isObject(it)?$seal(meta(it)):it;};});},{"./_is-object":77,"./_meta":91,"./_object-sap":108}],231:[function(require,module,exports){// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export=require('./_export');$export($export.S,'Object',{setPrototypeOf:require('./_set-proto').set});},{"./_export":58,"./_set-proto":124}],232:[function(require,module,exports){'use strict';// 19.1.3.6 Object.prototype.toString()
var classof=require('./_classof');var test={};test[require('./_wks')('toStringTag')]='z';if(test+''!='[object z]'){require('./_redefine')(Object.prototype,'toString',function toString(){return'[object '+classof(this)+']';},true);}},{"./_classof":42,"./_redefine":117,"./_wks":154}],233:[function(require,module,exports){var $export=require('./_export');var $parseFloat=require('./_parse-float');// 18.2.4 parseFloat(string)
$export($export.G+$export.F*(parseFloat!=$parseFloat),{parseFloat:$parseFloat});},{"./_export":58,"./_parse-float":111}],234:[function(require,module,exports){var $export=require('./_export');var $parseInt=require('./_parse-int');// 18.2.5 parseInt(string, radix)
$export($export.G+$export.F*(parseInt!=$parseInt),{parseInt:$parseInt});},{"./_export":58,"./_parse-int":112}],235:[function(require,module,exports){'use strict';var LIBRARY=require('./_library');var global=require('./_global');var ctx=require('./_ctx');var classof=require('./_classof');var $export=require('./_export');var isObject=require('./_is-object');var aFunction=require('./_a-function');var anInstance=require('./_an-instance');var forOf=require('./_for-of');var speciesConstructor=require('./_species-constructor');var task=require('./_task').set;var microtask=require('./_microtask')();var newPromiseCapabilityModule=require('./_new-promise-capability');var perform=require('./_perform');var userAgent=require('./_user-agent');var promiseResolve=require('./_promise-resolve');var PROMISE='Promise';var TypeError=global.TypeError;var process=global.process;var versions=process&&process.versions;var v8=versions&&versions.v8||'';var $Promise=global[PROMISE];var isNode=classof(process)=='process';var empty=function empty(){/* empty */};var Internal,newGenericPromiseCapability,OwnPromiseCapability,Wrapper;var newPromiseCapability=newGenericPromiseCapability=newPromiseCapabilityModule.f;var USE_NATIVE=!!function(){try{// correct subclassing with @@species support
var promise=$Promise.resolve(1);var FakePromise=(promise.constructor={})[require('./_wks')('species')]=function(exec){exec(empty,empty);};// unhandled rejections tracking support, NodeJS Promise without it fails @@species test
return(isNode||typeof PromiseRejectionEvent=='function')&&promise.then(empty)instanceof FakePromise// v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
// https://bugs.chromium.org/p/chromium/issues/detail?id=830565
// we can't detect it synchronously, so just check versions
&&v8.indexOf('6.6')!==0&&userAgent.indexOf('Chrome/66')===-1;}catch(e){/* empty */}}();// helpers
var isThenable=function isThenable(it){var then;return isObject(it)&&typeof(then=it.then)=='function'?then:false;};var notify=function notify(promise,isReject){if(promise._n)return;promise._n=true;var chain=promise._c;microtask(function(){var value=promise._v;var ok=promise._s==1;var i=0;var run=function run(reaction){var handler=ok?reaction.ok:reaction.fail;var resolve=reaction.resolve;var reject=reaction.reject;var domain=reaction.domain;var result,then,exited;try{if(handler){if(!ok){if(promise._h==2)onHandleUnhandled(promise);promise._h=1;}if(handler===true)result=value;else{if(domain)domain.enter();result=handler(value);// may throw
if(domain){domain.exit();exited=true;}}if(result===reaction.promise){reject(TypeError('Promise-chain cycle'));}else if(then=isThenable(result)){then.call(result,resolve,reject);}else resolve(result);}else reject(value);}catch(e){if(domain&&!exited)domain.exit();reject(e);}};while(chain.length>i){run(chain[i++]);}// variable length - can't use forEach
promise._c=[];promise._n=false;if(isReject&&!promise._h)onUnhandled(promise);});};var onUnhandled=function onUnhandled(promise){task.call(global,function(){var value=promise._v;var unhandled=isUnhandled(promise);var result,handler,console;if(unhandled){result=perform(function(){if(isNode){process.emit('unhandledRejection',value,promise);}else if(handler=global.onunhandledrejection){handler({promise:promise,reason:value});}else if((console=global.console)&&console.error){console.error('Unhandled promise rejection',value);}});// Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
promise._h=isNode||isUnhandled(promise)?2:1;}promise._a=undefined;if(unhandled&&result.e)throw result.v;});};var isUnhandled=function isUnhandled(promise){return promise._h!==1&&(promise._a||promise._c).length===0;};var onHandleUnhandled=function onHandleUnhandled(promise){task.call(global,function(){var handler;if(isNode){process.emit('rejectionHandled',promise);}else if(handler=global.onrejectionhandled){handler({promise:promise,reason:promise._v});}});};var $reject=function $reject(value){var promise=this;if(promise._d)return;promise._d=true;promise=promise._w||promise;// unwrap
promise._v=value;promise._s=2;if(!promise._a)promise._a=promise._c.slice();notify(promise,true);};var $resolve=function $resolve(value){var promise=this;var then;if(promise._d)return;promise._d=true;promise=promise._w||promise;// unwrap
try{if(promise===value)throw TypeError("Promise can't be resolved itself");if(then=isThenable(value)){microtask(function(){var wrapper={_w:promise,_d:false};// wrap
try{then.call(value,ctx($resolve,wrapper,1),ctx($reject,wrapper,1));}catch(e){$reject.call(wrapper,e);}});}else{promise._v=value;promise._s=1;notify(promise,false);}}catch(e){$reject.call({_w:promise,_d:false},e);// wrap
}};// constructor polyfill
if(!USE_NATIVE){// 25.4.3.1 Promise(executor)
$Promise=function Promise(executor){anInstance(this,$Promise,PROMISE,'_h');aFunction(executor);Internal.call(this);try{executor(ctx($resolve,this,1),ctx($reject,this,1));}catch(err){$reject.call(this,err);}};// eslint-disable-next-line no-unused-vars
Internal=function Promise(executor){this._c=[];// <- awaiting reactions
this._a=undefined;// <- checked in isUnhandled reactions
this._s=0;// <- state
this._d=false;// <- done
this._v=undefined;// <- value
this._h=0;// <- rejection state, 0 - default, 1 - handled, 2 - unhandled
this._n=false;// <- notify
};Internal.prototype=require('./_redefine-all')($Promise.prototype,{// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then:function then(onFulfilled,onRejected){var reaction=newPromiseCapability(speciesConstructor(this,$Promise));reaction.ok=typeof onFulfilled=='function'?onFulfilled:true;reaction.fail=typeof onRejected=='function'&&onRejected;reaction.domain=isNode?process.domain:undefined;this._c.push(reaction);if(this._a)this._a.push(reaction);if(this._s)notify(this,false);return reaction.promise;},// 25.4.5.1 Promise.prototype.catch(onRejected)
'catch':function _catch(onRejected){return this.then(undefined,onRejected);}});OwnPromiseCapability=function OwnPromiseCapability(){var promise=new Internal();this.promise=promise;this.resolve=ctx($resolve,promise,1);this.reject=ctx($reject,promise,1);};newPromiseCapabilityModule.f=newPromiseCapability=function newPromiseCapability(C){return C===$Promise||C===Wrapper?new OwnPromiseCapability(C):newGenericPromiseCapability(C);};}$export($export.G+$export.W+$export.F*!USE_NATIVE,{Promise:$Promise});require('./_set-to-string-tag')($Promise,PROMISE);require('./_set-species')(PROMISE);Wrapper=require('./_core')[PROMISE];// statics
$export($export.S+$export.F*!USE_NATIVE,PROMISE,{// 25.4.4.5 Promise.reject(r)
reject:function reject(r){var capability=newPromiseCapability(this);var $$reject=capability.reject;$$reject(r);return capability.promise;}});$export($export.S+$export.F*(LIBRARY||!USE_NATIVE),PROMISE,{// 25.4.4.6 Promise.resolve(x)
resolve:function resolve(x){return promiseResolve(LIBRARY&&this===Wrapper?$Promise:this,x);}});$export($export.S+$export.F*!(USE_NATIVE&&require('./_iter-detect')(function(iter){$Promise.all(iter)['catch'](empty);})),PROMISE,{// 25.4.4.1 Promise.all(iterable)
all:function all(iterable){var C=this;var capability=newPromiseCapability(C);var resolve=capability.resolve;var reject=capability.reject;var result=perform(function(){var values=[];var index=0;var remaining=1;forOf(iterable,false,function(promise){var $index=index++;var alreadyCalled=false;values.push(undefined);remaining++;C.resolve(promise).then(function(value){if(alreadyCalled)return;alreadyCalled=true;values[$index]=value;--remaining||resolve(values);},reject);});--remaining||resolve(values);});if(result.e)reject(result.v);return capability.promise;},// 25.4.4.4 Promise.race(iterable)
race:function race(iterable){var C=this;var capability=newPromiseCapability(C);var reject=capability.reject;var result=perform(function(){forOf(iterable,false,function(promise){C.resolve(promise).then(capability.resolve,reject);});});if(result.e)reject(result.v);return capability.promise;}});},{"./_a-function":27,"./_an-instance":31,"./_classof":42,"./_core":48,"./_ctx":50,"./_export":58,"./_for-of":64,"./_global":66,"./_is-object":77,"./_iter-detect":82,"./_library":85,"./_microtask":93,"./_new-promise-capability":94,"./_perform":113,"./_promise-resolve":114,"./_redefine-all":116,"./_set-species":125,"./_set-to-string-tag":126,"./_species-constructor":129,"./_task":138,"./_user-agent":150,"./_wks":154}],236:[function(require,module,exports){// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
var $export=require('./_export');var aFunction=require('./_a-function');var anObject=require('./_an-object');var rApply=(require('./_global').Reflect||{}).apply;var fApply=Function.apply;// MS Edge argumentsList argument is optional
$export($export.S+$export.F*!require('./_fails')(function(){rApply(function(){/* empty */});}),'Reflect',{apply:function apply(target,thisArgument,argumentsList){var T=aFunction(target);var L=anObject(argumentsList);return rApply?rApply(T,thisArgument,L):fApply.call(T,thisArgument,L);}});},{"./_a-function":27,"./_an-object":32,"./_export":58,"./_fails":60,"./_global":66}],237:[function(require,module,exports){// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
var $export=require('./_export');var create=require('./_object-create');var aFunction=require('./_a-function');var anObject=require('./_an-object');var isObject=require('./_is-object');var fails=require('./_fails');var bind=require('./_bind');var rConstruct=(require('./_global').Reflect||{}).construct;// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG=fails(function(){function F(){/* empty */}return!(rConstruct(function(){/* empty */},[],F)instanceof F);});var ARGS_BUG=!fails(function(){rConstruct(function(){/* empty */});});$export($export.S+$export.F*(NEW_TARGET_BUG||ARGS_BUG),'Reflect',{construct:function construct(Target,args/* , newTarget */){aFunction(Target);anObject(args);var newTarget=arguments.length<3?Target:aFunction(arguments[2]);if(ARGS_BUG&&!NEW_TARGET_BUG)return rConstruct(Target,args,newTarget);if(Target==newTarget){// w/o altered newTarget, optimization for 0-4 arguments
switch(args.length){case 0:return new Target();case 1:return new Target(args[0]);case 2:return new Target(args[0],args[1]);case 3:return new Target(args[0],args[1],args[2]);case 4:return new Target(args[0],args[1],args[2],args[3]);}// w/o altered newTarget, lot of arguments case
var $args=[null];$args.push.apply($args,args);return new(bind.apply(Target,$args))();}// with altered newTarget, not support built-in constructors
var proto=newTarget.prototype;var instance=create(isObject(proto)?proto:Object.prototype);var result=Function.apply.call(Target,instance,args);return isObject(result)?result:instance;}});},{"./_a-function":27,"./_an-object":32,"./_bind":41,"./_export":58,"./_fails":60,"./_global":66,"./_is-object":77,"./_object-create":96}],238:[function(require,module,exports){// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
var dP=require('./_object-dp');var $export=require('./_export');var anObject=require('./_an-object');var toPrimitive=require('./_to-primitive');// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
$export($export.S+$export.F*require('./_fails')(function(){// eslint-disable-next-line no-undef
Reflect.defineProperty(dP.f({},1,{value:1}),1,{value:2});}),'Reflect',{defineProperty:function defineProperty(target,propertyKey,attributes){anObject(target);propertyKey=toPrimitive(propertyKey,true);anObject(attributes);try{dP.f(target,propertyKey,attributes);return true;}catch(e){return false;}}});},{"./_an-object":32,"./_export":58,"./_fails":60,"./_object-dp":97,"./_to-primitive":145}],239:[function(require,module,exports){// 26.1.4 Reflect.deleteProperty(target, propertyKey)
var $export=require('./_export');var gOPD=require('./_object-gopd').f;var anObject=require('./_an-object');$export($export.S,'Reflect',{deleteProperty:function deleteProperty(target,propertyKey){var desc=gOPD(anObject(target),propertyKey);return desc&&!desc.configurable?false:delete target[propertyKey];}});},{"./_an-object":32,"./_export":58,"./_object-gopd":100}],240:[function(require,module,exports){'use strict';// 26.1.5 Reflect.enumerate(target)
var $export=require('./_export');var anObject=require('./_an-object');var Enumerate=function Enumerate(iterated){this._t=anObject(iterated);// target
this._i=0;// next index
var keys=this._k=[];// keys
var key;for(key in iterated){keys.push(key);}};require('./_iter-create')(Enumerate,'Object',function(){var that=this;var keys=that._k;var key;do{if(that._i>=keys.length)return{value:undefined,done:true};}while(!((key=keys[that._i++])in that._t));return{value:key,done:false};});$export($export.S,'Reflect',{enumerate:function enumerate(target){return new Enumerate(target);}});},{"./_an-object":32,"./_export":58,"./_iter-create":80}],241:[function(require,module,exports){// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
var gOPD=require('./_object-gopd');var $export=require('./_export');var anObject=require('./_an-object');$export($export.S,'Reflect',{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(target,propertyKey){return gOPD.f(anObject(target),propertyKey);}});},{"./_an-object":32,"./_export":58,"./_object-gopd":100}],242:[function(require,module,exports){// 26.1.8 Reflect.getPrototypeOf(target)
var $export=require('./_export');var getProto=require('./_object-gpo');var anObject=require('./_an-object');$export($export.S,'Reflect',{getPrototypeOf:function getPrototypeOf(target){return getProto(anObject(target));}});},{"./_an-object":32,"./_export":58,"./_object-gpo":104}],243:[function(require,module,exports){// 26.1.6 Reflect.get(target, propertyKey [, receiver])
var gOPD=require('./_object-gopd');var getPrototypeOf=require('./_object-gpo');var has=require('./_has');var $export=require('./_export');var isObject=require('./_is-object');var anObject=require('./_an-object');function get(target,propertyKey/* , receiver */){var receiver=arguments.length<3?target:arguments[2];var desc,proto;if(anObject(target)===receiver)return target[propertyKey];if(desc=gOPD.f(target,propertyKey))return has(desc,'value')?desc.value:desc.get!==undefined?desc.get.call(receiver):undefined;if(isObject(proto=getPrototypeOf(target)))return get(proto,propertyKey,receiver);}$export($export.S,'Reflect',{get:get});},{"./_an-object":32,"./_export":58,"./_has":67,"./_is-object":77,"./_object-gopd":100,"./_object-gpo":104}],244:[function(require,module,exports){// 26.1.9 Reflect.has(target, propertyKey)
var $export=require('./_export');$export($export.S,'Reflect',{has:function has(target,propertyKey){return propertyKey in target;}});},{"./_export":58}],245:[function(require,module,exports){// 26.1.10 Reflect.isExtensible(target)
var $export=require('./_export');var anObject=require('./_an-object');var $isExtensible=Object.isExtensible;$export($export.S,'Reflect',{isExtensible:function isExtensible(target){anObject(target);return $isExtensible?$isExtensible(target):true;}});},{"./_an-object":32,"./_export":58}],246:[function(require,module,exports){// 26.1.11 Reflect.ownKeys(target)
var $export=require('./_export');$export($export.S,'Reflect',{ownKeys:require('./_own-keys')});},{"./_export":58,"./_own-keys":110}],247:[function(require,module,exports){// 26.1.12 Reflect.preventExtensions(target)
var $export=require('./_export');var anObject=require('./_an-object');var $preventExtensions=Object.preventExtensions;$export($export.S,'Reflect',{preventExtensions:function preventExtensions(target){anObject(target);try{if($preventExtensions)$preventExtensions(target);return true;}catch(e){return false;}}});},{"./_an-object":32,"./_export":58}],248:[function(require,module,exports){// 26.1.14 Reflect.setPrototypeOf(target, proto)
var $export=require('./_export');var setProto=require('./_set-proto');if(setProto)$export($export.S,'Reflect',{setPrototypeOf:function setPrototypeOf(target,proto){setProto.check(target,proto);try{setProto.set(target,proto);return true;}catch(e){return false;}}});},{"./_export":58,"./_set-proto":124}],249:[function(require,module,exports){// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
var dP=require('./_object-dp');var gOPD=require('./_object-gopd');var getPrototypeOf=require('./_object-gpo');var has=require('./_has');var $export=require('./_export');var createDesc=require('./_property-desc');var anObject=require('./_an-object');var isObject=require('./_is-object');function set(target,propertyKey,V/* , receiver */){var receiver=arguments.length<4?target:arguments[3];var ownDesc=gOPD.f(anObject(target),propertyKey);var existingDescriptor,proto;if(!ownDesc){if(isObject(proto=getPrototypeOf(target))){return set(proto,propertyKey,V,receiver);}ownDesc=createDesc(0);}if(has(ownDesc,'value')){if(ownDesc.writable===false||!isObject(receiver))return false;if(existingDescriptor=gOPD.f(receiver,propertyKey)){if(existingDescriptor.get||existingDescriptor.set||existingDescriptor.writable===false)return false;existingDescriptor.value=V;dP.f(receiver,propertyKey,existingDescriptor);}else dP.f(receiver,propertyKey,createDesc(0,V));return true;}return ownDesc.set===undefined?false:(ownDesc.set.call(receiver,V),true);}$export($export.S,'Reflect',{set:set});},{"./_an-object":32,"./_export":58,"./_has":67,"./_is-object":77,"./_object-dp":97,"./_object-gopd":100,"./_object-gpo":104,"./_property-desc":115}],250:[function(require,module,exports){var global=require('./_global');var inheritIfRequired=require('./_inherit-if-required');var dP=require('./_object-dp').f;var gOPN=require('./_object-gopn').f;var isRegExp=require('./_is-regexp');var $flags=require('./_flags');var $RegExp=global.RegExp;var Base=$RegExp;var proto=$RegExp.prototype;var re1=/a/g;var re2=/a/g;// "new" creates a new object, old webkit buggy here
var CORRECT_NEW=new $RegExp(re1)!==re1;if(require('./_descriptors')&&(!CORRECT_NEW||require('./_fails')(function(){re2[require('./_wks')('match')]=false;// RegExp constructor can alter flags and IsRegExp works correct with @@match
return $RegExp(re1)!=re1||$RegExp(re2)==re2||$RegExp(re1,'i')!='/a/i';}))){$RegExp=function RegExp(p,f){var tiRE=this instanceof $RegExp;var piRE=isRegExp(p);var fiU=f===undefined;return!tiRE&&piRE&&p.constructor===$RegExp&&fiU?p:inheritIfRequired(CORRECT_NEW?new Base(piRE&&!fiU?p.source:p,f):Base((piRE=p instanceof $RegExp)?p.source:p,piRE&&fiU?$flags.call(p):f),tiRE?this:proto,$RegExp);};var proxy=function proxy(key){key in $RegExp||dP($RegExp,key,{configurable:true,get:function get(){return Base[key];},set:function set(it){Base[key]=it;}});};for(var keys=gOPN(Base),i=0;keys.length>i;){proxy(keys[i++]);}proto.constructor=$RegExp;$RegExp.prototype=proto;require('./_redefine')(global,'RegExp',$RegExp);}require('./_set-species')('RegExp');},{"./_descriptors":54,"./_fails":60,"./_flags":62,"./_global":66,"./_inherit-if-required":71,"./_is-regexp":78,"./_object-dp":97,"./_object-gopn":102,"./_redefine":117,"./_set-species":125,"./_wks":154}],251:[function(require,module,exports){'use strict';var regexpExec=require('./_regexp-exec');require('./_export')({target:'RegExp',proto:true,forced:regexpExec!==/./.exec},{exec:regexpExec});},{"./_export":58,"./_regexp-exec":119}],252:[function(require,module,exports){// 21.2.5.3 get RegExp.prototype.flags()
if(require('./_descriptors')&&/./g.flags!='g')require('./_object-dp').f(RegExp.prototype,'flags',{configurable:true,get:require('./_flags')});},{"./_descriptors":54,"./_flags":62,"./_object-dp":97}],253:[function(require,module,exports){'use strict';var anObject=require('./_an-object');var toLength=require('./_to-length');var advanceStringIndex=require('./_advance-string-index');var regExpExec=require('./_regexp-exec-abstract');// @@match logic
require('./_fix-re-wks')('match',1,function(defined,MATCH,$match,maybeCallNative){return[// `String.prototype.match` method
// https://tc39.github.io/ecma262/#sec-string.prototype.match
function match(regexp){var O=defined(this);var fn=regexp==undefined?undefined:regexp[MATCH];return fn!==undefined?fn.call(regexp,O):new RegExp(regexp)[MATCH](String(O));},// `RegExp.prototype[@@match]` method
// https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match
function(regexp){var res=maybeCallNative($match,regexp,this);if(res.done)return res.value;var rx=anObject(regexp);var S=String(this);if(!rx.global)return regExpExec(rx,S);var fullUnicode=rx.unicode;rx.lastIndex=0;var A=[];var n=0;var result;while((result=regExpExec(rx,S))!==null){var matchStr=String(result[0]);A[n]=matchStr;if(matchStr==='')rx.lastIndex=advanceStringIndex(S,toLength(rx.lastIndex),fullUnicode);n++;}return n===0?null:A;}];});},{"./_advance-string-index":30,"./_an-object":32,"./_fix-re-wks":61,"./_regexp-exec-abstract":118,"./_to-length":143}],254:[function(require,module,exports){'use strict';var anObject=require('./_an-object');var toObject=require('./_to-object');var toLength=require('./_to-length');var toInteger=require('./_to-integer');var advanceStringIndex=require('./_advance-string-index');var regExpExec=require('./_regexp-exec-abstract');var max=Math.max;var min=Math.min;var floor=Math.floor;var SUBSTITUTION_SYMBOLS=/\$([$&`']|\d\d?|<[^>]*>)/g;var SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&`']|\d\d?)/g;var maybeToString=function maybeToString(it){return it===undefined?it:String(it);};// @@replace logic
require('./_fix-re-wks')('replace',2,function(defined,REPLACE,$replace,maybeCallNative){return[// `String.prototype.replace` method
// https://tc39.github.io/ecma262/#sec-string.prototype.replace
function replace(searchValue,replaceValue){var O=defined(this);var fn=searchValue==undefined?undefined:searchValue[REPLACE];return fn!==undefined?fn.call(searchValue,O,replaceValue):$replace.call(String(O),searchValue,replaceValue);},// `RegExp.prototype[@@replace]` method
// https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
function(regexp,replaceValue){var res=maybeCallNative($replace,regexp,this,replaceValue);if(res.done)return res.value;var rx=anObject(regexp);var S=String(this);var functionalReplace=typeof replaceValue==='function';if(!functionalReplace)replaceValue=String(replaceValue);var global=rx.global;if(global){var fullUnicode=rx.unicode;rx.lastIndex=0;}var results=[];while(true){var result=regExpExec(rx,S);if(result===null)break;results.push(result);if(!global)break;var matchStr=String(result[0]);if(matchStr==='')rx.lastIndex=advanceStringIndex(S,toLength(rx.lastIndex),fullUnicode);}var accumulatedResult='';var nextSourcePosition=0;for(var i=0;i<results.length;i++){result=results[i];var matched=String(result[0]);var position=max(min(toInteger(result.index),S.length),0);var captures=[];// NOTE: This is equivalent to
//   captures = result.slice(1).map(maybeToString)
// but for some reason `nativeSlice.call(result, 1, result.length)` (called in
// the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
// causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
for(var j=1;j<result.length;j++){captures.push(maybeToString(result[j]));}var namedCaptures=result.groups;if(functionalReplace){var replacerArgs=[matched].concat(captures,position,S);if(namedCaptures!==undefined)replacerArgs.push(namedCaptures);var replacement=String(replaceValue.apply(undefined,replacerArgs));}else{replacement=getSubstitution(matched,S,position,captures,namedCaptures,replaceValue);}if(position>=nextSourcePosition){accumulatedResult+=S.slice(nextSourcePosition,position)+replacement;nextSourcePosition=position+matched.length;}}return accumulatedResult+S.slice(nextSourcePosition);}];// https://tc39.github.io/ecma262/#sec-getsubstitution
function getSubstitution(matched,str,position,captures,namedCaptures,replacement){var tailPos=position+matched.length;var m=captures.length;var symbols=SUBSTITUTION_SYMBOLS_NO_NAMED;if(namedCaptures!==undefined){namedCaptures=toObject(namedCaptures);symbols=SUBSTITUTION_SYMBOLS;}return $replace.call(replacement,symbols,function(match,ch){var capture;switch(ch.charAt(0)){case'$':return'$';case'&':return matched;case'`':return str.slice(0,position);case"'":return str.slice(tailPos);case'<':capture=namedCaptures[ch.slice(1,-1)];break;default:// \d\d?
var n=+ch;if(n===0)return match;if(n>m){var f=floor(n/10);if(f===0)return match;if(f<=m)return captures[f-1]===undefined?ch.charAt(1):captures[f-1]+ch.charAt(1);return match;}capture=captures[n-1];}return capture===undefined?'':capture;});}});},{"./_advance-string-index":30,"./_an-object":32,"./_fix-re-wks":61,"./_regexp-exec-abstract":118,"./_to-integer":141,"./_to-length":143,"./_to-object":144}],255:[function(require,module,exports){'use strict';var anObject=require('./_an-object');var sameValue=require('./_same-value');var regExpExec=require('./_regexp-exec-abstract');// @@search logic
require('./_fix-re-wks')('search',1,function(defined,SEARCH,$search,maybeCallNative){return[// `String.prototype.search` method
// https://tc39.github.io/ecma262/#sec-string.prototype.search
function search(regexp){var O=defined(this);var fn=regexp==undefined?undefined:regexp[SEARCH];return fn!==undefined?fn.call(regexp,O):new RegExp(regexp)[SEARCH](String(O));},// `RegExp.prototype[@@search]` method
// https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search
function(regexp){var res=maybeCallNative($search,regexp,this);if(res.done)return res.value;var rx=anObject(regexp);var S=String(this);var previousLastIndex=rx.lastIndex;if(!sameValue(previousLastIndex,0))rx.lastIndex=0;var result=regExpExec(rx,S);if(!sameValue(rx.lastIndex,previousLastIndex))rx.lastIndex=previousLastIndex;return result===null?-1:result.index;}];});},{"./_an-object":32,"./_fix-re-wks":61,"./_regexp-exec-abstract":118,"./_same-value":121}],256:[function(require,module,exports){'use strict';var isRegExp=require('./_is-regexp');var anObject=require('./_an-object');var speciesConstructor=require('./_species-constructor');var advanceStringIndex=require('./_advance-string-index');var toLength=require('./_to-length');var callRegExpExec=require('./_regexp-exec-abstract');var regexpExec=require('./_regexp-exec');var fails=require('./_fails');var $min=Math.min;var $push=[].push;var $SPLIT='split';var LENGTH='length';var LAST_INDEX='lastIndex';var MAX_UINT32=0xffffffff;// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
var SUPPORTS_Y=!fails(function(){RegExp(MAX_UINT32,'y');});// @@split logic
require('./_fix-re-wks')('split',2,function(defined,SPLIT,$split,maybeCallNative){var internalSplit;if('abbc'[$SPLIT](/(b)*/)[1]=='c'||'test'[$SPLIT](/(?:)/,-1)[LENGTH]!=4||'ab'[$SPLIT](/(?:ab)*/)[LENGTH]!=2||'.'[$SPLIT](/(.?)(.?)/)[LENGTH]!=4||'.'[$SPLIT](/()()/)[LENGTH]>1||''[$SPLIT](/.?/)[LENGTH]){// based on es5-shim implementation, need to rework it
internalSplit=function internalSplit(separator,limit){var string=String(this);if(separator===undefined&&limit===0)return[];// If `separator` is not a regex, use native split
if(!isRegExp(separator))return $split.call(string,separator,limit);var output=[];var flags=(separator.ignoreCase?'i':'')+(separator.multiline?'m':'')+(separator.unicode?'u':'')+(separator.sticky?'y':'');var lastLastIndex=0;var splitLimit=limit===undefined?MAX_UINT32:limit>>>0;// Make `global` and avoid `lastIndex` issues by working with a copy
var separatorCopy=new RegExp(separator.source,flags+'g');var match,lastIndex,lastLength;while(match=regexpExec.call(separatorCopy,string)){lastIndex=separatorCopy[LAST_INDEX];if(lastIndex>lastLastIndex){output.push(string.slice(lastLastIndex,match.index));if(match[LENGTH]>1&&match.index<string[LENGTH])$push.apply(output,match.slice(1));lastLength=match[0][LENGTH];lastLastIndex=lastIndex;if(output[LENGTH]>=splitLimit)break;}if(separatorCopy[LAST_INDEX]===match.index)separatorCopy[LAST_INDEX]++;// Avoid an infinite loop
}if(lastLastIndex===string[LENGTH]){if(lastLength||!separatorCopy.test(''))output.push('');}else output.push(string.slice(lastLastIndex));return output[LENGTH]>splitLimit?output.slice(0,splitLimit):output;};// Chakra, V8
}else if('0'[$SPLIT](undefined,0)[LENGTH]){internalSplit=function internalSplit(separator,limit){return separator===undefined&&limit===0?[]:$split.call(this,separator,limit);};}else{internalSplit=$split;}return[// `String.prototype.split` method
// https://tc39.github.io/ecma262/#sec-string.prototype.split
function split(separator,limit){var O=defined(this);var splitter=separator==undefined?undefined:separator[SPLIT];return splitter!==undefined?splitter.call(separator,O,limit):internalSplit.call(String(O),separator,limit);},// `RegExp.prototype[@@split]` method
// https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
//
// NOTE: This cannot be properly polyfilled in engines that don't support
// the 'y' flag.
function(regexp,limit){var res=maybeCallNative(internalSplit,regexp,this,limit,internalSplit!==$split);if(res.done)return res.value;var rx=anObject(regexp);var S=String(this);var C=speciesConstructor(rx,RegExp);var unicodeMatching=rx.unicode;var flags=(rx.ignoreCase?'i':'')+(rx.multiline?'m':'')+(rx.unicode?'u':'')+(SUPPORTS_Y?'y':'g');// ^(? + rx + ) is needed, in combination with some S slicing, to
// simulate the 'y' flag.
var splitter=new C(SUPPORTS_Y?rx:'^(?:'+rx.source+')',flags);var lim=limit===undefined?MAX_UINT32:limit>>>0;if(lim===0)return[];if(S.length===0)return callRegExpExec(splitter,S)===null?[S]:[];var p=0;var q=0;var A=[];while(q<S.length){splitter.lastIndex=SUPPORTS_Y?q:0;var z=callRegExpExec(splitter,SUPPORTS_Y?S:S.slice(q));var e;if(z===null||(e=$min(toLength(splitter.lastIndex+(SUPPORTS_Y?0:q)),S.length))===p){q=advanceStringIndex(S,q,unicodeMatching);}else{A.push(S.slice(p,q));if(A.length===lim)return A;for(var i=1;i<=z.length-1;i++){A.push(z[i]);if(A.length===lim)return A;}q=p=e;}}A.push(S.slice(p));return A;}];});},{"./_advance-string-index":30,"./_an-object":32,"./_fails":60,"./_fix-re-wks":61,"./_is-regexp":78,"./_regexp-exec":119,"./_regexp-exec-abstract":118,"./_species-constructor":129,"./_to-length":143}],257:[function(require,module,exports){'use strict';require('./es6.regexp.flags');var anObject=require('./_an-object');var $flags=require('./_flags');var DESCRIPTORS=require('./_descriptors');var TO_STRING='toString';var $toString=/./[TO_STRING];var define=function define(fn){require('./_redefine')(RegExp.prototype,TO_STRING,fn,true);};// 21.2.5.14 RegExp.prototype.toString()
if(require('./_fails')(function(){return $toString.call({source:'a',flags:'b'})!='/a/b';})){define(function toString(){var R=anObject(this);return'/'.concat(R.source,'/','flags'in R?R.flags:!DESCRIPTORS&&R instanceof RegExp?$flags.call(R):undefined);});// FF44- RegExp#toString has a wrong name
}else if($toString.name!=TO_STRING){define(function toString(){return $toString.call(this);});}},{"./_an-object":32,"./_descriptors":54,"./_fails":60,"./_flags":62,"./_redefine":117,"./es6.regexp.flags":252}],258:[function(require,module,exports){'use strict';var strong=require('./_collection-strong');var validate=require('./_validate-collection');var SET='Set';// 23.2 Set Objects
module.exports=require('./_collection')(SET,function(get){return function Set(){return get(this,arguments.length>0?arguments[0]:undefined);};},{// 23.2.3.1 Set.prototype.add(value)
add:function add(value){return strong.def(validate(this,SET),value=value===0?0:value,value);}},strong);},{"./_collection":47,"./_collection-strong":44,"./_validate-collection":151}],259:[function(require,module,exports){'use strict';// B.2.3.2 String.prototype.anchor(name)
require('./_string-html')('anchor',function(createHTML){return function anchor(name){return createHTML(this,'a','name',name);};});},{"./_string-html":133}],260:[function(require,module,exports){'use strict';// B.2.3.3 String.prototype.big()
require('./_string-html')('big',function(createHTML){return function big(){return createHTML(this,'big','','');};});},{"./_string-html":133}],261:[function(require,module,exports){'use strict';// B.2.3.4 String.prototype.blink()
require('./_string-html')('blink',function(createHTML){return function blink(){return createHTML(this,'blink','','');};});},{"./_string-html":133}],262:[function(require,module,exports){'use strict';// B.2.3.5 String.prototype.bold()
require('./_string-html')('bold',function(createHTML){return function bold(){return createHTML(this,'b','','');};});},{"./_string-html":133}],263:[function(require,module,exports){'use strict';var $export=require('./_export');var $at=require('./_string-at')(false);$export($export.P,'String',{// 21.1.3.3 String.prototype.codePointAt(pos)
codePointAt:function codePointAt(pos){return $at(this,pos);}});},{"./_export":58,"./_string-at":131}],264:[function(require,module,exports){// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
'use strict';var $export=require('./_export');var toLength=require('./_to-length');var context=require('./_string-context');var ENDS_WITH='endsWith';var $endsWith=''[ENDS_WITH];$export($export.P+$export.F*require('./_fails-is-regexp')(ENDS_WITH),'String',{endsWith:function endsWith(searchString/* , endPosition = @length */){var that=context(this,searchString,ENDS_WITH);var endPosition=arguments.length>1?arguments[1]:undefined;var len=toLength(that.length);var end=endPosition===undefined?len:Math.min(toLength(endPosition),len);var search=String(searchString);return $endsWith?$endsWith.call(that,search,end):that.slice(end-search.length,end)===search;}});},{"./_export":58,"./_fails-is-regexp":59,"./_string-context":132,"./_to-length":143}],265:[function(require,module,exports){'use strict';// B.2.3.6 String.prototype.fixed()
require('./_string-html')('fixed',function(createHTML){return function fixed(){return createHTML(this,'tt','','');};});},{"./_string-html":133}],266:[function(require,module,exports){'use strict';// B.2.3.7 String.prototype.fontcolor(color)
require('./_string-html')('fontcolor',function(createHTML){return function fontcolor(color){return createHTML(this,'font','color',color);};});},{"./_string-html":133}],267:[function(require,module,exports){'use strict';// B.2.3.8 String.prototype.fontsize(size)
require('./_string-html')('fontsize',function(createHTML){return function fontsize(size){return createHTML(this,'font','size',size);};});},{"./_string-html":133}],268:[function(require,module,exports){var $export=require('./_export');var toAbsoluteIndex=require('./_to-absolute-index');var fromCharCode=String.fromCharCode;var $fromCodePoint=String.fromCodePoint;// length should be 1, old FF problem
$export($export.S+$export.F*(!!$fromCodePoint&&$fromCodePoint.length!=1),'String',{// 21.1.2.2 String.fromCodePoint(...codePoints)
fromCodePoint:function fromCodePoint(x){// eslint-disable-line no-unused-vars
var res=[];var aLen=arguments.length;var i=0;var code;while(aLen>i){code=+arguments[i++];if(toAbsoluteIndex(code,0x10ffff)!==code)throw RangeError(code+' is not a valid code point');res.push(code<0x10000?fromCharCode(code):fromCharCode(((code-=0x10000)>>10)+0xd800,code%0x400+0xdc00));}return res.join('');}});},{"./_export":58,"./_to-absolute-index":139}],269:[function(require,module,exports){// 21.1.3.7 String.prototype.includes(searchString, position = 0)
'use strict';var $export=require('./_export');var context=require('./_string-context');var INCLUDES='includes';$export($export.P+$export.F*require('./_fails-is-regexp')(INCLUDES),'String',{includes:function includes(searchString/* , position = 0 */){return!!~context(this,searchString,INCLUDES).indexOf(searchString,arguments.length>1?arguments[1]:undefined);}});},{"./_export":58,"./_fails-is-regexp":59,"./_string-context":132}],270:[function(require,module,exports){'use strict';// B.2.3.9 String.prototype.italics()
require('./_string-html')('italics',function(createHTML){return function italics(){return createHTML(this,'i','','');};});},{"./_string-html":133}],271:[function(require,module,exports){'use strict';var $at=require('./_string-at')(true);// 21.1.3.27 String.prototype[@@iterator]()
require('./_iter-define')(String,'String',function(iterated){this._t=String(iterated);// target
this._i=0;// next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
},function(){var O=this._t;var index=this._i;var point;if(index>=O.length)return{value:undefined,done:true};point=$at(O,index);this._i+=point.length;return{value:point,done:false};});},{"./_iter-define":81,"./_string-at":131}],272:[function(require,module,exports){'use strict';// B.2.3.10 String.prototype.link(url)
require('./_string-html')('link',function(createHTML){return function link(url){return createHTML(this,'a','href',url);};});},{"./_string-html":133}],273:[function(require,module,exports){var $export=require('./_export');var toIObject=require('./_to-iobject');var toLength=require('./_to-length');$export($export.S,'String',{// 21.1.2.4 String.raw(callSite, ...substitutions)
raw:function raw(callSite){var tpl=toIObject(callSite.raw);var len=toLength(tpl.length);var aLen=arguments.length;var res=[];var i=0;while(len>i){res.push(String(tpl[i++]));if(i<aLen)res.push(String(arguments[i]));}return res.join('');}});},{"./_export":58,"./_to-iobject":142,"./_to-length":143}],274:[function(require,module,exports){var $export=require('./_export');$export($export.P,'String',{// 21.1.3.13 String.prototype.repeat(count)
repeat:require('./_string-repeat')});},{"./_export":58,"./_string-repeat":135}],275:[function(require,module,exports){'use strict';// B.2.3.11 String.prototype.small()
require('./_string-html')('small',function(createHTML){return function small(){return createHTML(this,'small','','');};});},{"./_string-html":133}],276:[function(require,module,exports){// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
'use strict';var $export=require('./_export');var toLength=require('./_to-length');var context=require('./_string-context');var STARTS_WITH='startsWith';var $startsWith=''[STARTS_WITH];$export($export.P+$export.F*require('./_fails-is-regexp')(STARTS_WITH),'String',{startsWith:function startsWith(searchString/* , position = 0 */){var that=context(this,searchString,STARTS_WITH);var index=toLength(Math.min(arguments.length>1?arguments[1]:undefined,that.length));var search=String(searchString);return $startsWith?$startsWith.call(that,search,index):that.slice(index,index+search.length)===search;}});},{"./_export":58,"./_fails-is-regexp":59,"./_string-context":132,"./_to-length":143}],277:[function(require,module,exports){'use strict';// B.2.3.12 String.prototype.strike()
require('./_string-html')('strike',function(createHTML){return function strike(){return createHTML(this,'strike','','');};});},{"./_string-html":133}],278:[function(require,module,exports){'use strict';// B.2.3.13 String.prototype.sub()
require('./_string-html')('sub',function(createHTML){return function sub(){return createHTML(this,'sub','','');};});},{"./_string-html":133}],279:[function(require,module,exports){'use strict';// B.2.3.14 String.prototype.sup()
require('./_string-html')('sup',function(createHTML){return function sup(){return createHTML(this,'sup','','');};});},{"./_string-html":133}],280:[function(require,module,exports){'use strict';// 21.1.3.25 String.prototype.trim()
require('./_string-trim')('trim',function($trim){return function trim(){return $trim(this,3);};});},{"./_string-trim":136}],281:[function(require,module,exports){'use strict';// ECMAScript 6 symbols shim
var global=require('./_global');var has=require('./_has');var DESCRIPTORS=require('./_descriptors');var $export=require('./_export');var redefine=require('./_redefine');var META=require('./_meta').KEY;var $fails=require('./_fails');var shared=require('./_shared');var setToStringTag=require('./_set-to-string-tag');var uid=require('./_uid');var wks=require('./_wks');var wksExt=require('./_wks-ext');var wksDefine=require('./_wks-define');var enumKeys=require('./_enum-keys');var isArray=require('./_is-array');var anObject=require('./_an-object');var isObject=require('./_is-object');var toObject=require('./_to-object');var toIObject=require('./_to-iobject');var toPrimitive=require('./_to-primitive');var createDesc=require('./_property-desc');var _create=require('./_object-create');var gOPNExt=require('./_object-gopn-ext');var $GOPD=require('./_object-gopd');var $GOPS=require('./_object-gops');var $DP=require('./_object-dp');var $keys=require('./_object-keys');var gOPD=$GOPD.f;var dP=$DP.f;var gOPN=gOPNExt.f;var $Symbol=global.Symbol;var $JSON=global.JSON;var _stringify=$JSON&&$JSON.stringify;var PROTOTYPE='prototype';var HIDDEN=wks('_hidden');var TO_PRIMITIVE=wks('toPrimitive');var isEnum={}.propertyIsEnumerable;var SymbolRegistry=shared('symbol-registry');var AllSymbols=shared('symbols');var OPSymbols=shared('op-symbols');var ObjectProto=Object[PROTOTYPE];var USE_NATIVE=typeof $Symbol=='function'&&!!$GOPS.f;var QObject=global.QObject;// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter=!QObject||!QObject[PROTOTYPE]||!QObject[PROTOTYPE].findChild;// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc=DESCRIPTORS&&$fails(function(){return _create(dP({},'a',{get:function get(){return dP(this,'a',{value:7}).a;}})).a!=7;})?function(it,key,D){var protoDesc=gOPD(ObjectProto,key);if(protoDesc)delete ObjectProto[key];dP(it,key,D);if(protoDesc&&it!==ObjectProto)dP(ObjectProto,key,protoDesc);}:dP;var wrap=function wrap(tag){var sym=AllSymbols[tag]=_create($Symbol[PROTOTYPE]);sym._k=tag;return sym;};var isSymbol=USE_NATIVE&&_typeof($Symbol.iterator)=='symbol'?function(it){return _typeof(it)=='symbol';}:function(it){return it instanceof $Symbol;};var $defineProperty=function defineProperty(it,key,D){if(it===ObjectProto)$defineProperty(OPSymbols,key,D);anObject(it);key=toPrimitive(key,true);anObject(D);if(has(AllSymbols,key)){if(!D.enumerable){if(!has(it,HIDDEN))dP(it,HIDDEN,createDesc(1,{}));it[HIDDEN][key]=true;}else{if(has(it,HIDDEN)&&it[HIDDEN][key])it[HIDDEN][key]=false;D=_create(D,{enumerable:createDesc(0,false)});}return setSymbolDesc(it,key,D);}return dP(it,key,D);};var $defineProperties=function defineProperties(it,P){anObject(it);var keys=enumKeys(P=toIObject(P));var i=0;var l=keys.length;var key;while(l>i){$defineProperty(it,key=keys[i++],P[key]);}return it;};var $create=function create(it,P){return P===undefined?_create(it):$defineProperties(_create(it),P);};var $propertyIsEnumerable=function propertyIsEnumerable(key){var E=isEnum.call(this,key=toPrimitive(key,true));if(this===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return false;return E||!has(this,key)||!has(AllSymbols,key)||has(this,HIDDEN)&&this[HIDDEN][key]?E:true;};var $getOwnPropertyDescriptor=function getOwnPropertyDescriptor(it,key){it=toIObject(it);key=toPrimitive(key,true);if(it===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return;var D=gOPD(it,key);if(D&&has(AllSymbols,key)&&!(has(it,HIDDEN)&&it[HIDDEN][key]))D.enumerable=true;return D;};var $getOwnPropertyNames=function getOwnPropertyNames(it){var names=gOPN(toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(!has(AllSymbols,key=names[i++])&&key!=HIDDEN&&key!=META)result.push(key);}return result;};var $getOwnPropertySymbols=function getOwnPropertySymbols(it){var IS_OP=it===ObjectProto;var names=gOPN(IS_OP?OPSymbols:toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(has(AllSymbols,key=names[i++])&&(IS_OP?has(ObjectProto,key):true))result.push(AllSymbols[key]);}return result;};// 19.4.1.1 Symbol([description])
if(!USE_NATIVE){$Symbol=function _Symbol2(){if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');var tag=uid(arguments.length>0?arguments[0]:undefined);var $set=function $set(value){if(this===ObjectProto)$set.call(OPSymbols,value);if(has(this,HIDDEN)&&has(this[HIDDEN],tag))this[HIDDEN][tag]=false;setSymbolDesc(this,tag,createDesc(1,value));};if(DESCRIPTORS&&setter)setSymbolDesc(ObjectProto,tag,{configurable:true,set:$set});return wrap(tag);};redefine($Symbol[PROTOTYPE],'toString',function toString(){return this._k;});$GOPD.f=$getOwnPropertyDescriptor;$DP.f=$defineProperty;require('./_object-gopn').f=gOPNExt.f=$getOwnPropertyNames;require('./_object-pie').f=$propertyIsEnumerable;$GOPS.f=$getOwnPropertySymbols;if(DESCRIPTORS&&!require('./_library')){redefine(ObjectProto,'propertyIsEnumerable',$propertyIsEnumerable,true);}wksExt.f=function(name){return wrap(wks(name));};}$export($export.G+$export.W+$export.F*!USE_NATIVE,{Symbol:$Symbol});for(var es6Symbols=// 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','),j=0;es6Symbols.length>j;){wks(es6Symbols[j++]);}for(var wellKnownSymbols=$keys(wks.store),k=0;wellKnownSymbols.length>k;){wksDefine(wellKnownSymbols[k++]);}$export($export.S+$export.F*!USE_NATIVE,'Symbol',{// 19.4.2.1 Symbol.for(key)
'for':function _for(key){return has(SymbolRegistry,key+='')?SymbolRegistry[key]:SymbolRegistry[key]=$Symbol(key);},// 19.4.2.5 Symbol.keyFor(sym)
keyFor:function keyFor(sym){if(!isSymbol(sym))throw TypeError(sym+' is not a symbol!');for(var key in SymbolRegistry){if(SymbolRegistry[key]===sym)return key;}},useSetter:function useSetter(){setter=true;},useSimple:function useSimple(){setter=false;}});$export($export.S+$export.F*!USE_NATIVE,'Object',{// 19.1.2.2 Object.create(O [, Properties])
create:$create,// 19.1.2.4 Object.defineProperty(O, P, Attributes)
defineProperty:$defineProperty,// 19.1.2.3 Object.defineProperties(O, Properties)
defineProperties:$defineProperties,// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
getOwnPropertyDescriptor:$getOwnPropertyDescriptor,// 19.1.2.7 Object.getOwnPropertyNames(O)
getOwnPropertyNames:$getOwnPropertyNames,// 19.1.2.8 Object.getOwnPropertySymbols(O)
getOwnPropertySymbols:$getOwnPropertySymbols});// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES=$fails(function(){$GOPS.f(1);});$export($export.S+$export.F*FAILS_ON_PRIMITIVES,'Object',{getOwnPropertySymbols:function getOwnPropertySymbols(it){return $GOPS.f(toObject(it));}});// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON&&$export($export.S+$export.F*(!USE_NATIVE||$fails(function(){var S=$Symbol();// MS Edge converts symbol values to JSON as {}
// WebKit converts symbol values to JSON as null
// V8 throws on boxed symbols
return _stringify([S])!='[null]'||_stringify({a:S})!='{}'||_stringify(Object(S))!='{}';})),'JSON',{stringify:function stringify(it){var args=[it];var i=1;var replacer,$replacer;while(arguments.length>i){args.push(arguments[i++]);}$replacer=replacer=args[1];if(!isObject(replacer)&&it===undefined||isSymbol(it))return;// IE8 returns string on undefined
if(!isArray(replacer))replacer=function replacer(key,value){if(typeof $replacer=='function')value=$replacer.call(this,key,value);if(!isSymbol(value))return value;};args[1]=replacer;return _stringify.apply($JSON,args);}});// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE]||require('./_hide')($Symbol[PROTOTYPE],TO_PRIMITIVE,$Symbol[PROTOTYPE].valueOf);// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol,'Symbol');// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math,'Math',true);// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON,'JSON',true);},{"./_an-object":32,"./_descriptors":54,"./_enum-keys":57,"./_export":58,"./_fails":60,"./_global":66,"./_has":67,"./_hide":68,"./_is-array":75,"./_is-object":77,"./_library":85,"./_meta":91,"./_object-create":96,"./_object-dp":97,"./_object-gopd":100,"./_object-gopn":102,"./_object-gopn-ext":101,"./_object-gops":103,"./_object-keys":106,"./_object-pie":107,"./_property-desc":115,"./_redefine":117,"./_set-to-string-tag":126,"./_shared":128,"./_to-iobject":142,"./_to-object":144,"./_to-primitive":145,"./_uid":149,"./_wks":154,"./_wks-define":152,"./_wks-ext":153}],282:[function(require,module,exports){'use strict';var $export=require('./_export');var $typed=require('./_typed');var buffer=require('./_typed-buffer');var anObject=require('./_an-object');var toAbsoluteIndex=require('./_to-absolute-index');var toLength=require('./_to-length');var isObject=require('./_is-object');var ArrayBuffer=require('./_global').ArrayBuffer;var speciesConstructor=require('./_species-constructor');var $ArrayBuffer=buffer.ArrayBuffer;var $DataView=buffer.DataView;var $isView=$typed.ABV&&ArrayBuffer.isView;var $slice=$ArrayBuffer.prototype.slice;var VIEW=$typed.VIEW;var ARRAY_BUFFER='ArrayBuffer';$export($export.G+$export.W+$export.F*(ArrayBuffer!==$ArrayBuffer),{ArrayBuffer:$ArrayBuffer});$export($export.S+$export.F*!$typed.CONSTR,ARRAY_BUFFER,{// 24.1.3.1 ArrayBuffer.isView(arg)
isView:function isView(it){return $isView&&$isView(it)||isObject(it)&&VIEW in it;}});$export($export.P+$export.U+$export.F*require('./_fails')(function(){return!new $ArrayBuffer(2).slice(1,undefined).byteLength;}),ARRAY_BUFFER,{// 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
slice:function slice(start,end){if($slice!==undefined&&end===undefined)return $slice.call(anObject(this),start);// FF fix
var len=anObject(this).byteLength;var first=toAbsoluteIndex(start,len);var fin=toAbsoluteIndex(end===undefined?len:end,len);var result=new(speciesConstructor(this,$ArrayBuffer))(toLength(fin-first));var viewS=new $DataView(this);var viewT=new $DataView(result);var index=0;while(first<fin){viewT.setUint8(index++,viewS.getUint8(first++));}return result;}});require('./_set-species')(ARRAY_BUFFER);},{"./_an-object":32,"./_export":58,"./_fails":60,"./_global":66,"./_is-object":77,"./_set-species":125,"./_species-constructor":129,"./_to-absolute-index":139,"./_to-length":143,"./_typed":148,"./_typed-buffer":147}],283:[function(require,module,exports){var $export=require('./_export');$export($export.G+$export.W+$export.F*!require('./_typed').ABV,{DataView:require('./_typed-buffer').DataView});},{"./_export":58,"./_typed":148,"./_typed-buffer":147}],284:[function(require,module,exports){require('./_typed-array')('Float32',4,function(init){return function Float32Array(data,byteOffset,length){return init(this,data,byteOffset,length);};});},{"./_typed-array":146}],285:[function(require,module,exports){require('./_typed-array')('Float64',8,function(init){return function Float64Array(data,byteOffset,length){return init(this,data,byteOffset,length);};});},{"./_typed-array":146}],286:[function(require,module,exports){require('./_typed-array')('Int16',2,function(init){return function Int16Array(data,byteOffset,length){return init(this,data,byteOffset,length);};});},{"./_typed-array":146}],287:[function(require,module,exports){require('./_typed-array')('Int32',4,function(init){return function Int32Array(data,byteOffset,length){return init(this,data,byteOffset,length);};});},{"./_typed-array":146}],288:[function(require,module,exports){require('./_typed-array')('Int8',1,function(init){return function Int8Array(data,byteOffset,length){return init(this,data,byteOffset,length);};});},{"./_typed-array":146}],289:[function(require,module,exports){require('./_typed-array')('Uint16',2,function(init){return function Uint16Array(data,byteOffset,length){return init(this,data,byteOffset,length);};});},{"./_typed-array":146}],290:[function(require,module,exports){require('./_typed-array')('Uint32',4,function(init){return function Uint32Array(data,byteOffset,length){return init(this,data,byteOffset,length);};});},{"./_typed-array":146}],291:[function(require,module,exports){require('./_typed-array')('Uint8',1,function(init){return function Uint8Array(data,byteOffset,length){return init(this,data,byteOffset,length);};});},{"./_typed-array":146}],292:[function(require,module,exports){require('./_typed-array')('Uint8',1,function(init){return function Uint8ClampedArray(data,byteOffset,length){return init(this,data,byteOffset,length);};},true);},{"./_typed-array":146}],293:[function(require,module,exports){'use strict';var global=require('./_global');var each=require('./_array-methods')(0);var redefine=require('./_redefine');var meta=require('./_meta');var assign=require('./_object-assign');var weak=require('./_collection-weak');var isObject=require('./_is-object');var validate=require('./_validate-collection');var NATIVE_WEAK_MAP=require('./_validate-collection');var IS_IE11=!global.ActiveXObject&&'ActiveXObject'in global;var WEAK_MAP='WeakMap';var getWeak=meta.getWeak;var isExtensible=Object.isExtensible;var uncaughtFrozenStore=weak.ufstore;var InternalMap;var wrapper=function wrapper(get){return function WeakMap(){return get(this,arguments.length>0?arguments[0]:undefined);};};var methods={// 23.3.3.3 WeakMap.prototype.get(key)
get:function get(key){if(isObject(key)){var data=getWeak(key);if(data===true)return uncaughtFrozenStore(validate(this,WEAK_MAP)).get(key);return data?data[this._i]:undefined;}},// 23.3.3.5 WeakMap.prototype.set(key, value)
set:function set(key,value){return weak.def(validate(this,WEAK_MAP),key,value);}};// 23.3 WeakMap Objects
var $WeakMap=module.exports=require('./_collection')(WEAK_MAP,wrapper,methods,weak,true,true);// IE11 WeakMap frozen keys fix
if(NATIVE_WEAK_MAP&&IS_IE11){InternalMap=weak.getConstructor(wrapper,WEAK_MAP);assign(InternalMap.prototype,methods);meta.NEED=true;each(['delete','has','get','set'],function(key){var proto=$WeakMap.prototype;var method=proto[key];redefine(proto,key,function(a,b){// store frozen objects on internal weakmap shim
if(isObject(a)&&!isExtensible(a)){if(!this._f)this._f=new InternalMap();var result=this._f[key](a,b);return key=='set'?this:result;// store all the rest on native weakmap
}return method.call(this,a,b);});});}},{"./_array-methods":37,"./_collection":47,"./_collection-weak":46,"./_global":66,"./_is-object":77,"./_meta":91,"./_object-assign":95,"./_redefine":117,"./_validate-collection":151}],294:[function(require,module,exports){'use strict';var weak=require('./_collection-weak');var validate=require('./_validate-collection');var WEAK_SET='WeakSet';// 23.4 WeakSet Objects
require('./_collection')(WEAK_SET,function(get){return function WeakSet(){return get(this,arguments.length>0?arguments[0]:undefined);};},{// 23.4.3.1 WeakSet.prototype.add(value)
add:function add(value){return weak.def(validate(this,WEAK_SET),value,true);}},weak,false,true);},{"./_collection":47,"./_collection-weak":46,"./_validate-collection":151}],295:[function(require,module,exports){'use strict';// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap
var $export=require('./_export');var flattenIntoArray=require('./_flatten-into-array');var toObject=require('./_to-object');var toLength=require('./_to-length');var aFunction=require('./_a-function');var arraySpeciesCreate=require('./_array-species-create');$export($export.P,'Array',{flatMap:function flatMap(callbackfn/* , thisArg */){var O=toObject(this);var sourceLen,A;aFunction(callbackfn);sourceLen=toLength(O.length);A=arraySpeciesCreate(O,0);flattenIntoArray(A,O,O,sourceLen,0,1,callbackfn,arguments[1]);return A;}});require('./_add-to-unscopables')('flatMap');},{"./_a-function":27,"./_add-to-unscopables":29,"./_array-species-create":40,"./_export":58,"./_flatten-into-array":63,"./_to-length":143,"./_to-object":144}],296:[function(require,module,exports){'use strict';// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten
var $export=require('./_export');var flattenIntoArray=require('./_flatten-into-array');var toObject=require('./_to-object');var toLength=require('./_to-length');var toInteger=require('./_to-integer');var arraySpeciesCreate=require('./_array-species-create');$export($export.P,'Array',{flatten:function flatten()/* depthArg = 1 */{var depthArg=arguments[0];var O=toObject(this);var sourceLen=toLength(O.length);var A=arraySpeciesCreate(O,0);flattenIntoArray(A,O,O,sourceLen,0,depthArg===undefined?1:toInteger(depthArg));return A;}});require('./_add-to-unscopables')('flatten');},{"./_add-to-unscopables":29,"./_array-species-create":40,"./_export":58,"./_flatten-into-array":63,"./_to-integer":141,"./_to-length":143,"./_to-object":144}],297:[function(require,module,exports){'use strict';// https://github.com/tc39/Array.prototype.includes
var $export=require('./_export');var $includes=require('./_array-includes')(true);$export($export.P,'Array',{includes:function includes(el/* , fromIndex = 0 */){return $includes(this,el,arguments.length>1?arguments[1]:undefined);}});require('./_add-to-unscopables')('includes');},{"./_add-to-unscopables":29,"./_array-includes":36,"./_export":58}],298:[function(require,module,exports){// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
var $export=require('./_export');var microtask=require('./_microtask')();var process=require('./_global').process;var isNode=require('./_cof')(process)=='process';$export($export.G,{asap:function asap(fn){var domain=isNode&&process.domain;microtask(domain?domain.bind(fn):fn);}});},{"./_cof":43,"./_export":58,"./_global":66,"./_microtask":93}],299:[function(require,module,exports){// https://github.com/ljharb/proposal-is-error
var $export=require('./_export');var cof=require('./_cof');$export($export.S,'Error',{isError:function isError(it){return cof(it)==='Error';}});},{"./_cof":43,"./_export":58}],300:[function(require,module,exports){// https://github.com/tc39/proposal-global
var $export=require('./_export');$export($export.G,{global:require('./_global')});},{"./_export":58,"./_global":66}],301:[function(require,module,exports){// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
require('./_set-collection-from')('Map');},{"./_set-collection-from":122}],302:[function(require,module,exports){// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
require('./_set-collection-of')('Map');},{"./_set-collection-of":123}],303:[function(require,module,exports){// https://github.com/DavidBruant/Map-Set.prototype.toJSON
var $export=require('./_export');$export($export.P+$export.R,'Map',{toJSON:require('./_collection-to-json')('Map')});},{"./_collection-to-json":45,"./_export":58}],304:[function(require,module,exports){// https://rwaldron.github.io/proposal-math-extensions/
var $export=require('./_export');$export($export.S,'Math',{clamp:function clamp(x,lower,upper){return Math.min(upper,Math.max(lower,x));}});},{"./_export":58}],305:[function(require,module,exports){// https://rwaldron.github.io/proposal-math-extensions/
var $export=require('./_export');$export($export.S,'Math',{DEG_PER_RAD:Math.PI/180});},{"./_export":58}],306:[function(require,module,exports){// https://rwaldron.github.io/proposal-math-extensions/
var $export=require('./_export');var RAD_PER_DEG=180/Math.PI;$export($export.S,'Math',{degrees:function degrees(radians){return radians*RAD_PER_DEG;}});},{"./_export":58}],307:[function(require,module,exports){// https://rwaldron.github.io/proposal-math-extensions/
var $export=require('./_export');var scale=require('./_math-scale');var fround=require('./_math-fround');$export($export.S,'Math',{fscale:function fscale(x,inLow,inHigh,outLow,outHigh){return fround(scale(x,inLow,inHigh,outLow,outHigh));}});},{"./_export":58,"./_math-fround":87,"./_math-scale":89}],308:[function(require,module,exports){// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
var $export=require('./_export');$export($export.S,'Math',{iaddh:function iaddh(x0,x1,y0,y1){var $x0=x0>>>0;var $x1=x1>>>0;var $y0=y0>>>0;return $x1+(y1>>>0)+(($x0&$y0|($x0|$y0)&~($x0+$y0>>>0))>>>31)|0;}});},{"./_export":58}],309:[function(require,module,exports){// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
var $export=require('./_export');$export($export.S,'Math',{imulh:function imulh(u,v){var UINT16=0xffff;var $u=+u;var $v=+v;var u0=$u&UINT16;var v0=$v&UINT16;var u1=$u>>16;var v1=$v>>16;var t=(u1*v0>>>0)+(u0*v0>>>16);return u1*v1+(t>>16)+((u0*v1>>>0)+(t&UINT16)>>16);}});},{"./_export":58}],310:[function(require,module,exports){// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
var $export=require('./_export');$export($export.S,'Math',{isubh:function isubh(x0,x1,y0,y1){var $x0=x0>>>0;var $x1=x1>>>0;var $y0=y0>>>0;return $x1-(y1>>>0)-((~$x0&$y0|~($x0^$y0)&$x0-$y0>>>0)>>>31)|0;}});},{"./_export":58}],311:[function(require,module,exports){// https://rwaldron.github.io/proposal-math-extensions/
var $export=require('./_export');$export($export.S,'Math',{RAD_PER_DEG:180/Math.PI});},{"./_export":58}],312:[function(require,module,exports){// https://rwaldron.github.io/proposal-math-extensions/
var $export=require('./_export');var DEG_PER_RAD=Math.PI/180;$export($export.S,'Math',{radians:function radians(degrees){return degrees*DEG_PER_RAD;}});},{"./_export":58}],313:[function(require,module,exports){// https://rwaldron.github.io/proposal-math-extensions/
var $export=require('./_export');$export($export.S,'Math',{scale:require('./_math-scale')});},{"./_export":58,"./_math-scale":89}],314:[function(require,module,exports){// http://jfbastien.github.io/papers/Math.signbit.html
var $export=require('./_export');$export($export.S,'Math',{signbit:function signbit(x){// eslint-disable-next-line no-self-compare
return(x=+x)!=x?x:x==0?1/x==Infinity:x>0;}});},{"./_export":58}],315:[function(require,module,exports){// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
var $export=require('./_export');$export($export.S,'Math',{umulh:function umulh(u,v){var UINT16=0xffff;var $u=+u;var $v=+v;var u0=$u&UINT16;var v0=$v&UINT16;var u1=$u>>>16;var v1=$v>>>16;var t=(u1*v0>>>0)+(u0*v0>>>16);return u1*v1+(t>>>16)+((u0*v1>>>0)+(t&UINT16)>>>16);}});},{"./_export":58}],316:[function(require,module,exports){'use strict';var $export=require('./_export');var toObject=require('./_to-object');var aFunction=require('./_a-function');var $defineProperty=require('./_object-dp');// B.2.2.2 Object.prototype.__defineGetter__(P, getter)
require('./_descriptors')&&$export($export.P+require('./_object-forced-pam'),'Object',{__defineGetter__:function __defineGetter__(P,getter){$defineProperty.f(toObject(this),P,{get:aFunction(getter),enumerable:true,configurable:true});}});},{"./_a-function":27,"./_descriptors":54,"./_export":58,"./_object-dp":97,"./_object-forced-pam":99,"./_to-object":144}],317:[function(require,module,exports){'use strict';var $export=require('./_export');var toObject=require('./_to-object');var aFunction=require('./_a-function');var $defineProperty=require('./_object-dp');// B.2.2.3 Object.prototype.__defineSetter__(P, setter)
require('./_descriptors')&&$export($export.P+require('./_object-forced-pam'),'Object',{__defineSetter__:function __defineSetter__(P,setter){$defineProperty.f(toObject(this),P,{set:aFunction(setter),enumerable:true,configurable:true});}});},{"./_a-function":27,"./_descriptors":54,"./_export":58,"./_object-dp":97,"./_object-forced-pam":99,"./_to-object":144}],318:[function(require,module,exports){// https://github.com/tc39/proposal-object-values-entries
var $export=require('./_export');var $entries=require('./_object-to-array')(true);$export($export.S,'Object',{entries:function entries(it){return $entries(it);}});},{"./_export":58,"./_object-to-array":109}],319:[function(require,module,exports){// https://github.com/tc39/proposal-object-getownpropertydescriptors
var $export=require('./_export');var ownKeys=require('./_own-keys');var toIObject=require('./_to-iobject');var gOPD=require('./_object-gopd');var createProperty=require('./_create-property');$export($export.S,'Object',{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(object){var O=toIObject(object);var getDesc=gOPD.f;var keys=ownKeys(O);var result={};var i=0;var key,desc;while(keys.length>i){desc=getDesc(O,key=keys[i++]);if(desc!==undefined)createProperty(result,key,desc);}return result;}});},{"./_create-property":49,"./_export":58,"./_object-gopd":100,"./_own-keys":110,"./_to-iobject":142}],320:[function(require,module,exports){'use strict';var $export=require('./_export');var toObject=require('./_to-object');var toPrimitive=require('./_to-primitive');var getPrototypeOf=require('./_object-gpo');var getOwnPropertyDescriptor=require('./_object-gopd').f;// B.2.2.4 Object.prototype.__lookupGetter__(P)
require('./_descriptors')&&$export($export.P+require('./_object-forced-pam'),'Object',{__lookupGetter__:function __lookupGetter__(P){var O=toObject(this);var K=toPrimitive(P,true);var D;do{if(D=getOwnPropertyDescriptor(O,K))return D.get;}while(O=getPrototypeOf(O));}});},{"./_descriptors":54,"./_export":58,"./_object-forced-pam":99,"./_object-gopd":100,"./_object-gpo":104,"./_to-object":144,"./_to-primitive":145}],321:[function(require,module,exports){'use strict';var $export=require('./_export');var toObject=require('./_to-object');var toPrimitive=require('./_to-primitive');var getPrototypeOf=require('./_object-gpo');var getOwnPropertyDescriptor=require('./_object-gopd').f;// B.2.2.5 Object.prototype.__lookupSetter__(P)
require('./_descriptors')&&$export($export.P+require('./_object-forced-pam'),'Object',{__lookupSetter__:function __lookupSetter__(P){var O=toObject(this);var K=toPrimitive(P,true);var D;do{if(D=getOwnPropertyDescriptor(O,K))return D.set;}while(O=getPrototypeOf(O));}});},{"./_descriptors":54,"./_export":58,"./_object-forced-pam":99,"./_object-gopd":100,"./_object-gpo":104,"./_to-object":144,"./_to-primitive":145}],322:[function(require,module,exports){// https://github.com/tc39/proposal-object-values-entries
var $export=require('./_export');var $values=require('./_object-to-array')(false);$export($export.S,'Object',{values:function values(it){return $values(it);}});},{"./_export":58,"./_object-to-array":109}],323:[function(require,module,exports){'use strict';// https://github.com/zenparsing/es-observable
var $export=require('./_export');var global=require('./_global');var core=require('./_core');var microtask=require('./_microtask')();var OBSERVABLE=require('./_wks')('observable');var aFunction=require('./_a-function');var anObject=require('./_an-object');var anInstance=require('./_an-instance');var redefineAll=require('./_redefine-all');var hide=require('./_hide');var forOf=require('./_for-of');var RETURN=forOf.RETURN;var getMethod=function getMethod(fn){return fn==null?undefined:aFunction(fn);};var cleanupSubscription=function cleanupSubscription(subscription){var cleanup=subscription._c;if(cleanup){subscription._c=undefined;cleanup();}};var subscriptionClosed=function subscriptionClosed(subscription){return subscription._o===undefined;};var closeSubscription=function closeSubscription(subscription){if(!subscriptionClosed(subscription)){subscription._o=undefined;cleanupSubscription(subscription);}};var Subscription=function Subscription(observer,subscriber){anObject(observer);this._c=undefined;this._o=observer;observer=new SubscriptionObserver(this);try{var cleanup=subscriber(observer);var subscription=cleanup;if(cleanup!=null){if(typeof cleanup.unsubscribe==='function')cleanup=function cleanup(){subscription.unsubscribe();};else aFunction(cleanup);this._c=cleanup;}}catch(e){observer.error(e);return;}if(subscriptionClosed(this))cleanupSubscription(this);};Subscription.prototype=redefineAll({},{unsubscribe:function unsubscribe(){closeSubscription(this);}});var SubscriptionObserver=function SubscriptionObserver(subscription){this._s=subscription;};SubscriptionObserver.prototype=redefineAll({},{next:function next(value){var subscription=this._s;if(!subscriptionClosed(subscription)){var observer=subscription._o;try{var m=getMethod(observer.next);if(m)return m.call(observer,value);}catch(e){try{closeSubscription(subscription);}finally{throw e;}}}},error:function error(value){var subscription=this._s;if(subscriptionClosed(subscription))throw value;var observer=subscription._o;subscription._o=undefined;try{var m=getMethod(observer.error);if(!m)throw value;value=m.call(observer,value);}catch(e){try{cleanupSubscription(subscription);}finally{throw e;}}cleanupSubscription(subscription);return value;},complete:function complete(value){var subscription=this._s;if(!subscriptionClosed(subscription)){var observer=subscription._o;subscription._o=undefined;try{var m=getMethod(observer.complete);value=m?m.call(observer,value):undefined;}catch(e){try{cleanupSubscription(subscription);}finally{throw e;}}cleanupSubscription(subscription);return value;}}});var $Observable=function Observable(subscriber){anInstance(this,$Observable,'Observable','_f')._f=aFunction(subscriber);};redefineAll($Observable.prototype,{subscribe:function subscribe(observer){return new Subscription(observer,this._f);},forEach:function forEach(fn){var that=this;return new(core.Promise||global.Promise)(function(resolve,reject){aFunction(fn);var subscription=that.subscribe({next:function next(value){try{return fn(value);}catch(e){reject(e);subscription.unsubscribe();}},error:reject,complete:resolve});});}});redefineAll($Observable,{from:function from(x){var C=typeof this==='function'?this:$Observable;var method=getMethod(anObject(x)[OBSERVABLE]);if(method){var observable=anObject(method.call(x));return observable.constructor===C?observable:new C(function(observer){return observable.subscribe(observer);});}return new C(function(observer){var done=false;microtask(function(){if(!done){try{if(forOf(x,false,function(it){observer.next(it);if(done)return RETURN;})===RETURN)return;}catch(e){if(done)throw e;observer.error(e);return;}observer.complete();}});return function(){done=true;};});},of:function of(){for(var i=0,l=arguments.length,items=new Array(l);i<l;){items[i]=arguments[i++];}return new(typeof this==='function'?this:$Observable)(function(observer){var done=false;microtask(function(){if(!done){for(var j=0;j<items.length;++j){observer.next(items[j]);if(done)return;}observer.complete();}});return function(){done=true;};});}});hide($Observable.prototype,OBSERVABLE,function(){return this;});$export($export.G,{Observable:$Observable});require('./_set-species')('Observable');},{"./_a-function":27,"./_an-instance":31,"./_an-object":32,"./_core":48,"./_export":58,"./_for-of":64,"./_global":66,"./_hide":68,"./_microtask":93,"./_redefine-all":116,"./_set-species":125,"./_wks":154}],324:[function(require,module,exports){// https://github.com/tc39/proposal-promise-finally
'use strict';var $export=require('./_export');var core=require('./_core');var global=require('./_global');var speciesConstructor=require('./_species-constructor');var promiseResolve=require('./_promise-resolve');$export($export.P+$export.R,'Promise',{'finally':function _finally(onFinally){var C=speciesConstructor(this,core.Promise||global.Promise);var isFunction=typeof onFinally=='function';return this.then(isFunction?function(x){return promiseResolve(C,onFinally()).then(function(){return x;});}:onFinally,isFunction?function(e){return promiseResolve(C,onFinally()).then(function(){throw e;});}:onFinally);}});},{"./_core":48,"./_export":58,"./_global":66,"./_promise-resolve":114,"./_species-constructor":129}],325:[function(require,module,exports){'use strict';// https://github.com/tc39/proposal-promise-try
var $export=require('./_export');var newPromiseCapability=require('./_new-promise-capability');var perform=require('./_perform');$export($export.S,'Promise',{'try':function _try(callbackfn){var promiseCapability=newPromiseCapability.f(this);var result=perform(callbackfn);(result.e?promiseCapability.reject:promiseCapability.resolve)(result.v);return promiseCapability.promise;}});},{"./_export":58,"./_new-promise-capability":94,"./_perform":113}],326:[function(require,module,exports){var metadata=require('./_metadata');var anObject=require('./_an-object');var toMetaKey=metadata.key;var ordinaryDefineOwnMetadata=metadata.set;metadata.exp({defineMetadata:function defineMetadata(metadataKey,metadataValue,target,targetKey){ordinaryDefineOwnMetadata(metadataKey,metadataValue,anObject(target),toMetaKey(targetKey));}});},{"./_an-object":32,"./_metadata":92}],327:[function(require,module,exports){var metadata=require('./_metadata');var anObject=require('./_an-object');var toMetaKey=metadata.key;var getOrCreateMetadataMap=metadata.map;var store=metadata.store;metadata.exp({deleteMetadata:function deleteMetadata(metadataKey,target/* , targetKey */){var targetKey=arguments.length<3?undefined:toMetaKey(arguments[2]);var metadataMap=getOrCreateMetadataMap(anObject(target),targetKey,false);if(metadataMap===undefined||!metadataMap['delete'](metadataKey))return false;if(metadataMap.size)return true;var targetMetadata=store.get(target);targetMetadata['delete'](targetKey);return!!targetMetadata.size||store['delete'](target);}});},{"./_an-object":32,"./_metadata":92}],328:[function(require,module,exports){var Set=require('./es6.set');var from=require('./_array-from-iterable');var metadata=require('./_metadata');var anObject=require('./_an-object');var getPrototypeOf=require('./_object-gpo');var ordinaryOwnMetadataKeys=metadata.keys;var toMetaKey=metadata.key;var ordinaryMetadataKeys=function ordinaryMetadataKeys(O,P){var oKeys=ordinaryOwnMetadataKeys(O,P);var parent=getPrototypeOf(O);if(parent===null)return oKeys;var pKeys=ordinaryMetadataKeys(parent,P);return pKeys.length?oKeys.length?from(new Set(oKeys.concat(pKeys))):pKeys:oKeys;};metadata.exp({getMetadataKeys:function getMetadataKeys(target/* , targetKey */){return ordinaryMetadataKeys(anObject(target),arguments.length<2?undefined:toMetaKey(arguments[1]));}});},{"./_an-object":32,"./_array-from-iterable":35,"./_metadata":92,"./_object-gpo":104,"./es6.set":258}],329:[function(require,module,exports){var metadata=require('./_metadata');var anObject=require('./_an-object');var getPrototypeOf=require('./_object-gpo');var ordinaryHasOwnMetadata=metadata.has;var ordinaryGetOwnMetadata=metadata.get;var toMetaKey=metadata.key;var ordinaryGetMetadata=function ordinaryGetMetadata(MetadataKey,O,P){var hasOwn=ordinaryHasOwnMetadata(MetadataKey,O,P);if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey,O,P);var parent=getPrototypeOf(O);return parent!==null?ordinaryGetMetadata(MetadataKey,parent,P):undefined;};metadata.exp({getMetadata:function getMetadata(metadataKey,target/* , targetKey */){return ordinaryGetMetadata(metadataKey,anObject(target),arguments.length<3?undefined:toMetaKey(arguments[2]));}});},{"./_an-object":32,"./_metadata":92,"./_object-gpo":104}],330:[function(require,module,exports){var metadata=require('./_metadata');var anObject=require('./_an-object');var ordinaryOwnMetadataKeys=metadata.keys;var toMetaKey=metadata.key;metadata.exp({getOwnMetadataKeys:function getOwnMetadataKeys(target/* , targetKey */){return ordinaryOwnMetadataKeys(anObject(target),arguments.length<2?undefined:toMetaKey(arguments[1]));}});},{"./_an-object":32,"./_metadata":92}],331:[function(require,module,exports){var metadata=require('./_metadata');var anObject=require('./_an-object');var ordinaryGetOwnMetadata=metadata.get;var toMetaKey=metadata.key;metadata.exp({getOwnMetadata:function getOwnMetadata(metadataKey,target/* , targetKey */){return ordinaryGetOwnMetadata(metadataKey,anObject(target),arguments.length<3?undefined:toMetaKey(arguments[2]));}});},{"./_an-object":32,"./_metadata":92}],332:[function(require,module,exports){var metadata=require('./_metadata');var anObject=require('./_an-object');var getPrototypeOf=require('./_object-gpo');var ordinaryHasOwnMetadata=metadata.has;var toMetaKey=metadata.key;var ordinaryHasMetadata=function ordinaryHasMetadata(MetadataKey,O,P){var hasOwn=ordinaryHasOwnMetadata(MetadataKey,O,P);if(hasOwn)return true;var parent=getPrototypeOf(O);return parent!==null?ordinaryHasMetadata(MetadataKey,parent,P):false;};metadata.exp({hasMetadata:function hasMetadata(metadataKey,target/* , targetKey */){return ordinaryHasMetadata(metadataKey,anObject(target),arguments.length<3?undefined:toMetaKey(arguments[2]));}});},{"./_an-object":32,"./_metadata":92,"./_object-gpo":104}],333:[function(require,module,exports){var metadata=require('./_metadata');var anObject=require('./_an-object');var ordinaryHasOwnMetadata=metadata.has;var toMetaKey=metadata.key;metadata.exp({hasOwnMetadata:function hasOwnMetadata(metadataKey,target/* , targetKey */){return ordinaryHasOwnMetadata(metadataKey,anObject(target),arguments.length<3?undefined:toMetaKey(arguments[2]));}});},{"./_an-object":32,"./_metadata":92}],334:[function(require,module,exports){var $metadata=require('./_metadata');var anObject=require('./_an-object');var aFunction=require('./_a-function');var toMetaKey=$metadata.key;var ordinaryDefineOwnMetadata=$metadata.set;$metadata.exp({metadata:function metadata(metadataKey,metadataValue){return function decorator(target,targetKey){ordinaryDefineOwnMetadata(metadataKey,metadataValue,(targetKey!==undefined?anObject:aFunction)(target),toMetaKey(targetKey));};}});},{"./_a-function":27,"./_an-object":32,"./_metadata":92}],335:[function(require,module,exports){// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from
require('./_set-collection-from')('Set');},{"./_set-collection-from":122}],336:[function(require,module,exports){// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of
require('./_set-collection-of')('Set');},{"./_set-collection-of":123}],337:[function(require,module,exports){// https://github.com/DavidBruant/Map-Set.prototype.toJSON
var $export=require('./_export');$export($export.P+$export.R,'Set',{toJSON:require('./_collection-to-json')('Set')});},{"./_collection-to-json":45,"./_export":58}],338:[function(require,module,exports){'use strict';// https://github.com/mathiasbynens/String.prototype.at
var $export=require('./_export');var $at=require('./_string-at')(true);$export($export.P,'String',{at:function at(pos){return $at(this,pos);}});},{"./_export":58,"./_string-at":131}],339:[function(require,module,exports){'use strict';// https://tc39.github.io/String.prototype.matchAll/
var $export=require('./_export');var defined=require('./_defined');var toLength=require('./_to-length');var isRegExp=require('./_is-regexp');var getFlags=require('./_flags');var RegExpProto=RegExp.prototype;var $RegExpStringIterator=function $RegExpStringIterator(regexp,string){this._r=regexp;this._s=string;};require('./_iter-create')($RegExpStringIterator,'RegExp String',function next(){var match=this._r.exec(this._s);return{value:match,done:match===null};});$export($export.P,'String',{matchAll:function matchAll(regexp){defined(this);if(!isRegExp(regexp))throw TypeError(regexp+' is not a regexp!');var S=String(this);var flags='flags'in RegExpProto?String(regexp.flags):getFlags.call(regexp);var rx=new RegExp(regexp.source,~flags.indexOf('g')?flags:'g'+flags);rx.lastIndex=toLength(regexp.lastIndex);return new $RegExpStringIterator(rx,S);}});},{"./_defined":53,"./_export":58,"./_flags":62,"./_is-regexp":78,"./_iter-create":80,"./_to-length":143}],340:[function(require,module,exports){'use strict';// https://github.com/tc39/proposal-string-pad-start-end
var $export=require('./_export');var $pad=require('./_string-pad');var userAgent=require('./_user-agent');// https://github.com/zloirock/core-js/issues/280
var WEBKIT_BUG=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);$export($export.P+$export.F*WEBKIT_BUG,'String',{padEnd:function padEnd(maxLength/* , fillString = ' ' */){return $pad(this,maxLength,arguments.length>1?arguments[1]:undefined,false);}});},{"./_export":58,"./_string-pad":134,"./_user-agent":150}],341:[function(require,module,exports){'use strict';// https://github.com/tc39/proposal-string-pad-start-end
var $export=require('./_export');var $pad=require('./_string-pad');var userAgent=require('./_user-agent');// https://github.com/zloirock/core-js/issues/280
var WEBKIT_BUG=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);$export($export.P+$export.F*WEBKIT_BUG,'String',{padStart:function padStart(maxLength/* , fillString = ' ' */){return $pad(this,maxLength,arguments.length>1?arguments[1]:undefined,true);}});},{"./_export":58,"./_string-pad":134,"./_user-agent":150}],342:[function(require,module,exports){'use strict';// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
require('./_string-trim')('trimLeft',function($trim){return function trimLeft(){return $trim(this,1);};},'trimStart');},{"./_string-trim":136}],343:[function(require,module,exports){'use strict';// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
require('./_string-trim')('trimRight',function($trim){return function trimRight(){return $trim(this,2);};},'trimEnd');},{"./_string-trim":136}],344:[function(require,module,exports){require('./_wks-define')('asyncIterator');},{"./_wks-define":152}],345:[function(require,module,exports){require('./_wks-define')('observable');},{"./_wks-define":152}],346:[function(require,module,exports){// https://github.com/tc39/proposal-global
var $export=require('./_export');$export($export.S,'System',{global:require('./_global')});},{"./_export":58,"./_global":66}],347:[function(require,module,exports){// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
require('./_set-collection-from')('WeakMap');},{"./_set-collection-from":122}],348:[function(require,module,exports){// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
require('./_set-collection-of')('WeakMap');},{"./_set-collection-of":123}],349:[function(require,module,exports){// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from
require('./_set-collection-from')('WeakSet');},{"./_set-collection-from":122}],350:[function(require,module,exports){// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of
require('./_set-collection-of')('WeakSet');},{"./_set-collection-of":123}],351:[function(require,module,exports){var $iterators=require('./es6.array.iterator');var getKeys=require('./_object-keys');var redefine=require('./_redefine');var global=require('./_global');var hide=require('./_hide');var Iterators=require('./_iterators');var wks=require('./_wks');var ITERATOR=wks('iterator');var TO_STRING_TAG=wks('toStringTag');var ArrayValues=Iterators.Array;var DOMIterables={CSSRuleList:true,// TODO: Not spec compliant, should be false.
CSSStyleDeclaration:false,CSSValueList:false,ClientRectList:false,DOMRectList:false,DOMStringList:false,DOMTokenList:true,DataTransferItemList:false,FileList:false,HTMLAllCollection:false,HTMLCollection:false,HTMLFormElement:false,HTMLSelectElement:false,MediaList:true,// TODO: Not spec compliant, should be false.
MimeTypeArray:false,NamedNodeMap:false,NodeList:true,PaintRequestList:false,Plugin:false,PluginArray:false,SVGLengthList:false,SVGNumberList:false,SVGPathSegList:false,SVGPointList:false,SVGStringList:false,SVGTransformList:false,SourceBufferList:false,StyleSheetList:true,// TODO: Not spec compliant, should be false.
TextTrackCueList:false,TextTrackList:false,TouchList:false};for(var collections=getKeys(DOMIterables),i=0;i<collections.length;i++){var NAME=collections[i];var explicit=DOMIterables[NAME];var Collection=global[NAME];var proto=Collection&&Collection.prototype;var key;if(proto){if(!proto[ITERATOR])hide(proto,ITERATOR,ArrayValues);if(!proto[TO_STRING_TAG])hide(proto,TO_STRING_TAG,NAME);Iterators[NAME]=ArrayValues;if(explicit)for(key in $iterators){if(!proto[key])redefine(proto,key,$iterators[key],true);}}}},{"./_global":66,"./_hide":68,"./_iterators":84,"./_object-keys":106,"./_redefine":117,"./_wks":154,"./es6.array.iterator":167}],352:[function(require,module,exports){var $export=require('./_export');var $task=require('./_task');$export($export.G+$export.B,{setImmediate:$task.set,clearImmediate:$task.clear});},{"./_export":58,"./_task":138}],353:[function(require,module,exports){// ie9- setTimeout & setInterval additional parameters fix
var global=require('./_global');var $export=require('./_export');var userAgent=require('./_user-agent');var slice=[].slice;var MSIE=/MSIE .\./.test(userAgent);// <- dirty ie9- check
var wrap=function wrap(set){return function(fn,time/* , ...args */){var boundArgs=arguments.length>2;var args=boundArgs?slice.call(arguments,2):false;return set(boundArgs?function(){// eslint-disable-next-line no-new-func
(typeof fn=='function'?fn:Function(fn)).apply(this,args);}:fn,time);};};$export($export.G+$export.B+$export.F*MSIE,{setTimeout:wrap(global.setTimeout),setInterval:wrap(global.setInterval)});},{"./_export":58,"./_global":66,"./_user-agent":150}],354:[function(require,module,exports){require('./modules/es6.symbol');require('./modules/es6.object.create');require('./modules/es6.object.define-property');require('./modules/es6.object.define-properties');require('./modules/es6.object.get-own-property-descriptor');require('./modules/es6.object.get-prototype-of');require('./modules/es6.object.keys');require('./modules/es6.object.get-own-property-names');require('./modules/es6.object.freeze');require('./modules/es6.object.seal');require('./modules/es6.object.prevent-extensions');require('./modules/es6.object.is-frozen');require('./modules/es6.object.is-sealed');require('./modules/es6.object.is-extensible');require('./modules/es6.object.assign');require('./modules/es6.object.is');require('./modules/es6.object.set-prototype-of');require('./modules/es6.object.to-string');require('./modules/es6.function.bind');require('./modules/es6.function.name');require('./modules/es6.function.has-instance');require('./modules/es6.parse-int');require('./modules/es6.parse-float');require('./modules/es6.number.constructor');require('./modules/es6.number.to-fixed');require('./modules/es6.number.to-precision');require('./modules/es6.number.epsilon');require('./modules/es6.number.is-finite');require('./modules/es6.number.is-integer');require('./modules/es6.number.is-nan');require('./modules/es6.number.is-safe-integer');require('./modules/es6.number.max-safe-integer');require('./modules/es6.number.min-safe-integer');require('./modules/es6.number.parse-float');require('./modules/es6.number.parse-int');require('./modules/es6.math.acosh');require('./modules/es6.math.asinh');require('./modules/es6.math.atanh');require('./modules/es6.math.cbrt');require('./modules/es6.math.clz32');require('./modules/es6.math.cosh');require('./modules/es6.math.expm1');require('./modules/es6.math.fround');require('./modules/es6.math.hypot');require('./modules/es6.math.imul');require('./modules/es6.math.log10');require('./modules/es6.math.log1p');require('./modules/es6.math.log2');require('./modules/es6.math.sign');require('./modules/es6.math.sinh');require('./modules/es6.math.tanh');require('./modules/es6.math.trunc');require('./modules/es6.string.from-code-point');require('./modules/es6.string.raw');require('./modules/es6.string.trim');require('./modules/es6.string.iterator');require('./modules/es6.string.code-point-at');require('./modules/es6.string.ends-with');require('./modules/es6.string.includes');require('./modules/es6.string.repeat');require('./modules/es6.string.starts-with');require('./modules/es6.string.anchor');require('./modules/es6.string.big');require('./modules/es6.string.blink');require('./modules/es6.string.bold');require('./modules/es6.string.fixed');require('./modules/es6.string.fontcolor');require('./modules/es6.string.fontsize');require('./modules/es6.string.italics');require('./modules/es6.string.link');require('./modules/es6.string.small');require('./modules/es6.string.strike');require('./modules/es6.string.sub');require('./modules/es6.string.sup');require('./modules/es6.date.now');require('./modules/es6.date.to-json');require('./modules/es6.date.to-iso-string');require('./modules/es6.date.to-string');require('./modules/es6.date.to-primitive');require('./modules/es6.array.is-array');require('./modules/es6.array.from');require('./modules/es6.array.of');require('./modules/es6.array.join');require('./modules/es6.array.slice');require('./modules/es6.array.sort');require('./modules/es6.array.for-each');require('./modules/es6.array.map');require('./modules/es6.array.filter');require('./modules/es6.array.some');require('./modules/es6.array.every');require('./modules/es6.array.reduce');require('./modules/es6.array.reduce-right');require('./modules/es6.array.index-of');require('./modules/es6.array.last-index-of');require('./modules/es6.array.copy-within');require('./modules/es6.array.fill');require('./modules/es6.array.find');require('./modules/es6.array.find-index');require('./modules/es6.array.species');require('./modules/es6.array.iterator');require('./modules/es6.regexp.constructor');require('./modules/es6.regexp.exec');require('./modules/es6.regexp.to-string');require('./modules/es6.regexp.flags');require('./modules/es6.regexp.match');require('./modules/es6.regexp.replace');require('./modules/es6.regexp.search');require('./modules/es6.regexp.split');require('./modules/es6.promise');require('./modules/es6.map');require('./modules/es6.set');require('./modules/es6.weak-map');require('./modules/es6.weak-set');require('./modules/es6.typed.array-buffer');require('./modules/es6.typed.data-view');require('./modules/es6.typed.int8-array');require('./modules/es6.typed.uint8-array');require('./modules/es6.typed.uint8-clamped-array');require('./modules/es6.typed.int16-array');require('./modules/es6.typed.uint16-array');require('./modules/es6.typed.int32-array');require('./modules/es6.typed.uint32-array');require('./modules/es6.typed.float32-array');require('./modules/es6.typed.float64-array');require('./modules/es6.reflect.apply');require('./modules/es6.reflect.construct');require('./modules/es6.reflect.define-property');require('./modules/es6.reflect.delete-property');require('./modules/es6.reflect.enumerate');require('./modules/es6.reflect.get');require('./modules/es6.reflect.get-own-property-descriptor');require('./modules/es6.reflect.get-prototype-of');require('./modules/es6.reflect.has');require('./modules/es6.reflect.is-extensible');require('./modules/es6.reflect.own-keys');require('./modules/es6.reflect.prevent-extensions');require('./modules/es6.reflect.set');require('./modules/es6.reflect.set-prototype-of');require('./modules/es7.array.includes');require('./modules/es7.array.flat-map');require('./modules/es7.array.flatten');require('./modules/es7.string.at');require('./modules/es7.string.pad-start');require('./modules/es7.string.pad-end');require('./modules/es7.string.trim-left');require('./modules/es7.string.trim-right');require('./modules/es7.string.match-all');require('./modules/es7.symbol.async-iterator');require('./modules/es7.symbol.observable');require('./modules/es7.object.get-own-property-descriptors');require('./modules/es7.object.values');require('./modules/es7.object.entries');require('./modules/es7.object.define-getter');require('./modules/es7.object.define-setter');require('./modules/es7.object.lookup-getter');require('./modules/es7.object.lookup-setter');require('./modules/es7.map.to-json');require('./modules/es7.set.to-json');require('./modules/es7.map.of');require('./modules/es7.set.of');require('./modules/es7.weak-map.of');require('./modules/es7.weak-set.of');require('./modules/es7.map.from');require('./modules/es7.set.from');require('./modules/es7.weak-map.from');require('./modules/es7.weak-set.from');require('./modules/es7.global');require('./modules/es7.system.global');require('./modules/es7.error.is-error');require('./modules/es7.math.clamp');require('./modules/es7.math.deg-per-rad');require('./modules/es7.math.degrees');require('./modules/es7.math.fscale');require('./modules/es7.math.iaddh');require('./modules/es7.math.isubh');require('./modules/es7.math.imulh');require('./modules/es7.math.rad-per-deg');require('./modules/es7.math.radians');require('./modules/es7.math.scale');require('./modules/es7.math.umulh');require('./modules/es7.math.signbit');require('./modules/es7.promise.finally');require('./modules/es7.promise.try');require('./modules/es7.reflect.define-metadata');require('./modules/es7.reflect.delete-metadata');require('./modules/es7.reflect.get-metadata');require('./modules/es7.reflect.get-metadata-keys');require('./modules/es7.reflect.get-own-metadata');require('./modules/es7.reflect.get-own-metadata-keys');require('./modules/es7.reflect.has-metadata');require('./modules/es7.reflect.has-own-metadata');require('./modules/es7.reflect.metadata');require('./modules/es7.asap');require('./modules/es7.observable');require('./modules/web.timers');require('./modules/web.immediate');require('./modules/web.dom.iterable');module.exports=require('./modules/_core');},{"./modules/_core":48,"./modules/es6.array.copy-within":157,"./modules/es6.array.every":158,"./modules/es6.array.fill":159,"./modules/es6.array.filter":160,"./modules/es6.array.find":162,"./modules/es6.array.find-index":161,"./modules/es6.array.for-each":163,"./modules/es6.array.from":164,"./modules/es6.array.index-of":165,"./modules/es6.array.is-array":166,"./modules/es6.array.iterator":167,"./modules/es6.array.join":168,"./modules/es6.array.last-index-of":169,"./modules/es6.array.map":170,"./modules/es6.array.of":171,"./modules/es6.array.reduce":173,"./modules/es6.array.reduce-right":172,"./modules/es6.array.slice":174,"./modules/es6.array.some":175,"./modules/es6.array.sort":176,"./modules/es6.array.species":177,"./modules/es6.date.now":178,"./modules/es6.date.to-iso-string":179,"./modules/es6.date.to-json":180,"./modules/es6.date.to-primitive":181,"./modules/es6.date.to-string":182,"./modules/es6.function.bind":183,"./modules/es6.function.has-instance":184,"./modules/es6.function.name":185,"./modules/es6.map":186,"./modules/es6.math.acosh":187,"./modules/es6.math.asinh":188,"./modules/es6.math.atanh":189,"./modules/es6.math.cbrt":190,"./modules/es6.math.clz32":191,"./modules/es6.math.cosh":192,"./modules/es6.math.expm1":193,"./modules/es6.math.fround":194,"./modules/es6.math.hypot":195,"./modules/es6.math.imul":196,"./modules/es6.math.log10":197,"./modules/es6.math.log1p":198,"./modules/es6.math.log2":199,"./modules/es6.math.sign":200,"./modules/es6.math.sinh":201,"./modules/es6.math.tanh":202,"./modules/es6.math.trunc":203,"./modules/es6.number.constructor":204,"./modules/es6.number.epsilon":205,"./modules/es6.number.is-finite":206,"./modules/es6.number.is-integer":207,"./modules/es6.number.is-nan":208,"./modules/es6.number.is-safe-integer":209,"./modules/es6.number.max-safe-integer":210,"./modules/es6.number.min-safe-integer":211,"./modules/es6.number.parse-float":212,"./modules/es6.number.parse-int":213,"./modules/es6.number.to-fixed":214,"./modules/es6.number.to-precision":215,"./modules/es6.object.assign":216,"./modules/es6.object.create":217,"./modules/es6.object.define-properties":218,"./modules/es6.object.define-property":219,"./modules/es6.object.freeze":220,"./modules/es6.object.get-own-property-descriptor":221,"./modules/es6.object.get-own-property-names":222,"./modules/es6.object.get-prototype-of":223,"./modules/es6.object.is":227,"./modules/es6.object.is-extensible":224,"./modules/es6.object.is-frozen":225,"./modules/es6.object.is-sealed":226,"./modules/es6.object.keys":228,"./modules/es6.object.prevent-extensions":229,"./modules/es6.object.seal":230,"./modules/es6.object.set-prototype-of":231,"./modules/es6.object.to-string":232,"./modules/es6.parse-float":233,"./modules/es6.parse-int":234,"./modules/es6.promise":235,"./modules/es6.reflect.apply":236,"./modules/es6.reflect.construct":237,"./modules/es6.reflect.define-property":238,"./modules/es6.reflect.delete-property":239,"./modules/es6.reflect.enumerate":240,"./modules/es6.reflect.get":243,"./modules/es6.reflect.get-own-property-descriptor":241,"./modules/es6.reflect.get-prototype-of":242,"./modules/es6.reflect.has":244,"./modules/es6.reflect.is-extensible":245,"./modules/es6.reflect.own-keys":246,"./modules/es6.reflect.prevent-extensions":247,"./modules/es6.reflect.set":249,"./modules/es6.reflect.set-prototype-of":248,"./modules/es6.regexp.constructor":250,"./modules/es6.regexp.exec":251,"./modules/es6.regexp.flags":252,"./modules/es6.regexp.match":253,"./modules/es6.regexp.replace":254,"./modules/es6.regexp.search":255,"./modules/es6.regexp.split":256,"./modules/es6.regexp.to-string":257,"./modules/es6.set":258,"./modules/es6.string.anchor":259,"./modules/es6.string.big":260,"./modules/es6.string.blink":261,"./modules/es6.string.bold":262,"./modules/es6.string.code-point-at":263,"./modules/es6.string.ends-with":264,"./modules/es6.string.fixed":265,"./modules/es6.string.fontcolor":266,"./modules/es6.string.fontsize":267,"./modules/es6.string.from-code-point":268,"./modules/es6.string.includes":269,"./modules/es6.string.italics":270,"./modules/es6.string.iterator":271,"./modules/es6.string.link":272,"./modules/es6.string.raw":273,"./modules/es6.string.repeat":274,"./modules/es6.string.small":275,"./modules/es6.string.starts-with":276,"./modules/es6.string.strike":277,"./modules/es6.string.sub":278,"./modules/es6.string.sup":279,"./modules/es6.string.trim":280,"./modules/es6.symbol":281,"./modules/es6.typed.array-buffer":282,"./modules/es6.typed.data-view":283,"./modules/es6.typed.float32-array":284,"./modules/es6.typed.float64-array":285,"./modules/es6.typed.int16-array":286,"./modules/es6.typed.int32-array":287,"./modules/es6.typed.int8-array":288,"./modules/es6.typed.uint16-array":289,"./modules/es6.typed.uint32-array":290,"./modules/es6.typed.uint8-array":291,"./modules/es6.typed.uint8-clamped-array":292,"./modules/es6.weak-map":293,"./modules/es6.weak-set":294,"./modules/es7.array.flat-map":295,"./modules/es7.array.flatten":296,"./modules/es7.array.includes":297,"./modules/es7.asap":298,"./modules/es7.error.is-error":299,"./modules/es7.global":300,"./modules/es7.map.from":301,"./modules/es7.map.of":302,"./modules/es7.map.to-json":303,"./modules/es7.math.clamp":304,"./modules/es7.math.deg-per-rad":305,"./modules/es7.math.degrees":306,"./modules/es7.math.fscale":307,"./modules/es7.math.iaddh":308,"./modules/es7.math.imulh":309,"./modules/es7.math.isubh":310,"./modules/es7.math.rad-per-deg":311,"./modules/es7.math.radians":312,"./modules/es7.math.scale":313,"./modules/es7.math.signbit":314,"./modules/es7.math.umulh":315,"./modules/es7.object.define-getter":316,"./modules/es7.object.define-setter":317,"./modules/es7.object.entries":318,"./modules/es7.object.get-own-property-descriptors":319,"./modules/es7.object.lookup-getter":320,"./modules/es7.object.lookup-setter":321,"./modules/es7.object.values":322,"./modules/es7.observable":323,"./modules/es7.promise.finally":324,"./modules/es7.promise.try":325,"./modules/es7.reflect.define-metadata":326,"./modules/es7.reflect.delete-metadata":327,"./modules/es7.reflect.get-metadata":329,"./modules/es7.reflect.get-metadata-keys":328,"./modules/es7.reflect.get-own-metadata":331,"./modules/es7.reflect.get-own-metadata-keys":330,"./modules/es7.reflect.has-metadata":332,"./modules/es7.reflect.has-own-metadata":333,"./modules/es7.reflect.metadata":334,"./modules/es7.set.from":335,"./modules/es7.set.of":336,"./modules/es7.set.to-json":337,"./modules/es7.string.at":338,"./modules/es7.string.match-all":339,"./modules/es7.string.pad-end":340,"./modules/es7.string.pad-start":341,"./modules/es7.string.trim-left":342,"./modules/es7.string.trim-right":343,"./modules/es7.symbol.async-iterator":344,"./modules/es7.symbol.observable":345,"./modules/es7.system.global":346,"./modules/es7.weak-map.from":347,"./modules/es7.weak-map.of":348,"./modules/es7.weak-set.from":349,"./modules/es7.weak-set.of":350,"./modules/web.dom.iterable":351,"./modules/web.immediate":352,"./modules/web.timers":353}],355:[function(require,module,exports){(function(Buffer){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
function isArray(arg){if(Array.isArray){return Array.isArray(arg);}return objectToString(arg)==='[object Array]';}exports.isArray=isArray;function isBoolean(arg){return typeof arg==='boolean';}exports.isBoolean=isBoolean;function isNull(arg){return arg===null;}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null;}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==='number';}exports.isNumber=isNumber;function isString(arg){return typeof arg==='string';}exports.isString=isString;function isSymbol(arg){return _typeof(arg)==='symbol';}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0;}exports.isUndefined=isUndefined;function isRegExp(re){return objectToString(re)==='[object RegExp]';}exports.isRegExp=isRegExp;function isObject(arg){return _typeof(arg)==='object'&&arg!==null;}exports.isObject=isObject;function isDate(d){return objectToString(d)==='[object Date]';}exports.isDate=isDate;function isError(e){return objectToString(e)==='[object Error]'||e instanceof Error;}exports.isError=isError;function isFunction(arg){return typeof arg==='function';}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==='boolean'||typeof arg==='number'||typeof arg==='string'||_typeof(arg)==='symbol'||// ES6 symbol
typeof arg==='undefined';}exports.isPrimitive=isPrimitive;exports.isBuffer=Buffer.isBuffer;function objectToString(o){return Object.prototype.toString.call(o);}}).call(this,{"isBuffer":require("../../is-buffer/index.js")});},{"../../is-buffer/index.js":359}],356:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var objectCreate=Object.create||objectCreatePolyfill;var objectKeys=Object.keys||objectKeysPolyfill;var bind=Function.prototype.bind||functionBindPolyfill;function EventEmitter(){if(!this._events||!Object.prototype.hasOwnProperty.call(this,'_events')){this._events=objectCreate(null);this._eventsCount=0;}this._maxListeners=this._maxListeners||undefined;}module.exports=EventEmitter;// Backwards-compat with node 0.10.x
EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;// By default EventEmitters will print a warning if more than 10 listeners are
// added to it. This is a useful default which helps finding memory leaks.
var defaultMaxListeners=10;var hasDefineProperty;try{var o={};if(Object.defineProperty)Object.defineProperty(o,'x',{value:0});hasDefineProperty=o.x===0;}catch(err){hasDefineProperty=false;}if(hasDefineProperty){Object.defineProperty(EventEmitter,'defaultMaxListeners',{enumerable:true,get:function get(){return defaultMaxListeners;},set:function set(arg){// check whether the input is a positive number (whose value is zero or
// greater and not a NaN).
if(typeof arg!=='number'||arg<0||arg!==arg)throw new TypeError('"defaultMaxListeners" must be a positive number');defaultMaxListeners=arg;}});}else{EventEmitter.defaultMaxListeners=defaultMaxListeners;}// Obviously not all Emitters should be limited to 10. This function allows
// that to be increased. Set to zero for unlimited.
EventEmitter.prototype.setMaxListeners=function setMaxListeners(n){if(typeof n!=='number'||n<0||isNaN(n))throw new TypeError('"n" argument must be a positive number');this._maxListeners=n;return this;};function $getMaxListeners(that){if(that._maxListeners===undefined)return EventEmitter.defaultMaxListeners;return that._maxListeners;}EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return $getMaxListeners(this);};// These standalone emit* functions are used to optimize calling of event
// handlers for fast cases because emit() itself often has a variable number of
// arguments and can be deoptimized because of that. These functions always have
// the same number of arguments and thus do not get deoptimized, so the code
// inside them can execute faster.
function emitNone(handler,isFn,self){if(isFn)handler.call(self);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i){listeners[i].call(self);}}}function emitOne(handler,isFn,self,arg1){if(isFn)handler.call(self,arg1);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i){listeners[i].call(self,arg1);}}}function emitTwo(handler,isFn,self,arg1,arg2){if(isFn)handler.call(self,arg1,arg2);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i){listeners[i].call(self,arg1,arg2);}}}function emitThree(handler,isFn,self,arg1,arg2,arg3){if(isFn)handler.call(self,arg1,arg2,arg3);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i){listeners[i].call(self,arg1,arg2,arg3);}}}function emitMany(handler,isFn,self,args){if(isFn)handler.apply(self,args);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i){listeners[i].apply(self,args);}}}EventEmitter.prototype.emit=function emit(type){var er,handler,len,args,i,events;var doError=type==='error';events=this._events;if(events)doError=doError&&events.error==null;else if(!doError)return false;// If there is no 'error' event listener then throw.
if(doError){if(arguments.length>1)er=arguments[1];if(er instanceof Error){throw er;// Unhandled 'error' event
}else{// At least give some kind of context to the user
var err=new Error('Unhandled "error" event. ('+er+')');err.context=er;throw err;}return false;}handler=events[type];if(!handler)return false;var isFn=typeof handler==='function';len=arguments.length;switch(len){// fast cases
case 1:emitNone(handler,isFn,this);break;case 2:emitOne(handler,isFn,this,arguments[1]);break;case 3:emitTwo(handler,isFn,this,arguments[1],arguments[2]);break;case 4:emitThree(handler,isFn,this,arguments[1],arguments[2],arguments[3]);break;// slower
default:args=new Array(len-1);for(i=1;i<len;i++){args[i-1]=arguments[i];}emitMany(handler,isFn,this,args);}return true;};function _addListener(target,type,listener,prepend){var m;var events;var existing;if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');events=target._events;if(!events){events=target._events=objectCreate(null);target._eventsCount=0;}else{// To avoid recursion in the case that type === "newListener"! Before
// adding it to the listeners, first emit "newListener".
if(events.newListener){target.emit('newListener',type,listener.listener?listener.listener:listener);// Re-assign `events` because a newListener handler could have caused the
// this._events to be assigned to a new object
events=target._events;}existing=events[type];}if(!existing){// Optimize the case of one listener. Don't need the extra array object.
existing=events[type]=listener;++target._eventsCount;}else{if(typeof existing==='function'){// Adding the second element, need to change to array.
existing=events[type]=prepend?[listener,existing]:[existing,listener];}else{// If we've already got an array, just append.
if(prepend){existing.unshift(listener);}else{existing.push(listener);}}// Check for listener leak
if(!existing.warned){m=$getMaxListeners(target);if(m&&m>0&&existing.length>m){existing.warned=true;var w=new Error('Possible EventEmitter memory leak detected. '+existing.length+' "'+String(type)+'" listeners '+'added. Use emitter.setMaxListeners() to '+'increase limit.');w.name='MaxListenersExceededWarning';w.emitter=target;w.type=type;w.count=existing.length;if((typeof console==="undefined"?"undefined":_typeof(console))==='object'&&console.warn){console.warn('%s: %s',w.name,w.message);}}}}return target;}EventEmitter.prototype.addListener=function addListener(type,listener){return _addListener(this,type,listener,false);};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(type,listener){return _addListener(this,type,listener,true);};function onceWrapper(){if(!this.fired){this.target.removeListener(this.type,this.wrapFn);this.fired=true;switch(arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:var args=new Array(arguments.length);for(var i=0;i<args.length;++i){args[i]=arguments[i];}this.listener.apply(this.target,args);}}}function _onceWrap(target,type,listener){var state={fired:false,wrapFn:undefined,target:target,type:type,listener:listener};var wrapped=bind.call(onceWrapper,state);wrapped.listener=listener;state.wrapFn=wrapped;return wrapped;}EventEmitter.prototype.once=function once(type,listener){if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');this.on(type,_onceWrap(this,type,listener));return this;};EventEmitter.prototype.prependOnceListener=function prependOnceListener(type,listener){if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');this.prependListener(type,_onceWrap(this,type,listener));return this;};// Emits a 'removeListener' event if and only if the listener was removed.
EventEmitter.prototype.removeListener=function removeListener(type,listener){var list,events,position,i,originalListener;if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');events=this._events;if(!events)return this;list=events[type];if(!list)return this;if(list===listener||list.listener===listener){if(--this._eventsCount===0)this._events=objectCreate(null);else{delete events[type];if(events.removeListener)this.emit('removeListener',type,list.listener||listener);}}else if(typeof list!=='function'){position=-1;for(i=list.length-1;i>=0;i--){if(list[i]===listener||list[i].listener===listener){originalListener=list[i].listener;position=i;break;}}if(position<0)return this;if(position===0)list.shift();else spliceOne(list,position);if(list.length===1)events[type]=list[0];if(events.removeListener)this.emit('removeListener',type,originalListener||listener);}return this;};EventEmitter.prototype.removeAllListeners=function removeAllListeners(type){var listeners,events,i;events=this._events;if(!events)return this;// not listening for removeListener, no need to emit
if(!events.removeListener){if(arguments.length===0){this._events=objectCreate(null);this._eventsCount=0;}else if(events[type]){if(--this._eventsCount===0)this._events=objectCreate(null);else delete events[type];}return this;}// emit removeListener for all listeners on all events
if(arguments.length===0){var keys=objectKeys(events);var key;for(i=0;i<keys.length;++i){key=keys[i];if(key==='removeListener')continue;this.removeAllListeners(key);}this.removeAllListeners('removeListener');this._events=objectCreate(null);this._eventsCount=0;return this;}listeners=events[type];if(typeof listeners==='function'){this.removeListener(type,listeners);}else if(listeners){// LIFO order
for(i=listeners.length-1;i>=0;i--){this.removeListener(type,listeners[i]);}}return this;};function _listeners(target,type,unwrap){var events=target._events;if(!events)return[];var evlistener=events[type];if(!evlistener)return[];if(typeof evlistener==='function')return unwrap?[evlistener.listener||evlistener]:[evlistener];return unwrap?unwrapListeners(evlistener):arrayClone(evlistener,evlistener.length);}EventEmitter.prototype.listeners=function listeners(type){return _listeners(this,type,true);};EventEmitter.prototype.rawListeners=function rawListeners(type){return _listeners(this,type,false);};EventEmitter.listenerCount=function(emitter,type){if(typeof emitter.listenerCount==='function'){return emitter.listenerCount(type);}else{return listenerCount.call(emitter,type);}};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(type){var events=this._events;if(events){var evlistener=events[type];if(typeof evlistener==='function'){return 1;}else if(evlistener){return evlistener.length;}}return 0;}EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?Reflect.ownKeys(this._events):[];};// About 1.5x faster than the two-arg version of Array#splice().
function spliceOne(list,index){for(var i=index,k=i+1,n=list.length;k<n;i+=1,k+=1){list[i]=list[k];}list.pop();}function arrayClone(arr,n){var copy=new Array(n);for(var i=0;i<n;++i){copy[i]=arr[i];}return copy;}function unwrapListeners(arr){var ret=new Array(arr.length);for(var i=0;i<ret.length;++i){ret[i]=arr[i].listener||arr[i];}return ret;}function objectCreatePolyfill(proto){var F=function F(){};F.prototype=proto;return new F();}function objectKeysPolyfill(obj){var keys=[];for(var k in obj){if(Object.prototype.hasOwnProperty.call(obj,k)){keys.push(k);}}return k;}function functionBindPolyfill(context){var fn=this;return function(){return fn.apply(context,arguments);};}},{}],357:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias;}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity;}else{m=m+Math.pow(2,mLen);e=e-eBias;}return(s?-1:1)*m*Math.pow(2,e-mLen);};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax;}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2;}if(e+eBias>=1){value+=rt/c;}else{value+=rt*Math.pow(2,1-eBias);}if(value*c>=2){e++;c/=2;}if(e+eBias>=eMax){m=0;e=eMax;}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias;}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0;}}for(;mLen>=8;buffer[offset+i]=m&0xff,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&0xff,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128;};},{}],358:[function(require,module,exports){if(typeof Object.create==='function'){// implementation from standard node.js 'util' module
module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}});};}else{// old school shim for old browsers
module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function TempCtor(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor();ctor.prototype.constructor=ctor;};}},{}],359:[function(require,module,exports){/*!
 * Determine if an object is a Buffer
 *
 * @author   Feross Aboukhadijeh <https://feross.org>
 * @license  MIT
 */ // The _isBuffer check is for Safari 5-7 support, because it's missing
// Object.prototype.constructor. Remove this eventually
module.exports=function(obj){return obj!=null&&(isBuffer(obj)||isSlowBuffer(obj)||!!obj._isBuffer);};function isBuffer(obj){return!!obj.constructor&&typeof obj.constructor.isBuffer==='function'&&obj.constructor.isBuffer(obj);}// For Node v0.10 support. Remove this eventually.
function isSlowBuffer(obj){return typeof obj.readFloatLE==='function'&&typeof obj.slice==='function'&&isBuffer(obj.slice(0,0));}},{}],360:[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)=='[object Array]';};},{}],361:[function(require,module,exports){(function(global){/*
**  pegjs-util -- Utility Class for PEG.js
**  Copyright (c) 2014-2019 Dr. Ralf S. Engelschall <rse@engelschall.com>
**
**  Permission is hereby granted, free of charge, to any person obtaining
**  a copy of this software and associated documentation files (the
**  "Software"), to deal in the Software without restriction, including
**  without limitation the rights to use, copy, modify, merge, publish,
**  distribute, sublicense, and/or sell copies of the Software, and to
**  permit persons to whom the Software is furnished to do so, subject to
**  the following conditions:
**
**  The above copyright notice and this permission notice shall be included
**  in all copies or substantial portions of the Software.
**
**  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
**  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
**  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
**  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
**  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
**  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
**  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ /*  Universal Module Definition (UMD) for Library  */(function(root,name,factory){/* global define: false */ /* global module: false */if(_typeof(module)==="object"&&_typeof(module.exports)==="object")/*  CommonJS environment  */module.exports=factory(root);else if(typeof define==="function"&&typeof define.amd!=="undefined")/*  AMD environment  */define(name,function(){return factory(root);});else/*  Browser environment  */root[name]=factory(root);})(/* global global: false */typeof global!=="undefined"?global:/* global window: false */typeof window!=="undefined"?window:this,"PEGUtil",function()/* root */{var PEGUtil={};/*  helper function for generating a function to generate an AST node  */PEGUtil.makeAST=function makeAST(location,options){return function(){return options.util.__makeAST.call(null,location().start.line,location().start.column,location().start.offset,arguments);};};/*  helper function for generating a function to unroll the parse stack  */PEGUtil.makeUnroll=function(location,options){return function(first,list,take){if(_typeof(list)!=="object"||!(list instanceof Array))throw new options.util.__SyntaxError("unroll: invalid list argument for unrolling",_typeof(list),"Array",location());if(typeof take!=="undefined"){if(typeof take==="number")take=[take];var result=[];if(first!==null)result.push(first);for(var i=0;i<list.length;i++){for(var j=0;j<take.length;j++){result.push(list[i][take[j]]);}}return result;}else{if(first!==null)list.unshift(first);return list;}};};/*  utility function: create a source excerpt  */var excerpt=function excerpt(txt,o){var l=txt.length;var b=o-20;if(b<0)b=0;var e=o+20;if(e>l)e=l;var hex=function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase();};var extract=function extract(txt,pos,len){return txt.substr(pos,len).replace(/\\/g,"\\\\").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E\x0F]/g,function(ch){return"\\x0"+hex(ch);}).replace(/[\x10-\x1F\x80-\xFF]/g,function(ch){return"\\x"+hex(ch);}).replace(/[\u0100-\u0FFF]/g,function(ch){return"\\u0"+hex(ch);}).replace(/[\u1000-\uFFFF]/g,function(ch){return"\\u"+hex(ch);});};return{prolog:extract(txt,b,o-b),token:extract(txt,o,1),epilog:extract(txt,o+1,e-(o+1))};};/*  provide top-level parsing functionality  */PEGUtil.parse=function(parser,txt,options){if(_typeof(parser)!=="object")throw new Error("invalid parser object (not an object)");if(typeof parser.parse!=="function")throw new Error("invalid parser object (no \"parse\" function)");if(typeof txt!=="string")throw new Error("invalid input text (not a string)");if(typeof options!=="undefined"&&_typeof(options)!=="object")throw new Error("invalid options (not an object)");if(typeof options==="undefined")options={};var result={ast:null,error:null};try{var makeAST;if(typeof options.makeAST==="function")makeAST=options.makeAST;else{makeAST=function makeAST(location,args){return{line:location().start.line,column:location().start.column,offset:location().start.offset,args:args};};}options.util={makeUnroll:PEGUtil.makeUnroll,makeAST:PEGUtil.makeAST,__makeAST:makeAST,__SyntaxError:parser.SyntaxError};result.ast=parser.parse(txt,options);result.error=null;}catch(e){result.ast=null;if(e instanceof parser.SyntaxError){var definedOrElse=function definedOrElse(value,fallback){return typeof value!=="undefined"?value:fallback;};result.error={line:definedOrElse(e.location.start.line,0),column:definedOrElse(e.location.start.column,0),message:e.message,found:definedOrElse(e.found,""),expected:definedOrElse(e.expected,""),location:excerpt(txt,definedOrElse(e.location.start.offset,0))};}else{result.error={line:0,column:0,message:e.message,found:"",expected:"",location:excerpt("",0)};}}return result;};/*  render a useful error message  */

PEGUtil.errorMessage=function(e,noFinalNewline)
	{
	var l=e.location;var prefix1="line "+e.line+" (column "+e.column+"): ";var prefix2="";for(var i=0;i<prefix1.length+l.prolog.length;i++){prefix2+="-";}var msg=prefix1+l.prolog+l.token+l.epilog+"\n"+prefix2+"^"+"\n"+e.message+(noFinalNewline?"":"\n");

	// BY LRUSSO.COM

	// SHOWING THE ERROR IN THE SERIAL MONITOR
	self.postMessage("<br />Error near '"+l.prolog.replace(/\\n/g,"").replace(/\\t/g,"")+"'");

	// TELLING THE WEB CLIENT THAT THE CODE HAS A BUG
	self.postMessage(null);

	return msg;
	};

return PEGUtil;});}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],362:[function(require,module,exports){var util=require('util');var tokenize=function tokenize(/*String*/str,/*RegExp*/re,/*Function?*/parseDelim,/*Object?*/instance){// summary:
//    Split a string by a regular expression with the ability to capture the delimeters
// parseDelim:
//    Each group (excluding the 0 group) is passed as a parameter. If the function returns
//    a value, it's added to the list of tokens.
// instance:
//    Used as the "this' instance when calling parseDelim
var tokens=[];var match,content,lastIndex=0;while(match=re.exec(str)){content=str.slice(lastIndex,re.lastIndex-match[0].length);if(content.length){tokens.push(content);}if(parseDelim){var parsed=parseDelim.apply(instance,match.slice(1).concat(tokens.length));if(typeof parsed!='undefined'){if(parsed.specifier==='%'){tokens.push('%');}else{tokens.push(parsed);}}}lastIndex=re.lastIndex;}content=str.slice(lastIndex);if(content.length){tokens.push(content);}return tokens;};var Formatter=function Formatter(/*String*/format){this._mapped=false;this._format=format;this._tokens=tokenize(format,this._re,this._parseDelim,this);};Formatter.prototype._re=/\%(?:\(([\w_.]+)\)|([1-9]\d*)\$)?([0 +\-\#]*)(\*|\d+)?(\.)?(\*|\d+)?[hlL]?([\%bscdeEfFgGioOuxX])/g;Formatter.prototype._parseDelim=function(mapping,intmapping,flags,minWidth,period,precision,specifier){if(mapping){this._mapped=true;}return{mapping:mapping,intmapping:intmapping,flags:flags,_minWidth:minWidth,// May be dependent on parameters
period:period,_precision:precision,// May be dependent on parameters
specifier:specifier};};Formatter.prototype._specifiers={b:{base:2,isInt:true},o:{base:8,isInt:true},x:{base:16,isInt:true},X:{extend:['x'],toUpper:true},d:{base:10,isInt:true},i:{extend:['d']},u:{extend:['d'],isUnsigned:true},c:{setArg:function setArg(token){if(!isNaN(token.arg)){var num=parseInt(token.arg);if(num<0||num>127){throw new Error('invalid character code passed to %c in printf');}token.arg=isNaN(num)?''+num:String.fromCharCode(num);}}},s:{setMaxWidth:function setMaxWidth(token){token.maxWidth=token.period=='.'?token.precision:-1;}},e:{isDouble:true,doubleNotation:'e'},E:{extend:['e'],toUpper:true},f:{isDouble:true,doubleNotation:'f'},F:{extend:['f']},g:{isDouble:true,doubleNotation:'g'},G:{extend:['g'],toUpper:true},O:{isObject:true}};Formatter.prototype.format=function(/*mixed...*/filler){if(this._mapped&&_typeof(filler)!='object'){throw new Error('format requires a mapping');}var str='';var position=0;for(var i=0,token;i<this._tokens.length;i++){token=this._tokens[i];if(typeof token=='string'){str+=token;}else{if(this._mapped){// Identify value of property defined in `token.mapping`
var tokens=token.mapping.split('.');var value=filler;for(var j=0,c=tokens.length;j<c;j++){value=value[tokens[j]];if(typeof value==='undefined'){break;}}if(typeof value=='undefined'){throw new Error('missing key '+token.mapping);}token.arg=value;}else{if(token.intmapping){position=parseInt(token.intmapping)-1;}if(position>=arguments.length){throw new Error('got '+arguments.length+' printf arguments, insufficient for \''+this._format+'\'');}token.arg=arguments[position++];}if(!token.compiled){token.compiled=true;token.sign='';token.zeroPad=false;token.rightJustify=false;token.alternative=false;var flags={};for(var fi=token.flags.length;fi--;){var flag=token.flags.charAt(fi);flags[flag]=true;switch(flag){case' ':token.sign=' ';break;case'+':token.sign='+';break;case'0':token.zeroPad=flags['-']?false:true;break;case'-':token.rightJustify=true;token.zeroPad=false;break;case'#':token.alternative=true;break;default:throw Error('bad formatting flag \''+token.flags.charAt(fi)+'\'');}}token.minWidth=token._minWidth?parseInt(token._minWidth):0;token.maxWidth=-1;token.toUpper=false;token.isUnsigned=false;token.isInt=false;token.isDouble=false;token.isObject=false;token.precision=1;if(token.period=='.'){if(token._precision){token.precision=parseInt(token._precision);}else{token.precision=0;}}var mixins=this._specifiers[token.specifier];if(typeof mixins=='undefined'){throw new Error('unexpected specifier \''+token.specifier+'\'');}if(mixins.extend){var s=this._specifiers[mixins.extend];for(var k in s){mixins[k]=s[k];}delete mixins.extend;}for(var l in mixins){token[l]=mixins[l];}}if(typeof token.setArg=='function'){token.setArg(token);}if(typeof token.setMaxWidth=='function'){token.setMaxWidth(token);}if(token._minWidth=='*'){if(this._mapped){throw new Error('* width not supported in mapped formats');}token.minWidth=parseInt(arguments[position++]);if(isNaN(token.minWidth)){throw new Error('the argument for * width at position '+position+' is not a number in '+this._format);}// negative width means rightJustify
if(token.minWidth<0){token.rightJustify=true;token.minWidth=-token.minWidth;}}if(token._precision=='*'&&token.period=='.'){if(this._mapped){throw new Error('* precision not supported in mapped formats');}token.precision=parseInt(arguments[position++]);if(isNaN(token.precision)){throw Error('the argument for * precision at position '+position+' is not a number in '+this._format);}// negative precision means unspecified
if(token.precision<0){token.precision=1;token.period='';}}if(token.isInt){// a specified precision means no zero padding
if(token.period=='.'){token.zeroPad=false;}this.formatInt(token);}else if(token.isDouble){if(token.period!='.'){token.precision=6;}this.formatDouble(token);}else if(token.isObject){this.formatObject(token);}this.fitField(token);str+=''+token.arg;}}return str;};Formatter.prototype._zeros10='0000000000';Formatter.prototype._spaces10='          ';Formatter.prototype.formatInt=function(token){var i=parseInt(token.arg);if(!isFinite(i)){// isNaN(f) || f == Number.POSITIVE_INFINITY || f == Number.NEGATIVE_INFINITY)
// allow this only if arg is number
if(typeof token.arg!='number'){throw new Error('format argument \''+token.arg+'\' not an integer; parseInt returned '+i);}//return '' + i;
i=0;}// if not base 10, make negatives be positive
// otherwise, (-10).toString(16) is '-a' instead of 'fffffff6'
if(i<0&&(token.isUnsigned||token.base!=10)){i=0xffffffff+i+1;}if(i<0){token.arg=(-i).toString(token.base);this.zeroPad(token);token.arg='-'+token.arg;}else{token.arg=i.toString(token.base);// need to make sure that argument 0 with precision==0 is formatted as ''
if(!i&&!token.precision){token.arg='';}else{this.zeroPad(token);}if(token.sign){token.arg=token.sign+token.arg;}}if(token.base==16){if(token.alternative){token.arg='0x'+token.arg;}token.arg=token.toUpper?token.arg.toUpperCase():token.arg.toLowerCase();}if(token.base==8){if(token.alternative&&token.arg.charAt(0)!='0'){token.arg='0'+token.arg;}}};Formatter.prototype.formatDouble=function(token){var f=parseFloat(token.arg);if(!isFinite(f)){// isNaN(f) || f == Number.POSITIVE_INFINITY || f == Number.NEGATIVE_INFINITY)
// allow this only if arg is number
if(typeof token.arg!='number'){throw new Error('format argument \''+token.arg+'\' not a float; parseFloat returned '+f);}// C99 says that for 'f':
//   infinity -> '[-]inf' or '[-]infinity' ('[-]INF' or '[-]INFINITY' for 'F')
//   NaN -> a string  starting with 'nan' ('NAN' for 'F')
// this is not commonly implemented though.
//return '' + f;
f=0;}switch(token.doubleNotation){case'e':{token.arg=f.toExponential(token.precision);break;}case'f':{token.arg=f.toFixed(token.precision);break;}case'g':{// C says use 'e' notation if exponent is < -4 or is >= prec
// ECMAScript for toPrecision says use exponential notation if exponent is >= prec,
// though step 17 of toPrecision indicates a test for < -6 to force exponential.
if(Math.abs(f)<0.0001){//print('forcing exponential notation for f=' + f);
token.arg=f.toExponential(token.precision>0?token.precision-1:token.precision);}else{token.arg=f.toPrecision(token.precision);}// In C, unlike 'f', 'gG' removes trailing 0s from fractional part, unless alternative format flag ('#').
// But ECMAScript formats toPrecision as 0.00100000. So remove trailing 0s.
if(!token.alternative){//print('replacing trailing 0 in \'' + s + '\'');
token.arg=token.arg.replace(/(\..*[^0])0*e/,'$1e');// if fractional part is entirely 0, remove it and decimal point
token.arg=token.arg.replace(/\.0*e/,'e').replace(/\.0$/,'');}break;}default:throw new Error('unexpected double notation \''+token.doubleNotation+'\'');}// C says that exponent must have at least two digits.
// But ECMAScript does not; toExponential results in things like '1.000000e-8' and '1.000000e+8'.
// Note that s.replace(/e([\+\-])(\d)/, 'e$10$2') won't work because of the '$10' instead of '$1'.
// And replace(re, func) isn't supported on IE50 or Safari1.
token.arg=token.arg.replace(/e\+(\d)$/,'e+0$1').replace(/e\-(\d)$/,'e-0$1');// if alt, ensure a decimal point
if(token.alternative){token.arg=token.arg.replace(/^(\d+)$/,'$1.');token.arg=token.arg.replace(/^(\d+)e/,'$1.e');}if(f>=0&&token.sign){token.arg=token.sign+token.arg;}token.arg=token.toUpper?token.arg.toUpperCase():token.arg.toLowerCase();};Formatter.prototype.formatObject=function(token){// If no precision is specified, then reset it to null (infinite depth).
var precision=token.period==='.'?token.precision:null;// Historically, inspect was called with 3 options
// token.arg = util.inspect(token.arg, !token.alternative, precision, token.sign);
// Now using an object but not sure colors make any sense here
token.arg=util.inspect(token.arg,{showHidden:!token.alternative,depth:precision,colors:token.sign,compact:true});};Formatter.prototype.zeroPad=function(token,/*Int*/length){length=arguments.length==2?length:token.precision;var negative=false;if(typeof token.arg!="string"){token.arg=""+token.arg;}if(token.arg.substr(0,1)==='-'){negative=true;token.arg=token.arg.substr(1);}var tenless=length-10;while(token.arg.length<tenless){token.arg=token.rightJustify?token.arg+this._zeros10:this._zeros10+token.arg;}var pad=length-token.arg.length;token.arg=token.rightJustify?token.arg+this._zeros10.substring(0,pad):this._zeros10.substring(0,pad)+token.arg;if(negative)token.arg='-'+token.arg;};Formatter.prototype.fitField=function(token){if(token.maxWidth>=0&&token.arg.length>token.maxWidth){token.arg=token.arg.substring(0,token.maxWidth);}if(token.zeroPad){this.zeroPad(token,token.minWidth);return;}this.spacePad(token);};Formatter.prototype.spacePad=function(token,/*Int*/length){length=arguments.length==2?length:token.minWidth;if(typeof token.arg!='string'){token.arg=''+token.arg;}var tenless=length-10;while(token.arg.length<tenless){token.arg=token.rightJustify?token.arg+this._spaces10:this._spaces10+token.arg;}var pad=length-token.arg.length;token.arg=token.rightJustify?token.arg+this._spaces10.substring(0,pad):this._spaces10.substring(0,pad)+token.arg;};module.exports=function(){var args=Array.prototype.slice.call(arguments),stream,format;if(args[0]instanceof require('stream').Stream){stream=args.shift();}format=args.shift();var formatter=new Formatter(format);var string=formatter.format.apply(formatter,args);if(stream){stream.write(string);}else{return string;}};module.exports.Formatter=Formatter;},{"stream":379,"util":384}],363:[function(require,module,exports){(function(process){'use strict';if(!process.version||process.version.indexOf('v0.')===0||process.version.indexOf('v1.')===0&&process.version.indexOf('v1.8.')!==0){module.exports={nextTick:nextTick};}else{module.exports=process;}function nextTick(fn,arg1,arg2,arg3){if(typeof fn!=='function'){throw new TypeError('"callback" argument must be a function');}var len=arguments.length;var args,i;switch(len){case 0:case 1:return process.nextTick(fn);case 2:return process.nextTick(function afterTickOne(){fn.call(null,arg1);});case 3:return process.nextTick(function afterTickTwo(){fn.call(null,arg1,arg2);});case 4:return process.nextTick(function afterTickThree(){fn.call(null,arg1,arg2,arg3);});default:args=new Array(len-1);i=0;while(i<args.length){args[i++]=arguments[i];}return process.nextTick(function afterTick(){fn.apply(null,args);});}}}).call(this,require('_process'));},{"_process":364}],364:[function(require,module,exports){// shim for using process in browser
var process=module.exports={};// cached from whatever global is present so that test runners that stub it
// don't break things.  But we need to wrap it in a try catch in case it is
// wrapped in strict mode code which doesn't define any globals.  It's inside a
// function because try/catches deoptimize in certain engines.
var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error('setTimeout has not been defined');}function defaultClearTimeout(){throw new Error('clearTimeout has not been defined');}(function(){try{if(typeof setTimeout==='function'){cachedSetTimeout=setTimeout;}else{cachedSetTimeout=defaultSetTimout;}}catch(e){cachedSetTimeout=defaultSetTimout;}try{if(typeof clearTimeout==='function'){cachedClearTimeout=clearTimeout;}else{cachedClearTimeout=defaultClearTimeout;}}catch(e){cachedClearTimeout=defaultClearTimeout;}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){//normal enviroments in sane situations
return setTimeout(fun,0);}// if setTimeout wasn't available but was latter defined
if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0);}try{// when when somebody has screwed with setTimeout but no I.E. maddness
return cachedSetTimeout(fun,0);}catch(e){try{// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
return cachedSetTimeout.call(null,fun,0);}catch(e){// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
return cachedSetTimeout.call(this,fun,0);}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){//normal enviroments in sane situations
return clearTimeout(marker);}// if clearTimeout wasn't available but was latter defined
if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker);}try{// when when somebody has screwed with setTimeout but no I.E. maddness
return cachedClearTimeout(marker);}catch(e){try{// When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
return cachedClearTimeout.call(null,marker);}catch(e){// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
return cachedClearTimeout.call(this,marker);}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return;}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue);}else{queueIndex=-1;}if(queue.length){drainQueue();}}function drainQueue(){if(draining){return;}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run();}}queueIndex=-1;len=queue.length;}currentQueue=null;draining=false;runClearTimeout(timeout);}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i];}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue);}};// v8 likes predictible objects
function Item(fun,array){this.fun=fun;this.array=array;}Item.prototype.run=function(){this.fun.apply(null,this.array);};process.title='browser';process.browser=true;process.env={};process.argv=[];process.version='';// empty string to avoid regexp issues
process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[];};process.binding=function(name){throw new Error('process.binding is not supported');};process.cwd=function(){return'/';};process.chdir=function(dir){throw new Error('process.chdir is not supported');};process.umask=function(){return 0;};},{}],365:[function(require,module,exports){module.exports=require('./lib/_stream_duplex.js');},{"./lib/_stream_duplex.js":366}],366:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a duplex stream is just a stream that is both readable and writable.
// Since JS doesn't have multiple prototypal inheritance, this class
// prototypally inherits from Readable, and then parasitically from
// Writable.
'use strict';/*<replacement>*/var pna=require('process-nextick-args');/*</replacement>*/ /*<replacement>*/var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){keys.push(key);}return keys;};/*</replacement>*/module.exports=Duplex;/*<replacement>*/var util=require('core-util-is');util.inherits=require('inherits');/*</replacement>*/var Readable=require('./_stream_readable');var Writable=require('./_stream_writable');util.inherits(Duplex,Readable);{// avoid scope creep, the keys array can then be collected
var keys=objectKeys(Writable.prototype);for(var v=0;v<keys.length;v++){var method=keys[v];if(!Duplex.prototype[method])Duplex.prototype[method]=Writable.prototype[method];}}function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);if(options&&options.readable===false)this.readable=false;if(options&&options.writable===false)this.writable=false;this.allowHalfOpen=true;if(options&&options.allowHalfOpen===false)this.allowHalfOpen=false;this.once('end',onend);}Object.defineProperty(Duplex.prototype,'writableHighWaterMark',{// making it explicit this property is not enumerable
// because otherwise some prototype manipulation in
// userland will fail
enumerable:false,get:function get(){return this._writableState.highWaterMark;}});// the no-half-open enforcer
function onend(){// if we allow half-open state, or if the writable side ended,
// then we're ok.
if(this.allowHalfOpen||this._writableState.ended)return;// no more data can be written.
// But allow more writes to happen in this tick.
pna.nextTick(onEndNT,this);}function onEndNT(self){self.end();}Object.defineProperty(Duplex.prototype,'destroyed',{get:function get(){if(this._readableState===undefined||this._writableState===undefined){return false;}return this._readableState.destroyed&&this._writableState.destroyed;},set:function set(value){// we ignore the value if the stream
// has not been initialized yet
if(this._readableState===undefined||this._writableState===undefined){return;}// backward compatibility, the user is explicitly
// managing destroyed
this._readableState.destroyed=value;this._writableState.destroyed=value;}});Duplex.prototype._destroy=function(err,cb){this.push(null);this.end();pna.nextTick(cb,err);};},{"./_stream_readable":368,"./_stream_writable":370,"core-util-is":355,"inherits":358,"process-nextick-args":363}],367:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a passthrough stream.
// basically just the most minimal sort of Transform stream.
// Every written chunk gets output as-is.
'use strict';module.exports=PassThrough;var Transform=require('./_stream_transform');/*<replacement>*/var util=require('core-util-is');util.inherits=require('inherits');/*</replacement>*/util.inherits(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options);}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk);};},{"./_stream_transform":369,"core-util-is":355,"inherits":358}],368:[function(require,module,exports){(function(process,global){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';/*<replacement>*/var pna=require('process-nextick-args');/*</replacement>*/module.exports=Readable;/*<replacement>*/var isArray=require('isarray');/*</replacement>*/ /*<replacement>*/var Duplex;/*</replacement>*/Readable.ReadableState=ReadableState;/*<replacement>*/var EE=require('events').EventEmitter;var EElistenerCount=function EElistenerCount(emitter,type){return emitter.listeners(type).length;};/*</replacement>*/ /*<replacement>*/var Stream=require('./internal/streams/stream');/*</replacement>*/ /*<replacement>*/var Buffer=require('safe-buffer').Buffer;var OurUint8Array=global.Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer.from(chunk);}function _isUint8Array(obj){return Buffer.isBuffer(obj)||obj instanceof OurUint8Array;}/*</replacement>*/ /*<replacement>*/var util=require('core-util-is');util.inherits=require('inherits');/*</replacement>*/ /*<replacement>*/var debugUtil=require('util');var debug=void 0;if(debugUtil&&debugUtil.debuglog){debug=debugUtil.debuglog('stream');}else{debug=function debug(){};}/*</replacement>*/var BufferList=require('./internal/streams/BufferList');var destroyImpl=require('./internal/streams/destroy');var StringDecoder;util.inherits(Readable,Stream);var kProxyEvents=['error','close','destroy','pause','resume'];function prependListener(emitter,event,fn){// Sadly this is not cacheable as some libraries bundle their own
// event emitter implementation with them.
if(typeof emitter.prependListener==='function')return emitter.prependListener(event,fn);// This is a hack to make sure that our error handler is attached before any
// userland ones.  NEVER DO THIS. This is here only because this code needs
// to continue to work with older versions of Node.js that do not include
// the prependListener() method. The goal is to eventually remove this hack.
if(!emitter._events||!emitter._events[event])emitter.on(event,fn);else if(isArray(emitter._events[event]))emitter._events[event].unshift(fn);else emitter._events[event]=[fn,emitter._events[event]];}function ReadableState(options,stream){Duplex=Duplex||require('./_stream_duplex');options=options||{};// Duplex streams are both readable and writable, but share
// the same options object.
// However, some cases require setting options to different
// values for the readable and the writable sides of the duplex stream.
// These options can be provided separately as readableXXX and writableXXX.
var isDuplex=stream instanceof Duplex;// object stream flag. Used to make read(n) ignore n and to
// make all the buffer merging and length checks go away
this.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.readableObjectMode;// the point at which it stops calling _read() to fill the buffer
// Note: 0 is a valid value, means "don't call _read preemptively ever"
var hwm=options.highWaterMark;var readableHwm=options.readableHighWaterMark;var defaultHwm=this.objectMode?16:16*1024;if(hwm||hwm===0)this.highWaterMark=hwm;else if(isDuplex&&(readableHwm||readableHwm===0))this.highWaterMark=readableHwm;else this.highWaterMark=defaultHwm;// cast to ints.
this.highWaterMark=Math.floor(this.highWaterMark);// A linked list is used to store data chunks instead of an array because the
// linked list can remove elements from the beginning faster than
// array.shift()
this.buffer=new BufferList();this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;// a flag to be able to tell if the event 'readable'/'data' is emitted
// immediately, or on a later tick.  We set this to true at first, because
// any actions that shouldn't happen until "later" should generally also
// not happen before the first read call.
this.sync=true;// whenever we return null, then we set a flag to say
// that we're awaiting a 'readable' event emission.
this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;// has it been destroyed
this.destroyed=false;// Crypto is kind of old and crusty.  Historically, its default string
// encoding is 'binary' so we have to make this configurable.
// Everything else in the universe uses 'utf8', though.
this.defaultEncoding=options.defaultEncoding||'utf8';// the number of writers that are awaiting a drain event in .pipe()s
this.awaitDrain=0;// if true, a maybeReadMore has been scheduled
this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require('string_decoder/').StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding;}}function Readable(options){Duplex=Duplex||require('./_stream_duplex');if(!(this instanceof Readable))return new Readable(options);this._readableState=new ReadableState(options,this);// legacy
this.readable=true;if(options){if(typeof options.read==='function')this._read=options.read;if(typeof options.destroy==='function')this._destroy=options.destroy;}Stream.call(this);}Object.defineProperty(Readable.prototype,'destroyed',{get:function get(){if(this._readableState===undefined){return false;}return this._readableState.destroyed;},set:function set(value){// we ignore the value if the stream
// has not been initialized yet
if(!this._readableState){return;}// backward compatibility, the user is explicitly
// managing destroyed
this._readableState.destroyed=value;}});Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){this.push(null);cb(err);};// Manually shove something into the read() buffer.
// This returns true if the highWaterMark has not been hit yet,
// similar to how Writable.write() returns true if you should
// write() some more.
Readable.prototype.push=function(chunk,encoding){var state=this._readableState;var skipChunkCheck;if(!state.objectMode){if(typeof chunk==='string'){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=Buffer.from(chunk,encoding);encoding='';}skipChunkCheck=true;}}else{skipChunkCheck=true;}return readableAddChunk(this,chunk,encoding,false,skipChunkCheck);};// Unshift should *always* be something directly out of read()
Readable.prototype.unshift=function(chunk){return readableAddChunk(this,chunk,null,true,false);};function readableAddChunk(stream,chunk,encoding,addToFront,skipChunkCheck){var state=stream._readableState;if(chunk===null){state.reading=false;onEofChunk(stream,state);}else{var er;if(!skipChunkCheck)er=chunkInvalid(state,chunk);if(er){stream.emit('error',er);}else if(state.objectMode||chunk&&chunk.length>0){if(typeof chunk!=='string'&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer.prototype){chunk=_uint8ArrayToBuffer(chunk);}if(addToFront){if(state.endEmitted)stream.emit('error',new Error('stream.unshift() after end event'));else addChunk(stream,state,chunk,true);}else if(state.ended){stream.emit('error',new Error('stream.push() after EOF'));}else{state.reading=false;if(state.decoder&&!encoding){chunk=state.decoder.write(chunk);if(state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,false);else maybeReadMore(stream,state);}else{addChunk(stream,state,chunk,false);}}}else if(!addToFront){state.reading=false;}}return needMoreData(state);}function addChunk(stream,state,chunk,addToFront){if(state.flowing&&state.length===0&&!state.sync){stream.emit('data',chunk);stream.read(0);}else{// update the buffer info.
state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream);}maybeReadMore(stream,state);}function chunkInvalid(state,chunk){var er;if(!_isUint8Array(chunk)&&typeof chunk!=='string'&&chunk!==undefined&&!state.objectMode){er=new TypeError('Invalid non-string/buffer chunk');}return er;}// if it's past the high water mark, we can push in some more.
// Also, if we have no data yet, we can stand some
// more bytes.  This is to work around cases where hwm=0,
// such as the repl.  Also, if the push() triggered a
// readable event, and the user called read(largeNumber) such that
// needReadable was set, then we ought to push more, so that another
// 'readable' event will be triggered.
function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||state.length===0);}Readable.prototype.isPaused=function(){return this._readableState.flowing===false;};// backwards compatibility.
Readable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require('string_decoder/').StringDecoder;this._readableState.decoder=new StringDecoder(enc);this._readableState.encoding=enc;return this;};// Don't raise the hwm > 8MB
var MAX_HWM=0x800000;function computeNewHighWaterMark(n){if(n>=MAX_HWM){n=MAX_HWM;}else{// Get the next highest power of 2 to prevent increasing hwm excessively in
// tiny amounts
n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++;}return n;}// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){// Only flow one buffer at a time
if(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length;}// If we're asking for more than the current hwm, then raise the hwm.
if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;// Don't have enough
if(!state.ended){state.needReadable=true;return 0;}return state.length;}// you can override either this method, or the async _read(n) below.
Readable.prototype.read=function(n){debug('read',n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;// if we're doing read(0) to trigger a readable event, but we
// already have a bunch of data in the buffer, then just trigger
// the 'readable' event and move on.
if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){debug('read: emitReadable',state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null;}n=howMuchToRead(n,state);// if we've ended, and we're now clear, then finish it up.
if(n===0&&state.ended){if(state.length===0)endReadable(this);return null;}// All the actual chunk generation logic needs to be
// *below* the call to _read.  The reason is that in certain
// synthetic stream cases, such as passthrough streams, _read
// may be a completely synchronous operation which may change
// the state of the read buffer, providing enough data when
// before there was *not* enough.
//
// So, the steps are:
// 1. Figure out what the state of things will be after we do
// a read from the buffer.
//
// 2. If that resulting state will trigger a _read, then call _read.
// Note that this may be asynchronous, or synchronous.  Yes, it is
// deeply ugly to write APIs this way, but that still doesn't mean
// that the Readable class should behave improperly, as streams are
// designed to be sync/async agnostic.
// Take note if the _read call is sync or async (ie, if the read call
// has returned yet), so that we know whether or not it's safe to emit
// 'readable' etc.
//
// 3. Actually pull the requested chunks out of the buffer and return.
// if we need a readable event, then we need to do some reading.
var doRead=state.needReadable;debug('need readable',doRead);// if we currently have less than the highWaterMark, then also read some
if(state.length===0||state.length-n<state.highWaterMark){doRead=true;debug('length less than watermark',doRead);}// however, if we've ended, then there's no point, and if we're already
// reading, then it's unnecessary.
if(state.ended||state.reading){doRead=false;debug('reading or ended',doRead);}else if(doRead){debug('do read');state.reading=true;state.sync=true;// if the length is currently zero, then we *need* a readable event.
if(state.length===0)state.needReadable=true;// call internal read method
this._read(state.highWaterMark);state.sync=false;// If _read pushed data synchronously, then `reading` will be false,
// and we need to re-evaluate how much data we can return to the user.
if(!state.reading)n=howMuchToRead(nOrig,state);}var ret;if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=true;n=0;}else{state.length-=n;}if(state.length===0){// If we have nothing in the buffer, then we want to know
// as soon as we *do* get something into the buffer.
if(!state.ended)state.needReadable=true;// If we tried to read() past the EOF, then emit end on the next tick.
if(nOrig!==n&&state.ended)endReadable(this);}if(ret!==null)this.emit('data',ret);return ret;};function onEofChunk(stream,state){if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length;}}state.ended=true;// emit 'readable' now to make sure it gets picked up.
emitReadable(stream);}// Don't emit readable right away in sync mode, because this can trigger
// another read() call => stack overflow.  This way, it might trigger
// a nextTick recursion warning, but that's not so bad.
function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(!state.emittedReadable){debug('emitReadable',state.flowing);state.emittedReadable=true;if(state.sync)pna.nextTick(emitReadable_,stream);else emitReadable_(stream);}}function emitReadable_(stream){debug('emit readable');stream.emit('readable');flow(stream);}// at this point, the user has presumably seen the 'readable' event,
// and called read() to consume some data.  that may have triggered
// in turn another _read(n) call, in which case reading = true if
// it's in progress.
// However, if we're not ended, or reading, and the length < hwm,
// then go ahead and try to read some more preemptively.
function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;pna.nextTick(maybeReadMore_,stream,state);}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark){debug('maybeReadMore read 0');stream.read(0);if(len===state.length)// didn't get any data, stop spinning.
break;else len=state.length;}state.readingMore=false;}// abstract method.  to be overridden in specific implementation classes.
// call cb(er, data) where data is <= n in length.
// for virtual (non-string, non-buffer) streams, "length" is somewhat
// arbitrary, and perhaps not very meaningful.
Readable.prototype._read=function(n){this.emit('error',new Error('_read() is not implemented'));};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break;}state.pipesCount+=1;debug('pipe count=%d opts=%j',state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:unpipe;if(state.endEmitted)pna.nextTick(endFn);else src.once('end',endFn);dest.on('unpipe',onunpipe);function onunpipe(readable,unpipeInfo){debug('onunpipe');if(readable===src){if(unpipeInfo&&unpipeInfo.hasUnpiped===false){unpipeInfo.hasUnpiped=true;cleanup();}}}function onend(){debug('onend');dest.end();}// when the dest drains, it reduces the awaitDrain counter
// on the source.  This would be more elegant with a .once()
// handler in flow(), but adding and removing repeatedly is
// too slow.
var ondrain=pipeOnDrain(src);dest.on('drain',ondrain);var cleanedUp=false;function cleanup(){debug('cleanup');// cleanup event handlers once the pipe is broken
dest.removeListener('close',onclose);dest.removeListener('finish',onfinish);dest.removeListener('drain',ondrain);dest.removeListener('error',onerror);dest.removeListener('unpipe',onunpipe);src.removeListener('end',onend);src.removeListener('end',unpipe);src.removeListener('data',ondata);cleanedUp=true;// if the reader is waiting for a drain event from this
// specific writer, then it would cause it to never start
// flowing again.
// So, if this is awaiting a drain, then we just call it now.
// If we don't know, then assume that we are waiting for one.
if(state.awaitDrain&&(!dest._writableState||dest._writableState.needDrain))ondrain();}// If the user pushes more data while we're writing to dest then we'll end up
// in ondata again. However, we only want to increase awaitDrain once because
// dest will only emit one 'drain' event for the multiple writes.
// => Introduce a guard on increasing awaitDrain.
var increasedAwaitDrain=false;src.on('data',ondata);function ondata(chunk){debug('ondata');increasedAwaitDrain=false;var ret=dest.write(chunk);if(false===ret&&!increasedAwaitDrain){// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
// => Check whether `dest` is still a piping destination.
if((state.pipesCount===1&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug('false write response, pause',src._readableState.awaitDrain);src._readableState.awaitDrain++;increasedAwaitDrain=true;}src.pause();}}// if the dest has an error, then stop piping into it.
// however, don't suppress the throwing behavior for this.
function onerror(er){debug('onerror',er);unpipe();dest.removeListener('error',onerror);if(EElistenerCount(dest,'error')===0)dest.emit('error',er);}// Make sure our error handler is attached before userland ones.
prependListener(dest,'error',onerror);// Both close and finish should trigger unpipe, but only once.
function onclose(){dest.removeListener('finish',onfinish);unpipe();}dest.once('close',onclose);function onfinish(){debug('onfinish');dest.removeListener('close',onclose);unpipe();}dest.once('finish',onfinish);function unpipe(){debug('unpipe');src.unpipe(dest);}// tell the dest that it's being piped to
dest.emit('pipe',src);// start the flow if it hasn't been started already.
if(!state.flowing){debug('pipe resume');src.resume();}return dest;};function pipeOnDrain(src){return function(){var state=src._readableState;debug('pipeOnDrain',state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,'data')){state.flowing=true;flow(src);}};}Readable.prototype.unpipe=function(dest){var state=this._readableState;var unpipeInfo={hasUnpiped:false};// if we're not piping anywhere, then do nothing.
if(state.pipesCount===0)return this;// just one destination.  most common case.
if(state.pipesCount===1){// passed in one, but it's not the right one.
if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;// got a match.
state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit('unpipe',this,unpipeInfo);return this;}// slow case. multiple pipe destinations.
if(!dest){// remove all.
var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var i=0;i<len;i++){dests[i].emit('unpipe',this,unpipeInfo);}return this;}// try to find the right one.
var index=indexOf(state.pipes,dest);if(index===-1)return this;state.pipes.splice(index,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit('unpipe',this,unpipeInfo);return this;};// set up data events if they are asked for
// Ensure readable listeners eventually get something
Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if(ev==='data'){// Start flowing on next tick if stream isn't explicitly paused
if(this._readableState.flowing!==false)this.resume();}else if(ev==='readable'){var state=this._readableState;if(!state.endEmitted&&!state.readableListening){state.readableListening=state.needReadable=true;state.emittedReadable=false;if(!state.reading){pna.nextTick(nReadingNextTick,this);}else if(state.length){emitReadable(this);}}}return res;};Readable.prototype.addListener=Readable.prototype.on;function nReadingNextTick(self){debug('readable nexttick read 0');self.read(0);}// pause() and resume() are remnants of the legacy readable stream API
// If the user uses them, then switch into old mode.
Readable.prototype.resume=function(){var state=this._readableState;if(!state.flowing){debug('resume');state.flowing=true;resume(this,state);}return this;};function resume(stream,state){if(!state.resumeScheduled){state.resumeScheduled=true;pna.nextTick(resume_,stream,state);}}function resume_(stream,state){if(!state.reading){debug('resume read 0');stream.read(0);}state.resumeScheduled=false;state.awaitDrain=0;stream.emit('resume');flow(stream);if(state.flowing&&!state.reading)stream.read(0);}Readable.prototype.pause=function(){debug('call pause flowing=%j',this._readableState.flowing);if(false!==this._readableState.flowing){debug('pause');this._readableState.flowing=false;this.emit('pause');}return this;};function flow(stream){var state=stream._readableState;debug('flow',state.flowing);while(state.flowing&&stream.read()!==null){}}// wrap an old-style stream as the async data source.
// This is *not* part of the readable stream interface.
// It is an ugly unfortunate mess of history.
Readable.prototype.wrap=function(stream){var _this=this;var state=this._readableState;var paused=false;stream.on('end',function(){debug('wrapped end');if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)_this.push(chunk);}_this.push(null);});stream.on('data',function(chunk){debug('wrapped data');if(state.decoder)chunk=state.decoder.write(chunk);// don't skip over falsy values in objectMode
if(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=_this.push(chunk);if(!ret){paused=true;stream.pause();}});// proxy all the other methods.
// important when wrapping filters and duplexes.
for(var i in stream){if(this[i]===undefined&&typeof stream[i]==='function'){this[i]=function(method){return function(){return stream[method].apply(stream,arguments);};}(i);}}// proxy certain important events.
for(var n=0;n<kProxyEvents.length;n++){stream.on(kProxyEvents[n],this.emit.bind(this,kProxyEvents[n]));}// when we try to consume some more bytes, simply unpause the
// underlying stream.
this._read=function(n){debug('wrapped _read',n);if(paused){paused=false;stream.resume();}};return this;};Object.defineProperty(Readable.prototype,'readableHighWaterMark',{// making it explicit this property is not enumerable
// because otherwise some prototype manipulation in
// userland will fail
enumerable:false,get:function get(){return this._readableState.highWaterMark;}});// exposed for testing purposes only.
Readable._fromList=fromList;// Pluck off n bytes from an array of buffers.
// Length is the combined lengths of all the buffers in the list.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function fromList(n,state){// nothing buffered
if(state.length===0)return null;var ret;if(state.objectMode)ret=state.buffer.shift();else if(!n||n>=state.length){// read it all, truncate the list
if(state.decoder)ret=state.buffer.join('');else if(state.buffer.length===1)ret=state.buffer.head.data;else ret=state.buffer.concat(state.length);state.buffer.clear();}else{// read part of list
ret=fromListPartial(n,state.buffer,state.decoder);}return ret;}// Extracts only enough buffered data to satisfy the amount requested.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function fromListPartial(n,list,hasStrings){var ret;if(n<list.head.data.length){// slice is the same for buffers and strings
ret=list.head.data.slice(0,n);list.head.data=list.head.data.slice(n);}else if(n===list.head.data.length){// first chunk is a perfect match
ret=list.shift();}else{// result spans more than one buffer
ret=hasStrings?copyFromBufferString(n,list):copyFromBuffer(n,list);}return ret;}// Copies a specified amount of characters from the list of buffered data
// chunks.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function copyFromBufferString(n,list){var p=list.head;var c=1;var ret=p.data;n-=ret.length;while(p=p.next){var str=p.data;var nb=n>str.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c;if(p.next)list.head=p.next;else list.head=list.tail=null;}else{list.head=p;p.data=str.slice(nb);}break;}++c;}list.length-=c;return ret;}// Copies a specified amount of bytes from the list of buffered data chunks.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.
function copyFromBuffer(n,list){var ret=Buffer.allocUnsafe(n);var p=list.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)list.head=p.next;else list.head=list.tail=null;}else{list.head=p;p.data=buf.slice(nb);}break;}++c;}list.length-=c;return ret;}function endReadable(stream){var state=stream._readableState;// If we get here before consuming all the bytes, then that is a
// bug in node.  Should never happen.
if(state.length>0)throw new Error('"endReadable()" called on non-empty stream');if(!state.endEmitted){state.ended=true;pna.nextTick(endReadableNT,state,stream);}}function endReadableNT(state,stream){// Check that we didn't get one last unshift.
if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit('end');}}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i;}return-1;}}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"./_stream_duplex":366,"./internal/streams/BufferList":371,"./internal/streams/destroy":372,"./internal/streams/stream":373,"_process":364,"core-util-is":355,"events":356,"inherits":358,"isarray":360,"process-nextick-args":363,"safe-buffer":378,"string_decoder/":380,"util":24}],369:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a transform stream is a readable/writable stream where you do
// something with the data.  Sometimes it's called a "filter",
// but that's not a great name for it, since that implies a thing where
// some bits pass through, and others are simply ignored.  (That would
// be a valid example of a transform, of course.)
//
// While the output is causally related to the input, it's not a
// necessarily symmetric or synchronous transformation.  For example,
// a zlib stream might take multiple plain-text writes(), and then
// emit a single compressed chunk some time in the future.
//
// Here's how this works:
//
// The Transform stream has all the aspects of the readable and writable
// stream classes.  When you write(chunk), that calls _write(chunk,cb)
// internally, and returns false if there's a lot of pending writes
// buffered up.  When you call read(), that calls _read(n) until
// there's enough pending readable data buffered up.
//
// In a transform stream, the written data is placed in a buffer.  When
// _read(n) is called, it transforms the queued up data, calling the
// buffered _write cb's as it consumes chunks.  If consuming a single
// written chunk would result in multiple output chunks, then the first
// outputted bit calls the readcb, and subsequent chunks just go into
// the read buffer, and will cause it to emit 'readable' if necessary.
//
// This way, back-pressure is actually determined by the reading side,
// since _read has to be called to start processing a new chunk.  However,
// a pathological inflate type of transform can cause excessive buffering
// here.  For example, imagine a stream where every byte of input is
// interpreted as an integer from 0-255, and then results in that many
// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in
// 1kb of data being output.  In this case, you could write a very small
// amount of input, and end up with a very large amount of output.  In
// such a pathological inflating mechanism, there'd be no way to tell
// the system to stop doing the transform.  A single 4MB write could
// cause the system to run out of memory.
//
// However, even in such a pathological case, only a single written chunk
// would be consumed, and then the rest would wait (un-transformed) until
// the results of the previous transformed chunk were consumed.
'use strict';module.exports=Transform;var Duplex=require('./_stream_duplex');/*<replacement>*/var util=require('core-util-is');util.inherits=require('inherits');/*</replacement>*/util.inherits(Transform,Duplex);function afterTransform(er,data){var ts=this._transformState;ts.transforming=false;var cb=ts.writecb;if(!cb){return this.emit('error',new Error('write callback called multiple times'));}ts.writechunk=null;ts.writecb=null;if(data!=null)// single equals check for both `null` and `undefined`
this.push(data);cb(er);var rs=this._readableState;rs.reading=false;if(rs.needReadable||rs.length<rs.highWaterMark){this._read(rs.highWaterMark);}}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options);this._transformState={afterTransform:afterTransform.bind(this),needTransform:false,transforming:false,writecb:null,writechunk:null,writeencoding:null};// start out asking for a readable event once data is transformed.
this._readableState.needReadable=true;// we have implemented the _read method, and done the other things
// that Readable wants before the first _read call, so unset the
// sync guard flag.
this._readableState.sync=false;if(options){if(typeof options.transform==='function')this._transform=options.transform;if(typeof options.flush==='function')this._flush=options.flush;}// When the writable side finishes, then flush out anything remaining.
this.on('prefinish',prefinish);}function prefinish(){var _this=this;if(typeof this._flush==='function'){this._flush(function(er,data){done(_this,er,data);});}else{done(this,null,null);}}Transform.prototype.push=function(chunk,encoding){this._transformState.needTransform=false;return Duplex.prototype.push.call(this,chunk,encoding);};// This is the part where you do stuff!
// override this function in implementation classes.
// 'chunk' is an input chunk.
//
// Call `push(newChunk)` to pass along transformed output
// to the readable side.  You may call 'push' zero or more times.
//
// Call `cb(err)` when you are done with this chunk.  If you pass
// an error, then that'll put the hurt on the whole operation.  If you
// never call cb(), then you'll never get another chunk.
Transform.prototype._transform=function(chunk,encoding,cb){throw new Error('_transform() is not implemented');};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;ts.writecb=cb;ts.writechunk=chunk;ts.writeencoding=encoding;if(!ts.transforming){var rs=this._readableState;if(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)this._read(rs.highWaterMark);}};// Doesn't matter what the args are here.
// _transform does all the work.
// That we got here means that the readable side wants more data.
Transform.prototype._read=function(n){var ts=this._transformState;if(ts.writechunk!==null&&ts.writecb&&!ts.transforming){ts.transforming=true;this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform);}else{// mark that we need a transform, so that any data that comes in
// will get processed, now that we've asked for it.
ts.needTransform=true;}};Transform.prototype._destroy=function(err,cb){var _this2=this;Duplex.prototype._destroy.call(this,err,function(err2){cb(err2);_this2.emit('close');});};function done(stream,er,data){if(er)return stream.emit('error',er);if(data!=null)// single equals check for both `null` and `undefined`
stream.push(data);// if there's nothing in the write buffer, then that means
// that nothing more will ever be provided
if(stream._writableState.length)throw new Error('Calling transform done when ws.length != 0');if(stream._transformState.transforming)throw new Error('Calling transform done when still transforming');return stream.push(null);}},{"./_stream_duplex":366,"core-util-is":355,"inherits":358}],370:[function(require,module,exports){(function(process,global,setImmediate){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// A bit simpler than readable streams.
// Implement an async ._write(chunk, encoding, cb), and it'll handle all
// the drain event emission and buffering.
'use strict';/*<replacement>*/var pna=require('process-nextick-args');/*</replacement>*/module.exports=Writable;/* <replacement> */function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb;this.next=null;}// It seems a linked list but it is not
// there will be only 2 of these for each stream
function CorkedRequest(state){var _this=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(_this,state);};}/* </replacement> */ /*<replacement>*/var asyncWrite=!process.browser&&['v0.10','v0.9.'].indexOf(process.version.slice(0,5))>-1?setImmediate:pna.nextTick;/*</replacement>*/ /*<replacement>*/var Duplex;/*</replacement>*/Writable.WritableState=WritableState;/*<replacement>*/var util=require('core-util-is');util.inherits=require('inherits');/*</replacement>*/ /*<replacement>*/var internalUtil={deprecate:require('util-deprecate')};/*</replacement>*/ /*<replacement>*/var Stream=require('./internal/streams/stream');/*</replacement>*/ /*<replacement>*/var Buffer=require('safe-buffer').Buffer;var OurUint8Array=global.Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer.from(chunk);}function _isUint8Array(obj){return Buffer.isBuffer(obj)||obj instanceof OurUint8Array;}/*</replacement>*/var destroyImpl=require('./internal/streams/destroy');util.inherits(Writable,Stream);function nop(){}function WritableState(options,stream){Duplex=Duplex||require('./_stream_duplex');options=options||{};// Duplex streams are both readable and writable, but share
// the same options object.
// However, some cases require setting options to different
// values for the readable and the writable sides of the duplex stream.
// These options can be provided separately as readableXXX and writableXXX.
var isDuplex=stream instanceof Duplex;// object stream flag to indicate whether or not this stream
// contains buffers or objects.
this.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.writableObjectMode;// the point at which write() starts returning false
// Note: 0 is a valid value, means that we always return false if
// the entire buffer is not flushed immediately on write()
var hwm=options.highWaterMark;var writableHwm=options.writableHighWaterMark;var defaultHwm=this.objectMode?16:16*1024;if(hwm||hwm===0)this.highWaterMark=hwm;else if(isDuplex&&(writableHwm||writableHwm===0))this.highWaterMark=writableHwm;else this.highWaterMark=defaultHwm;// cast to ints.
this.highWaterMark=Math.floor(this.highWaterMark);// if _final has been called
this.finalCalled=false;// drain event flag.
this.needDrain=false;// at the start of calling end()
this.ending=false;// when end() has been called, and returned
this.ended=false;// when 'finish' is emitted
this.finished=false;// has it been destroyed
this.destroyed=false;// should we decode strings into buffers before passing to _write?
// this is here so that some node-core streams can optimize string
// handling at a lower level.
var noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;// Crypto is kind of old and crusty.  Historically, its default string
// encoding is 'binary' so we have to make this configurable.
// Everything else in the universe uses 'utf8', though.
this.defaultEncoding=options.defaultEncoding||'utf8';// not an actual buffer we keep track of, but a measurement
// of how much we're waiting to get pushed to some underlying
// socket or file.
this.length=0;// a flag to see when we're in the middle of a write.
this.writing=false;// when true all writes will be buffered until .uncork() call
this.corked=0;// a flag to be able to tell if the onwrite cb is called immediately,
// or on a later tick.  We set this to true at first, because any
// actions that shouldn't happen until "later" should generally also
// not happen before the first write call.
this.sync=true;// a flag to know if we're processing previously buffered items, which
// may call the _write() callback in the same tick, so that we don't
// end up in an overlapped onwrite situation.
this.bufferProcessing=false;// the callback that's passed to _write(chunk,cb)
this.onwrite=function(er){onwrite(stream,er);};// the callback that the user supplies to write(chunk,encoding,cb)
this.writecb=null;// the amount that is being written when _write is called.
this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;// number of pending user-supplied write callbacks
// this must be 0 before 'finish' can be emitted
this.pendingcb=0;// emit prefinish if the only thing we're waiting for is _write cbs
// This is relevant for synchronous Transform streams
this.prefinished=false;// True if the error was already emitted and should not be thrown again
this.errorEmitted=false;// count buffered requests
this.bufferedRequestCount=0;// allocate the first CorkedRequest, there is always
// one allocated and free to use, and we maintain at most two
this.corkedRequestsFree=new CorkedRequest(this);}WritableState.prototype.getBuffer=function getBuffer(){var current=this.bufferedRequest;var out=[];while(current){out.push(current);current=current.next;}return out;};(function(){try{Object.defineProperty(WritableState.prototype,'buffer',{get:internalUtil.deprecate(function(){return this.getBuffer();},'_writableState.buffer is deprecated. Use _writableState.getBuffer '+'instead.','DEP0003')});}catch(_){}})();// Test _writableState for inheritance to account for Duplex streams,
// whose prototype chain only points to Readable.
var realHasInstance;if(typeof Symbol==='function'&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==='function'){realHasInstance=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function value(object){if(realHasInstance.call(this,object))return true;if(this!==Writable)return false;return object&&object._writableState instanceof WritableState;}});}else{realHasInstance=function realHasInstance(object){return object instanceof this;};}function Writable(options){Duplex=Duplex||require('./_stream_duplex');// Writable ctor is applied to Duplexes, too.
// `realHasInstance` is necessary because using plain `instanceof`
// would return false, as no `_writableState` property is attached.
// Trying to use the custom `instanceof` for Writable here will also break the
// Node.js LazyTransform implementation, which has a non-trivial getter for
// `_writableState` that would lead to infinite recursion.
if(!realHasInstance.call(Writable,this)&&!(this instanceof Duplex)){return new Writable(options);}this._writableState=new WritableState(options,this);// legacy.
this.writable=true;if(options){if(typeof options.write==='function')this._write=options.write;if(typeof options.writev==='function')this._writev=options.writev;if(typeof options.destroy==='function')this._destroy=options.destroy;if(typeof options["final"]==='function')this._final=options["final"];}Stream.call(this);}// Otherwise people can pipe Writable streams, which is just wrong.
Writable.prototype.pipe=function(){this.emit('error',new Error('Cannot pipe, not readable'));};function writeAfterEnd(stream,cb){var er=new Error('write after end');// TODO: defer error events consistently everywhere, not just the cb
stream.emit('error',er);pna.nextTick(cb,er);}// Checks that a user-supplied chunk is valid, especially for the particular
// mode the stream is in. Currently this means that `null` is never accepted
// and undefined/non-string values are only allowed in object mode.
function validChunk(stream,state,chunk,cb){var valid=true;var er=false;if(chunk===null){er=new TypeError('May not write null values to stream');}else if(typeof chunk!=='string'&&chunk!==undefined&&!state.objectMode){er=new TypeError('Invalid non-string/buffer chunk');}if(er){stream.emit('error',er);pna.nextTick(cb,er);valid=false;}return valid;}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;var isBuf=!state.objectMode&&_isUint8Array(chunk);if(isBuf&&!Buffer.isBuffer(chunk)){chunk=_uint8ArrayToBuffer(chunk);}if(typeof encoding==='function'){cb=encoding;encoding=null;}if(isBuf)encoding='buffer';else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=='function')cb=nop;if(state.ended)writeAfterEnd(this,cb);else if(isBuf||validChunk(this,state,chunk,cb)){state.pendingcb++;ret=writeOrBuffer(this,state,isBuf,chunk,encoding,cb);}return ret;};Writable.prototype.cork=function(){var state=this._writableState;state.corked++;};Writable.prototype.uncork=function(){var state=this._writableState;if(state.corked){state.corked--;if(!state.writing&&!state.corked&&!state.finished&&!state.bufferProcessing&&state.bufferedRequest)clearBuffer(this,state);}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(encoding){// node::ParseEncoding() requires lower case.
if(typeof encoding==='string')encoding=encoding.toLowerCase();if(!(['hex','utf8','utf-8','ascii','binary','base64','ucs2','ucs-2','utf16le','utf-16le','raw'].indexOf((encoding+'').toLowerCase())>-1))throw new TypeError('Unknown encoding: '+encoding);this._writableState.defaultEncoding=encoding;return this;};function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==='string'){chunk=Buffer.from(chunk,encoding);}return chunk;}Object.defineProperty(Writable.prototype,'writableHighWaterMark',{// making it explicit this property is not enumerable
// because otherwise some prototype manipulation in
// userland will fail
enumerable:false,get:function get(){return this._writableState.highWaterMark;}});// if we're already writing something, then just put this
// in the queue, and wait our turn.  Otherwise, call _write
// If we return false, then we need a drain event, so set that flag.
function writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);if(chunk!==newChunk){isBuf=true;encoding='buffer';chunk=newChunk;}}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;// we must ensure that previous needDrain will not be reset to false.
if(!ret)state.needDrain=true;if(state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest={chunk:chunk,encoding:encoding,isBuf:isBuf,callback:cb,next:null};if(last){last.next=state.lastBufferedRequest;}else{state.bufferedRequest=state.lastBufferedRequest;}state.bufferedRequestCount+=1;}else{doWrite(stream,state,false,len,chunk,encoding,cb);}return ret;}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;if(writev)stream._writev(chunk,state.onwrite);else stream._write(chunk,encoding,state.onwrite);state.sync=false;}function onwriteError(stream,state,sync,er,cb){--state.pendingcb;if(sync){// defer the callback if we are being called synchronously
// to avoid piling up things on the stack
pna.nextTick(cb,er);// this can emit finish, and it will always happen
// after error
pna.nextTick(finishMaybe,stream,state);stream._writableState.errorEmitted=true;stream.emit('error',er);}else{// the caller expect this to happen before if
// it is async
cb(er);stream._writableState.errorEmitted=true;stream.emit('error',er);// this can emit finish, but finish must
// always follow error
finishMaybe(stream,state);}}function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0;}function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{// Check if we're actually ready to finish, but don't emit yet
var finished=needFinish(state);if(!finished&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest){clearBuffer(stream,state);}if(sync){/*<replacement>*/asyncWrite(afterWrite,stream,state,finished,cb);/*</replacement>*/}else{afterWrite(stream,state,finished,cb);}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);state.pendingcb--;cb();finishMaybe(stream,state);}// Must force callback to be called on nextTick, so that we don't
// emit 'drain' before the write() consumer gets the 'false' return
// value, and has a chance to attach a 'drain' listener.
function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit('drain');}}// if there's something in the buffer waiting, then process it
function clearBuffer(stream,state){state.bufferProcessing=true;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){// Fast case, write everything using _writev()
var l=state.bufferedRequestCount;var buffer=new Array(l);var holder=state.corkedRequestsFree;holder.entry=entry;var count=0;var allBuffers=true;while(entry){buffer[count]=entry;if(!entry.isBuf)allBuffers=false;entry=entry.next;count+=1;}buffer.allBuffers=allBuffers;doWrite(stream,state,true,state.length,buffer,'',holder.finish);// doWrite is almost always async, defer these to save a bit of time
// as the hot path ends with doWrite
state.pendingcb++;state.lastBufferedRequest=null;if(holder.next){state.corkedRequestsFree=holder.next;holder.next=null;}else{state.corkedRequestsFree=new CorkedRequest(state);}state.bufferedRequestCount=0;}else{// Slow case, write chunks one-by-one
while(entry){var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,false,len,chunk,encoding,cb);entry=entry.next;state.bufferedRequestCount--;// if we didn't call the onwrite immediately, then
// it means that we need to wait until it does.
// also, that means that the chunk and cb are currently
// being processed, so move the buffer counter past them.
if(state.writing){break;}}if(entry===null)state.lastBufferedRequest=null;}state.bufferedRequest=entry;state.bufferProcessing=false;}Writable.prototype._write=function(chunk,encoding,cb){cb(new Error('_write() is not implemented'));};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==='function'){cb=chunk;chunk=null;encoding=null;}else if(typeof encoding==='function'){cb=encoding;encoding=null;}if(chunk!==null&&chunk!==undefined)this.write(chunk,encoding);// .end() fully uncorks
if(state.corked){state.corked=1;this.uncork();}// ignore unnecessary end() calls.
if(!state.ending&&!state.finished)endWritable(this,state,cb);};function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing;}function callFinal(stream,state){stream._final(function(err){state.pendingcb--;if(err){stream.emit('error',err);}state.prefinished=true;stream.emit('prefinish');finishMaybe(stream,state);});}function prefinish(stream,state){if(!state.prefinished&&!state.finalCalled){if(typeof stream._final==='function'){state.pendingcb++;state.finalCalled=true;pna.nextTick(callFinal,stream,state);}else{state.prefinished=true;stream.emit('prefinish');}}}function finishMaybe(stream,state){var need=needFinish(state);if(need){prefinish(stream,state);if(state.pendingcb===0){state.finished=true;stream.emit('finish');}}return need;}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)pna.nextTick(cb);else stream.once('finish',cb);}state.ended=true;stream.writable=false;}function onCorkedFinish(corkReq,state,err){var entry=corkReq.entry;corkReq.entry=null;while(entry){var cb=entry.callback;state.pendingcb--;cb(err);entry=entry.next;}if(state.corkedRequestsFree){state.corkedRequestsFree.next=corkReq;}else{state.corkedRequestsFree=corkReq;}}Object.defineProperty(Writable.prototype,'destroyed',{get:function get(){if(this._writableState===undefined){return false;}return this._writableState.destroyed;},set:function set(value){// we ignore the value if the stream
// has not been initialized yet
if(!this._writableState){return;}// backward compatibility, the user is explicitly
// managing destroyed
this._writableState.destroyed=value;}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){this.end();cb(err);};}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("timers").setImmediate);},{"./_stream_duplex":366,"./internal/streams/destroy":372,"./internal/streams/stream":373,"_process":364,"core-util-is":355,"inherits":358,"process-nextick-args":363,"safe-buffer":378,"timers":381,"util-deprecate":382}],371:[function(require,module,exports){'use strict';function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Buffer=require('safe-buffer').Buffer;var util=require('util');function copyBuffer(src,target,offset){src.copy(target,offset);}module.exports=function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0;}BufferList.prototype.push=function push(v){var entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length;};BufferList.prototype.unshift=function unshift(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length;};BufferList.prototype.shift=function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret;};BufferList.prototype.clear=function clear(){this.head=this.tail=null;this.length=0;};BufferList.prototype.join=function join(s){if(this.length===0)return'';var p=this.head;var ret=''+p.data;while(p=p.next){ret+=s+p.data;}return ret;};BufferList.prototype.concat=function concat(n){if(this.length===0)return Buffer.alloc(0);if(this.length===1)return this.head.data;var ret=Buffer.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next;}return ret;};return BufferList;}();if(util&&util.inspect&&util.inspect.custom){module.exports.prototype[util.inspect.custom]=function(){var obj=util.inspect({length:this.length});return this.constructor.name+' '+obj;};}},{"safe-buffer":378,"util":24}],372:[function(require,module,exports){'use strict';/*<replacement>*/var pna=require('process-nextick-args');/*</replacement>*/ // undocumented cb() API, needed for core, not for public API
function destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err);}else if(err&&(!this._writableState||!this._writableState.errorEmitted)){pna.nextTick(emitErrorNT,this,err);}return this;}// we set destroyed to true before firing error callbacks in order
// to make it re-entrance safe in case destroy() is called within callbacks
if(this._readableState){this._readableState.destroyed=true;}// if this is a duplex stream mark the writable part as destroyed as well
if(this._writableState){this._writableState.destroyed=true;}this._destroy(err||null,function(err){if(!cb&&err){pna.nextTick(emitErrorNT,_this,err);if(_this._writableState){_this._writableState.errorEmitted=true;}}else if(cb){cb(err);}});return this;}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false;}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finished=false;this._writableState.errorEmitted=false;}}function emitErrorNT(self,err){self.emit('error',err);}module.exports={destroy:destroy,undestroy:undestroy};},{"process-nextick-args":363}],373:[function(require,module,exports){module.exports=require('events').EventEmitter;},{"events":356}],374:[function(require,module,exports){module.exports=require('./readable').PassThrough;},{"./readable":375}],375:[function(require,module,exports){exports=module.exports=require('./lib/_stream_readable.js');exports.Stream=exports;exports.Readable=exports;exports.Writable=require('./lib/_stream_writable.js');exports.Duplex=require('./lib/_stream_duplex.js');exports.Transform=require('./lib/_stream_transform.js');exports.PassThrough=require('./lib/_stream_passthrough.js');},{"./lib/_stream_duplex.js":366,"./lib/_stream_passthrough.js":367,"./lib/_stream_readable.js":368,"./lib/_stream_transform.js":369,"./lib/_stream_writable.js":370}],376:[function(require,module,exports){module.exports=require('./readable').Transform;},{"./readable":375}],377:[function(require,module,exports){module.exports=require('./lib/_stream_writable.js');},{"./lib/_stream_writable.js":370}],378:[function(require,module,exports){/* eslint-disable node/no-deprecated-api */var buffer=require('buffer');var Buffer=buffer.Buffer;// alternative to using Object.keys for old browsers
function copyProps(src,dst){for(var key in src){dst[key]=src[key];}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer;}else{// Copy properties from require('buffer')
copyProps(buffer,exports);exports.Buffer=SafeBuffer;}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length);}// Copy static methods from Buffer
copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==='number'){throw new TypeError('Argument must not be a number');}return Buffer(arg,encodingOrOffset,length);};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==='string'){buf.fill(fill,encoding);}else{buf.fill(fill);}}else{buf.fill(0);}return buf;};SafeBuffer.allocUnsafe=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return Buffer(size);};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return buffer.SlowBuffer(size);};},{"buffer":25}],379:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
module.exports=Stream;var EE=require('events').EventEmitter;var inherits=require('inherits');inherits(Stream,EE);Stream.Readable=require('readable-stream/readable.js');Stream.Writable=require('readable-stream/writable.js');Stream.Duplex=require('readable-stream/duplex.js');Stream.Transform=require('readable-stream/transform.js');Stream.PassThrough=require('readable-stream/passthrough.js');// Backwards-compat with node 0.4.x
Stream.Stream=Stream;// old-style streams.  Note that the pipe method (the only relevant
// part of this class) is overridden in the Readable class.
function Stream(){EE.call(this);}Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){if(dest.writable){if(false===dest.write(chunk)&&source.pause){source.pause();}}}source.on('data',ondata);function ondrain(){if(source.readable&&source.resume){source.resume();}}dest.on('drain',ondrain);// If the 'end' option is not supplied, dest.end() will be called when
// source gets the 'end' or 'close' events.  Only dest.end() once.
if(!dest._isStdio&&(!options||options.end!==false)){source.on('end',onend);source.on('close',onclose);}var didOnEnd=false;function onend(){if(didOnEnd)return;didOnEnd=true;dest.end();}function onclose(){if(didOnEnd)return;didOnEnd=true;if(typeof dest.destroy==='function')dest.destroy();}// don't leave dangling pipes when there are errors.
function onerror(er){cleanup();if(EE.listenerCount(this,'error')===0){throw er;// Unhandled stream error in pipe.
}}source.on('error',onerror);dest.on('error',onerror);// remove all the event listeners that were added.
function cleanup(){source.removeListener('data',ondata);dest.removeListener('drain',ondrain);source.removeListener('end',onend);source.removeListener('close',onclose);source.removeListener('error',onerror);dest.removeListener('error',onerror);source.removeListener('end',cleanup);source.removeListener('close',cleanup);dest.removeListener('close',cleanup);}source.on('end',cleanup);source.on('close',cleanup);dest.on('close',cleanup);dest.emit('pipe',source);// Allow for unix-like usage: A.pipe(B).pipe(C)
return dest;};},{"events":356,"inherits":358,"readable-stream/duplex.js":365,"readable-stream/passthrough.js":374,"readable-stream/readable.js":375,"readable-stream/transform.js":376,"readable-stream/writable.js":377}],380:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';/*<replacement>*/var Buffer=require('safe-buffer').Buffer;/*</replacement>*/var isEncoding=Buffer.isEncoding||function(encoding){encoding=''+encoding;switch(encoding&&encoding.toLowerCase()){case'hex':case'utf8':case'utf-8':case'ascii':case'binary':case'base64':case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':case'raw':return true;default:return false;}};function _normalizeEncoding(enc){if(!enc)return'utf8';var retried;while(true){switch(enc){case'utf8':case'utf-8':return'utf8';case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return'utf16le';case'latin1':case'binary':return'latin1';case'base64':case'ascii':case'hex':return enc;default:if(retried)return;// undefined
enc=(''+enc).toLowerCase();retried=true;}}};// Do not cache `Buffer.isEncoding` when checking encoding names as some
// modules monkey-patch it to support additional encodings
function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!=='string'&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error('Unknown encoding: '+enc);return nenc||enc;}// StringDecoder provides an interface for efficiently splitting a series of
// buffers into a series of JS strings without breaking apart multi-byte
// characters.
exports.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case'utf16le':this.text=utf16Text;this.end=utf16End;nb=4;break;case'utf8':this.fillLast=utf8FillLast;nb=4;break;case'base64':this.text=base64Text;this.end=base64End;nb=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return;}this.lastNeed=0;this.lastTotal=0;this.lastChar=Buffer.allocUnsafe(nb);}StringDecoder.prototype.write=function(buf){if(buf.length===0)return'';var r;var i;if(this.lastNeed){r=this.fillLast(buf);if(r===undefined)return'';i=this.lastNeed;this.lastNeed=0;}else{i=0;}if(i<buf.length)return r?r+this.text(buf,i):this.text(buf,i);return r||'';};StringDecoder.prototype.end=utf8End;// Returns only complete characters in a Buffer
StringDecoder.prototype.text=utf8Text;// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
StringDecoder.prototype.fillLast=function(buf){if(this.lastNeed<=buf.length){buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal);}buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,buf.length);this.lastNeed-=buf.length;};// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
// continuation byte. If an invalid byte is detected, -2 is returned.
function utf8CheckByte(_byte){if(_byte<=0x7F)return 0;else if(_byte>>5===0x06)return 2;else if(_byte>>4===0x0E)return 3;else if(_byte>>3===0x1E)return 4;return _byte>>6===0x02?-1:-2;}// Checks at most 3 bytes at the end of a Buffer in order to detect an
// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
// needed to complete the UTF-8 character (if applicable) are returned.
function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j<i)return 0;var nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0)self.lastNeed=nb-1;return nb;}if(--j<i||nb===-2)return 0;nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0)self.lastNeed=nb-2;return nb;}if(--j<i||nb===-2)return 0;nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0){if(nb===2)nb=0;else self.lastNeed=nb-3;}return nb;}return 0;}// Validates as many continuation bytes for a multi-byte UTF-8 character as
// needed or are available. If we see a non-continuation byte where we expect
// one, we "replace" the validated continuation bytes we've seen so far with
// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
// behavior. The continuation byte check is included three times in the case
// where all of the continuation bytes for a character exist in the same buffer.
// It is also done this way as a slight performance increase instead of using a
// loop.
function utf8CheckExtraBytes(self,buf,p){if((buf[0]&0xC0)!==0x80){self.lastNeed=0;return"\uFFFD";}if(self.lastNeed>1&&buf.length>1){if((buf[1]&0xC0)!==0x80){self.lastNeed=1;return"\uFFFD";}if(self.lastNeed>2&&buf.length>2){if((buf[2]&0xC0)!==0x80){self.lastNeed=2;return"\uFFFD";}}}}// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,buf,p);if(r!==undefined)return r;if(this.lastNeed<=buf.length){buf.copy(this.lastChar,p,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal);}buf.copy(this.lastChar,p,0,buf.length);this.lastNeed-=buf.length;}// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
// partial character, the character's bytes are buffered until the required
// number of bytes are available.
function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString('utf8',i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);buf.copy(this.lastChar,0,end);return buf.toString('utf8',i,end);}// For UTF-8, a replacement character is added when ending on a partial
// character.
function utf8End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed)return r+"\uFFFD";return r;}// UTF-16LE typically needs two bytes per character, but even if we have an even
// number of bytes available, we need to check if we end on a leading/high
// surrogate. In that case, we need to wait for the next two bytes in order to
// decode the last character properly.
function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString('utf16le',i);if(r){var c=r.charCodeAt(r.length-1);if(c>=0xD800&&c<=0xDBFF){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1);}}return r;}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString('utf16le',i,buf.length-1);}// For UTF-16LE we do not explicitly append special replacement characters if we
// end on a partial character, we simply let v8 handle that.
function utf16End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString('utf16le',0,end);}return r;}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString('base64',i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1];}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];}return buf.toString('base64',i,buf.length-n);}function base64End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed)return r+this.lastChar.toString('base64',0,3-this.lastNeed);return r;}// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
function simpleWrite(buf){return buf.toString(this.encoding);}function simpleEnd(buf){return buf&&buf.length?this.write(buf):'';}},{"safe-buffer":378}],381:[function(require,module,exports){(function(setImmediate,clearImmediate){var nextTick=require('process/browser.js').nextTick;var apply=Function.prototype.apply;var slice=Array.prototype.slice;var immediateIds={};var nextImmediateId=0;// DOM APIs, for completeness
exports.setTimeout=function(){return new Timeout(apply.call(setTimeout,window,arguments),clearTimeout);};exports.setInterval=function(){return new Timeout(apply.call(setInterval,window,arguments),clearInterval);};exports.clearTimeout=exports.clearInterval=function(timeout){timeout.close();};function Timeout(id,clearFn){this._id=id;this._clearFn=clearFn;}Timeout.prototype.unref=Timeout.prototype.ref=function(){};Timeout.prototype.close=function(){this._clearFn.call(window,this._id);};// Does not start the time, just sets up the members needed.
exports.enroll=function(item,msecs){clearTimeout(item._idleTimeoutId);item._idleTimeout=msecs;};exports.unenroll=function(item){clearTimeout(item._idleTimeoutId);item._idleTimeout=-1;};exports._unrefActive=exports.active=function(item){clearTimeout(item._idleTimeoutId);var msecs=item._idleTimeout;if(msecs>=0){item._idleTimeoutId=setTimeout(function onTimeout(){if(item._onTimeout)item._onTimeout();},msecs);}};// That's not how node.js implements it but the exposed api is the same.
exports.setImmediate=typeof setImmediate==="function"?setImmediate:function(fn){var id=nextImmediateId++;var args=arguments.length<2?false:slice.call(arguments,1);immediateIds[id]=true;nextTick(function onNextTick(){if(immediateIds[id]){// fn.call() is faster so we optimize for the common use-case
// @see http://jsperf.com/call-apply-segu
if(args){fn.apply(null,args);}else{fn.call(null);}// Prevent ids from leaking
exports.clearImmediate(id);}});return id;};exports.clearImmediate=typeof clearImmediate==="function"?clearImmediate:function(id){delete immediateIds[id];};}).call(this,require("timers").setImmediate,require("timers").clearImmediate);},{"process/browser.js":364,"timers":381}],382:[function(require,module,exports){(function(global){/**
 * Module exports.
 */module.exports=deprecate;/**
 * Mark that a method should not be used.
 * Returns a modified function which warns once by default.
 *
 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
 *
 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
 * will throw an Error when invoked.
 *
 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
 * will invoke `console.trace()` instead of `console.error()`.
 *
 * @param {Function} fn - the function to deprecate
 * @param {String} msg - the string to print to the console when `fn` is invoked
 * @returns {Function} a new "deprecated" version of `fn`
 * @api public
 */function deprecate(fn,msg){if(config('noDeprecation')){return fn;}var warned=false;function deprecated(){if(!warned){if(config('throwDeprecation')){throw new Error(msg);}else if(config('traceDeprecation')){console.trace(msg);}else{console.warn(msg);}warned=true;}return fn.apply(this,arguments);}return deprecated;}/**
 * Checks `localStorage` for boolean values for the given `name`.
 *
 * @param {String} name
 * @returns {Boolean}
 * @api private
 */function config(name){// accessing global.localStorage can trigger a DOMException in sandboxed iframes
try{if(!global.localStorage)return false;}catch(_){return false;}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==='true';}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],383:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&_typeof(arg)==='object'&&typeof arg.copy==='function'&&typeof arg.fill==='function'&&typeof arg.readUInt8==='function';};},{}],384:[function(require,module,exports){(function(process,global){// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i<arguments.length;i++){objects.push(inspect(arguments[i]));}return objects.join(' ');}var i=1;var args=arguments;var len=args.length;var str=String(f).replace(formatRegExp,function(x){if(x==='%%')return'%';if(i>=len)return x;switch(x){case'%s':return String(args[i++]);case'%d':return Number(args[i++]);case'%j':try{return JSON.stringify(args[i++]);}catch(_){return'[Circular]';}default:return x;}});for(var x=args[i];i<len;x=args[++i]){if(isNull(x)||!isObject(x)){str+=' '+x;}else{str+=' '+inspect(x);}}return str;};// Mark that a method should not be used.
// Returns a modified function which warns once by default.
// If --no-deprecation is set, then it is a no-op.
exports.deprecate=function(fn,msg){// Allow for deprecating things in the process of starting up.
if(isUndefined(global.process)){return function(){return exports.deprecate(fn,msg).apply(this,arguments);};}if(process.noDeprecation===true){return fn;}var warned=false;function deprecated(){if(!warned){if(process.throwDeprecation){throw new Error(msg);}else if(process.traceDeprecation){console.trace(msg);}else{console.error(msg);}warned=true;}return fn.apply(this,arguments);}return deprecated;};var debugs={};var debugEnviron;exports.debuglog=function(set){if(isUndefined(debugEnviron))debugEnviron=process.env.NODE_DEBUG||'';set=set.toUpperCase();if(!debugs[set]){if(new RegExp('\\b'+set+'\\b','i').test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error('%s %d: %s',set,pid,msg);};}else{debugs[set]=function(){};}}return debugs[set];};/**
 * Echos the value of a value. Trys to print the value out
 * in the best way possible given the different types.
 *
 * @param {Object} obj The object to print out.
 * @param {Object} opts Optional options object that alters the output.
 */ /* legacy: obj, showHidden, depth, colors*/function inspect(obj,opts){// default options
var ctx={seen:[],stylize:stylizeNoColor};// legacy...
if(arguments.length>=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){// legacy...
ctx.showHidden=opts;}else if(opts){// got an "options" object
exports._extend(ctx,opts);}// set default options
if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth);}exports.inspect=inspect;// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
inspect.colors={'bold':[1,22],'italic':[3,23],'underline':[4,24],'inverse':[7,27],'white':[37,39],'grey':[90,39],'black':[30,39],'blue':[34,39],'cyan':[36,39],'green':[32,39],'magenta':[35,39],'red':[31,39],'yellow':[33,39]};// Don't use 'blue' not visible on cmd.exe
inspect.styles={'special':'cyan','number':'yellow','boolean':'yellow','undefined':'grey','null':'bold','string':'green','date':'magenta',// "name": intentionally not styling
'regexp':'red'};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"\x1B["+inspect.colors[style][0]+'m'+str+"\x1B["+inspect.colors[style][1]+'m';}else{return str;}}function stylizeNoColor(str,styleType){return str;}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true;});return hash;}function formatValue(ctx,value,recurseTimes){// Provide a hook for user-specified inspect functions.
// Check that value is an object with an inspect function on it
if(ctx.customInspect&&value&&isFunction(value.inspect)&&// Filter out the util module, it's inspect function is special
value.inspect!==exports.inspect&&// Also filter out any prototype objects using the circular check.
!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes);}return ret;}// Primitive types cannot have properties
var primitive=formatPrimitive(ctx,value);if(primitive){return primitive;}// Look up the keys of the object.
var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value);}// IE doesn't make error fields non-enumerable
// http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
if(isError(value)&&(keys.indexOf('message')>=0||keys.indexOf('description')>=0)){return formatError(value);}// Some type of object without properties can be shortcutted.
if(keys.length===0){if(isFunction(value)){var name=value.name?': '+value.name:'';return ctx.stylize('[Function'+name+']','special');}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),'regexp');}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),'date');}if(isError(value)){return formatError(value);}}var base='',array=false,braces=['{','}'];// Make Array say that they are Array
if(isArray(value)){array=true;braces=['[',']'];}// Make functions say that they are functions
if(isFunction(value)){var n=value.name?': '+value.name:'';base=' [Function'+n+']';}// Make RegExps say that they are RegExps
if(isRegExp(value)){base=' '+RegExp.prototype.toString.call(value);}// Make dates with properties first say the date
if(isDate(value)){base=' '+Date.prototype.toUTCString.call(value);}// Make error with message first say the error
if(isError(value)){base=' '+formatError(value);}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1];}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),'regexp');}else{return ctx.stylize('[Object]','special');}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys);}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array);});}ctx.seen.pop();return reduceToSingleString(output,base,braces);}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize('undefined','undefined');if(isString(value)){var simple='\''+JSON.stringify(value).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+'\'';return ctx.stylize(simple,'string');}if(isNumber(value))return ctx.stylize(''+value,'number');if(isBoolean(value))return ctx.stylize(''+value,'boolean');// For some reason typeof null is "object", so special case here.
if(isNull(value))return ctx.stylize('null','null');}function formatError(value){return'['+Error.prototype.toString.call(value)+']';}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i<l;++i){if(hasOwnProperty(value,String(i))){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),true));}else{output.push('');}}keys.forEach(function(key){if(!key.match(/^\d+$/)){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,true));}});return output;}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]};if(desc.get){if(desc.set){str=ctx.stylize('[Getter/Setter]','special');}else{str=ctx.stylize('[Getter]','special');}}else{if(desc.set){str=ctx.stylize('[Setter]','special');}}if(!hasOwnProperty(visibleKeys,key)){name='['+key+']';}if(!str){if(ctx.seen.indexOf(desc.value)<0){if(isNull(recurseTimes)){str=formatValue(ctx,desc.value,null);}else{str=formatValue(ctx,desc.value,recurseTimes-1);}if(str.indexOf('\n')>-1){if(array){str=str.split('\n').map(function(line){return'  '+line;}).join('\n').substr(2);}else{str='\n'+str.split('\n').map(function(line){return'   '+line;}).join('\n');}}}else{str=ctx.stylize('[Circular]','special');}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str;}name=JSON.stringify(''+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,'name');}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,'string');}}return name+': '+str;}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf('\n')>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,'').length+1;},0);if(length>60){return braces[0]+(base===''?'':base+'\n ')+' '+output.join(',\n  ')+' '+braces[1];}return braces[0]+base+' '+output.join(', ')+' '+braces[1];}// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
function isArray(ar){return Array.isArray(ar);}exports.isArray=isArray;function isBoolean(arg){return typeof arg==='boolean';}exports.isBoolean=isBoolean;function isNull(arg){return arg===null;}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null;}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==='number';}exports.isNumber=isNumber;function isString(arg){return typeof arg==='string';}exports.isString=isString;function isSymbol(arg){return _typeof(arg)==='symbol';}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0;}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==='[object RegExp]';}exports.isRegExp=isRegExp;function isObject(arg){return _typeof(arg)==='object'&&arg!==null;}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==='[object Date]';}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==='[object Error]'||e instanceof Error);}exports.isError=isError;function isFunction(arg){return typeof arg==='function';}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==='boolean'||typeof arg==='number'||typeof arg==='string'||_typeof(arg)==='symbol'||// ES6 symbol
typeof arg==='undefined';}exports.isPrimitive=isPrimitive;exports.isBuffer=require('./support/isBuffer');function objectToString(o){return Object.prototype.toString.call(o);}function pad(n){return n<10?'0'+n.toString(10):n.toString(10);}var months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];// 26 Feb 16:19:34
function timestamp(){var d=new Date();var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(':');return[d.getDate(),months[d.getMonth()],time].join(' ');}// log is just a thin wrapper to console.log that prepends a timestamp
exports.log=function(){console.log('%s - %s',timestamp(),exports.format.apply(exports,arguments));};/**
 * Inherit the prototype methods from one constructor into another.
 *
 * The Function.prototype.inherits from lang.js rewritten as a standalone
 * function (not on Function.prototype). NOTE: If this file is to be loaded
 * during bootstrapping this function needs to be rewritten using some native
 * functions as prototype setup using normal JavaScript does not work as
 * expected during bootstrapping (see mirror.js in r114903).
 *
 * @param {function} ctor Constructor function which needs to inherit the
 *     prototype.
 * @param {function} superCtor Constructor function to inherit prototype from.
 */exports.inherits=require('inherits');exports._extend=function(origin,add){// Don't do anything if add isn't an object
if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]];}return origin;};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"./support/isBuffer":383,"_process":364,"inherits":358}]},{},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]);


























// -------------------------------------------------------------------------------------------------------------------
// ARDUINO SIMULATOR CODE
// -------------------------------------------------------------------------------------------------------------------

var mySimulator;
var mySimulatorInput = "";
var mySimulatorInputArray = [];
var mySimulatorInputArrayIndex = 0;
var mySimulatorConfig = {
			stdio: {
				write: function(s)
					{
					self.postMessage(s);
					},
				},
			debug: true
			};

function startSendingData()
	{
	try
		{
		// CHECKING IF THE SIMULATOR INPUT IS EMPTY
		if (mySimulatorInput=="")
			{
			// UPDATING THE SIMULATOR INPUT WITH A CHARACTER FROM THE INPUT ARRAY
			mySimulatorInput = mySimulatorInputArray[mySimulatorInputArrayIndex];

			// UPDATING THE INPUT ARRAY INDEX
			mySimulatorInputArrayIndex = mySimulatorInputArrayIndex + 1;
			}

		// CHECKING IF THE INPUT ARRAY INDEX IS LESS THAN THE INPUT ARRAY LENGTH
		if (mySimulatorInputArrayIndex<mySimulatorInputArray.length)
			{
			// WAITING 1 MS AND LOOPING FOR CHECKING IF THE CHARACTER WAS RECEIVED BY THE BOARD
			// IN ORDER TO LATER SEND THE PENDING CHARACTERS (IF ANY)
			setTimeout(startSendingData,1);
			}
		}
		catch(err)
		{
		}
	}

self.addEventListener("message", function (e)
	{
	try
		{
		// GETTING THE DATA FROM THE WEB WORKER MESSAGE
		var workerMessage = e.data;

		// SETTING THE PREFIX FOR RECEIVING SERIAL DATA FROM THE USER
		var workerReceivingDataPrefix = "SEND_SERIAL_DATA_ARDUINO_SIMULATOR=";

		// CHECKING IF THE USER SENT SERIAL DATA (NOT THE SKETCH TO BE EXECUTED)
		if (workerMessage.indexOf(workerReceivingDataPrefix)>-1)
			{
			// GETTING THE SERIAL DATA FROM THE USER
			var finalData = workerMessage.substr(workerReceivingDataPrefix.length,workerMessage.length);

			// CLEARING THE ARRAY THAT WILL ACT AS A BUFFER FOR THE BOARD SIMULATION
			mySimulatorInputArray = [];
			mySimulatorInputArrayIndex = 0;

			// GETTING EVERY CHARACTER FROM THE FINALDATA VARIABLE
			for (var i = 0; i < finalData.length; i++)
				{
				// ADDING THE CHARCODE FOR EVERY CHARACTER TO THE INPUT ARRAY
				mySimulatorInputArray.push(String(finalData.charCodeAt(i)));
				}

			// START SENDING DATA TO THE BOARD
			startSendingData();
			}
			else
			{
			// TELLING THE BROWSER TO ENABLE THE SERIAL MONITOR
			self.postMessage("ENABLE_SERIAL_MONITOR_ARDUINO_SIMULATOR");

			// RUNNING THE SIMULATOR
			mySimulator = JSCPP.run(workerMessage, mySimulatorInput, mySimulatorConfig);

			// FUNCTION FOR INFINITE LOOP WITH A DELAY
			function loop()
				{
				// SETTING A LINE COUNTER
				var lineCounter = 0;

				// GETTING THE SKETCH LINE COUNT
				var lineCounterMax = workerMessage.split("\n").length;

				// EXECUTING ALL THE LINES OF CODE
				while(lineCounter<=lineCounterMax)
					{
					// UPDATING THE LINE CODE COUNTER
					lineCounter = lineCounter + 1;

					// RUNNING A LINE CODE
					try{mySimulator.next()}catch(err){}
					}

				// WAITING 1 MS FOR ANOTHER LOOP
				setTimeout(loop, 1);
				}

			// LOOPING THE LINE CODE RUNNER
			loop();
			}
		}
		catch(err)
		{
		}
	});