/*
 * Copyright JS Foundation and other contributors, https://js.foundation/
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 
 *   * Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *   * Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
var esprima=(()=>{var Ct=Object.defineProperty;var Pt=Object.getOwnPropertyDescriptor;var Xt=Object.getOwnPropertyNames;var Lt=Object.prototype.hasOwnProperty;var bt=(n,e)=>{for(var t in e)Ct(n,t,{get:e[t],enumerable:!0})},Jt=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Xt(e))!Lt.call(n,s)&&s!==t&&Ct(n,s,{get:()=>e[s],enumerable:!(i=Pt(e,s))||i.enumerable});return n};var Mt=n=>Jt(Ct({},"__esModule",{value:!0}),n);var Kt={};bt(Kt,{ArrayExpression:()=>V,ArrayPattern:()=>W,ArrowFunctionExpression:()=>G,AssignmentExpression:()=>Y,AssignmentPattern:()=>v,AsyncFunctionDeclaration:()=>He,AwaitExpression:()=>_,BigIntLiteral:()=>Re,BinaryExpression:()=>B,BlockStatement:()=>M,BreakStatement:()=>$,CallExpression:()=>Q,CatchClause:()=>Z,ChainExpression:()=>U,ClassBody:()=>ee,ClassDeclaration:()=>te,ClassExpression:()=>ie,ConditionalExpression:()=>se,ContinueStatement:()=>re,DebuggerStatement:()=>je,Decorator:()=>ne,Directive:()=>Ve,DoWhileStatement:()=>ae,EmptyStatement:()=>I,ExportAllDeclaration:()=>oe,ExportDefaultDeclaration:()=>b,ExportNamedDeclaration:()=>T,ExportSpecifier:()=>ue,ExpressionStatement:()=>P,ForInStatement:()=>le,ForOfStatement:()=>ce,ForStatement:()=>he,FunctionDeclaration:()=>pe,FunctionExpression:()=>A,Identifier:()=>C,IfStatement:()=>de,ImportAttribute:()=>me,ImportDeclaration:()=>De,ImportDefaultSpecifier:()=>fe,ImportExpression:()=>xe,ImportNamespaceSpecifier:()=>Ee,ImportSpecifier:()=>ye,LabeledStatement:()=>Ce,Literal:()=>F,LogicalExpression:()=>R,MemberExpression:()=>k,MetaProperty:()=>z,MethodDefinition:()=>Se,Module:()=>We,NewExpression:()=>ge,Nodes:()=>Qe,ObjectExpression:()=>Ae,ObjectPattern:()=>Fe,PrivateIdentifier:()=>O,Program:()=>Ge,Property:()=>K,PropertyDefinition:()=>be,RegexLiteral:()=>Ye,RestElement:()=>w,ReturnStatement:()=>ke,Script:()=>_e,SequenceExpression:()=>X,SpreadElement:()=>we,StaticBlock:()=>Ne,Super:()=>ze,SwitchCase:()=>ve,SwitchStatement:()=>Be,Syntax:()=>J,TaggedTemplateExpression:()=>q,TemplateElement:()=>Oe,TemplateLiteral:()=>Ie,ThisExpression:()=>$e,ThrowStatement:()=>Te,TryStatement:()=>Pe,UnaryExpression:()=>Xe,UpdateExpression:()=>H,VariableDeclaration:()=>g,VariableDeclarator:()=>j,Visitor:()=>Et,WhileStatement:()=>Le,WithStatement:()=>Je,YieldExpression:()=>Me,default:()=>Ot,parse:()=>yt,parseModule:()=>Nt,parseScript:()=>vt,tokenize:()=>Bt,version:()=>It});var J=(c=>(c.AssignmentExpression="AssignmentExpression",c.AssignmentPattern="AssignmentPattern",c.ArrayExpression="ArrayExpression",c.ArrayPattern="ArrayPattern",c.ArrowFunctionExpression="ArrowFunctionExpression",c.AwaitExpression="AwaitExpression",c.BlockStatement="BlockStatement",c.BinaryExpression="BinaryExpression",c.BreakStatement="BreakStatement",c.CallExpression="CallExpression",c.CatchClause="CatchClause",c.ChainExpression="ChainExpression",c.ClassBody="ClassBody",c.ClassDeclaration="ClassDeclaration",c.ClassExpression="ClassExpression",c.ConditionalExpression="ConditionalExpression",c.ContinueStatement="ContinueStatement",c.Decorator="Decorator",c.DoWhileStatement="DoWhileStatement",c.DebuggerStatement="DebuggerStatement",c.EmptyStatement="EmptyStatement",c.ExportAllDeclaration="ExportAllDeclaration",c.ExportDefaultDeclaration="ExportDefaultDeclaration",c.ExportNamedDeclaration="ExportNamedDeclaration",c.ExportSpecifier="ExportSpecifier",c.ExpressionStatement="ExpressionStatement",c.ForStatement="ForStatement",c.ForOfStatement="ForOfStatement",c.ForInStatement="ForInStatement",c.FunctionDeclaration="FunctionDeclaration",c.FunctionExpression="FunctionExpression",c.Identifier="Identifier",c.IfStatement="IfStatement",c.ImportAttribute="ImportAttribute",c.ImportExpression="ImportExpression",c.ImportDeclaration="ImportDeclaration",c.ImportDefaultSpecifier="ImportDefaultSpecifier",c.ImportNamespaceSpecifier="ImportNamespaceSpecifier",c.ImportSpecifier="ImportSpecifier",c.Literal="Literal",c.LabeledStatement="LabeledStatement",c.LogicalExpression="LogicalExpression",c.MemberExpression="MemberExpression",c.MetaProperty="MetaProperty",c.MethodDefinition="MethodDefinition",c.NewExpression="NewExpression",c.ObjectExpression="ObjectExpression",c.ObjectPattern="ObjectPattern",c.Program="Program",c.Property="Property",c.PrivateIdentifier="PrivateIdentifier",c.RestElement="RestElement",c.ReturnStatement="ReturnStatement",c.SequenceExpression="SequenceExpression",c.SpreadElement="SpreadElement",c.StaticBlock="StaticBlock",c.Super="Super",c.SwitchCase="SwitchCase",c.SwitchStatement="SwitchStatement",c.TaggedTemplateExpression="TaggedTemplateExpression",c.TemplateElement="TemplateElement",c.TemplateLiteral="TemplateLiteral",c.ThisExpression="ThisExpression",c.ThrowStatement="ThrowStatement",c.TryStatement="TryStatement",c.UnaryExpression="UnaryExpression",c.UpdateExpression="UpdateExpression",c.VariableDeclaration="VariableDeclaration",c.VariableDeclarator="VariableDeclarator",c.WhileStatement="WhileStatement",c.WithStatement="WithStatement",c.YieldExpression="YieldExpression",c))(J||{});var at=class{attach;comments;stack;leading;trailing;constructor(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}insertInnerComments(e,t){if(e.type==="BlockStatement"&&e.body.length===0){let i=[];for(let s=this.leading.length-1;s>=0;--s){let r=this.leading[s];t.end.offset>=r.start&&(i.unshift(r.comment),this.leading.splice(s,1),this.trailing.splice(s,1))}i.length&&(e.innerComments=i)}}findTrailingComments(e){let t=[];if(this.trailing.length>0){for(let s=this.trailing.length-1;s>=0;--s){let r=this.trailing[s];r.start>=e.end.offset&&t.unshift(r.comment)}return this.trailing.length=0,t}let i=this.stack[this.stack.length-1];if(i&&i.node.trailingComments){let s=i.node.trailingComments[0];s&&s.range[0]>=e.end.offset&&(t=i.node.trailingComments,delete i.node.trailingComments)}return t}findLeadingComments(e){let t=[],i;for(;this.stack.length>0;){let s=this.stack[this.stack.length-1];if(s&&s.start>=e.start.offset)i=s.node,this.stack.pop();else break}if(i){let s=i.leadingComments?i.leadingComments.length:0;for(let r=s-1;r>=0;--r){let a=i.leadingComments[r];a.range[1]<=e.start.offset&&(t.unshift(a),i.leadingComments.splice(r,1))}return i.leadingComments&&i.leadingComments.length===0&&delete i.leadingComments,t}for(let s=this.leading.length-1;s>=0;--s){let r=this.leading[s];r.start<=e.start.offset&&(t.unshift(r.comment),this.leading.splice(s,1))}return t}visitNode(e,t){if(e.type==="Program"&&e.body.length>0)return;this.insertInnerComments(e,t);let i=this.findTrailingComments(t),s=this.findLeadingComments(t);s.length>0&&(e.leadingComments=s),i.length>0&&(e.trailingComments=i),this.stack.push({node:e,start:t.start.offset})}visitComment(e,t){let i=e.type[0]==="L"?"Line":"Block",s={type:i,value:e.value};if(e.range&&(s.range=e.range),e.loc&&(s.loc=e.loc),this.comments.push(s),this.attach){let r={comment:{type:i,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(r.comment.loc=e.loc),e.type=i,this.leading.push(r),this.trailing.push(r)}}visit(e,t){e.type==="LineComment"?this.visitComment(e,t):e.type==="BlockComment"?this.visitComment(e,t):this.attach&&this.visitNode(e,t)}};var kt={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D3-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD46\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E\uDC5F\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},h={fromCodePoint(n){return n<65536?String.fromCharCode(n):String.fromCharCode(55296+(n-65536>>10))+String.fromCharCode(56320+(n-65536&1023))},isStringWellFormedUnicode(n){for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);if(t>=55296&&t<=56319){if(e===n.length-1||(e++,t=n.charCodeAt(e),t<56320&&t>57343))return!1}else if(t>=56320&&t<=57343)return!1}return!0},isWhiteSpace(n){return n===32||n===9||n===11||n===12||n===160||n>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(n)>=0},isLineTerminator(n){return n===10||n===13||n===8232||n===8233},isIdentifierStart(n){return n===36||n===95||n>=65&&n<=90||n>=97&&n<=122||n===92||n>=128&&kt.NonAsciiIdentifierStart.test(h.fromCodePoint(n))},isIdentifierPart(n){return n===36||n===95||n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===92||n>=128&&kt.NonAsciiIdentifierPart.test(h.fromCodePoint(n))},isDecimalDigit(n){return n>=48&&n<=57},isDecimalDigitChar(n){return n.length===1&&h.isDecimalDigit(n.charCodeAt(0))},isHexDigit(n){return n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102},isHexDigitChar(n){return n.length===1&&h.isHexDigit(n.charCodeAt(0))},isOctalDigit(n){return n>=48&&n<=55},isOctalDigitChar(n){return n.length===1&&h.isOctalDigit(n.charCodeAt(0))}};var ot=class{type;name;constructor(e){this.type="JSXClosingElement",this.name=e}},ut=class{type;constructor(){this.type="JSXClosingFragment"}},qe=class{type;openingElement;children;closingElement;constructor(e,t,i){this.type="JSXElement",this.openingElement=e,this.children=t,this.closingElement=i}},lt=class{type;constructor(){this.type="JSXEmptyExpression"}},st=class{type;expression;constructor(e){this.type="JSXExpressionContainer",this.expression=e}},ct=class{type;name;constructor(e){this.type="JSXIdentifier",this.name=e}},ht=class{type;object;property;constructor(e,t){this.type="JSXMemberExpression",this.object=e,this.property=t}},pt=class{type;name;value;constructor(e,t){this.type="JSXAttribute",this.name=e,this.value=t}},rt=class{type;namespace;name;constructor(e,t){this.type="JSXNamespacedName",this.namespace=e,this.name=t}},nt=class{type;name;selfClosing;attributes;constructor(e,t,i){this.type="JSXOpeningElement",this.name=e,this.selfClosing=t,this.attributes=i}},dt=class{type;selfClosing;constructor(e){this.type="JSXOpeningFragment",this.selfClosing=e}},mt=class{type;argument;constructor(e){this.type="JSXSpreadAttribute",this.argument=e}},xt=class{type;value;raw;constructor(e,t){this.type="JSXText",this.value=e,this.raw=t}};var Qe={};bt(Qe,{ArrayExpression:()=>V,ArrayPattern:()=>W,ArrowFunctionExpression:()=>G,AssignmentExpression:()=>Y,AssignmentPattern:()=>v,AsyncFunctionDeclaration:()=>He,AwaitExpression:()=>_,BigIntLiteral:()=>Re,BinaryExpression:()=>B,BlockStatement:()=>M,BreakStatement:()=>$,CallExpression:()=>Q,CatchClause:()=>Z,ChainExpression:()=>U,ClassBody:()=>ee,ClassDeclaration:()=>te,ClassExpression:()=>ie,ConditionalExpression:()=>se,ContinueStatement:()=>re,DebuggerStatement:()=>je,Decorator:()=>ne,Directive:()=>Ve,DoWhileStatement:()=>ae,EmptyStatement:()=>I,ExportAllDeclaration:()=>oe,ExportDefaultDeclaration:()=>b,ExportNamedDeclaration:()=>T,ExportSpecifier:()=>ue,ExpressionStatement:()=>P,ForInStatement:()=>le,ForOfStatement:()=>ce,ForStatement:()=>he,FunctionDeclaration:()=>pe,FunctionExpression:()=>A,Identifier:()=>C,IfStatement:()=>de,ImportAttribute:()=>me,ImportDeclaration:()=>De,ImportDefaultSpecifier:()=>fe,ImportExpression:()=>xe,ImportNamespaceSpecifier:()=>Ee,ImportSpecifier:()=>ye,LabeledStatement:()=>Ce,Literal:()=>F,LogicalExpression:()=>R,MemberExpression:()=>k,MetaProperty:()=>z,MethodDefinition:()=>Se,Module:()=>We,NewExpression:()=>ge,ObjectExpression:()=>Ae,ObjectPattern:()=>Fe,PrivateIdentifier:()=>O,Program:()=>Ge,Property:()=>K,PropertyDefinition:()=>be,RegexLiteral:()=>Ye,RestElement:()=>w,ReturnStatement:()=>ke,Script:()=>_e,SequenceExpression:()=>X,SpreadElement:()=>we,StaticBlock:()=>Ne,Super:()=>ze,SwitchCase:()=>ve,SwitchStatement:()=>Be,TaggedTemplateExpression:()=>q,TemplateElement:()=>Oe,TemplateLiteral:()=>Ie,ThisExpression:()=>$e,ThrowStatement:()=>Te,TryStatement:()=>Pe,UnaryExpression:()=>Xe,UpdateExpression:()=>H,VariableDeclaration:()=>g,VariableDeclarator:()=>j,WhileStatement:()=>Le,WithStatement:()=>Je,YieldExpression:()=>Me});var V=class{type;elements;constructor(e){this.type="ArrayExpression",this.elements=e}},W=class{type;elements;constructor(e){this.type="ArrayPattern",this.elements=e}},G=class{type;id;params;body;generator;expression;async;constructor(e,t,i,s){this.type="ArrowFunctionExpression",this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=s}},Y=class{type;operator;left;right;constructor(e,t,i){this.type="AssignmentExpression",this.operator=e,this.left=t,this.right=i}},v=class{type;left;right;constructor(e,t){this.type="AssignmentPattern",this.left=e,this.right=t}},He=class{type;id;params;body;generator;expression;async;constructor(e,t,i,s){this.type="FunctionDeclaration",this.id=e,this.params=t,this.body=i,this.generator=s,this.expression=!1,this.async=!0}},_=class{type;argument;constructor(e){this.type="AwaitExpression",this.argument=e}},Re=class{type;value;raw;bigint;constructor(e,t,i){this.type="Literal",this.value=e,this.raw=t,this.bigint=i}},B=class{type;operator;left;right;constructor(e,t,i){this.type="BinaryExpression",this.operator=e,this.left=t,this.right=i}},M=class{type;body;constructor(e){this.type="BlockStatement",this.body=e}},$=class{type;label;constructor(e){this.type="BreakStatement",this.label=e}},Q=class{type;callee;arguments;optional;constructor(e,t,i){this.type="CallExpression",this.callee=e,this.arguments=t,this.optional=i}},Z=class{type;param;body;constructor(e,t){this.type="CatchClause",this.param=e,this.body=t}},U=class{type;expression;constructor(e){this.type="ChainExpression",this.expression=e}},ee=class{type;body;constructor(e){this.type="ClassBody",this.body=e}},te=class{type;id;superClass;body;decorators;constructor(e,t,i,s){this.type="ClassDeclaration",this.id=e,this.superClass=t,this.body=i,this.decorators=s}},ie=class{type;id;superClass;body;decorators;constructor(e,t,i,s){this.type="ClassExpression",this.id=e,this.superClass=t,this.body=i,this.decorators=s}},se=class{type;test;consequent;alternate;constructor(e,t,i){this.type="ConditionalExpression",this.test=e,this.consequent=t,this.alternate=i}},re=class{type;label;constructor(e){this.type="ContinueStatement",this.label=e}},je=class{type;constructor(){this.type="DebuggerStatement"}},ne=class{type;expression;constructor(e){this.type="Decorator",this.expression=e}},Ve=class{type;expression;directive;constructor(e,t){this.type="ExpressionStatement",this.expression=e,this.directive=t}},ae=class{type;body;test;constructor(e,t){this.type="DoWhileStatement",this.body=e,this.test=t}},I=class{type;constructor(){this.type="EmptyStatement"}},oe=class{type;source;exported;assertions;constructor(e,t,i){this.type="ExportAllDeclaration",this.source=e,this.exported=t,this.assertions=i}},b=class{type;declaration;constructor(e){this.type="ExportDefaultDeclaration",this.declaration=e}},T=class{type;declaration;specifiers;source;assertions;constructor(e,t,i,s){this.type="ExportNamedDeclaration",this.declaration=e,this.specifiers=t,this.source=i,this.assertions=s}},ue=class{type;exported;local;constructor(e,t){this.type="ExportSpecifier",this.exported=t,this.local=e}},P=class{type;expression;constructor(e){this.type="ExpressionStatement",this.expression=e}},le=class{type;left;right;body;each;constructor(e,t,i){this.type="ForInStatement",this.left=e,this.right=t,this.body=i,this.each=!1}},ce=class{type;await;left;right;body;constructor(e,t,i,s){this.type="ForOfStatement",this.await=s,this.left=e,this.right=t,this.body=i}},he=class{type;init;test;update;body;constructor(e,t,i,s){this.type="ForStatement",this.init=e,this.test=t,this.update=i,this.body=s}},pe=class{type;id;params;body;generator;expression;async;constructor(e,t,i,s){this.type="FunctionDeclaration",this.id=e,this.params=t,this.body=i,this.generator=s,this.expression=!1,this.async=!1}},A=class{type;id;params;body;generator;expression;async;constructor(e,t,i,s,r){this.type="FunctionExpression",this.id=e,this.params=t,this.body=i,this.generator=s,this.expression=!1,this.async=r}},C=class{type;name;constructor(e){this.type="Identifier",this.name=e}},de=class{type;test;consequent;alternate;constructor(e,t,i){this.type="IfStatement",this.test=e,this.consequent=t,this.alternate=i}},me=class{type;key;value;constructor(e,t){this.type="ImportAttribute",this.key=e,this.value=t}},xe=class{type;source;attributes;constructor(e,t){this.type="ImportExpression",this.source=e,this.attributes=t}},De=class{type;specifiers;source;assertions;constructor(e,t,i){this.type="ImportDeclaration",this.specifiers=e,this.source=t,this.assertions=i}},fe=class{type;local;constructor(e){this.type="ImportDefaultSpecifier",this.local=e}},Ee=class{type;local;constructor(e){this.type="ImportNamespaceSpecifier",this.local=e}},ye=class{type;local;imported;constructor(e,t){this.type="ImportSpecifier",this.local=e,this.imported=t}},Ce=class{type;label;body;constructor(e,t){this.type="LabeledStatement",this.label=e,this.body=t}},F=class{type;value;raw;constructor(e,t){this.type="Literal",this.value=e,this.raw=t}},R=class{type;operator;left;right;constructor(e,t,i){this.type="LogicalExpression",this.operator=e,this.left=t,this.right=i}},k=class{type;computed;object;property;optional;constructor(e,t,i,s){this.type="MemberExpression",this.computed=e,this.object=t,this.property=i,this.optional=s}},z=class{type;meta;property;constructor(e,t){this.type="MetaProperty",this.meta=e,this.property=t}},Se=class{type;key;computed;value;kind;static;decorators;constructor(e,t,i,s,r,a){this.type="MethodDefinition",this.key=e,this.computed=t,this.value=i,this.kind=s,this.static=r,this.decorators=a}},We=class{type;body;sourceType;constructor(e){this.type="Program",this.body=e,this.sourceType="module"}},ge=class{type;callee;arguments;constructor(e,t){this.type="NewExpression",this.callee=e,this.arguments=t}},Ae=class{type;properties;constructor(e){this.type="ObjectExpression",this.properties=e}},Fe=class{type;properties;constructor(e){this.type="ObjectPattern",this.properties=e}},O=class{type;name;constructor(e){this.type="PrivateIdentifier",this.name=e}},Ge=class{type;body;sourceType;constructor(e,t){this.type="Program",this.sourceType=e,this.body=t}},K=class{type;key;computed;value;kind;method;shorthand;constructor(e,t,i,s,r,a){this.type="Property",this.key=t,this.computed=i,this.value=s,this.kind=e,this.method=r,this.shorthand=a}},be=class{type;key;computed;value;static;decorators;constructor(e,t,i,s,r){this.type="Property",this.key=e,this.computed=t,this.value=i,this.static=s,this.decorators=r}},Ye=class{type;value;raw;regex;constructor(e,t,i,s){this.type="Literal",this.value=e,this.raw=t,this.regex={pattern:i,flags:s}}},w=class{type;argument;constructor(e){this.type="RestElement",this.argument=e}},ke=class{type;argument;constructor(e){this.type="ReturnStatement",this.argument=e}},_e=class{type;body;sourceType;constructor(e){this.type="Program",this.body=e,this.sourceType="script"}},X=class{type;expressions;constructor(e){this.type="SequenceExpression",this.expressions=e}},we=class{type;argument;constructor(e){this.type="SpreadElement",this.argument=e}},Ne=class{type;body;constructor(e){this.type="StaticBlock",this.body=e}},ze=class{type;constructor(){this.type="Super"}},ve=class{type;test;consequent;constructor(e,t){this.type="SwitchCase",this.test=e,this.consequent=t}},Be=class{type;discriminant;cases;constructor(e,t){this.type="SwitchStatement",this.discriminant=e,this.cases=t}},q=class{type;tag;quasi;constructor(e,t){this.type="TaggedTemplateExpression",this.tag=e,this.quasi=t}},Oe=class{type;value;tail;constructor(e,t){this.type="TemplateElement",this.value=e,this.tail=t}},Ie=class{type;quasis;expressions;constructor(e,t){this.type="TemplateLiteral",this.quasis=e,this.expressions=t}},$e=class{type;constructor(){this.type="ThisExpression"}},Te=class{type;argument;constructor(e){this.type="ThrowStatement",this.argument=e}},Pe=class{type;block;handler;finalizer;constructor(e,t,i){this.type="TryStatement",this.block=e,this.handler=t,this.finalizer=i}},Xe=class{type;operator;argument;prefix;constructor(e,t){this.type="UnaryExpression",this.operator=e,this.argument=t,this.prefix=!0}},H=class{type;operator;argument;prefix;constructor(e,t,i){this.type="UpdateExpression",this.operator=e,this.argument=t,this.prefix=i}},g=class{type;declarations;kind;constructor(e,t){this.type="VariableDeclaration",this.declarations=e,this.kind=t}},j=class{type;id;init;constructor(e,t){this.type="VariableDeclarator",this.id=e,this.init=t}},Le=class{type;test;body;constructor(e,t){this.type="WhileStatement",this.test=e,this.body=t}},Je=class{type;object;body;constructor(e,t){this.type="WithStatement",this.object=e,this.body=t}},Me=class{type;argument;delegate;constructor(e,t){this.type="YieldExpression",this.argument=e,this.delegate=t}};function N(n,e){if(!n)throw new Error("ASSERT: "+e)}var Ze=class{errors;tolerant;constructor(){this.errors=[],this.tolerant=!1}recordError(e){this.errors.push(e)}tolerate(e){if(this.tolerant)this.recordError(e);else throw e}constructError(e,t){let i=new Error(e);try{throw i}catch(s){Object.create&&Object.defineProperty&&(i=Object.create(s),Object.defineProperty(i,"column",{value:t}))}return i}createError(e,t,i,s){let r="Line "+t+": "+s,a=this.constructError(r,i);return a.index=e,a.lineNumber=t,a.description=s,a}throwError(e,t,i,s){throw this.createError(e,t,i,s)}tolerateError(e,t,i,s){let r=this.createError(e,t,i,s);if(this.tolerant)this.recordError(r);else throw r}};var o={AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",BadImportCallArity:"Unexpected token",BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",CannotUseImportMetaOutsideAModule:"Cannot use 'import.meta' outside a module",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorIsPrivate:"Class constructor may not be a private method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DefaultRestProperty:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateParameter:"Duplicate parameter name not allowed in this context",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",InvalidTaggedTemplateOnOptionalChain:"Invalid tagged template on optional chain",InvalidUnicodeEscapeSequence:"Invalid Unicode escape sequence",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoAsAndFromEscapeSequences:"The `as` and `from` contextual keywords must not contain Unicode escape sequences.",NoCatchOrFinally:"Missing catch or finally after try",NoSemicolonAfterDecorator:"Decorators must not be followed by a semicolon.",NumericSeperatorOneUnderscore:"Numeric separator must be exactly one underscore",NumericSeperatorNotAllowedHere:"Numeric separator is not allowed here",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",PropertyAfterRestProperty:"Unexpected token",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",TemplateEscape89:"\\8 and \\9 are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedSuper:"'super' keyword unexpected here",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"};var E={};E[1]="Boolean";E[2]="<end>";E[3]="Identifier";E[4]="Keyword";E[5]="Null";E[6]="Numeric";E[7]="Punctuator";E[8]="String";E[9]="RegularExpression";E[10]="Template";function wt(n){return"0123456789abcdef".indexOf(n.toLowerCase())}function St(n){return"01234567".indexOf(n)}var et=class{source;errorHandler;trackComment;isModule;index;lineNumber;lineStart;curlyStack;length;constructor(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}saveState(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart,curlyStack:this.curlyStack.slice()}}restoreState(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart,this.curlyStack=e.curlyStack}eof(){return this.index>=this.length}throwUnexpectedToken(e=o.UnexpectedTokenIllegal){return this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)}tolerateUnexpectedToken(e=o.UnexpectedTokenIllegal){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)}skipSingleLineComment(e){let t=[],i,s;for(this.trackComment&&(t=[],i=this.index-e,s={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){let r=this.source.charCodeAt(this.index);if(++this.index,h.isLineTerminator(r)){if(this.trackComment){s.end={line:this.lineNumber,column:this.index-this.lineStart-1};let a={multiLine:!1,slice:[i+e,this.index-1],range:[i,this.index-1],loc:s};t.push(a)}return r===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){s.end={line:this.lineNumber,column:this.index-this.lineStart};let r={multiLine:!1,slice:[i+e,this.index],range:[i,this.index],loc:s};t.push(r)}return t}skipMultiLineComment(){let e=[],t,i;for(this.trackComment&&(e=[],t=this.index-2,i={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){let s=this.source.charCodeAt(this.index);if(h.isLineTerminator(s))s===13&&this.source.charCodeAt(this.index+1)===10&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(s===42){if(this.source.charCodeAt(this.index+1)===47){if(this.index+=2,this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart};let r={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:i};e.push(r)}return e}++this.index}else++this.index}if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart};let s={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:i};e.push(s)}return this.tolerateUnexpectedToken(),e}scanComments(){let e;this.trackComment&&(e=[]);let t=this.index===0;for(;!this.eof();){let i=this.source.charCodeAt(this.index);if(h.isWhiteSpace(i))++this.index;else if(h.isLineTerminator(i))++this.index,i===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(i===47)if(i=this.source.charCodeAt(this.index+1),i===47){this.index+=2;let s=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(s)),t=!0}else if(i===42){this.index+=2;let s=this.skipMultiLineComment();this.trackComment&&(e=e.concat(s))}else break;else if(t&&i===45)if(this.source.charCodeAt(this.index+1)===45&&this.source.charCodeAt(this.index+2)===62){this.index+=3;let s=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(s))}else break;else if(i===60&&!this.isModule)if(this.source.slice(this.index+1,this.index+4)==="!--"){this.index+=4;let s=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(s))}else break;else break}return e}isFutureReservedWord(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}}isStrictModeReservedWord(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}isRestrictedWord(e){return e==="eval"||e==="arguments"}isKeyword(e){switch(e.length){case 2:return e==="if"||e==="in"||e==="do";case 3:return e==="var"||e==="for"||e==="new"||e==="try"||e==="let";case 4:return e==="this"||e==="else"||e==="case"||e==="void"||e==="with"||e==="enum";case 5:return e==="while"||e==="break"||e==="catch"||e==="throw"||e==="const"||e==="yield"||e==="class"||e==="super";case 6:return e==="return"||e==="typeof"||e==="delete"||e==="switch"||e==="export"||e==="import";case 7:return e==="default"||e==="finally"||e==="extends";case 8:return e==="function"||e==="continue"||e==="debugger";case 10:return e==="instanceof";default:return!1}}codePointAt(e){let t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){let i=this.source.charCodeAt(e+1);i>=56320&&i<=57343&&(t=(t-55296)*1024+i-56320+65536)}return t}scanHexEscape(e){let t=e==="u"?4:2,i=0;for(let s=0;s<t;++s)if(!this.eof()&&h.isHexDigit(this.source.charCodeAt(this.index)))i=i*16+wt(this.source[this.index++]);else return null;return String.fromCharCode(i)}tryToScanUnicodeCodePointEscape(){let e=this.source[this.index],t=0;if(e==="}")return null;for(;!this.eof()&&(e=this.source[this.index++],!!h.isHexDigit(e.charCodeAt(0)));)t=t*16+wt(e);return t>1114111||e!=="}"?null:h.fromCodePoint(t)}scanUnicodeCodePointEscape(){let e=this.tryToScanUnicodeCodePointEscape();return e===null?this.throwUnexpectedToken():e}getIdentifier(){let e=this.index++;for(;!this.eof();){let t=this.source.charCodeAt(this.index);if(t===92)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(h.isIdentifierPart(t))++this.index;else break}return this.source.slice(e,this.index)}getComplexIdentifier(){let e=this.codePointAt(this.index),t=h.fromCodePoint(e);this.index+=t.length;let i;for(e===92&&(this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,i=this.scanUnicodeCodePointEscape()):(i=this.scanHexEscape("u"),(i===null||i==="\\"||!h.isIdentifierStart(i.charCodeAt(0)))&&this.throwUnexpectedToken()),t=i);!this.eof()&&(e=this.codePointAt(this.index),!!h.isIdentifierPart(e));)i=h.fromCodePoint(e),t+=i,this.index+=i.length,e===92&&(t=t.substr(0,t.length-1),this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,i=this.scanUnicodeCodePointEscape()):(i=this.scanHexEscape("u"),(i===null||i==="\\"||!h.isIdentifierPart(i.charCodeAt(0)))&&this.throwUnexpectedToken()),t+=i);return t}octalToDecimal(e){let t=e!=="0",i=St(e);return!this.eof()&&h.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,i=i*8+St(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&h.isOctalDigit(this.source.charCodeAt(this.index))&&(i=i*8+St(this.source[this.index++]))),{code:i,octal:t}}scanIdentifier(){let e,t=this.index,i=this.source.charCodeAt(t)===92,s=i?this.getComplexIdentifier():this.getIdentifier();if(s.length===1?e=3:this.isKeyword(s)?e=4:s==="null"?e=5:s==="true"||s==="false"?e=1:e=3,e!==3&&t+s.length!==this.index){let r=this.index;this.index=t,this.tolerateUnexpectedToken(o.InvalidEscapedReservedWord),this.index=r}return{type:e,value:s,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index,escaped:i}}scanPunctuator(){let e=this.index,t=this.source[this.index];switch(t){case"(":case"{":t==="{"&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,this.source[this.index]==="."&&this.source[this.index+1]==="."&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case"?":++this.index,this.source[this.index]==="?"&&(++this.index,this.source[this.index]==="="?(++this.index,t="??="):t="??"),this.source[this.index]==="."&&!/^\d$/.test(this.source[this.index+1])&&(++this.index,t="?.");break;case"#":case")":case";":case",":case"[":case"]":case":":case"~":case"@":++this.index;break;default:t=this.source.substr(this.index,4),t===">>>="?this.index+=4:(t=t.substr(0,3),t==="==="||t==="!=="||t===">>>"||t==="<<="||t===">>="||t==="**="||t==="&&="||t==="||="?this.index+=3:(t=t.substr(0,2),t==="&&"||t==="||"||t==="=="||t==="!="||t==="+="||t==="-="||t==="*="||t==="/="||t==="++"||t==="--"||t==="<<"||t===">>"||t==="&="||t==="|="||t==="^="||t==="%="||t==="<="||t===">="||t==="=>"||t==="**"?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)))}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanHexLiteral(e){let t=this.scanLiteralPart(h.isHexDigitChar);return t.length===0&&this.throwUnexpectedToken(),this.source[this.index]==="n"?(this.index++,{type:6,value:BigInt("0x"+t),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}):(h.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index})}scanBinaryLiteral(e){let t,i=this.scanLiteralPart(s=>s==="0"||s==="1");return i.length===0&&this.throwUnexpectedToken(),this.source[this.index]==="n"?(this.index++,{type:6,value:BigInt("0b"+i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}):(this.eof()||(t=this.source.charCodeAt(this.index),(h.isIdentifierStart(t)||h.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(i,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index})}scanOctalLiteral(e,t){let i="",s=!1;return h.isOctalDigit(e.charCodeAt(0))?(s=!0,i="0"+this.source[this.index++]):++this.index,i+=this.scanLiteralPart(h.isOctalDigitChar),!s&&i.length===0&&this.throwUnexpectedToken(),this.source[this.index]==="n"?(this.index++,{type:6,value:BigInt("0o"+i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}):((h.isIdentifierStart(this.source.charCodeAt(this.index))||h.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(i,8),octal:s,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index})}isImplicitOctalLiteral(){for(let e=this.index+1;e<this.length;++e){let t=this.source[e];if(t==="8"||t==="9"||t==="n")return!1;if(!h.isOctalDigit(t.charCodeAt(0)))return!0}return!0}scanLiteralPart(e){let t="";for(this.source[this.index]==="_"&&this.throwUnexpectedToken(o.NumericSeperatorNotAllowedHere);this.source[this.index]&&(e(this.source[this.index])||this.source[this.index]==="_");)this.source[this.index]!=="_"&&(t+=this.source[this.index]),this.index++,this.source[this.index-1]==="_"&&this.source[this.index]==="_"&&this.throwUnexpectedToken(o.NumericSeperatorOneUnderscore);return this.source[this.index-1]==="_"&&this.throwUnexpectedToken(o.NumericSeperatorNotAllowedHere),t}scanNumericLiteral(){let e=this.index,t=this.source[e];N(h.isDecimalDigit(t.charCodeAt(0))||t===".","Numeric literal must start with a decimal digit or a decimal point");let i="";if(t!=="."){if(i=this.source[this.index++],t=this.source[this.index],i==="0"){if(t==="x"||t==="X")return++this.index,this.scanHexLiteral(e);if(t==="b"||t==="B")return++this.index,this.scanBinaryLiteral(e);if(t==="o"||t==="O")return this.scanOctalLiteral(t,e);if(t&&h.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}this.index--,i=this.scanLiteralPart(h.isDecimalDigitChar),t=this.source[this.index]}if(t==="."&&(i+=this.source[this.index++],i+=this.scanLiteralPart(h.isDecimalDigitChar),t=this.source[this.index]),t==="e"||t==="E")i+=this.source[this.index++],t=this.source[this.index],(t==="+"||t==="-")&&(i+=this.source[this.index++]),h.isDecimalDigit(this.source.charCodeAt(this.index))?i+=this.scanLiteralPart(h.isDecimalDigitChar):this.throwUnexpectedToken();else if(t==="n")return i.length>1&&i[0]==="0"&&this.throwUnexpectedToken(),this.index++,{type:6,value:BigInt(i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index};return h.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanStringLiteral(){let e=this.index,t=this.source[e];N(t==="'"||t==='"',"String literal must starts with a quote"),++this.index;let i=!1,s="";for(;!this.eof();){let r=this.source[this.index++];if(r===t){t="";break}else if(r==="\\")if(r=this.source[this.index++],!r||!h.isLineTerminator(r.charCodeAt(0)))switch(r){case"u":if(this.source[this.index]==="{")++this.index,s+=this.scanUnicodeCodePointEscape();else{let u=this.scanHexEscape(r);u===null&&this.throwUnexpectedToken(),s+=u}break;case"x":let a=this.scanHexEscape(r);a===null&&this.throwUnexpectedToken(o.InvalidHexEscapeSequence),s+=a;break;case"n":s+=`
`;break;case"r":s+="\r";break;case"t":s+="	";break;case"b":s+="\b";break;case"f":s+="\f";break;case"v":s+="\v";break;case"8":case"9":s+=r,this.tolerateUnexpectedToken();break;default:if(r&&h.isOctalDigit(r.charCodeAt(0))){let u=this.octalToDecimal(r);i=u.octal||i,s+=String.fromCharCode(u.code)}else s+=r;break}else++this.lineNumber,r==="\r"&&this.source[this.index]===`
`&&++this.index,this.lineStart=this.index;else{if(h.isLineTerminator(r.charCodeAt(0)))break;s+=r}}return t!==""&&(this.index=e,this.throwUnexpectedToken()),{type:8,value:s,octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanTemplate(){let e="",t=!1,i=this.index,s=this.source[i]==="`",r=!1,a=null,u=2;for(++this.index;!this.eof();){let l=this.source[this.index++];if(l==="`"){u=1,r=!0,t=!0;break}else if(l==="$"){if(this.source[this.index]==="{"){this.curlyStack.push("${"),++this.index,t=!0;break}e+=l}else{if(a!==null)continue;if(l==="\\")if(l=this.source[this.index++],h.isLineTerminator(l.charCodeAt(0)))++this.lineNumber,l==="\r"&&this.source[this.index]===`
`&&++this.index,this.lineStart=this.index;else switch(l){case"n":e+=`
`;break;case"r":e+="\r";break;case"t":e+="	";break;case"u":if(this.source[this.index]==="{"){++this.index;let p=this.tryToScanUnicodeCodePointEscape();p===null?a="u":e+=p}else{let p=this.scanHexEscape(l);p===null?a="u":e+=p}break;case"x":let m=this.scanHexEscape(l);m===null?a="x":e+=m;break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:l==="0"?h.isDecimalDigit(this.source.charCodeAt(this.index))?a="0":e+="\0":h.isDecimalDigitChar(l)?a=l:e+=l;break}else h.isLineTerminator(l.charCodeAt(0))?(++this.lineNumber,l==="\r"&&this.source[this.index]===`
`&&++this.index,this.lineStart=this.index,e+=`
`):e+=l}}return t||this.throwUnexpectedToken(),s||this.curlyStack.pop(),{type:10,value:this.source.slice(i+1,this.index-u),cooked:a===null?e:null,head:s,tail:r,notEscapeSequenceHead:a,lineNumber:this.lineNumber,lineStart:this.lineStart,start:i,end:this.index}}testRegExp(e,t){let i="\uFFFF",s=e;t.indexOf("u")>=0&&(s=s.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(r,a,u)=>{let l=parseInt(a||u,16);return l>1114111&&this.throwUnexpectedToken(o.InvalidRegExp),l<=65535?String.fromCharCode(l):i}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,i));try{RegExp(s)}catch{this.throwUnexpectedToken(o.InvalidRegExp)}try{return new RegExp(e,t)}catch{return null}}scanRegExpBody(){let e=this.source[this.index];N(e==="/","Regular expression literal must start with a slash");let t=this.source[this.index++],i=!1,s=!1;for(;!this.eof();)if(e=this.source[this.index++],t+=e,e==="\\")e=this.source[this.index++],h.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.UnterminatedRegExp),t+=e;else if(h.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.UnterminatedRegExp);else if(i)e==="]"&&(i=!1);else if(e==="/"){s=!0;break}else e==="["&&(i=!0);return s||this.throwUnexpectedToken(o.UnterminatedRegExp),t.substr(1,t.length-2)}scanRegExpFlags(){let e="",t="";for(;!this.eof();){let i=this.source[this.index];if(!h.isIdentifierPart(i.charCodeAt(0)))break;if(++this.index,i==="\\"&&!this.eof())if(i=this.source[this.index],i==="u"){++this.index;let s=this.index,r=this.scanHexEscape("u");if(r!==null)for(t+=r,e+="\\u";s<this.index;++s)e+=this.source[s];else this.index=s,t+="u",e+="\\u";this.tolerateUnexpectedToken()}else e+="\\",this.tolerateUnexpectedToken();else t+=i,e+=i}return t}scanRegExp(){let e=this.index,t=this.scanRegExpBody(),i=this.scanRegExpFlags(),s=this.testRegExp(t,i);return{type:9,value:"",pattern:t,flags:i,regex:s,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}lex(){if(this.eof())return{type:2,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};let e=this.source.charCodeAt(this.index);return h.isIdentifierStart(e)?this.scanIdentifier():e===40||e===41||e===59?this.scanPunctuator():e===39||e===34?this.scanStringLiteral():e===46?h.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():h.isDecimalDigit(e)?this.scanNumericLiteral():e===96||e===125&&this.curlyStack[this.curlyStack.length-1]==="${"?this.scanTemplate():e>=55296&&e<57343&&h.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()}};var L="ArrowParameterPlaceHolder",tt=class{config;delegate;errorHandler;scanner;operatorPrecedence;lookahead;hasLineTerminator;context;tokens;startMarker;lastMarker;constructor(e,t={},i){this.config={range:typeof t.range=="boolean"&&t.range,loc:typeof t.loc=="boolean"&&t.loc,source:null,tokens:typeof t.tokens=="boolean"&&t.tokens,comment:typeof t.comment=="boolean"&&t.comment,tolerant:typeof t.tolerant=="boolean"&&t.tolerant},this.config.loc&&t.source&&t.source!==null&&(this.config.source=String(t.source)),this.delegate=i,this.errorHandler=new Ze,this.errorHandler.tolerant=this.config.tolerant==!0,this.scanner=new et(e,this.errorHandler),this.scanner.trackComment=this.config.comment==!0,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"??":5,"||":6,"&&":7,"|":8,"^":9,"&":10,"==":11,"!=":11,"===":11,"!==":11,"<":12,">":12,"<=":12,">=":12,"<<":13,">>":13,">>>":13,"+":14,"-":14,"*":15,"/":15,"%":15},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,isAsync:!1,allowIn:!0,allowStrictDirective:!0,allowSuper:!1,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inConstructor:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,inClassConstructor:!1,labelSet:{},strict:!1,decorators:null},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}throwError(e,...t){let i=t.slice(),s=e.replace(/%(\d)/g,(l,m)=>(N(m<i.length,"Message reference must be in range"),i[m])),r=this.lastMarker.index,a=this.lastMarker.line,u=this.lastMarker.column+1;throw this.errorHandler.createError(r,a,u,s)}tolerateError(e,...t){let i=t.slice(),s=e.replace(/%(\d)/g,(l,m)=>(N(m<i.length,"Message reference must be in range"),i[m])),r=this.lastMarker.index,a=this.scanner.lineNumber,u=this.lastMarker.column+1;this.errorHandler.tolerateError(r,a,u,s)}unexpectedTokenError(e,t){let i=t||o.UnexpectedToken,s;if(e?(t||(i=e.type===2?o.UnexpectedEOS:e.type===3?o.UnexpectedIdentifier:e.type===6?o.UnexpectedNumber:e.type===8?o.UnexpectedString:e.type===10?o.UnexpectedTemplate:o.UnexpectedToken,e.type===4&&(this.scanner.isFutureReservedWord(e.value)?i=o.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(i=o.StrictReservedWord))),s=e.value):s="ILLEGAL",i=i.replace("%0",s),e&&typeof e.lineNumber=="number"){let r=e.start,a=e.lineNumber,u=this.lastMarker.index-this.lastMarker.column,l=e.start-u+1;return this.errorHandler.createError(r,a,l,i)}else{let r=this.lastMarker.index,a=this.lastMarker.line,u=this.lastMarker.column+1;return this.errorHandler.createError(r,a,u,i)}}throwUnexpectedToken(e,t){throw this.unexpectedTokenError(e,t)}tolerateUnexpectedToken(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))}tolerateInvalidLoopStatement(){(this.matchKeyword("class")||this.matchKeyword("function"))&&this.tolerateError(o.UnexpectedToken,this.lookahead)}collectComments(){if(!this.config.comment)this.scanner.scanComments();else{let e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(let t=0;t<e.length;++t){let i=e[t],s={type:i.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(i.slice[0],i.slice[1])};this.config.range&&(s.range=i.range),this.config.loc&&(s.loc=i.loc);let r={start:{line:i.loc.start.line,column:i.loc.start.column,offset:i.range[0]},end:{line:i.loc.end.line,column:i.loc.end.column,offset:i.range[1]}};this.delegate(s,r)}}}getTokenRaw(e){return this.scanner.source.slice(e.start,e.end)}convertToken(e){let t={type:E[e.type],value:this.getTokenRaw(e)};if(this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),e.type===9){let i=e.pattern,s=e.flags;t.regex={pattern:i,flags:s}}return t}nextToken(){let e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.collectComments(),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart);let t=this.scanner.lex();return this.hasLineTerminator=e.lineNumber!==t.lineNumber,t&&this.context.strict&&t.type===3&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=4),this.lookahead=t,this.config.tokens&&t.type!==2&&this.tokens.push(this.convertToken(t)),e}nextRegexToken(){this.collectComments();let e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e}createNode(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}}startNode(e,t=0){let i=e.start-e.lineStart,s=e.lineNumber;return i<0&&(i+=t,s--),{index:e.start,line:s,column:i}}finalize(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.line,column:this.lastMarker.column}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){let i={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.line,column:this.lastMarker.column,offset:this.lastMarker.index}};this.delegate(t,i)}return t}expect(e){let t=this.nextToken();(t.type!==7||t.value!==e)&&this.throwUnexpectedToken(t)}expectCommaSeparator(){if(this.config.tolerant){let e=this.lookahead;e.type===7&&e.value===","?this.nextToken():e.type===7&&e.value===";"?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,o.UnexpectedToken)}else this.expect(",")}expectKeyword(e){let t=this.nextToken();(t.type!==4||t.value!==e)&&this.throwUnexpectedToken(t)}match(e){return this.lookahead.type===7&&this.lookahead.value===e}matchKeyword(e){return this.lookahead.type===4&&this.lookahead.value===e}matchContextualKeyword(e){return this.lookahead.type===3&&this.lookahead.value===e}matchAssign(){if(this.lookahead.type!==7)return!1;let e=this.lookahead.value;return e==="="||e==="*="||e==="**="||e==="/="||e==="%="||e==="+="||e==="-="||e==="<<="||e===">>="||e===">>>="||e==="&="||e==="^="||e==="|="||e==="&&="||e==="||="||e==="??="}isolateCoverGrammar(e){let t=this.context.isBindingElement,i=this.context.isAssignmentTarget,s=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;let r=e.call(this);return this.context.firstCoverInitializedNameError!==null&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=i,this.context.firstCoverInitializedNameError=s,r}inheritCoverGrammar(e){let t=this.context.isBindingElement,i=this.context.isAssignmentTarget,s=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;let r=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&i,this.context.firstCoverInitializedNameError=s||this.context.firstCoverInitializedNameError,r}consumeSemicolon(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type!==2&&!this.match("}")&&this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)}parsePrimaryExpression(){let e=this.createNode(),t,i,s;switch(this.lookahead.type){case 3:(this.context.isModule||this.context.isAsync)&&this.lookahead.value==="await"&&this.tolerateUnexpectedToken(this.lookahead),t=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(e,new C(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,i=this.nextToken(),s=this.getTokenRaw(i),typeof i.value=="bigint"?t=this.finalize(e,new Re(i.value,s,i.value.toString())):t=this.finalize(e,new F(i.value,s));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,i=this.nextToken(),s=this.getTokenRaw(i),t=this.finalize(e,new F(i.value==="true",s));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,i=this.nextToken(),s=this.getTokenRaw(i),t=this.finalize(e,new F(null,s));break;case 10:t=this.parseTemplateLiteral({isTagged:!1});break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,t=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":t=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":t=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,i=this.nextRegexToken(),s=this.getTokenRaw(i),t=this.finalize(e,new Ye(i.regex,s,i.pattern,i.flags));break;case"#":this.nextToken(),t=this.finalize(e,new O(this.nextToken().value));break;case"@":let r=this.parseDecorators();this.context.decorators=r;let a=this.parsePrimaryExpression();this.context.decorators=null,t=this.finalize(e,new O(this.nextToken().value));break;default:t=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?t=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?t=this.finalize(e,new C(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?t=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),t=this.finalize(e,new $e)):this.matchKeyword("class")?t=this.parseClassExpression():this.matchKeyword("new")?t=this.parseNewExpression():this.matchImportCall()?t=this.parseImportCall():this.matchImportMeta()?(this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.CannotUseImportMetaOutsideAModule),t=this.parseImportMeta()):t=this.throwUnexpectedToken(this.nextToken()));break;default:t=this.throwUnexpectedToken(this.nextToken())}return t}parseSpreadElement(){let e=this.createNode();this.expect("...");let t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new we(t))}parseArrayInitializer(){let e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){let i=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(i)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new V(t))}parsePropertyMethod(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;let t=this.context.strict,i=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;let s=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=i,s}parsePropertyMethodFunction(e){let t=this.createNode(),i=this.context.allowYield;this.context.allowYield=!0;let s=this.parseFormalParameters(),r=this.parsePropertyMethod(s);return this.context.allowYield=i,this.finalize(t,new A(null,s.params,r,e,!1))}parsePropertyMethodAsyncFunction(e){let t=this.createNode(),i=this.context.allowYield,s=this.context.isAsync;this.context.allowYield=!1,this.context.isAsync=!0;let r=this.parseFormalParameters(),a=this.parsePropertyMethod(r);return this.context.allowYield=i,this.context.isAsync=s,this.finalize(t,new A(null,r.params,a,e,!0))}parseObjectPropertyKey(e=!1){let t=this.createNode(),i=this.nextToken(),s;switch(i.type){case 8:case 6:this.context.strict&&i.octal&&this.tolerateUnexpectedToken(i,o.StrictOctalLiteral);let r=this.getTokenRaw(i);typeof i.value=="bigint"?s=this.finalize(t,new Re(i.value,r,i.value.toString())):s=this.finalize(t,new F(i.value,r));break;case 3:case 1:case 5:case 4:s=this.finalize(t,e?new O(i.value):new C(i.value));break;case 7:i.value==="["?(s=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):s=this.throwUnexpectedToken(i);break;default:s=this.throwUnexpectedToken(i)}return s}isPropertyKey(e,t){return e.type==="Identifier"&&e.name===t||e.type==="Literal"&&e.value===t}parseObjectProperty(e){let t=this.createNode(),i=this.lookahead,s,r=null,a=null,u=!1,l=!1,m=!1,p=!1,d=!1;if(i.type===3){let D=i.value;this.nextToken(),u=this.match("["),p=!this.hasLineTerminator&&D==="async"&&!this.match(":")&&!this.match("(")&&!this.match(","),d=this.match("*"),d&&this.nextToken(),r=p?this.parseObjectPropertyKey():this.finalize(t,new C(D))}else this.match("*")?this.nextToken():(u=this.match("["),r=this.parseObjectPropertyKey());let x=this.qualifiedPropertyName(this.lookahead);if(i.type===3&&!p&&i.value==="get"&&x)s="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,a=this.parseGetterMethod();else if(i.type===3&&!p&&i.value==="set"&&x)s="set",u=this.match("["),r=this.parseObjectPropertyKey(),a=this.parseSetterMethod();else if(i.type===7&&i.value==="*"&&x)s="init",u=this.match("["),r=this.parseObjectPropertyKey(),a=this.parseGeneratorMethod(!1),l=!0;else if(r||this.throwUnexpectedToken(this.lookahead),s="init",this.match(":")&&!p)!u&&this.isPropertyKey(r,"__proto__")&&(e.value&&this.tolerateError(o.DuplicateProtoProperty),e.value=!0),this.nextToken(),a=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))a=p?this.parsePropertyMethodAsyncFunction(d):this.parsePropertyMethodFunction(d),l=!0;else if(i.type===3){let D=this.finalize(t,new C(i.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),m=!0;let S=this.isolateCoverGrammar(this.parseAssignmentExpression);a=this.finalize(t,new v(D,S))}else m=!0,a=D}else this.throwUnexpectedToken(this.nextToken());return this.finalize(t,new K(s,r,u,a,l,m))}parseObjectInitializer(){let e=this.createNode();this.expect("{");let t=[],i={value:!1};for(;!this.match("}");){let s=this.match("...")?this.parseSpreadElement():this.parseObjectProperty(i);t.push(s),!this.match("}")&&(!s.method||this.match(","))&&this.expectCommaSeparator()}return this.expect("}"),this.finalize(e,new Ae(t))}throwTemplateLiteralEarlyErrors(e){switch(e.notEscapeSequenceHead){case"u":return this.throwUnexpectedToken(e,o.InvalidUnicodeEscapeSequence);case"x":return this.throwUnexpectedToken(e,o.InvalidHexEscapeSequence);case"8":case"9":return this.throwUnexpectedToken(e,o.TemplateEscape89);default:return this.throwUnexpectedToken(e,o.TemplateOctalLiteral)}}parseTemplateHead(e){N(this.lookahead.head,"Template literal must start with a template head");let t=this.createNode(),i=this.nextToken();!e.isTagged&&i.notEscapeSequenceHead!==null&&this.throwTemplateLiteralEarlyErrors(i);let s=i.value,r=i.cooked;return this.finalize(t,new Oe({raw:s,cooked:r},i.tail))}parseTemplateElement(e){this.lookahead.type!==10&&this.throwUnexpectedToken();let t=this.createNode(),i=this.nextToken();!e.isTagged&&i.notEscapeSequenceHead!==null&&this.throwTemplateLiteralEarlyErrors(i);let s=i.value,r=i.cooked;return this.finalize(t,new Oe({raw:s,cooked:r},i.tail))}parseTemplateLiteral(e){let t=this.createNode(),i=[],s=[],r=this.parseTemplateHead(e);for(s.push(r);!r.tail;)i.push(this.parseExpression()),r=this.parseTemplateElement(e),s.push(r);return this.finalize(t,new Ie(s,i))}reinterpretExpressionAsPattern(e){switch(e.type){case"Identifier":case"MemberExpression":case"RestElement":case"AssignmentPattern":break;case"SpreadElement":e.type="RestElement",this.reinterpretExpressionAsPattern(e.argument);break;case"ArrayExpression":e.type="ArrayPattern";for(let t=0;t<e.elements.length;t++)e.elements[t]!==null&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case"ObjectExpression":e.type="ObjectPattern";for(let t=0;t<e.properties.length;t++){let i=e.properties[t];this.reinterpretExpressionAsPattern(i.type==="SpreadElement"?i:i.value)}break;case"AssignmentExpression":e.type="AssignmentPattern",delete e.operator,this.reinterpretExpressionAsPattern(e.left);break;default:break}}parseGroupExpression(){let e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),e={type:L,params:[],async:!1};else{let t=this.lookahead,i=[];if(this.match("..."))e=this.parseRestElement(i),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:L,params:[e],async:!1};else{let s=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){let r=[];for(this.context.isAssignmentTarget=!1,r.push(e);this.lookahead.type!==2&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(let a=0;a<r.length;a++)this.reinterpretExpressionAsPattern(r[a]);s=!0,e={type:L,params:r,async:!1}}else if(this.match("...")){this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),r.push(this.parseRestElement(i)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1;for(let a=0;a<r.length;a++)this.reinterpretExpressionAsPattern(r[a]);s=!0,e={type:L,params:r,async:!1}}else r.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(s)break}s||(e=this.finalize(this.startNode(t),new X(r)))}if(!s){if(this.expect(")"),this.match("=>")&&(e.type==="Identifier"&&e.name==="yield"&&(s=!0,e={type:L,params:[e],async:!1}),!s)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type==="SequenceExpression")for(let a=0;a<e.expressions.length;a++)this.reinterpretExpressionAsPattern(e.expressions[a]);else this.reinterpretExpressionAsPattern(e);let r=e.type==="SequenceExpression"?e.expressions:[e];e={type:L,params:r,async:!1}}this.context.isBindingElement=!1}}}return e}parseArguments(){this.expect("(");let e=[];if(!this.match(")"))for(;;){let t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")")||(this.expectCommaSeparator(),this.match(")")))break}return this.expect(")"),e}isIdentifierName(e){return e.type===3||e.type===4||e.type===1||e.type===5}parseIdentifierName(e=!1){let t=!1,i=this.createNode(),s=this.nextToken();return s.value==="#"&&e&&(s=this.nextToken(),t=!0),this.isIdentifierName(s)||this.throwUnexpectedToken(s),this.finalize(i,t?new O(s.value):new C(s.value))}parseNewExpression(){let e=this.createNode(),t=this.parseIdentifierName();N(t.name==="new","New expression must start with `new`");let i;if(this.match("."))if(this.nextToken(),this.lookahead.type===3&&this.context.inFunctionBody&&this.lookahead.value==="target"){let s=this.parseIdentifierName();i=new z(t,s)}else this.throwUnexpectedToken(this.lookahead);else if(this.matchKeyword("import"))this.throwUnexpectedToken(this.lookahead);else{let s=this.isolateCoverGrammar(this.parseLeftHandSideExpression),r=this.match("(")?this.parseArguments():[];i=new ge(s,r),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(e,i)}parseAsyncArgument(){let e=this.parseAssignmentExpression();return this.context.firstCoverInitializedNameError=null,e}parseAsyncArguments(){this.expect("(");let e=[];if(!this.match(")"))for(;;){let t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAsyncArgument);if(e.push(t),this.match(")")||(this.expectCommaSeparator(),this.match(")")))break}return this.expect(")"),e}matchImportCall(){let e=this.matchKeyword("import");if(e){let t=this.scanner.saveState();this.scanner.scanComments();let i=this.scanner.lex();this.scanner.restoreState(t),e=i.type===7&&i.value==="("}return e}parseImportCall(){let e=this.createNode();this.expectKeyword("import"),this.expect("(");var t=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;let i=this.parseAssignmentExpression(),s=null;return this.match(",")&&(this.nextToken(),this.match(")")||(s=this.parseAssignmentExpression())),this.context.isAssignmentTarget=t,this.match(")")?this.nextToken():(this.match(",")&&this.nextToken(),this.expect(")")),this.finalize(e,new xe(i,s))}matchImportMeta(){let e=this.matchKeyword("import");if(e){let t=this.scanner.saveState();this.scanner.scanComments();let i=this.scanner.lex();if(i.type===7&&i.value==="."){this.scanner.scanComments();let s=this.scanner.lex();e=s.type===3&&s.value==="meta",e&&s.end-s.start!==4&&this.tolerateUnexpectedToken(s,o.InvalidEscapedReservedWord)}else e=!1;this.scanner.restoreState(t)}return e}parseImportMeta(){let e=this.createNode(),t=this.parseIdentifierName();this.expect(".");let i=this.parseIdentifierName();return this.context.isAssignmentTarget=!1,this.finalize(e,new z(t,i))}parseLeftHandSideExpressionAllowCall(){let e=this.lookahead,t=this.matchContextualKeyword("async"),i=this.context.allowIn;this.context.allowIn=!0;let s,r=this.matchKeyword("super");r&&this.context.inFunctionBody?(s=this.createNode(),this.nextToken(),s=this.finalize(s,new ze),!this.match("(")&&!this.match(".")&&!this.match("[")&&this.throwUnexpectedToken(this.lookahead)):s=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression),r&&this.match("(")&&(!this.context.inClassConstructor||!this.context.allowSuper)&&this.tolerateError(o.UnexpectedSuper);let a=!1;for(;;){let u=!1;if(this.match("?.")&&(u=!0,a=!0,this.expect("?.")),this.match("(")){let l=t&&e.lineNumber===this.lookahead.lineNumber;this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;let m=l?this.parseAsyncArguments():this.parseArguments();if(s.type==="ImportExpression"&&m.length!==1&&this.tolerateError(o.BadImportCallArity),s=this.finalize(this.startNode(e),new Q(s,m,u)),l&&this.match("=>")){for(let p=0;p<m.length;++p)this.reinterpretExpressionAsPattern(m[p]);s={type:L,params:m,async:!0}}}else if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!u,this.expect("[");let l=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),s=this.finalize(this.startNode(e),new k(!0,s,l,u))}else if(this.lookahead.type===10&&this.lookahead.head){u&&this.throwUnexpectedToken(this.lookahead),a&&this.throwError(o.InvalidTaggedTemplateOnOptionalChain);let l=this.parseTemplateLiteral({isTagged:!0});s=this.finalize(this.startNode(e),new q(s,l))}else if(this.match(".")||u){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!u,u||this.expect(".");let l=this.parseIdentifierName(!0);s=this.finalize(this.startNode(e),new k(!1,s,l,u))}else break}return this.context.allowIn=i,a&&(s=this.finalize(this.startNode(e),new U(s))),s}parseSuper(){let e=this.createNode();return this.expectKeyword("super"),!this.match("[")&&!this.match(".")&&this.throwUnexpectedToken(this.lookahead),this.finalize(e,new ze)}parseLeftHandSideExpression(){N(this.context.allowIn,"callee of new expression always allow in keyword.");let e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression),i=!1;for(;;){let s=!1;if(this.match("?.")&&(s=!0,i=!0,this.expect("?.")),this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!s,this.expect("[");let r=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new k(!0,t,r,s))}else if(this.lookahead.type===10&&this.lookahead.head){s&&this.throwUnexpectedToken(this.lookahead),i&&this.throwError(o.InvalidTaggedTemplateOnOptionalChain);let r=this.parseTemplateLiteral({isTagged:!0});t=this.finalize(e,new q(t,r))}else if(this.match(".")||s){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!s,s||this.expect(".");let r=this.parseIdentifierName();t=this.finalize(e,new k(!1,t,r,s))}else break}return i&&(t=this.finalize(e,new U(t))),t}parseUpdateExpression(){let e,t=this.lookahead;if(this.match("++")||this.match("--")){let i=this.startNode(t),s=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type==="Identifier"&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(o.InvalidLHSInAssignment);let r=!0;e=this.finalize(i,new H(s.value,e,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===7&&(this.match("++")||this.match("--"))){this.context.strict&&e.type==="Identifier"&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(o.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;let i=this.nextToken().value,s=!1;e=this.finalize(this.startNode(t),new H(i,e,s))}return e}parseAwaitExpression(){let e=this.createNode();this.nextToken();let t=this.parseUnaryExpression();return this.finalize(e,new _(t))}parseUnaryExpression(){let e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){let t=this.startNode(this.lookahead),i=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new Xe(i.value,e)),this.context.strict&&e.operator==="delete"&&e.argument.type==="Identifier"&&this.tolerateError(o.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else(this.context.isModule&&!this.context.inFunctionBody||this.context.isAsync)&&this.matchContextualKeyword("await")?e=this.parseAwaitExpression():e=this.parseUpdateExpression();return e}parseExponentiationExpression(){let e=this.lookahead,t=this.match("("),i=this.inheritCoverGrammar(this.parseUnaryExpression);if((i.type!=="UnaryExpression"||t)&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;let r=i,a=this.isolateCoverGrammar(this.parseExponentiationExpression);i=this.finalize(this.startNode(e),new B("**",r,a))}return i}binaryPrecedence(e){let t=e.value,i;return e.type===7?i=this.operatorPrecedence[t]||0:e.type===4?i=t==="instanceof"||this.context.allowIn&&t==="in"?12:0:i=0,i}parseBinaryExpression(){let e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),i=!0,s=!0,r=l=>{(l.value==="&&"||l.value==="||")&&(s=!1),l.value==="??"&&(i=!1)},a=this.lookahead,u=this.binaryPrecedence(a);if(u>0){r(a),this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;let l=[e,this.lookahead],m=t,p=this.isolateCoverGrammar(this.parseExponentiationExpression),d=[m,a.value,p],x=[u];for(;u=this.binaryPrecedence(this.lookahead),!(u<=0);){for((!i&&(this.lookahead.value==="&&"||this.lookahead.value==="||")||!s&&this.lookahead.value==="??")&&this.throwUnexpectedToken(this.lookahead),r(this.lookahead);d.length>2&&u<=x[x.length-1];){p=d.pop();let f=d.pop();x.pop(),m=d.pop(),l.pop();let y=l[l.length-1],Ke=this.startNode(y,y.lineStart),Ue=f==="||"||f==="&&"||f==="??";d.push(this.finalize(Ke,Ue?new R(f,m,p):new B(f,m,p)))}d.push(this.nextToken().value),x.push(u),l.push(this.lookahead),d.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}let D=d.length-1;t=d[D];let S=l.pop();for(;D>1;){let f=l.pop(),y=S&&S.lineStart,Ke=this.startNode(f,y),Ue=d[D-1],Tt=Ue==="||"||Ue==="&&"||Ue==="??";t=this.finalize(Ke,Tt?new R(Ue,d[D-2],t):new B(Ue,d[D-2],t)),D-=2,S=f}}return t}parseConditionalExpression(){let e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();let i=this.context.allowIn;this.context.allowIn=!0;let s=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=i,this.expect(":");let r=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new se(t,s,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t}checkPatternParam(e,t){switch(t.type){case"Identifier":this.validateParam(e,t,t.name);break;case"RestElement":this.checkPatternParam(e,t.argument);break;case"AssignmentPattern":this.checkPatternParam(e,t.left);break;case"ArrayPattern":for(let i=0;i<t.elements.length;i++)t.elements[i]!==null&&this.checkPatternParam(e,t.elements[i]);break;case"ObjectPattern":for(let i=0;i<t.properties.length;i++){let s=t.properties[i];this.checkPatternParam(e,s.type==="RestElement"?s:s.value)}break;default:break}e.simple=e.simple&&t instanceof C}reinterpretAsCoverFormalsList(e){let t=[e],i={simple:!0,paramSet:{}},s=!1;switch(e.type){case"Identifier":break;case L:t=e.params,s=e.async;break;default:return null}for(let r=0;r<t.length;++r){let a=t[r];a.type==="AssignmentPattern"?a.right.type==="YieldExpression"&&(a.right.argument&&this.throwUnexpectedToken(this.lookahead),a.right.type="Identifier",a.right.name="yield",delete a.right.argument,delete a.right.delegate):s&&a.type==="Identifier"&&a.name==="await"&&this.throwUnexpectedToken(this.lookahead),this.checkPatternParam(i,a),t[r]=a}if(this.context.strict||!this.context.allowYield)for(let r=0;r<t.length;++r)t[r].type==="YieldExpression"&&this.throwUnexpectedToken(this.lookahead);if(i.hasDuplicateParameterNames){let r=this.context.strict?i.stricted:i.firstRestricted;this.throwUnexpectedToken(r,o.DuplicateParameter)}return{simple:i.simple,params:t,stricted:i.stricted,firstRestricted:i.firstRestricted,message:i.message}}parseAssignmentExpression(){let e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{let t=this.lookahead,i=t;if(e=this.parseConditionalExpression(),i.type===3&&i.lineNumber===this.lookahead.lineNumber&&i.value==="async"&&(this.lookahead.type===3||this.matchKeyword("yield"))){let s=this.parsePrimaryExpression();this.reinterpretExpressionAsPattern(s),e={type:L,params:[s],async:!0}}if(e.type===L||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;let s=e.async,r=this.reinterpretAsCoverFormalsList(e);if(r){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;let a=this.context.strict,u=this.context.allowStrictDirective;this.context.allowStrictDirective=r.simple;let l=this.context.allowYield,m=this.context.isAsync;this.context.allowYield=!0,this.context.isAsync=s;let p=this.startNode(t);this.expect("=>");let d;if(this.match("{")){let D=this.context.allowIn;this.context.allowIn=!0,d=this.parseFunctionSourceElements(),this.context.allowIn=D}else d=this.isolateCoverGrammar(this.parseAssignmentExpression);let x=d.type!=="BlockStatement";this.context.strict&&r.firstRestricted&&this.throwUnexpectedToken(r.firstRestricted,r.message),this.context.strict&&r.stricted&&this.tolerateUnexpectedToken(r.stricted,r.message),e=this.finalize(p,new G(r.params,d,x,s)),this.context.strict=a,this.context.allowStrictDirective=u,this.context.allowYield=l,this.context.isAsync=m}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.InvalidLHSInAssignment),this.context.strict&&e.type==="Identifier"){let a=e;this.scanner.isRestrictedWord(a.name)&&this.tolerateUnexpectedToken(i,o.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(a.name)&&this.tolerateUnexpectedToken(i,o.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),i=this.nextToken();let s=i.value,r=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new Y(s,e,r)),this.context.firstCoverInitializedNameError=null}}return e}parseExpression(){let e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){let i=[];for(i.push(t);this.lookahead.type!==2&&this.match(",");)this.nextToken(),i.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new X(i))}return t}parseStatementListItem(){let e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===4)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.matchImportCall()?e=this.parseExpressionStatement():this.matchImportMeta()?e=this.parseStatement():(this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.IllegalImportDeclaration),e=this.parseImportDeclaration());break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement();break}else e=this.parseStatement();return e}parseBlock(){let e=this.createNode();this.expect("{");let t=[];for(;!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new M(t))}parseLexicalBinding(e,t){let i=this.createNode(),s=[],r=this.parsePattern(s,e);this.context.strict&&r.type==="Identifier"&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.StrictVarName);let a=null;return e==="const"?!this.matchKeyword("in")&&!this.matchContextualKeyword("of")&&(this.match("=")?(this.nextToken(),a=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.DeclarationMissingInitializer,"const")):(!t.inFor&&r.type!=="Identifier"||this.match("="))&&(this.expect("="),a=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(i,new j(r,a))}parseBindingList(e,t){let i=[this.parseLexicalBinding(e,t)];for(;this.match(",");)this.nextToken(),i.push(this.parseLexicalBinding(e,t));return i}isLexicalDeclaration(){let e=this.scanner.saveState();this.scanner.scanComments();let t=this.scanner.lex();return this.scanner.restoreState(e),t.type===3||t.type===7&&t.value==="["||t.type===7&&t.value==="{"||t.type===4&&t.value==="let"||t.type===4&&t.value==="yield"}parseLexicalDeclaration(e){let t=this.createNode(),i=this.nextToken().value;N(i==="let"||i==="const","Lexical declaration must be either let or const");let s=this.parseBindingList(i,e);return this.consumeSemicolon(),this.finalize(t,new g(s,i))}isInitializedProperty(){let e=this.scanner.saveState();this.scanner.scanComments();let t=this.scanner.lex();return this.scanner.restoreState(e),this.lookahead.type===3&&t.value==="="}isDeclaredProperty(){let e=this.scanner.saveState();this.scanner.scanComments();let t=this.scanner.lex();return this.scanner.restoreState(e),this.lookahead.type===3&&t.value===";"||this.lookahead.type===3&&t.lineNumber!==this.startMarker.line}parseBindingRestElement(e,t){let i=this.createNode();this.expect("...");let s=this.parsePattern(e,t);return this.finalize(i,new w(s))}parseArrayPattern(e,t){let i=this.createNode();this.expect("[");let s=[];for(;!this.match("]");)if(this.match(","))this.nextToken(),s.push(null);else{if(this.match("...")){s.push(this.parseBindingRestElement(e,t));break}else s.push(this.parsePatternWithDefault(e,t));this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(i,new W(s))}parsePropertyPattern(e,t){let i=this.createNode(),s=!1,r=!1,a=!1,u,l;if(this.lookahead.type===3){let m=this.lookahead;u=this.parseVariableIdentifier();let p=this.finalize(i,new C(m.value));if(this.match("=")){e.push(m),r=!0,this.nextToken();let d=this.parseAssignmentExpression();l=this.finalize(this.startNode(m),new v(p,d))}else this.match(":")?(this.expect(":"),l=this.parsePatternWithDefault(e,t)):(e.push(m),r=!0,l=p)}else s=this.match("["),u=this.parseObjectPropertyKey(),this.expect(":"),l=this.parsePatternWithDefault(e,t);return this.finalize(i,new K("init",u,s,l,a,r))}parseRestProperty(e){let t=this.createNode();this.expect("...");let i=this.parsePattern(e);return this.match("=")&&this.throwError(o.DefaultRestProperty),this.match("}")||this.throwError(o.PropertyAfterRestProperty),this.finalize(t,new w(i))}parseObjectPattern(e,t){let i=this.createNode(),s=[];for(this.expect("{");!this.match("}");)s.push(this.match("...")?this.parseRestProperty(e):this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(i,new Fe(s))}parsePattern(e,t){let i;return this.match("[")?i=this.parseArrayPattern(e,t):this.match("{")?i=this.parseObjectPattern(e,t):(this.matchKeyword("let")&&(t==="const"||t==="let")&&this.tolerateUnexpectedToken(this.lookahead,o.LetInLexicalBinding),e.push(this.lookahead),i=this.parseVariableIdentifier(t)),i}parsePatternWithDefault(e,t){let i=this.lookahead,s=this.parsePattern(e,t);if(this.match("=")){this.nextToken();let r=this.context.allowYield;this.context.allowYield=!0;let a=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=r,s=this.finalize(this.startNode(i),new v(s,a))}return s}parseVariableIdentifier(e){let t=this.createNode(),i=this.nextToken();return i.type===4&&i.value==="yield"?this.context.strict?this.tolerateUnexpectedToken(i,o.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(i):i.type!==3?this.context.strict&&i.type===4&&this.scanner.isStrictModeReservedWord(i.value)?this.tolerateUnexpectedToken(i,o.StrictReservedWord):(this.context.strict||i.value!=="let"||e!=="var")&&this.throwUnexpectedToken(i):(this.context.isModule||this.context.isAsync)&&i.type===3&&i.value==="await"&&this.tolerateUnexpectedToken(i),this.finalize(t,new C(i.value))}parseVariableDeclaration(e){let t=this.createNode(),i=[],s=this.parsePattern(i,"var");this.context.strict&&s.type==="Identifier"&&this.scanner.isRestrictedWord(s.name)&&this.tolerateError(o.StrictVarName);let r=null;return this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):s.type!=="Identifier"&&!e.inFor&&this.expect("="),this.finalize(t,new j(s,r))}parseVariableDeclarationList(e){let t={inFor:e.inFor},i=[];for(i.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),i.push(this.parseVariableDeclaration(t));return i}parseVariableStatement(){let e=this.createNode();this.expectKeyword("var");let t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new g(t,"var"))}parseEmptyStatement(){let e=this.createNode();return this.expect(";"),this.finalize(e,new I)}parseExpressionStatement(){let e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new P(t))}parseIfClause(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.StrictFunction),this.parseStatement()}parseIfStatement(){let e=this.createNode(),t,i=null;this.expectKeyword("if"),this.expect("(");let s=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new I)):(this.expect(")"),t=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),i=this.parseIfClause())),this.finalize(e,new de(s,t,i))}parseDoWhileStatement(){let e=this.createNode();this.expectKeyword("do"),this.tolerateInvalidLoopStatement();let t=this.context.inIteration;this.context.inIteration=!0;let i=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");let s=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new ae(i,s))}parseWhileStatement(){let e=this.createNode(),t;this.expectKeyword("while"),this.expect("(");let i=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new I);else{this.expect(")");let s=this.context.inIteration;this.context.inIteration=!0,t=this.parseStatement(),this.context.inIteration=s}return this.finalize(e,new Le(i,t))}parseForStatement(){let e=null,t=null,i=null,s=!0,r,a,u=!1,l=this.createNode();if(this.expectKeyword("for"),this.matchContextualKeyword("await")&&(this.context.isAsync||this.tolerateUnexpectedToken(this.lookahead),u=!0,this.nextToken()),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){e=this.createNode(),this.nextToken();let p=this.context.allowIn;this.context.allowIn=!1;let d=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=p,!u&&d.length===1&&this.matchKeyword("in")){let x=d[0];x.init&&(x.id.type==="ArrayPattern"||x.id.type==="ObjectPattern"||this.context.strict)&&this.tolerateError(o.ForInOfLoopInitializer,"for-in"),e=this.finalize(e,new g(d,"var")),this.nextToken(),r=e,a=this.parseExpression(),e=null}else d.length===1&&d[0].init===null&&this.matchContextualKeyword("of")?(e=this.finalize(e,new g(d,"var")),this.nextToken(),r=e,a=this.parseAssignmentExpression(),e=null,s=!1):(e=this.finalize(e,new g(d,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){e=this.createNode();let p=this.nextToken().value;if(!this.context.strict&&this.lookahead.value==="in")e=this.finalize(e,new C(p)),this.nextToken(),r=e,a=this.parseExpression(),e=null;else{let d=this.context.allowIn;this.context.allowIn=!1;let x=this.parseBindingList(p,{inFor:!0});this.context.allowIn=d,x.length===1&&x[0].init===null&&this.matchKeyword("in")?(e=this.finalize(e,new g(x,p)),this.nextToken(),r=e,a=this.parseExpression(),e=null):x.length===1&&x[0].init===null&&this.matchContextualKeyword("of")?(e=this.finalize(e,new g(x,p)),this.nextToken(),r=e,a=this.parseAssignmentExpression(),e=null,s=!1):(this.consumeSemicolon(),e=this.finalize(e,new g(x,p)))}}else{let p=this.lookahead,d=this.context.isBindingElement,x=this.context.isAssignmentTarget,D=this.context.firstCoverInitializedNameError,S=this.context.allowIn;if(this.context.allowIn=!1,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=S,this.matchKeyword("in"))(!this.context.isAssignmentTarget||e.type==="AssignmentExpression")&&this.tolerateError(o.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(e),r=e,a=this.parseExpression(),e=null;else if(this.matchContextualKeyword("of"))(!this.context.isAssignmentTarget||e.type==="AssignmentExpression")&&this.tolerateError(o.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(e),r=e,a=this.parseAssignmentExpression(),e=null,s=!1;else{if(this.context.isBindingElement=d,this.context.isAssignmentTarget=x,this.context.firstCoverInitializedNameError=D,this.match(",")){let f=[e];for(;this.match(",");)this.nextToken(),f.push(this.isolateCoverGrammar(this.parseAssignmentExpression));e=this.finalize(this.startNode(p),new X(f))}this.expect(";")}}typeof r>"u"&&(this.match(";")||(t=this.isolateCoverGrammar(this.parseExpression)),this.expect(";"),this.match(")")||(i=this.isolateCoverGrammar(this.parseExpression)));let m;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new I);else{this.expect(")"),this.tolerateInvalidLoopStatement();let p=this.context.inIteration;this.context.inIteration=!0,m=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=p}return typeof r>"u"?this.finalize(l,new he(e,t,i,m)):s?this.finalize(l,new le(r,a,m)):this.finalize(l,new ce(r,a,m,u))}parseContinueStatement(){let e=this.createNode();this.expectKeyword("continue");let t=null;if(this.lookahead.type===3&&!this.hasLineTerminator){let i=this.parseVariableIdentifier();t=i;let s="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,s)||this.throwError(o.UnknownLabel,i.name)}return this.consumeSemicolon(),t===null&&!this.context.inIteration&&this.throwError(o.IllegalContinue),this.finalize(e,new re(t))}parseBreakStatement(){let e=this.createNode();this.expectKeyword("break");let t=null;if(this.lookahead.type===3&&!this.hasLineTerminator){let i=this.parseVariableIdentifier(),s="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,s)||this.throwError(o.UnknownLabel,i.name),t=i}return this.consumeSemicolon(),t===null&&!this.context.inIteration&&!this.context.inSwitch&&this.throwError(o.IllegalBreak),this.finalize(e,new $(t))}parseReturnStatement(){this.context.inFunctionBody||this.tolerateError(o.IllegalReturn);let e=this.createNode();this.expectKeyword("return");let i=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==2||this.lookahead.type===8||this.lookahead.type===10?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new ke(i))}parseWithStatement(){this.context.strict&&this.tolerateError(o.StrictModeWith);let e=this.createNode(),t;this.expectKeyword("with"),this.expect("(");let i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new I)):(this.expect(")"),t=this.parseStatement()),this.finalize(e,new Je(i,t))}parseSwitchCase(){let e=this.createNode(),t;this.matchKeyword("default")?(this.nextToken(),t=null):(this.expectKeyword("case"),t=this.parseExpression()),this.expect(":");let i=[];for(;!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)i.push(this.parseStatementListItem());return this.finalize(e,new ve(t,i))}parseSwitchStatement(){let e=this.createNode();this.expectKeyword("switch"),this.expect("(");let t=this.parseExpression();this.expect(")");let i=this.context.inSwitch;this.context.inSwitch=!0;let s=[],r=!1;for(this.expect("{");!this.match("}");){let a=this.parseSwitchCase();a.test===null&&(r&&this.throwError(o.MultipleDefaultsInSwitch),r=!0),s.push(a)}return this.expect("}"),this.context.inSwitch=i,this.finalize(e,new Be(t,s))}parseLabelledStatement(){let e=this.createNode(),t=this.parseExpression(),i;if(t.type==="Identifier"&&this.match(":")){this.nextToken();let s=t,r="$"+s.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(o.Redeclaration,"Label",s.name),this.context.labelSet[r]=!0;let a;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),a=this.parseClassDeclaration();else if(this.matchKeyword("function")){let u=this.lookahead,l=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(u,o.StrictFunction):l.generator&&this.tolerateUnexpectedToken(u,o.GeneratorInLegacyContext),a=l}else a=this.parseStatement();delete this.context.labelSet[r],i=new Ce(s,a)}else this.consumeSemicolon(),i=new P(t);return this.finalize(e,i)}parseThrowStatement(){let e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.NewlineAfterThrow);let t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new Te(t))}parseCatchClause(){let e=this.createNode();this.expectKeyword("catch");let t=null;if(this.match("(")){this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);let s=[];t=this.parsePattern(s);let r={};for(let a=0;a<s.length;a++){let u="$"+s[a].value;Object.prototype.hasOwnProperty.call(r,u)&&this.tolerateError(o.DuplicateBinding,s[a].value),r[u]=!0}this.context.strict&&t.type==="Identifier"&&this.scanner.isRestrictedWord(t.name)&&this.tolerateError(o.StrictCatchVariable),this.expect(")")}let i=this.parseBlock();return this.finalize(e,new Z(t,i))}parseFinallyClause(){return this.expectKeyword("finally"),this.parseBlock()}parseTryStatement(){let e=this.createNode();this.expectKeyword("try");let t=this.parseBlock(),i=this.matchKeyword("catch")?this.parseCatchClause():null,s=this.matchKeyword("finally")?this.parseFinallyClause():null;return!i&&!s&&this.throwError(o.NoCatchOrFinally),this.finalize(e,new Pe(t,i,s))}parseDebuggerStatement(){let e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new je)}parseStatement(){let e;switch(this.lookahead.type){case 1:case 5:case 6:case 8:case 10:case 9:e=this.parseExpressionStatement();break;case 7:let t=this.lookahead.value;t==="{"?e=this.parseBlock():t==="("?e=this.parseExpressionStatement():t===";"?e=this.parseEmptyStatement():e=this.parseExpressionStatement();break;case 3:e=this.matchAsyncFunction()?this.parseFunctionDeclaration():this.parseLabelledStatement();break;case 4:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement();break}break;default:e=this.throwUnexpectedToken(this.lookahead)}return e}parseFunctionSourceElements(){let e=this.createNode();this.expect("{");let t=this.parseDirectivePrologues(),i=this.context.labelSet,s=this.context.inIteration,r=this.context.inSwitch,a=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;this.lookahead.type!==2&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=i,this.context.inIteration=s,this.context.inSwitch=r,this.context.inFunctionBody=a,this.finalize(e,new M(t))}validateParam(e,t,i){let s="$"+i;this.context.strict?(this.scanner.isRestrictedWord(i)&&(e.stricted=t,e.message=o.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,s)&&(e.stricted=t,e.hasDuplicateParameterNames=!0)):e.firstRestricted||(this.scanner.isRestrictedWord(i)?(e.firstRestricted=t,e.message=o.StrictParamName):this.scanner.isStrictModeReservedWord(i)?(e.firstRestricted=t,e.message=o.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,s)&&(e.stricted=t,e.hasDuplicateParameterNames=!0)),typeof Object.defineProperty=="function"?Object.defineProperty(e.paramSet,s,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[s]=!0}parseRestElement(e){let t=this.createNode();this.expect("...");let i=this.parsePattern(e);return this.match("=")&&this.throwError(o.DefaultRestParameter),this.match(")")||this.throwError(o.ParameterAfterRestParameter),this.finalize(t,new w(i))}parseFormalParameter(e){let t=[],i=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t);for(let s=0;s<t.length;s++)this.validateParam(e,t[s],t[s].value);e.simple=e.simple&&i instanceof C,e.params.push(i)}parseFormalParameters(e){let t={simple:!0,hasDuplicateParameterNames:!1,params:[],firstRestricted:e};if(this.expect("("),!this.match(")"))for(t.paramSet={};this.lookahead.type!==2&&(this.parseFormalParameter(t),!(this.match(")")||(this.expect(","),this.match(")")))););return this.expect(")"),t.hasDuplicateParameterNames&&(this.context.strict||this.context.isAsync||!t.simple)&&this.throwError(o.DuplicateParameter),{simple:t.simple,params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}}matchAsyncFunction(){let e=this.matchContextualKeyword("async");if(e){let t=this.scanner.saveState();this.scanner.scanComments();let i=this.scanner.lex();this.scanner.restoreState(t),e=t.lineNumber===i.lineNumber&&i.type===4&&i.value==="function"}return e}parseFunctionDeclaration(e){let t=this.createNode(),i=this.matchContextualKeyword("async");i&&(this.context.inIteration&&this.tolerateError(o.AsyncFunctionInSingleStatementContext),this.nextToken()),this.expectKeyword("function");let s=this.match("*");s&&this.nextToken();let r,a=null,u=null;if(!e||!this.match("(")){let y=this.lookahead;a=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(y.value)&&this.tolerateUnexpectedToken(y,o.StrictFunctionName):this.scanner.isRestrictedWord(y.value)?(u=y,r=o.StrictFunctionName):this.scanner.isStrictModeReservedWord(y.value)&&(u=y,r=o.StrictReservedWord)}let l=this.context.isAsync,m=this.context.allowYield;this.context.isAsync=i,this.context.allowYield=!s;let p=this.parseFormalParameters(u),d=p.params,x=p.stricted;u=p.firstRestricted,p.message&&(r=p.message);let D=this.context.strict,S=this.context.allowStrictDirective;this.context.allowStrictDirective=p.simple;let f=this.parseFunctionSourceElements();return this.context.strict&&u&&this.throwUnexpectedToken(u,r),this.context.strict&&x&&this.tolerateUnexpectedToken(x,r),this.context.strict=D,this.context.allowStrictDirective=S,this.context.isAsync=l,this.context.allowYield=m,i?this.finalize(t,new He(a,d,f,s)):this.finalize(t,new pe(a,d,f,s))}parseFunctionExpression(){let e=this.createNode(),t=this.matchContextualKeyword("async");t&&this.nextToken(),this.expectKeyword("function");let i=this.match("*");i&&this.nextToken();let s,r=null,a,u=this.context.isAsync,l=this.context.allowYield;if(this.context.isAsync=t,this.context.allowYield=!i,!this.match("(")){let f=this.lookahead;r=!this.context.strict&&!i&&this.matchKeyword("yield")?this.parseIdentifierName():this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(f.value)&&this.tolerateUnexpectedToken(f,o.StrictFunctionName):this.scanner.isRestrictedWord(f.value)?(a=f,s=o.StrictFunctionName):this.scanner.isStrictModeReservedWord(f.value)&&(a=f,s=o.StrictReservedWord)}let m=this.parseFormalParameters(a),p=m.params,d=m.stricted;a=m.firstRestricted,m.message&&(s=m.message);let x=this.context.strict,D=this.context.allowStrictDirective;this.context.allowStrictDirective=m.simple;let S=this.parseFunctionSourceElements();return this.context.strict&&a&&this.throwUnexpectedToken(a,s),this.context.strict&&d&&this.tolerateUnexpectedToken(d,s),this.context.strict=x,this.context.allowStrictDirective=D,this.context.isAsync=u,this.context.allowYield=l,this.finalize(e,new A(r,p,S,i,t))}parseDirective(){let e=this.lookahead,t=this.createNode(),i=this.parseExpression(),s=i.type==="Literal"?this.getTokenRaw(e).slice(1,-1):null;return this.consumeSemicolon(),this.finalize(t,s?new Ve(i,s):new P(i))}parseDirectivePrologues(){let e=null,t=[];for(;;){let i=this.lookahead;if(i.type!==8)break;let s=this.parseDirective();t.push(s);let r=s.directive;if(typeof r!="string")break;r==="use strict"?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,o.StrictOctalLiteral),this.context.allowStrictDirective||this.tolerateUnexpectedToken(i,o.IllegalLanguageModeDirective)):!e&&i.octal&&(e=i)}return t}qualifiedPropertyName(e){switch(e.type){case 3:case 8:case 1:case 5:case 6:case 4:return!0;case 7:return e.value==="["||e.value==="#";default:break}return!1}parseGetterMethod(){let e=this.createNode(),t=!1,i=this.context.allowYield;this.context.allowYield=!t;let s=this.parseFormalParameters();s.params.length>0&&this.tolerateError(o.BadGetterArity);let r=this.parsePropertyMethod(s);return this.context.allowYield=i,this.finalize(e,new A(null,s.params,r,t,!1))}parseSetterMethod(){let e=this.createNode(),t=!1,i=this.context.allowYield;this.context.allowYield=!t;let s=this.parseFormalParameters();s.params.length!==1?this.tolerateError(o.BadSetterArity):s.params[0]instanceof w&&this.tolerateError(o.BadSetterRestParameter);let r=this.parsePropertyMethod(s);return this.context.allowYield=i,this.finalize(e,new A(null,s.params,r,t,!1))}parseGeneratorMethod(e){let t=this.createNode(),i=!0,s=this.context.allowYield;this.context.allowYield=!0;let r=this.parseFormalParameters();this.context.allowYield=!1;let a=this.parsePropertyMethod(r);return this.context.allowYield=s,this.finalize(t,new A(null,r.params,a,i,e))}isStartOfExpression(){let e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e=t==="["||t==="("||t==="{"||t==="+"||t==="-"||t==="!"||t==="~"||t==="++"||t==="--"||t==="/"||t==="/=";break;case 4:e=t==="class"||t==="delete"||t==="function"||t==="let"||t==="new"||t==="super"||t==="this"||t==="typeof"||t==="void"||t==="yield";break;default:break}return e}parseYieldExpression(){let e=this.createNode();this.expectKeyword("yield");let t=null,i=!1;if(!this.hasLineTerminator){let s=this.context.allowYield;this.context.allowYield=!1,i=this.match("*"),i?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=s}return this.finalize(e,new Me(t,i))}parseStaticBlock(){let e=this.createNode();this.expect("{");let t=[];for(;!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new Ne(t))}parseDecorator(){let e=this.createNode();this.expect("@");let t=this.context.strict,i=this.context.allowYield,s=this.context.isAsync;this.context.strict=!1,this.context.allowYield=!0,this.context.isAsync=!1;let r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);return this.context.strict=t,this.context.allowYield=i,this.context.isAsync=s,this.match(";")&&this.throwError(o.NoSemicolonAfterDecorator),this.finalize(e,new ne(r))}parseDecorators(){let e=null;for(;this.match("@");)e==null&&(e=[]),e.push(this.parseDecorator());return e}parseClassElement(e){let t=this.lookahead,i=this.createNode(),s=this.context.inConstructor,r="",a=null,u=null,l=!1,m=!1,p=!1,d=!1,x=!1,D=!1,S=this.parseDecorators();if(S&&(t=this.lookahead),this.match("*"))this.nextToken();else{l=this.match("["),this.match("#")&&(D=!0,this.nextToken(),t=this.lookahead),a=this.parseObjectPropertyKey(D);let y=a;if(this.context.inConstructor=t.type===3&&t.value==="constructor",y.name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,p=!0,l=this.match("["),this.match("*")?(this.nextToken(),this.match("#")&&(D=!0,this.nextToken(),t=this.lookahead)):(this.match("#")&&(D=!0,this.nextToken(),t=this.lookahead),a=this.parseObjectPropertyKey(D))),y.name==="static"&&this.match("{"))return this.parseStaticBlock();if(t.type===3&&!this.hasLineTerminator&&t.value==="async"){let Ke=this.lookahead.value;Ke!==":"&&Ke!=="("&&(d=!0,x=this.match("*"),x&&this.nextToken(),t=this.lookahead,l=this.match("["),this.match("*")?(this.nextToken(),this.match("#")&&(D=!0,this.nextToken())):(this.match("#")&&(D=!0,this.nextToken(),t=this.lookahead),a=this.parseObjectPropertyKey(D)),t.type===3&&t.value==="constructor"&&!p&&this.tolerateUnexpectedToken(t,o.ConstructorIsAsync))}}t.type===3&&t.value==="constructor"&&D&&this.tolerateUnexpectedToken(t,o.ConstructorIsPrivate);let f=this.qualifiedPropertyName(this.lookahead);if(t.type===3||t.type===8?t.value==="get"&&f?(r="get",this.match("#")&&(D=!0,this.nextToken(),t=this.lookahead),l=this.match("["),a=this.parseObjectPropertyKey(D),this.context.allowYield=!1,u=this.parseGetterMethod()):t.value==="set"&&f?(r="set",this.match("#")&&(D=!0,this.nextToken(),t=this.lookahead),l=this.match("["),a=this.parseObjectPropertyKey(D),u=this.parseSetterMethod()):this.match("(")||(r="property",l=!1,this.match("=")&&(this.nextToken(),u=this.isolateCoverGrammar(this.parseAssignmentExpression))):t.type===7&&t.value==="*"&&f?(r="init",l=this.match("["),a=this.parseObjectPropertyKey(D),u=this.parseGeneratorMethod(d),m=!0):t.type===7&&t.value==="["&&!this.match("(")&&(r="property",l=!0,this.match("=")&&(this.nextToken(),u=this.isolateCoverGrammar(this.parseAssignmentExpression))),!r&&a&&this.match("(")){let y=this.context.inClassConstructor;this.context.inClassConstructor=t.value==="constructor",r="init",u=d?this.parsePropertyMethodAsyncFunction(x):this.parsePropertyMethodFunction(x),this.context.inClassConstructor=y,m=!0}return r||this.throwUnexpectedToken(this.lookahead),r==="init"&&(r="method"),l||(p&&this.isPropertyKey(a,"prototype")&&this.throwUnexpectedToken(t,o.StaticPrototype),!p&&this.isPropertyKey(a,"constructor")&&((r!=="method"||!m||u&&u.generator)&&this.throwUnexpectedToken(t,o.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.DuplicateConstructor):e.value=!0,r="constructor")),this.context.inConstructor=s,r==="property"?(this.consumeSemicolon(),this.finalize(i,new be(a,l,u,p,S))):this.finalize(i,new Se(a,l,u,r,p,S))}parseClassElementList(){let e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e}parseClassBody(){let e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new ee(t))}parseClassDeclaration(e){let t=this.createNode(),i=this.context.strict,s=this.context.allowSuper;this.context.strict=!0,this.expectKeyword("class");let r=e&&this.lookahead.type!==3?null:this.parseVariableIdentifier(),a=null;this.matchKeyword("extends")&&(this.nextToken(),a=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall),this.context.allowSuper=!0);let u=this.parseClassBody();return this.context.allowSuper=s,this.context.strict=i,this.finalize(t,new te(r,a,u,this.context.decorators))}parseClassExpression(){let e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");let i=this.lookahead.type===3?this.parseVariableIdentifier():null,s=null;this.matchKeyword("extends")&&(this.nextToken(),s=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall),this.context.allowSuper=!0);let r=this.parseClassBody();return this.context.strict=t,this.finalize(e,new ie(i,s,r,this.context.decorators))}parseModule(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;let e=this.createNode(),t=this.parseDirectivePrologues();for(;this.lookahead.type!==2;)t.push(this.parseStatementListItem());return this.finalize(e,new We(t))}parseScript(){let e=this.createNode(),t=this.parseDirectivePrologues();for(;this.lookahead.type!==2;)t.push(this.parseStatementListItem());return this.finalize(e,new _e(t))}parseImportAttributes(){if(this.lookahead.value==="assert"){this.nextToken(),this.expect("{");let e=[];for(;!this.match("}");)e.push(this.parseImportAttribute()),this.match("}")||this.expectCommaSeparator();return this.expect("}"),e}return null}parseImportAttribute(){let e=this.createNode();this.lookahead.type!==3&&this.throwUnexpectedToken(this.nextToken());let t=this.parseIdentifierName();this.match(":")||this.throwUnexpectedToken(this.nextToken()),this.nextToken();let i=this.nextToken(),s=this.getTokenRaw(i),r=this.finalize(e,new F(i.value,s));return this.finalize(e,new me(t,r))}parseModuleSpecifier(){let e=this.createNode();this.lookahead.type!==8&&this.throwError(o.InvalidModuleSpecifier);let t=this.nextToken(),i=this.getTokenRaw(t);return h.isStringWellFormedUnicode(t.value)||this.throwError(o.InvalidModuleSpecifier),this.finalize(e,new F(t.value,i))}parseImportSpecifier(){let e=this.createNode(),t,i;return this.lookahead.type===3?(t=this.parseVariableIdentifier(),i=t,this.matchContextualKeyword("as")&&(this.nextToken(),i=this.parseVariableIdentifier())):(t=this.lookahead.type==8?this.parseModuleSpecifier():this.parseIdentifierName(),i=t,this.matchContextualKeyword("as")?(this.nextToken(),i=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(e,new ye(i,t))}parseNamedImports(){this.expect("{");let e=[];for(;!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e}parseImportDefaultSpecifier(){let e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new fe(t))}parseImportNamespaceSpecifier(){let e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.NoAsAfterImportNamespace),this.lookahead.escaped&&this.throwError(o.NoAsAndFromEscapeSequences),this.nextToken();let t=this.parseIdentifierName();return this.finalize(e,new Ee(t))}parseImportDeclaration(){this.context.inFunctionBody&&this.throwError(o.IllegalImportDeclaration);let e=this.createNode();this.expectKeyword("import");let t,i=[];if(this.lookahead.type===8)t=this.parseModuleSpecifier();else{if(this.match("{")?i=i.concat(this.parseNamedImports()):this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(i.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.match("{")?i=i.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){let r=this.lookahead.value?o.UnexpectedToken:o.MissingFromClause;this.throwError(r,this.lookahead.value)}this.nextToken(),t=this.parseModuleSpecifier()}let s=this.parseImportAttributes();return this.consumeSemicolon(),this.finalize(e,new De(i,t,s))}parseExportSpecifier(){let e=this.createNode(),t=this.lookahead.type==8?this.parseModuleSpecifier():this.parseIdentifierName(),i=t;return this.matchContextualKeyword("as")&&(this.lookahead.escaped&&this.throwError(o.NoAsAndFromEscapeSequences),this.nextToken(),i=this.lookahead.type==8?this.parseModuleSpecifier():this.parseIdentifierName()),this.finalize(e,new ue(t,i))}parseExportDeclaration(){this.context.inFunctionBody&&this.throwError(o.IllegalExportDeclaration);let e=this.createNode();this.expectKeyword("export");let t;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){let i=this.parseFunctionDeclaration(!0);t=this.finalize(e,new b(i))}else if(this.matchKeyword("class")){let i=this.parseClassDeclaration(!0);t=this.finalize(e,new b(i))}else if(this.matchContextualKeyword("async")){let i=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression();t=this.finalize(e,new b(i))}else{this.matchContextualKeyword("from")&&this.throwError(o.UnexpectedToken,this.lookahead.value);let i=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),t=this.finalize(e,new b(i))}else if(this.match("*")){this.nextToken();let i=null;if(this.matchContextualKeyword("as")&&(this.lookahead.escaped&&this.throwError(o.NoAsAndFromEscapeSequences),this.nextToken(),i=this.lookahead.type==8?this.parseModuleSpecifier():this.parseIdentifierName()),!this.matchContextualKeyword("from")){let a=this.lookahead.value?o.UnexpectedToken:o.MissingFromClause;this.throwError(a,this.lookahead.value)}this.lookahead.escaped&&this.throwError(o.NoAsAndFromEscapeSequences),this.nextToken();let s=this.parseModuleSpecifier(),r=this.parseImportAttributes();this.consumeSemicolon(),t=this.finalize(e,new oe(s,i,r))}else if(this.lookahead.type===4){let i;switch(this.lookahead.value){case"let":case"const":i=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":i=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new T(i,[],null,null))}else if(this.matchAsyncFunction()){let i=this.parseFunctionDeclaration();t=this.finalize(e,new T(i,[],null,null))}else{let i=[],s=null,r=!1,a=null;for(this.expect("{");!this.match("}");)r=r||this.matchKeyword("default"),i.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.lookahead.escaped&&this.throwError(o.NoAsAndFromEscapeSequences),this.nextToken(),s=this.parseModuleSpecifier(),a=this.parseImportAttributes(),this.consumeSemicolon();else if(r){let u=this.lookahead.value?o.UnexpectedToken:o.MissingFromClause;this.throwError(u,this.lookahead.value)}else a=this.parseImportAttributes(),this.consumeSemicolon();t=this.finalize(e,new T(null,i,s,a))}return t}};var At={quot:'"',amp:"&",apos:"'",gt:">",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666",lang:"\u27E8",rang:"\u27E9"};E[100]="JSXIdentifier";E[101]="JSXText";function it(n){let e;switch(n.type){case"JSXIdentifier":e=n.name;break;case"JSXNamespacedName":let i=n;e=it(i.namespace)+":"+it(i.name);break;case"JSXMemberExpression":let s=n;e=it(s.object)+"."+it(s.property);break;default:break}return e}var Dt=class extends tt{constructor(e,t,i){super(e,t,i)}parsePrimaryExpression(){return this.match("<")?this.parseJSXRoot():super.parsePrimaryExpression()}startJSX(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column}finishJSX(){this.nextToken()}reenterJSX(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()}createJSXNode(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}createJSXChildNode(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}scanXHTMLEntity(e){let t="&",i=!0,s=!1,r=!1,a=!1;for(;!this.scanner.eof()&&i&&!s;){let u=this.scanner.source[this.scanner.index];if(u===e)break;if(s=u===";",t+=u,++this.scanner.index,!s)switch(t.length){case 2:r=u==="#";break;case 3:r&&(a=u==="x",i=a||h.isDecimalDigit(u.charCodeAt(0)),r=r&&!a);break;default:i=i&&!(r&&!h.isDecimalDigit(u.charCodeAt(0))),i=i&&!(a&&!h.isHexDigit(u.charCodeAt(0)));break}}if(i&&s&&t.length>2){let u=t.substr(1,t.length-2);r&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):a&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):!r&&!a&&At[u]&&(t=At[u])}return t}lexJSX(){let e=this.scanner.source.charCodeAt(this.scanner.index);if(e===60||e===62||e===47||e===58||e===61||e===123||e===125){let t=this.scanner.source[this.scanner.index++];return{type:7,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(e===34||e===39){let t=this.scanner.index,i=this.scanner.source[this.scanner.index++],s="";for(;!this.scanner.eof();){let r=this.scanner.source[this.scanner.index++];if(r===i)break;r==="&"?s+=this.scanXHTMLEntity(i):s+=r}return{type:8,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(e===46){let t=this.scanner.source.charCodeAt(this.scanner.index+1),i=this.scanner.source.charCodeAt(this.scanner.index+2),s=t===46&&i===46?"...":".",r=this.scanner.index;return this.scanner.index+=s.length,{type:7,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:r,end:this.scanner.index}}if(e===96)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(h.isIdentifierStart(e)&&e!==92){let t=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){let s=this.scanner.source.charCodeAt(this.scanner.index);if(h.isIdentifierPart(s)&&s!==92)++this.scanner.index;else if(s===45)++this.scanner.index;else break}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()}nextJSXToken(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;let e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e}nextJSXText(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;let e=this.scanner.index,t="";for(;!this.scanner.eof();){let s=this.scanner.source[this.scanner.index];if(s==="{"||s==="<")break;++this.scanner.index,t+=s,h.isLineTerminator(s.charCodeAt(0))&&(++this.scanner.lineNumber,s==="\r"&&this.scanner.source[this.scanner.index]===`
`&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;let i={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(i)),i}peekJSXToken(){let e=this.scanner.saveState();this.scanner.scanComments();let t=this.lexJSX();return this.scanner.restoreState(e),t}expectJSX(e){let t=this.nextJSXToken();(t.type!==7||t.value!==e)&&this.throwUnexpectedToken(t)}matchJSX(e){let t=this.peekJSXToken();return t.type===7&&t.value===e}parseJSXIdentifier(){let e=this.createJSXNode(),t=this.nextJSXToken();return t.type!==100&&this.throwUnexpectedToken(t),this.finalize(e,new ct(t.value))}parseJSXElementName(){let e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){let i=t;this.expectJSX(":");let s=this.parseJSXIdentifier();t=this.finalize(e,new rt(i,s))}else if(this.matchJSX("."))for(;this.matchJSX(".");){let i=t;this.expectJSX(".");let s=this.parseJSXIdentifier();t=this.finalize(e,new ht(i,s))}return t}parseJSXAttributeName(){let e=this.createJSXNode(),t,i=this.parseJSXIdentifier();if(this.matchJSX(":")){let s=i;this.expectJSX(":");let r=this.parseJSXIdentifier();t=this.finalize(e,new rt(s,r))}else t=i;return t}parseJSXStringLiteralAttribute(){let e=this.createJSXNode(),t=this.nextJSXToken();t.type!==8&&this.throwUnexpectedToken(t);let i=this.getTokenRaw(t);return this.finalize(e,new F(t.value,i))}parseJSXExpressionAttribute(){let e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");let t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new st(t))}parseJSXAttributeValue(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()}parseJSXNameValueAttribute(){let e=this.createJSXNode(),t=this.parseJSXAttributeName(),i=null;return this.matchJSX("=")&&(this.expectJSX("="),i=this.parseJSXAttributeValue()),this.finalize(e,new pt(t,i))}parseJSXSpreadAttribute(){let e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();let t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new mt(t))}parseJSXAttributes(){let e=[];for(;!this.matchJSX("/")&&!this.matchJSX(">");){let t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e}parseJSXOpeningElement(){let e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX(">"))return this.expectJSX(">"),this.finalize(e,new dt(!1));let t=this.parseJSXElementName(),i=this.parseJSXAttributes(),s=this.matchJSX("/");return s&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new nt(t,s,i))}parseJSXBoundaryElement(){let e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){if(this.expectJSX("/"),this.matchJSX(">"))return this.expectJSX(">"),this.finalize(e,new ut);let r=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new ot(r))}let t=this.parseJSXElementName(),i=this.parseJSXAttributes(),s=this.matchJSX("/");return s&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new nt(t,s,i))}parseJSXEmptyExpression(){let e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new lt)}parseJSXExpressionContainer(){let e=this.createJSXNode();this.expectJSX("{");let t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new st(t))}parseJSXChildren(){let e=[];for(;!this.scanner.eof();){let t=this.createJSXChildNode(),i=this.nextJSXText();if(i.start<i.end){let s=this.getTokenRaw(i),r=this.finalize(t,new xt(i.value,s));e.push(r)}if(this.scanner.source[this.scanner.index]==="{"){let s=this.parseJSXExpressionContainer();e.push(s)}else break}return e}parseComplexJSXElement(e){let t=[];for(;!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());let i=this.createJSXChildNode(),s=this.parseJSXBoundaryElement();if(s.type==="JSXOpeningElement"){let r=s;if(r.selfClosing){let a=this.finalize(i,new qe(r,[],null));e.children.push(a)}else t.push(e),e={node:i,opening:r,closing:null,children:[]}}if(s.type==="JSXClosingElement"){e.closing=s;let r=it(e.opening.name),a=it(e.closing.name);if(r!==a&&this.tolerateError("Expected corresponding JSX closing tag for %0",r),t.length>0){let u=this.finalize(e.node,new qe(e.opening,e.children,e.closing));e=t[t.length-1],e.children.push(u),t.pop()}else break}if(s.type==="JSXClosingFragment")if(e.closing=s,e.opening.type!=="JSXOpeningFragment")this.tolerateError("Expected corresponding JSX closing tag for jsx fragment");else break}return e}parseJSXElement(){let e=this.createJSXNode(),t=this.parseJSXOpeningElement(),i=[],s=null;if(!t.selfClosing){let r=this.parseComplexJSXElement({node:e,opening:t,closing:s,children:i});i=r.children,s=r.closing}return this.finalize(e,new qe(t,i,s))}parseJSXRoot(){this.config.tokens&&this.tokens.pop(),this.startJSX();let e=this.parseJSXElement();return this.finishJSX(),e}isStartOfExpression(){return super.isStartOfExpression()||this.match("<")}};var zt=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","??","?",":","===","==",">=","<=","<",">","!=","!=="],Ft=class{values;curly;paren;constructor(){this.values=[],this.curly=this.paren=-1}beforeFunctionExpression(e){return zt.includes(e)}isRegexStart(){let e=this.values[this.values.length-1],t=e!==null;switch(e){case"this":case"]":t=!1;break;case")":let i=this.values[this.paren-1];t=i==="if"||i==="while"||i==="for"||i==="with";break;case"}":if(t=!0,this.values[this.curly-3]==="function"){let s=this.values[this.curly-4];t=s?!this.beforeFunctionExpression(s):!1}else if(this.values[this.curly-4]==="function"){let s=this.values[this.curly-5];t=s?!this.beforeFunctionExpression(s):!0}break;default:break}return t}push(e){e.type===7||e.type===4?(e.value==="{"?this.curly=this.values.length:e.value==="("&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)}},ft=class{errorHandler;scanner;trackRange;trackLoc;buffer;reader;constructor(e,t){this.errorHandler=new Ze,this.errorHandler.tolerant=t?typeof t.tolerant=="boolean"&&t.tolerant:!1,this.scanner=new et(e,this.errorHandler),this.scanner.trackComment=t?typeof t.comment=="boolean"&&t.comment:!1,this.trackRange=t?typeof t.range=="boolean"&&t.range:!1,this.trackLoc=t?typeof t.loc=="boolean"&&t.loc:!1,this.buffer=[],this.reader=new Ft}errors(){return this.errorHandler.errors}getNextToken(){if(this.buffer.length===0){let e=this.scanner.scanComments();if(this.scanner.trackComment)for(let t=0;t<e.length;++t){let i=e[t],s=this.scanner.source.slice(i.slice[0],i.slice[1]),r={type:i.multiLine?"BlockComment":"LineComment",value:s};this.trackRange&&(r.range=i.range),this.trackLoc&&(r.loc=i.loc),this.buffer.push(r)}if(!this.scanner.eof()){let t;this.trackLoc&&(t={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});let i=this.scanner.source[this.scanner.index]==="/"&&this.reader.isRegexStart(),s;if(i){let a=this.scanner.saveState();try{s=this.scanner.scanRegExp()}catch{this.scanner.restoreState(a),s=this.scanner.lex()}}else s=this.scanner.lex();this.reader.push(s);let r={type:E[s.type],value:this.scanner.source.slice(s.start,s.end)};if(this.trackRange&&(r.range=[s.start,s.end]),this.trackLoc&&(t.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},r.loc=t),s.type===9){let a=s.pattern,u=s.flags;r.regex={pattern:a,flags:u}}this.buffer.push(r)}}return this.buffer.shift()}};var Et=class{visit(e){if(e==null)return e;switch(e.type){case"AssignmentExpression":return this.visitAssignmentExpression(e);case"AssignmentPattern":return this.visitAssignmentPattern(e);case"ArrayExpression":return this.visitArrayExpression(e);case"ArrayPattern":return this.visitArrayPattern(e);case"ArrowFunctionExpression":return this.visitArrowFunctionExpression(e);case"AwaitExpression":return this.visitAwaitExpression(e);case"BlockStatement":return this.visitBlockStatement(e);case"BinaryExpression":return this.visitBinaryExpression(e);case"BreakStatement":return this.visitBreakStatement(e);case"CallExpression":return this.visitCallExpression(e);case"CatchClause":return this.visitCatchClause(e);case"ChainExpression":return this.visitChainExpression(e);case"ClassBody":return this.visitClassBody(e);case"ClassDeclaration":return this.visitClassDeclaration(e);case"ClassExpression":return this.visitClassExpression(e);case"ConditionalExpression":return this.visitConditionalExpression(e);case"ContinueStatement":return this.visitContinueStatement(e);case"Decorator":return this.visitDecorator(e);case"DoWhileStatement":return this.visitDoWhileStatement(e);case"DebuggerStatement":return this.visitDebuggerStatement(e);case"EmptyStatement":return this.visitEmptyStatement(e);case"ExportAllDeclaration":return this.visitExportAllDeclaration(e);case"ExportDefaultDeclaration":return this.visitExportDefaultDeclaration(e);case"ExportNamedDeclaration":return this.visitExportNamedDeclaration(e);case"ExportSpecifier":return this.visitExportSpecifier(e);case"ExpressionStatement":return this.visitExpressionStatement(e);case"ForStatement":return this.visitForStatement(e);case"ForOfStatement":return this.visitForOfStatement(e);case"ForInStatement":return this.visitForInStatement(e);case"FunctionDeclaration":return this.visitFunctionDeclaration(e);case"FunctionExpression":return this.visitFunctionExpression(e);case"Identifier":return this.visitIdentifier(e);case"IfStatement":return this.visitIfStatement(e);case"ImportAttribute":return this.visitImportAttribute(e);case"ImportExpression":return this.visitImportExpression(e);case"ImportDeclaration":return this.visitImportDeclaration(e);case"ImportDefaultSpecifier":return this.visitImportDefaultSpecifier(e);case"ImportNamespaceSpecifier":return this.visitImportNamespaceSpecifier(e);case"ImportSpecifier":return this.visitImportSpecifier(e);case"Literal":return this.visitLiteral(e);case"LabeledStatement":return this.visitLabeledStatement(e);case"LogicalExpression":return this.visitLogicalExpression(e);case"MemberExpression":return this.visitMemberExpression(e);case"MetaProperty":return this.visitMetaProperty(e);case"MethodDefinition":return this.visitMethodDefinition(e);case"NewExpression":return this.visitNewExpression(e);case"ObjectExpression":return this.visitObjectExpression(e);case"ObjectPattern":return this.visitObjectPattern(e);case"Program":return this.visitProgram(e);case"Property":return this.visitProperty(e);case"PrivateIdentifier":return this.visitPrivateIdentifier(e);case"RestElement":return this.visitRestElement(e);case"ReturnStatement":return this.visitReturnStatement(e);case"SequenceExpression":return this.visitSequenceExpression(e);case"SpreadElement":return this.visitSpreadElement(e);case"StaticBlock":return this.visitStaticBlock(e);case"Super":return this.visitSuper(e);case"SwitchCase":return this.visitSwitchCase(e);case"SwitchStatement":return this.visitSwitchStatement(e);case"TaggedTemplateExpression":return this.visitTaggedTemplateExpression(e);case"TemplateElement":return this.visitTemplateElement(e);case"TemplateLiteral":return this.visitTemplateLiteral(e);case"ThisExpression":return this.visitThisExpression(e);case"ThrowStatement":return this.visitThrowStatement(e);case"TryStatement":return this.visitTryStatement(e);case"UnaryExpression":return this.visitUnaryExpression(e);case"UpdateExpression":return this.visitUpdateExpression(e);case"VariableDeclaration":return this.visitVariableDeclaration(e);case"VariableDeclarator":return this.visitVariableDeclarator(e);case"WhileStatement":return this.visitWhileStatement(e);case"WithStatement":return this.visitWithStatement(e);case"YieldExpression":return this.visitYieldExpression(e)}}visitNodeList(e){if(e==null)return e;let t=null;for(let i=0,s=e.length;i<s;i++){let r=this.visit(e[i]);if(t!=null)t.push(r);else if(r!=e[i]){t=[];for(let a=0;a<i;a++)t.push(e[a]);t.push(r)}}return t??e}visitAssignmentExpression(e){let t=this.visit(e.left),i=this.visit(e.right);return t!==e.left||i!==e.right?new Y(e.operator,t,i):e}visitAssignmentPattern(e){let t=this.visit(e.left),i=this.visit(e.right);return t!==e.left||i!==e.right?new v(t,i):e}visitArrayExpression(e){let t=this.visitNodeList(e.elements);return t!==e.elements?new V(t):e}visitArrayPattern(e){let t=this.visitNodeList(e.elements);return t!==e.elements?new W(t):e}visitArrowFunctionExpression(e){let t=this.visit(e.id),i=this.visitNodeList(e.params),s=this.visit(e.body);if(t!==e.id||i!==e.params||s!==e.body){let r=new G(i,s,e.expression,e.async);return r.id=t,r}return e}visitAwaitExpression(e){let t=this.visit(e.argument);return t!==e.argument?new _(t):e}visitBlockStatement(e){let t=this.visitNodeList(e.body);return t!==e.body?new M(t):e}visitBinaryExpression(e){let t=this.visit(e.left),i=this.visit(e.right);return t!==e.left||i!==e.right?new B(e.operator,t,i):e}visitBreakStatement(e){let t=this.visit(e.label);return t!==e.label?new $(t):e}visitCallExpression(e){let t=this.visit(e.callee),i=this.visitNodeList(e.arguments);return t!==e.callee||i!==e.arguments?new Q(t,i,e.optional):e}visitCatchClause(e){let t=this.visit(e.param),i=this.visit(e.body);return t!==e.param||i!==e.body?new Z(t,i):e}visitChainExpression(e){let t=this.visit(e.expression);return t!==e.expression?new U(t):e}visitClassBody(e){let t=this.visitNodeList(e.body);return t!==e.body?new ee(t):e}visitClassDeclaration(e){let t=this.visit(e.id),i=this.visit(e.superClass),s=this.visit(e.body),r=this.visitNodeList(e.decorators);return t!==e.id||i!==e.superClass||s!==e.body||r!==e.decorators?new te(t,i,s,r):e}visitClassExpression(e){let t=this.visit(e.id),i=this.visit(e.superClass),s=this.visit(e.body),r=this.visitNodeList(e.decorators);return t!==e.id||i!==e.superClass||s!==e.body||r!==e.decorators?new ie(t,i,s,r):e}visitConditionalExpression(e){let t=this.visit(e.test),i=this.visit(e.consequent),s=this.visit(e.alternate);return t!==e.test||i!==e.consequent||s!==e.alternate?new se(t,i,s):e}visitContinueStatement(e){let t=this.visit(e.label);return t!==e.label?new re(t):e}visitDecorator(e){let t=this.visit(e.expression);return t!==e.expression?new ne(t):e}visitDoWhileStatement(e){let t=this.visit(e.body),i=this.visit(e.test);return t!==e.body||i!==e.test?new ae(t,i):e}visitDebuggerStatement(e){return e}visitEmptyStatement(e){return e}visitExportAllDeclaration(e){let t=this.visit(e.source),i=this.visit(e.exported),s=this.visitNodeList(e.assertions);return t!==e.source||i!==e.exported||s!==e.assertions?new oe(t,i,s):e}visitExportDefaultDeclaration(e){let t=this.visit(e.declaration);return t!==e.declaration?new b(t):e}visitExportNamedDeclaration(e){let t=this.visit(e.declaration),i=this.visitNodeList(e.specifiers),s=this.visit(e.source),r=this.visitNodeList(e.assertions);return t!==e.declaration||i!==e.specifiers||s!==e.source||r!==e.assertions?new T(t,i,s,r):e}visitExportSpecifier(e){let t=this.visit(e.exported),i=this.visit(e.local);return t!==e.exported||i!==e.local?new ue(t,i):e}visitExpressionStatement(e){let t=this.visit(e.expression);return t!==e.expression?new P(t):e}visitForStatement(e){let t=this.visit(e.init),i=this.visit(e.test),s=this.visit(e.update),r=this.visit(e.body);return t!==e.init||i!==e.test||s!==e.update||r!==e.body?new he(t,i,s,r):e}visitForOfStatement(e){let t=this.visit(e.left),i=this.visit(e.right),s=this.visit(e.body);return t!==e.left||i!==e.right||s!==e.body?new ce(t,i,s,e.await):e}visitForInStatement(e){let t=this.visit(e.left),i=this.visit(e.right),s=this.visit(e.body);return t!==e.left||i!==e.right||s!==e.body?new le(t,i,s):e}visitFunctionDeclaration(e){let t=this.visit(e.id),i=this.visitNodeList(e.params),s=this.visit(e.body);return t!==e.id||i!==e.params||s!==e.body?new pe(t,i,s,e.generator):e}visitFunctionExpression(e){let t=this.visit(e.id),i=this.visitNodeList(e.params),s=this.visit(e.body);return t!==e.id||i!==e.params||s!==e.body?new A(t,i,s,e.generator,e.async):e}visitIdentifier(e){return e}visitIfStatement(e){let t=this.visit(e.test),i=this.visit(e.consequent),s=this.visit(e.alternate);return t!==e.test||i!==e.consequent||s!==e.alternate?new de(t,i,s):e}visitImportAttribute(e){let t=this.visit(e.key),i=this.visit(e.value);return t!==e.key||i!==e.value?new me(t,i):e}visitImportExpression(e){let t=this.visit(e.source),i=this.visit(e.attributes);return t!==e.source||i!==e.attributes?new xe(t,i):e}visitImportDeclaration(e){let t=this.visitNodeList(e.specifiers),i=this.visit(e.source),s=this.visitNodeList(e.assertions);return t!==e.specifiers||i!==e.source||s!==e.assertions?new De(t,i,s):e}visitImportDefaultSpecifier(e){let t=this.visit(e.local);return t!==e.local?new fe(t):e}visitImportNamespaceSpecifier(e){let t=this.visit(e.local);return t!==e.local?new Ee(t):e}visitImportSpecifier(e){let t=this.visit(e.local),i=this.visit(e.imported);return t!==e.local||i!==e.imported?new ye(t,i):e}visitLiteral(e){return e}visitLabeledStatement(e){let t=this.visit(e.label),i=this.visit(e.body);return t!==e.label||i!==e.body?new Ce(t,i):e}visitLogicalExpression(e){let t=this.visit(e.left),i=this.visit(e.right);return t!==e.left||i!==e.right?new R(e.operator,t,i):e}visitMemberExpression(e){let t=this.visit(e.object),i=this.visit(e.property);return t!==e.object||i!==e.property?new k(e.computed,t,i,e.optional):e}visitMetaProperty(e){let t=this.visit(e.meta),i=this.visit(e.property);return t!==e.meta||i!==e.property?new z(t,i):e}visitMethodDefinition(e){let t=this.visit(e.key),i=this.visit(e.value),s=this.visitNodeList(e.decorators);return t!==e.key||i!==e.value||s!==e.decorators?new Se(t,e.computed,i,e.kind,e.static,s):e}visitNewExpression(e){let t=this.visit(e.callee),i=this.visitNodeList(e.arguments);return t!==e.callee||i!==e.arguments?new ge(t,i):e}visitObjectExpression(e){let t=this.visitNodeList(e.properties);return t!==e.properties?new Ae(t):e}visitObjectPattern(e){let t=this.visitNodeList(e.properties);return t!==e.properties?new Fe(t):e}visitProgram(e){let t=this.visitNodeList(e.body);return t!==e.body?new Ge(e.sourceType,t):e}visitProperty(e){let t=this.visit(e.key),i=this.visit(e.value),s=this.visitNodeList(e.decorators);return t!==e.key||i!==e.value||s!==s?"kind"in e?new K(e.kind,t,e.computed,i,e.method,e.shorthand):new be(t,e.computed,i,e.static,s):e}visitPrivateIdentifier(e){return e}visitRestElement(e){let t=this.visit(e.argument);return t!==e.argument?new w(t):e}visitReturnStatement(e){let t=this.visit(e.argument);return t!==e.argument?new ke(t):e}visitSequenceExpression(e){let t=this.visitNodeList(e.expressions);return t!==e.expressions?new X(t):e}visitSpreadElement(e){let t=this.visit(e.argument);return t!==e.argument?new we(t):e}visitStaticBlock(e){let t=this.visitNodeList(e.body);return t!==e.body?new Ne(t):e}visitSuper(e){return e}visitSwitchCase(e){let t=this.visit(e.test),i=this.visitNodeList(e.consequent);return t!==e.test||i!==e.consequent?new ve(t,i):e}visitSwitchStatement(e){let t=this.visit(e.discriminant),i=this.visitNodeList(e.cases);return t!==e.discriminant||i!==e.cases?new Be(t,i):e}visitTaggedTemplateExpression(e){let t=this.visit(e.tag),i=this.visit(e.quasi);return t!==e.tag||i!==e.quasi?new q(t,i):e}visitTemplateElement(e){return e}visitTemplateLiteral(e){let t=this.visitNodeList(e.quasis),i=this.visitNodeList(e.expressions);return t!==e.quasis||i!==e.expressions?new Ie(t,i):e}visitThisExpression(e){return e}visitThrowStatement(e){let t=this.visit(e.argument);return t!==e.argument?new Te(t):e}visitTryStatement(e){let t=this.visit(e.block),i=this.visit(e.handler),s=this.visit(e.finalizer);return t!==e.block||i!==e.handler||s!==e.finalizer?new Pe(t,i,s):e}visitUnaryExpression(e){let t=this.visit(e.argument);return t!==e.argument?new Xe(e.operator,t):e}visitUpdateExpression(e){let t=this.visit(e.argument);return t!==e.argument?new H(e.operator,t,e.prefix):e}visitVariableDeclaration(e){let t=this.visitNodeList(e.declarations);return t!==e.declarations?new g(t,e.kind):e}visitVariableDeclarator(e){let t=this.visit(e.id),i=this.visit(e.init);return t!==e.id||i!==e.init?new j(t,i):e}visitWhileStatement(e){let t=this.visit(e.test),i=this.visit(e.body);return t!==e.test||i!==e.body?new Le(t,i):e}visitWithStatement(e){let t=this.visit(e.object),i=this.visit(e.body);return t!==e.object||i!==e.body?new Je(t,i):e}visitYieldExpression(e){let t=this.visit(e.argument);return t!==e.argument?new Me(t,e.delegate):e}};function yt(n,e,t){let i=null,s=(d,x)=>{t&&t(d,x),i&&i.visit(d,x)},r=typeof t=="function"?s:null,a=!1;if(e){a=typeof e.comment=="boolean"&&e.comment;let d=typeof e.attachComment=="boolean"&&e.attachComment;(a||d)&&(i=new at,i.attach=d,e.comment=!0,r=s)}let u=!1;e&&typeof e.sourceType=="string"&&(u=e.sourceType==="module");let l;e&&typeof e.jsx=="boolean"&&e.jsx?l=new Dt(n,e,r):l=new tt(n,e,r);let p=u?l.parseModule():l.parseScript();return a&&i&&(p.comments=i.comments),l.config.tokens&&(p.tokens=l.tokens),l.config.tolerant&&(p.errors=l.errorHandler.errors),p}function Nt(n,e,t){let i=e||{};return i.sourceType="module",yt(n,i,t)}function vt(n,e,t){let i=e||{};return i.sourceType="script",yt(n,i,t)}function Bt(n,e,t){let i=new ft(n,e),s=[];try{for(;;){let r=i.getNextToken();if(!r)break;t&&(r=t(r)),s.push(r)}}catch(r){i.errorHandler.tolerate(r)}return i.errorHandler.tolerant&&(s.errors=i.errors()),s}var It="6.0.3",Ot={parse:yt,parseModule:Nt,parseScript:vt,tokenize:Bt,Syntax:J,version:It};return Mt(Kt);})();
