toilscript 0.1.36 → 0.1.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.generated.d.ts +39 -1
- package/dist/cli.js +75 -12
- package/dist/cli.js.map +3 -3
- package/dist/importmap.json +2 -2
- package/dist/toilscript.generated.d.ts +39 -1
- package/dist/toilscript.js +64 -62
- package/dist/toilscript.js.map +3 -3
- package/dist/web.js +3 -3
- package/package.json +1 -1
- package/std/assembly/bindings/dom.ts +1 -1
- package/std/assembly/bindings/toildb.ts +27 -0
- package/std/assembly/date.ts +2 -2
- package/std/assembly/index.d.ts +1 -1
- package/std/assembly/toildb.ts +40 -4
package/dist/toilscript.js
CHANGED
|
@@ -4,25 +4,27 @@
|
|
|
4
4
|
* Copyright 2026 Daniel Wirtz / The ToilScript Authors
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
var
|
|
7
|
+
var co=Object.defineProperty;var of=Object.getOwnPropertyDescriptor;var Ux=Object.getOwnPropertyNames;var Vx=Object.prototype.hasOwnProperty;var fo=(t,i)=>{for(var e in i)co(t,e,{get:i[e],enumerable:!0})},lf=(t,i,e,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of Ux(i))!Vx.call(t,n)&&n!==e&&co(t,n,{get:()=>i[n],enumerable:!(r=of(i,n))||r.enumerable});return t},_o=(t,i,e)=>(lf(t,i,"default"),e&&lf(e,i,"default"));var uf=(t,i,e,r)=>{for(var n=r>1?void 0:r?of(i,e):i,s=t.length-1,a;s>=0;s--)(a=t[s])&&(n=(r?a(i,e,n):a(n))||n);return r&&n&&co(i,e,n),n};var sf={};fo(sf,{ASTBuilder:()=>nf,ArrayLiteralExpression:()=>Ir,ArrowKind:()=>Ei,AssertionExpression:()=>Ra,AssertionKind:()=>Ti,AtomicRMWOp:()=>Mp,BinaryExpression:()=>Fa,BinaryModule:()=>Cl,BinaryOp:()=>Ii,BlockStatement:()=>Ya,BrOnOp:()=>rg,BreakStatement:()=>$a,CallExpression:()=>ka,Class:()=>rr,ClassDeclaration:()=>Pn,ClassExpression:()=>wa,ClassPrototype:()=>us,CommaExpression:()=>Ca,CommentKind:()=>Fp,CommentNode:()=>Ia,CommonFlags:()=>Ne,CommonNames:()=>C,CompiledExpression:()=>Ja,Compiler:()=>Bs,ConditionKind:()=>ec,ConstantValueKind:()=>_c,Constraints:()=>Yc,ConstructorExpression:()=>Pa,ContinueStatement:()=>el,DEFAULT_STACK_SIZE:()=>GI,DeclarationStatement:()=>De,DeclaredElement:()=>ir,DecoratorFlags:()=>nr,DecoratorKind:()=>Ye,DecoratorNode:()=>Sa,DiagnosticCategory:()=>Aa,DiagnosticCode:()=>ct,DiagnosticEmitter:()=>We,DiagnosticMessage:()=>Ta,DoStatement:()=>tl,Element:()=>ss,ElementAccessExpression:()=>Ba,ElementKind:()=>mt,EmptyStatement:()=>rl,Enum:()=>Yl,EnumDeclaration:()=>il,EnumValue:()=>$l,EnumValueDeclaration:()=>nl,ExportDefaultStatement:()=>ol,ExportImportStatement:()=>sl,ExportMember:()=>al,ExportNames:()=>Cs,ExportStatement:()=>ll,Expression:()=>ye,ExpressionId:()=>wr,ExpressionRunnerFlags:()=>Pl,ExpressionStatement:()=>ul,ExternalKind:()=>Np,FEATURES_ALL:()=>i0,FEATURES_DEFAULT:()=>n0,FEATURE_BULK_MEMORY:()=>qI,FEATURE_CLOSURES:()=>r0,FEATURE_EXCEPTION_HANDLING:()=>jI,FEATURE_EXTENDED_CONST:()=>$I,FEATURE_GC:()=>JI,FEATURE_MEMORY64:()=>ZI,FEATURE_MULTI_VALUE:()=>XI,FEATURE_MUTABLE_GLOBALS:()=>VI,FEATURE_NONTRAPPING_F2I:()=>OI,FEATURE_REFERENCE_TYPES:()=>QI,FEATURE_RELAXED_SIMD:()=>YI,FEATURE_SHARED_EVERYTHING:()=>t0,FEATURE_SIGN_EXTENSION:()=>UI,FEATURE_SIMD:()=>WI,FEATURE_STRINGREF:()=>e0,FEATURE_TAIL_CALLS:()=>HI,FEATURE_THREADS:()=>KI,FalseExpression:()=>Ha,Feature:()=>wt,FeatureFlags:()=>Lp,FieldDeclaration:()=>pl,FieldFlags:()=>$p,File:()=>ls,FloatLiteralExpression:()=>La,Flow:()=>zt,FlowFlags:()=>Vl,ForOfStatement:()=>fl,ForStatement:()=>cl,Function:()=>gt,FunctionDeclaration:()=>Bn,FunctionExpression:()=>Na,FunctionPrototype:()=>Xe,FunctionTypeNode:()=>Sr,GETTER_PREFIX:()=>ua,Global:()=>Cr,HeapTypeRef:()=>ge,INDEX_SUFFIX:()=>Ge,INNER_DELIMITER:()=>hp,INSTANCE_DELIMITER:()=>_p,IdentifierExpression:()=>Ke,IdentifierHandling:()=>wp,IfStatement:()=>_l,ImportDeclaration:()=>hl,ImportNames:()=>Wi,ImportStatement:()=>Ln,IndexSignature:()=>Yn,IndexSignatureNode:()=>Za,InstanceOfExpression:()=>Ma,IntegerLiteralExpression:()=>Bt,Interface:()=>$n,InterfaceDeclaration:()=>dl,InterfacePrototype:()=>eo,JSBuilder:()=>Di,LIBRARY_PREFIX:()=>pt,LIBRARY_SUBST:()=>Oy,LiteralExpression:()=>ft,LiteralKind:()=>Yt,Local:()=>Oe,LocalFlags:()=>Xn,MemoryOrder:()=>Yy,MemorySegment:()=>Si,MethodDeclaration:()=>Rr,Module:()=>Gt,ModuleDeclaration:()=>Al,NamedTypeNode:()=>ce,Namespace:()=>os,NamespaceDeclaration:()=>ml,NewExpression:()=>Ga,Node:()=>G,NodeKind:()=>st,NullExpression:()=>za,ObjectLiteralExpression:()=>_t,OmittedExpression:()=>Da,OperatorKind:()=>Re,Options:()=>Ps,PARENT_SUBST:()=>Yx,PATH_DELIMITER:()=>rt,PackedType:()=>Gn,Parameter:()=>fc,ParameterKind:()=>Fr,ParameterNode:()=>bi,ParenthesizedExpression:()=>Ua,Parser:()=>is,Precedence:()=>bg,Program:()=>ns,Property:()=>Zn,PropertyAccessExpression:()=>Lt,PropertyPrototype:()=>Pi,Range:()=>le,RefAsOp:()=>$y,RegexpLiteralExpression:()=>Va,Relooper:()=>wl,ReportMode:()=>Kl,Resolver:()=>Jn,ReturnStatement:()=>yl,Runtime:()=>la,RuntimeFeatures:()=>$c,SETTER_PREFIX:()=>pa,SIMDExtractOp:()=>Gp,SIMDLoadOp:()=>Up,SIMDLoadStoreLaneOp:()=>Vp,SIMDReplaceOp:()=>zp,SIMDShiftOp:()=>Dp,SIMDTernaryOp:()=>Op,STATIC_DELIMITER:()=>Sn,STUB_DELIMITER:()=>dp,SideEffects:()=>Yp,Signature:()=>qe,Source:()=>fe,SourceKind:()=>Ai,State:()=>Fl,Statement:()=>oe,StringEncodeOp:()=>sg,StringEqOp:()=>ag,StringLiteralExpression:()=>Ze,StringMeasureOp:()=>ng,StringNewOp:()=>ig,SuperExpression:()=>qa,SwitchBuilder:()=>zn,SwitchCase:()=>gl,SwitchStatement:()=>bl,TSDBuilder:()=>Ki,Target:()=>oi,TemplateLiteralExpression:()=>Wa,TernaryExpression:()=>Oa,ThisExpression:()=>Ka,ThrowStatement:()=>xl,Token:()=>vi,Tokenizer:()=>kr,TrueExpression:()=>ja,TryStatement:()=>Tl,TupleTypeNode:()=>Ea,Type:()=>p,TypeBuilderErrorReason:()=>Bp,TypeDeclaration:()=>El,TypeDefinition:()=>$e,TypeFlags:()=>yt,TypeKind:()=>er,TypeName:()=>gi,TypeNode:()=>yi,TypeParameterNode:()=>va,TypeRef:()=>L,TypedElement:()=>Ut,Typeinfo:()=>ui,TypeinfoFlags:()=>oa,UnaryExpression:()=>Cn,UnaryOp:()=>Dn,UnaryPostfixExpression:()=>Qa,UnaryPrefixExpression:()=>Xa,UncheckedBehavior:()=>Ol,VariableDeclaration:()=>vl,VariableLikeDeclarationStatement:()=>xi,VariableLikeElement:()=>Pr,VariableStatement:()=>Sl,VoidStatement:()=>Il,WhileStatement:()=>Rl,WideIntAddSubOp:()=>eg,WideIntMulOp:()=>tg,addGlobalAlias:()=>CI,allocPtrArray:()=>he,buildJS:()=>P0,buildServerModule:()=>n8,buildTSD:()=>C0,compile:()=>w0,createType:()=>je,defaultFeatures:()=>ao,diagnosticCategoryToColor:()=>Qy,diagnosticCategoryToString:()=>Rp,diagnosticCodeToString:()=>ca,ensureType:()=>Qn,expandType:()=>qp,featureToString:()=>li,findDecorator:()=>Nt,formatDiagnostic:()=>Xy,formatDiagnosticMessage:()=>Xy,getBinaryLeft:()=>Qe,getBinaryOp:()=>Ri,getBinaryRight:()=>Me,getBinaryenModuleRef:()=>B0,getBlockChildAt:()=>Kn,getBlockChildCount:()=>Wn,getBlockName:()=>qn,getBreakCondition:()=>B2,getBreakName:()=>P2,getCallOperandAt:()=>Ve,getCallOperandCount:()=>dt,getCallTarget:()=>Hn,getConstValueF32:()=>Ae,getConstValueF64:()=>Ee,getConstValueI32:()=>ne,getConstValueI64High:()=>we,getConstValueI64Low:()=>ve,getConstValueInteger:()=>Wp,getConstValueV128:()=>Kp,getDefaultParameterName:()=>Eg,getDependee:()=>F0,getDiagnosticCategory:()=>d0,getDiagnosticCode:()=>h0,getDiagnosticMessage:()=>m0,getDiagnosticRange:()=>y0,getDiagnosticRelatedRange:()=>g0,getDropValue:()=>N2,getExpressionId:()=>$,getExpressionType:()=>se,getFunctionBody:()=>z2,getFunctionName:()=>Jp,getFunctionParams:()=>D2,getFunctionResults:()=>U2,getFunctionVars:()=>V2,getGlobalGetName:()=>Vn,getGlobalInit:()=>W2,getGlobalName:()=>O2,getGlobalType:()=>q2,getIfCondition:()=>zl,getIfFalse:()=>Fi,getIfTrue:()=>jn,getLoadBytes:()=>jp,getLoadOffset:()=>v2,getLoadPtr:()=>S2,getLocalGetIndex:()=>ht,getLocalSetIndex:()=>Nl,getLocalSetValue:()=>Ml,getLoopBody:()=>C2,getLoopName:()=>w2,getMemoryGrowDelta:()=>G2,getRangeEnd:()=>x0,getRangeSource:()=>T0,getRangeStart:()=>b0,getReturnValue:()=>M2,getSelectCondition:()=>L2,getSelectElse:()=>Xp,getSelectThen:()=>Qp,getSideEffects:()=>ki,getSource:()=>_0,getSourceNormalizedPath:()=>A0,getStoreBytes:()=>I2,getStoreOffset:()=>R2,getStorePtr:()=>F2,getStoreValue:()=>k2,getTagName:()=>K2,getTagParams:()=>j2,getTagResults:()=>H2,getUnaryOp:()=>On,getUnaryValue:()=>Gl,initializeProgram:()=>k0,isConstExpressionNaN:()=>Ll,isConstNaN:()=>E2,isConstNegZero:()=>Bl,isConstNonZero:()=>at,isConstZero:()=>He,isDeclaredElement:()=>as,isError:()=>S0,isGlobalMutable:()=>Zp,isIllegalVariableIdentifier:()=>Cp,isInfo:()=>E0,isLoadSigned:()=>Hp,isLocalTee:()=>Un,isNullableType:()=>lg,isTypeOmitted:()=>ke,isTypedElement:()=>ql,isWarning:()=>v0,mangleInternalName:()=>Ce,mangleInternalPath:()=>Nn,mustPreserveSideEffects:()=>Dl,newOptions:()=>mI,newProgram:()=>c0,nextDiagnostic:()=>f0,nextFile:()=>R0,operatorTokenToString:()=>Ie,optimize:()=>N0,parse:()=>I0,readString:()=>Ue,removeGlobalAlias:()=>PI,runtimeFunctions:()=>Ui,runtimeGlobals:()=>Vi,setBasenameHint:()=>l0,setBindingsHint:()=>o0,setBundleVersion:()=>DI,setDebugInfo:()=>p0,setExportMemory:()=>xI,setExportRuntime:()=>MI,setExportStart:()=>BI,setExportTable:()=>II,setFeature:()=>s0,setImportMemory:()=>TI,setImportTable:()=>SI,setInitialMemory:()=>AI,setLowMemoryLimit:()=>NI,setMaximumMemory:()=>EI,setMemoryBase:()=>kI,setNoAssert:()=>bI,setNoUnsafe:()=>LI,setOptimizeLevelHints:()=>a0,setPedantic:()=>u0,setRuntime:()=>gI,setSharedMemory:()=>vI,setSourceMap:()=>RI,setStackSize:()=>zI,setTableBase:()=>wI,setTarget:()=>yI,setUncheckedBehavior:()=>FI,tokenFromKeyword:()=>Jy,tokenIsAlsoIdentifier:()=>Zy,typesToRefs:()=>Br,typesToString:()=>Wl,util:()=>Ip,validate:()=>L0});var Z=typeof window<"u"&&window||typeof global<"u"&&global||self;if(typeof Z.ASC_TARGET>"u"){let e=function(){Error.captureStackTrace?Error.captureStackTrace(this,e):this.stack=this.name+": "+this.message+`
|
|
8
8
|
`+new Error().stack},r=function(a){this.message=a||"assertion failed",Error.captureStackTrace?Error.captureStackTrace(this,r):this.stack=this.name+": "+this.message+`
|
|
9
|
-
`+new Error().stack},n=function(a,l){if(a==l){if(a!=0)return 0;a=1/a,l=1/l}else{let o=a!=a,u=l!=l;if(o|u)return o-u;a==null&&(a=String(a)),l==null&&(l=String(l))}return a>l?1:-1};Dx=e,Ux=r,Vx=n,Z.ASC_TARGET=0,Z.ASC_RUNTIME=0,Z.ASC_NO_ASSERT=!1,Z.ASC_MEMORY_BASE=0,Z.ASC_OPTIMIZE_LEVEL=3,Z.ASC_SHRINK_LEVEL=0,Z.ASC_FEATURE_MUTABLE_GLOBAL=!1,Z.ASC_FEATURE_SIGN_EXTENSION=!1,Z.ASC_FEATURE_BULK_MEMORY=!1,Z.ASC_FEATURE_SIMD=!1,Z.ASC_FEATURE_THREADS=!1;let t=new Float64Array(1),i=new Uint32Array(t.buffer);Object.defineProperties(Z.i8=function(l){return l<<24>>24},{MIN_VALUE:{value:-128},MAX_VALUE:{value:127},parse(a,l){return parseInt(a,l)<<24>>24}}),Object.defineProperties(Z.i16=function(l){return l<<16>>16},{MIN_VALUE:{value:-32768},MAX_VALUE:{value:32767},parse(a,l){return parseInt(a,l)<<16>>16}}),Object.defineProperties(Z.i32=Z.isize=function(l){return l|0},{MIN_VALUE:{value:-2147483648},MAX_VALUE:{value:2147483647},parse(a,l){return parseInt(a,l)|0}}),Object.defineProperties(Z.u8=function(l){return l&255},{MIN_VALUE:{value:0},MAX_VALUE:{value:255},parse(a,l){return parseInt(a,l)&255}}),Object.defineProperties(Z.u16=function(l){return l&65535},{MIN_VALUE:{value:0},MAX_VALUE:{value:65535},parse(a,l){return parseInt(a,l)&65535}}),Object.defineProperties(Z.u32=Z.usize=function(l){return l>>>0},{MIN_VALUE:{value:0},MAX_VALUE:{value:4294967295},parse(a,l){return parseInt(a,l)>>>0}}),Object.defineProperties(Z.bool=function(l){return!!l},{MIN_VALUE:{value:!1},MAX_VALUE:{value:!0},parse(a){return a.trim()==="true"}}),Object.defineProperties(Z.f32=function(l){return Math.fround(l)},{EPSILON:{value:11920928955078125e-23},MIN_VALUE:{value:1401298464324817e-60},MAX_VALUE:{value:34028234663852886e22},MIN_NORMAL_VALUE:{value:11754943508222875e-54},MIN_SAFE_INTEGER:{value:-16777215},MAX_SAFE_INTEGER:{value:16777215},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return Math.fround(parseFloat(a))}}),Object.defineProperties(Z.f64=function(l){return+l},{EPSILON:{value:2220446049250313e-31},MIN_VALUE:{value:5e-324},MAX_VALUE:{value:17976931348623157e292},MIN_NORMAL_VALUE:{value:22250738585072014e-324},MIN_SAFE_INTEGER:{value:-9007199254740991},MAX_SAFE_INTEGER:{value:9007199254740991},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return parseFloat(a)}}),Z.clz=Math.clz32,Z.ctz=function(l){return 32-Math.clz32(~l&l-1)},Z.popcnt=function(l){return l-=l>>>1&1431655765,l=(l&858993459)+(l>>>2&858993459),(l+(l>>>4)&252645135)*16843009>>>24},Z.rotl=function(l,o){return o&=31,l<<o|l>>>32-o},Z.rotr=function(l,o){return o&=31,l>>>o|l<<32-o},Z.abs=Math.abs,Z.max=Math.max,Z.min=Math.min,Z.ceil=Math.ceil,Z.floor=Math.floor,Z.nearest=function(l){let u=Math.abs(l);return u<4503599627370496?(u+4503599627370496-4503599627370496)*Math.sign(l):l},Z.select=function(l,o,u){return u?l:o},Z.sqrt=Math.sqrt,Z.trunc=Math.trunc,Z.copysign=function(l,o){return o?Math.abs(l)*Math.sign(o):(t[0]=o,i[1]>>>31?-1:1)},Z.bswap=function(l){let o=l>>8&16711935,u=(l&16711935)<<8;return l=o|u,o=l>>16&65535,u=(l&65535)<<16,o|u},e.prototype=Object.create(Error.prototype),e.prototype.name="UnreachableError",e.prototype.message="unreachable",Z.unreachable=function(){throw new e},r.prototype=Object.create(Error.prototype),r.prototype.name="AssertionError",Z.assert=function(l,o){if(l)return l;throw new r(o)},Z.changetype=function(l){return l},String.fromCharCodes=function(l){let u=l.length;if(u<=8192)return String.fromCharCode.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCharCode.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.fromCodePoints=function(l){let u=l.length;if(u<=8192)return String.fromCodePoint.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCodePoint.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.prototype.at||Object.defineProperty(String.prototype,"at",{value:function(l){return this.charAt(l>=0?l:l+this.length)},configurable:!0}),String.prototype.replaceAll||Object.defineProperty(String.prototype,"replaceAll",{value:function(l,o){let u=this.split(l).join(o);return l.length||(u=o+u+o),u},configurable:!0});let s=Array.prototype.sort;Array.prototype.sort=function(l){return s.call(this,l||n)},[Array,Uint8ClampedArray,Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array].forEach(a=>{a.prototype.at||Object.defineProperty(a.prototype,"at",{value:function(o){return this[o>=0?o:o+this.length]},configurable:!0}),a.prototype.findLastIndex||Object.defineProperty(a.prototype,"findLastIndex",{value:function(o){for(let u=this.length-1;u>=0;--u)if(o(this[u],u,this))return u;return-1},configurable:!0}),a!=Array&&Object.defineProperty(a,"wrap",{value:function(o,u,c){return new a(o,u,c)},configurable:!0})}),Z.isInteger=Number.isInteger,Z.isFloat=function(l){return typeof l=="number"},Z.isNullable=function(l){return!0},Z.isReference=function(l){return typeof l=="object"||typeof l=="string"},Z.isFunction=function(l){return typeof l=="function"},Z.isString=function(l){return typeof l=="string"||l instanceof String},Z.isArray=Array.isArray,Z.isArrayLike=function(l){return l&&typeof l=="object"&&typeof l.length=="number"&&l.length>=0&&Math.trunc(l.length)===l.length},Z.isDefined=function(l){return typeof l<"u"},Z.isConstant=function(l){return!1},Z.unchecked=function(l){return l},Z.fmod=function(l,o){return l%o},Z.fmodf=function(l,o){return Math.fround(l%o)},Z.JSMath=Math,Object.defineProperties(Z.JSMath,{sincos_sin:{value:0,writable:!0},sincos_cos:{value:0,writable:!0},signbit:{value:function(l){return t[0]=l,!!(i[1]>>>31)}},sincos:{value:function(l){this.sincos_sin=Math.sin(l),this.sincos_cos=Math.cos(l)}},exp2:{value:function(l){return Math.pow(2,l)}}}),Z.unmanaged=function(){},Z.trace=function(a,l){l&&(a+=Array.prototype.slice.call(arguments,2,2+l)),console.error("trace: "+a)}}var Dx,Ux,Vx;var Zi={};po(Zi,{default:()=>Yi});co(Zi,RL);import*as RL from"binaryen";import{default as Yi}from"binaryen";import Ox from"long";var{_BinaryenTypeCreate:of,_BinaryenTypeArity:uf,_BinaryenTypeExpand:pf,_BinaryenTypeGetHeapType:Ht,_BinaryenTypeFromHeapType:de,_BinaryenTypeIsNullable:cf,_BinaryenTypeFuncref:ff,_BinaryenTypeExternref:_f,_BinaryenTypeAnyref:hf,_BinaryenTypeEqref:df,_BinaryenTypeI31ref:mf,_BinaryenTypeStructref:yf,_BinaryenTypeArrayref:gf,_BinaryenTypeStringref:bf,_BinaryenTypeNullref:xf,_BinaryenTypeNullExternref:Tf,_BinaryenTypeNullFuncref:Af,_BinaryenHeapTypeFunc:CL,_BinaryenHeapTypeExt:PL,_BinaryenHeapTypeAny:BL,_BinaryenHeapTypeEq:LL,_BinaryenHeapTypeI31:NL,_BinaryenHeapTypeStruct:ML,_BinaryenHeapTypeArray:GL,_BinaryenHeapTypeString:zL,_BinaryenHeapTypeNone:DL,_BinaryenHeapTypeNoext:UL,_BinaryenHeapTypeNofunc:VL,_BinaryenHeapTypeIsBasic:OL,_BinaryenHeapTypeIsSignature:qL,_BinaryenHeapTypeIsStruct:WL,_BinaryenHeapTypeIsArray:KL,_BinaryenHeapTypeIsBottom:Ef,_BinaryenHeapTypeGetBottom:vf,_BinaryenHeapTypeIsSubType:Sf,_BinaryenStructTypeGetNumFields:If,_BinaryenStructTypeGetFieldType:jL,_BinaryenStructTypeGetFieldPackedType:HL,_BinaryenStructTypeIsFieldMutable:QL,_BinaryenArrayTypeGetElementType:XL,_BinaryenArrayTypeGetElementPackedType:JL,_BinaryenArrayTypeIsElementMutable:ZL,_BinaryenSignatureTypeGetParams:YL,_BinaryenSignatureTypeGetResults:$L,_BinaryenModuleCreate:Rf,_BinaryenModuleDispose:Ff,_BinaryenSizeofLiteral:fo,_BinaryenLiteralInt32:kf,_BinaryenLiteralFloat32:wf,_BinaryenLiteralFloat64:Cf,_BinaryenLiteralVec128:Pf,_BinaryenLiteralFloat32Bits:eN,_BinaryenExpressionGetId:Rt,_BinaryenExpressionGetType:Ft,_BinaryenExpressionSetType:tN,_BinaryenExpressionPrint:rN,_BinaryenExpressionCopy:Bf,_BinaryenExpressionFinalize:Lf,_BinaryenBlock:Nf,_BinaryenBlockGetName:zs,_BinaryenBlockSetName:iN,_BinaryenBlockGetNumChildren:$i,_BinaryenBlockGetChildAt:en,_BinaryenBlockSetChildAt:Mf,_BinaryenBlockAppendChild:nN,_BinaryenBlockInsertChildAt:sN,_BinaryenBlockRemoveChildAt:aN,_BinaryenIf:Gf,_BinaryenIfGetCondition:tn,_BinaryenIfSetCondition:zf,_BinaryenIfGetIfTrue:rn,_BinaryenIfSetIfTrue:Df,_BinaryenIfGetIfFalse:nn,_BinaryenIfSetIfFalse:Uf,_BinaryenLoop:Vf,_BinaryenLoopGetName:Ds,_BinaryenLoopSetName:lN,_BinaryenLoopGetBody:sn,_BinaryenLoopSetBody:Of,_BinaryenBreak:qf,_BinaryenBreakGetName:Us,_BinaryenBreakSetName:oN,_BinaryenBreakGetCondition:an,_BinaryenBreakSetCondition:Wf,_BinaryenBreakGetValue:_o,_BinaryenBreakSetValue:Kf,_BinaryenSwitch:jf,_BinaryenSwitchGetNumNames:Hf,_BinaryenSwitchGetNameAt:Qf,_BinaryenSwitchSetNameAt:uN,_BinaryenSwitchAppendName:pN,_BinaryenSwitchInsertNameAt:cN,_BinaryenSwitchRemoveNameAt:fN,_BinaryenSwitchGetDefaultName:Xf,_BinaryenSwitchSetDefaultName:_N,_BinaryenSwitchGetCondition:ho,_BinaryenSwitchSetCondition:Jf,_BinaryenSwitchGetValue:mo,_BinaryenSwitchSetValue:Zf,_BinaryenCall:Yf,_BinaryenCallGetTarget:Yr,_BinaryenCallSetTarget:hN,_BinaryenCallGetNumOperands:Qt,_BinaryenCallGetOperandAt:Xt,_BinaryenCallSetOperandAt:Vs,_BinaryenCallAppendOperand:dN,_BinaryenCallInsertOperandAt:mN,_BinaryenCallRemoveOperandAt:yN,_BinaryenCallIsReturn:gN,_BinaryenCallSetReturn:bN,_BinaryenReturnCall:$f,_BinaryenCallIndirect:e_,_BinaryenCallIndirectGetTable:xN,_BinaryenCallIndirectSetTable:TN,_BinaryenCallIndirectGetTarget:yo,_BinaryenCallIndirectSetTarget:t_,_BinaryenCallIndirectGetNumOperands:ln,_BinaryenCallIndirectGetOperandAt:on,_BinaryenCallIndirectSetOperandAt:Os,_BinaryenCallIndirectAppendOperand:AN,_BinaryenCallIndirectInsertOperandAt:EN,_BinaryenCallIndirectRemoveOperandAt:vN,_BinaryenCallIndirectIsReturn:SN,_BinaryenCallIndirectSetReturn:IN,_BinaryenReturnCallIndirect:r_,_BinaryenLocalGet:i_,_BinaryenLocalGetGetIndex:qs,_BinaryenLocalGetSetIndex:RN,_BinaryenLocalSet:un,_BinaryenLocalSetIsTee:Ws,_BinaryenLocalSetGetIndex:$r,_BinaryenLocalSetSetIndex:FN,_BinaryenLocalSetGetValue:mr,_BinaryenLocalSetSetValue:Ks,_BinaryenLocalTee:n_,_BinaryenGlobalGet:s_,_BinaryenGlobalGetGetName:js,_BinaryenGlobalGetSetName:kN,_BinaryenGlobalSet:a_,_BinaryenGlobalSetGetName:l_,_BinaryenGlobalSetSetName:wN,_BinaryenGlobalSetGetValue:go,_BinaryenGlobalSetSetValue:o_,_BinaryenMemorySize:u_,_BinaryenMemoryGrow:p_,_BinaryenMemoryGrowGetDelta:pn,_BinaryenMemoryGrowSetDelta:c_,_BinaryenLoad:f_,_BinaryenLoadIsAtomic:CN,_BinaryenLoadSetAtomic:PN,_BinaryenLoadIsSigned:__,_BinaryenLoadSetSigned:BN,_BinaryenLoadGetOffset:h_,_BinaryenLoadSetOffset:LN,_BinaryenLoadGetBytes:d_,_BinaryenLoadSetBytes:NN,_BinaryenLoadGetAlign:MN,_BinaryenLoadSetAlign:GN,_BinaryenLoadGetPtr:cn,_BinaryenLoadSetPtr:m_,_BinaryenAtomicLoad:y_,_BinaryenStore:g_,_BinaryenStoreIsAtomic:zN,_BinaryenStoreSetAtomic:DN,_BinaryenStoreGetBytes:Hs,_BinaryenStoreSetBytes:UN,_BinaryenStoreGetOffset:Qs,_BinaryenStoreSetOffset:VN,_BinaryenStoreGetAlign:ON,_BinaryenStoreSetAlign:qN,_BinaryenStoreGetPtr:yr,_BinaryenStoreSetPtr:Xs,_BinaryenStoreGetValue:fn,_BinaryenStoreSetValue:b_,_BinaryenStoreGetValueType:WN,_BinaryenStoreSetValueType:KN,_BinaryenAtomicStore:x_,_BinaryenConst:ei,_BinaryenConstGetValueI32:T_,_BinaryenConstSetValueI32:jN,_BinaryenConstGetValueF32:A_,_BinaryenConstSetValueF32:HN,_BinaryenConstGetValueF64:E_,_BinaryenConstSetValueF64:QN,_BinaryenConstGetValueV128:v_,_BinaryenConstSetValueV128:XN,_BinaryenUnary:S_,_BinaryenUnaryGetOp:I_,_BinaryenUnarySetOp:JN,_BinaryenUnaryGetValue:_n,_BinaryenUnarySetValue:R_,_BinaryenWideIntAddSub:F_,_BinaryenWideIntMul:k_,_BinaryenBinary:w_,_BinaryenBinaryGetOp:C_,_BinaryenBinarySetOp:ZN,_BinaryenBinaryGetLeft:hn,_BinaryenBinarySetLeft:P_,_BinaryenBinaryGetRight:dn,_BinaryenBinarySetRight:B_,_BinaryenSelect:L_,_BinaryenSelectGetIfTrue:mn,_BinaryenSelectSetIfTrue:N_,_BinaryenSelectGetIfFalse:yn,_BinaryenSelectSetIfFalse:M_,_BinaryenSelectGetCondition:gn,_BinaryenSelectSetCondition:G_,_BinaryenDrop:bo,_BinaryenDropGetValue:bn,_BinaryenDropSetValue:z_,_BinaryenReturn:D_,_BinaryenReturnGetValue:gr,_BinaryenReturnSetValue:Js,_BinaryenNop:U_,_BinaryenUnreachable:V_,_BinaryenAtomicRMW:O_,_BinaryenAtomicRMWGetOp:YN,_BinaryenAtomicRMWSetOp:$N,_BinaryenAtomicRMWGetBytes:eM,_BinaryenAtomicRMWSetBytes:tM,_BinaryenAtomicRMWGetOffset:rM,_BinaryenAtomicRMWSetOffset:iM,_BinaryenAtomicRMWGetPtr:xo,_BinaryenAtomicRMWSetPtr:q_,_BinaryenAtomicRMWGetValue:To,_BinaryenAtomicRMWSetValue:W_,_BinaryenAtomicCmpxchg:K_,_BinaryenAtomicCmpxchgGetBytes:nM,_BinaryenAtomicCmpxchgSetBytes:sM,_BinaryenAtomicCmpxchgGetOffset:aM,_BinaryenAtomicCmpxchgSetOffset:lM,_BinaryenAtomicCmpxchgGetPtr:Ao,_BinaryenAtomicCmpxchgSetPtr:j_,_BinaryenAtomicCmpxchgGetExpected:Eo,_BinaryenAtomicCmpxchgSetExpected:H_,_BinaryenAtomicCmpxchgGetReplacement:vo,_BinaryenAtomicCmpxchgSetReplacement:Q_,_BinaryenAtomicWait:X_,_BinaryenAtomicWaitGetPtr:So,_BinaryenAtomicWaitSetPtr:J_,_BinaryenAtomicWaitGetExpected:Io,_BinaryenAtomicWaitSetExpected:Z_,_BinaryenAtomicWaitGetTimeout:Ro,_BinaryenAtomicWaitSetTimeout:Y_,_BinaryenAtomicWaitGetExpectedType:oM,_BinaryenAtomicWaitSetExpectedType:uM,_BinaryenAtomicNotify:$_,_BinaryenAtomicNotifyGetPtr:Fo,_BinaryenAtomicNotifySetPtr:eh,_BinaryenAtomicNotifyGetNotifyCount:ko,_BinaryenAtomicNotifySetNotifyCount:th,_BinaryenAtomicFence:rh,_BinaryenAtomicFenceGetOrder:pM,_BinaryenAtomicFenceSetOrder:cM,_BinaryenSIMDExtract:ih,_BinaryenSIMDExtractGetOp:fM,_BinaryenSIMDExtractSetOp:_M,_BinaryenSIMDExtractGetVec:wo,_BinaryenSIMDExtractSetVec:nh,_BinaryenSIMDExtractGetIndex:hM,_BinaryenSIMDExtractSetIndex:dM,_BinaryenSIMDReplace:sh,_BinaryenSIMDReplaceGetOp:mM,_BinaryenSIMDReplaceSetOp:yM,_BinaryenSIMDReplaceGetVec:Co,_BinaryenSIMDReplaceSetVec:ah,_BinaryenSIMDReplaceGetIndex:gM,_BinaryenSIMDReplaceSetIndex:bM,_BinaryenSIMDReplaceGetValue:Po,_BinaryenSIMDReplaceSetValue:lh,_BinaryenSIMDShuffle:oh,_BinaryenSIMDShuffleGetLeft:Bo,_BinaryenSIMDShuffleSetLeft:uh,_BinaryenSIMDShuffleGetRight:Lo,_BinaryenSIMDShuffleSetRight:ph,_BinaryenSIMDShuffleGetMask:xM,_BinaryenSIMDShuffleSetMask:TM,_BinaryenSIMDTernary:ch,_BinaryenSIMDTernaryGetOp:AM,_BinaryenSIMDTernarySetOp:EM,_BinaryenSIMDTernaryGetA:No,_BinaryenSIMDTernarySetA:fh,_BinaryenSIMDTernaryGetB:Mo,_BinaryenSIMDTernarySetB:_h,_BinaryenSIMDTernaryGetC:Go,_BinaryenSIMDTernarySetC:hh,_BinaryenSIMDShift:dh,_BinaryenSIMDShiftGetOp:vM,_BinaryenSIMDShiftSetOp:SM,_BinaryenSIMDShiftGetVec:zo,_BinaryenSIMDShiftSetVec:mh,_BinaryenSIMDShiftGetShift:Do,_BinaryenSIMDShiftSetShift:yh,_BinaryenSIMDLoad:gh,_BinaryenSIMDLoadGetOp:IM,_BinaryenSIMDLoadSetOp:RM,_BinaryenSIMDLoadGetOffset:FM,_BinaryenSIMDLoadSetOffset:kM,_BinaryenSIMDLoadGetAlign:wM,_BinaryenSIMDLoadSetAlign:CM,_BinaryenSIMDLoadGetPtr:Uo,_BinaryenSIMDLoadSetPtr:bh,_BinaryenSIMDLoadStoreLane:xh,_BinaryenSIMDLoadStoreLaneGetOp:PM,_BinaryenSIMDLoadStoreLaneSetOp:BM,_BinaryenSIMDLoadStoreLaneGetOffset:LM,_BinaryenSIMDLoadStoreLaneSetOffset:NM,_BinaryenSIMDLoadStoreLaneGetAlign:MM,_BinaryenSIMDLoadStoreLaneSetAlign:GM,_BinaryenSIMDLoadStoreLaneGetIndex:zM,_BinaryenSIMDLoadStoreLaneSetIndex:DM,_BinaryenSIMDLoadStoreLaneGetPtr:Vo,_BinaryenSIMDLoadStoreLaneSetPtr:Th,_BinaryenSIMDLoadStoreLaneGetVec:Oo,_BinaryenSIMDLoadStoreLaneSetVec:Ah,_BinaryenSIMDLoadStoreLaneIsStore:UM,_BinaryenMemoryInit:VM,_BinaryenMemoryInitGetSegment:OM,_BinaryenMemoryInitSetSegment:qM,_BinaryenMemoryInitGetDest:qo,_BinaryenMemoryInitSetDest:Eh,_BinaryenMemoryInitGetOffset:Wo,_BinaryenMemoryInitSetOffset:vh,_BinaryenMemoryInitGetSize:Ko,_BinaryenMemoryInitSetSize:Sh,_BinaryenDataDrop:WM,_BinaryenDataDropGetSegment:KM,_BinaryenDataDropSetSegment:jM,_BinaryenMemoryCopy:Ih,_BinaryenMemoryCopyGetDest:jo,_BinaryenMemoryCopySetDest:Rh,_BinaryenMemoryCopyGetSource:Ho,_BinaryenMemoryCopySetSource:Fh,_BinaryenMemoryCopyGetSize:Qo,_BinaryenMemoryCopySetSize:kh,_BinaryenMemoryFill:wh,_BinaryenMemoryFillGetDest:Xo,_BinaryenMemoryFillSetDest:Ch,_BinaryenMemoryFillGetValue:Jo,_BinaryenMemoryFillSetValue:Ph,_BinaryenMemoryFillGetSize:Zo,_BinaryenMemoryFillSetSize:Bh,_BinaryenRefNull:Lh,_BinaryenRefIsNull:Nh,_BinaryenRefIsNullGetValue:Yo,_BinaryenRefIsNullSetValue:Mh,_BinaryenRefAs:$o,_BinaryenRefAsGetOp:HM,_BinaryenRefAsSetOp:QM,_BinaryenRefAsGetValue:eu,_BinaryenRefAsSetValue:Gh,_BinaryenRefFunc:zh,_BinaryenRefFuncGetFunc:Dh,_BinaryenRefFuncSetFunc:XM,_BinaryenRefEq:Uh,_BinaryenRefEqGetLeft:tu,_BinaryenRefEqSetLeft:Vh,_BinaryenRefEqGetRight:ru,_BinaryenRefEqSetRight:Oh,_BinaryenTableGet:qh,_BinaryenTableGetGetTable:JM,_BinaryenTableGetSetTable:ZM,_BinaryenTableGetGetIndex:YM,_BinaryenTableGetSetIndex:$M,_BinaryenTableSet:Wh,_BinaryenTableSetGetTable:e7,_BinaryenTableSetSetTable:t7,_BinaryenTableSetGetIndex:r7,_BinaryenTableSetSetIndex:i7,_BinaryenTableSetGetValue:n7,_BinaryenTableSetSetValue:s7,_BinaryenTableSize:Kh,_BinaryenTableSizeGetTable:a7,_BinaryenTableSizeSetTable:l7,_BinaryenTableGrow:jh,_BinaryenTableGrowGetTable:o7,_BinaryenTableGrowSetTable:u7,_BinaryenTableGrowGetValue:p7,_BinaryenTableGrowSetValue:c7,_BinaryenTableGrowGetDelta:f7,_BinaryenTableGrowSetDelta:_7,_BinaryenTry:Hh,_BinaryenTryGetName:h7,_BinaryenTrySetName:d7,_BinaryenTryGetBody:iu,_BinaryenTrySetBody:Qh,_BinaryenTryGetNumCatchTags:m7,_BinaryenTryGetNumCatchBodies:nu,_BinaryenTryGetCatchTagAt:y7,_BinaryenTrySetCatchTagAt:g7,_BinaryenTryAppendCatchTag:b7,_BinaryenTryInsertCatchTagAt:x7,_BinaryenTryRemoveCatchTagAt:T7,_BinaryenTryGetCatchBodyAt:su,_BinaryenTrySetCatchBodyAt:Xh,_BinaryenTryAppendCatchBody:A7,_BinaryenTryInsertCatchBodyAt:E7,_BinaryenTryRemoveCatchBodyAt:v7,_BinaryenTryHasCatchAll:S7,_BinaryenTryGetDelegateTarget:I7,_BinaryenTrySetDelegateTarget:R7,_BinaryenTryIsDelegate:F7,_BinaryenThrow:Jh,_BinaryenThrowGetTag:Zh,_BinaryenThrowSetTag:k7,_BinaryenThrowGetNumOperands:au,_BinaryenThrowGetOperandAt:lu,_BinaryenThrowSetOperandAt:Yh,_BinaryenThrowAppendOperand:w7,_BinaryenThrowInsertOperandAt:C7,_BinaryenThrowRemoveOperandAt:P7,_BinaryenRethrow:$h,_BinaryenRethrowGetTarget:B7,_BinaryenRethrowSetDepth:L7,_BinaryenTupleMake:ed,_BinaryenTupleMakeGetNumOperands:ou,_BinaryenTupleMakeGetOperandAt:uu,_BinaryenTupleMakeSetOperandAt:td,_BinaryenTupleMakeAppendOperand:N7,_BinaryenTupleMakeInsertOperandAt:M7,_BinaryenTupleMakeRemoveOperandAt:G7,_BinaryenTupleExtract:rd,_BinaryenTupleExtractGetTuple:pu,_BinaryenTupleExtractSetTuple:id,_BinaryenTupleExtractGetIndex:z7,_BinaryenTupleExtractSetIndex:D7,_BinaryenPop:nd,_BinaryenRefI31:sd,_BinaryenRefI31GetValue:cu,_BinaryenRefI31SetValue:ad,_BinaryenI31Get:ld,_BinaryenI31GetGetI31:fu,_BinaryenI31GetSetI31:od,_BinaryenI31GetIsSigned:U7,_BinaryenI31GetSetSigned:V7,_BinaryenCallRef:O7,_BinaryenCallRefGetNumOperands:_u,_BinaryenCallRefGetOperandAt:hu,_BinaryenCallRefSetOperandAt:ud,_BinaryenCallRefAppendOperand:q7,_BinaryenCallRefInsertOperandAt:W7,_BinaryenCallRefRemoveOperandAt:K7,_BinaryenCallRefGetTarget:du,_BinaryenCallRefSetTarget:pd,_BinaryenCallRefIsReturn:j7,_BinaryenCallRefSetReturn:H7,_BinaryenRefTest:Q7,_BinaryenRefTestGetRef:mu,_BinaryenRefTestSetRef:cd,_BinaryenRefTestGetCastType:X7,_BinaryenRefTestSetCastType:J7,_BinaryenRefCast:Z7,_BinaryenRefCastGetRef:yu,_BinaryenRefCastSetRef:fd,_BinaryenBrOn:Y7,_BinaryenBrOnGetOp:$7,_BinaryenBrOnSetOp:eG,_BinaryenBrOnGetName:_d,_BinaryenBrOnSetName:tG,_BinaryenBrOnGetRef:gu,_BinaryenBrOnSetRef:hd,_BinaryenBrOnGetCastType:rG,_BinaryenBrOnSetCastType:iG,_BinaryenStructNew:nG,_BinaryenStructNewGetNumOperands:bu,_BinaryenStructNewGetOperandAt:xu,_BinaryenStructNewSetOperandAt:dd,_BinaryenStructNewAppendOperand:sG,_BinaryenStructNewInsertOperandAt:aG,_BinaryenStructNewRemoveOperandAt:lG,_BinaryenStructGet:oG,_BinaryenStructGetGetIndex:md,_BinaryenStructGetSetIndex:uG,_BinaryenStructGetGetRef:Tu,_BinaryenStructGetSetRef:yd,_BinaryenStructGetIsSigned:pG,_BinaryenStructGetSetSigned:cG,_BinaryenStructSet:fG,_BinaryenStructSetGetIndex:gd,_BinaryenStructSetSetIndex:_G,_BinaryenStructSetGetRef:Au,_BinaryenStructSetSetRef:bd,_BinaryenStructSetGetValue:Eu,_BinaryenStructSetSetValue:xd,_BinaryenArrayNew:hG,_BinaryenArrayNewGetInit:vu,_BinaryenArrayNewSetInit:Td,_BinaryenArrayNewGetSize:Su,_BinaryenArrayNewSetSize:Ad,_BinaryenArrayNewFixed:dG,_BinaryenArrayNewFixedGetNumValues:Iu,_BinaryenArrayNewFixedGetValueAt:Ru,_BinaryenArrayNewFixedSetValueAt:Ed,_BinaryenArrayNewFixedAppendValue:mG,_BinaryenArrayNewFixedInsertValueAt:yG,_BinaryenArrayNewFixedRemoveValueAt:gG,_BinaryenArrayNewData:bG,_BinaryenArrayNewDataGetSegment:xG,_BinaryenArrayNewDataSetSegment:TG,_BinaryenArrayNewDataGetOffset:AG,_BinaryenArrayNewDataSetOffset:EG,_BinaryenArrayNewDataGetSize:vG,_BinaryenArrayNewDataSetSize:SG,_BinaryenArrayNewElem:IG,_BinaryenArrayNewElemGetSegment:RG,_BinaryenArrayNewElemSetSegment:FG,_BinaryenArrayNewElemGetOffset:kG,_BinaryenArrayNewElemSetOffset:wG,_BinaryenArrayNewElemGetSize:CG,_BinaryenArrayNewElemSetSize:PG,_BinaryenArrayGet:BG,_BinaryenArrayGetGetRef:Fu,_BinaryenArrayGetSetRef:vd,_BinaryenArrayGetGetIndex:ku,_BinaryenArrayGetSetIndex:Sd,_BinaryenArrayGetIsSigned:LG,_BinaryenArrayGetSetSigned:NG,_BinaryenArraySet:MG,_BinaryenArraySetGetRef:wu,_BinaryenArraySetSetRef:Id,_BinaryenArraySetGetIndex:Cu,_BinaryenArraySetSetIndex:Rd,_BinaryenArraySetGetValue:Pu,_BinaryenArraySetSetValue:Fd,_BinaryenArrayLen:GG,_BinaryenArrayLenGetRef:Bu,_BinaryenArrayLenSetRef:kd,_BinaryenArrayFill:zG,_BinaryenArrayFillGetRef:DG,_BinaryenArrayFillSetRef:UG,_BinaryenArrayFillGetIndex:VG,_BinaryenArrayFillSetIndex:OG,_BinaryenArrayFillGetValue:qG,_BinaryenArrayFillSetValue:WG,_BinaryenArrayFillGetSize:KG,_BinaryenArrayFillSetSize:jG,_BinaryenArrayCopy:HG,_BinaryenArrayCopyGetDestRef:Lu,_BinaryenArrayCopySetDestRef:wd,_BinaryenArrayCopyGetDestIndex:Nu,_BinaryenArrayCopySetDestIndex:Cd,_BinaryenArrayCopyGetSrcRef:Mu,_BinaryenArrayCopySetSrcRef:Pd,_BinaryenArrayCopyGetSrcIndex:Gu,_BinaryenArrayCopySetSrcIndex:Bd,_BinaryenArrayCopyGetLength:zu,_BinaryenArrayCopySetLength:Ld,_BinaryenArrayInitData:QG,_BinaryenArrayInitDataGetSegment:XG,_BinaryenArrayInitDataSetSegment:JG,_BinaryenArrayInitDataGetRef:ZG,_BinaryenArrayInitDataSetRef:YG,_BinaryenArrayInitDataGetIndex:$G,_BinaryenArrayInitDataSetIndex:ez,_BinaryenArrayInitDataGetOffset:tz,_BinaryenArrayInitDataSetOffset:rz,_BinaryenArrayInitDataGetSize:iz,_BinaryenArrayInitDataSetSize:nz,_BinaryenArrayInitElem:sz,_BinaryenArrayInitElemGetSegment:az,_BinaryenArrayInitElemSetSegment:lz,_BinaryenArrayInitElemGetRef:oz,_BinaryenArrayInitElemSetRef:uz,_BinaryenArrayInitElemGetIndex:pz,_BinaryenArrayInitElemSetIndex:cz,_BinaryenArrayInitElemGetOffset:fz,_BinaryenArrayInitElemSetOffset:_z,_BinaryenArrayInitElemGetSize:hz,_BinaryenArrayInitElemSetSize:dz,_BinaryenStringNew:mz,_BinaryenStringNewGetOp:yz,_BinaryenStringNewSetOp:gz,_BinaryenStringNewGetRef:Du,_BinaryenStringNewSetRef:Nd,_BinaryenStringNewGetStart:Uu,_BinaryenStringNewSetStart:Md,_BinaryenStringNewGetEnd:Vu,_BinaryenStringNewSetEnd:Gd,_BinaryenStringConst:bz,_BinaryenStringConstGetString:xz,_BinaryenStringConstSetString:Tz,_BinaryenStringMeasure:Az,_BinaryenStringMeasureGetOp:Ez,_BinaryenStringMeasureSetOp:vz,_BinaryenStringMeasureGetRef:Ou,_BinaryenStringMeasureSetRef:zd,_BinaryenStringEncode:Sz,_BinaryenStringEncodeGetOp:Iz,_BinaryenStringEncodeSetOp:Rz,_BinaryenStringEncodeGetStr:qu,_BinaryenStringEncodeSetStr:Dd,_BinaryenStringEncodeGetArray:Wu,_BinaryenStringEncodeSetArray:Ud,_BinaryenStringEncodeGetStart:Ku,_BinaryenStringEncodeSetStart:Vd,_BinaryenStringConcat:Fz,_BinaryenStringConcatGetLeft:ju,_BinaryenStringConcatSetLeft:Od,_BinaryenStringConcatGetRight:Hu,_BinaryenStringConcatSetRight:qd,_BinaryenStringEq:Qu,_BinaryenStringEqGetOp:kz,_BinaryenStringEqSetOp:wz,_BinaryenStringEqGetLeft:Xu,_BinaryenStringEqSetLeft:Wd,_BinaryenStringEqGetRight:Ju,_BinaryenStringEqSetRight:Kd,_BinaryenStringWTF16Get:Cz,_BinaryenStringWTF16GetGetRef:Zu,_BinaryenStringWTF16GetSetRef:jd,_BinaryenStringWTF16GetGetPos:Yu,_BinaryenStringWTF16GetSetPos:Hd,_BinaryenStringSliceWTF:Pz,_BinaryenStringSliceWTFGetRef:$u,_BinaryenStringSliceWTFSetRef:Qd,_BinaryenStringSliceWTFGetStart:ep,_BinaryenStringSliceWTFSetStart:Xd,_BinaryenStringSliceWTFGetEnd:tp,_BinaryenStringSliceWTFSetEnd:Jd,_BinaryenAddFunction:ti,_BinaryenGetFunction:ri,_BinaryenRemoveFunction:xn,_BinaryenGetNumFunctions:ii,_BinaryenGetFunctionByIndex:Tn,_BinaryenFunctionGetName:ni,_BinaryenFunctionGetParams:An,_BinaryenFunctionGetResults:En,_BinaryenFunctionGetNumVars:Zs,_BinaryenFunctionGetVar:Ys,_BinaryenFunctionAddVar:Bz,_BinaryenFunctionGetNumLocals:rp,_BinaryenFunctionHasLocalName:Lz,_BinaryenFunctionGetLocalName:Nz,_BinaryenFunctionSetLocalName:Zd,_BinaryenFunctionGetBody:kt,_BinaryenFunctionSetBody:vn,_BinaryenFunctionGetType:Mz,_BinaryenFunctionSetType:Gz,_BinaryenFunctionOptimize:zz,_BinaryenFunctionRunPasses:Yd,_BinaryenFunctionSetDebugLocation:$d,_BinaryenAddFunctionImport:em,_BinaryenAddTableImport:tm,_BinaryenAddMemoryImport:rm,_BinaryenAddGlobalImport:im,_BinaryenAddTagImport:nm,_BinaryenAddFunctionExport:$s,_BinaryenAddTableExport:sm,_BinaryenAddMemoryExport:am,_BinaryenAddGlobalExport:lm,_BinaryenAddTagExport:om,_BinaryenGetExport:ea,_BinaryenRemoveExport:ta,_BinaryenGetNumExports:Dz,_BinaryenGetExportByIndex:Uz,_BinaryenExportGetKind:um,_BinaryenExportGetName:pm,_BinaryenExportGetValue:cm,_BinaryenAddGlobal:fm,_BinaryenGetGlobal:ip,_BinaryenRemoveGlobal:_m,_BinaryenGetNumGlobals:hm,_BinaryenGetGlobalByIndex:dm,_BinaryenGlobalGetName:mm,_BinaryenGlobalGetType:ym,_BinaryenGlobalIsMutable:gm,_BinaryenGlobalGetInitExpr:ra,_BinaryenAddTag:bm,_BinaryenGetTag:xm,_BinaryenRemoveTag:Tm,_BinaryenTagGetName:Am,_BinaryenTagGetParams:Em,_BinaryenTagGetResults:vm,_BinaryenAddTable:np,_BinaryenRemoveTable:Vz,_BinaryenGetNumTables:Oz,_BinaryenGetTable:sp,_BinaryenGetTableByIndex:qz,_BinaryenTableGetName:Wz,_BinaryenTableSetName:Kz,_BinaryenTableGetInitial:jz,_BinaryenTableSetInitial:Sm,_BinaryenTableHasMax:Hz,_BinaryenTableGetMax:Qz,_BinaryenTableSetMax:Im,_BinaryenTableGetType:Xz,_BinaryenTableSetType:Jz,_BinaryenAddActiveElementSegment:Rm,_BinaryenAddPassiveElementSegment:Zz,_BinaryenRemoveElementSegment:Yz,_BinaryenGetNumElementSegments:$z,_BinaryenGetElementSegment:e9,_BinaryenGetElementSegmentByIndex:t9,_BinaryenSetMemory:Fm,_BinaryenGetNumMemorySegments:r9,_BinaryenGetMemorySegmentByteOffset:i9,_BinaryenGetMemorySegmentByteLength:n9,_BinaryenCopyMemorySegmentData:s9,_BinaryenAddDataSegment:a9,_BinaryenSetStart:km,_BinaryenGetStart:l9,_BinaryenModuleParse:o9,_BinaryenModulePrint:u9,_BinaryenModulePrintAsmjs:p9,_BinaryenModuleValidate:wm,_BinaryenModuleOptimize:c9,_BinaryenModuleRunPasses:Cm,_BinaryenSizeofAllocateAndWriteResult:Pm,_BinaryenModuleAllocateAndWrite:Bm,_BinaryenModuleAllocateAndWriteText:Lm,_BinaryenModuleAllocateAndWriteStackIR:Nm,_BinaryenModuleRead:Mm,_BinaryenModuleReadWithFeatures:f9,_BinaryenModuleInterpret:Gm,_BinaryenModuleAddDebugInfoFileName:zm,_BinaryenModuleGetDebugInfoFileName:Dm,_BinaryenModuleGetFeatures:Um,_BinaryenModuleSetFeatures:Vm,_BinaryenAddCustomSection:Om,_BinaryenExpressionGetSideEffects:qm,_RelooperCreate:Wm,_RelooperAddBlock:Km,_RelooperAddBranch:jm,_RelooperAddBlockWithSwitch:Hm,_RelooperAddBranchForSwitch:Qm,_RelooperRenderAndDispose:Xm,_ExpressionRunnerCreate:Jm,_ExpressionRunnerSetLocalValue:_9,_ExpressionRunnerSetGlobalValue:h9,_ExpressionRunnerRunAndDispose:Zm,_TypeBuilderCreate:Ym,_TypeBuilderGrow:ap,_TypeBuilderGetSize:ia,_TypeBuilderSetSignatureType:$m,_TypeBuilderSetStructType:ey,_TypeBuilderSetArrayType:d9,_TypeBuilderGetTempHeapType:lp,_TypeBuilderGetTempTupleType:op,_TypeBuilderGetTempRefType:si,_TypeBuilderSetSubType:ty,_TypeBuilderSetOpen:m9,_TypeBuilderCreateRecGroup:y9,_TypeBuilderBuildAndDispose:ry,_BinaryenModuleSetTypeName:iy,_BinaryenModuleSetFieldName:ny,_BinaryenGetOptimizeLevel:sy,_BinaryenSetOptimizeLevel:ay,_BinaryenGetShrinkLevel:ly,_BinaryenSetShrinkLevel:oy,_BinaryenGetDebugInfo:uy,_BinaryenSetDebugInfo:py,_BinaryenGetTrapsNeverHappen:cy,_BinaryenSetTrapsNeverHappen:fy,_BinaryenGetClosedWorld:_y,_BinaryenSetClosedWorld:hy,_BinaryenGetLowMemoryUnused:dy,_BinaryenSetLowMemoryUnused:my,_BinaryenGetZeroFilledMemory:yy,_BinaryenSetZeroFilledMemory:gy,_BinaryenGetFastMath:by,_BinaryenSetFastMath:xy,_BinaryenGetGenerateStackIR:Ty,_BinaryenSetGenerateStackIR:Ay,_BinaryenGetOptimizeStackIR:Ey,_BinaryenSetOptimizeStackIR:vy,_BinaryenGetPassArgument:Sy,_BinaryenSetPassArgument:Iy,_BinaryenClearPassArguments:Ry,_BinaryenHasPassToSkip:g9,_BinaryenAddPassToSkip:b9,_BinaryenClearPassesToSkip:x9,_BinaryenGetAlwaysInlineMaxSize:Fy,_BinaryenSetAlwaysInlineMaxSize:ky,_BinaryenGetFlexibleInlineMaxSize:wy,_BinaryenSetFlexibleInlineMaxSize:Cy,_BinaryenGetOneCallerInlineMaxSize:Py,_BinaryenSetOneCallerInlineMaxSize:By,_BinaryenGetAllowInliningFunctionsWithLoops:Ly,_BinaryenSetAllowInliningFunctionsWithLoops:Ny,_malloc:ut,_free:ie,__i32_store8:Le,__i32_store16:T9,__i32_store:na,__f32_store:A9,__f64_store:E9,__i32_load8_s:v9,__i32_load8_u:br,__i32_load16_s:S9,__i32_load16_u:I9,__i32_load:Jt,__f32_load:R9,__f64_load:F9}=Yi;function qx(t){return BigInt(t.high|0)<<32n|BigInt(t.low>>>0)}function Wx(t){return Ox.fromBits(Number(t&0xFFFFFFFFn)|0,Number(t>>32n)|0)}function My(t,i){return Yi._BinaryenLiteralInt64(t,qx(i))}function up(t){return Wx(Yi._BinaryenConstGetValueI64(t))}var Gy="data:application/wasm;base64,AGFzbQEAAAABBwFgAnx8AXwDAgEABQMBAAEGDQF8AUQAAAAAAAAAAAsHCwEHZjY0X3BvdwAADAKCAQr2DAHzDAMFfgN/CXwCfCABmUQAAAAAAAAAQGUEQCAAIACiIAFEAAAAAAAAAEBhDQEaIACfmUQAAAAAAADwfyAARAAAAAAAAPD/YhsgAUQAAAAAAADgP2ENARpEAAAAAAAA8D8gAKMgAUQAAAAAAADwv2ENARogACABRAAAAAAAAPA/YQ0BGkQAAAAAAADwPyABRAAAAAAAAAAAYQ0BGgsCfCABvSIFQjSIIQQgAL0iAkI0iCIDQgF9Qv4PWgR/QQEFIARC/w+DQr4HfUKAAVoLBEAgBUIBhiIGQgF9Qv////////9vWgRARAAAAAAAAPA/IAZQDQIaRAAAAAAAAPh/IAJCgICAgICAgPg/UQ0CGiAAIAGgIAZCgICAgICAgHBWIAJCAYYiAkKAgICAgICAcFZyDQIaRAAAAAAAAPh/IAJCgICAgICAgPD/AFENAhpEAAAAAAAAAAAgBUI/iFAgAkKAgICAgICA8P8AVEYNAhogASABogwCCyACQgGGQgF9Qv////////9vWgRARAAAAAAAAPA/IAAgAKIiAJogACACQj+IpwR/An9BACAFQjSIQv8PgyICQv8HVA0AGkECIAJCswhWDQAaQQAgBUIBQrMIIAJ9hiICQgF9g0IAUg0AGkEBIAIgBYNCAFINABpBAgtBAUYFQQALGyIAoyAAIAVCAFMbDAILIAJCAFMEQAJ/QQAgBUI0iEL/D4MiBkL/B1QNABpBAiAGQrMIVg0AGkEAIAVCAUKzCCAGfYYiBkIBfYNCAFINABpBASAFIAaDQgBSDQAaQQILIgdFBEAgACAAoSIAIACjDAMLIANC/w+DIQNBgIAQQQAgB0EBRhshCCACQv///////////wCDIQILIARC/w+DIgZCvgd9QoABWgRARAAAAAAAAPA/IAJCgICAgICAgPg/UQ0CGkQAAAAAAADwPyAGQr4HVA0CGkQAAAAAAADwf0QAAAAAAAAAACAEQoAQVCACQoCAgICAgID4P1ZGGwwCCyADUARAIABEAAAAAAAAMEOivUL///////////8Ag0KAgICAgICAoAN9IQILCyACIAJCgICAgNCqpfM/fSICQoCAgICAgIB4g30iA0KAgICACHxCgICAgHCDvyIKIAJCLYhC/wCDp0EFdEGACGoiBysDACILokQAAAAAAADwv6AhDSACQjSHuSIARAA4+v5CLuY/oiAHKwMQoCIOIA0gA78gCqEgC6IiD6AiCqAhCyAKIApEAAAAAAAA4L+iIhCiIQwgCyANIA1EAAAAAAAA4L+iIhGiIhKgIg0gDSAARDBnx5NX8y49oiAHKwMYoCAOIAuhIAqgoCAPIBAgEaCioCALIA2hIBKgoCAKIAyiIApEBgAAAAAA4D+iRGBVVVVVVeW/oCAMIApEeqQpVVVV5b+iRE5VWZmZmek/oCAMIApEwz8miysA8D+iROlFSJtbSfK/oKKgoqCioCIAoCIKoSAAoCQAAnwgBUKAgIBAg78iACAKvUKAgIBAg78iC6IiDL0iAkI0iKdB/w9xIgdByQdrIglBP08EQEQAAAAAAADwv0QAAAAAAADwPyAIGyAJQYCAgIB4Tw0BGkQAAAAAAAAAgEQAAAAAAAAAACAIG0QAAAAAAADw/0QAAAAAAADwfyAIGyACQgBTGyAHQYkITw0BGkEAIQcLIAxE/oIrZUcVZ0CiRAAAAAAAADhDoCINvSICQv8Ag0IBhqdBA3RBgChqIgkpAwggAiAIrXxCLYZ8IQMgDCANRAAAAAAAADjDoCIMRAAA+v5CLna/oqAgDEQ6O568mvcMvaKgIAEgAKEgC6IgASAKIAuhIwCgoqCgIgAgAKIhASAJKwMAIACgIAEgAEQ8VFVVVVXFP6JEvf3/////3z+goqAgASABoiAARBfQpGcREYE/okSRKxfPVVWlP6CioCEAIAdFBEACfCACQoCAgIAIg1AEQCADQoCAgICAgICIP32/IgEgASAAoqBEAAAAAAAAAH+iDAELIANCgICAgICAgPA/fCICvyIBIACiIQAgASAAoCIKmUQAAAAAAADwP2MEfCACQoCAgICAgICAgH+Dv0QAAAAAAADwPyAKpiILIAqgIgwgCyAMoSAKoCABIAqhIACgoKAgC6EiACAARAAAAAAAAAAAYRsFIAoLRAAAAAAAABAAogsMAQsgA78iASABIACioAsLCwsLxSyCAQBBhQgLA6D2PwBBkQgLF8i58oIs1r+AVjcoJLT6PAAAAAAAgPY/AEGxCAsXCFi/vdHVvyD34NgIpRy9AAAAAABg9j8AQdEICxdYRRd3dtW/bVC21aRiI70AAAAAAED2PwBB8QgLF/gth60a1b/VZ7Ce5ITmvAAAAAAAIPY/AEGRCQsXeHeVX77Uv+A+KZNpGwS9AAAAAAAA9j8AQbEJCxdgHMKLYdS/zIRMSC/YEz0AAAAAAOD1PwBB0QkLF6iGhjAE1L86C4Lt80LcPAAAAAAAwPU/AEHxCQsXSGlVTKbTv2CUUYbGsSA9AAAAAACg9T8AQZEKCxeAmJrdR9O/koDF1E1ZJT0AAAAAAID1PwBBsQoLFyDhuuLo0r/YK7eZHnsmPQAAAAAAYPU/AEHRCgsXiN4TWonSvz+wz7YUyhU9AAAAAABg9T8AQfEKCxeI3hNaidK/P7DPthTKFT0AAAAAAED1PwBBkQsLF3jP+0Ep0r922lMoJFoWvQAAAAAAIPU/AEGxCwsXmGnBmMjRvwRU52i8rx+9AAAAAAAA9T8AQdELCxeoq6tcZ9G/8KiCM8YfHz0AAAAAAOD0PwBB8QsLF0iu+YsF0b9mWgX9xKgmvQAAAAAAwPQ/AEGRDAsXkHPiJKPQvw4D9H7uawy9AAAAAACg9D8AQbEMCxfQtJQlQNC/fy30nrg28LwAAAAAAKD0PwBB0QwLF9C0lCVA0L9/LfSeuDbwvAAAAAAAgPQ/AEHxDAsXQF5tGLnPv4c8masqVw09AAAAAABg9D8AQZENCxdg3Mut8M6/JK+GnLcmKz0AAAAAAED0PwBBsQ0LF/Aqbgcnzr8Q/z9UTy8XvQAAAAAAIPQ/AEHRDQsXwE9rIVzNvxtoyruRuiE9AAAAAAAA9D8AQfENCxegmsf3j8y/NISfaE95Jz0AAAAAAAD0PwBBkQ4LF6Cax/ePzL80hJ9oT3knPQAAAAAA4PM/AEGxDgsXkC10hsLLv4+3izGwThk9AAAAAADA8z8AQdEOCxfAgE7J88q/ZpDNP2NOujwAAAAAAKDzPwBB8Q4LF7DiH7wjyr/qwUbcZIwlvQAAAAAAoPM/AEGRDwsXsOIfvCPKv+rBRtxkjCW9AAAAAACA8z8AQbEPCxdQ9JxaUsm/49TBBNnRKr0AAAAAAGDzPwBB0Q8LF9AgZaB/yL8J+tt/v70rPQAAAAAAQPM/AEHxDwsX4BACiavHv1hKU3KQ2ys9AAAAAABA8z8AQZEQCxfgEAKJq8e/WEpTcpDbKz0AAAAAACDzPwBBsRALF9AZ5w/Wxr9m4rKjauQQvQAAAAAAAPM/AEHREAsXkKdwMP/FvzlQEJ9Dnh69AAAAAAAA8z8AQfEQCxeQp3Aw/8W/OVAQn0OeHr0AAAAAAODyPwBBkRELF7Ch4+Umxb+PWweQi94gvQAAAAAAwPI/AEGxEQsXgMtsK03Evzx4NWHBDBc9AAAAAADA8j8AQdERCxeAy2wrTcS/PHg1YcEMFz0AAAAAAKDyPwBB8RELF5AeIPxxw786VCdNhnjxPAAAAAAAgPI/AEGREgsX8B/4UpXCvwjEcRcwjSS9AAAAAABg8j8AQbESCxdgL9Uqt8G/lqMRGKSALr0AAAAAAGDyPwBB0RILF2Av1Sq3wb+WoxEYpIAuvQAAAAAAQPI/AEHxEgsXkNB8ftfAv/Rb6IiWaQo9AAAAAABA8j8AQZETCxeQ0Hx+18C/9FvoiJZpCj0AAAAAACDyPwBBsRMLF+DbMZHsv7/yM6NcVHUlvQAAAAAAAPI/AEHSEwsWK24HJ76/PADwKiw0Kj0AAAAAAADyPwBB8hMLFituBye+vzwA8CosNCo9AAAAAADg8T8AQZEUCxfAW49UXry/Br5fWFcMHb0AAAAAAMDxPwBBsRQLF+BKOm2Sur/IqlvoNTklPQAAAAAAwPE/AEHRFAsX4Eo6bZK6v8iqW+g1OSU9AAAAAACg8T8AQfEUCxegMdZFw7i/aFYvTSl8Ez0AAAAAAKDxPwBBkRULF6Ax1kXDuL9oVi9NKXwTPQAAAAAAgPE/AEGxFQsXYOWK0vC2v9pzM8k3lya9AAAAAABg8T8AQdEVCxcgBj8HG7W/V17GYVsCHz0AAAAAAGDxPwBB8RULFyAGPwcbtb9XXsZhWwIfPQAAAAAAQPE/AEGRFgsX4BuW10Gzv98T+czaXiw9AAAAAABA8T8AQbEWCxfgG5bXQbO/3xP5zNpeLD0AAAAAACDxPwBB0RYLF4Cj7jZlsb8Jo492XnwUPQAAAAAAAPE/AEHxFgsXgBHAMAqvv5GONoOeWS09AAAAAAAA8T8AQZEXCxeAEcAwCq+/kY42g55ZLT0AAAAAAODwPwBBsRcLF4AZcd1Cq79McNbleoIcPQAAAAAA4PA/AEHRFwsXgBlx3UKrv0xw1uV6ghw9AAAAAADA8D8AQfEXCxfAMvZYdKe/7qHyNEb8LL0AAAAAAMDwPwBBkRgLF8Ay9lh0p7/uofI0RvwsvQAAAAAAoPA/AEGxGAsXwP65h56jv6r+JvW3AvU8AAAAAACg8D8AQdEYCxfA/rmHnqO/qv4m9bcC9TwAAAAAAIDwPwBB8hgLFngOm4Kfv+QJfnwmgCm9AAAAAACA8D8AQZIZCxZ4DpuCn7/kCX58JoApvQAAAAAAYPA/AEGxGQsXgNUHG7mXvzmm+pNUjSi9AAAAAABA8D8AQdIZCxb8sKjAj7+cptP2fB7fvAAAAAAAQPA/AEHyGQsW/LCowI+/nKbT9nwe37wAAAAAACDwPwBBkhoLFhBrKuB/v+RA2g0/4hm9AAAAAAAg8D8AQbIaCxYQayrgf7/kQNoNP+IZvQAAAAAAAPA/AEHmGgsC8D8AQYUbCwPA7z8AQZIbCxaJdRUQgD/oK52Za8cQvQAAAAAAgO8/AEGxGwsXgJNYViCQP9L34gZb3CO9AAAAAABA7z8AQdIbCxbJKCVJmD80DFoyuqAqvQAAAAAAAO8/AEHxGwsXQOeJXUGgP1PX8VzAEQE9AAAAAADA7j8AQZIcCxYu1K5mpD8o/b11cxYsvQAAAAAAgO4/AEGxHAsXwJ8UqpSoP30mWtCVeRm9AAAAAABA7j8AQdEcCxfA3c1zy6w/ByjYR/JoGr0AAAAAACDuPwBB8RwLF8AGwDHqrj97O8lPPhEOvQAAAAAA4O0/AEGRHQsXYEbRO5exP5ueDVZdMiW9AAAAAACg7T8AQbEdCxfg0af1vbM/107bpV7ILD0AAAAAAGDtPwBB0R0LF6CXTVrptT8eHV08BmksvQAAAAAAQO0/AEHxHQsXwOoK0wC3PzLtnamNHuw8AAAAAAAA7T8AQZEeCxdAWV1eM7k/2ke9OlwRIz0AAAAAAMDsPwBBsR4LF2Ctjchquz/laPcrgJATvQAAAAAAoOw/AEHRHgsXQLwBWIi8P9OsWsbRRiY9AAAAAABg7D8AQfEeCxcgCoM5x74/4EXmr2jALb0AAAAAAEDsPwBBkR8LF+DbOZHovz/9CqFP1jQlvQAAAAAAAOw/AEGxHwsX4CeCjhfBP/IHLc547yE9AAAAAADg6z8AQdEfCxfwI34rqsE/NJk4RI6nLD0AAAAAAKDrPwBB8R8LF4CGDGHRwj+htIHLbJ0DPQAAAAAAgOs/AEGRIAsXkBWw/GXDP4lySyOoL8Y8AAAAAABA6z8AQbEgCxewM4M9kcQ/eLb9VHmDJT0AAAAAACDrPwBB0SALF7Ch5OUnxT/HfWnl6DMmPQAAAAAA4Oo/AEHxIAsXEIy+TlfGP3guPCyLzxk9AAAAAADA6j8AQZEhCxdwdYsS8MY/4SGc5Y0RJb0AAAAAAKDqPwBBsSELF1BEhY2Jxz8FQ5FwEGYcvQAAAAAAYOo/AEHSIQsWOeuvvsg/0SzpqlQ9B70AAAAAAEDqPwBB8iELFvfcWlrJP2//oFgo8gc9AAAAAAAA6j8AQZEiCxfgijztk8o/aSFWUENyKL0AAAAAAODpPwBBsSILF9BbV9gxyz+q4axOjTUMvQAAAAAAwOk/AEHRIgsX4Ds4h9DLP7YSVFnESy29AAAAAACg6T8AQfEiCxcQ8Mb7b8w/0iuWxXLs8bwAAAAAAGDpPwBBkSMLF5DUsD2xzT81sBX3Kv8qvQAAAAAAQOk/AEGxIwsXEOf/DlPOPzD0QWAnEsI8AAAAAAAg6T8AQdIjCxbd5K31zj8RjrtlFSHKvAAAAAAAAOk/AEHxIwsXsLNsHJnPPzDfDMrsyxs9AAAAAADA6D8AQZEkCxdYTWA4cdA/kU7tFtuc+DwAAAAAAKDoPwBBsSQLF2BhZy3E0D/p6jwWixgnPQAAAAAAgOg/AEHRJAsX6CeCjhfRPxzwpWMOISy9AAAAAABg6D8AQfEkCxf4rMtca9E/gRal982aKz0AAAAAAEDoPwBBkSULF2haY5m/0T+3vUdR7aYsPQAAAAAAIOg/AEGxJQsXuA5tRRTSP+q6Rrrehwo9AAAAAADg5z8AQdElCxeQ3HzwvtI/9ARQSvqcKj0AAAAAAMDnPwBB8SULF2DT4fEU0z+4PCHTeuIovQAAAAAAoOc/AEGRJgsXEL52Z2vTP8h38bDNbhE9AAAAAACA5z8AQbEmCxcwM3dSwtM/XL0GtlQ7GD0AAAAAAGDnPwBB0SYLF+jVI7QZ1D+d4JDsNuQIPQAAAAAAQOc/AEHxJgsXyHHCjXHUP3XWZwnOJy+9AAAAAAAg5z8AQZEnCxcwF57gydQ/pNgKG4kgLr0AAAAAAADnPwBBsScLF6A4B64i1T9Zx2SBcL4uPQAAAAAA4OY/AEHRJwsX0MhT93vVP+9AXe7trR89AAAAAADA5j8AQfEnCw9gWd+91dU/3GWkCCoLCr0AQY4oC/IP8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/";var{f64_pow:zy}=(await WebAssembly.instantiateStreaming(fetch(Gy))).instance.exports;var sa=new Float64Array(1),Dy=new Float32Array(sa.buffer),ai=new Int32Array(sa.buffer);globalThis.f32_as_i32=function(i){return Dy[0]=i,ai[0]};globalThis.i32_as_f32=function(i){return ai[0]=i,Dy[0]};globalThis.f64_as_i64=function(i){return sa[0]=i,i64_new(ai[0],ai[1])};globalThis.i64_as_f64=function(i){return ai[0]=i64_low(i),ai[1]=i64_high(i),sa[0]};globalThis.f64_pow=zy;import xe from"long";globalThis.i64_zero=xe.ZERO;globalThis.i64_one=xe.ONE;globalThis.i64_neg_one=xe.fromInt(-1);globalThis.i64_minimum=xe.MIN_VALUE;globalThis.i64_maximum=xe.MAX_VALUE;globalThis.i64_is=function(i){return xe.isLong(i)};globalThis.i64_new=function(i,e){return xe.fromBits(i,e)};globalThis.i64_low=function(i){return i.low};globalThis.i64_high=function(i){return i.high};globalThis.i64_not=function(i){return i.not()};globalThis.i64_neg=function(i){return i.neg()};globalThis.i64_clz=function(i){return i.clz()};globalThis.i64_ctz=function(i){return i.ctz()};globalThis.i64_add=function(i,e){return i.add(e)};globalThis.i64_sub=function(i,e){return i.sub(e)};globalThis.i64_mul=function(i,e){return i.mul(e)};globalThis.i64_pow=function(i,e){let r=e.low,n=e.high;if(n<=0){if(n<0)return i.eq(globalThis.i64_neg_one)?r&1?i:xe.ONE:i.eq(xe.ONE)?i:xe.ZERO;if(r==0)return xe.ONE;if(r==1)return i;if(r==2)return i.mul(i)}let s=xe.ONE;for(;r|n;)r&1&&(s=s.mul(i)),e=e.shru(1),i=i.mul(i),r=e.low,n=e.high;return s};globalThis.i64_div=function(i,e){return i.div(e)};globalThis.i64_div_u=function(i,e){return i.toUnsigned().div(e.toUnsigned()).toSigned()};globalThis.i64_rem=function(i,e){return i.mod(e)};globalThis.i64_rem_u=function(i,e){return i.toUnsigned().mod(e.toUnsigned()).toSigned()};globalThis.i64_and=function(i,e){return i.and(e)};globalThis.i64_or=function(i,e){return i.or(e)};globalThis.i64_xor=function(i,e){return i.xor(e)};globalThis.i64_shl=function(i,e){return i.shl(e)};globalThis.i64_shr=function(i,e){return i.shr(e)};globalThis.i64_shr_u=function(i,e){return i.shru(e)};globalThis.i64_eq=function(i,e){return i.eq(e)};globalThis.i64_ne=function(i,e){return i.ne(e)};globalThis.i64_ge=function(i,e){return i.ge(e)};globalThis.i64_ge_u=function(i,e){return i.toUnsigned().ge(e.toUnsigned())};globalThis.i64_gt=function(i,e){return i.gt(e)};globalThis.i64_gt_u=function(i,e){return i.toUnsigned().gt(e.toUnsigned())};globalThis.i64_le=function(i,e){return i.le(e)};globalThis.i64_le_u=function(i,e){return i.toUnsigned().le(e.toUnsigned())};globalThis.i64_lt=function(i,e){return i.lt(e)};globalThis.i64_lt_u=function(i,e){return i.toUnsigned().lt(e.toUnsigned())};globalThis.i64_align=function(i,e){assert(e&&(e&e-1)==0);let r=xe.fromInt(e-1);return i.add(r).and(r.not())};globalThis.i64_signbit=function(i){return!!(i.high>>>31)};globalThis.i64_is_i8=function(i){return i.high===0&&i.low>=0&&i.low<=i8.MAX_VALUE||i.high===-1&&i.low>=i8.MIN_VALUE&&i.low<0};globalThis.i64_is_i16=function(i){return i.high===0&&i.low>=0&&i.low<=i16.MAX_VALUE||i.high===-1&&i.low>=i16.MIN_VALUE&&i.low<0};globalThis.i64_is_i32=function(i){return i.high===0&&i.low>=0||i.high===-1&&i.low<0};globalThis.i64_is_u8=function(i){return i.high===0&&i.low>>>0<=u8.MAX_VALUE};globalThis.i64_is_u16=function(i){return i.high===0&&i.low>>>0<=u16.MAX_VALUE};globalThis.i64_is_u32=function(i){return i.high===0};globalThis.i64_is_bool=function(i){return(i.high|i.low&-2)===0};var Kx=xe.fromNumber(f32.MIN_SAFE_INTEGER),jx=xe.fromNumber(f32.MAX_SAFE_INTEGER);globalThis.i64_is_f32=function(i){return i.gte(Kx)&&i.lte(jx)};var Hx=xe.fromNumber(f64.MIN_SAFE_INTEGER),Qx=xe.fromNumber(f64.MAX_SAFE_INTEGER);globalThis.i64_is_f64=function(i){return i.gte(Hx)&&i.lte(Qx)};globalThis.i64_to_f32=function(i){return globalThis.Math.fround(i.toNumber())};globalThis.i64_to_f64=function(i){return i.toNumber()};globalThis.i64_to_string=function(i,e){return e?i.toUnsigned().toString():i.toString()};globalThis.i64_clone=function(i){return xe.fromBits(i.low,i.high,i.unsigned)};globalThis.Map_keys=function(i){return Array.from(i.keys())};globalThis.Map_values=function(i){return Array.from(i.values())};globalThis.Set_values=function(i){return Array.from(i.values())};var wt=(E=>(E[E.None=0]="None",E[E.SignExtension=1]="SignExtension",E[E.MutableGlobals=2]="MutableGlobals",E[E.NontrappingF2I=4]="NontrappingF2I",E[E.BulkMemory=8]="BulkMemory",E[E.Simd=16]="Simd",E[E.Threads=32]="Threads",E[E.ExceptionHandling=64]="ExceptionHandling",E[E.TailCalls=128]="TailCalls",E[E.ReferenceTypes=256]="ReferenceTypes",E[E.MultiValue=512]="MultiValue",E[E.GC=1024]="GC",E[E.Memory64=2048]="Memory64",E[E.RelaxedSimd=4096]="RelaxedSimd",E[E.ExtendedConst=8192]="ExtendedConst",E[E.Strings=16384]="Strings",E[E.SharedEverything=32768]="SharedEverything",E[E.Closures=65536]="Closures",E[E.All=131071]="All",E))(wt||{});function li(t){switch(t){case 1:return"sign-extension";case 2:return"mutable-globals";case 4:return"nontrapping-f2i";case 8:return"bulk-memory";case 16:return"simd";case 32:return"threads";case 64:return"exception-handling";case 128:return"tail-calls";case 256:return"reference-types";case 512:return"multi-value";case 1024:return"gc";case 2048:return"memory64";case 4096:return"relaxed-simd";case 8192:return"extended-const";case 16384:return"stringref";case 32768:return"shared-everything";case 65536:return"closures"}return assert(!1),""}var oi=(r=>(r[r.Js=0]="Js",r[r.Wasm32=1]="Wasm32",r[r.Wasm64=2]="Wasm64",r))(oi||{});var aa=(n=>(n[n.Stub=0]="Stub",n[n.Minimal=1]="Minimal",n[n.Incremental=2]="Incremental",n[n.Memory=3]="Memory",n))(aa||{});var ui=class{constructor(){this.flags=0}};ui=lf([unmanaged],ui);var la=(D=>(D[D.NONE=0]="NONE",D[D.ARRAYBUFFERVIEW=1]="ARRAYBUFFERVIEW",D[D.ARRAY=2]="ARRAY",D[D.STATICARRAY=4]="STATICARRAY",D[D.SET=8]="SET",D[D.MAP=16]="MAP",D[D.POINTERFREE=32]="POINTERFREE",D[D.VALUE_ALIGN_0=64]="VALUE_ALIGN_0",D[D.VALUE_ALIGN_1=128]="VALUE_ALIGN_1",D[D.VALUE_ALIGN_2=256]="VALUE_ALIGN_2",D[D.VALUE_ALIGN_3=512]="VALUE_ALIGN_3",D[D.VALUE_ALIGN_4=1024]="VALUE_ALIGN_4",D[D.VALUE_SIGNED=2048]="VALUE_SIGNED",D[D.VALUE_FLOAT=4096]="VALUE_FLOAT",D[D.VALUE_NULLABLE=8192]="VALUE_NULLABLE",D[D.VALUE_MANAGED=16384]="VALUE_MANAGED",D[D.KEY_ALIGN_0=32768]="KEY_ALIGN_0",D[D.KEY_ALIGN_1=65536]="KEY_ALIGN_1",D[D.KEY_ALIGN_2=131072]="KEY_ALIGN_2",D[D.KEY_ALIGN_3=262144]="KEY_ALIGN_3",D[D.KEY_ALIGN_4=524288]="KEY_ALIGN_4",D[D.KEY_SIGNED=1048576]="KEY_SIGNED",D[D.KEY_FLOAT=2097152]="KEY_FLOAT",D[D.KEY_NULLABLE=4194304]="KEY_NULLABLE",D[D.KEY_MANAGED=8388608]="KEY_MANAGED",D))(la||{});var Ne=(H=>(H[H.None=0]="None",H[H.Import=1]="Import",H[H.Export=2]="Export",H[H.Declare=4]="Declare",H[H.Const=8]="Const",H[H.Let=16]="Let",H[H.Static=32]="Static",H[H.Readonly=64]="Readonly",H[H.Abstract=128]="Abstract",H[H.Public=256]="Public",H[H.Private=512]="Private",H[H.Protected=1024]="Protected",H[H.Get=2048]="Get",H[H.Set=4096]="Set",H[H.Override=8192]="Override",H[H.DefinitelyAssigned=16384]="DefinitelyAssigned",H[H.Ambient=32768]="Ambient",H[H.Generic=65536]="Generic",H[H.GenericContext=131072]="GenericContext",H[H.Instance=262144]="Instance",H[H.Constructor=524288]="Constructor",H[H.ModuleExport=1048576]="ModuleExport",H[H.ModuleImport=2097152]="ModuleImport",H[H.Resolved=4194304]="Resolved",H[H.Compiled=8388608]="Compiled",H[H.Errored=16777216]="Errored",H[H.Inlined=33554432]="Inlined",H[H.Scoped=67108864]="Scoped",H[H.Stub=134217728]="Stub",H[H.Overridden=268435456]="Overridden",H[H.Closure=536870912]="Closure",H[H.Quoted=1073741824]="Quoted",H[H.InternallyNullable=-2147483648]="InternallyNullable",H))(Ne||{}),rt="/",Xx="..",oa="get:",ua="set:",cp="#",Sn=".",fp="~",Uy="~lib",pt=Uy+rt,Ge=rt+"index",_p="@",C;(U=>(U.Empty="",U.i8="i8",U.i16="i16",U.i32="i32",U.i64="i64",U.isize="isize",U.u8="u8",U.u16="u16",U.u32="u32",U.u64="u64",U.usize="usize",U.bool="bool",U.f32="f32",U.f64="f64",U.v128="v128",U.ref_func="ref_func",U.ref_extern="ref_extern",U.ref_any="ref_any",U.ref_eq="ref_eq",U.ref_struct="ref_struct",U.ref_array="ref_array",U.ref_i31="ref_i31",U.ref_string="ref_string",U.ref_stringview_wtf8="ref_stringview_wtf8",U.ref_stringview_wtf16="ref_stringview_wtf16",U.ref_stringview_iter="ref_stringview_iter",U.i8x16="i8x16",U.u8x16="u8x16",U.i16x8="i16x8",U.u16x8="u16x8",U.i32x4="i32x4",U.u32x4="u32x4",U.i64x2="i64x2",U.u64x2="u64x2",U.f32x4="f32x4",U.f64x2="f64x2",U.void_="void",U.number="number",U.boolean="boolean",U.string="string",U.native="native",U.indexof="indexof",U.valueof="valueof",U.returnof="returnof",U.nonnull="nonnull",U.null_="null",U.true_="true",U.false_="false",U.this_="this",U.super_="super",U.constructor="constructor",U.ASC_TARGET="ASC_TARGET",U.ASC_RUNTIME="ASC_RUNTIME",U.ASC_NO_ASSERT="ASC_NO_ASSERT",U.ASC_MEMORY_BASE="ASC_MEMORY_BASE",U.ASC_TABLE_BASE="ASC_TABLE_BASE",U.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",U.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",U.ASC_LOW_MEMORY_LIMIT="ASC_LOW_MEMORY_LIMIT",U.ASC_EXPORT_RUNTIME="ASC_EXPORT_RUNTIME",U.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",U.ASC_FEATURE_MUTABLE_GLOBALS="ASC_FEATURE_MUTABLE_GLOBALS",U.ASC_FEATURE_NONTRAPPING_F2I="ASC_FEATURE_NONTRAPPING_F2I",U.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",U.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",U.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",U.ASC_FEATURE_EXCEPTION_HANDLING="ASC_FEATURE_EXCEPTION_HANDLING",U.ASC_FEATURE_TAIL_CALLS="ASC_FEATURE_TAIL_CALLS",U.ASC_FEATURE_REFERENCE_TYPES="ASC_FEATURE_REFERENCE_TYPES",U.ASC_FEATURE_MULTI_VALUE="ASC_FEATURE_MULTI_VALUE",U.ASC_FEATURE_GC="ASC_FEATURE_GC",U.ASC_FEATURE_MEMORY64="ASC_FEATURE_MEMORY64",U.ASC_FEATURE_RELAXED_SIMD="ASC_FEATURE_RELAXED_SIMD",U.ASC_FEATURE_EXTENDED_CONST="ASC_FEATURE_EXTENDED_CONST",U.ASC_FEATURE_STRINGREF="ASC_FEATURE_STRINGREF",U.ASC_FEATURE_SHARED_EVERYTHING="ASC_FEATURE_SHARED_EVERYTHING",U.ASC_FEATURE_CLOSURES="ASC_FEATURE_CLOSURES",U.ASC_VERSION_MAJOR="ASC_VERSION_MAJOR",U.ASC_VERSION_MINOR="ASC_VERSION_MINOR",U.ASC_VERSION_PATCH="ASC_VERSION_PATCH",U.EnumToString="__enum_to_string",U.I8="I8",U.I16="I16",U.I32="I32",U.I64="I64",U.Isize="Isize",U.U8="U8",U.U16="U16",U.U32="U32",U.U64="U64",U.Usize="Usize",U.Bool="Bool",U.F32="F32",U.F64="F64",U.V128="V128",U.RefFunc="RefFunc",U.RefExtern="RefExtern",U.RefAny="RefAny",U.RefEq="RefEq",U.RefStruct="RefStruct",U.RefArray="RefArray",U.RefI31="RefI31",U.RefString="RefString",U.String="String",U.RegExp="RegExp",U.Object="Object",U.Array="Array",U.StaticArray="StaticArray",U.Set="Set",U.Map="Map",U.Function="Function",U.ArrayBufferView="ArrayBufferView",U.ArrayBuffer="ArrayBuffer",U.Math="Math",U.Mathf="Mathf",U.NativeMath="NativeMath",U.NativeMathf="NativeMathf",U.Int8Array="Int8Array",U.Int16Array="Int16Array",U.Int32Array="Int32Array",U.Int64Array="Int64Array",U.Uint8Array="Uint8Array",U.Uint8ClampedArray="Uint8ClampedArray",U.Uint16Array="Uint16Array",U.Uint32Array="Uint32Array",U.Uint64Array="Uint64Array",U.Float32Array="Float32Array",U.Float64Array="Float64Array",U.TemplateStringsArray="TemplateStringsArray",U.Error="Error",U.abort="abort",U.trace="trace",U.seed="seed",U.pow="pow",U.ipow32="ipow32",U.ipow64="ipow64",U.mod="mod",U.alloc="__alloc",U.realloc="__realloc",U.free="__free",U.new_="__new",U.renew="__renew",U.link="__link",U.collect="__collect",U.visit="__visit",U.newBuffer="__newBuffer",U.newArray="__newArray",U.BLOCK="~lib/rt/common/BLOCK",U.OBJECT="~lib/rt/common/OBJECT",U.DefaultMemory="0",U.DefaultTable="0"))(C||={});var ct=(S=>(S[S.Not_implemented_0=100]="Not_implemented_0",S[S.Operation_is_unsafe=101]="Operation_is_unsafe",S[S.User_defined_0=102]="User_defined_0",S[S.Feature_0_is_not_enabled=103]="Feature_0_is_not_enabled",S[S.Low_memory_limit_exceeded_by_static_data_0_1=104]="Low_memory_limit_exceeded_by_static_data_0_1",S[S.Module_requires_at_least_0_pages_of_initial_memory=105]="Module_requires_at_least_0_pages_of_initial_memory",S[S.Module_requires_at_least_0_pages_of_maximum_memory=106]="Module_requires_at_least_0_pages_of_maximum_memory",S[S.Shared_memory_requires_maximum_memory_to_be_defined=107]="Shared_memory_requires_maximum_memory_to_be_defined",S[S.Shared_memory_requires_feature_threads_to_be_enabled=108]="Shared_memory_requires_feature_threads_to_be_enabled",S[S.Transform_0_1=109]="Transform_0_1",S[S.Start_function_name_0_is_invalid_or_conflicts_with_another_export=110]="Start_function_name_0_is_invalid_or_conflicts_with_another_export",S[S.Element_0_not_found=111]="Element_0_not_found",S[S.Exchange_of_0_values_is_not_supported_by_all_embeddings=112]="Exchange_of_0_values_is_not_supported_by_all_embeddings",S[S.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",S[S.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",S[S.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",S[S.Operation_0_cannot_be_applied_to_type_1=203]="Operation_0_cannot_be_applied_to_type_1",S[S.Type_0_cannot_be_nullable=204]="Type_0_cannot_be_nullable",S[S.Mutable_value_cannot_be_inlined=206]="Mutable_value_cannot_be_inlined",S[S.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",S[S.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",S[S.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",S[S.Expression_is_never_null=210]="Expression_is_never_null",S[S.Class_0_is_final_and_cannot_be_extended=211]="Class_0_is_final_and_cannot_be_extended",S[S.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",S[S.Duplicate_decorator=213]="Duplicate_decorator",S[S.Type_0_is_illegal_in_this_context=214]="Type_0_is_illegal_in_this_context",S[S.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",S[S.Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal=216]="Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal",S[S.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",S[S.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",S[S.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",S[S.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",S[S.Type_0_is_not_a_function_index_or_function_reference=221]="Type_0_is_not_a_function_index_or_function_reference",S[S._0_must_be_a_value_between_1_and_2_inclusive=222]="_0_must_be_a_value_between_1_and_2_inclusive",S[S._0_must_be_a_power_of_two=223]="_0_must_be_a_power_of_two",S[S._0_is_not_a_valid_operator=224]="_0_is_not_a_valid_operator",S[S.Expression_cannot_be_represented_by_a_type=225]="Expression_cannot_be_represented_by_a_type",S[S.Expression_resolves_to_unusual_type_0=226]="Expression_resolves_to_unusual_type_0",S[S.Array_literal_expected=227]="Array_literal_expected",S[S.Function_0_is_virtual_and_will_not_be_inlined=228]="Function_0_is_virtual_and_will_not_be_inlined",S[S.Property_0_only_has_a_setter_and_is_missing_a_getter=229]="Property_0_only_has_a_setter_and_is_missing_a_getter",S[S._0_keyword_cannot_be_used_here=230]="_0_keyword_cannot_be_used_here",S[S.A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final=231]="A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final",S[S.Property_0_is_always_assigned_before_being_used=233]="Property_0_is_always_assigned_before_being_used",S[S.Expression_does_not_compile_to_a_value_at_runtime=234]="Expression_does_not_compile_to_a_value_at_runtime",S[S.Only_variables_functions_and_enums_become_WebAssembly_module_exports=235]="Only_variables_functions_and_enums_become_WebAssembly_module_exports",S[S.Literal_0_does_not_fit_into_i64_or_u64_types=236]="Literal_0_does_not_fit_into_i64_or_u64_types",S[S.Index_signature_accessors_in_type_0_differ_in_types=237]="Index_signature_accessors_in_type_0_differ_in_types",S[S.Initializer_definitive_assignment_or_nullable_type_expected=238]="Initializer_definitive_assignment_or_nullable_type_expected",S[S.Definitive_assignment_has_no_effect_on_local_variables=239]="Definitive_assignment_has_no_effect_on_local_variables",S[S.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2=240]="Ambiguous_operator_overload_0_conflicting_overloads_1_and_2",S[S.An_interface_or_abstract_method_0_cannot_have_type_parameters=241]="An_interface_or_abstract_method_0_cannot_have_type_parameters",S[S.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa=242]="Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa",S[S.Only_Error_or_its_subclasses_can_be_thrown_but_found_type_0=250]="Only_Error_or_its_subclasses_can_be_thrown_but_found_type_0",S[S.Importing_the_table_disables_some_indirect_call_optimizations=901]="Importing_the_table_disables_some_indirect_call_optimizations",S[S.Exporting_the_table_disables_some_indirect_call_optimizations=902]="Exporting_the_table_disables_some_indirect_call_optimizations",S[S.Expression_compiles_to_a_dynamic_check_at_runtime=903]="Expression_compiles_to_a_dynamic_check_at_runtime",S[S.Indexed_access_may_involve_bounds_checking=904]="Indexed_access_may_involve_bounds_checking",S[S.Explicitly_returning_constructor_drops_this_allocation=905]="Explicitly_returning_constructor_drops_this_allocation",S[S.Unnecessary_definite_assignment=906]="Unnecessary_definite_assignment",S[S._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead=907]="_NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead",S[S.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters=908]="Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters",S[S.Unterminated_string_literal=1002]="Unterminated_string_literal",S[S.Identifier_expected=1003]="Identifier_expected",S[S._0_expected=1005]="_0_expected",S[S.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",S[S.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",S[S.Unexpected_token=1012]="Unexpected_token",S[S.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",S[S.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",S[S.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",S[S._0_modifier_cannot_appear_on_class_elements_of_this_kind=1031]="_0_modifier_cannot_appear_on_class_elements_of_this_kind",S[S.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",S[S.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",S[S._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",S[S.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",S[S.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",S[S.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",S[S.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",S[S.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",S[S.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",S[S.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",S[S.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",S[S.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",S[S.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",S[S.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",S[S.Type_argument_list_cannot_be_empty=1099]="Type_argument_list_cannot_be_empty",S[S.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",S[S.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",S[S.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",S[S.Expression_expected=1109]="Expression_expected",S[S.Type_expected=1110]="Type_expected",S[S.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",S[S.Duplicate_label_0=1114]="Duplicate_label_0",S[S.An_export_assignment_cannot_have_modifiers=1120]="An_export_assignment_cannot_have_modifiers",S[S.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",S[S.Digit_expected=1124]="Digit_expected",S[S.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",S[S.Unexpected_end_of_text=1126]="Unexpected_end_of_text",S[S.Invalid_character=1127]="Invalid_character",S[S._case_or_default_expected=1130]="_case_or_default_expected",S[S._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",S[S.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",S[S.Type_argument_expected=1140]="Type_argument_expected",S[S.String_literal_expected=1141]="String_literal_expected",S[S.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",S[S.Declaration_expected=1146]="Declaration_expected",S[S._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",S[S.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",S[S.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions=1263]="Declarations_with_initializers_cannot_also_have_definite_assignment_assertions",S[S.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",S[S.Binary_digit_expected=1177]="Binary_digit_expected",S[S.Octal_digit_expected=1178]="Octal_digit_expected",S[S.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",S[S.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer=1190]="The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer",S[S.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",S[S.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",S[S.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",S[S._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",S[S.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",S[S.An_interface_property_cannot_have_an_initializer=1246]="An_interface_property_cannot_have_an_initializer",S[S.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",S[S.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",S[S.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",S[S.A_default_export_can_only_be_used_in_a_module=1319]="A_default_export_can_only_be_used_in_a_module",S[S.An_expression_of_type_0_cannot_be_tested_for_truthiness=1345]="An_expression_of_type_0_cannot_be_tested_for_truthiness",S[S.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal=1351]="An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal",S[S.Duplicate_identifier_0=2300]="Duplicate_identifier_0",S[S.Cannot_find_name_0=2304]="Cannot_find_name_0",S[S.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",S[S.An_interface_can_only_extend_an_interface=2312]="An_interface_can_only_extend_an_interface",S[S.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",S[S.Type_0_is_not_generic=2315]="Type_0_is_not_generic",S[S.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",S[S.Property_0_is_private_in_type_1_but_not_in_type_2=2325]="Property_0_is_private_in_type_1_but_not_in_type_2",S[S.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",S[S._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",S[S._this_cannot_be_referenced_in_constructor_arguments=2333]="_this_cannot_be_referenced_in_constructor_arguments",S[S._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",S[S._super_cannot_be_referenced_in_constructor_arguments=2336]="_super_cannot_be_referenced_in_constructor_arguments",S[S.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",S[S.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",S[S.Property_0_is_private_and_only_accessible_within_class_1=2341]="Property_0_is_private_and_only_accessible_within_class_1",S[S.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",S[S.This_expression_is_not_constructable=2351]="This_expression_is_not_constructable",S[S.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",S[S.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",S[S.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",S[S.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",S[S.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",S[S.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",S[S._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",S[S.Overload_signatures_must_all_be_public_private_or_protected=2385]="Overload_signatures_must_all_be_public_private_or_protected",S[S.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",S[S.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",S[S.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",S[S.Duplicate_function_implementation=2393]="Duplicate_function_implementation",S[S.This_overload_signature_is_not_compatible_with_its_implementation_signature=2394]="This_overload_signature_is_not_compatible_with_its_implementation_signature",S[S.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",S[S.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2=2416]="Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2",S[S.A_class_can_only_implement_an_interface=2422]="A_class_can_only_implement_an_interface",S[S.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged=2434]="A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged",S[S.Types_have_separate_declarations_of_a_private_property_0=2442]="Types_have_separate_declarations_of_a_private_property_0",S[S.Property_0_is_protected_in_type_1_but_public_in_type_2=2444]="Property_0_is_protected_in_type_1_but_public_in_type_2",S[S.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses=2445]="Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses",S[S.Variable_0_used_before_its_declaration=2448]="Variable_0_used_before_its_declaration",S[S.Cannot_redeclare_block_scoped_variable_0=2451]="Cannot_redeclare_block_scoped_variable_0",S[S.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly=2453]="The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly",S[S.Variable_0_is_used_before_being_assigned=2454]="Variable_0_is_used_before_being_assigned",S[S.Type_alias_0_circularly_references_itself=2456]="Type_alias_0_circularly_references_itself",S[S.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",S[S.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",S[S.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",S[S.A_const_enum_member_can_only_be_accessed_using_a_string_literal=2476]="A_const_enum_member_can_only_be_accessed_using_a_string_literal",S[S.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",S[S._0_is_referenced_directly_or_indirectly_in_its_own_base_expression=2506]="_0_is_referenced_directly_or_indirectly_in_its_own_base_expression",S[S.Cannot_create_an_instance_of_an_abstract_class=2511]="Cannot_create_an_instance_of_an_abstract_class",S[S.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2=2515]="Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2",S[S.Object_is_possibly_null=2531]="Object_is_possibly_null",S[S.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",S[S.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",S[S.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",S[S.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",S[S.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",S[S.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",S[S.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned=2564]="Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned",S[S.Property_0_is_used_before_being_assigned=2565]="Property_0_is_used_before_being_assigned",S[S._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property=2610]="_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property",S[S._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor=2611]="_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor",S[S.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",S[S.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",S[S.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",S[S.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private=2675]="Cannot_extend_a_class_0_Class_constructor_is_marked_as_private",S[S.The_this_types_of_each_signature_are_incompatible=2685]="The_this_types_of_each_signature_are_incompatible",S[S.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",S[S.Namespace_can_only_have_declarations=2695]="Namespace_can_only_have_declarations",S[S.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",S[S.Duplicate_property_0=2718]="Duplicate_property_0",S[S.Property_0_is_missing_in_type_1_but_required_in_type_2=2741]="Property_0_is_missing_in_type_1_but_required_in_type_2",S[S.Type_0_has_no_call_signatures=2757]="Type_0_has_no_call_signatures",S[S.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter=2808]="Get_accessor_0_must_be_at_least_as_accessible_as_the_setter",S[S.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0=4117]="This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0",S[S.File_0_not_found=6054]="File_0_not_found",S[S.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",S[S.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",S[S.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without=6234]="This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without",S[S._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",S[S._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class",S))(ct||{});function pa(t){switch(t){case 100:return"Not implemented: {0}";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 103:return"Feature '{0}' is not enabled.";case 104:return"Low memory limit exceeded by static data: {0} > {1}";case 105:return"Module requires at least '{0}' pages of initial memory.";case 106:return"Module requires at least '{0}' pages of maximum memory.";case 107:return"Shared memory requires maximum memory to be defined.";case 108:return"Shared memory requires feature 'threads' to be enabled.";case 109:return"Transform '{0}': {1}";case 110:return"Start function name '{0}' is invalid or conflicts with another export.";case 111:return"Element '{0}' not found.";case 112:return"Exchange of '{0}' values is not supported by all embeddings";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Operation '{0}' cannot be applied to type '{1}'.";case 204:return"Type '{0}' cannot be nullable.";case 206:return"Mutable value cannot be inlined.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Expression is never 'null'.";case 211:return"Class '{0}' is final and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"Type '{0}' is illegal in this context.";case 215:return"Optional parameter must have an initializer.";case 216:return"Class '{0}' cannot declare a constructor when instantiated from an object literal.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 221:return"Type '{0}' is not a function index or function reference.";case 222:return"'{0}' must be a value between '{1}' and '{2}' inclusive.";case 223:return"'{0}' must be a power of two.";case 224:return"'{0}' is not a valid operator.";case 225:return"Expression cannot be represented by a type.";case 226:return"Expression resolves to unusual type '{0}'.";case 227:return"Array literal expected.";case 228:return"Function '{0}' is virtual and will not be inlined.";case 229:return"Property '{0}' only has a setter and is missing a getter.";case 230:return"'{0}' keyword cannot be used here.";case 231:return"A class with a constructor explicitly returning something else than 'this' must be '@final'.";case 233:return"Property '{0}' is always assigned before being used.";case 234:return"Expression does not compile to a value at runtime.";case 235:return"Only variables, functions and enums become WebAssembly module exports.";case 236:return"Literal '{0}' does not fit into 'i64' or 'u64' types.";case 237:return"Index signature accessors in type '{0}' differ in types.";case 238:return"Initializer, definitive assignment or nullable type expected.";case 239:return"Definitive assignment has no effect on local variables.";case 240:return"Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').";case 241:return"An interface or abstract method '{0}' cannot have type parameters.";case 242:return"Cannot override generic method '{0}' with a non-generic method or vice versa.";case 250:return"Only Error or its subclasses can be thrown, but found type '{0}'.";case 901:return"Importing the table disables some indirect call optimizations.";case 902:return"Exporting the table disables some indirect call optimizations.";case 903:return"Expression compiles to a dynamic check at runtime.";case 904:return"Indexed access may involve bounds checking.";case 905:return"Explicitly returning constructor drops 'this' allocation.";case 906:return"Unnecessary definite assignment.";case 907:return"'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.";case 908:return"Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1031:return"'{0}' modifier cannot appear on class elements of this kind.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1099:return"Type argument list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1120:return"An export assignment cannot have modifiers.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1263:return"Declarations with initializers cannot also have definite assignment assertions.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1190:return"The variable declaration of a 'for...of' statement cannot have an initializer.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1246:return"An interface property cannot have an initializer.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 1319:return"A default export can only be used in a module.";case 1345:return"An expression of type '{0}' cannot be tested for truthiness.";case 1351:return"An identifier or keyword cannot immediately follow a numeric literal.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2312:return"An interface can only extend an interface.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2325:return"Property '{0}' is private in type '{1}' but not in type '{2}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2333:return"'this' cannot be referenced in constructor arguments.";case 2335:return"'super' can only be referenced in a derived class.";case 2336:return"'super' cannot be referenced in constructor arguments.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2341:return"Property '{0}' is private and only accessible within class '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"This expression is not constructable.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2385:return"Overload signatures must all be public, private or protected.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2394:return"This overload signature is not compatible with its implementation signature.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2416:return"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.";case 2422:return"A class can only implement an interface.";case 2434:return"A namespace declaration cannot be located prior to a class or function with which it is merged.";case 2442:return"Types have separate declarations of a private property '{0}'.";case 2444:return"Property '{0}' is protected in type '{1}' but public in type '{2}'.";case 2445:return"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.";case 2448:return"Variable '{0}' used before its declaration.";case 2451:return"Cannot redeclare block-scoped variable '{0}'";case 2453:return"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.";case 2454:return"Variable '{0}' is used before being assigned.";case 2456:return"Type alias '{0}' circularly references itself.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2476:return"A const enum member can only be accessed using a string literal.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2506:return"'{0}' is referenced directly or indirectly in its own base expression.";case 2511:return"Cannot create an instance of an abstract class.";case 2515:return"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from '{2}'.";case 2531:return"Object is possibly 'null'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2564:return"Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.";case 2565:return"Property '{0}' is used before being assigned.";case 2610:return"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.";case 2611:return"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2675:return"Cannot extend a class '{0}'. Class constructor is marked as private.";case 2685:return"The 'this' types of each signature are incompatible.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2695:return"Namespace can only have declarations.";case 2706:return"Required type parameters may not follow optional type parameters.";case 2718:return"Duplicate property '{0}'.";case 2741:return"Property '{0}' is missing in type '{1}' but required in type '{2}'.";case 2757:return"Type '{0}' has no call signatures.";case 2808:return"Get accessor '{0}' must be at least as accessible as the setter.";case 4117:return"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 6234:return"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";default:return""}}var vp={};po(vp,{BitSet:()=>mp,COLOR_BLUE:()=>y2,COLOR_CYAN:()=>Tp,COLOR_GRAY:()=>d2,COLOR_GREEN:()=>m2,COLOR_MAGENTA:()=>xp,COLOR_RED:()=>ga,COLOR_RESET:()=>wn,COLOR_WHITE:()=>g2,COLOR_YELLOW:()=>bp,CharCode:()=>it,SURROGATE_HIGH:()=>Rn,SURROGATE_LOW:()=>fi,accuratePow64:()=>fa,cloneMap:()=>pe,colorize:()=>b2,combineSurrogates:()=>Fn,dirname:()=>Wy,escapeString:()=>Te,indent:()=>O,isAlpha:()=>gp,isAlphaOrDecimal:()=>Oy,isColorsEnabled:()=>mi,isDecimal:()=>nt,isHexBase:()=>kn,isHexOrDecimal:()=>s2,isHighSurrogate:()=>_i,isIdentifier:()=>ze,isIdentifierPart:()=>di,isIdentifierStart:()=>hi,isLineBreak:()=>Pt,isLowSurrogate:()=>ha,isOctal:()=>da,isPowerOf2:()=>Ct,isSurrogate:()=>r2,isSurrogateHigh:()=>i2,isSurrogateLow:()=>n2,isWhiteSpace:()=>In,mergeMaps:()=>t2,normalizePath:()=>vr,numCodeUnits:()=>Ar,readF32:()=>Yx,readF64:()=>$x,readI16:()=>Zx,readI32:()=>pi,readI64:()=>Vy,readI8:()=>Jx,readV128:()=>e2,resolvePath:()=>ma,setColorsEnabled:()=>ba,v128_ones:()=>Ep,v128_zero:()=>Ap,writeF32:()=>xr,writeF64:()=>Tr,writeI16:()=>Zt,writeI32:()=>me,writeI32AsI64:()=>ca,writeI64:()=>ci,writeI64AsI32:()=>hp,writeI8:()=>_e,writeV128:()=>dp});function Jx(t,i){return t[i]}function _e(t,i,e){i[e]=t}function Zx(t,i){return i32(t[i])|i32(t[i+1])<<8}function Zt(t,i,e){i[e]=t,i[e+1]=t>>>8}function pi(t,i){return i32(t[i])|i32(t[i+1])<<8|i32(t[i+2])<<16|i32(t[i+3])<<24}function me(t,i,e){i[e]=t,i[e+1]=t>>>8,i[e+2]=t>>>16,i[e+3]=t>>>24}function ca(t,i,e,r=!1){me(t,i,e),me(r||t>=0?0:-1,i,e+4)}function Vy(t,i){let e=pi(t,i),r=pi(t,i+4);return i64_new(e,r)}function ci(t,i,e){me(i64_low(t),i,e),me(i64_high(t),i,e+4)}function hp(t,i,e,r=!1){assert(r?i64_is_u32(t):i64_is_i32(t)),me(i64_low(t),i,e)}function Yx(t,i){return i32_as_f32(pi(t,i))}function xr(t,i,e){me(f32_as_i32(t),i,e)}function $x(t,i){return i64_as_f64(Vy(t,i))}function Tr(t,i,e){let r=f64_as_i64(t);me(i64_low(r),i,e),me(i64_high(r),i,e+4)}function e2(t,i){return t.slice(i,i+16)}function dp(t,i,e){assert(t.length==16),i.set(t,e)}function pe(t){if(ASC_TARGET){let i=new Map;if(t)for(let e=Map_keys(t),r=0,n=e.length;r<n;++r){let s=unchecked(e[r]),a=assert(t.get(s));i.set(s,a)}return i}else return new Map(t)}function t2(t,i){if(ASC_TARGET){let e=new Map;for(let r=Map_keys(t),n=0,s=r.length;n<s;++n){let a=unchecked(r[n]),l=assert(t.get(a));e.set(a,l)}for(let r=Map_keys(i),n=0,s=r.length;n<s;++n){let a=unchecked(r[n]),l=assert(i.get(a));e.set(a,l)}return e}else{let e=new Map(t);return i.forEach((r,n)=>e.set(n,r)),e}}var mp=class{constructor(){this.clear()}get size(){let i=0,e=this.words;for(let r=0,n=e.length;r<n;r++){let s=unchecked(e[r]);s&&(i+=popcnt(s))}return i}add(i){let e=i>>>5,r=this.words;return e>=r.length&&(this.words=new Uint32Array(e+16),this.words.set(r),r=this.words),unchecked(r[e]|=1<<i),this}delete(i){let e=i>>>5,r=this.words;e>=r.length||unchecked(r[e]&=~(1<<i))}has(i){let e=i>>>5,r=this.words;return e>=r.length?!1:(unchecked(r[i>>>5])&1<<i)!==0}clear(){this.words=new Uint32Array(16)}toArray(){let i=new Array(this.size);for(let e=0,r=0,n=this.words.length;e<n;++e){let s=unchecked(this.words[e]);for(;s;){let a=s&-s;unchecked(i[r++]=(e<<5)+popcnt(a-1)),s^=a}}return i}toString(){return`BitSet { ${this.toArray()} }`}};function Ct(t){return t!=0&&(t&t-1)==0}function fa(t,i){return ASC_TARGET?Math.pow(t,i):f64_pow(t,i)}var it=(P=>(P[P.Null=0]="Null",P[P.LineFeed=10]="LineFeed",P[P.CarriageReturn=13]="CarriageReturn",P[P.LineSeparator=8232]="LineSeparator",P[P.ParagraphSeparator=8233]="ParagraphSeparator",P[P.NextLine=133]="NextLine",P[P.Space=32]="Space",P[P.NonBreakingSpace=160]="NonBreakingSpace",P[P.EnQuad=8192]="EnQuad",P[P.EmQuad=8193]="EmQuad",P[P.EnSpace=8194]="EnSpace",P[P.EmSpace=8195]="EmSpace",P[P.ThreePerEmSpace=8196]="ThreePerEmSpace",P[P.FourPerEmSpace=8197]="FourPerEmSpace",P[P.SixPerEmSpace=8198]="SixPerEmSpace",P[P.FigureSpace=8199]="FigureSpace",P[P.PunctuationSpace=8200]="PunctuationSpace",P[P.ThinSpace=8201]="ThinSpace",P[P.HairSpace=8202]="HairSpace",P[P.ZeroWidthSpace=8203]="ZeroWidthSpace",P[P.NarrowNoBreakSpace=8239]="NarrowNoBreakSpace",P[P.IdeographicSpace=12288]="IdeographicSpace",P[P.MathematicalSpace=8287]="MathematicalSpace",P[P.Ogham=5760]="Ogham",P[P._=95]="_",P[P._0=48]="_0",P[P._1=49]="_1",P[P._2=50]="_2",P[P._3=51]="_3",P[P._4=52]="_4",P[P._5=53]="_5",P[P._6=54]="_6",P[P._7=55]="_7",P[P._8=56]="_8",P[P._9=57]="_9",P[P.a=97]="a",P[P.b=98]="b",P[P.c=99]="c",P[P.d=100]="d",P[P.e=101]="e",P[P.f=102]="f",P[P.g=103]="g",P[P.h=104]="h",P[P.i=105]="i",P[P.j=106]="j",P[P.k=107]="k",P[P.l=108]="l",P[P.m=109]="m",P[P.n=110]="n",P[P.o=111]="o",P[P.p=112]="p",P[P.q=113]="q",P[P.r=114]="r",P[P.s=115]="s",P[P.t=116]="t",P[P.u=117]="u",P[P.v=118]="v",P[P.w=119]="w",P[P.x=120]="x",P[P.y=121]="y",P[P.z=122]="z",P[P.A=65]="A",P[P.B=66]="B",P[P.C=67]="C",P[P.D=68]="D",P[P.E=69]="E",P[P.F=70]="F",P[P.G=71]="G",P[P.H=72]="H",P[P.I=73]="I",P[P.J=74]="J",P[P.K=75]="K",P[P.L=76]="L",P[P.M=77]="M",P[P.N=78]="N",P[P.O=79]="O",P[P.P=80]="P",P[P.Q=81]="Q",P[P.R=82]="R",P[P.S=83]="S",P[P.T=84]="T",P[P.U=85]="U",P[P.V=86]="V",P[P.W=87]="W",P[P.X=88]="X",P[P.Y=89]="Y",P[P.Z=90]="Z",P[P.Ampersand=38]="Ampersand",P[P.Asterisk=42]="Asterisk",P[P.At=64]="At",P[P.Backslash=92]="Backslash",P[P.Backtick=96]="Backtick",P[P.Bar=124]="Bar",P[P.Caret=94]="Caret",P[P.CloseBrace=125]="CloseBrace",P[P.CloseBracket=93]="CloseBracket",P[P.CloseParen=41]="CloseParen",P[P.Colon=58]="Colon",P[P.Comma=44]="Comma",P[P.Dollar=36]="Dollar",P[P.Dot=46]="Dot",P[P.DoubleQuote=34]="DoubleQuote",P[P.Equals=61]="Equals",P[P.Exclamation=33]="Exclamation",P[P.GreaterThan=62]="GreaterThan",P[P.Hash=35]="Hash",P[P.LessThan=60]="LessThan",P[P.Minus=45]="Minus",P[P.OpenBrace=123]="OpenBrace",P[P.OpenBracket=91]="OpenBracket",P[P.OpenParen=40]="OpenParen",P[P.Percent=37]="Percent",P[P.Plus=43]="Plus",P[P.Question=63]="Question",P[P.Semicolon=59]="Semicolon",P[P.SingleQuote=39]="SingleQuote",P[P.Slash=47]="Slash",P[P.Tilde=126]="Tilde",P[P.Backspace=8]="Backspace",P[P.FormFeed=12]="FormFeed",P[P.ByteOrderMark=65279]="ByteOrderMark",P[P.Tab=9]="Tab",P[P.VerticalTab=11]="VerticalTab",P))(it||{});function Pt(t){switch(t){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function In(t){switch(t){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return t>=8192&&t<=8203}}var Rn=55296,fi=56320;function r2(t){return(t&63488)==Rn}function i2(t){return t<fi}function n2(t){return t>=fi}function _i(t){return(t&64512)==Rn}function ha(t){return(t&64512)==fi}function Fn(t,i){return 65536+((t&1023)<<10)|i&1023}function Ar(t){return 1+i32(t>65535)}function gp(t){let i=t|32;return i>=97&&i<=122}function nt(t){return t>=48&&t<=57}function da(t){return t>=48&&t<=55}function kn(t){let i=t|32;return i>=97&&i<=102}function s2(t){return nt(t)||kn(t)}function Oy(t){return gp(t)||nt(t)}function hi(t){return gp(t)||t==95||t==36||t>=l2&&t<=o2&&qy(t,a2)}function di(t){return Oy(t)||t==95||t==36||t>=p2&&t<=c2&&qy(t,u2)}function ze(t){let i=t.length;if(!i)return!1;let e=t.codePointAt(0);if(!hi(e))return!1;let r=Ar(e);for(;r<i;){if(e=t.codePointAt(r),!di(e))return!1;r+=Ar(e)}return!0}var a2=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2191,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3164,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3292,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7306,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42972,42993,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,68938,68965,68975,68997,69248,69289,69296,69297,69314,69319,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70528,70537,70539,70539,70542,70542,70544,70581,70583,70583,70609,70609,70611,70611,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72640,72672,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73136,73179,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,78944,82938,82944,83526,90368,90397,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93504,93548,93760,93823,93856,93880,93883,93907,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94194,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124368,124397,124400,124400,124608,124638,124640,124642,124644,124645,124647,124653,124656,124660,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041],l2=170,o2=210041,u2=[170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2191,2199,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3164,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3292,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6877,6880,6891,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7306,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42972,42993,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,68928,68965,68969,68973,68975,68997,69248,69289,69291,69292,69296,69297,69314,69319,69370,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70528,70537,70539,70539,70542,70542,70544,70581,70583,70592,70594,70594,70597,70597,70599,70602,70604,70611,70625,70626,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71376,71395,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72544,72551,72640,72672,72688,72697,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73136,73179,73184,73193,73440,73462,73472,73488,73490,73530,73534,73538,73552,73562,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,78944,82938,82944,83526,90368,90425,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93504,93548,93552,93561,93760,93823,93856,93880,93883,93907,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118e3,118009,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124368,124410,124608,124638,124640,124661,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041,917760,917999],p2=170,c2=917999;function qy(t,i){let e=0,r=i.length;for(;e+1<r;){let n=e+(r-e>>>1);n-=n&1;let s=i[n];if(s<=t&&t<=i[n+1])return!0;t<s?r=n:e=n+2}return!1}var yp=" ",f2=" ",_2=" ",h2=" ",_a=new Map;function O(t,i){if(i<=4)switch(i){case 1:t.push(yp);break;case 2:t.push(f2);break;case 3:t.push(_2);break;case 4:t.push(h2);break}else{let e;_a.size<=1024?_a.has(i)?e=assert(_a.get(i)):_a.set(i,e=yp.repeat(i)):e=yp.repeat(i),t.push(e)}}function Te(t,i){let e=new Array,r=0,n=0;for(let s=t.length;n<s;)switch(t.charCodeAt(n)){case 0:{n>r&&e.push(t.substring(r,r=n+1)),e.push("\\0"),r=++n;break}case 8:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\b");break}case 9:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\t");break}case 10:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\n");break}case 11:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\v");break}case 12:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\f");break}case 13:{n>r&&e.push(t.substring(r,n)),e.push("\\r"),r=++n;break}case 34:{i==34?(n>r&&e.push(t.substring(r,n)),e.push('\\"'),r=++n):++n;break}case 39:{i==39?(n>r&&e.push(t.substring(r,n)),e.push("\\'"),r=++n):++n;break}case 92:{n>r&&e.push(t.substring(r,n)),e.push("\\\\"),r=++n;break}case 96:{i==96?(n>r&&e.push(t.substring(r,n)),e.push("\\`"),r=++n):++n;break}default:{++n;break}}return n>r&&e.push(t.substring(r,n)),e.join("")}var Er=47;function vr(t){let i=0,e=t.length;for(;i+1<e&&t.charCodeAt(i)==46&&t.charCodeAt(i+1)==Er;)i+=2;(i>0||e<t.length)&&(t=t.substring(i,e),e-=i,i=0);let r;for(;i+1<e;){if(r=!1,t.charCodeAt(i)==Er&&t.charCodeAt(i+1)==46){if(r=i+2==e,r||i+2<e&&t.charCodeAt(i+2)==Er){t=r?t.substring(0,i):t.substring(0,i)+t.substring(i+2),e-=2;continue}if(r=i+3==e,r&&t.charCodeAt(i+2)==46||i+3<e&&t.charCodeAt(i+2)==46&&t.charCodeAt(i+3)==Er){let n=i;for(;--n>=0;)if(t.charCodeAt(n)==Er){(i-n!=3||t.charCodeAt(n+1)!=46||t.charCodeAt(n+2)!=46)&&(t=r?t.substring(0,n):t.substring(0,n)+t.substring(i+3),e-=i+3-n,i=n-1);break}if(n<0&&i>0&&(i!=2||t.charCodeAt(0)!=46||t.charCodeAt(1)!=46)){t=t.substring(i+4),e=t.length;continue}}}i++}return e>0?t:"."}function ma(t,i){return t.startsWith("std/")?t:vr(Wy(i)+rt+t)}function Wy(t){let i=t.length;if(i<=1){if(i==0)return".";if(t.charCodeAt(0)==Er)return t}for(;--i>0;)if(t.charCodeAt(i)==Er)return t.substring(0,i);return"."}var d2="\x1B[90m",ga="\x1B[91m",m2="\x1B[92m",bp="\x1B[93m",y2="\x1B[94m",xp="\x1B[95m",Tp="\x1B[96m",g2="\x1B[97m",wn="\x1B[0m",ya=!0;function mi(){return ya}function ba(t){let i=ya;return ya=t,i}function b2(t,i){return ya?i+t+wn:t}var Ap=new Uint8Array(16),Ep=new Uint8Array(16).fill(255);var Ta=(n=>(n[n.Pedantic=0]="Pedantic",n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(Ta||{}),le=class t{constructor(i,e){this.start=i;this.end=e}static join(i,e){if(i.source!=e.source)throw new Error("source mismatch");let r=new t(i.start<e.start?i.start:e.start,i.end>e.end?i.end:e.end);return r.source=i.source,r}equals(i){return this.source==i.source&&this.start==i.start&&this.end==i.end}get atStart(){let i=new t(this.start,this.start);return i.source=this.source,i}get atEnd(){let i=new t(this.end,this.end);return i.source=this.source,i}toString(){return this.source.text.substring(this.start,this.end)}};function Sp(t){switch(t){case 0:return"PEDANTIC";case 1:return"INFO";case 2:return"WARNING";case 3:return"ERROR";default:return assert(!1),""}}function jy(t){switch(t){case 0:return xp;case 1:return Tp;case 2:return bp;case 3:return ga;default:return assert(!1),""}}var xa=class t{constructor(i,e,r){this.range=null;this.relatedRange=null;this.code=i,this.category=e,this.message=r}static create(i,e,r=null,n=null,s=null){let a=pa(i);return r!=null&&(a=a.replace("{0}",r)),n!=null&&(a=a.replace("{1}",n)),s!=null&&(a=a.replace("{2}",s)),new t(i,e,a)}equals(i){if(this.code!=i.code)return!1;let e=this.range,r=i.range;if(e){if(!r||!e.equals(r))return!1}else if(r)return!1;let n=this.relatedRange,s=i.relatedRange;if(n){if(!s||!n.equals(s))return!1}else if(s)return!1;return this.message==i.message}withRange(i){return this.range=i,this}withRelatedRange(i){return this.relatedRange=i,this}toString(){let i=Sp(this.category),e=this.range,r=this.code,n=this.message;if(e){let s=e.source,a=s.normalizedPath,l=s.lineAt(e.start),o=s.columnAt(),u=e.end-e.start;return`${i} ${r}: "${n}" in ${a}(${l},${o}+${u})`}return`${i} ${r}: ${n}`}};function Hy(t,i=!1,e=!1){let r=ba(i),n=[];mi()&&n.push(jy(t.category)),n.push(Sp(t.category)),mi()&&n.push(wn),n.push(t.code<1e3?" AS":" TS"),n.push(t.code.toString()),n.push(": "),n.push(t.message);let s=t.range;if(s){let a=s.source,l=t.relatedRange,o=0;if(l&&(o=max(a.lineAt(s.start),l.source.lineAt(l.start))),e?(n.push(`
|
|
10
|
-
`),n.push(
|
|
9
|
+
`+new Error().stack},n=function(a,l){if(a==l){if(a!=0)return 0;a=1/a,l=1/l}else{let o=a!=a,u=l!=l;if(o|u)return o-u;a==null&&(a=String(a)),l==null&&(l=String(l))}return a>l?1:-1};Ox=e,qx=r,Wx=n,Z.ASC_TARGET=0,Z.ASC_RUNTIME=0,Z.ASC_NO_ASSERT=!1,Z.ASC_MEMORY_BASE=0,Z.ASC_OPTIMIZE_LEVEL=3,Z.ASC_SHRINK_LEVEL=0,Z.ASC_FEATURE_MUTABLE_GLOBAL=!1,Z.ASC_FEATURE_SIGN_EXTENSION=!1,Z.ASC_FEATURE_BULK_MEMORY=!1,Z.ASC_FEATURE_SIMD=!1,Z.ASC_FEATURE_THREADS=!1;let t=new Float64Array(1),i=new Uint32Array(t.buffer);Object.defineProperties(Z.i8=function(l){return l<<24>>24},{MIN_VALUE:{value:-128},MAX_VALUE:{value:127},parse(a,l){return parseInt(a,l)<<24>>24}}),Object.defineProperties(Z.i16=function(l){return l<<16>>16},{MIN_VALUE:{value:-32768},MAX_VALUE:{value:32767},parse(a,l){return parseInt(a,l)<<16>>16}}),Object.defineProperties(Z.i32=Z.isize=function(l){return l|0},{MIN_VALUE:{value:-2147483648},MAX_VALUE:{value:2147483647},parse(a,l){return parseInt(a,l)|0}}),Object.defineProperties(Z.u8=function(l){return l&255},{MIN_VALUE:{value:0},MAX_VALUE:{value:255},parse(a,l){return parseInt(a,l)&255}}),Object.defineProperties(Z.u16=function(l){return l&65535},{MIN_VALUE:{value:0},MAX_VALUE:{value:65535},parse(a,l){return parseInt(a,l)&65535}}),Object.defineProperties(Z.u32=Z.usize=function(l){return l>>>0},{MIN_VALUE:{value:0},MAX_VALUE:{value:4294967295},parse(a,l){return parseInt(a,l)>>>0}}),Object.defineProperties(Z.bool=function(l){return!!l},{MIN_VALUE:{value:!1},MAX_VALUE:{value:!0},parse(a){return a.trim()==="true"}}),Object.defineProperties(Z.f32=function(l){return Math.fround(l)},{EPSILON:{value:11920928955078125e-23},MIN_VALUE:{value:1401298464324817e-60},MAX_VALUE:{value:34028234663852886e22},MIN_NORMAL_VALUE:{value:11754943508222875e-54},MIN_SAFE_INTEGER:{value:-16777215},MAX_SAFE_INTEGER:{value:16777215},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return Math.fround(parseFloat(a))}}),Object.defineProperties(Z.f64=function(l){return+l},{EPSILON:{value:2220446049250313e-31},MIN_VALUE:{value:5e-324},MAX_VALUE:{value:17976931348623157e292},MIN_NORMAL_VALUE:{value:22250738585072014e-324},MIN_SAFE_INTEGER:{value:-9007199254740991},MAX_SAFE_INTEGER:{value:9007199254740991},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return parseFloat(a)}}),Z.clz=Math.clz32,Z.ctz=function(l){return 32-Math.clz32(~l&l-1)},Z.popcnt=function(l){return l-=l>>>1&1431655765,l=(l&858993459)+(l>>>2&858993459),(l+(l>>>4)&252645135)*16843009>>>24},Z.rotl=function(l,o){return o&=31,l<<o|l>>>32-o},Z.rotr=function(l,o){return o&=31,l>>>o|l<<32-o},Z.abs=Math.abs,Z.max=Math.max,Z.min=Math.min,Z.ceil=Math.ceil,Z.floor=Math.floor,Z.nearest=function(l){let u=Math.abs(l);return u<4503599627370496?(u+4503599627370496-4503599627370496)*Math.sign(l):l},Z.select=function(l,o,u){return u?l:o},Z.sqrt=Math.sqrt,Z.trunc=Math.trunc,Z.copysign=function(l,o){return o?Math.abs(l)*Math.sign(o):(t[0]=o,i[1]>>>31?-1:1)},Z.bswap=function(l){let o=l>>8&16711935,u=(l&16711935)<<8;return l=o|u,o=l>>16&65535,u=(l&65535)<<16,o|u},e.prototype=Object.create(Error.prototype),e.prototype.name="UnreachableError",e.prototype.message="unreachable",Z.unreachable=function(){throw new e},r.prototype=Object.create(Error.prototype),r.prototype.name="AssertionError",Z.assert=function(l,o){if(l)return l;throw new r(o)},Z.changetype=function(l){return l},String.fromCharCodes=function(l){let u=l.length;if(u<=8192)return String.fromCharCode.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCharCode.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.fromCodePoints=function(l){let u=l.length;if(u<=8192)return String.fromCodePoint.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCodePoint.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.prototype.at||Object.defineProperty(String.prototype,"at",{value:function(l){return this.charAt(l>=0?l:l+this.length)},configurable:!0}),String.prototype.replaceAll||Object.defineProperty(String.prototype,"replaceAll",{value:function(l,o){let u=this.split(l).join(o);return l.length||(u=o+u+o),u},configurable:!0});let s=Array.prototype.sort;Array.prototype.sort=function(l){return s.call(this,l||n)},[Array,Uint8ClampedArray,Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array].forEach(a=>{a.prototype.at||Object.defineProperty(a.prototype,"at",{value:function(o){return this[o>=0?o:o+this.length]},configurable:!0}),a.prototype.findLastIndex||Object.defineProperty(a.prototype,"findLastIndex",{value:function(o){for(let u=this.length-1;u>=0;--u)if(o(this[u],u,this))return u;return-1},configurable:!0}),a!=Array&&Object.defineProperty(a,"wrap",{value:function(o,u,c){return new a(o,u,c)},configurable:!0})}),Z.isInteger=Number.isInteger,Z.isFloat=function(l){return typeof l=="number"},Z.isNullable=function(l){return!0},Z.isReference=function(l){return typeof l=="object"||typeof l=="string"},Z.isFunction=function(l){return typeof l=="function"},Z.isString=function(l){return typeof l=="string"||l instanceof String},Z.isArray=Array.isArray,Z.isArrayLike=function(l){return l&&typeof l=="object"&&typeof l.length=="number"&&l.length>=0&&Math.trunc(l.length)===l.length},Z.isDefined=function(l){return typeof l<"u"},Z.isConstant=function(l){return!1},Z.unchecked=function(l){return l},Z.fmod=function(l,o){return l%o},Z.fmodf=function(l,o){return Math.fround(l%o)},Z.JSMath=Math,Object.defineProperties(Z.JSMath,{sincos_sin:{value:0,writable:!0},sincos_cos:{value:0,writable:!0},signbit:{value:function(l){return t[0]=l,!!(i[1]>>>31)}},sincos:{value:function(l){this.sincos_sin=Math.sin(l),this.sincos_cos=Math.cos(l)}},exp2:{value:function(l){return Math.pow(2,l)}}}),Z.unmanaged=function(){},Z.trace=function(a,l){l&&(a+=Array.prototype.slice.call(arguments,2,2+l)),console.error("trace: "+a)}}var Ox,qx,Wx;var Zi={};fo(Zi,{default:()=>Yi});_o(Zi,wL);import*as wL from"binaryen";import{default as Yi}from"binaryen";import Kx from"long";var{_BinaryenTypeCreate:pf,_BinaryenTypeArity:cf,_BinaryenTypeExpand:ff,_BinaryenTypeGetHeapType:Ht,_BinaryenTypeFromHeapType:de,_BinaryenTypeIsNullable:_f,_BinaryenTypeFuncref:hf,_BinaryenTypeExternref:df,_BinaryenTypeAnyref:mf,_BinaryenTypeEqref:yf,_BinaryenTypeI31ref:gf,_BinaryenTypeStructref:bf,_BinaryenTypeArrayref:xf,_BinaryenTypeStringref:Tf,_BinaryenTypeNullref:Af,_BinaryenTypeNullExternref:Ef,_BinaryenTypeNullFuncref:vf,_BinaryenHeapTypeFunc:LL,_BinaryenHeapTypeExt:NL,_BinaryenHeapTypeAny:ML,_BinaryenHeapTypeEq:GL,_BinaryenHeapTypeI31:zL,_BinaryenHeapTypeStruct:DL,_BinaryenHeapTypeArray:UL,_BinaryenHeapTypeString:VL,_BinaryenHeapTypeNone:OL,_BinaryenHeapTypeNoext:qL,_BinaryenHeapTypeNofunc:WL,_BinaryenHeapTypeIsBasic:KL,_BinaryenHeapTypeIsSignature:jL,_BinaryenHeapTypeIsStruct:HL,_BinaryenHeapTypeIsArray:QL,_BinaryenHeapTypeIsBottom:Sf,_BinaryenHeapTypeGetBottom:If,_BinaryenHeapTypeIsSubType:Rf,_BinaryenStructTypeGetNumFields:Ff,_BinaryenStructTypeGetFieldType:XL,_BinaryenStructTypeGetFieldPackedType:JL,_BinaryenStructTypeIsFieldMutable:ZL,_BinaryenArrayTypeGetElementType:YL,_BinaryenArrayTypeGetElementPackedType:$L,_BinaryenArrayTypeIsElementMutable:eN,_BinaryenSignatureTypeGetParams:tN,_BinaryenSignatureTypeGetResults:rN,_BinaryenModuleCreate:kf,_BinaryenModuleDispose:wf,_BinaryenSizeofLiteral:ho,_BinaryenLiteralInt32:Cf,_BinaryenLiteralFloat32:Pf,_BinaryenLiteralFloat64:Bf,_BinaryenLiteralVec128:Lf,_BinaryenLiteralFloat32Bits:iN,_BinaryenExpressionGetId:Rt,_BinaryenExpressionGetType:Ft,_BinaryenExpressionSetType:nN,_BinaryenExpressionPrint:sN,_BinaryenExpressionCopy:Nf,_BinaryenExpressionFinalize:Mf,_BinaryenBlock:Gf,_BinaryenBlockGetName:Ds,_BinaryenBlockSetName:aN,_BinaryenBlockGetNumChildren:$i,_BinaryenBlockGetChildAt:en,_BinaryenBlockSetChildAt:zf,_BinaryenBlockAppendChild:lN,_BinaryenBlockInsertChildAt:oN,_BinaryenBlockRemoveChildAt:uN,_BinaryenIf:Df,_BinaryenIfGetCondition:tn,_BinaryenIfSetCondition:Uf,_BinaryenIfGetIfTrue:rn,_BinaryenIfSetIfTrue:Vf,_BinaryenIfGetIfFalse:nn,_BinaryenIfSetIfFalse:Of,_BinaryenLoop:qf,_BinaryenLoopGetName:Us,_BinaryenLoopSetName:pN,_BinaryenLoopGetBody:sn,_BinaryenLoopSetBody:Wf,_BinaryenBreak:Kf,_BinaryenBreakGetName:Vs,_BinaryenBreakSetName:cN,_BinaryenBreakGetCondition:an,_BinaryenBreakSetCondition:jf,_BinaryenBreakGetValue:mo,_BinaryenBreakSetValue:Hf,_BinaryenSwitch:Qf,_BinaryenSwitchGetNumNames:Xf,_BinaryenSwitchGetNameAt:Jf,_BinaryenSwitchSetNameAt:fN,_BinaryenSwitchAppendName:_N,_BinaryenSwitchInsertNameAt:hN,_BinaryenSwitchRemoveNameAt:dN,_BinaryenSwitchGetDefaultName:Zf,_BinaryenSwitchSetDefaultName:mN,_BinaryenSwitchGetCondition:yo,_BinaryenSwitchSetCondition:Yf,_BinaryenSwitchGetValue:go,_BinaryenSwitchSetValue:$f,_BinaryenCall:e_,_BinaryenCallGetTarget:Yr,_BinaryenCallSetTarget:yN,_BinaryenCallGetNumOperands:Qt,_BinaryenCallGetOperandAt:Xt,_BinaryenCallSetOperandAt:Os,_BinaryenCallAppendOperand:gN,_BinaryenCallInsertOperandAt:bN,_BinaryenCallRemoveOperandAt:xN,_BinaryenCallIsReturn:TN,_BinaryenCallSetReturn:AN,_BinaryenReturnCall:t_,_BinaryenCallIndirect:r_,_BinaryenCallIndirectGetTable:EN,_BinaryenCallIndirectSetTable:vN,_BinaryenCallIndirectGetTarget:bo,_BinaryenCallIndirectSetTarget:i_,_BinaryenCallIndirectGetNumOperands:ln,_BinaryenCallIndirectGetOperandAt:on,_BinaryenCallIndirectSetOperandAt:qs,_BinaryenCallIndirectAppendOperand:SN,_BinaryenCallIndirectInsertOperandAt:IN,_BinaryenCallIndirectRemoveOperandAt:RN,_BinaryenCallIndirectIsReturn:FN,_BinaryenCallIndirectSetReturn:kN,_BinaryenReturnCallIndirect:n_,_BinaryenLocalGet:s_,_BinaryenLocalGetGetIndex:Ws,_BinaryenLocalGetSetIndex:wN,_BinaryenLocalSet:un,_BinaryenLocalSetIsTee:Ks,_BinaryenLocalSetGetIndex:$r,_BinaryenLocalSetSetIndex:CN,_BinaryenLocalSetGetValue:mr,_BinaryenLocalSetSetValue:js,_BinaryenLocalTee:a_,_BinaryenGlobalGet:l_,_BinaryenGlobalGetGetName:Hs,_BinaryenGlobalGetSetName:PN,_BinaryenGlobalSet:o_,_BinaryenGlobalSetGetName:u_,_BinaryenGlobalSetSetName:BN,_BinaryenGlobalSetGetValue:xo,_BinaryenGlobalSetSetValue:p_,_BinaryenMemorySize:c_,_BinaryenMemoryGrow:f_,_BinaryenMemoryGrowGetDelta:pn,_BinaryenMemoryGrowSetDelta:__,_BinaryenLoad:h_,_BinaryenLoadIsAtomic:LN,_BinaryenLoadSetAtomic:NN,_BinaryenLoadIsSigned:d_,_BinaryenLoadSetSigned:MN,_BinaryenLoadGetOffset:m_,_BinaryenLoadSetOffset:GN,_BinaryenLoadGetBytes:y_,_BinaryenLoadSetBytes:zN,_BinaryenLoadGetAlign:DN,_BinaryenLoadSetAlign:UN,_BinaryenLoadGetPtr:cn,_BinaryenLoadSetPtr:g_,_BinaryenAtomicLoad:b_,_BinaryenStore:x_,_BinaryenStoreIsAtomic:VN,_BinaryenStoreSetAtomic:ON,_BinaryenStoreGetBytes:Qs,_BinaryenStoreSetBytes:qN,_BinaryenStoreGetOffset:Xs,_BinaryenStoreSetOffset:WN,_BinaryenStoreGetAlign:KN,_BinaryenStoreSetAlign:jN,_BinaryenStoreGetPtr:yr,_BinaryenStoreSetPtr:Js,_BinaryenStoreGetValue:fn,_BinaryenStoreSetValue:T_,_BinaryenStoreGetValueType:HN,_BinaryenStoreSetValueType:QN,_BinaryenAtomicStore:A_,_BinaryenConst:ei,_BinaryenConstGetValueI32:E_,_BinaryenConstSetValueI32:XN,_BinaryenConstGetValueF32:v_,_BinaryenConstSetValueF32:JN,_BinaryenConstGetValueF64:S_,_BinaryenConstSetValueF64:ZN,_BinaryenConstGetValueV128:I_,_BinaryenConstSetValueV128:YN,_BinaryenUnary:R_,_BinaryenUnaryGetOp:F_,_BinaryenUnarySetOp:$N,_BinaryenUnaryGetValue:_n,_BinaryenUnarySetValue:k_,_BinaryenWideIntAddSub:w_,_BinaryenWideIntMul:C_,_BinaryenBinary:P_,_BinaryenBinaryGetOp:B_,_BinaryenBinarySetOp:eM,_BinaryenBinaryGetLeft:hn,_BinaryenBinarySetLeft:L_,_BinaryenBinaryGetRight:dn,_BinaryenBinarySetRight:N_,_BinaryenSelect:M_,_BinaryenSelectGetIfTrue:mn,_BinaryenSelectSetIfTrue:G_,_BinaryenSelectGetIfFalse:yn,_BinaryenSelectSetIfFalse:z_,_BinaryenSelectGetCondition:gn,_BinaryenSelectSetCondition:D_,_BinaryenDrop:To,_BinaryenDropGetValue:bn,_BinaryenDropSetValue:U_,_BinaryenReturn:V_,_BinaryenReturnGetValue:gr,_BinaryenReturnSetValue:Zs,_BinaryenNop:O_,_BinaryenUnreachable:q_,_BinaryenAtomicRMW:W_,_BinaryenAtomicRMWGetOp:tM,_BinaryenAtomicRMWSetOp:rM,_BinaryenAtomicRMWGetBytes:iM,_BinaryenAtomicRMWSetBytes:nM,_BinaryenAtomicRMWGetOffset:sM,_BinaryenAtomicRMWSetOffset:aM,_BinaryenAtomicRMWGetPtr:Ao,_BinaryenAtomicRMWSetPtr:K_,_BinaryenAtomicRMWGetValue:Eo,_BinaryenAtomicRMWSetValue:j_,_BinaryenAtomicCmpxchg:H_,_BinaryenAtomicCmpxchgGetBytes:lM,_BinaryenAtomicCmpxchgSetBytes:oM,_BinaryenAtomicCmpxchgGetOffset:uM,_BinaryenAtomicCmpxchgSetOffset:pM,_BinaryenAtomicCmpxchgGetPtr:vo,_BinaryenAtomicCmpxchgSetPtr:Q_,_BinaryenAtomicCmpxchgGetExpected:So,_BinaryenAtomicCmpxchgSetExpected:X_,_BinaryenAtomicCmpxchgGetReplacement:Io,_BinaryenAtomicCmpxchgSetReplacement:J_,_BinaryenAtomicWait:Z_,_BinaryenAtomicWaitGetPtr:Ro,_BinaryenAtomicWaitSetPtr:Y_,_BinaryenAtomicWaitGetExpected:Fo,_BinaryenAtomicWaitSetExpected:$_,_BinaryenAtomicWaitGetTimeout:ko,_BinaryenAtomicWaitSetTimeout:eh,_BinaryenAtomicWaitGetExpectedType:cM,_BinaryenAtomicWaitSetExpectedType:fM,_BinaryenAtomicNotify:th,_BinaryenAtomicNotifyGetPtr:wo,_BinaryenAtomicNotifySetPtr:rh,_BinaryenAtomicNotifyGetNotifyCount:Co,_BinaryenAtomicNotifySetNotifyCount:ih,_BinaryenAtomicFence:nh,_BinaryenAtomicFenceGetOrder:_M,_BinaryenAtomicFenceSetOrder:hM,_BinaryenSIMDExtract:sh,_BinaryenSIMDExtractGetOp:dM,_BinaryenSIMDExtractSetOp:mM,_BinaryenSIMDExtractGetVec:Po,_BinaryenSIMDExtractSetVec:ah,_BinaryenSIMDExtractGetIndex:yM,_BinaryenSIMDExtractSetIndex:gM,_BinaryenSIMDReplace:lh,_BinaryenSIMDReplaceGetOp:bM,_BinaryenSIMDReplaceSetOp:xM,_BinaryenSIMDReplaceGetVec:Bo,_BinaryenSIMDReplaceSetVec:oh,_BinaryenSIMDReplaceGetIndex:TM,_BinaryenSIMDReplaceSetIndex:AM,_BinaryenSIMDReplaceGetValue:Lo,_BinaryenSIMDReplaceSetValue:uh,_BinaryenSIMDShuffle:ph,_BinaryenSIMDShuffleGetLeft:No,_BinaryenSIMDShuffleSetLeft:ch,_BinaryenSIMDShuffleGetRight:Mo,_BinaryenSIMDShuffleSetRight:fh,_BinaryenSIMDShuffleGetMask:EM,_BinaryenSIMDShuffleSetMask:vM,_BinaryenSIMDTernary:_h,_BinaryenSIMDTernaryGetOp:SM,_BinaryenSIMDTernarySetOp:IM,_BinaryenSIMDTernaryGetA:Go,_BinaryenSIMDTernarySetA:hh,_BinaryenSIMDTernaryGetB:zo,_BinaryenSIMDTernarySetB:dh,_BinaryenSIMDTernaryGetC:Do,_BinaryenSIMDTernarySetC:mh,_BinaryenSIMDShift:yh,_BinaryenSIMDShiftGetOp:RM,_BinaryenSIMDShiftSetOp:FM,_BinaryenSIMDShiftGetVec:Uo,_BinaryenSIMDShiftSetVec:gh,_BinaryenSIMDShiftGetShift:Vo,_BinaryenSIMDShiftSetShift:bh,_BinaryenSIMDLoad:xh,_BinaryenSIMDLoadGetOp:kM,_BinaryenSIMDLoadSetOp:wM,_BinaryenSIMDLoadGetOffset:CM,_BinaryenSIMDLoadSetOffset:PM,_BinaryenSIMDLoadGetAlign:BM,_BinaryenSIMDLoadSetAlign:LM,_BinaryenSIMDLoadGetPtr:Oo,_BinaryenSIMDLoadSetPtr:Th,_BinaryenSIMDLoadStoreLane:Ah,_BinaryenSIMDLoadStoreLaneGetOp:NM,_BinaryenSIMDLoadStoreLaneSetOp:MM,_BinaryenSIMDLoadStoreLaneGetOffset:GM,_BinaryenSIMDLoadStoreLaneSetOffset:zM,_BinaryenSIMDLoadStoreLaneGetAlign:DM,_BinaryenSIMDLoadStoreLaneSetAlign:UM,_BinaryenSIMDLoadStoreLaneGetIndex:VM,_BinaryenSIMDLoadStoreLaneSetIndex:OM,_BinaryenSIMDLoadStoreLaneGetPtr:qo,_BinaryenSIMDLoadStoreLaneSetPtr:Eh,_BinaryenSIMDLoadStoreLaneGetVec:Wo,_BinaryenSIMDLoadStoreLaneSetVec:vh,_BinaryenSIMDLoadStoreLaneIsStore:qM,_BinaryenMemoryInit:WM,_BinaryenMemoryInitGetSegment:KM,_BinaryenMemoryInitSetSegment:jM,_BinaryenMemoryInitGetDest:Ko,_BinaryenMemoryInitSetDest:Sh,_BinaryenMemoryInitGetOffset:jo,_BinaryenMemoryInitSetOffset:Ih,_BinaryenMemoryInitGetSize:Ho,_BinaryenMemoryInitSetSize:Rh,_BinaryenDataDrop:HM,_BinaryenDataDropGetSegment:QM,_BinaryenDataDropSetSegment:XM,_BinaryenMemoryCopy:Fh,_BinaryenMemoryCopyGetDest:Qo,_BinaryenMemoryCopySetDest:kh,_BinaryenMemoryCopyGetSource:Xo,_BinaryenMemoryCopySetSource:wh,_BinaryenMemoryCopyGetSize:Jo,_BinaryenMemoryCopySetSize:Ch,_BinaryenMemoryFill:Ph,_BinaryenMemoryFillGetDest:Zo,_BinaryenMemoryFillSetDest:Bh,_BinaryenMemoryFillGetValue:Yo,_BinaryenMemoryFillSetValue:Lh,_BinaryenMemoryFillGetSize:$o,_BinaryenMemoryFillSetSize:Nh,_BinaryenRefNull:Mh,_BinaryenRefIsNull:Gh,_BinaryenRefIsNullGetValue:eu,_BinaryenRefIsNullSetValue:zh,_BinaryenRefAs:tu,_BinaryenRefAsGetOp:JM,_BinaryenRefAsSetOp:ZM,_BinaryenRefAsGetValue:ru,_BinaryenRefAsSetValue:Dh,_BinaryenRefFunc:Uh,_BinaryenRefFuncGetFunc:Vh,_BinaryenRefFuncSetFunc:YM,_BinaryenRefEq:Oh,_BinaryenRefEqGetLeft:iu,_BinaryenRefEqSetLeft:qh,_BinaryenRefEqGetRight:nu,_BinaryenRefEqSetRight:Wh,_BinaryenTableGet:Kh,_BinaryenTableGetGetTable:$M,_BinaryenTableGetSetTable:e7,_BinaryenTableGetGetIndex:t7,_BinaryenTableGetSetIndex:r7,_BinaryenTableSet:jh,_BinaryenTableSetGetTable:i7,_BinaryenTableSetSetTable:n7,_BinaryenTableSetGetIndex:s7,_BinaryenTableSetSetIndex:a7,_BinaryenTableSetGetValue:l7,_BinaryenTableSetSetValue:o7,_BinaryenTableSize:Hh,_BinaryenTableSizeGetTable:u7,_BinaryenTableSizeSetTable:p7,_BinaryenTableGrow:Qh,_BinaryenTableGrowGetTable:c7,_BinaryenTableGrowSetTable:f7,_BinaryenTableGrowGetValue:_7,_BinaryenTableGrowSetValue:h7,_BinaryenTableGrowGetDelta:d7,_BinaryenTableGrowSetDelta:m7,_BinaryenTry:Xh,_BinaryenTryGetName:y7,_BinaryenTrySetName:g7,_BinaryenTryGetBody:su,_BinaryenTrySetBody:Jh,_BinaryenTryGetNumCatchTags:b7,_BinaryenTryGetNumCatchBodies:au,_BinaryenTryGetCatchTagAt:x7,_BinaryenTrySetCatchTagAt:T7,_BinaryenTryAppendCatchTag:A7,_BinaryenTryInsertCatchTagAt:E7,_BinaryenTryRemoveCatchTagAt:v7,_BinaryenTryGetCatchBodyAt:lu,_BinaryenTrySetCatchBodyAt:Zh,_BinaryenTryAppendCatchBody:S7,_BinaryenTryInsertCatchBodyAt:I7,_BinaryenTryRemoveCatchBodyAt:R7,_BinaryenTryHasCatchAll:F7,_BinaryenTryGetDelegateTarget:k7,_BinaryenTrySetDelegateTarget:w7,_BinaryenTryIsDelegate:C7,_BinaryenThrow:Yh,_BinaryenThrowGetTag:$h,_BinaryenThrowSetTag:P7,_BinaryenThrowGetNumOperands:ou,_BinaryenThrowGetOperandAt:uu,_BinaryenThrowSetOperandAt:ed,_BinaryenThrowAppendOperand:B7,_BinaryenThrowInsertOperandAt:L7,_BinaryenThrowRemoveOperandAt:N7,_BinaryenRethrow:td,_BinaryenRethrowGetTarget:M7,_BinaryenRethrowSetDepth:G7,_BinaryenTupleMake:rd,_BinaryenTupleMakeGetNumOperands:pu,_BinaryenTupleMakeGetOperandAt:cu,_BinaryenTupleMakeSetOperandAt:id,_BinaryenTupleMakeAppendOperand:z7,_BinaryenTupleMakeInsertOperandAt:D7,_BinaryenTupleMakeRemoveOperandAt:U7,_BinaryenTupleExtract:nd,_BinaryenTupleExtractGetTuple:fu,_BinaryenTupleExtractSetTuple:sd,_BinaryenTupleExtractGetIndex:V7,_BinaryenTupleExtractSetIndex:O7,_BinaryenPop:ad,_BinaryenRefI31:ld,_BinaryenRefI31GetValue:_u,_BinaryenRefI31SetValue:od,_BinaryenI31Get:ud,_BinaryenI31GetGetI31:hu,_BinaryenI31GetSetI31:pd,_BinaryenI31GetIsSigned:q7,_BinaryenI31GetSetSigned:W7,_BinaryenCallRef:K7,_BinaryenCallRefGetNumOperands:du,_BinaryenCallRefGetOperandAt:mu,_BinaryenCallRefSetOperandAt:cd,_BinaryenCallRefAppendOperand:j7,_BinaryenCallRefInsertOperandAt:H7,_BinaryenCallRefRemoveOperandAt:Q7,_BinaryenCallRefGetTarget:yu,_BinaryenCallRefSetTarget:fd,_BinaryenCallRefIsReturn:X7,_BinaryenCallRefSetReturn:J7,_BinaryenRefTest:Z7,_BinaryenRefTestGetRef:gu,_BinaryenRefTestSetRef:_d,_BinaryenRefTestGetCastType:Y7,_BinaryenRefTestSetCastType:$7,_BinaryenRefCast:eG,_BinaryenRefCastGetRef:bu,_BinaryenRefCastSetRef:hd,_BinaryenBrOn:tG,_BinaryenBrOnGetOp:rG,_BinaryenBrOnSetOp:iG,_BinaryenBrOnGetName:dd,_BinaryenBrOnSetName:nG,_BinaryenBrOnGetRef:xu,_BinaryenBrOnSetRef:md,_BinaryenBrOnGetCastType:sG,_BinaryenBrOnSetCastType:aG,_BinaryenStructNew:lG,_BinaryenStructNewGetNumOperands:Tu,_BinaryenStructNewGetOperandAt:Au,_BinaryenStructNewSetOperandAt:yd,_BinaryenStructNewAppendOperand:oG,_BinaryenStructNewInsertOperandAt:uG,_BinaryenStructNewRemoveOperandAt:pG,_BinaryenStructGet:cG,_BinaryenStructGetGetIndex:gd,_BinaryenStructGetSetIndex:fG,_BinaryenStructGetGetRef:Eu,_BinaryenStructGetSetRef:bd,_BinaryenStructGetIsSigned:_G,_BinaryenStructGetSetSigned:hG,_BinaryenStructSet:dG,_BinaryenStructSetGetIndex:xd,_BinaryenStructSetSetIndex:mG,_BinaryenStructSetGetRef:vu,_BinaryenStructSetSetRef:Td,_BinaryenStructSetGetValue:Su,_BinaryenStructSetSetValue:Ad,_BinaryenArrayNew:yG,_BinaryenArrayNewGetInit:Iu,_BinaryenArrayNewSetInit:Ed,_BinaryenArrayNewGetSize:Ru,_BinaryenArrayNewSetSize:vd,_BinaryenArrayNewFixed:gG,_BinaryenArrayNewFixedGetNumValues:Fu,_BinaryenArrayNewFixedGetValueAt:ku,_BinaryenArrayNewFixedSetValueAt:Sd,_BinaryenArrayNewFixedAppendValue:bG,_BinaryenArrayNewFixedInsertValueAt:xG,_BinaryenArrayNewFixedRemoveValueAt:TG,_BinaryenArrayNewData:AG,_BinaryenArrayNewDataGetSegment:EG,_BinaryenArrayNewDataSetSegment:vG,_BinaryenArrayNewDataGetOffset:SG,_BinaryenArrayNewDataSetOffset:IG,_BinaryenArrayNewDataGetSize:RG,_BinaryenArrayNewDataSetSize:FG,_BinaryenArrayNewElem:kG,_BinaryenArrayNewElemGetSegment:wG,_BinaryenArrayNewElemSetSegment:CG,_BinaryenArrayNewElemGetOffset:PG,_BinaryenArrayNewElemSetOffset:BG,_BinaryenArrayNewElemGetSize:LG,_BinaryenArrayNewElemSetSize:NG,_BinaryenArrayGet:MG,_BinaryenArrayGetGetRef:wu,_BinaryenArrayGetSetRef:Id,_BinaryenArrayGetGetIndex:Cu,_BinaryenArrayGetSetIndex:Rd,_BinaryenArrayGetIsSigned:GG,_BinaryenArrayGetSetSigned:zG,_BinaryenArraySet:DG,_BinaryenArraySetGetRef:Pu,_BinaryenArraySetSetRef:Fd,_BinaryenArraySetGetIndex:Bu,_BinaryenArraySetSetIndex:kd,_BinaryenArraySetGetValue:Lu,_BinaryenArraySetSetValue:wd,_BinaryenArrayLen:UG,_BinaryenArrayLenGetRef:Nu,_BinaryenArrayLenSetRef:Cd,_BinaryenArrayFill:VG,_BinaryenArrayFillGetRef:OG,_BinaryenArrayFillSetRef:qG,_BinaryenArrayFillGetIndex:WG,_BinaryenArrayFillSetIndex:KG,_BinaryenArrayFillGetValue:jG,_BinaryenArrayFillSetValue:HG,_BinaryenArrayFillGetSize:QG,_BinaryenArrayFillSetSize:XG,_BinaryenArrayCopy:JG,_BinaryenArrayCopyGetDestRef:Mu,_BinaryenArrayCopySetDestRef:Pd,_BinaryenArrayCopyGetDestIndex:Gu,_BinaryenArrayCopySetDestIndex:Bd,_BinaryenArrayCopyGetSrcRef:zu,_BinaryenArrayCopySetSrcRef:Ld,_BinaryenArrayCopyGetSrcIndex:Du,_BinaryenArrayCopySetSrcIndex:Nd,_BinaryenArrayCopyGetLength:Uu,_BinaryenArrayCopySetLength:Md,_BinaryenArrayInitData:ZG,_BinaryenArrayInitDataGetSegment:YG,_BinaryenArrayInitDataSetSegment:$G,_BinaryenArrayInitDataGetRef:ez,_BinaryenArrayInitDataSetRef:tz,_BinaryenArrayInitDataGetIndex:rz,_BinaryenArrayInitDataSetIndex:iz,_BinaryenArrayInitDataGetOffset:nz,_BinaryenArrayInitDataSetOffset:sz,_BinaryenArrayInitDataGetSize:az,_BinaryenArrayInitDataSetSize:lz,_BinaryenArrayInitElem:oz,_BinaryenArrayInitElemGetSegment:uz,_BinaryenArrayInitElemSetSegment:pz,_BinaryenArrayInitElemGetRef:cz,_BinaryenArrayInitElemSetRef:fz,_BinaryenArrayInitElemGetIndex:_z,_BinaryenArrayInitElemSetIndex:hz,_BinaryenArrayInitElemGetOffset:dz,_BinaryenArrayInitElemSetOffset:mz,_BinaryenArrayInitElemGetSize:yz,_BinaryenArrayInitElemSetSize:gz,_BinaryenStringNew:bz,_BinaryenStringNewGetOp:xz,_BinaryenStringNewSetOp:Tz,_BinaryenStringNewGetRef:Vu,_BinaryenStringNewSetRef:Gd,_BinaryenStringNewGetStart:Ou,_BinaryenStringNewSetStart:zd,_BinaryenStringNewGetEnd:qu,_BinaryenStringNewSetEnd:Dd,_BinaryenStringConst:Az,_BinaryenStringConstGetString:Ez,_BinaryenStringConstSetString:vz,_BinaryenStringMeasure:Sz,_BinaryenStringMeasureGetOp:Iz,_BinaryenStringMeasureSetOp:Rz,_BinaryenStringMeasureGetRef:Wu,_BinaryenStringMeasureSetRef:Ud,_BinaryenStringEncode:Fz,_BinaryenStringEncodeGetOp:kz,_BinaryenStringEncodeSetOp:wz,_BinaryenStringEncodeGetStr:Ku,_BinaryenStringEncodeSetStr:Vd,_BinaryenStringEncodeGetArray:ju,_BinaryenStringEncodeSetArray:Od,_BinaryenStringEncodeGetStart:Hu,_BinaryenStringEncodeSetStart:qd,_BinaryenStringConcat:Cz,_BinaryenStringConcatGetLeft:Qu,_BinaryenStringConcatSetLeft:Wd,_BinaryenStringConcatGetRight:Xu,_BinaryenStringConcatSetRight:Kd,_BinaryenStringEq:Ju,_BinaryenStringEqGetOp:Pz,_BinaryenStringEqSetOp:Bz,_BinaryenStringEqGetLeft:Zu,_BinaryenStringEqSetLeft:jd,_BinaryenStringEqGetRight:Yu,_BinaryenStringEqSetRight:Hd,_BinaryenStringWTF16Get:Lz,_BinaryenStringWTF16GetGetRef:$u,_BinaryenStringWTF16GetSetRef:Qd,_BinaryenStringWTF16GetGetPos:ep,_BinaryenStringWTF16GetSetPos:Xd,_BinaryenStringSliceWTF:Nz,_BinaryenStringSliceWTFGetRef:tp,_BinaryenStringSliceWTFSetRef:Jd,_BinaryenStringSliceWTFGetStart:rp,_BinaryenStringSliceWTFSetStart:Zd,_BinaryenStringSliceWTFGetEnd:ip,_BinaryenStringSliceWTFSetEnd:Yd,_BinaryenAddFunction:ti,_BinaryenGetFunction:ri,_BinaryenRemoveFunction:xn,_BinaryenGetNumFunctions:ii,_BinaryenGetFunctionByIndex:Tn,_BinaryenFunctionGetName:ni,_BinaryenFunctionGetParams:An,_BinaryenFunctionGetResults:En,_BinaryenFunctionGetNumVars:Ys,_BinaryenFunctionGetVar:$s,_BinaryenFunctionAddVar:Mz,_BinaryenFunctionGetNumLocals:np,_BinaryenFunctionHasLocalName:Gz,_BinaryenFunctionGetLocalName:zz,_BinaryenFunctionSetLocalName:$d,_BinaryenFunctionGetBody:kt,_BinaryenFunctionSetBody:vn,_BinaryenFunctionGetType:Dz,_BinaryenFunctionSetType:Uz,_BinaryenFunctionOptimize:Vz,_BinaryenFunctionRunPasses:em,_BinaryenFunctionSetDebugLocation:tm,_BinaryenAddFunctionImport:rm,_BinaryenAddTableImport:im,_BinaryenAddMemoryImport:nm,_BinaryenAddGlobalImport:sm,_BinaryenAddTagImport:am,_BinaryenAddFunctionExport:ea,_BinaryenAddTableExport:lm,_BinaryenAddMemoryExport:om,_BinaryenAddGlobalExport:um,_BinaryenAddTagExport:pm,_BinaryenGetExport:ta,_BinaryenRemoveExport:ra,_BinaryenGetNumExports:Oz,_BinaryenGetExportByIndex:qz,_BinaryenExportGetKind:cm,_BinaryenExportGetName:fm,_BinaryenExportGetValue:_m,_BinaryenAddGlobal:hm,_BinaryenGetGlobal:sp,_BinaryenRemoveGlobal:dm,_BinaryenGetNumGlobals:mm,_BinaryenGetGlobalByIndex:ym,_BinaryenGlobalGetName:gm,_BinaryenGlobalGetType:bm,_BinaryenGlobalIsMutable:xm,_BinaryenGlobalGetInitExpr:ia,_BinaryenAddTag:Tm,_BinaryenGetTag:Am,_BinaryenRemoveTag:Em,_BinaryenTagGetName:vm,_BinaryenTagGetParams:Sm,_BinaryenTagGetResults:Im,_BinaryenAddTable:ap,_BinaryenRemoveTable:Wz,_BinaryenGetNumTables:Kz,_BinaryenGetTable:lp,_BinaryenGetTableByIndex:jz,_BinaryenTableGetName:Hz,_BinaryenTableSetName:Qz,_BinaryenTableGetInitial:Xz,_BinaryenTableSetInitial:Rm,_BinaryenTableHasMax:Jz,_BinaryenTableGetMax:Zz,_BinaryenTableSetMax:Fm,_BinaryenTableGetType:Yz,_BinaryenTableSetType:$z,_BinaryenAddActiveElementSegment:km,_BinaryenAddPassiveElementSegment:e9,_BinaryenRemoveElementSegment:t9,_BinaryenGetNumElementSegments:r9,_BinaryenGetElementSegment:i9,_BinaryenGetElementSegmentByIndex:n9,_BinaryenSetMemory:wm,_BinaryenGetNumMemorySegments:s9,_BinaryenGetMemorySegmentByteOffset:a9,_BinaryenGetMemorySegmentByteLength:l9,_BinaryenCopyMemorySegmentData:o9,_BinaryenAddDataSegment:u9,_BinaryenSetStart:Cm,_BinaryenGetStart:p9,_BinaryenModuleParse:c9,_BinaryenModulePrint:f9,_BinaryenModulePrintAsmjs:_9,_BinaryenModuleValidate:Pm,_BinaryenModuleOptimize:h9,_BinaryenModuleRunPasses:Bm,_BinaryenSizeofAllocateAndWriteResult:Lm,_BinaryenModuleAllocateAndWrite:Nm,_BinaryenModuleAllocateAndWriteText:Mm,_BinaryenModuleAllocateAndWriteStackIR:Gm,_BinaryenModuleRead:zm,_BinaryenModuleReadWithFeatures:d9,_BinaryenModuleInterpret:Dm,_BinaryenModuleAddDebugInfoFileName:Um,_BinaryenModuleGetDebugInfoFileName:Vm,_BinaryenModuleGetFeatures:Om,_BinaryenModuleSetFeatures:qm,_BinaryenAddCustomSection:Wm,_BinaryenExpressionGetSideEffects:Km,_RelooperCreate:jm,_RelooperAddBlock:Hm,_RelooperAddBranch:Qm,_RelooperAddBlockWithSwitch:Xm,_RelooperAddBranchForSwitch:Jm,_RelooperRenderAndDispose:Zm,_ExpressionRunnerCreate:Ym,_ExpressionRunnerSetLocalValue:m9,_ExpressionRunnerSetGlobalValue:y9,_ExpressionRunnerRunAndDispose:$m,_TypeBuilderCreate:ey,_TypeBuilderGrow:op,_TypeBuilderGetSize:na,_TypeBuilderSetSignatureType:ty,_TypeBuilderSetStructType:ry,_TypeBuilderSetArrayType:g9,_TypeBuilderGetTempHeapType:up,_TypeBuilderGetTempTupleType:pp,_TypeBuilderGetTempRefType:si,_TypeBuilderSetSubType:iy,_TypeBuilderSetOpen:b9,_TypeBuilderCreateRecGroup:x9,_TypeBuilderBuildAndDispose:ny,_BinaryenModuleSetTypeName:sy,_BinaryenModuleSetFieldName:ay,_BinaryenGetOptimizeLevel:ly,_BinaryenSetOptimizeLevel:oy,_BinaryenGetShrinkLevel:uy,_BinaryenSetShrinkLevel:py,_BinaryenGetDebugInfo:cy,_BinaryenSetDebugInfo:fy,_BinaryenGetTrapsNeverHappen:_y,_BinaryenSetTrapsNeverHappen:hy,_BinaryenGetClosedWorld:dy,_BinaryenSetClosedWorld:my,_BinaryenGetLowMemoryUnused:yy,_BinaryenSetLowMemoryUnused:gy,_BinaryenGetZeroFilledMemory:by,_BinaryenSetZeroFilledMemory:xy,_BinaryenGetFastMath:Ty,_BinaryenSetFastMath:Ay,_BinaryenGetGenerateStackIR:Ey,_BinaryenSetGenerateStackIR:vy,_BinaryenGetOptimizeStackIR:Sy,_BinaryenSetOptimizeStackIR:Iy,_BinaryenGetPassArgument:Ry,_BinaryenSetPassArgument:Fy,_BinaryenClearPassArguments:ky,_BinaryenHasPassToSkip:T9,_BinaryenAddPassToSkip:A9,_BinaryenClearPassesToSkip:E9,_BinaryenGetAlwaysInlineMaxSize:wy,_BinaryenSetAlwaysInlineMaxSize:Cy,_BinaryenGetFlexibleInlineMaxSize:Py,_BinaryenSetFlexibleInlineMaxSize:By,_BinaryenGetOneCallerInlineMaxSize:Ly,_BinaryenSetOneCallerInlineMaxSize:Ny,_BinaryenGetAllowInliningFunctionsWithLoops:My,_BinaryenSetAllowInliningFunctionsWithLoops:Gy,_malloc:ut,_free:ie,__i32_store8:Le,__i32_store16:v9,__i32_store:sa,__f32_store:S9,__f64_store:I9,__i32_load8_s:R9,__i32_load8_u:br,__i32_load16_s:F9,__i32_load16_u:k9,__i32_load:Jt,__f32_load:w9,__f64_load:C9}=Yi;function jx(t){return BigInt(t.high|0)<<32n|BigInt(t.low>>>0)}function Hx(t){return Kx.fromBits(Number(t&0xFFFFFFFFn)|0,Number(t>>32n)|0)}function zy(t,i){return Yi._BinaryenLiteralInt64(t,jx(i))}function cp(t){return Hx(Yi._BinaryenConstGetValueI64(t))}var Dy="data:application/wasm;base64,AGFzbQEAAAABBwFgAnx8AXwDAgEABQMBAAEGDQF8AUQAAAAAAAAAAAsHCwEHZjY0X3BvdwAADAKCAQr2DAHzDAMFfgN/CXwCfCABmUQAAAAAAAAAQGUEQCAAIACiIAFEAAAAAAAAAEBhDQEaIACfmUQAAAAAAADwfyAARAAAAAAAAPD/YhsgAUQAAAAAAADgP2ENARpEAAAAAAAA8D8gAKMgAUQAAAAAAADwv2ENARogACABRAAAAAAAAPA/YQ0BGkQAAAAAAADwPyABRAAAAAAAAAAAYQ0BGgsCfCABvSIFQjSIIQQgAL0iAkI0iCIDQgF9Qv4PWgR/QQEFIARC/w+DQr4HfUKAAVoLBEAgBUIBhiIGQgF9Qv////////9vWgRARAAAAAAAAPA/IAZQDQIaRAAAAAAAAPh/IAJCgICAgICAgPg/UQ0CGiAAIAGgIAZCgICAgICAgHBWIAJCAYYiAkKAgICAgICAcFZyDQIaRAAAAAAAAPh/IAJCgICAgICAgPD/AFENAhpEAAAAAAAAAAAgBUI/iFAgAkKAgICAgICA8P8AVEYNAhogASABogwCCyACQgGGQgF9Qv////////9vWgRARAAAAAAAAPA/IAAgAKIiAJogACACQj+IpwR/An9BACAFQjSIQv8PgyICQv8HVA0AGkECIAJCswhWDQAaQQAgBUIBQrMIIAJ9hiICQgF9g0IAUg0AGkEBIAIgBYNCAFINABpBAgtBAUYFQQALGyIAoyAAIAVCAFMbDAILIAJCAFMEQAJ/QQAgBUI0iEL/D4MiBkL/B1QNABpBAiAGQrMIVg0AGkEAIAVCAUKzCCAGfYYiBkIBfYNCAFINABpBASAFIAaDQgBSDQAaQQILIgdFBEAgACAAoSIAIACjDAMLIANC/w+DIQNBgIAQQQAgB0EBRhshCCACQv///////////wCDIQILIARC/w+DIgZCvgd9QoABWgRARAAAAAAAAPA/IAJCgICAgICAgPg/UQ0CGkQAAAAAAADwPyAGQr4HVA0CGkQAAAAAAADwf0QAAAAAAAAAACAEQoAQVCACQoCAgICAgID4P1ZGGwwCCyADUARAIABEAAAAAAAAMEOivUL///////////8Ag0KAgICAgICAoAN9IQILCyACIAJCgICAgNCqpfM/fSICQoCAgICAgIB4g30iA0KAgICACHxCgICAgHCDvyIKIAJCLYhC/wCDp0EFdEGACGoiBysDACILokQAAAAAAADwv6AhDSACQjSHuSIARAA4+v5CLuY/oiAHKwMQoCIOIA0gA78gCqEgC6IiD6AiCqAhCyAKIApEAAAAAAAA4L+iIhCiIQwgCyANIA1EAAAAAAAA4L+iIhGiIhKgIg0gDSAARDBnx5NX8y49oiAHKwMYoCAOIAuhIAqgoCAPIBAgEaCioCALIA2hIBKgoCAKIAyiIApEBgAAAAAA4D+iRGBVVVVVVeW/oCAMIApEeqQpVVVV5b+iRE5VWZmZmek/oCAMIApEwz8miysA8D+iROlFSJtbSfK/oKKgoqCioCIAoCIKoSAAoCQAAnwgBUKAgIBAg78iACAKvUKAgIBAg78iC6IiDL0iAkI0iKdB/w9xIgdByQdrIglBP08EQEQAAAAAAADwv0QAAAAAAADwPyAIGyAJQYCAgIB4Tw0BGkQAAAAAAAAAgEQAAAAAAAAAACAIG0QAAAAAAADw/0QAAAAAAADwfyAIGyACQgBTGyAHQYkITw0BGkEAIQcLIAxE/oIrZUcVZ0CiRAAAAAAAADhDoCINvSICQv8Ag0IBhqdBA3RBgChqIgkpAwggAiAIrXxCLYZ8IQMgDCANRAAAAAAAADjDoCIMRAAA+v5CLna/oqAgDEQ6O568mvcMvaKgIAEgAKEgC6IgASAKIAuhIwCgoqCgIgAgAKIhASAJKwMAIACgIAEgAEQ8VFVVVVXFP6JEvf3/////3z+goqAgASABoiAARBfQpGcREYE/okSRKxfPVVWlP6CioCEAIAdFBEACfCACQoCAgIAIg1AEQCADQoCAgICAgICIP32/IgEgASAAoqBEAAAAAAAAAH+iDAELIANCgICAgICAgPA/fCICvyIBIACiIQAgASAAoCIKmUQAAAAAAADwP2MEfCACQoCAgICAgICAgH+Dv0QAAAAAAADwPyAKpiILIAqgIgwgCyAMoSAKoCABIAqhIACgoKAgC6EiACAARAAAAAAAAAAAYRsFIAoLRAAAAAAAABAAogsMAQsgA78iASABIACioAsLCwsLxSyCAQBBhQgLA6D2PwBBkQgLF8i58oIs1r+AVjcoJLT6PAAAAAAAgPY/AEGxCAsXCFi/vdHVvyD34NgIpRy9AAAAAABg9j8AQdEICxdYRRd3dtW/bVC21aRiI70AAAAAAED2PwBB8QgLF/gth60a1b/VZ7Ce5ITmvAAAAAAAIPY/AEGRCQsXeHeVX77Uv+A+KZNpGwS9AAAAAAAA9j8AQbEJCxdgHMKLYdS/zIRMSC/YEz0AAAAAAOD1PwBB0QkLF6iGhjAE1L86C4Lt80LcPAAAAAAAwPU/AEHxCQsXSGlVTKbTv2CUUYbGsSA9AAAAAACg9T8AQZEKCxeAmJrdR9O/koDF1E1ZJT0AAAAAAID1PwBBsQoLFyDhuuLo0r/YK7eZHnsmPQAAAAAAYPU/AEHRCgsXiN4TWonSvz+wz7YUyhU9AAAAAABg9T8AQfEKCxeI3hNaidK/P7DPthTKFT0AAAAAAED1PwBBkQsLF3jP+0Ep0r922lMoJFoWvQAAAAAAIPU/AEGxCwsXmGnBmMjRvwRU52i8rx+9AAAAAAAA9T8AQdELCxeoq6tcZ9G/8KiCM8YfHz0AAAAAAOD0PwBB8QsLF0iu+YsF0b9mWgX9xKgmvQAAAAAAwPQ/AEGRDAsXkHPiJKPQvw4D9H7uawy9AAAAAACg9D8AQbEMCxfQtJQlQNC/fy30nrg28LwAAAAAAKD0PwBB0QwLF9C0lCVA0L9/LfSeuDbwvAAAAAAAgPQ/AEHxDAsXQF5tGLnPv4c8masqVw09AAAAAABg9D8AQZENCxdg3Mut8M6/JK+GnLcmKz0AAAAAAED0PwBBsQ0LF/Aqbgcnzr8Q/z9UTy8XvQAAAAAAIPQ/AEHRDQsXwE9rIVzNvxtoyruRuiE9AAAAAAAA9D8AQfENCxegmsf3j8y/NISfaE95Jz0AAAAAAAD0PwBBkQ4LF6Cax/ePzL80hJ9oT3knPQAAAAAA4PM/AEGxDgsXkC10hsLLv4+3izGwThk9AAAAAADA8z8AQdEOCxfAgE7J88q/ZpDNP2NOujwAAAAAAKDzPwBB8Q4LF7DiH7wjyr/qwUbcZIwlvQAAAAAAoPM/AEGRDwsXsOIfvCPKv+rBRtxkjCW9AAAAAACA8z8AQbEPCxdQ9JxaUsm/49TBBNnRKr0AAAAAAGDzPwBB0Q8LF9AgZaB/yL8J+tt/v70rPQAAAAAAQPM/AEHxDwsX4BACiavHv1hKU3KQ2ys9AAAAAABA8z8AQZEQCxfgEAKJq8e/WEpTcpDbKz0AAAAAACDzPwBBsRALF9AZ5w/Wxr9m4rKjauQQvQAAAAAAAPM/AEHREAsXkKdwMP/FvzlQEJ9Dnh69AAAAAAAA8z8AQfEQCxeQp3Aw/8W/OVAQn0OeHr0AAAAAAODyPwBBkRELF7Ch4+Umxb+PWweQi94gvQAAAAAAwPI/AEGxEQsXgMtsK03Evzx4NWHBDBc9AAAAAADA8j8AQdERCxeAy2wrTcS/PHg1YcEMFz0AAAAAAKDyPwBB8RELF5AeIPxxw786VCdNhnjxPAAAAAAAgPI/AEGREgsX8B/4UpXCvwjEcRcwjSS9AAAAAABg8j8AQbESCxdgL9Uqt8G/lqMRGKSALr0AAAAAAGDyPwBB0RILF2Av1Sq3wb+WoxEYpIAuvQAAAAAAQPI/AEHxEgsXkNB8ftfAv/Rb6IiWaQo9AAAAAABA8j8AQZETCxeQ0Hx+18C/9FvoiJZpCj0AAAAAACDyPwBBsRMLF+DbMZHsv7/yM6NcVHUlvQAAAAAAAPI/AEHSEwsWK24HJ76/PADwKiw0Kj0AAAAAAADyPwBB8hMLFituBye+vzwA8CosNCo9AAAAAADg8T8AQZEUCxfAW49UXry/Br5fWFcMHb0AAAAAAMDxPwBBsRQLF+BKOm2Sur/IqlvoNTklPQAAAAAAwPE/AEHRFAsX4Eo6bZK6v8iqW+g1OSU9AAAAAACg8T8AQfEUCxegMdZFw7i/aFYvTSl8Ez0AAAAAAKDxPwBBkRULF6Ax1kXDuL9oVi9NKXwTPQAAAAAAgPE/AEGxFQsXYOWK0vC2v9pzM8k3lya9AAAAAABg8T8AQdEVCxcgBj8HG7W/V17GYVsCHz0AAAAAAGDxPwBB8RULFyAGPwcbtb9XXsZhWwIfPQAAAAAAQPE/AEGRFgsX4BuW10Gzv98T+czaXiw9AAAAAABA8T8AQbEWCxfgG5bXQbO/3xP5zNpeLD0AAAAAACDxPwBB0RYLF4Cj7jZlsb8Jo492XnwUPQAAAAAAAPE/AEHxFgsXgBHAMAqvv5GONoOeWS09AAAAAAAA8T8AQZEXCxeAEcAwCq+/kY42g55ZLT0AAAAAAODwPwBBsRcLF4AZcd1Cq79McNbleoIcPQAAAAAA4PA/AEHRFwsXgBlx3UKrv0xw1uV6ghw9AAAAAADA8D8AQfEXCxfAMvZYdKe/7qHyNEb8LL0AAAAAAMDwPwBBkRgLF8Ay9lh0p7/uofI0RvwsvQAAAAAAoPA/AEGxGAsXwP65h56jv6r+JvW3AvU8AAAAAACg8D8AQdEYCxfA/rmHnqO/qv4m9bcC9TwAAAAAAIDwPwBB8hgLFngOm4Kfv+QJfnwmgCm9AAAAAACA8D8AQZIZCxZ4DpuCn7/kCX58JoApvQAAAAAAYPA/AEGxGQsXgNUHG7mXvzmm+pNUjSi9AAAAAABA8D8AQdIZCxb8sKjAj7+cptP2fB7fvAAAAAAAQPA/AEHyGQsW/LCowI+/nKbT9nwe37wAAAAAACDwPwBBkhoLFhBrKuB/v+RA2g0/4hm9AAAAAAAg8D8AQbIaCxYQayrgf7/kQNoNP+IZvQAAAAAAAPA/AEHmGgsC8D8AQYUbCwPA7z8AQZIbCxaJdRUQgD/oK52Za8cQvQAAAAAAgO8/AEGxGwsXgJNYViCQP9L34gZb3CO9AAAAAABA7z8AQdIbCxbJKCVJmD80DFoyuqAqvQAAAAAAAO8/AEHxGwsXQOeJXUGgP1PX8VzAEQE9AAAAAADA7j8AQZIcCxYu1K5mpD8o/b11cxYsvQAAAAAAgO4/AEGxHAsXwJ8UqpSoP30mWtCVeRm9AAAAAABA7j8AQdEcCxfA3c1zy6w/ByjYR/JoGr0AAAAAACDuPwBB8RwLF8AGwDHqrj97O8lPPhEOvQAAAAAA4O0/AEGRHQsXYEbRO5exP5ueDVZdMiW9AAAAAACg7T8AQbEdCxfg0af1vbM/107bpV7ILD0AAAAAAGDtPwBB0R0LF6CXTVrptT8eHV08BmksvQAAAAAAQO0/AEHxHQsXwOoK0wC3PzLtnamNHuw8AAAAAAAA7T8AQZEeCxdAWV1eM7k/2ke9OlwRIz0AAAAAAMDsPwBBsR4LF2Ctjchquz/laPcrgJATvQAAAAAAoOw/AEHRHgsXQLwBWIi8P9OsWsbRRiY9AAAAAABg7D8AQfEeCxcgCoM5x74/4EXmr2jALb0AAAAAAEDsPwBBkR8LF+DbOZHovz/9CqFP1jQlvQAAAAAAAOw/AEGxHwsX4CeCjhfBP/IHLc547yE9AAAAAADg6z8AQdEfCxfwI34rqsE/NJk4RI6nLD0AAAAAAKDrPwBB8R8LF4CGDGHRwj+htIHLbJ0DPQAAAAAAgOs/AEGRIAsXkBWw/GXDP4lySyOoL8Y8AAAAAABA6z8AQbEgCxewM4M9kcQ/eLb9VHmDJT0AAAAAACDrPwBB0SALF7Ch5OUnxT/HfWnl6DMmPQAAAAAA4Oo/AEHxIAsXEIy+TlfGP3guPCyLzxk9AAAAAADA6j8AQZEhCxdwdYsS8MY/4SGc5Y0RJb0AAAAAAKDqPwBBsSELF1BEhY2Jxz8FQ5FwEGYcvQAAAAAAYOo/AEHSIQsWOeuvvsg/0SzpqlQ9B70AAAAAAEDqPwBB8iELFvfcWlrJP2//oFgo8gc9AAAAAAAA6j8AQZEiCxfgijztk8o/aSFWUENyKL0AAAAAAODpPwBBsSILF9BbV9gxyz+q4axOjTUMvQAAAAAAwOk/AEHRIgsX4Ds4h9DLP7YSVFnESy29AAAAAACg6T8AQfEiCxcQ8Mb7b8w/0iuWxXLs8bwAAAAAAGDpPwBBkSMLF5DUsD2xzT81sBX3Kv8qvQAAAAAAQOk/AEGxIwsXEOf/DlPOPzD0QWAnEsI8AAAAAAAg6T8AQdIjCxbd5K31zj8RjrtlFSHKvAAAAAAAAOk/AEHxIwsXsLNsHJnPPzDfDMrsyxs9AAAAAADA6D8AQZEkCxdYTWA4cdA/kU7tFtuc+DwAAAAAAKDoPwBBsSQLF2BhZy3E0D/p6jwWixgnPQAAAAAAgOg/AEHRJAsX6CeCjhfRPxzwpWMOISy9AAAAAABg6D8AQfEkCxf4rMtca9E/gRal982aKz0AAAAAAEDoPwBBkSULF2haY5m/0T+3vUdR7aYsPQAAAAAAIOg/AEGxJQsXuA5tRRTSP+q6Rrrehwo9AAAAAADg5z8AQdElCxeQ3HzwvtI/9ARQSvqcKj0AAAAAAMDnPwBB8SULF2DT4fEU0z+4PCHTeuIovQAAAAAAoOc/AEGRJgsXEL52Z2vTP8h38bDNbhE9AAAAAACA5z8AQbEmCxcwM3dSwtM/XL0GtlQ7GD0AAAAAAGDnPwBB0SYLF+jVI7QZ1D+d4JDsNuQIPQAAAAAAQOc/AEHxJgsXyHHCjXHUP3XWZwnOJy+9AAAAAAAg5z8AQZEnCxcwF57gydQ/pNgKG4kgLr0AAAAAAADnPwBBsScLF6A4B64i1T9Zx2SBcL4uPQAAAAAA4OY/AEHRJwsX0MhT93vVP+9AXe7trR89AAAAAADA5j8AQfEnCw9gWd+91dU/3GWkCCoLCr0AQY4oC/IP8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/";var{f64_pow:Uy}=(await WebAssembly.instantiateStreaming(fetch(Dy))).instance.exports;var aa=new Float64Array(1),Vy=new Float32Array(aa.buffer),ai=new Int32Array(aa.buffer);globalThis.f32_as_i32=function(i){return Vy[0]=i,ai[0]};globalThis.i32_as_f32=function(i){return ai[0]=i,Vy[0]};globalThis.f64_as_i64=function(i){return aa[0]=i,i64_new(ai[0],ai[1])};globalThis.i64_as_f64=function(i){return ai[0]=i64_low(i),ai[1]=i64_high(i),aa[0]};globalThis.f64_pow=Uy;import xe from"long";globalThis.i64_zero=xe.ZERO;globalThis.i64_one=xe.ONE;globalThis.i64_neg_one=xe.fromInt(-1);globalThis.i64_minimum=xe.MIN_VALUE;globalThis.i64_maximum=xe.MAX_VALUE;globalThis.i64_is=function(i){return xe.isLong(i)};globalThis.i64_new=function(i,e){return xe.fromBits(i,e)};globalThis.i64_low=function(i){return i.low};globalThis.i64_high=function(i){return i.high};globalThis.i64_not=function(i){return i.not()};globalThis.i64_neg=function(i){return i.neg()};globalThis.i64_clz=function(i){return i.clz()};globalThis.i64_ctz=function(i){return i.ctz()};globalThis.i64_add=function(i,e){return i.add(e)};globalThis.i64_sub=function(i,e){return i.sub(e)};globalThis.i64_mul=function(i,e){return i.mul(e)};globalThis.i64_pow=function(i,e){let r=e.low,n=e.high;if(n<=0){if(n<0)return i.eq(globalThis.i64_neg_one)?r&1?i:xe.ONE:i.eq(xe.ONE)?i:xe.ZERO;if(r==0)return xe.ONE;if(r==1)return i;if(r==2)return i.mul(i)}let s=xe.ONE;for(;r|n;)r&1&&(s=s.mul(i)),e=e.shru(1),i=i.mul(i),r=e.low,n=e.high;return s};globalThis.i64_div=function(i,e){return i.div(e)};globalThis.i64_div_u=function(i,e){return i.toUnsigned().div(e.toUnsigned()).toSigned()};globalThis.i64_rem=function(i,e){return i.mod(e)};globalThis.i64_rem_u=function(i,e){return i.toUnsigned().mod(e.toUnsigned()).toSigned()};globalThis.i64_and=function(i,e){return i.and(e)};globalThis.i64_or=function(i,e){return i.or(e)};globalThis.i64_xor=function(i,e){return i.xor(e)};globalThis.i64_shl=function(i,e){return i.shl(e)};globalThis.i64_shr=function(i,e){return i.shr(e)};globalThis.i64_shr_u=function(i,e){return i.shru(e)};globalThis.i64_eq=function(i,e){return i.eq(e)};globalThis.i64_ne=function(i,e){return i.ne(e)};globalThis.i64_ge=function(i,e){return i.ge(e)};globalThis.i64_ge_u=function(i,e){return i.toUnsigned().ge(e.toUnsigned())};globalThis.i64_gt=function(i,e){return i.gt(e)};globalThis.i64_gt_u=function(i,e){return i.toUnsigned().gt(e.toUnsigned())};globalThis.i64_le=function(i,e){return i.le(e)};globalThis.i64_le_u=function(i,e){return i.toUnsigned().le(e.toUnsigned())};globalThis.i64_lt=function(i,e){return i.lt(e)};globalThis.i64_lt_u=function(i,e){return i.toUnsigned().lt(e.toUnsigned())};globalThis.i64_align=function(i,e){assert(e&&(e&e-1)==0);let r=xe.fromInt(e-1);return i.add(r).and(r.not())};globalThis.i64_signbit=function(i){return!!(i.high>>>31)};globalThis.i64_is_i8=function(i){return i.high===0&&i.low>=0&&i.low<=i8.MAX_VALUE||i.high===-1&&i.low>=i8.MIN_VALUE&&i.low<0};globalThis.i64_is_i16=function(i){return i.high===0&&i.low>=0&&i.low<=i16.MAX_VALUE||i.high===-1&&i.low>=i16.MIN_VALUE&&i.low<0};globalThis.i64_is_i32=function(i){return i.high===0&&i.low>=0||i.high===-1&&i.low<0};globalThis.i64_is_u8=function(i){return i.high===0&&i.low>>>0<=u8.MAX_VALUE};globalThis.i64_is_u16=function(i){return i.high===0&&i.low>>>0<=u16.MAX_VALUE};globalThis.i64_is_u32=function(i){return i.high===0};globalThis.i64_is_bool=function(i){return(i.high|i.low&-2)===0};var Qx=xe.fromNumber(f32.MIN_SAFE_INTEGER),Xx=xe.fromNumber(f32.MAX_SAFE_INTEGER);globalThis.i64_is_f32=function(i){return i.gte(Qx)&&i.lte(Xx)};var Jx=xe.fromNumber(f64.MIN_SAFE_INTEGER),Zx=xe.fromNumber(f64.MAX_SAFE_INTEGER);globalThis.i64_is_f64=function(i){return i.gte(Jx)&&i.lte(Zx)};globalThis.i64_to_f32=function(i){return globalThis.Math.fround(i.toNumber())};globalThis.i64_to_f64=function(i){return i.toNumber()};globalThis.i64_to_string=function(i,e){return e?i.toUnsigned().toString():i.toString()};globalThis.i64_clone=function(i){return xe.fromBits(i.low,i.high,i.unsigned)};globalThis.Map_keys=function(i){return Array.from(i.keys())};globalThis.Map_values=function(i){return Array.from(i.values())};globalThis.Set_values=function(i){return Array.from(i.values())};var wt=(E=>(E[E.None=0]="None",E[E.SignExtension=1]="SignExtension",E[E.MutableGlobals=2]="MutableGlobals",E[E.NontrappingF2I=4]="NontrappingF2I",E[E.BulkMemory=8]="BulkMemory",E[E.Simd=16]="Simd",E[E.Threads=32]="Threads",E[E.ExceptionHandling=64]="ExceptionHandling",E[E.TailCalls=128]="TailCalls",E[E.ReferenceTypes=256]="ReferenceTypes",E[E.MultiValue=512]="MultiValue",E[E.GC=1024]="GC",E[E.Memory64=2048]="Memory64",E[E.RelaxedSimd=4096]="RelaxedSimd",E[E.ExtendedConst=8192]="ExtendedConst",E[E.Strings=16384]="Strings",E[E.SharedEverything=32768]="SharedEverything",E[E.Closures=65536]="Closures",E[E.All=131071]="All",E))(wt||{});function li(t){switch(t){case 1:return"sign-extension";case 2:return"mutable-globals";case 4:return"nontrapping-f2i";case 8:return"bulk-memory";case 16:return"simd";case 32:return"threads";case 64:return"exception-handling";case 128:return"tail-calls";case 256:return"reference-types";case 512:return"multi-value";case 1024:return"gc";case 2048:return"memory64";case 4096:return"relaxed-simd";case 8192:return"extended-const";case 16384:return"stringref";case 32768:return"shared-everything";case 65536:return"closures"}return assert(!1),""}var oi=(r=>(r[r.Js=0]="Js",r[r.Wasm32=1]="Wasm32",r[r.Wasm64=2]="Wasm64",r))(oi||{});var la=(n=>(n[n.Stub=0]="Stub",n[n.Minimal=1]="Minimal",n[n.Incremental=2]="Incremental",n[n.Memory=3]="Memory",n))(la||{});var ui=class{constructor(){this.flags=0}};ui=uf([unmanaged],ui);var oa=(D=>(D[D.NONE=0]="NONE",D[D.ARRAYBUFFERVIEW=1]="ARRAYBUFFERVIEW",D[D.ARRAY=2]="ARRAY",D[D.STATICARRAY=4]="STATICARRAY",D[D.SET=8]="SET",D[D.MAP=16]="MAP",D[D.POINTERFREE=32]="POINTERFREE",D[D.VALUE_ALIGN_0=64]="VALUE_ALIGN_0",D[D.VALUE_ALIGN_1=128]="VALUE_ALIGN_1",D[D.VALUE_ALIGN_2=256]="VALUE_ALIGN_2",D[D.VALUE_ALIGN_3=512]="VALUE_ALIGN_3",D[D.VALUE_ALIGN_4=1024]="VALUE_ALIGN_4",D[D.VALUE_SIGNED=2048]="VALUE_SIGNED",D[D.VALUE_FLOAT=4096]="VALUE_FLOAT",D[D.VALUE_NULLABLE=8192]="VALUE_NULLABLE",D[D.VALUE_MANAGED=16384]="VALUE_MANAGED",D[D.KEY_ALIGN_0=32768]="KEY_ALIGN_0",D[D.KEY_ALIGN_1=65536]="KEY_ALIGN_1",D[D.KEY_ALIGN_2=131072]="KEY_ALIGN_2",D[D.KEY_ALIGN_3=262144]="KEY_ALIGN_3",D[D.KEY_ALIGN_4=524288]="KEY_ALIGN_4",D[D.KEY_SIGNED=1048576]="KEY_SIGNED",D[D.KEY_FLOAT=2097152]="KEY_FLOAT",D[D.KEY_NULLABLE=4194304]="KEY_NULLABLE",D[D.KEY_MANAGED=8388608]="KEY_MANAGED",D))(oa||{});var Ne=(H=>(H[H.None=0]="None",H[H.Import=1]="Import",H[H.Export=2]="Export",H[H.Declare=4]="Declare",H[H.Const=8]="Const",H[H.Let=16]="Let",H[H.Static=32]="Static",H[H.Readonly=64]="Readonly",H[H.Abstract=128]="Abstract",H[H.Public=256]="Public",H[H.Private=512]="Private",H[H.Protected=1024]="Protected",H[H.Get=2048]="Get",H[H.Set=4096]="Set",H[H.Override=8192]="Override",H[H.DefinitelyAssigned=16384]="DefinitelyAssigned",H[H.Ambient=32768]="Ambient",H[H.Generic=65536]="Generic",H[H.GenericContext=131072]="GenericContext",H[H.Instance=262144]="Instance",H[H.Constructor=524288]="Constructor",H[H.ModuleExport=1048576]="ModuleExport",H[H.ModuleImport=2097152]="ModuleImport",H[H.Resolved=4194304]="Resolved",H[H.Compiled=8388608]="Compiled",H[H.Errored=16777216]="Errored",H[H.Inlined=33554432]="Inlined",H[H.Scoped=67108864]="Scoped",H[H.Stub=134217728]="Stub",H[H.Overridden=268435456]="Overridden",H[H.Closure=536870912]="Closure",H[H.Quoted=1073741824]="Quoted",H[H.InternallyNullable=-2147483648]="InternallyNullable",H))(Ne||{}),rt="/",Yx="..",ua="get:",pa="set:",_p="#",Sn=".",hp="~",Oy="~lib",pt=Oy+rt,Ge=rt+"index",dp="@",C;(U=>(U.Empty="",U.i8="i8",U.i16="i16",U.i32="i32",U.i64="i64",U.isize="isize",U.u8="u8",U.u16="u16",U.u32="u32",U.u64="u64",U.usize="usize",U.bool="bool",U.f32="f32",U.f64="f64",U.v128="v128",U.ref_func="ref_func",U.ref_extern="ref_extern",U.ref_any="ref_any",U.ref_eq="ref_eq",U.ref_struct="ref_struct",U.ref_array="ref_array",U.ref_i31="ref_i31",U.ref_string="ref_string",U.ref_stringview_wtf8="ref_stringview_wtf8",U.ref_stringview_wtf16="ref_stringview_wtf16",U.ref_stringview_iter="ref_stringview_iter",U.i8x16="i8x16",U.u8x16="u8x16",U.i16x8="i16x8",U.u16x8="u16x8",U.i32x4="i32x4",U.u32x4="u32x4",U.i64x2="i64x2",U.u64x2="u64x2",U.f32x4="f32x4",U.f64x2="f64x2",U.void_="void",U.number="number",U.boolean="boolean",U.string="string",U.native="native",U.indexof="indexof",U.valueof="valueof",U.returnof="returnof",U.nonnull="nonnull",U.null_="null",U.true_="true",U.false_="false",U.this_="this",U.super_="super",U.constructor="constructor",U.ASC_TARGET="ASC_TARGET",U.ASC_RUNTIME="ASC_RUNTIME",U.ASC_NO_ASSERT="ASC_NO_ASSERT",U.ASC_MEMORY_BASE="ASC_MEMORY_BASE",U.ASC_TABLE_BASE="ASC_TABLE_BASE",U.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",U.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",U.ASC_LOW_MEMORY_LIMIT="ASC_LOW_MEMORY_LIMIT",U.ASC_EXPORT_RUNTIME="ASC_EXPORT_RUNTIME",U.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",U.ASC_FEATURE_MUTABLE_GLOBALS="ASC_FEATURE_MUTABLE_GLOBALS",U.ASC_FEATURE_NONTRAPPING_F2I="ASC_FEATURE_NONTRAPPING_F2I",U.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",U.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",U.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",U.ASC_FEATURE_EXCEPTION_HANDLING="ASC_FEATURE_EXCEPTION_HANDLING",U.ASC_FEATURE_TAIL_CALLS="ASC_FEATURE_TAIL_CALLS",U.ASC_FEATURE_REFERENCE_TYPES="ASC_FEATURE_REFERENCE_TYPES",U.ASC_FEATURE_MULTI_VALUE="ASC_FEATURE_MULTI_VALUE",U.ASC_FEATURE_GC="ASC_FEATURE_GC",U.ASC_FEATURE_MEMORY64="ASC_FEATURE_MEMORY64",U.ASC_FEATURE_RELAXED_SIMD="ASC_FEATURE_RELAXED_SIMD",U.ASC_FEATURE_EXTENDED_CONST="ASC_FEATURE_EXTENDED_CONST",U.ASC_FEATURE_STRINGREF="ASC_FEATURE_STRINGREF",U.ASC_FEATURE_SHARED_EVERYTHING="ASC_FEATURE_SHARED_EVERYTHING",U.ASC_FEATURE_CLOSURES="ASC_FEATURE_CLOSURES",U.ASC_VERSION_MAJOR="ASC_VERSION_MAJOR",U.ASC_VERSION_MINOR="ASC_VERSION_MINOR",U.ASC_VERSION_PATCH="ASC_VERSION_PATCH",U.EnumToString="__enum_to_string",U.I8="I8",U.I16="I16",U.I32="I32",U.I64="I64",U.Isize="Isize",U.U8="U8",U.U16="U16",U.U32="U32",U.U64="U64",U.Usize="Usize",U.Bool="Bool",U.F32="F32",U.F64="F64",U.V128="V128",U.RefFunc="RefFunc",U.RefExtern="RefExtern",U.RefAny="RefAny",U.RefEq="RefEq",U.RefStruct="RefStruct",U.RefArray="RefArray",U.RefI31="RefI31",U.RefString="RefString",U.String="String",U.RegExp="RegExp",U.Object="Object",U.Array="Array",U.StaticArray="StaticArray",U.Set="Set",U.Map="Map",U.Function="Function",U.ArrayBufferView="ArrayBufferView",U.ArrayBuffer="ArrayBuffer",U.Math="Math",U.Mathf="Mathf",U.NativeMath="NativeMath",U.NativeMathf="NativeMathf",U.Int8Array="Int8Array",U.Int16Array="Int16Array",U.Int32Array="Int32Array",U.Int64Array="Int64Array",U.Uint8Array="Uint8Array",U.Uint8ClampedArray="Uint8ClampedArray",U.Uint16Array="Uint16Array",U.Uint32Array="Uint32Array",U.Uint64Array="Uint64Array",U.Float32Array="Float32Array",U.Float64Array="Float64Array",U.TemplateStringsArray="TemplateStringsArray",U.Error="Error",U.abort="abort",U.trace="trace",U.seed="seed",U.pow="pow",U.ipow32="ipow32",U.ipow64="ipow64",U.mod="mod",U.alloc="__alloc",U.realloc="__realloc",U.free="__free",U.new_="__new",U.renew="__renew",U.link="__link",U.collect="__collect",U.visit="__visit",U.newBuffer="__newBuffer",U.newArray="__newArray",U.BLOCK="~lib/rt/common/BLOCK",U.OBJECT="~lib/rt/common/OBJECT",U.DefaultMemory="0",U.DefaultTable="0"))(C||={});var ct=(S=>(S[S.Not_implemented_0=100]="Not_implemented_0",S[S.Operation_is_unsafe=101]="Operation_is_unsafe",S[S.User_defined_0=102]="User_defined_0",S[S.Feature_0_is_not_enabled=103]="Feature_0_is_not_enabled",S[S.Low_memory_limit_exceeded_by_static_data_0_1=104]="Low_memory_limit_exceeded_by_static_data_0_1",S[S.Module_requires_at_least_0_pages_of_initial_memory=105]="Module_requires_at_least_0_pages_of_initial_memory",S[S.Module_requires_at_least_0_pages_of_maximum_memory=106]="Module_requires_at_least_0_pages_of_maximum_memory",S[S.Shared_memory_requires_maximum_memory_to_be_defined=107]="Shared_memory_requires_maximum_memory_to_be_defined",S[S.Shared_memory_requires_feature_threads_to_be_enabled=108]="Shared_memory_requires_feature_threads_to_be_enabled",S[S.Transform_0_1=109]="Transform_0_1",S[S.Start_function_name_0_is_invalid_or_conflicts_with_another_export=110]="Start_function_name_0_is_invalid_or_conflicts_with_another_export",S[S.Element_0_not_found=111]="Element_0_not_found",S[S.Exchange_of_0_values_is_not_supported_by_all_embeddings=112]="Exchange_of_0_values_is_not_supported_by_all_embeddings",S[S.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",S[S.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",S[S.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",S[S.Operation_0_cannot_be_applied_to_type_1=203]="Operation_0_cannot_be_applied_to_type_1",S[S.Type_0_cannot_be_nullable=204]="Type_0_cannot_be_nullable",S[S.Mutable_value_cannot_be_inlined=206]="Mutable_value_cannot_be_inlined",S[S.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",S[S.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",S[S.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",S[S.Expression_is_never_null=210]="Expression_is_never_null",S[S.Class_0_is_final_and_cannot_be_extended=211]="Class_0_is_final_and_cannot_be_extended",S[S.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",S[S.Duplicate_decorator=213]="Duplicate_decorator",S[S.Type_0_is_illegal_in_this_context=214]="Type_0_is_illegal_in_this_context",S[S.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",S[S.Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal=216]="Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal",S[S.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",S[S.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",S[S.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",S[S.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",S[S.Type_0_is_not_a_function_index_or_function_reference=221]="Type_0_is_not_a_function_index_or_function_reference",S[S._0_must_be_a_value_between_1_and_2_inclusive=222]="_0_must_be_a_value_between_1_and_2_inclusive",S[S._0_must_be_a_power_of_two=223]="_0_must_be_a_power_of_two",S[S._0_is_not_a_valid_operator=224]="_0_is_not_a_valid_operator",S[S.Expression_cannot_be_represented_by_a_type=225]="Expression_cannot_be_represented_by_a_type",S[S.Expression_resolves_to_unusual_type_0=226]="Expression_resolves_to_unusual_type_0",S[S.Array_literal_expected=227]="Array_literal_expected",S[S.Function_0_is_virtual_and_will_not_be_inlined=228]="Function_0_is_virtual_and_will_not_be_inlined",S[S.Property_0_only_has_a_setter_and_is_missing_a_getter=229]="Property_0_only_has_a_setter_and_is_missing_a_getter",S[S._0_keyword_cannot_be_used_here=230]="_0_keyword_cannot_be_used_here",S[S.A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final=231]="A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final",S[S.Property_0_is_always_assigned_before_being_used=233]="Property_0_is_always_assigned_before_being_used",S[S.Expression_does_not_compile_to_a_value_at_runtime=234]="Expression_does_not_compile_to_a_value_at_runtime",S[S.Only_variables_functions_and_enums_become_WebAssembly_module_exports=235]="Only_variables_functions_and_enums_become_WebAssembly_module_exports",S[S.Literal_0_does_not_fit_into_i64_or_u64_types=236]="Literal_0_does_not_fit_into_i64_or_u64_types",S[S.Index_signature_accessors_in_type_0_differ_in_types=237]="Index_signature_accessors_in_type_0_differ_in_types",S[S.Initializer_definitive_assignment_or_nullable_type_expected=238]="Initializer_definitive_assignment_or_nullable_type_expected",S[S.Definitive_assignment_has_no_effect_on_local_variables=239]="Definitive_assignment_has_no_effect_on_local_variables",S[S.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2=240]="Ambiguous_operator_overload_0_conflicting_overloads_1_and_2",S[S.An_interface_or_abstract_method_0_cannot_have_type_parameters=241]="An_interface_or_abstract_method_0_cannot_have_type_parameters",S[S.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa=242]="Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa",S[S.Only_Error_or_its_subclasses_can_be_thrown_but_found_type_0=250]="Only_Error_or_its_subclasses_can_be_thrown_but_found_type_0",S[S.Importing_the_table_disables_some_indirect_call_optimizations=901]="Importing_the_table_disables_some_indirect_call_optimizations",S[S.Exporting_the_table_disables_some_indirect_call_optimizations=902]="Exporting_the_table_disables_some_indirect_call_optimizations",S[S.Expression_compiles_to_a_dynamic_check_at_runtime=903]="Expression_compiles_to_a_dynamic_check_at_runtime",S[S.Indexed_access_may_involve_bounds_checking=904]="Indexed_access_may_involve_bounds_checking",S[S.Explicitly_returning_constructor_drops_this_allocation=905]="Explicitly_returning_constructor_drops_this_allocation",S[S.Unnecessary_definite_assignment=906]="Unnecessary_definite_assignment",S[S._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead=907]="_NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead",S[S.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters=908]="Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters",S[S.Unterminated_string_literal=1002]="Unterminated_string_literal",S[S.Identifier_expected=1003]="Identifier_expected",S[S._0_expected=1005]="_0_expected",S[S.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",S[S.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",S[S.Unexpected_token=1012]="Unexpected_token",S[S.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",S[S.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",S[S.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",S[S._0_modifier_cannot_appear_on_class_elements_of_this_kind=1031]="_0_modifier_cannot_appear_on_class_elements_of_this_kind",S[S.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",S[S.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",S[S._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",S[S.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",S[S.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",S[S.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",S[S.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",S[S.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",S[S.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",S[S.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",S[S.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",S[S.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",S[S.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",S[S.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",S[S.Type_argument_list_cannot_be_empty=1099]="Type_argument_list_cannot_be_empty",S[S.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",S[S.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",S[S.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",S[S.Expression_expected=1109]="Expression_expected",S[S.Type_expected=1110]="Type_expected",S[S.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",S[S.Duplicate_label_0=1114]="Duplicate_label_0",S[S.An_export_assignment_cannot_have_modifiers=1120]="An_export_assignment_cannot_have_modifiers",S[S.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",S[S.Digit_expected=1124]="Digit_expected",S[S.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",S[S.Unexpected_end_of_text=1126]="Unexpected_end_of_text",S[S.Invalid_character=1127]="Invalid_character",S[S._case_or_default_expected=1130]="_case_or_default_expected",S[S._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",S[S.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",S[S.Type_argument_expected=1140]="Type_argument_expected",S[S.String_literal_expected=1141]="String_literal_expected",S[S.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",S[S.Declaration_expected=1146]="Declaration_expected",S[S._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",S[S.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",S[S.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions=1263]="Declarations_with_initializers_cannot_also_have_definite_assignment_assertions",S[S.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",S[S.Binary_digit_expected=1177]="Binary_digit_expected",S[S.Octal_digit_expected=1178]="Octal_digit_expected",S[S.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",S[S.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer=1190]="The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer",S[S.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",S[S.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",S[S.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",S[S._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",S[S.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",S[S.An_interface_property_cannot_have_an_initializer=1246]="An_interface_property_cannot_have_an_initializer",S[S.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",S[S.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",S[S.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",S[S.A_default_export_can_only_be_used_in_a_module=1319]="A_default_export_can_only_be_used_in_a_module",S[S.An_expression_of_type_0_cannot_be_tested_for_truthiness=1345]="An_expression_of_type_0_cannot_be_tested_for_truthiness",S[S.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal=1351]="An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal",S[S.Duplicate_identifier_0=2300]="Duplicate_identifier_0",S[S.Cannot_find_name_0=2304]="Cannot_find_name_0",S[S.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",S[S.An_interface_can_only_extend_an_interface=2312]="An_interface_can_only_extend_an_interface",S[S.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",S[S.Type_0_is_not_generic=2315]="Type_0_is_not_generic",S[S.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",S[S.Property_0_is_private_in_type_1_but_not_in_type_2=2325]="Property_0_is_private_in_type_1_but_not_in_type_2",S[S.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",S[S._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",S[S._this_cannot_be_referenced_in_constructor_arguments=2333]="_this_cannot_be_referenced_in_constructor_arguments",S[S._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",S[S._super_cannot_be_referenced_in_constructor_arguments=2336]="_super_cannot_be_referenced_in_constructor_arguments",S[S.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",S[S.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",S[S.Property_0_is_private_and_only_accessible_within_class_1=2341]="Property_0_is_private_and_only_accessible_within_class_1",S[S.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",S[S.This_expression_is_not_constructable=2351]="This_expression_is_not_constructable",S[S.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",S[S.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",S[S.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",S[S.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",S[S.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",S[S.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",S[S._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",S[S.Overload_signatures_must_all_be_public_private_or_protected=2385]="Overload_signatures_must_all_be_public_private_or_protected",S[S.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",S[S.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",S[S.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",S[S.Duplicate_function_implementation=2393]="Duplicate_function_implementation",S[S.This_overload_signature_is_not_compatible_with_its_implementation_signature=2394]="This_overload_signature_is_not_compatible_with_its_implementation_signature",S[S.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",S[S.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2=2416]="Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2",S[S.A_class_can_only_implement_an_interface=2422]="A_class_can_only_implement_an_interface",S[S.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged=2434]="A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged",S[S.Types_have_separate_declarations_of_a_private_property_0=2442]="Types_have_separate_declarations_of_a_private_property_0",S[S.Property_0_is_protected_in_type_1_but_public_in_type_2=2444]="Property_0_is_protected_in_type_1_but_public_in_type_2",S[S.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses=2445]="Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses",S[S.Variable_0_used_before_its_declaration=2448]="Variable_0_used_before_its_declaration",S[S.Cannot_redeclare_block_scoped_variable_0=2451]="Cannot_redeclare_block_scoped_variable_0",S[S.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly=2453]="The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly",S[S.Variable_0_is_used_before_being_assigned=2454]="Variable_0_is_used_before_being_assigned",S[S.Type_alias_0_circularly_references_itself=2456]="Type_alias_0_circularly_references_itself",S[S.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",S[S.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",S[S.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",S[S.A_const_enum_member_can_only_be_accessed_using_a_string_literal=2476]="A_const_enum_member_can_only_be_accessed_using_a_string_literal",S[S.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",S[S._0_is_referenced_directly_or_indirectly_in_its_own_base_expression=2506]="_0_is_referenced_directly_or_indirectly_in_its_own_base_expression",S[S.Cannot_create_an_instance_of_an_abstract_class=2511]="Cannot_create_an_instance_of_an_abstract_class",S[S.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2=2515]="Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2",S[S.Object_is_possibly_null=2531]="Object_is_possibly_null",S[S.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",S[S.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",S[S.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",S[S.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",S[S.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",S[S.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",S[S.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned=2564]="Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned",S[S.Property_0_is_used_before_being_assigned=2565]="Property_0_is_used_before_being_assigned",S[S._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property=2610]="_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property",S[S._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor=2611]="_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor",S[S.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",S[S.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",S[S.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",S[S.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private=2675]="Cannot_extend_a_class_0_Class_constructor_is_marked_as_private",S[S.The_this_types_of_each_signature_are_incompatible=2685]="The_this_types_of_each_signature_are_incompatible",S[S.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",S[S.Namespace_can_only_have_declarations=2695]="Namespace_can_only_have_declarations",S[S.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",S[S.Duplicate_property_0=2718]="Duplicate_property_0",S[S.Property_0_is_missing_in_type_1_but_required_in_type_2=2741]="Property_0_is_missing_in_type_1_but_required_in_type_2",S[S.Type_0_has_no_call_signatures=2757]="Type_0_has_no_call_signatures",S[S.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter=2808]="Get_accessor_0_must_be_at_least_as_accessible_as_the_setter",S[S.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0=4117]="This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0",S[S.File_0_not_found=6054]="File_0_not_found",S[S.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",S[S.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",S[S.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without=6234]="This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without",S[S._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",S[S._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class",S))(ct||{});function ca(t){switch(t){case 100:return"Not implemented: {0}";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 103:return"Feature '{0}' is not enabled.";case 104:return"Low memory limit exceeded by static data: {0} > {1}";case 105:return"Module requires at least '{0}' pages of initial memory.";case 106:return"Module requires at least '{0}' pages of maximum memory.";case 107:return"Shared memory requires maximum memory to be defined.";case 108:return"Shared memory requires feature 'threads' to be enabled.";case 109:return"Transform '{0}': {1}";case 110:return"Start function name '{0}' is invalid or conflicts with another export.";case 111:return"Element '{0}' not found.";case 112:return"Exchange of '{0}' values is not supported by all embeddings";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Operation '{0}' cannot be applied to type '{1}'.";case 204:return"Type '{0}' cannot be nullable.";case 206:return"Mutable value cannot be inlined.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Expression is never 'null'.";case 211:return"Class '{0}' is final and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"Type '{0}' is illegal in this context.";case 215:return"Optional parameter must have an initializer.";case 216:return"Class '{0}' cannot declare a constructor when instantiated from an object literal.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 221:return"Type '{0}' is not a function index or function reference.";case 222:return"'{0}' must be a value between '{1}' and '{2}' inclusive.";case 223:return"'{0}' must be a power of two.";case 224:return"'{0}' is not a valid operator.";case 225:return"Expression cannot be represented by a type.";case 226:return"Expression resolves to unusual type '{0}'.";case 227:return"Array literal expected.";case 228:return"Function '{0}' is virtual and will not be inlined.";case 229:return"Property '{0}' only has a setter and is missing a getter.";case 230:return"'{0}' keyword cannot be used here.";case 231:return"A class with a constructor explicitly returning something else than 'this' must be '@final'.";case 233:return"Property '{0}' is always assigned before being used.";case 234:return"Expression does not compile to a value at runtime.";case 235:return"Only variables, functions and enums become WebAssembly module exports.";case 236:return"Literal '{0}' does not fit into 'i64' or 'u64' types.";case 237:return"Index signature accessors in type '{0}' differ in types.";case 238:return"Initializer, definitive assignment or nullable type expected.";case 239:return"Definitive assignment has no effect on local variables.";case 240:return"Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').";case 241:return"An interface or abstract method '{0}' cannot have type parameters.";case 242:return"Cannot override generic method '{0}' with a non-generic method or vice versa.";case 250:return"Only Error or its subclasses can be thrown, but found type '{0}'.";case 901:return"Importing the table disables some indirect call optimizations.";case 902:return"Exporting the table disables some indirect call optimizations.";case 903:return"Expression compiles to a dynamic check at runtime.";case 904:return"Indexed access may involve bounds checking.";case 905:return"Explicitly returning constructor drops 'this' allocation.";case 906:return"Unnecessary definite assignment.";case 907:return"'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.";case 908:return"Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1031:return"'{0}' modifier cannot appear on class elements of this kind.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1099:return"Type argument list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1120:return"An export assignment cannot have modifiers.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1263:return"Declarations with initializers cannot also have definite assignment assertions.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1190:return"The variable declaration of a 'for...of' statement cannot have an initializer.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1246:return"An interface property cannot have an initializer.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 1319:return"A default export can only be used in a module.";case 1345:return"An expression of type '{0}' cannot be tested for truthiness.";case 1351:return"An identifier or keyword cannot immediately follow a numeric literal.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2312:return"An interface can only extend an interface.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2325:return"Property '{0}' is private in type '{1}' but not in type '{2}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2333:return"'this' cannot be referenced in constructor arguments.";case 2335:return"'super' can only be referenced in a derived class.";case 2336:return"'super' cannot be referenced in constructor arguments.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2341:return"Property '{0}' is private and only accessible within class '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"This expression is not constructable.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2385:return"Overload signatures must all be public, private or protected.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2394:return"This overload signature is not compatible with its implementation signature.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2416:return"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.";case 2422:return"A class can only implement an interface.";case 2434:return"A namespace declaration cannot be located prior to a class or function with which it is merged.";case 2442:return"Types have separate declarations of a private property '{0}'.";case 2444:return"Property '{0}' is protected in type '{1}' but public in type '{2}'.";case 2445:return"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.";case 2448:return"Variable '{0}' used before its declaration.";case 2451:return"Cannot redeclare block-scoped variable '{0}'";case 2453:return"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.";case 2454:return"Variable '{0}' is used before being assigned.";case 2456:return"Type alias '{0}' circularly references itself.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2476:return"A const enum member can only be accessed using a string literal.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2506:return"'{0}' is referenced directly or indirectly in its own base expression.";case 2511:return"Cannot create an instance of an abstract class.";case 2515:return"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from '{2}'.";case 2531:return"Object is possibly 'null'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2564:return"Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.";case 2565:return"Property '{0}' is used before being assigned.";case 2610:return"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.";case 2611:return"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2675:return"Cannot extend a class '{0}'. Class constructor is marked as private.";case 2685:return"The 'this' types of each signature are incompatible.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2695:return"Namespace can only have declarations.";case 2706:return"Required type parameters may not follow optional type parameters.";case 2718:return"Duplicate property '{0}'.";case 2741:return"Property '{0}' is missing in type '{1}' but required in type '{2}'.";case 2757:return"Type '{0}' has no call signatures.";case 2808:return"Get accessor '{0}' must be at least as accessible as the setter.";case 4117:return"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 6234:return"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";default:return""}}var Ip={};fo(Ip,{BitSet:()=>gp,COLOR_BLUE:()=>x2,COLOR_CYAN:()=>Ep,COLOR_GRAY:()=>g2,COLOR_GREEN:()=>b2,COLOR_MAGENTA:()=>Ap,COLOR_RED:()=>ba,COLOR_RESET:()=>wn,COLOR_WHITE:()=>T2,COLOR_YELLOW:()=>Tp,CharCode:()=>it,SURROGATE_HIGH:()=>Rn,SURROGATE_LOW:()=>fi,accuratePow64:()=>_a,cloneMap:()=>pe,colorize:()=>A2,combineSurrogates:()=>Fn,dirname:()=>jy,escapeString:()=>Te,indent:()=>O,isAlpha:()=>xp,isAlphaOrDecimal:()=>Wy,isColorsEnabled:()=>mi,isDecimal:()=>nt,isHexBase:()=>kn,isHexOrDecimal:()=>o2,isHighSurrogate:()=>_i,isIdentifier:()=>ze,isIdentifierPart:()=>di,isIdentifierStart:()=>hi,isLineBreak:()=>Pt,isLowSurrogate:()=>da,isOctal:()=>ma,isPowerOf2:()=>Ct,isSurrogate:()=>s2,isSurrogateHigh:()=>a2,isSurrogateLow:()=>l2,isWhiteSpace:()=>In,mergeMaps:()=>n2,normalizePath:()=>vr,numCodeUnits:()=>Ar,readF32:()=>t2,readF64:()=>r2,readI16:()=>e2,readI32:()=>pi,readI64:()=>qy,readI8:()=>$x,readV128:()=>i2,resolvePath:()=>ya,setColorsEnabled:()=>xa,v128_ones:()=>Sp,v128_zero:()=>vp,writeF32:()=>xr,writeF64:()=>Tr,writeI16:()=>Zt,writeI32:()=>me,writeI32AsI64:()=>fa,writeI64:()=>ci,writeI64AsI32:()=>mp,writeI8:()=>_e,writeV128:()=>yp});function $x(t,i){return t[i]}function _e(t,i,e){i[e]=t}function e2(t,i){return i32(t[i])|i32(t[i+1])<<8}function Zt(t,i,e){i[e]=t,i[e+1]=t>>>8}function pi(t,i){return i32(t[i])|i32(t[i+1])<<8|i32(t[i+2])<<16|i32(t[i+3])<<24}function me(t,i,e){i[e]=t,i[e+1]=t>>>8,i[e+2]=t>>>16,i[e+3]=t>>>24}function fa(t,i,e,r=!1){me(t,i,e),me(r||t>=0?0:-1,i,e+4)}function qy(t,i){let e=pi(t,i),r=pi(t,i+4);return i64_new(e,r)}function ci(t,i,e){me(i64_low(t),i,e),me(i64_high(t),i,e+4)}function mp(t,i,e,r=!1){assert(r?i64_is_u32(t):i64_is_i32(t)),me(i64_low(t),i,e)}function t2(t,i){return i32_as_f32(pi(t,i))}function xr(t,i,e){me(f32_as_i32(t),i,e)}function r2(t,i){return i64_as_f64(qy(t,i))}function Tr(t,i,e){let r=f64_as_i64(t);me(i64_low(r),i,e),me(i64_high(r),i,e+4)}function i2(t,i){return t.slice(i,i+16)}function yp(t,i,e){assert(t.length==16),i.set(t,e)}function pe(t){if(ASC_TARGET){let i=new Map;if(t)for(let e=Map_keys(t),r=0,n=e.length;r<n;++r){let s=unchecked(e[r]),a=assert(t.get(s));i.set(s,a)}return i}else return new Map(t)}function n2(t,i){if(ASC_TARGET){let e=new Map;for(let r=Map_keys(t),n=0,s=r.length;n<s;++n){let a=unchecked(r[n]),l=assert(t.get(a));e.set(a,l)}for(let r=Map_keys(i),n=0,s=r.length;n<s;++n){let a=unchecked(r[n]),l=assert(i.get(a));e.set(a,l)}return e}else{let e=new Map(t);return i.forEach((r,n)=>e.set(n,r)),e}}var gp=class{constructor(){this.clear()}get size(){let i=0,e=this.words;for(let r=0,n=e.length;r<n;r++){let s=unchecked(e[r]);s&&(i+=popcnt(s))}return i}add(i){let e=i>>>5,r=this.words;return e>=r.length&&(this.words=new Uint32Array(e+16),this.words.set(r),r=this.words),unchecked(r[e]|=1<<i),this}delete(i){let e=i>>>5,r=this.words;e>=r.length||unchecked(r[e]&=~(1<<i))}has(i){let e=i>>>5,r=this.words;return e>=r.length?!1:(unchecked(r[i>>>5])&1<<i)!==0}clear(){this.words=new Uint32Array(16)}toArray(){let i=new Array(this.size);for(let e=0,r=0,n=this.words.length;e<n;++e){let s=unchecked(this.words[e]);for(;s;){let a=s&-s;unchecked(i[r++]=(e<<5)+popcnt(a-1)),s^=a}}return i}toString(){return`BitSet { ${this.toArray()} }`}};function Ct(t){return t!=0&&(t&t-1)==0}function _a(t,i){return ASC_TARGET?Math.pow(t,i):f64_pow(t,i)}var it=(P=>(P[P.Null=0]="Null",P[P.LineFeed=10]="LineFeed",P[P.CarriageReturn=13]="CarriageReturn",P[P.LineSeparator=8232]="LineSeparator",P[P.ParagraphSeparator=8233]="ParagraphSeparator",P[P.NextLine=133]="NextLine",P[P.Space=32]="Space",P[P.NonBreakingSpace=160]="NonBreakingSpace",P[P.EnQuad=8192]="EnQuad",P[P.EmQuad=8193]="EmQuad",P[P.EnSpace=8194]="EnSpace",P[P.EmSpace=8195]="EmSpace",P[P.ThreePerEmSpace=8196]="ThreePerEmSpace",P[P.FourPerEmSpace=8197]="FourPerEmSpace",P[P.SixPerEmSpace=8198]="SixPerEmSpace",P[P.FigureSpace=8199]="FigureSpace",P[P.PunctuationSpace=8200]="PunctuationSpace",P[P.ThinSpace=8201]="ThinSpace",P[P.HairSpace=8202]="HairSpace",P[P.ZeroWidthSpace=8203]="ZeroWidthSpace",P[P.NarrowNoBreakSpace=8239]="NarrowNoBreakSpace",P[P.IdeographicSpace=12288]="IdeographicSpace",P[P.MathematicalSpace=8287]="MathematicalSpace",P[P.Ogham=5760]="Ogham",P[P._=95]="_",P[P._0=48]="_0",P[P._1=49]="_1",P[P._2=50]="_2",P[P._3=51]="_3",P[P._4=52]="_4",P[P._5=53]="_5",P[P._6=54]="_6",P[P._7=55]="_7",P[P._8=56]="_8",P[P._9=57]="_9",P[P.a=97]="a",P[P.b=98]="b",P[P.c=99]="c",P[P.d=100]="d",P[P.e=101]="e",P[P.f=102]="f",P[P.g=103]="g",P[P.h=104]="h",P[P.i=105]="i",P[P.j=106]="j",P[P.k=107]="k",P[P.l=108]="l",P[P.m=109]="m",P[P.n=110]="n",P[P.o=111]="o",P[P.p=112]="p",P[P.q=113]="q",P[P.r=114]="r",P[P.s=115]="s",P[P.t=116]="t",P[P.u=117]="u",P[P.v=118]="v",P[P.w=119]="w",P[P.x=120]="x",P[P.y=121]="y",P[P.z=122]="z",P[P.A=65]="A",P[P.B=66]="B",P[P.C=67]="C",P[P.D=68]="D",P[P.E=69]="E",P[P.F=70]="F",P[P.G=71]="G",P[P.H=72]="H",P[P.I=73]="I",P[P.J=74]="J",P[P.K=75]="K",P[P.L=76]="L",P[P.M=77]="M",P[P.N=78]="N",P[P.O=79]="O",P[P.P=80]="P",P[P.Q=81]="Q",P[P.R=82]="R",P[P.S=83]="S",P[P.T=84]="T",P[P.U=85]="U",P[P.V=86]="V",P[P.W=87]="W",P[P.X=88]="X",P[P.Y=89]="Y",P[P.Z=90]="Z",P[P.Ampersand=38]="Ampersand",P[P.Asterisk=42]="Asterisk",P[P.At=64]="At",P[P.Backslash=92]="Backslash",P[P.Backtick=96]="Backtick",P[P.Bar=124]="Bar",P[P.Caret=94]="Caret",P[P.CloseBrace=125]="CloseBrace",P[P.CloseBracket=93]="CloseBracket",P[P.CloseParen=41]="CloseParen",P[P.Colon=58]="Colon",P[P.Comma=44]="Comma",P[P.Dollar=36]="Dollar",P[P.Dot=46]="Dot",P[P.DoubleQuote=34]="DoubleQuote",P[P.Equals=61]="Equals",P[P.Exclamation=33]="Exclamation",P[P.GreaterThan=62]="GreaterThan",P[P.Hash=35]="Hash",P[P.LessThan=60]="LessThan",P[P.Minus=45]="Minus",P[P.OpenBrace=123]="OpenBrace",P[P.OpenBracket=91]="OpenBracket",P[P.OpenParen=40]="OpenParen",P[P.Percent=37]="Percent",P[P.Plus=43]="Plus",P[P.Question=63]="Question",P[P.Semicolon=59]="Semicolon",P[P.SingleQuote=39]="SingleQuote",P[P.Slash=47]="Slash",P[P.Tilde=126]="Tilde",P[P.Backspace=8]="Backspace",P[P.FormFeed=12]="FormFeed",P[P.ByteOrderMark=65279]="ByteOrderMark",P[P.Tab=9]="Tab",P[P.VerticalTab=11]="VerticalTab",P))(it||{});function Pt(t){switch(t){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function In(t){switch(t){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return t>=8192&&t<=8203}}var Rn=55296,fi=56320;function s2(t){return(t&63488)==Rn}function a2(t){return t<fi}function l2(t){return t>=fi}function _i(t){return(t&64512)==Rn}function da(t){return(t&64512)==fi}function Fn(t,i){return 65536+((t&1023)<<10)|i&1023}function Ar(t){return 1+i32(t>65535)}function xp(t){let i=t|32;return i>=97&&i<=122}function nt(t){return t>=48&&t<=57}function ma(t){return t>=48&&t<=55}function kn(t){let i=t|32;return i>=97&&i<=102}function o2(t){return nt(t)||kn(t)}function Wy(t){return xp(t)||nt(t)}function hi(t){return xp(t)||t==95||t==36||t>=p2&&t<=c2&&Ky(t,u2)}function di(t){return Wy(t)||t==95||t==36||t>=_2&&t<=h2&&Ky(t,f2)}function ze(t){let i=t.length;if(!i)return!1;let e=t.codePointAt(0);if(!hi(e))return!1;let r=Ar(e);for(;r<i;){if(e=t.codePointAt(r),!di(e))return!1;r+=Ar(e)}return!0}var u2=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2191,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3164,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3292,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7306,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42972,42993,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,68938,68965,68975,68997,69248,69289,69296,69297,69314,69319,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70528,70537,70539,70539,70542,70542,70544,70581,70583,70583,70609,70609,70611,70611,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72640,72672,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73136,73179,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,78944,82938,82944,83526,90368,90397,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93504,93548,93760,93823,93856,93880,93883,93907,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94194,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124368,124397,124400,124400,124608,124638,124640,124642,124644,124645,124647,124653,124656,124660,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041],p2=170,c2=210041,f2=[170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2191,2199,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3164,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3292,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6877,6880,6891,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7306,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42972,42993,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,68928,68965,68969,68973,68975,68997,69248,69289,69291,69292,69296,69297,69314,69319,69370,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70528,70537,70539,70539,70542,70542,70544,70581,70583,70592,70594,70594,70597,70597,70599,70602,70604,70611,70625,70626,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71376,71395,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72544,72551,72640,72672,72688,72697,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73136,73179,73184,73193,73440,73462,73472,73488,73490,73530,73534,73538,73552,73562,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,78944,82938,82944,83526,90368,90425,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93504,93548,93552,93561,93760,93823,93856,93880,93883,93907,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118e3,118009,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124368,124410,124608,124638,124640,124661,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041,917760,917999],_2=170,h2=917999;function Ky(t,i){let e=0,r=i.length;for(;e+1<r;){let n=e+(r-e>>>1);n-=n&1;let s=i[n];if(s<=t&&t<=i[n+1])return!0;t<s?r=n:e=n+2}return!1}var bp=" ",d2=" ",m2=" ",y2=" ",ha=new Map;function O(t,i){if(i<=4)switch(i){case 1:t.push(bp);break;case 2:t.push(d2);break;case 3:t.push(m2);break;case 4:t.push(y2);break}else{let e;ha.size<=1024?ha.has(i)?e=assert(ha.get(i)):ha.set(i,e=bp.repeat(i)):e=bp.repeat(i),t.push(e)}}function Te(t,i){let e=new Array,r=0,n=0;for(let s=t.length;n<s;)switch(t.charCodeAt(n)){case 0:{n>r&&e.push(t.substring(r,r=n+1)),e.push("\\0"),r=++n;break}case 8:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\b");break}case 9:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\t");break}case 10:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\n");break}case 11:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\v");break}case 12:{n>r&&e.push(t.substring(r,n)),r=++n,e.push("\\f");break}case 13:{n>r&&e.push(t.substring(r,n)),e.push("\\r"),r=++n;break}case 34:{i==34?(n>r&&e.push(t.substring(r,n)),e.push('\\"'),r=++n):++n;break}case 39:{i==39?(n>r&&e.push(t.substring(r,n)),e.push("\\'"),r=++n):++n;break}case 92:{n>r&&e.push(t.substring(r,n)),e.push("\\\\"),r=++n;break}case 96:{i==96?(n>r&&e.push(t.substring(r,n)),e.push("\\`"),r=++n):++n;break}default:{++n;break}}return n>r&&e.push(t.substring(r,n)),e.join("")}var Er=47;function vr(t){let i=0,e=t.length;for(;i+1<e&&t.charCodeAt(i)==46&&t.charCodeAt(i+1)==Er;)i+=2;(i>0||e<t.length)&&(t=t.substring(i,e),e-=i,i=0);let r;for(;i+1<e;){if(r=!1,t.charCodeAt(i)==Er&&t.charCodeAt(i+1)==46){if(r=i+2==e,r||i+2<e&&t.charCodeAt(i+2)==Er){t=r?t.substring(0,i):t.substring(0,i)+t.substring(i+2),e-=2;continue}if(r=i+3==e,r&&t.charCodeAt(i+2)==46||i+3<e&&t.charCodeAt(i+2)==46&&t.charCodeAt(i+3)==Er){let n=i;for(;--n>=0;)if(t.charCodeAt(n)==Er){(i-n!=3||t.charCodeAt(n+1)!=46||t.charCodeAt(n+2)!=46)&&(t=r?t.substring(0,n):t.substring(0,n)+t.substring(i+3),e-=i+3-n,i=n-1);break}if(n<0&&i>0&&(i!=2||t.charCodeAt(0)!=46||t.charCodeAt(1)!=46)){t=t.substring(i+4),e=t.length;continue}}}i++}return e>0?t:"."}function ya(t,i){return t.startsWith("std/")?t:vr(jy(i)+rt+t)}function jy(t){let i=t.length;if(i<=1){if(i==0)return".";if(t.charCodeAt(0)==Er)return t}for(;--i>0;)if(t.charCodeAt(i)==Er)return t.substring(0,i);return"."}var g2="\x1B[90m",ba="\x1B[91m",b2="\x1B[92m",Tp="\x1B[93m",x2="\x1B[94m",Ap="\x1B[95m",Ep="\x1B[96m",T2="\x1B[97m",wn="\x1B[0m",ga=!0;function mi(){return ga}function xa(t){let i=ga;return ga=t,i}function A2(t,i){return ga?i+t+wn:t}var vp=new Uint8Array(16),Sp=new Uint8Array(16).fill(255);var Aa=(n=>(n[n.Pedantic=0]="Pedantic",n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(Aa||{}),le=class t{constructor(i,e){this.start=i;this.end=e}static join(i,e){if(i.source!=e.source)throw new Error("source mismatch");let r=new t(i.start<e.start?i.start:e.start,i.end>e.end?i.end:e.end);return r.source=i.source,r}equals(i){return this.source==i.source&&this.start==i.start&&this.end==i.end}get atStart(){let i=new t(this.start,this.start);return i.source=this.source,i}get atEnd(){let i=new t(this.end,this.end);return i.source=this.source,i}toString(){return this.source.text.substring(this.start,this.end)}};function Rp(t){switch(t){case 0:return"PEDANTIC";case 1:return"INFO";case 2:return"WARNING";case 3:return"ERROR";default:return assert(!1),""}}function Qy(t){switch(t){case 0:return Ap;case 1:return Ep;case 2:return Tp;case 3:return ba;default:return assert(!1),""}}var Ta=class t{constructor(i,e,r){this.range=null;this.relatedRange=null;this.code=i,this.category=e,this.message=r}static create(i,e,r=null,n=null,s=null){let a=ca(i);return r!=null&&(a=a.replace("{0}",r)),n!=null&&(a=a.replace("{1}",n)),s!=null&&(a=a.replace("{2}",s)),new t(i,e,a)}equals(i){if(this.code!=i.code)return!1;let e=this.range,r=i.range;if(e){if(!r||!e.equals(r))return!1}else if(r)return!1;let n=this.relatedRange,s=i.relatedRange;if(n){if(!s||!n.equals(s))return!1}else if(s)return!1;return this.message==i.message}withRange(i){return this.range=i,this}withRelatedRange(i){return this.relatedRange=i,this}toString(){let i=Rp(this.category),e=this.range,r=this.code,n=this.message;if(e){let s=e.source,a=s.normalizedPath,l=s.lineAt(e.start),o=s.columnAt(),u=e.end-e.start;return`${i} ${r}: "${n}" in ${a}(${l},${o}+${u})`}return`${i} ${r}: ${n}`}};function Xy(t,i=!1,e=!1){let r=xa(i),n=[];mi()&&n.push(Qy(t.category)),n.push(Rp(t.category)),mi()&&n.push(wn),n.push(t.code<1e3?" AS":" TS"),n.push(t.code.toString()),n.push(": "),n.push(t.message);let s=t.range;if(s){let a=s.source,l=t.relatedRange,o=0;if(l&&(o=max(a.lineAt(s.start),l.source.lineAt(l.start))),e?(n.push(`
|
|
10
|
+
`),n.push(Hy(s,o))):(n.push(`
|
|
11
11
|
in `),n.push(a.normalizedPath)),n.push("("),n.push(a.lineAt(s.start).toString()),n.push(","),n.push(a.columnAt().toString()),n.push(")"),l){let u=l.source;e?(n.push(`
|
|
12
|
-
`),n.push(
|
|
13
|
-
in `),n.push(u.normalizedPath)),n.push("("),n.push(u.lineAt(l.start).toString()),n.push(","),n.push(u.columnAt().toString()),n.push(")")}}return
|
|
12
|
+
`),n.push(Hy(l,o))):(n.push(`
|
|
13
|
+
in `),n.push(u.normalizedPath)),n.push("("),n.push(u.lineAt(l.start).toString()),n.push(","),n.push(u.columnAt().toString()),n.push(")")}}return xa(r),n.join("")}function Hy(t,i=0){let e=t.source,r=e.text,n=r.length,s=t.start,a=s,l=e.lineAt(s).toString(),o=i?max(i.toString().length,l.length):l.length,u=" ".repeat(o);for(;s>0&&!Pt(r.charCodeAt(s-1));)s--;for(;s<n&&In(r.charCodeAt(s));)s++;for(;a<n&&!Pt(r.charCodeAt(a));)a++;let c=[u,` :
|
|
14
14
|
`," ".repeat(o-l.length),l," \u2502 ",r.substring(s,a).replaceAll(" "," "),`
|
|
15
|
-
`,u," \u2502 "];for(;s<t.start;)r.charCodeAt(s)==9?(c.push(" "),s+=2):(c.push(" "),s++);if(mi()&&c.push(
|
|
16
|
-
`),c.push(u),c.push(" \u2514\u2500 in "),c.push(e.normalizedPath),c.join("")}var We=class{constructor(i=null){this.seen=new Map;i||(i=[]),this.diagnostics=i}emitDiagnostic(i,e,r,n,s=null,a=null,l=null){let o=xa.create(i,e,s,a,l);if(r&&(o=o.withRange(r)),n&&(o.relatedRange=n),r){let u=this.seen;if(u.has(r.source)){let c=assert(u.get(r.source));if(c.has(r.start)){let f=assert(c.get(r.start));for(let _=0,h=f.length;_<h;++_)if(f[_].equals(o))return;f.push(o)}else c.set(r.start,[o])}else{let c=new Map;c.set(r.start,[o]),u.set(r.source,c)}}this.diagnostics.push(o)}pedantic(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,0,e,null,r,n,s)}pedanticRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,0,e,r,n,s,a)}info(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,1,e,null,r,n,s)}infoRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,1,e,r,n,s,a)}warning(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,2,e,null,r,n,s)}warningRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,2,e,r,n,s,a)}error(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,3,e,null,r,n,s)}errorRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,3,e,r,n,s,a)}};var st=(V=>(V[V.Source=0]="Source",V[V.NamedType=1]="NamedType",V[V.FunctionType=2]="FunctionType",V[V.TupleType=3]="TupleType",V[V.TypeName=4]="TypeName",V[V.TypeParameter=5]="TypeParameter",V[V.Parameter=6]="Parameter",V[V.Identifier=7]="Identifier",V[V.Assertion=8]="Assertion",V[V.Binary=9]="Binary",V[V.Call=10]="Call",V[V.Class=11]="Class",V[V.Comma=12]="Comma",V[V.ElementAccess=13]="ElementAccess",V[V.False=14]="False",V[V.Function=15]="Function",V[V.InstanceOf=16]="InstanceOf",V[V.Literal=17]="Literal",V[V.New=18]="New",V[V.Null=19]="Null",V[V.Omitted=20]="Omitted",V[V.Parenthesized=21]="Parenthesized",V[V.PropertyAccess=22]="PropertyAccess",V[V.Ternary=23]="Ternary",V[V.Super=24]="Super",V[V.This=25]="This",V[V.True=26]="True",V[V.Constructor=27]="Constructor",V[V.UnaryPostfix=28]="UnaryPostfix",V[V.UnaryPrefix=29]="UnaryPrefix",V[V.Compiled=30]="Compiled",V[V.Block=31]="Block",V[V.Break=32]="Break",V[V.Continue=33]="Continue",V[V.Do=34]="Do",V[V.Empty=35]="Empty",V[V.Export=36]="Export",V[V.ExportDefault=37]="ExportDefault",V[V.ExportImport=38]="ExportImport",V[V.Expression=39]="Expression",V[V.For=40]="For",V[V.ForOf=41]="ForOf",V[V.If=42]="If",V[V.Import=43]="Import",V[V.Return=44]="Return",V[V.Switch=45]="Switch",V[V.Throw=46]="Throw",V[V.Try=47]="Try",V[V.Variable=48]="Variable",V[V.Void=49]="Void",V[V.While=50]="While",V[V.Module=51]="Module",V[V.ClassDeclaration=52]="ClassDeclaration",V[V.EnumDeclaration=53]="EnumDeclaration",V[V.EnumValueDeclaration=54]="EnumValueDeclaration",V[V.FieldDeclaration=55]="FieldDeclaration",V[V.FunctionDeclaration=56]="FunctionDeclaration",V[V.ImportDeclaration=57]="ImportDeclaration",V[V.InterfaceDeclaration=58]="InterfaceDeclaration",V[V.MethodDeclaration=59]="MethodDeclaration",V[V.NamespaceDeclaration=60]="NamespaceDeclaration",V[V.TypeDeclaration=61]="TypeDeclaration",V[V.VariableDeclaration=62]="VariableDeclaration",V[V.Decorator=63]="Decorator",V[V.ExportMember=64]="ExportMember",V[V.SwitchCase=65]="SwitchCase",V[V.IndexSignature=66]="IndexSignature",V[V.Comment=67]="Comment",V))(st||{}),G=class t{constructor(i,e){this.kind=i;this.range=e}static createSimpleTypeName(i,e){return new gi(t.createIdentifierExpression(i,e),null,e)}static createNamedType(i,e,r,n){return new ce(i,e,r,n)}static createFunctionType(i,e,r,n,s){return new Sr(i,e,r,n,s)}static createTupleType(i,e,r,n){return new Aa(i,e,r,n)}static createOmittedType(i){return new ce(t.createSimpleTypeName("",i),null,!1,i)}static createTypeParameter(i,e,r,n){return new Ea(i,e,r,n)}static createParameter(i,e,r,n,s){return new bi(i,e,r,n,s)}static createDecorator(i,e,r){return new va(Ye.fromNode(i),i,e,r)}static createComment(i,e,r){return new Sa(i,e,r)}static createIdentifierExpression(i,e,r=!1){return new Ke(i,r,e)}static createEmptyIdentifierExpression(i){return new Ke("",!1,i)}static createArrayLiteralExpression(i,e){return new Ir(i,e)}static createAssertionExpression(i,e,r,n){return new Ia(i,e,r,n)}static createBinaryExpression(i,e,r,n){return new Ra(i,e,r,n)}static createCallExpression(i,e,r,n){return new Fa(i,e,r,n)}static createClassExpression(i){return new ka(i)}static createCommaExpression(i,e){return new wa(i,e)}static createConstructorExpression(i){return new Ca(i)}static createElementAccessExpression(i,e,r){return new Pa(i,e,r)}static createFalseExpression(i){return new ja(i)}static createFloatLiteralExpression(i,e){return new Ba(i,e)}static createFunctionExpression(i){return new La(i)}static createInstanceOfExpression(i,e,r){return new Na(i,e,r)}static createIntegerLiteralExpression(i,e){return new Bt(i,e)}static createNewExpression(i,e,r,n){return new Ma(i,e,r,n)}static createNullExpression(i){return new Ga(i)}static createObjectLiteralExpression(i,e,r){return new _t(i,e,r)}static createOmittedExpression(i){return new za(i)}static createParenthesizedExpression(i,e){return new Da(i,e)}static createPropertyAccessExpression(i,e,r){return new Lt(i,e,r)}static createRegexpLiteralExpression(i,e,r){return new Ua(i,e,r)}static createTernaryExpression(i,e,r,n){return new Va(i,e,r,n)}static createStringLiteralExpression(i,e){return new Ze(i,e)}static createSuperExpression(i){return new Oa(i)}static createTemplateLiteralExpression(i,e,r,n,s){return new qa(i,e,r,n,s)}static createThisExpression(i){return new Wa(i)}static createTrueExpression(i){return new Ka(i)}static createUnaryPostfixExpression(i,e,r){return new Ha(i,e,r)}static createUnaryPrefixExpression(i,e,r){return new Qa(i,e,r)}static createCompiledExpression(i,e,r){return new Xa(i,e,r)}static createBlockStatement(i,e){return new Za(i,e)}static createBreakStatement(i,e){return new Ya(i,e)}static createClassDeclaration(i,e,r,n,s,a,l,o){return new Pn(i,e,r,n,s,a,l,o)}static createContinueStatement(i,e){return new $a(i,e)}static createDoStatement(i,e,r){return new el(i,e,r)}static createEmptyStatement(i){return new tl(i)}static createEnumDeclaration(i,e,r,n,s){return new rl(i,e,r,n,s)}static createEnumValueDeclaration(i,e,r,n){return new il(i,e,r,n)}static createExportStatement(i,e,r,n){return new al(i,e,r,n)}static createExportDefaultStatement(i,e){return new ll(i,e)}static createExportImportStatement(i,e,r){return new nl(i,e,r)}static createExportMember(i,e,r){return e||(e=i),new sl(i,e,r)}static createExpressionStatement(i){return new ol(i)}static createIfStatement(i,e,r,n){return new fl(i,e,r,n)}static createImportStatement(i,e,r){return new Ln(i,null,e,r)}static createWildcardImportStatement(i,e,r){return new Ln(null,i,e,r)}static createImportDeclaration(i,e,r){return e||(e=i),new _l(e,i,r)}static createInterfaceDeclaration(i,e,r,n,s,a,l,o){return new hl(i,e,r,n,s,a,l,o)}static createFieldDeclaration(i,e,r,n,s,a){return new ul(i,e,r,n,s,-1,a)}static createForStatement(i,e,r,n,s){return new pl(i,e,r,n,s)}static createForOfStatement(i,e,r,n){return new cl(i,e,r,n)}static createFunctionDeclaration(i,e,r,n,s,a,l,o){return new Bn(i,e,r,n,s,a,l,o)}static createIndexSignature(i,e,r,n){return new Ja(i,e,r,n)}static createMethodDeclaration(i,e,r,n,s,a,l){return new Rr(i,e,r,n,s,a,l)}static createNamespaceDeclaration(i,e,r,n,s){return new dl(i,e,r,n,s)}static createReturnStatement(i,e){return new ml(i,e)}static createSwitchStatement(i,e,r){return new gl(i,e,r)}static createSwitchCase(i,e,r){return new yl(i,e,r)}static createThrowStatement(i,e){return new bl(i,e)}static createTryStatement(i,e,r,n,s){return new xl(i,e,r,n,s)}static createTypeDeclaration(i,e,r,n,s,a){return new Al(i,e,r,n,s,a)}static createModuleDeclaration(i,e,r){return new Tl(i,e,r)}static createVariableStatement(i,e,r){return new vl(i,e,r)}static createVariableDeclaration(i,e,r,n,s,a){return new El(i,e,r,n,s,a)}static createVoidStatement(i,e){return new Sl(i,e)}static createWhileStatement(i,e,r){return new Il(i,e,r)}isLiteralKind(i){return this.kind==17&&changetype(this).literalKind==i}get isNumericLiteral(){if(this.kind==17)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 17:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 19:case 26:case 14:return!0}return!1}isAccessOn(i){let e=changetype(this);return e.kind==10&&(e=e.expression),e.kind==22&&e.expression.kind==i}get isAccessOnThis(){return this.isAccessOn(25)}get isAccessOnSuper(){return this.isAccessOn(24)}get isEmpty(){return this.kind==35}},yi=class extends G{constructor(e,r,n){super(e,n);this.isNullable=r;this.currentlyResolving=!1}hasGenericComponent(e){if(this.kind==1){let r=changetype(this);if(!r.name.next){let n=r.typeArguments;if(n&&n.length>0){for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else{let s=r.name.identifier.text;for(let a=0,l=e.length;a<l;++a)if(e[a].name.text==s)return!0}}}else if(this.kind==2){let r=changetype(this),n=r.parameters;for(let a=0,l=n.length;a<l;++a)if(n[a].type.hasGenericComponent(e))return!0;if(r.returnType.hasGenericComponent(e))return!0;let s=r.explicitThisType;if(s&&s.hasGenericComponent(e))return!0}else if(this.kind==3){let n=changetype(this).elements;for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else assert(!1);return!1}},gi=class extends G{constructor(e,r,n){super(4,n);this.identifier=e;this.next=r}},ce=class extends yi{constructor(e,r,n,s){super(1,n,s);this.name=e;this.typeArguments=r}get hasTypeArguments(){let e=this.typeArguments;return e!=null&&e.length>0}get isNull(){return this.name.identifier.text=="null"}},Sr=class extends yi{constructor(e,r,n,s,a){super(2,s,a);this.parameters=e;this.returnType=r;this.explicitThisType=n}},Aa=class extends yi{constructor(e,r,n,s){super(3,n,s);this.elements=e;this.elementNames=r}},Ea=class extends G{constructor(e,r,n,s){super(5,s);this.name=e;this.extendsType=r;this.defaultType=n}},Fr=(r=>(r[r.Default=0]="Default",r[r.Optional=1]="Optional",r[r.Rest=2]="Rest",r))(Fr||{}),bi=class extends G{constructor(e,r,n,s,a){super(6,a);this.parameterKind=e;this.name=r;this.type=n;this.initializer=s;this.implicitFieldDeclaration=null;this.flags=0}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},Ye=(Q=>(Q[Q.Custom=0]="Custom",Q[Q.Global=1]="Global",Q[Q.Operator=2]="Operator",Q[Q.OperatorBinary=3]="OperatorBinary",Q[Q.OperatorPrefix=4]="OperatorPrefix",Q[Q.OperatorPostfix=5]="OperatorPostfix",Q[Q.Unmanaged=6]="Unmanaged",Q[Q.Final=7]="Final",Q[Q.Inline=8]="Inline",Q[Q.External=9]="External",Q[Q.ExternalJs=10]="ExternalJs",Q[Q.Builtin=11]="Builtin",Q[Q.Lazy=12]="Lazy",Q[Q.Unsafe=13]="Unsafe",Q[Q.Main=14]="Main",Q[Q.Data=15]="Data",Q[Q.Remote=16]="Remote",Q[Q.Service=17]="Service",Q[Q.Rest=18]="Rest",Q[Q.Route=19]="Route",Q[Q.Get=20]="Get",Q[Q.Post=21]="Post",Q[Q.Put=22]="Put",Q[Q.Delete=23]="Delete",Q[Q.Patch=24]="Patch",Q[Q.Head=25]="Head",Q[Q.Options=26]="Options",Q[Q.Cache=27]="Cache",Q[Q.Auth=28]="Auth",Q[Q.User=29]="User",Q[Q.Ratelimit=30]="Ratelimit",Q[Q.Database=31]="Database",Q[Q.Collection=32]="Collection",Q[Q.Query=33]="Query",Q[Q.Action=34]="Action",Q[Q.Job=35]="Job",Q[Q.Derive=36]="Derive",Q[Q.Migrate=37]="Migrate",Q[Q.Admin=38]="Admin",Q))(Ye||{});(i=>{function t(e){if(e.kind==7){let r=e.text;switch(assert(r.length),r.charCodeAt(0)){case 97:{if(r=="auth")return 28;if(r=="action")return 34;if(r=="admin")return 38;break}case 98:{if(r=="builtin")return 11;break}case 99:{if(r=="cache")return 27;if(r=="collection")return 32;break}case 100:{if(r=="data")return 15;if(r=="del")return 23;if(r=="database")return 31;if(r=="derive")return 36;break}case 101:{if(r=="external")return 9;break}case 102:{if(r=="final")return 7;break}case 103:{if(r=="global")return 1;if(r=="get")return 20;break}case 104:{if(r=="head")return 25;break}case 105:{if(r=="inline")return 8;break}case 106:{if(r=="job")return 35;break}case 108:{if(r=="lazy")return 12;break}case 109:{if(r=="main")return 14;if(r=="migrate")return 37;break}case 111:{if(r=="operator")return 2;if(r=="options")return 26;break}case 112:{if(r=="post")return 21;if(r=="put")return 22;if(r=="patch")return 24;break}case 113:{if(r=="query")return 33;break}case 114:{if(r=="ratelimit")return 30;if(r=="remote")return 16;if(r=="rest")return 18;if(r=="route")return 19;break}case 115:{if(r=="service")return 17;break}case 117:{if(r=="unmanaged")return 6;if(r=="unsafe")return 13;if(r=="user")return 29;break}}}else if(e.kind==22){let r=e,n=r.expression;if(n.kind==7){let s=n.text;assert(s.length);let a=r.property.text;if(assert(a.length),s=="operator")switch(a.charCodeAt(0)){case 98:{if(a=="binary")return 3;break}case 112:{if(a=="prefix")return 4;if(a=="postfix")return 5;break}}else if(s=="external")switch(a.charCodeAt(0)){case 106:{if(a=="js")return 10;break}}}}return 0}i.fromNode=t})(Ye||={});var va=class extends G{constructor(e,r,n,s){super(63,s);this.decoratorKind=e;this.name=r;this.args=n}},Ip=(r=>(r[r.Line=0]="Line",r[r.Triple=1]="Triple",r[r.Block=2]="Block",r))(Ip||{}),Sa=class extends G{constructor(e,r,n){super(67,n);this.commentKind=e;this.text=r}},ye=class extends G{},Ke=class extends ye{constructor(e,r,n){super(7,n);this.text=e;this.isQuoted=r}},Yt=(l=>(l[l.Float=0]="Float",l[l.Integer=1]="Integer",l[l.String=2]="String",l[l.Template=3]="Template",l[l.RegExp=4]="RegExp",l[l.Array=5]="Array",l[l.Object=6]="Object",l))(Yt||{}),ft=class extends ye{constructor(e,r){super(17,r);this.literalKind=e}},Ir=class extends ft{constructor(e,r){super(5,r);this.elementExpressions=e}},Ti=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(Ti||{}),Ia=class extends ye{constructor(e,r,n,s){super(8,s);this.assertionKind=e;this.expression=r;this.toType=n}},Ra=class extends ye{constructor(e,r,n,s){super(9,s);this.operator=e;this.left=r;this.right=n}},Fa=class extends ye{constructor(e,r,n,s){super(10,s);this.expression=e;this.typeArguments=r;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,r;return e&&(r=e.length)?le.join(e[0].range,e[r-1].range):this.expression.range}get argumentsRange(){let e=this.args,r=e.length;return r?le.join(e[0].range,e[r-1].range):this.expression.range}},ka=class extends ye{constructor(e){super(11,e.range);this.declaration=e}},wa=class extends ye{constructor(e,r){super(12,r);this.expressions=e}},Ca=class extends Ke{constructor(i){super("constructor",!1,i),this.kind=27}},Pa=class extends ye{constructor(e,r,n){super(13,n);this.expression=e;this.elementExpression=r}},Ba=class extends ft{constructor(e,r){super(0,r);this.value=e}},La=class extends ye{constructor(e){super(15,e.range);this.declaration=e}},Na=class extends ye{constructor(e,r,n){super(16,n);this.expression=e;this.isType=r}},Bt=class extends ft{constructor(e,r){super(1,r);this.value=e}},Ma=class extends ye{constructor(e,r,n,s){super(18,s);this.typeName=e;this.typeArguments=r;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,r;return e&&(r=e.length)>0?le.join(e[0].range,e[r-1].range):this.typeName.range}get argumentsRange(){let e=this.args,r=e.length;return r?le.join(e[0].range,e[r-1].range):this.typeName.range}},Ga=class extends Ke{constructor(i){super("null",!1,i),this.kind=19}},_t=class extends ft{constructor(e,r,n){super(6,n);this.names=e;this.values=r}},za=class extends ye{constructor(i){super(20,i)}},Da=class extends ye{constructor(e,r){super(21,r);this.expression=e}},Lt=class extends ye{constructor(e,r,n){super(22,n);this.expression=e;this.property=r}},Ua=class extends ft{constructor(e,r,n){super(4,n);this.pattern=e;this.patternFlags=r}},Va=class extends ye{constructor(e,r,n,s){super(23,s);this.condition=e;this.ifThen=r;this.ifElse=n}},Ze=class extends ft{constructor(e,r){super(2,r);this.value=e}},Oa=class extends Ke{constructor(i){super("super",!1,i),this.kind=24}},qa=class extends ft{constructor(e,r,n,s,a){super(3,a);this.tag=e;this.parts=r;this.rawParts=n;this.expressions=s}},Wa=class extends Ke{constructor(i){super("this",!1,i),this.kind=25}},Ka=class extends Ke{constructor(i){super("true",!1,i),this.kind=26}},ja=class extends Ke{constructor(i){super("false",!1,i),this.kind=14}},Cn=class extends ye{constructor(e,r,n,s){super(e,s);this.operator=r;this.operand=n}},Ha=class extends Cn{constructor(i,e,r){super(28,i,e,r)}},Qa=class extends Cn{constructor(i,e,r){super(29,i,e,r)}},Xa=class extends ye{constructor(e,r,n){super(30,n);this.expr=e;this.type=r}},oe=class extends G{},Ai=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Ai||{}),fe=class t extends G{constructor(e,r,n){super(0,new le(0,n.length));this.sourceKind=e;this.normalizedPath=r;this.text=n;this.statements=new Array;this.debugInfoIndex=-1;this.exportPaths=null;this.lineCache=null;this.lineColumn=1;let s=Nn(r);this.internalPath=s;let a=s.lastIndexOf(rt);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=t._native;return e||(t._native=e=new t(3,pt+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==t._native}get isLibrary(){let e=this.sourceKind;return e==2||e==3}lineAt(e){assert(e>=0&&e<2147483647);let r=this.lineCache;if(!r){this.lineCache=r=[0];let a=this.text,l=0,o=a.length;for(;l<o;)a.charCodeAt(l++)==10&&r.push(l);r.push(2147483647)}let n=0,s=r.length-1;for(;n<s;){let a=n+(s-n>>1),l=unchecked(r[a]);if(e<l)s=a;else{if(e<unchecked(r[a+1]))return this.lineColumn=e-l+1,a+1;n=a+1}}return assert(0)}columnAt(){return this.lineColumn}},De=class extends oe{constructor(e,r,n,s,a){super(e,a);this.name=r;this.decorators=n;this.flags=s;this.overriddenModuleName=null}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},Ja=class extends G{constructor(e,r,n,s){super(66,s);this.keyType=e;this.valueType=r;this.flags=n}},xi=class extends De{constructor(e,r,n,s,a,l,o){super(e,r,n,s,o);this.type=a;this.initializer=l}},Za=class extends oe{constructor(e,r){super(31,r);this.statements=e}},Ya=class extends oe{constructor(e,r){super(32,r);this.label=e}},Pn=class extends De{constructor(e,r,n,s,a,l,o,u){super(52,e,r,n,u);this.typeParameters=s;this.extendsType=a;this.implementsTypes=l;this.members=o;this.indexSignature=null}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},$a=class extends oe{constructor(e,r){super(33,r);this.label=e}},el=class extends oe{constructor(e,r,n){super(34,n);this.body=e;this.condition=r}},tl=class extends oe{constructor(i){super(35,i)}},rl=class extends De{constructor(e,r,n,s,a){super(53,e,r,n,a);this.values=s}},il=class extends xi{constructor(i,e,r,n){super(54,i,null,e,null,r,n)}},nl=class extends oe{constructor(e,r,n){super(38,n);this.name=e;this.externalName=r}},sl=class extends G{constructor(e,r,n){super(64,n);this.localName=e;this.exportedName=r}},al=class extends oe{constructor(e,r,n,s){super(36,s);this.members=e;this.path=r;this.isDeclare=n;if(r){let a=vr(r.value);r.value.startsWith(".")?a=ma(a,s.source.internalPath):a.startsWith(pt)||(a=pt+a),this.internalPath=a}else this.internalPath=null}},ll=class extends oe{constructor(e,r){super(37,r);this.declaration=e}},ol=class extends oe{constructor(e){super(39,e.range);this.expression=e}},ul=class extends xi{constructor(e,r,n,s,a,l,o){super(55,e,r,n,s,a,o);this.parameterIndex=l}},pl=class extends oe{constructor(e,r,n,s,a){super(40,a);this.initializer=e;this.condition=r;this.incrementor=n;this.body=s}},cl=class extends oe{constructor(e,r,n,s){super(41,s);this.variable=e;this.iterable=r;this.body=n}},Ei=(r=>(r[r.None=0]="None",r[r.Parenthesized=1]="Parenthesized",r[r.Single=2]="Single",r))(Ei||{}),Bn=class t extends De{constructor(e,r,n,s,a,l,o,u){super(56,e,r,n,u);this.typeParameters=s;this.signature=a;this.body=l;this.arrowKind=o}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new t(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range)}},fl=class extends oe{constructor(e,r,n,s){super(42,s);this.condition=e;this.ifTrue=r;this.ifFalse=n}},_l=class extends De{constructor(e,r,n){super(57,e,null,0,n);this.foreignName=r}},Ln=class extends oe{constructor(e,r,n,s){super(43,s);this.declarations=e;this.namespaceName=r;this.path=n;let a=vr(n.value);n.value.startsWith(".")?a=ma(a,s.source.internalPath):a.startsWith(pt)||(a=pt+a),this.internalPath=Nn(a)}},hl=class extends Pn{constructor(i,e,r,n,s,a,l,o){super(i,e,r,n,s,a,l,o),this.kind=58}},Rr=class extends Bn{constructor(i,e,r,n,s,a,l){super(i,e,r,n,s,a,0,l),this.kind=59}},dl=class extends De{constructor(e,r,n,s,a){super(60,e,r,n,a);this.members=s}},ml=class extends oe{constructor(e,r){super(44,r);this.value=e}},yl=class extends G{constructor(e,r,n){super(65,n);this.label=e;this.statements=r}get isDefault(){return this.label==null}},gl=class extends oe{constructor(e,r,n){super(45,n);this.condition=e;this.cases=r}},bl=class extends oe{constructor(e,r){super(46,r);this.value=e}},xl=class extends oe{constructor(e,r,n,s,a){super(47,a);this.bodyStatements=e;this.catchVariable=r;this.catchStatements=n;this.finallyStatements=s}},Tl=class extends oe{constructor(e,r,n){super(51,n);this.moduleName=e;this.flags=r}},Al=class extends De{constructor(e,r,n,s,a,l){super(61,e,r,n,l);this.typeParameters=s;this.type=a}},El=class extends xi{constructor(i,e,r,n,s,a){super(62,i,e,r,n,s,a)}},vl=class extends oe{constructor(e,r,n){super(48,n);this.decorators=e;this.declarations=r}},Sl=class extends oe{constructor(e,r){super(49,r);this.expression=e}},Il=class extends oe{constructor(e,r,n){super(50,n);this.condition=e;this.body=r}};function Nt(t,i){if(i)for(let e=0,r=i.length;e<r;++e){let n=i[e];if(n.decoratorKind==t)return n}return null}function Nn(t){return t.endsWith("/")?t+="index":t.endsWith(".ts")&&(t=t.substring(0,t.length-3)),t}function ke(t){if(t.kind==1){let i=t.name;return!(i.next||i.identifier.text.length>0)}return!1}var vi=(B=>(B[B.Abstract=0]="Abstract",B[B.As=1]="As",B[B.Async=2]="Async",B[B.Await=3]="Await",B[B.Break=4]="Break",B[B.Case=5]="Case",B[B.Catch=6]="Catch",B[B.Class=7]="Class",B[B.Const=8]="Const",B[B.Continue=9]="Continue",B[B.Constructor=10]="Constructor",B[B.Debugger=11]="Debugger",B[B.Declare=12]="Declare",B[B.Default=13]="Default",B[B.Delete=14]="Delete",B[B.Do=15]="Do",B[B.Else=16]="Else",B[B.Enum=17]="Enum",B[B.Export=18]="Export",B[B.Extends=19]="Extends",B[B.False=20]="False",B[B.Finally=21]="Finally",B[B.For=22]="For",B[B.From=23]="From",B[B.Function=24]="Function",B[B.Get=25]="Get",B[B.If=26]="If",B[B.Implements=27]="Implements",B[B.Import=28]="Import",B[B.In=29]="In",B[B.InstanceOf=30]="InstanceOf",B[B.Interface=31]="Interface",B[B.Is=32]="Is",B[B.KeyOf=33]="KeyOf",B[B.Let=34]="Let",B[B.Module=35]="Module",B[B.Namespace=36]="Namespace",B[B.New=37]="New",B[B.Null=38]="Null",B[B.Of=39]="Of",B[B.Override=40]="Override",B[B.Package=41]="Package",B[B.Private=42]="Private",B[B.Protected=43]="Protected",B[B.Public=44]="Public",B[B.Readonly=45]="Readonly",B[B.Return=46]="Return",B[B.Set=47]="Set",B[B.Static=48]="Static",B[B.Super=49]="Super",B[B.Switch=50]="Switch",B[B.This=51]="This",B[B.Throw=52]="Throw",B[B.True=53]="True",B[B.Try=54]="Try",B[B.Type=55]="Type",B[B.TypeOf=56]="TypeOf",B[B.Var=57]="Var",B[B.Void=58]="Void",B[B.While=59]="While",B[B.With=60]="With",B[B.Yield=61]="Yield",B[B.OpenBrace=62]="OpenBrace",B[B.CloseBrace=63]="CloseBrace",B[B.OpenParen=64]="OpenParen",B[B.CloseParen=65]="CloseParen",B[B.OpenBracket=66]="OpenBracket",B[B.CloseBracket=67]="CloseBracket",B[B.Dot=68]="Dot",B[B.Dot_Dot_Dot=69]="Dot_Dot_Dot",B[B.Semicolon=70]="Semicolon",B[B.Comma=71]="Comma",B[B.LessThan=72]="LessThan",B[B.GreaterThan=73]="GreaterThan",B[B.LessThan_Equals=74]="LessThan_Equals",B[B.GreaterThan_Equals=75]="GreaterThan_Equals",B[B.Equals_Equals=76]="Equals_Equals",B[B.Exclamation_Equals=77]="Exclamation_Equals",B[B.Equals_Equals_Equals=78]="Equals_Equals_Equals",B[B.Exclamation_Equals_Equals=79]="Exclamation_Equals_Equals",B[B.Equals_GreaterThan=80]="Equals_GreaterThan",B[B.Plus=81]="Plus",B[B.Minus=82]="Minus",B[B.Asterisk_Asterisk=83]="Asterisk_Asterisk",B[B.Asterisk=84]="Asterisk",B[B.Slash=85]="Slash",B[B.Percent=86]="Percent",B[B.Plus_Plus=87]="Plus_Plus",B[B.Minus_Minus=88]="Minus_Minus",B[B.LessThan_LessThan=89]="LessThan_LessThan",B[B.GreaterThan_GreaterThan=90]="GreaterThan_GreaterThan",B[B.GreaterThan_GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan_GreaterThan",B[B.Ampersand=92]="Ampersand",B[B.Bar=93]="Bar",B[B.Caret=94]="Caret",B[B.Exclamation=95]="Exclamation",B[B.Tilde=96]="Tilde",B[B.Ampersand_Ampersand=97]="Ampersand_Ampersand",B[B.Bar_Bar=98]="Bar_Bar",B[B.Question=99]="Question",B[B.Colon=100]="Colon",B[B.Equals=101]="Equals",B[B.Plus_Equals=102]="Plus_Equals",B[B.Minus_Equals=103]="Minus_Equals",B[B.Asterisk_Equals=104]="Asterisk_Equals",B[B.Asterisk_Asterisk_Equals=105]="Asterisk_Asterisk_Equals",B[B.Slash_Equals=106]="Slash_Equals",B[B.Percent_Equals=107]="Percent_Equals",B[B.LessThan_LessThan_Equals=108]="LessThan_LessThan_Equals",B[B.GreaterThan_GreaterThan_Equals=109]="GreaterThan_GreaterThan_Equals",B[B.GreaterThan_GreaterThan_GreaterThan_Equals=110]="GreaterThan_GreaterThan_GreaterThan_Equals",B[B.Ampersand_Equals=111]="Ampersand_Equals",B[B.Bar_Equals=112]="Bar_Equals",B[B.Caret_Equals=113]="Caret_Equals",B[B.At=114]="At",B[B.Identifier=115]="Identifier",B[B.StringLiteral=116]="StringLiteral",B[B.IntegerLiteral=117]="IntegerLiteral",B[B.FloatLiteral=118]="FloatLiteral",B[B.TemplateLiteral=119]="TemplateLiteral",B[B.Invalid=120]="Invalid",B[B.EndOfFile=121]="EndOfFile",B))(vi||{}),Fp=(r=>(r[r.Default=0]="Default",r[r.Prefer=1]="Prefer",r[r.Always=2]="Always",r))(Fp||{});function Qy(t){let i=t.length;switch(assert(i),t.charCodeAt(0)){case 97:{if(i==5){if(t=="async")return 2;if(t=="await")return 3;break}if(t=="as")return 1;if(t=="abstract")return 0;break}case 98:{if(t=="break")return 4;break}case 99:{if(i==5){if(t=="const")return 8;if(t=="class")return 7;if(t=="catch")return 6;break}if(t=="case")return 5;if(t=="continue")return 9;if(t=="constructor")return 10;break}case 100:{if(i==7){if(t=="default")return 13;if(t=="declare")return 12;break}if(t=="do")return 15;if(t=="delete")return 14;if(t=="debugger")return 11;break}case 101:{if(i==4){if(t=="else")return 16;if(t=="enum")return 17;break}if(t=="export")return 18;if(t=="extends")return 19;break}case 102:{if(i<=5){if(t=="false")return 20;if(t=="for")return 22;if(t=="from")return 23;break}if(t=="function")return 24;if(t=="finally")return 21;break}case 103:{if(t=="get")return 25;break}case 105:{if(i==2){if(t=="if")return 26;if(t=="in")return 29;if(t=="is")return 32;break}switch(t.charCodeAt(3)){case 108:{if(t=="implements")return 27;break}case 111:{if(t=="import")return 28;break}case 116:{if(t=="instanceof")return 30;break}case 101:{if(t=="interface")return 31;break}}break}case 107:{if(t=="keyof")return 33;break}case 108:{if(t=="let")return 34;break}case 109:{if(t=="module")return 35;break}case 110:{if(t=="new")return 37;if(t=="null")return 38;if(t=="namespace")return 36;break}case 111:{if(t=="of")return 39;if(t=="override")return 40;break}case 112:{if(i==7){if(t=="private")return 42;if(t=="package")return 41;break}if(t=="public")return 44;if(t=="protected")return 43;break}case 114:{if(t=="return")return 46;if(t=="readonly")return 45;break}case 115:{if(i==6){if(t=="switch")return 50;if(t=="static")return 48;break}if(t=="set")return 47;if(t=="super")return 49;break}case 116:{if(i==4){if(t=="true")return 53;if(t=="this")return 51;if(t=="type")return 55;break}if(t=="try")return 54;if(t=="throw")return 52;if(t=="typeof")return 56;break}case 118:{if(t=="var")return 57;if(t=="void")return 58;break}case 119:{if(t=="while")return 59;if(t=="with")return 60;break}case 121:{if(t=="yield")return 61;break}}return 120}function Xy(t){switch(t){case 0:case 1:case 10:case 12:case 14:case 23:case 22:case 25:case 30:case 32:case 33:case 35:case 36:case 38:case 45:case 47:case 55:case 58:return!0;default:return!1}}function kp(t){switch(assert(t.length),t.charCodeAt(0)){case 100:return t=="delete";case 102:return t=="for";case 105:return t=="instanceof";case 110:return t=="null";case 118:return t=="void"}return!1}function Ie(t){switch(t){case 14:return"delete";case 29:return"in";case 30:return"instanceof";case 37:return"new";case 56:return"typeof";case 58:return"void";case 61:return"yield";case 69:return"...";case 71:return",";case 72:return"<";case 73:return">";case 74:return"<=";case 75:return">=";case 76:return"==";case 77:return"!=";case 78:return"===";case 79:return"!==";case 81:return"+";case 82:return"-";case 83:return"**";case 84:return"*";case 85:return"/";case 86:return"%";case 87:return"++";case 88:return"--";case 89:return"<<";case 90:return">>";case 91:return">>>";case 92:return"&";case 93:return"|";case 94:return"^";case 95:return"!";case 96:return"~";case 97:return"&&";case 98:return"||";case 101:return"=";case 102:return"+=";case 103:return"-=";case 104:return"*=";case 105:return"**=";case 106:return"/=";case 107:return"%=";case 108:return"<<=";case 109:return">>=";case 110:return">>>=";case 111:return"&=";case 112:return"|=";case 113:return"^=";default:return assert(!1),""}}var kr=class extends We{constructor(e,r=null){super(r);this.end=0;this.pos=0;this.token=-1;this.tokenPos=0;this.nextToken=-1;this.nextTokenPos=0;this.nextTokenOnNewLine=2;this.onComment=null;this.readingTemplateString=!1;this.readStringStart=0;this.readStringEnd=0;r||(r=[]),this.diagnostics=r,this.source=e;let n=e.text,s=n.length,a=0;if(a<s&&n.charCodeAt(a)==65279&&++a,a+1<s&&n.charCodeAt(a)==35&&n.charCodeAt(a+1)==33)for(a+=2;a<s&&n.charCodeAt(a)!=10;)++a;this.pos=a,this.end=s}next(e=0){this.clearNextToken();let r;do r=this.unsafeNext(e);while(r==120);return this.token=r,r}unsafeNext(e=0,r=i32.MAX_VALUE){let n=this.source.text,s=this.end,a=this.pos;for(;a<s;){this.tokenPos=a;let l=n.charCodeAt(a);switch(l){case 13:if(!(++a<s&&n.charCodeAt(a)==10))break;case 10:case 9:case 11:case 12:case 32:{++a;break}case 33:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,79):(this.pos=a,77)):(this.pos=a,95);case 34:case 39:return this.pos=a,116;case 96:return this.pos=a,119;case 37:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,107):(this.pos=a,86);case 38:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==38)return this.pos=a+1,97;if(o==61)return this.pos=a+1,111}return this.pos=a,92}case 40:return this.pos=a+1,64;case 41:return this.pos=a+1,65;case 42:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==61)return this.pos=a+1,104;if(o==42)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,105):(this.pos=a,83)}return this.pos=a,84}case 43:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==43)return this.pos=a+1,87;if(o==61)return this.pos=a+1,102}return this.pos=a,81}case 44:return this.pos=a+1,71;case 45:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==45)return this.pos=a+1,88;if(o==61)return this.pos=a+1,103}return this.pos=a,82}case 46:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(nt(o))return this.pos=a-1,118;if(r>2&&a+1<s&&o==46&&n.charCodeAt(a+1)==46)return this.pos=a+2,69}return this.pos=a,68}case 47:{let o=a;if(++a,r>1&&a<s){let u=n.charCodeAt(a);if(u==47){let c=0;for(a+1<s&&n.charCodeAt(a+1)==47&&(++a,c=1);++a<s;)if(n.charCodeAt(a)==10){++a;break}this.onComment&&this.onComment(c,n.substring(o,a),this.range(o,a));break}if(u==42){let c=!1;for(;++a<s;)if(l=n.charCodeAt(a),l==42&&a+1<s&&n.charCodeAt(a+1)==47){a+=2,c=!0;break}c?this.onComment&&this.onComment(2,n.substring(o,a),this.range(o,a)):this.error(1005,this.range(a),"*/");break}if(u==61)return this.pos=a+1,106}return this.pos=a,85}case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.pos=a,this.testInteger()?117:118;case 58:return this.pos=a+1,100;case 59:return this.pos=a+1,70;case 60:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==60)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,108):(this.pos=a,89);if(o==61)return this.pos=a+1,74}return this.pos=a,72}case 61:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==61)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,78):(this.pos=a,76);if(o==62)return this.pos=a+1,80}return this.pos=a,101}case 62:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==62){if(++a,r>2&&a<s){if(o=n.charCodeAt(a),o==62)return++a,r>3&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,110):(this.pos=a,91);if(o==61)return this.pos=a+1,109}return this.pos=a,90}if(o==61)return this.pos=a+1,75}return this.pos=a,73}case 63:return this.pos=a+1,99;case 91:return this.pos=a+1,66;case 93:return this.pos=a+1,67;case 94:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,113):(this.pos=a,94);case 123:return this.pos=a+1,62;case 124:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==124)return this.pos=a+1,98;if(o==61)return this.pos=a+1,112}return this.pos=a,93}case 125:return this.pos=a+1,63;case 126:return this.pos=a+1,96;case 64:return this.pos=a+1,114;default:{if(_i(l)&&a+1<s&&(l=Fn(l,n.charCodeAt(a+1))),hi(l)){let u=a;for(;(a+=Ar(l))<s&&di(l=n.codePointAt(a)););if(e!=2){let c=Qy(n.substring(u,a));if(c!=120&&!(e==1&&Xy(c)))return this.pos=a,c}return this.pos=u,115}else if(In(l)){++a;break}let o=a;return a+=Ar(l),this.error(1127,this.range(o,a)),this.pos=a,120}}}return this.pos=a,121}peek(e=0,r=i32.MAX_VALUE){let n=this.nextToken;if(n<0){let s=this.pos,a=this.token,l=this.tokenPos;do n=this.unsafeNext(e,r);while(n==120);this.nextToken=n,this.nextTokenPos=this.tokenPos,this.nextTokenOnNewLine=2,this.pos=s,this.token=a,this.tokenPos=l}return n}peekOnNewLine(){switch(this.nextTokenOnNewLine){case 0:return!1;case 1:return!0}this.peek();let e=this.source.text;for(let r=this.pos,n=this.nextTokenPos;r<n;++r)if(Pt(e.charCodeAt(r)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(115,e)}skip(e,r=0){let n=this.pos,s=this.token,a=this.tokenPos,l=i32.MAX_VALUE;e==73&&(l=1);let o;do o=this.unsafeNext(r,l);while(o==120);return o==e?(this.token=e,this.clearNextToken(),!0):(this.pos=n,this.token=s,this.tokenPos=a,!1)}mark(){let e=Rp;return e?(Rp=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new Rl(this.pos,this.token,this.tokenPos),e}discard(e){Rp=e}reset(e){this.pos=e.pos,this.token=e.token,this.tokenPos=e.tokenPos,this.clearNextToken()}clearNextToken(){this.nextToken=-1,this.nextTokenPos=0,this.nextTokenOnNewLine=2}range(e=-1,r=-1){e<0?(e=this.tokenPos,r=this.pos):r<0&&(r=e);let n=new le(e,r);return n.source=this.source,n}readIdentifier(){let e=this.source.text,r=this.end,n=this.pos,s=n,a=e.codePointAt(n);for(assert(hi(a));(n+=Ar(a))<r&&di(a=e.codePointAt(n)););return this.pos=n,e.substring(s,n)}readString(e=0,r=!1){let n=this.source.text,s=this.end,a=this.pos;e||(e=n.charCodeAt(a++));let l=a;this.readStringStart=l;let o="";for(;;){if(a>=s){o+=n.substring(l,a),this.error(1002,this.range(l-1,s)),this.readStringEnd=s;break}let u=n.charCodeAt(a);if(u==e){this.readStringEnd=a,o+=n.substring(l,a++);break}if(u==92){o+=n.substring(l,a),this.pos=a,o+=this.readEscapeSequence(r),a=this.pos,l=a;continue}if(e==96){if(u==36&&a+1<s&&n.charCodeAt(a+1)==123)return o+=n.substring(l,a),this.readStringEnd=a,this.pos=a+2,this.readingTemplateString=!0,o}else if(Pt(u)){o+=n.substring(l,a),this.error(1002,this.range(l-1,a)),this.readStringEnd=a;break}++a}return this.pos=a,this.readingTemplateString=!1,o}readEscapeSequence(e=!1){let r=this.pos,n=this.end;if(++this.pos>=n)return this.error(1126,this.range(n)),"";let s=this.source.text,a=s.charCodeAt(this.pos++);switch(a){case 48:return e&&this.pos<n&&nt(s.charCodeAt(this.pos))?(++this.pos,s.substring(r,this.pos)):"\0";case 98:return"\b";case 116:return" ";case 110:return`
|
|
17
|
-
`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos<n&&s.charCodeAt(this.pos)==123?(++this.pos,this.readExtendedUnicodeEscape(e?r:-1)):this.readUnicodeEscape(e?r:-1);case 120:return this.readHexadecimalEscape(2,e?r:-1);case 13:this.pos<n&&s.charCodeAt(this.pos)==10&&++this.pos;case 10:case 8232:case 8233:return"";default:return String.fromCodePoint(a)}}readRegexpPattern(){let e=this.source.text,r=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(r,n));break}if(e.charCodeAt(this.pos)==92){++this.pos,s=!0;continue}let a=e.charCodeAt(this.pos);if(!s&&a==47)break;if(Pt(a)){this.error(1161,this.range(r,this.pos));break}++this.pos,s=!1}return e.substring(r,this.pos)}readRegexpFlags(){let e=this.source.text,r=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!di(a))break;switch(++this.pos,a){case 103:{s|=s&1?-1:1;break}case 105:{s|=s&2?-1:2;break}case 109:{s|=s&4?-1:4;break}default:{s=-1;break}}}return s==-1&&this.error(209,this.range(r,this.pos)),e.substring(r,this.pos)}testInteger(){let e=this.source.text,r=this.pos,n=this.end;if(r+1<n&&e.charCodeAt(r)==48)switch(e.charCodeAt(r+2)|32){case 120:case 98:case 111:return!0}for(;r<n;){let s=e.charCodeAt(r);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;r++}return!0}readInteger(){let e=this.source.text,r=this.pos;if(r+2<this.end&&e.charCodeAt(r)==48){switch(e.charCodeAt(r+1)|32){case 120:return this.pos=r+2,this.readHexInteger();case 98:return this.pos=r+2,this.readBinaryInteger();case 111:return this.pos=r+2,this.readOctalInteger()}if(da(e.charCodeAt(r+1))){let n=r;this.pos=r+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(4),u=l,c=!1;for(;r<n;){let f=e.charCodeAt(r);if(nt(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(kn(f))u=i64_add(i64_shl(l,o),i64_new((f|32)+-87));else if(f==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1125,this.range(s)):a==r&&this.error(6188,this.range(a-1)),c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readDecimalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(10),u=l,c=!1;for(;r<n;){let f=e.charCodeAt(r);if(nt(f))u=i64_add(i64_mul(l,o),i64_new(f-48));else if(f==95)a==r?this.error(a==s?6188:6189,this.range(r)):r-1==s&&e.charCodeAt(r-1)==48&&this.error(6188,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1124,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s,r),this.source.text.substring(s,r)),this.pos=r,l}readOctalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(3),u=l,c=!1;for(;r<n;){let f=e.charCodeAt(r);if(da(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(f==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1178,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readBinaryInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=l,u=!1;for(;r<n;){let c=e.charCodeAt(r);if(c==48)o=i64_shl(l,i64_one);else if(c==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(c==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt(l,o)&&(u=!0),l=o,++r}return r==s?this.error(1177,this.range(s)):a==r?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,r=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<r&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<r){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<r&&(l=e.charCodeAt(this.pos))==45||l==43&&nt(e.charCodeAt(this.pos+1)))&&++this.pos,s+=this.readDecimalFloatPartial())}let a=e.substring(n,this.pos);return s&&(a=a.replaceAll("_","")),parseFloat(a)}readDecimalFloatPartial(e=!0){let r=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=r.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&r.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!nt(u))break;++n}return n!=s&&l==n&&this.error(6188,this.range(l-1)),this.pos=n,o}readHexFloat(){throw new Error("not implemented")}readHexadecimalEscape(e=2,r=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(nt(o))n=(n<<4)+o-48;else if(kn(o))n=(n<<4)+(o|32)+-87;else return~r?(this.pos=--a,s.substring(r,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~r?s.substring(r,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&hi(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let r=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(r,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(r,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(r,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Rl=class{constructor(i,e,r){this.pos=i;this.token=e;this.tokenPos=r}},Rp=null;var L;(I=>(I.None=0,I.Unreachable=1,I.I32=2,I.I64=3,I.F32=4,I.F64=5,I.V128=6,I.Funcref=ff(),I.Externref=_f(),I.Anyref=hf(),I.Eqref=df(),I.Structref=yf(),I.Arrayref=gf(),I.I31ref=mf(),I.Stringref=bf(),I.Noneref=xf(),I.Nofuncref=Af(),I.Noexternref=Tf()))(L||={});var ge;(g=>{g.Extern=8,g.Func=16,g.Any=32,g.Eq=40,g.I31=48,g.Struct=56,g.Array=64,g.Exn=7,g.String=80,g.None=88,g.Noextern=96,g.Nofunc=104;function _(A){return Ef(A)}g.isBottom=_;function h(A){return vf(A)}g.getBottom=h;function m(A,I){return Sf(A,I)}g.isSubtype=m;function x(A,I){if(A==I)return A;if(h(A)!=h(I))return-1;if(_(A))return I;if(_(I))return A;if(A>I){let E=A;A=I,I=E}switch(A){case g.Extern:return I==g.String?A:-1;case g.Func:return-1;case g.Any:return A;case g.Eq:return I==g.I31||I==g.Struct||I==g.Array?g.Eq:g.Any;case g.I31:return I==g.Struct||I==g.Array?g.Eq:g.Any;case g.Struct:return I==g.Array?g.Eq:g.Any;case g.Array:return g.Any}return assert(!1),-1}g.leastUpperBound=x})(ge||={});var Gn;(r=>(r.NotPacked=0,r.I8=1,r.I16=2))(Gn||={});var Cp;(s=>{s.SelfSupertype=0,s.InvalidSupertype=1,s.ForwardSupertypeReference=2,s.ForwardChildReference=3;function n(a){switch(a){case 0:return"SelfSupertype";case 1:return"InvalidSupertype";case 2:return"ForwardSupertypeReference";case 3:return"ForwardChildReference"}return assert(!1),""}s.toString=n})(Cp||={});var Pp=(q=>(q[q.MVP=0]="MVP",q[q.Atomics=1]="Atomics",q[q.MutableGlobals=2]="MutableGlobals",q[q.TruncSat=4]="TruncSat",q[q.SIMD=8]="SIMD",q[q.BulkMemory=16]="BulkMemory",q[q.SignExt=32]="SignExt",q[q.ExceptionHandling=64]="ExceptionHandling",q[q.TailCall=128]="TailCall",q[q.ReferenceTypes=256]="ReferenceTypes",q[q.MultiValue=512]="MultiValue",q[q.GC=1024]="GC",q[q.Memory64=2048]="Memory64",q[q.RelaxedSIMD=4096]="RelaxedSIMD",q[q.ExtendedConst=8192]="ExtendedConst",q[q.Strings=16384]="Strings",q[q.MultiMemory=32768]="MultiMemory",q[q.StackSwitching=65536]="StackSwitching",q[q.SharedEverything=131072]="SharedEverything",q[q.FP16=262144]="FP16",q[q.BulkMemoryOpt=524288]="BulkMemoryOpt",q[q.CallIndirectOverlong=1048576]="CallIndirectOverlong",q[q.RelaxedAtomics=4194304]="RelaxedAtomics",q[q.CustomPageSizes=8388608]="CustomPageSizes",q[q.Multibyte=16777216]="Multibyte",q[q.WideArithmetic=33554432]="WideArithmetic",q[q.All=67108863]="All",q))(Pp||{}),wr=(N=>(N[N.Invalid=0]="Invalid",N[N.Block=1]="Block",N[N.If=2]="If",N[N.Loop=3]="Loop",N[N.Break=4]="Break",N[N.Switch=5]="Switch",N[N.Call=6]="Call",N[N.CallIndirect=7]="CallIndirect",N[N.LocalGet=8]="LocalGet",N[N.LocalSet=9]="LocalSet",N[N.GlobalGet=10]="GlobalGet",N[N.GlobalSet=11]="GlobalSet",N[N.Load=12]="Load",N[N.Store=13]="Store",N[N.Const=14]="Const",N[N.Unary=15]="Unary",N[N.Binary=16]="Binary",N[N.Select=17]="Select",N[N.Drop=18]="Drop",N[N.Return=19]="Return",N[N.MemorySize=20]="MemorySize",N[N.MemoryGrow=21]="MemoryGrow",N[N.Nop=22]="Nop",N[N.Unreachable=23]="Unreachable",N[N.AtomicRMW=24]="AtomicRMW",N[N.AtomicCmpxchg=25]="AtomicCmpxchg",N[N.AtomicWait=26]="AtomicWait",N[N.AtomicNotify=27]="AtomicNotify",N[N.AtomicFence=28]="AtomicFence",N[N.Pause=29]="Pause",N[N.SIMDExtract=30]="SIMDExtract",N[N.SIMDReplace=31]="SIMDReplace",N[N.SIMDShuffle=32]="SIMDShuffle",N[N.SIMDTernary=33]="SIMDTernary",N[N.SIMDShift=34]="SIMDShift",N[N.SIMDLoad=35]="SIMDLoad",N[N.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",N[N.MemoryInit=37]="MemoryInit",N[N.DataDrop=38]="DataDrop",N[N.MemoryCopy=39]="MemoryCopy",N[N.MemoryFill=40]="MemoryFill",N[N.Pop=41]="Pop",N[N.RefNull=42]="RefNull",N[N.RefIsNull=43]="RefIsNull",N[N.RefFunc=44]="RefFunc",N[N.RefEq=45]="RefEq",N[N.TableGet=46]="TableGet",N[N.TableSet=47]="TableSet",N[N.TableSize=48]="TableSize",N[N.TableGrow=49]="TableGrow",N[N.TableFill=50]="TableFill",N[N.TableCopy=51]="TableCopy",N[N.TableInit=52]="TableInit",N[N.ElemDrop=53]="ElemDrop",N[N.Try=54]="Try",N[N.TryTable=55]="TryTable",N[N.Throw=56]="Throw",N[N.Rethrow=57]="Rethrow",N[N.ThrowRef=58]="ThrowRef",N[N.TupleMake=59]="TupleMake",N[N.TupleExtract=60]="TupleExtract",N[N.RefI31=61]="RefI31",N[N.I31Get=62]="I31Get",N[N.CallRef=63]="CallRef",N[N.RefTest=64]="RefTest",N[N.RefCast=65]="RefCast",N[N.RefGetDesc=66]="RefGetDesc",N[N.BrOn=67]="BrOn",N[N.StructNew=68]="StructNew",N[N.StructGet=69]="StructGet",N[N.StructSet=70]="StructSet",N[N.StructRMW=71]="StructRMW",N[N.StructCmpxchg=72]="StructCmpxchg",N[N.ArrayNew=73]="ArrayNew",N[N.ArrayNewData=74]="ArrayNewData",N[N.ArrayNewElem=75]="ArrayNewElem",N[N.ArrayNewFixed=76]="ArrayNewFixed",N[N.ArrayGet=77]="ArrayGet",N[N.ArraySet=78]="ArraySet",N[N.ArrayLoad=79]="ArrayLoad",N[N.ArrayStore=80]="ArrayStore",N[N.ArrayLen=81]="ArrayLen",N[N.ArrayCopy=82]="ArrayCopy",N[N.ArrayFill=83]="ArrayFill",N[N.ArrayInitData=84]="ArrayInitData",N[N.ArrayInitElem=85]="ArrayInitElem",N[N.ArrayRMW=86]="ArrayRMW",N[N.ArrayCmpxchg=87]="ArrayCmpxchg",N[N.RefAs=88]="RefAs",N[N.StringNew=89]="StringNew",N[N.StringConst=90]="StringConst",N[N.StringMeasure=91]="StringMeasure",N[N.StringEncode=92]="StringEncode",N[N.StringConcat=93]="StringConcat",N[N.StringEq=94]="StringEq",N[N.StringTest=95]="StringTest",N[N.StringWTF16Get=96]="StringWTF16Get",N[N.StringSliceWTF=97]="StringSliceWTF",N[N.ContNew=98]="ContNew",N[N.ContBind=99]="ContBind",N[N.Suspend=100]="Suspend",N[N.Resume=101]="Resume",N[N.ResumeThrow=102]="ResumeThrow",N[N.StackSwitch=103]="StackSwitch",N[N.StructWait=104]="StructWait",N[N.StructNotify=105]="StructNotify",N[N.WideIntAddSub=106]="WideIntAddSub",N[N.WideIntMul=107]="WideIntMul",N))(wr||{}),Bp=(s=>(s[s.Function=0]="Function",s[s.Table=1]="Table",s[s.Memory=2]="Memory",s[s.Global=3]="Global",s[s.Tag=4]="Tag",s))(Bp||{}),Jy=(r=>(r[r.Unordered=0]="Unordered",r[r.SeqCst=1]="SeqCst",r[r.AcqRel=2]="AcqRel",r))(Jy||{}),Dn=(w=>(w[w.ClzI32=0]="ClzI32",w[w.ClzI64=1]="ClzI64",w[w.CtzI32=2]="CtzI32",w[w.CtzI64=3]="CtzI64",w[w.PopcntI32=4]="PopcntI32",w[w.PopcntI64=5]="PopcntI64",w[w.NegF32=6]="NegF32",w[w.NegF64=7]="NegF64",w[w.AbsF32=8]="AbsF32",w[w.AbsF64=9]="AbsF64",w[w.CeilF32=10]="CeilF32",w[w.CeilF64=11]="CeilF64",w[w.FloorF32=12]="FloorF32",w[w.FloorF64=13]="FloorF64",w[w.TruncF32=14]="TruncF32",w[w.TruncF64=15]="TruncF64",w[w.NearestF32=16]="NearestF32",w[w.NearestF64=17]="NearestF64",w[w.SqrtF32=18]="SqrtF32",w[w.SqrtF64=19]="SqrtF64",w[w.EqzI32=20]="EqzI32",w[w.EqzI64=21]="EqzI64",w[w.ExtendI32ToI64=22]="ExtendI32ToI64",w[w.ExtendU32ToU64=23]="ExtendU32ToU64",w[w.WrapI64ToI32=24]="WrapI64ToI32",w[w.TruncF32ToI32=25]="TruncF32ToI32",w[w.TruncF32ToI64=26]="TruncF32ToI64",w[w.TruncF32ToU32=27]="TruncF32ToU32",w[w.TruncF32ToU64=28]="TruncF32ToU64",w[w.TruncF64ToI32=29]="TruncF64ToI32",w[w.TruncF64ToI64=30]="TruncF64ToI64",w[w.TruncF64ToU32=31]="TruncF64ToU32",w[w.TruncF64ToU64=32]="TruncF64ToU64",w[w.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",w[w.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",w[w.ConvertI32ToF32=35]="ConvertI32ToF32",w[w.ConvertI32ToF64=36]="ConvertI32ToF64",w[w.ConvertU32ToF32=37]="ConvertU32ToF32",w[w.ConvertU32ToF64=38]="ConvertU32ToF64",w[w.ConvertI64ToF32=39]="ConvertI64ToF32",w[w.ConvertI64ToF64=40]="ConvertI64ToF64",w[w.ConvertU64ToF32=41]="ConvertU64ToF32",w[w.ConvertU64ToF64=42]="ConvertU64ToF64",w[w.PromoteF32ToF64=43]="PromoteF32ToF64",w[w.DemoteF64ToF32=44]="DemoteF64ToF32",w[w.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",w[w.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",w[w.Extend8I32=47]="Extend8I32",w[w.Extend16I32=48]="Extend16I32",w[w.Extend8I64=49]="Extend8I64",w[w.Extend16I64=50]="Extend16I64",w[w.Extend32I64=51]="Extend32I64",w[w.TruncSatF32ToI32=52]="TruncSatF32ToI32",w[w.TruncSatF32ToU32=53]="TruncSatF32ToU32",w[w.TruncSatF64ToI32=54]="TruncSatF64ToI32",w[w.TruncSatF64ToU32=55]="TruncSatF64ToU32",w[w.TruncSatF32ToI64=56]="TruncSatF32ToI64",w[w.TruncSatF32ToU64=57]="TruncSatF32ToU64",w[w.TruncSatF64ToI64=58]="TruncSatF64ToI64",w[w.TruncSatF64ToU64=59]="TruncSatF64ToU64",w[w.SplatI8x16=60]="SplatI8x16",w[w.SplatI16x8=61]="SplatI16x8",w[w.SplatI32x4=62]="SplatI32x4",w[w.SplatI64x2=63]="SplatI64x2",w[w.SplatF32x4=64]="SplatF32x4",w[w.SplatF64x2=65]="SplatF64x2",w[w.NotV128=66]="NotV128",w[w.AnyTrueV128=67]="AnyTrueV128",w[w.AbsI8x16=68]="AbsI8x16",w[w.NegI8x16=69]="NegI8x16",w[w.AllTrueI8x16=70]="AllTrueI8x16",w[w.BitmaskI8x16=71]="BitmaskI8x16",w[w.PopcntI8x16=72]="PopcntI8x16",w[w.AbsI16x8=73]="AbsI16x8",w[w.NegI16x8=74]="NegI16x8",w[w.AllTrueI16x8=75]="AllTrueI16x8",w[w.BitmaskI16x8=76]="BitmaskI16x8",w[w.AbsI32x4=77]="AbsI32x4",w[w.NegI32x4=78]="NegI32x4",w[w.AllTrueI32x4=79]="AllTrueI32x4",w[w.BitmaskI32x4=80]="BitmaskI32x4",w[w.AbsI64x2=81]="AbsI64x2",w[w.NegI64x2=82]="NegI64x2",w[w.AllTrueI64x2=83]="AllTrueI64x2",w[w.BitmaskI64x2=84]="BitmaskI64x2",w[w.AbsF32x4=92]="AbsF32x4",w[w.NegF32x4=93]="NegF32x4",w[w.SqrtF32x4=94]="SqrtF32x4",w[w.CeilF32x4=95]="CeilF32x4",w[w.FloorF32x4=96]="FloorF32x4",w[w.TruncF32x4=97]="TruncF32x4",w[w.NearestF32x4=98]="NearestF32x4",w[w.AbsF64x2=99]="AbsF64x2",w[w.NegF64x2=100]="NegF64x2",w[w.SqrtF64x2=101]="SqrtF64x2",w[w.CeilF64x2=102]="CeilF64x2",w[w.FloorF64x2=103]="FloorF64x2",w[w.TruncF64x2=104]="TruncF64x2",w[w.NearestF64x2=105]="NearestF64x2",w[w.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",w[w.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",w[w.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",w[w.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",w[w.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",w[w.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",w[w.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",w[w.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",w[w.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",w[w.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",w[w.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",w[w.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",w[w.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",w[w.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",w[w.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",w[w.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",w[w.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",w[w.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",w[w.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",w[w.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",w[w.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",w[w.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",w[w.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",w[w.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",w[w.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",w[w.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",w[w.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",w[w.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",w[w.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",w[w.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",w[w.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",w[w._last=141]="_last",w[w.ClzSize=142]="ClzSize",w[w.CtzSize=143]="CtzSize",w[w.PopcntSize=144]="PopcntSize",w[w.EqzSize=145]="EqzSize",w))(Dn||{}),Ii=(T=>(T[T.AddI32=0]="AddI32",T[T.SubI32=1]="SubI32",T[T.MulI32=2]="MulI32",T[T.DivI32=3]="DivI32",T[T.DivU32=4]="DivU32",T[T.RemI32=5]="RemI32",T[T.RemU32=6]="RemU32",T[T.AndI32=7]="AndI32",T[T.OrI32=8]="OrI32",T[T.XorI32=9]="XorI32",T[T.ShlI32=10]="ShlI32",T[T.ShrI32=11]="ShrI32",T[T.ShrU32=12]="ShrU32",T[T.RotlI32=13]="RotlI32",T[T.RotrI32=14]="RotrI32",T[T.EqI32=15]="EqI32",T[T.NeI32=16]="NeI32",T[T.LtI32=17]="LtI32",T[T.LtU32=18]="LtU32",T[T.LeI32=19]="LeI32",T[T.LeU32=20]="LeU32",T[T.GtI32=21]="GtI32",T[T.GtU32=22]="GtU32",T[T.GeI32=23]="GeI32",T[T.GeU32=24]="GeU32",T[T.AddI64=25]="AddI64",T[T.SubI64=26]="SubI64",T[T.MulI64=27]="MulI64",T[T.DivI64=28]="DivI64",T[T.DivU64=29]="DivU64",T[T.RemI64=30]="RemI64",T[T.RemU64=31]="RemU64",T[T.AndI64=32]="AndI64",T[T.OrI64=33]="OrI64",T[T.XorI64=34]="XorI64",T[T.ShlI64=35]="ShlI64",T[T.ShrI64=36]="ShrI64",T[T.ShrU64=37]="ShrU64",T[T.RotlI64=38]="RotlI64",T[T.RotrI64=39]="RotrI64",T[T.EqI64=40]="EqI64",T[T.NeI64=41]="NeI64",T[T.LtI64=42]="LtI64",T[T.LtU64=43]="LtU64",T[T.LeI64=44]="LeI64",T[T.LeU64=45]="LeU64",T[T.GtI64=46]="GtI64",T[T.GtU64=47]="GtU64",T[T.GeI64=48]="GeI64",T[T.GeU64=49]="GeU64",T[T.AddF32=50]="AddF32",T[T.SubF32=51]="SubF32",T[T.MulF32=52]="MulF32",T[T.DivF32=53]="DivF32",T[T.CopysignF32=54]="CopysignF32",T[T.MinF32=55]="MinF32",T[T.MaxF32=56]="MaxF32",T[T.EqF32=57]="EqF32",T[T.NeF32=58]="NeF32",T[T.LtF32=59]="LtF32",T[T.LeF32=60]="LeF32",T[T.GtF32=61]="GtF32",T[T.GeF32=62]="GeF32",T[T.AddF64=63]="AddF64",T[T.SubF64=64]="SubF64",T[T.MulF64=65]="MulF64",T[T.DivF64=66]="DivF64",T[T.CopysignF64=67]="CopysignF64",T[T.MinF64=68]="MinF64",T[T.MaxF64=69]="MaxF64",T[T.EqF64=70]="EqF64",T[T.NeF64=71]="NeF64",T[T.LtF64=72]="LtF64",T[T.LeF64=73]="LeF64",T[T.GtF64=74]="GtF64",T[T.GeF64=75]="GeF64",T[T.EqI8x16=76]="EqI8x16",T[T.NeI8x16=77]="NeI8x16",T[T.LtI8x16=78]="LtI8x16",T[T.LtU8x16=79]="LtU8x16",T[T.GtI8x16=80]="GtI8x16",T[T.GtU8x16=81]="GtU8x16",T[T.LeI8x16=82]="LeI8x16",T[T.LeU8x16=83]="LeU8x16",T[T.GeI8x16=84]="GeI8x16",T[T.GeU8x16=85]="GeU8x16",T[T.EqI16x8=86]="EqI16x8",T[T.NeI16x8=87]="NeI16x8",T[T.LtI16x8=88]="LtI16x8",T[T.LtU16x8=89]="LtU16x8",T[T.GtI16x8=90]="GtI16x8",T[T.GtU16x8=91]="GtU16x8",T[T.LeI16x8=92]="LeI16x8",T[T.LeU16x8=93]="LeU16x8",T[T.GeI16x8=94]="GeI16x8",T[T.GeU16x8=95]="GeU16x8",T[T.EqI32x4=96]="EqI32x4",T[T.NeI32x4=97]="NeI32x4",T[T.LtI32x4=98]="LtI32x4",T[T.LtU32x4=99]="LtU32x4",T[T.GtI32x4=100]="GtI32x4",T[T.GtU32x4=101]="GtU32x4",T[T.LeI32x4=102]="LeI32x4",T[T.LeU32x4=103]="LeU32x4",T[T.GeI32x4=104]="GeI32x4",T[T.GeU32x4=105]="GeU32x4",T[T.EqI64x2=106]="EqI64x2",T[T.NeI64x2=107]="NeI64x2",T[T.LtI64x2=108]="LtI64x2",T[T.GtI64x2=109]="GtI64x2",T[T.LeI64x2=110]="LeI64x2",T[T.GeI64x2=111]="GeI64x2",T[T.EqF32x4=118]="EqF32x4",T[T.NeF32x4=119]="NeF32x4",T[T.LtF32x4=120]="LtF32x4",T[T.GtF32x4=121]="GtF32x4",T[T.LeF32x4=122]="LeF32x4",T[T.GeF32x4=123]="GeF32x4",T[T.EqF64x2=124]="EqF64x2",T[T.NeF64x2=125]="NeF64x2",T[T.LtF64x2=126]="LtF64x2",T[T.GtF64x2=127]="GtF64x2",T[T.LeF64x2=128]="LeF64x2",T[T.GeF64x2=129]="GeF64x2",T[T.AndV128=130]="AndV128",T[T.OrV128=131]="OrV128",T[T.XorV128=132]="XorV128",T[T.AndnotV128=133]="AndnotV128",T[T.AddI8x16=134]="AddI8x16",T[T.AddSatI8x16=135]="AddSatI8x16",T[T.AddSatU8x16=136]="AddSatU8x16",T[T.SubI8x16=137]="SubI8x16",T[T.SubSatI8x16=138]="SubSatI8x16",T[T.SubSatU8x16=139]="SubSatU8x16",T[T.MinI8x16=140]="MinI8x16",T[T.MinU8x16=141]="MinU8x16",T[T.MaxI8x16=142]="MaxI8x16",T[T.MaxU8x16=143]="MaxU8x16",T[T.AvgrU8x16=144]="AvgrU8x16",T[T.AddI16x8=145]="AddI16x8",T[T.AddSatI16x8=146]="AddSatI16x8",T[T.AddSatU16x8=147]="AddSatU16x8",T[T.SubI16x8=148]="SubI16x8",T[T.SubSatI16x8=149]="SubSatI16x8",T[T.SubSatU16x8=150]="SubSatU16x8",T[T.MulI16x8=151]="MulI16x8",T[T.MinI16x8=152]="MinI16x8",T[T.MinU16x8=153]="MinU16x8",T[T.MaxI16x8=154]="MaxI16x8",T[T.MaxU16x8=155]="MaxU16x8",T[T.AvgrU16x8=156]="AvgrU16x8",T[T.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",T[T.ExtmulLowI16x8=158]="ExtmulLowI16x8",T[T.ExtmulHighI16x8=159]="ExtmulHighI16x8",T[T.ExtmulLowU16x8=160]="ExtmulLowU16x8",T[T.ExtmulHighU16x8=161]="ExtmulHighU16x8",T[T.AddI32x4=162]="AddI32x4",T[T.SubI32x4=163]="SubI32x4",T[T.MulI32x4=164]="MulI32x4",T[T.MinI32x4=165]="MinI32x4",T[T.MinU32x4=166]="MinU32x4",T[T.MaxI32x4=167]="MaxI32x4",T[T.MaxU32x4=168]="MaxU32x4",T[T.DotI16x8=169]="DotI16x8",T[T.ExtmulLowI32x4=170]="ExtmulLowI32x4",T[T.ExtmulHighI32x4=171]="ExtmulHighI32x4",T[T.ExtmulLowU32x4=172]="ExtmulLowU32x4",T[T.ExtmulHighU32x4=173]="ExtmulHighU32x4",T[T.AddI64x2=174]="AddI64x2",T[T.SubI64x2=175]="SubI64x2",T[T.MulI64x2=176]="MulI64x2",T[T.ExtmulLowI64x2=177]="ExtmulLowI64x2",T[T.ExtmulHighI64x2=178]="ExtmulHighI64x2",T[T.ExtmulLowU64x2=179]="ExtmulLowU64x2",T[T.ExtmulHighU64x2=180]="ExtmulHighU64x2",T[T.AddF32x4=189]="AddF32x4",T[T.SubF32x4=190]="SubF32x4",T[T.MulF32x4=191]="MulF32x4",T[T.DivF32x4=192]="DivF32x4",T[T.MinF32x4=193]="MinF32x4",T[T.MaxF32x4=194]="MaxF32x4",T[T.PminF32x4=195]="PminF32x4",T[T.PmaxF32x4=196]="PmaxF32x4",T[T.AddF64x2=197]="AddF64x2",T[T.SubF64x2=198]="SubF64x2",T[T.MulF64x2=199]="MulF64x2",T[T.DivF64x2=200]="DivF64x2",T[T.MinF64x2=201]="MinF64x2",T[T.MaxF64x2=202]="MaxF64x2",T[T.PminF64x2=203]="PminF64x2",T[T.PmaxF64x2=204]="PmaxF64x2",T[T.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",T[T.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",T[T.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",T[T.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",T[T.SwizzleI8x16=209]="SwizzleI8x16",T[T.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",T[T.RelaxedMinF32x4=211]="RelaxedMinF32x4",T[T.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",T[T.RelaxedMinF64x2=213]="RelaxedMinF64x2",T[T.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",T[T.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",T[T.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",T[T._last=216]="_last",T[T.AddSize=217]="AddSize",T[T.SubSize=218]="SubSize",T[T.MulSize=219]="MulSize",T[T.DivISize=220]="DivISize",T[T.DivUSize=221]="DivUSize",T[T.RemISize=222]="RemISize",T[T.RemUSize=223]="RemUSize",T[T.AndSize=224]="AndSize",T[T.OrSize=225]="OrSize",T[T.XorSize=226]="XorSize",T[T.ShlSize=227]="ShlSize",T[T.ShrISize=228]="ShrISize",T[T.ShrUSize=229]="ShrUSize",T[T.RotlSize=230]="RotlSize",T[T.RotrSize=231]="RotrSize",T[T.EqSize=232]="EqSize",T[T.NeSize=233]="NeSize",T[T.LtISize=234]="LtISize",T[T.LtUSize=235]="LtUSize",T[T.LeISize=236]="LeISize",T[T.LeUSize=237]="LeUSize",T[T.GtISize=238]="GtISize",T[T.GtUSize=239]="GtUSize",T[T.GeISize=240]="GeISize",T[T.GeUSize=241]="GeUSize",T))(Ii||{}),Lp=(a=>(a[a.Add=0]="Add",a[a.Sub=1]="Sub",a[a.And=2]="And",a[a.Or=3]="Or",a[a.Xor=4]="Xor",a[a.Xchg=5]="Xchg",a))(Lp||{}),Np=(o=>(o[o.ExtractLaneI8x16=0]="ExtractLaneI8x16",o[o.ExtractLaneU8x16=1]="ExtractLaneU8x16",o[o.ExtractLaneI16x8=2]="ExtractLaneI16x8",o[o.ExtractLaneU16x8=3]="ExtractLaneU16x8",o[o.ExtractLaneI32x4=4]="ExtractLaneI32x4",o[o.ExtractLaneI64x2=5]="ExtractLaneI64x2",o[o.ExtractLaneF32x4=7]="ExtractLaneF32x4",o[o.ExtractLaneF64x2=8]="ExtractLaneF64x2",o))(Np||{}),Mp=(a=>(a[a.ReplaceLaneI8x16=0]="ReplaceLaneI8x16",a[a.ReplaceLaneI16x8=1]="ReplaceLaneI16x8",a[a.ReplaceLaneI32x4=2]="ReplaceLaneI32x4",a[a.ReplaceLaneI64x2=3]="ReplaceLaneI64x2",a[a.ReplaceLaneF32x4=5]="ReplaceLaneF32x4",a[a.ReplaceLaneF64x2=6]="ReplaceLaneF64x2",a))(Mp||{}),Gp=(_=>(_[_.ShlI8x16=0]="ShlI8x16",_[_.ShrI8x16=1]="ShrI8x16",_[_.ShrU8x16=2]="ShrU8x16",_[_.ShlI16x8=3]="ShlI16x8",_[_.ShrI16x8=4]="ShrI16x8",_[_.ShrU16x8=5]="ShrU16x8",_[_.ShlI32x4=6]="ShlI32x4",_[_.ShrI32x4=7]="ShrI32x4",_[_.ShrU32x4=8]="ShrU32x4",_[_.ShlI64x2=9]="ShlI64x2",_[_.ShrI64x2=10]="ShrI64x2",_[_.ShrU64x2=11]="ShrU64x2",_))(Gp||{}),zp=(_=>(_[_.Load8Splat=0]="Load8Splat",_[_.Load16Splat=1]="Load16Splat",_[_.Load32Splat=2]="Load32Splat",_[_.Load64Splat=3]="Load64Splat",_[_.Load8x8S=4]="Load8x8S",_[_.Load8x8U=5]="Load8x8U",_[_.Load16x4S=6]="Load16x4S",_[_.Load16x4U=7]="Load16x4U",_[_.Load32x2S=8]="Load32x2S",_[_.Load32x2U=9]="Load32x2U",_[_.Load32Zero=10]="Load32Zero",_[_.Load64Zero=11]="Load64Zero",_))(zp||{}),Dp=(o=>(o[o.Load8Lane=0]="Load8Lane",o[o.Load16Lane=1]="Load16Lane",o[o.Load32Lane=2]="Load32Lane",o[o.Load64Lane=3]="Load64Lane",o[o.Store8Lane=4]="Store8Lane",o[o.Store16Lane=5]="Store16Lane",o[o.Store32Lane=6]="Store32Lane",o[o.Store64Lane=7]="Store64Lane",o))(Dp||{}),Up=(c=>(c[c.Bitselect=0]="Bitselect",c[c.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",c[c.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",c[c.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",c[c.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",c[c.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",c[c.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",c[c.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",c[c.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",c[c.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",c))(Up||{}),Zy=(r=>(r[r.NonNull=0]="NonNull",r[r.AnyConvertExtern=1]="AnyConvertExtern",r[r.ExternConvertAny=2]="ExternConvertAny",r))(Zy||{}),Yy=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Yy||{}),$y=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))($y||{}),eg=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(eg||{}),tg=(r=>(r[r.LossyUTF8Array=0]="LossyUTF8Array",r[r.WTF16Array=1]="WTF16Array",r[r.FromCodePoint=2]="FromCodePoint",r))(tg||{}),rg=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(rg||{}),ig=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(ig||{}),ng=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(ng||{}),Cl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(Cl||{}),Si=class{constructor(i,e){this.buffer=i;this.offset=e}},Gt=class t{constructor(i,e,r){this.ref=i;this.useShadowStack=e;this.sizeType=r;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(r==L.I32||r==L.I64),this.lit=ut(fo())}static create(i,e){return new t(Rf(),i,e)}static createFrom(i,e,r){let n=Mn(i),s=new t(Mm(n,i.length),e,r);return ie(changetype(n)),s}i32(i){let e=this.lit;return kf(e,i),ei(this.ref,e)}i64(i,e=0){let r=this.lit;return My(r,i64_new(i,e)),ei(this.ref,r)}usize(i){return i64_is(i)?this.sizeType==L.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==L.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return wf(e,i),ei(this.ref,e)}f64(i){let e=this.lit;return Cf(e,i),ei(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let r=0;r<16;++r)Le(e+r,unchecked(i[r]));return Pf(e,e),ei(this.ref,e)}ref_null(i){return Lh(this.ref,i)}ref_eq(i,e){return Uh(this.ref,i,e)}string_eq(i,e){return Qu(this.ref,0,i,e)}string_compare(i,e){return Qu(this.ref,1,i,e)}unary(i,e){if(i>141){let r=this.sizeType==L.I64;switch(i){case 142:i=r?1:0;break;case 143:i=r?3:2;break;case 144:i=r?5:4;break;case 145:i=r?21:20;break;default:assert(!1)}}return S_(this.ref,i,e)}binary(i,e,r){if(i>216){let n=this.sizeType==L.I64;switch(i){case 217:i=n?25:0;break;case 218:i=n?26:1;break;case 219:i=n?27:2;break;case 220:i=n?28:3;break;case 221:i=n?29:4;break;case 222:i=n?30:5;break;case 223:i=n?31:6;break;case 224:i=n?32:7;break;case 225:i=n?33:8;break;case 226:i=n?34:9;break;case 227:i=n?35:10;break;case 228:i=n?36:11;break;case 229:i=n?37:12;break;case 230:i=n?38:13;break;case 231:i=n?39:14;break;case 232:i=n?40:15;break;case 233:i=n?41:16;break;case 234:i=n?42:17;break;case 235:i=n?43:18;break;case 236:i=n?44:19;break;case 237:i=n?45:20;break;case 238:i=n?46:21;break;case 239:i=n?47:22;break;case 240:i=n?48:23;break;case 241:i=n?49:24;break;default:assert(!1)}}return w_(this.ref,i,e,r)}wide_int_add_sub(i,e,r,n,s){return F_(this.ref,i,e,r,n,s)}wide_int_mul(i,e,r){return k_(this.ref,i,e,r)}memory_size(i=C.DefaultMemory,e=!1){let r=this.allocStringCached(i);return u_(this.ref,r,e)}memory_grow(i,e=C.DefaultMemory,r=!1){let n=this.allocStringCached(e);return p_(this.ref,i,n,r)}table_size(i){let e=this.allocStringCached(i);return Kh(this.ref,e)}table_grow(i,e,r=0){let n=this.allocStringCached(i);return jh(this.ref,n,r,e)}local_get(i,e){return i_(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=Ft(i);return assert(e==L.I32||e==L.Unreachable),this.call(d.tostack,[i],e)}return i}local_tee(i,e,r,n=-1){return n==-1&&(n=Ft(e)),r&&this.useShadowStack&&(e=this.tostack(e)),n_(this.ref,i,e,n)}global_get(i,e){let r=this.allocStringCached(i);return s_(this.ref,r,e)}table_get(i,e,r){let n=this.allocStringCached(i);return qh(this.ref,n,e,r)}load(i,e,r,n,s=0,a=i,l=C.DefaultMemory){let o=this.allocStringCached(l);return f_(this.ref,i,e,s,a,n,r,o)}store(i,e,r,n,s=0,a=i,l=C.DefaultMemory){let o=this.allocStringCached(l);return g_(this.ref,i,s,a,e,r,n,o)}atomic_load(i,e,r,n=0,s=C.DefaultMemory,a=1){let l=this.allocStringCached(s);return y_(this.ref,i,n,r,e,l,a)}atomic_store(i,e,r,n,s=0,a=C.DefaultMemory,l=1){let o=this.allocStringCached(a);return x_(this.ref,i,s,e,r,n,o,l)}atomic_rmw(i,e,r,n,s,a,l=C.DefaultMemory,o=1){let u=this.allocStringCached(l);return O_(this.ref,i,e,r,n,s,a,u,o)}atomic_cmpxchg(i,e,r,n,s,a,l=C.DefaultMemory,o=1){let u=this.allocStringCached(l);return K_(this.ref,i,e,r,n,s,a,u,o)}atomic_wait(i,e,r,n,s=C.DefaultMemory){let a=this.allocStringCached(s);return X_(this.ref,i,e,r,n,a)}atomic_notify(i,e,r=C.DefaultMemory){let n=this.allocStringCached(r);return $_(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return rh(this.ref,e)}local_set(i,e,r){return r&&this.useShadowStack&&(e=this.tostack(e)),un(this.ref,i,e)}global_set(i,e){let r=this.allocStringCached(i);return a_(this.ref,r,e)}table_set(i,e,r){let n=this.allocStringCached(i);return Wh(this.ref,n,e,r)}block(i,e,r=L.None){let n=this.allocStringCached(i),s=he(e),a=Nf(this.ref,n,s,e.length,r);return ie(s),a}flatten(i,e=L.None){let r=i.length;if(r==0)return this.nop();if(r==1){let n=i[0];switch($(n)){case 19:case 56:case 23:return n}let s=se(n);return s!=L.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,r=0){let n=this.allocStringCached(i);return qf(this.ref,n,e,r)}drop(i){return bo(this.ref,i)}maybeDrop(i){let e=Ft(i);return e!=L.None&&e!=L.Unreachable?bo(this.ref,i):i}maybeDropCondition(i,e){return(ki(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],se(e)):e}loop(i,e){let r=this.allocStringCached(i);return Vf(this.ref,r,e)}if(i,e,r=0){return Gf(this.ref,i,e,r)}nop(){return U_(this.ref)}return(i=0){return D_(this.ref,i)}select(i,e,r){return L_(this.ref,r,i,e)}switch(i,e,r,n=0){let s=i.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(i[c]));let l=he(a),o=this.allocStringCached(e),u=jf(this.ref,l,s,o,r,n);return ie(l),u}call(i,e,r,n=!1){let s=this.allocStringCached(i),a=he(e),l=n?$f(this.ref,s,a,e?e.length:0,r):Yf(this.ref,s,a,e?e.length:0,r);return ie(a),l}return_call(i,e,r){return this.call(i,e,r,!0)}call_indirect(i,e,r,n,s,a=!1){let l=this.allocStringCached(i??C.DefaultTable),o=he(r),u=a?r_(this.ref,l,e,o,r?r.length:0,n,s):e_(this.ref,l,e,o,r?r.length:0,n,s);return ie(o),u}return_call_indirect(i,e,r,n,s){return this.call_indirect(i,e,r,n,s,!0)}unreachable(){return V_(this.ref)}memory_copy(i,e,r,n=C.DefaultMemory,s=C.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return Ih(this.ref,i,e,r,a,l)}memory_fill(i,e,r,n=C.DefaultMemory){let s=this.allocStringCached(n);return wh(this.ref,i,e,r,s)}try(i,e,r,n,s=null){let a=r.length,l=new Array(a);for(let h=0;h<a;++h)l[h]=this.allocStringCached(r[h]);let o=he(l),u=he(n),c=this.allocStringCached(i),f=this.allocStringCached(s),_=Hh(this.ref,c,e,o,a,u,n.length,f);return ie(u),ie(o),_}throw(i,e){let r=this.allocStringCached(i),n=he(e),s=Jh(this.ref,r,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return $h(this.ref,e)}pop(i){return nd(this.ref,i)}tuple_make(i){let e=he(i),r=ed(this.ref,e,i.length);return ie(e),r}tuple_extract(i,e){return rd(this.ref,i,e)}simd_extract(i,e,r){return ih(this.ref,i,e,r)}simd_replace(i,e,r,n){return sh(this.ref,i,e,r,n)}simd_shuffle(i,e,r){assert(r.length==16);let n=Mn(r),s=oh(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,r,n){return ch(this.ref,i,e,r,n)}simd_shift(i,e,r){return dh(this.ref,i,e,r)}simd_load(i,e,r,n,s=C.DefaultMemory){let a=this.allocStringCached(s);return gh(this.ref,i,r,n,e,a)}simd_loadstorelane(i,e,r,n,s,a,l=C.DefaultMemory){let o=this.allocStringCached(l);return xh(this.ref,i,r,n,s,e,a,o)}ref_is_null(i){return Nh(this.ref,i)}ref_as(i,e){return $o(this.ref,i,e)}ref_as_nonnull(i){return sg(se(i))?$o(this.ref,0,i):i}ref_func(i,e){let r=this.allocStringCached(i);return zh(this.ref,r,Ht(e))}i31_new(i){return sd(this.ref,i)}i31_get(i,e){return ld(this.ref,i,e)}addGlobal(i,e,r,n){let s=this.allocStringCached(i);return fm(this.ref,s,e,r,n)}getGlobal(i){let e=this.allocStringCached(i);return ip(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return ip(this.ref,e)?(_m(this.ref,e),!0):!1}addTag(i,e,r){let n=this.allocStringCached(i);return bm(this.ref,n,e,r)}getTag(i){let e=this.allocStringCached(i);return xm(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);Tm(this.ref,e)}addFunction(i,e,r,n,s){let a=this.allocStringCached(i),l=he(n),o=ti(this.ref,a,e,r,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,r){Zd(i,e,this.allocStringCached(r))}getFunction(i){let e=this.allocStringCached(i);return ri(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);xn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return ri(this.ref,e)!=0}addTemporaryFunction(i,e,r){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=he(e),a=ti(this.ref,n,je(e),i,0,0,r);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");xn(this.ref,i)}setStart(i){km(this.ref,i)}addFunctionExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return $s(this.ref,r,n)}addTableExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return sm(this.ref,r,n)}addMemoryExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return am(this.ref,r,n)}addGlobalExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return lm(this.ref,r,n)}addTagExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return om(this.ref,r,n)}removeExport(i){let e=this.allocStringCached(i);ta(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return ea(this.ref,e)!=0}addFunctionImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);em(this.ref,a,l,o,n,s)}addTableImport(i,e,r){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(r);tm(this.ref,n,s,a)}addMemoryImport(i,e,r,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(r);rm(this.ref,s,a,l,n)}addGlobalImport(i,e,r,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);im(this.ref,a,l,o,n,s)}addTagImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);nm(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,r,n,s=null,a=C.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=r.length,f=new Array(c),_=new Uint8Array(c),h=new Array(c),m=new Array(c);for(let E=0;E<c;++E){let k=unchecked(r[E]),F=k.buffer,R=k.offset;unchecked(f[E]=Mn(F)),unchecked(_[E]=0),unchecked(h[E]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(m[E]=F.length)}let x=he(f),g=Mn(_),A=he(h),I=wp(m);Fm(this.ref,i,e,o,0,x,g,A,I,c,l,!1,u),ie(I),ie(A),ie(g),ie(x);for(let E=c-1;E>=0;--E)ie(unchecked(f[E]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,r,n,s){let a=this.allocStringCached(i),l=n.length,o=new Array(l);for(let f=0;f<l;++f)unchecked(o[f]=this.allocStringCached(n[f]));let u=he(o),c=sp(this.ref,a);c?(Sm(c,e),Im(c,r)):c=np(this.ref,a,e,r,L.Funcref),Rm(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(i){let e=this.allocStringCached(i);sp(this.ref,e)||np(this.ref,e,0,t.UNLIMITED_TABLE,L.Funcref)}addCustomSection(i,e){let r=this.allocStringCached(i),n=Mn(e);Om(this.ref,r,n,e.length),ie(n)}getOptimizeLevel(){return sy()}setOptimizeLevel(i){ay(i)}getShrinkLevel(){return ly()}setShrinkLevel(i){oy(i)}getDebugInfo(){return uy()}setDebugInfo(i){py(i)}getTrapsNeverHappen(){return cy()}setTrapsNeverHappen(i){fy(i)}getClosedWorld(){return _y()}setClosedWorld(i){hy(i)}getLowMemoryUnused(){return dy()}setLowMemoryUnused(i){my(i)}getZeroFilledMemory(){return yy()}setZeroFilledMemory(i){gy(i)}getFastMath(){return by()}setFastMath(i){xy(i)}getGenerateStackIR(){return Ty()}setGenerateStackIR(i){Ay(i)}getOptimizeStackIR(){return Ey()}setOptimizeStackIR(i){vy(i)}getPassArgument(i){let e=this.allocStringCached(i),r=Sy(e);return r?Ue(r):null}setPassArgument(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);Iy(r,n)}clearPassArguments(){Ry()}getAlwaysInlineMaxSize(){return Fy()}setAlwaysInlineMaxSize(i){ky(i)}getFlexibleInlineMaxSize(){return wy()}setFlexibleInlineMaxSize(i){Cy(i)}getOneCallerInlineMaxSize(){return Py()}setOneCallerInlineMaxSize(i){By(i)}getAllowInliningFunctionsWithLoops(){return Ly()}setAllowInliningFunctionsWithLoops(i){Ny(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return Um(this.ref)}setFeatures(i){i&16&&(i|=524288),Vm(this.ref,i)}runPasses(i,e=0){let r=i.length,n=new Array(r);for(let a=0;a<r;++a)n[a]=Fl(i[a]);let s=he(n);e?Yd(e,this.ref,s,r):Cm(this.ref,s,r),ie(s);for(let a=r-1;a>=0;--a)ie(n[a])}optimize(i,e,r=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(r),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=i>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),i>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(i<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(i>=2?4:0),i>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),i>=2&&a.push("once-reduction"),(i>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(i>=3||e>=1)&&(a.push("rse"),a.push("vacuum"),a.push("code-folding"),a.push("ssa-nomerge"),a.push("local-cse"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),i>=3&&(a.push("simplify-locals-nostructure"),a.push("flatten"),a.push("vacuum"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),a.push("local-cse"),a.push("licm"),a.push("merge-locals"),a.push("reorder-locals")),a.push("optimize-instructions"),i>=2&&a.push("avoid-reinterprets"),a.push("dce"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),this.getFeatures()&512&&a.push("tuple-optimization"),i>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):i>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(i>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(i>=2||e>=1)&&a.push("local-cse"),a.push("reorder-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("coalesce-locals"),a.push("reorder-locals"),a.push("vacuum"),(i>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),i>=3&&a.push("optimize-instructions"),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(i>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(i>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),i>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),i>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),i>=2||e>=1?(a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")):a.push("precompute"),a.push("directize"),a.push("dae-optimizing"),(i>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(i>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),i>=3&&(a.push("simplify-globals"),a.push("vacuum"),a.push("precompute-propagate"),a.push("inlining-optimizing"),a.push("directize"),a.push("dae-optimizing"),a.push("local-cse"),a.push("merge-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("vacuum"),a.push("inlining"),a.push("precompute-propagate"),a.push("rse"),a.push("vacuum"),a.push("ssa-nomerge"),a.push("simplify-locals"),a.push("coalesce-locals")),a.push("optimize-instructions"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("vacuum"),this.getFeatures()&16384&&a.push("string-gathering"),a.push("simplify-globals-optimizing"),a.push("remove-unused-brs"),a.push("optimize-instructions"),a.push("vacuum")),a.push("reorder-globals"),a.push("reorder-functions"),(i>=2||e>=1)&&a.push("duplicate-function-elimination"),e>=2&&a.push("merge-similar-functions"),a.push("memory-packing"),a.push("remove-unused-module-elements"),(i>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return wm(this.ref)==1}interpret(){Gm(this.ref)}toBinary(i=null){assert(fo()>=Pm());let e=this.lit,r=Fl(i);Bm(e,this.ref,r);let n=Jt(e+0),s=Jt(e+4),a=Jt(e+8),l=new wl(H2(assert(n),s),Ue(a));return r&&ie(r),a&&ie(a),ie(n),l}toText(i=!0){let e=i?Nm(this.ref):Lm(this.ref),r=Ue(e);return e&&ie(e),r||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let r=Fl(i);return e.set(i,r),r}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let r=Ue(i);return e.set(i,r),r}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),Ff(this.ref),this.ref=0}createRelooper(){return kl.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Rt(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return Bf(i,this.ref)}runExpression(i,e,r=50,n=1){let s=Jm(this.ref,e,r,n),a=Zm(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(se(a)==se(i))}return a}isConstExpression(i){switch($(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Ri(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(Qe(i))&&this.isConstExpression(Me(i))}break}}return!1}addDebugInfoFile(i){let e=Fl(i),r=zm(this.ref,e);return ie(e),r}getDebugInfoFile(i){return Ue(Dm(this.ref,i))}setDebugLocation(i,e,r,n,s){$d(i,e,r,n,s)}};function je(t){if(!t)return L.None;switch(t.length){case 0:return L.None;case 1:return t[0]}let i=he(t),e=of(i,t.length);return ie(i),e}function Vp(t){let i=uf(t),e=ut(i<<2);pf(t,e);let r=new Array(i);for(let n=0;n<i;++n)unchecked(r[n]=Jt(e+(n<<2)));return ie(e),r}function sg(t){return cf(t)}function $(t){return Rt(t)}function se(t){return Ft(t)}function ne(t){return T_(t)}function ve(t){return i64_low(up(t))}function we(t){return i64_high(up(t))}function Op(t,i){let e=0,r=0;return i?(e=ve(t),r=we(t)):e=ne(t),i64_new(e,r)}function Ae(t){return A_(t)}function Ee(t){return E_(t)}function qp(t){let i=ut(16);v_(t,i);let e=new Uint8Array(16);for(let r=0;r<16;++r)e[r]=br(i+r);return ie(i),e}function He(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)==0:i==L.I64?(ve(t)|we(t))==0:i==L.F32?Ae(t)==0:i==L.F64?Ee(t)==0:!1}function at(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)!=0:i==L.I64?(ve(t)|we(t))!=0:i==L.F32?Ae(t)!=0:i==L.F64?Ee(t)!=0:!1}function Pl(t){if($(t)!=14)return!1;let i=se(t);if(i==L.F32){let e=Ae(t);return e==0&&f32_as_i32(e)<0}if(i==L.F64){let e=Ee(t);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function x2(t){if($(t)!=14)return!1;let i=se(t);return i==L.F32?isNaN(Ae(t)):i==L.F64?isNaN(Ee(t)):!1}function Bl(t,i){let e=$(i),r=se(i);if(r==L.F32||r==L.F64){if(e==14)return isNaN(r==L.F32?Ae(i):Ee(i));if(e==10){let n=t.runExpression(i,0,8);if(n)return isNaN(r==L.F32?Ae(n):Ee(n))}}return!1}function ht(t){return qs(t)}function Ll(t){return $r(t)}function Nl(t){return mr(t)}function Un(t){return Ws(t)}function Vn(t){return Ue(js(t))}function Ri(t){return C_(t)}function Qe(t){return hn(t)}function Me(t){return dn(t)}function On(t){return I_(t)}function Ml(t){return _n(t)}function Wp(t){return d_(t)}function T2(t){return h_(t)}function A2(t){return cn(t)}function Kp(t){return __(t)}function E2(t){return Hs(t)}function v2(t){return Qs(t)}function S2(t){return yr(t)}function I2(t){return fn(t)}function qn(t){return Ue(zs(t))}function Wn(t){return $i(t)}function Kn(t,i){return en(t,i)}function Gl(t){return tn(t)}function jn(t){return rn(t)}function Fi(t){return nn(t)}function R2(t){return Ue(Ds(t))}function F2(t){return sn(t)}function k2(t){return Ue(Us(t))}function w2(t){return an(t)}function jp(t){return mn(t)}function Hp(t){return yn(t)}function C2(t){return gn(t)}function P2(t){return bn(t)}function B2(t){return gr(t)}function Hn(t){return Ue(Yr(t))}function dt(t){return Qt(t)}function Ve(t,i){return Xt(t,i)}function L2(t){return pn(t)}function N2(t){return kt(t)}function Qp(t){return Ue(ni(t))}function M2(t){return An(t)}function G2(t){return En(t)}function z2(t){let i=Zs(t),e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=Ys(t,r));return e}function D2(t){return Ue(mm(t))}function U2(t){return ym(t)}function Xp(t){return gm(t)}function V2(t){return ra(t)}function O2(t){return Ue(Am(t))}function q2(t){return Em(t)}function W2(t){return vm(t)}var kl=class t{constructor(i,e){this.module=i;this.ref=e}static create(i){return new t(i,Wm(i.ref))}addBlock(i){return Km(this.ref,i)}addBranch(i,e,r=0,n=0){jm(i,e,r,n)}addBlockWithSwitch(i,e){return Hm(this.ref,i,e)}addBranchForSwitch(i,e,r,n=0){let s=K2(r);Qm(i,e,s,r.length,n),ie(s)}renderAndDispose(i,e){return Xm(this.ref,i,e)}},zn=class{constructor(i,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=i,this.condition=e}addOrReplaceCase(i,e){let r=this.values.indexOf(i),n=this.addCode(e);r>=0?this.indexes[r]=n:(this.values.push(i),this.indexes.push(n))}addCase(i,e){this.values.push(i),this.indexes.push(this.addCode(e))}addCode(i){let e=this.cases,r=e.indexOf(i);return r<0&&(r=e.length,e.push(i)),r}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let r=this.module,n=this.cases,s=n.length;if(!s)return r.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),c=new Array(s);for(let x=0;x<s;++x)unchecked(c[x]=`case${x}${e}`);u[0]=r.local_set(i,this.condition,!1);for(let x=0;x<l;++x){let g=unchecked(o[x]);unchecked(u[1+x]=r.br(c[g],r.binary(15,r.local_get(i,L.I32),r.i32(a[x]))))}let f=this.defaultIndex,_=`default${e}`;u[1+l]=r.br(~f?c[f]:_);let h=r.block(c[0],u);for(let x=1;x<s;++x){let g=n[x-1];g.unshift(h),h=r.block(unchecked(c[x]),g)}let m=n[s-1];return m.unshift(h),r.block(~f?null:_,m)}},Jp=(A=>(A[A.None=0]="None",A[A.Branches=1]="Branches",A[A.Calls=2]="Calls",A[A.ReadsLocal=4]="ReadsLocal",A[A.WritesLocal=8]="WritesLocal",A[A.ReadsGlobal=16]="ReadsGlobal",A[A.WritesGlobal=32]="WritesGlobal",A[A.ReadsMemory=64]="ReadsMemory",A[A.WritesMemory=128]="WritesMemory",A[A.ReadsTable=256]="ReadsTable",A[A.WritesTable=512]="WritesTable",A[A.ImplicitTrap=1024]="ImplicitTrap",A[A.IsAtomic=2048]="IsAtomic",A[A.Throws=4096]="Throws",A[A.DanglingPop=8192]="DanglingPop",A[A.TrapsNeverHappen=16384]="TrapsNeverHappen",A[A.Any=32767]="Any",A))(Jp||{});function ki(t,i){return qm(t,i)}function zl(t,i){return(ki(t,i)&-21)!=0}function Mn(t){if(!t)return 0;let i=t.length,e=ut(i);for(let r=0;r<i;++r)Le(e+r,unchecked(t[r]));return e}function K2(t){if(!t)return 0;let i=t.length,e=ut(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);na(r,s),r+=4}return e}function wp(t){if(!t)return 0;let i=t.length,e=ut(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);na(r,s),r+=4}return e}function he(t){if(!t)return 0;assert(ASC_TARGET!=2);let i=t.length,e=ut(i<<2),r=e;for(let n=0,s=i;n<s;++n){let a=unchecked(t[n]);na(r,a),r+=4}return e}function j2(t){let i=0;for(let e=0,r=t.length;e<r;++e){let n=t.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:_i(n)&&e+1<r&&ha(t.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Fl(t){if(t==null)return 0;let i=j2(t),e=ut(i+1)>>>0,r=e;if(i==t.length)for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0;Le(r++,a)}else for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0,l;a<=127?Le(r++,a):a<=2047?(Le(r++,192|a>>>6),Le(r++,128|a&63)):_i(a)&&n+1<s&&ha(l=t.charCodeAt(n+1))?(a=Fn(a,l),++n,Le(r++,240|a>>>18),Le(r++,128|a>>>12&63),Le(r++,128|a>>>6&63),Le(r++,128|a&63)):(Le(r++,224|a>>>12),Le(r++,128|a>>>6&63),Le(r++,128|a&63))}return Le(r,0),e}function H2(t,i){let e=new Uint8Array(i);for(let r=0;r<i;++r)unchecked(e[r]=br(t+r));return e}function Ue(t){if(!t)return null;let i=new Array,e,r,n,s;for(;e=br(t++);){if(!(e&128)){i.push(e);continue}if(r=br(t++)&63,(e&224)==192){i.push((e&31)<<6|r);continue}if(n=br(t++)&63,(e&240)==224?e=(e&15)<<12|r<<6|n:(s=br(t++)&63,(e&248)==240?e=(e&7)<<18|r<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(Rn|a>>>10),i.push(fi|a&1023)}}return String.fromCharCodes(i)}var wl=class{constructor(i,e){this.output=i;this.sourceMap=e}},Mt=!1;function Qn(t){if(t==p.void)return L.None;let i=ag(t);if(i)return i;let e=t;if(t=t.nonNullableType,i=t.ref)return de(Ht(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let r=Ym(0),n=new Map;$t(r,n,t);let s=ia(r),a=ut(max(4*s,8));if(!ry(r,a,a,a+4)){let l=Jt(a),o=Jt(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Cp.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let c=l[o];assert(!c.is(512));let f=Jt(a+4*o),_=de(f,!1);assert(!c.ref),c.ref=_,Mt&&console.log(` set ${c.toString()}`);let h=c.getClass();if(h){let m=h.program.module;iy(m.ref,f,m.allocStringCached(h.internalName));let x=h.members;if(x){let g=If(f),A=0;for(let I=Map_values(x),E=0,k=I.length;E<k;++E){let F=I[E];if(F.kind!=10)continue;let R=F.instance;!R||!R.isField||ny(m.ref,f,A++,m.allocStringCached(R.name))}assert(g==A)}}}return ie(a),Mt&&console.log(` finalize ${t.toString()}`),i=assert(t.ref),de(Ht(i),e.is(512))}function ag(t){switch(t.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return L.I32;case 4:case 9:return L.I64;case 5:case 10:{if(t.isInternalReference)break;return t.size==64?L.I64:L.I32}case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return de(ge.Func,t.is(512));case 14:return de(ge.Extern,t.is(512));case 16:return de(ge.Any,t.is(512));case 17:return de(ge.Eq,t.is(512));case 18:return de(ge.Struct,t.is(512));case 19:return de(ge.Array,t.is(512));case 20:return de(ge.I31,t.is(512));case 21:return de(ge.String,t.is(512));case 25:assert(!1)}return 0}function Q2(t){switch(t.kind){case 0:case 1:case 6:return Gn.I8;case 2:case 7:return Gn.I16}return Gn.NotPacked}function $t(t,i,e){if(e==p.void)return L.None;let r=ag(e);if(r||(assert(!e.is(512)),r=e.ref))return r;if(i.has(e))return Mt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Mt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=$t(t,i,a.type));let o=ia(t);ap(t,1),Mt&&console.log(` block [${o}]: ${e.toString()}`);let u=lp(t,o);r=si(t,u,!1),i.set(e,r);let c=new Array,f=new Array,_=new Array,h=n.members;if(h)for(let A=Map_values(h),I=0,E=A.length;I<E;++I){let k=A[I];if(k.kind!=10)continue;let F=k.instance;if(!F||!F.isField)continue;let R=F.type;Mt&&console.log(` field ${R.toString()}`),R.is(512)?c.push(si(t,Ht($t(t,i,R.nonNullableType)),!0)):c.push($t(t,i,R)),f.push(Q2(R)),_.push(1)}let m=he(c),x=wp(f),g=wp(_);return Mt&&console.log(` concretize [${o}]: ${e.toString()}`),ey(t,o,m,x,g,c.length),a&&(Mt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),ty(t,o,Ht(l))),ie(g),ie(x),ie(m),r}let s=e.getSignature();if(s){let a=ia(t);ap(t,1);let l=si(t,lp(t,a),!1);i.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let m=0,x=c.length;m<x;++m){let g=c[m];g.is(512)?o.push(si(t,Ht($t(t,i,g.nonNullableType)),!0)):o.push($t(t,i,g))}let f=s.returnType;u.push(f==p.void?L.None:f.is(512)?si(t,Ht($t(t,i,f.nonNullableType)),!0):$t(t,i,f));let _;if(o.length>1){let m=he(o);_=op(t,m,o.length),ie(m)}else _=o.length?o[0]:L.None;let h;if(u.length>1){let m=he(u);h=op(t,m,u.length),ie(m)}else h=u[0];return Mt&&console.log(` concretize [${a}]: ${e.toString()}`),$m(t,a,_,h),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Ul=(F=>(F[F.None=0]="None",F[F.Returns=1]="Returns",F[F.ReturnsWrapped=2]="ReturnsWrapped",F[F.ReturnsNonNull=4]="ReturnsNonNull",F[F.Throws=8]="Throws",F[F.Breaks=16]="Breaks",F[F.Continues=32]="Continues",F[F.AccessesThis=64]="AccessesThis",F[F.CallsSuper=128]="CallsSuper",F[F.Terminates=256]="Terminates",F[F.ConditionallyReturns=512]="ConditionallyReturns",F[F.ConditionallyThrows=1024]="ConditionallyThrows",F[F.ConditionallyBreaks=2048]="ConditionallyBreaks",F[F.ConditionallyContinues=4096]="ConditionallyContinues",F[F.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",F[F.MayReturnNonThis=16384]="MayReturnNonThis",F[F.UncheckedContext=32768]="UncheckedContext",F[F.CtorParamContext=65536]="CtorParamContext",F[F.InlineContext=131072]="InlineContext",F[F.AnyCategorical=511]="AnyCategorical",F[F.AnyConditional=15872]="AnyConditional",F))(Ul||{}),Xn=(s=>(s[s.None=0]="None",s[s.Constant=1]="Constant",s[s.Wrapped=2]="Wrapped",s[s.NonNull=4]="NonNull",s[s.Initialized=8]="Initialized",s))(Xn||{}),Zp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(Zp||{}),Yp=(r=>(r[r.Unknown=0]="Unknown",r[r.True=1]="True",r[r.False=2]="False",r))(Yp||{}),zt=class t{constructor(i,e=null){this.targetFunction=i;this.inlineFunction=e;this.parent=null;this.outer=null;this.flags=0;this.continueLabel=null;this.breakLabel=null;this.scopedLocals=null;this.scopedTypeAlias=null;this.localFlags=[];this.thisFieldFlags=null;this.inlineReturnLabel=null;this.trueFlows=null;this.falseFlows=null;this.tryFinallyPendingActionLocal=-1;this.tryFinallyPendingValueLocal=-1;this.tryFinallyDispatchLabel=null;this.tryFinallyReturnType=null}static createDefault(i){let e=new t(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let r=new t(i,e);return r.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&r.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&r.set(32768),r}get isInline(){return this.inlineFunction!=null}get isInTryFinally(){return this.tryFinallyPendingActionLocal>=0}getTryFinallyContext(){let i=this;for(;i;){if(i.tryFinallyPendingActionLocal>=0)return i;i=i.parent}return null}get sourceFunction(){let i=this.inlineFunction;return i||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}deriveConditionalFlags(){let i=this.flags&15872;return this.is(1)&&(i|=512),this.is(8)&&(i|=1024),this.is(16)&&(i|=2048),this.is(32)&&(i|=4096),this.is(64)&&(i|=8192),i}fork(i=!1,e=i){let r=new t(this.targetFunction,this.inlineFunction);if(r.parent=this,r.flags=this.flags,r.outer=this.outer,i?r.flags&=-2065:r.breakLabel=this.breakLabel,e?r.flags&=-4129:r.continueLabel=this.continueLabel,r.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);r.thisFieldFlags=pe(n)}else assert(!this.thisFieldFlags);return r.inlineReturnLabel=this.inlineReturnLabel,r}forkThen(i,e=!1,r=e){let n=this.fork(e,r),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let r=this.trueFlows;r||(this.trueFlows=r=new Map),r.set(i,e)}forkElse(i){let e=this.fork(),r=this.falseFlows;return r&&r.has(i)&&e.inherit(changetype(r.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let r=this.falseFlows;r||(this.falseFlows=r=new Map),r.set(i,e)}addScopedTypeAlias(i,e){let r=this.scopedTypeAlias;r||(this.scopedTypeAlias=r=new Map),r.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let r=e.scopedTypeAlias;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let r=this.sourceFunction.parent;return r.kind==5?r.flow.lookupTypeAlias(i):null}getTempLocal(i){let e=this.targetFunction.addLocal(i);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(i){let e=this.scopedLocals;return e&&e.has(i)?assert(e.get(i)):null}addScopedLocal(i,e){let r=this.getTempLocal(e);r.name=i,r.internalName=Ce(i,r.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,r.set(67108864),n.set(i,r),r}addScopedDummyLocal(i,e,r){let n=new Oe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,r.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,r,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(i)){let l=assert(s.get(i));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,i):this.program.errorRelated(2300,n.range,l.declaration.name.range,i)),l}assert(r<this.targetFunction.localsByIndex.length);let a=new Oe(i,r,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let r=assert(e.get(i));assert(r.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let r=e.scopedLocals;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let r=e.lookupLocal(i);if(r)return r;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let r=e;this.thisFieldFlags=new Map;let n=r.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=10)continue;let u=o.instance;!u||!u.isField||(u.prototype.parent!=r||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let r=this.thisFieldFlags;return r!=null&&r.has(i)?(changetype(r.get(i))&e)==e:!1}setThisFieldFlag(i,e){let r=this.thisFieldFlags;if(r)if(assert(this.sourceFunction.is(524288)),r.has(i)){let n=changetype(r.get(i));r.set(i,n|e)}else r.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,r=i.breakStack;return r?r.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,r=assert(e.breakStack);assert(r.length),assert(r.pop()==i)}inherit(i){assert(i.targetFunction==this.targetFunction);let e=i.flags;this.breakLabel!=i.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=i.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=i.localFlags,this.thisFieldFlags=i.thisFieldFlags}mergeSideEffects(i){assert(i.targetFunction==this.targetFunction);let e=this.flags,r=i.flags,n=0;e&1?n|=1:r&1?n|=512:n|=(e|r)&512,n|=e&r&2,n|=e&r&4,e&8?n|=8:r&8?n|=1024:n|=(e|r)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?r&16?n|=2048:n|=(e|r)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?r&32?n|=4096:n|=(e|r)&4096:n|=e&4096,e&64?r&64?n|=64:n|=8192:r&64&&(n|=8192),n|=(e|r)&16384,n|=e&r&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,r=e.length,n=i.localFlags,s=n.length,a=max(r,s);for(let l=0;l<a;++l){let o=l<r?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(i,e){assert(i.targetFunction==e.targetFunction),assert(i.targetFunction==this.targetFunction);let r=i.flags,n=e.flags,s=0;r&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(r|n)&512,r&2&&n&2&&(s|=2),r&4&&n&4&&(s|=4),r&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(r|n)&1024,r&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(r|n)&2048,r&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(r|n)&4096,r&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(r|n)&8192,s|=(r|n)&16384,r&128&&n&128&&(s|=128),r&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(r&256){if(!(n&256)){let o=e.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}}else if(n&256){let o=i.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,c=e.localFlags,f=c.length,_=max(u,f);for(let h=0;h<_;++h){let m=h<u?o[h]:0,x=h<f?c[h]:0;a[h]=m&x&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),f=0,_=c.length;f<_;++f){let h=c[f];(changetype(l.get(h))&1)!=0&&u.has(h)&&changetype(u.get(h))&1&&o.set(h,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let r=this.localFlags.length,n=i.localFlags.length,s=this.targetFunction;assert(s==i.targetFunction);let a=s.localsByIndex;assert(a==i.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(r,n);o<u;++o){let f=a[o].type;f.isShortIntegerValue&&this.isLocalFlag(o,2)&&!i.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),f.isNullableReference&&this.isLocalFlag(o,4)&&!i.isLocalFlag(o,4)&&(this.unsetLocalFlag(o,4),l=!0)}return l&&(assert(a.length>=e),a.length=e,this.localFlags.length>e&&(this.localFlags.length=e)),l}isNonnull(i,e){if(!e.isNullableReference)return!0;switch($(i)){case 9:{if(!Un(i))break;let r=this.targetFunction.localsByIndex[Ll(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}case 8:{let r=this.targetFunction.localsByIndex[ht(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch($(i)){case 9:{if(!Un(i))break;let r=this.targetFunction.localsByIndex[Ll(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4),this.inheritNonnullIfTrue(Nl(i),e);break}case 8:{let r=this.targetFunction.localsByIndex[ht(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4);break}case 2:{let r=Fi(i);r&&He(r)&&(this.inheritNonnullIfTrue(Gl(i),e),this.inheritNonnullIfTrue(jn(i),e));break}case 15:{switch(On(i)){case 20:case 21:{this.inheritNonnullIfFalse(Ml(i),e);break}}break}case 16:{switch(Ri(i)){case 15:case 40:{let r=Qe(i),n=Me(i);at(r)?this.inheritNonnullIfTrue(n,e):at(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Qe(i),n=Me(i);He(r)?this.inheritNonnullIfTrue(n,e):He(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=Hn(i);if(r==d.String_eq){assert(dt(i)==2);let n=Ve(i,0),s=Ve(i,1);at(n)?this.inheritNonnullIfTrue(s,e):at(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(dt(i)==2);let n=Ve(i,0),s=Ve(i,1);He(n)?this.inheritNonnullIfTrue(s,e):He(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(dt(i)==1),this.inheritNonnullIfFalse(Ve(i,0),e)):r==d.tostack&&(assert(dt(i)==1),this.inheritNonnullIfTrue(Ve(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch($(i)){case 15:{switch(On(i)){case 20:case 21:{this.inheritNonnullIfTrue(Ml(i),e);break}}break}case 2:{let r=jn(i);Fi(i)&&at(r)&&(this.inheritNonnullIfFalse(Gl(i),e),this.inheritNonnullIfFalse(Fi(i),e));break}case 16:{switch(Ri(i)){case 15:case 40:{let r=Qe(i),n=Me(i);He(r)?this.inheritNonnullIfTrue(n,e):He(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Qe(i),n=Me(i);at(r)?this.inheritNonnullIfTrue(n,e):at(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=Hn(i);if(r==d.String_eq){assert(dt(i)==2);let n=Ve(i,0),s=Ve(i,1);He(n)?this.inheritNonnullIfTrue(s,e):He(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(dt(i)==2);let n=Ve(i,0),s=Ve(i,1);at(n)?this.inheritNonnullIfTrue(s,e):at(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(dt(i)==1),this.inheritNonnullIfTrue(Ve(i,0),e)):r==d.tostack&&(assert(dt(i)==1),this.inheritNonnullIfFalse(Ve(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let r;switch($(i)){case 8:{let n=this.targetFunction.localsByIndex[ht(i)];return!this.isLocalFlag(n.index,2,!0)||Dl(n.type,e)}case 9:return assert(Un(i)),this.canOverflow(Nl(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Vn(i))));return assert(n.kind==0||n.kind==3),Dl(n.type,e)}case 16:{switch(Ri(i)){case 15:case 40:case 57:case 70:case 16:case 41:case 58:case 71:case 17:case 18:case 42:case 43:case 59:case 72:case 19:case 20:case 44:case 45:case 60:case 73:case 21:case 22:case 46:case 47:case 61:case 74:case 23:case 24:case 48:case 49:case 62:case 75:return!1;case 2:return!($(r=Qe(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Me(i),e))||$(r=Me(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Qe(i),e)));case 7:return!($(r=Qe(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e)||$(r=Me(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e));case 10:{let n=32-e.size;return $(r=Me(i))!=14||ne(r)<n}case 11:{let n=32-e.size;return this.canOverflow(Qe(i),e)&&($(r=Me(i))!=14||ne(r)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!($(r=Me(i))==14&&ne(r)>n):this.canOverflow(Qe(i),e)&&!($(r=Me(i))==14&&ne(r)>=n)}case 4:case 5:case 6:return this.canOverflow(Qe(i),e)||this.canOverflow(Me(i),e)}break}case 15:{switch(On(i)){case 20:case 21:return!1;case 0:case 2:case 4:return e.size<7;case 47:return e.size<(e.isUnsignedIntegerValue?32:8);case 49:return e.size<(e.isUnsignedIntegerValue?64:8);case 48:return e.size<(e.isUnsignedIntegerValue?32:16);case 50:return e.size<(e.isUnsignedIntegerValue?64:16);case 51:return e.size<(e.isUnsignedIntegerValue?64:32)}break}case 14:{let n=0;switch(se(i)){case L.I32:{n=ne(i);break}case L.I64:{n=ve(i);break}case L.F32:{n=i32(Ae(i));break}case L.F64:{n=i32(Ee(i));break}case L.V128:return!1;default:assert(!1)}switch(e.kind){case 0:return(n&-2)!=0;case 1:return n<i8.MIN_VALUE||n>i8.MAX_VALUE;case 2:return n<i16.MIN_VALUE||n>i16.MAX_VALUE;case 6:return n<0||n>u8.MAX_VALUE;case 7:return n<0||n>u16.MAX_VALUE}break}case 12:{let n,s=Kp(i);switch(Wp(i)){case 1:{n=s?p.i8:p.u8;break}case 2:{n=s?p.i16:p.u16;break}default:{n=s?p.i32:p.u32;break}}return Dl(n,e)}case 1:{if(!qn(i)){let n=assert(Wn(i)),s=Kn(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(jn(i),e)||this.canOverflow(assert(Fi(i)),e);case 17:return this.canOverflow(jp(i),e)||this.canOverflow(Hp(i),e);case 6:{let s=this.program.instancesByName,a=assert(Hn(i));if(s.has(a)){let l=assert(s.get(a));assert(l.kind==5);let o=l,u=o.signature.returnType;return!o.flow.is(2)||Dl(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let r=new Array;return this.is(1)&&r.push("RETURNS"),this.is(2)&&r.push("RETURNS_WRAPPED"),this.is(4)&&r.push("RETURNS_NONNULL"),this.is(8)&&r.push("THROWS"),this.is(16)&&r.push("BREAKS"),this.is(32)&&r.push("CONTINUES"),this.is(64)&&r.push("ACCESSES_THIS"),this.is(128)&&r.push("CALLS_SUPER"),this.is(256)&&r.push("TERMINATES"),this.is(512)&&r.push("CONDITIONALLY_RETURNS"),this.is(1024)&&r.push("CONDITIONALLY_THROWS"),this.is(2048)&&r.push("CONDITIONALLY_BREAKS"),this.is(4096)&&r.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&r.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&r.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${r.join(" ")}`}};function Dl(t,i){return i.isShortIntegerValue&&(!t.isIntegerValue||t.size>i.size||t.isSignedIntegerValue!=i.isSignedIntegerValue)}var Wl=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(Wl||{}),Jn=class extends We{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}resolveType(e,r,n,s=null,a=0){if(e.currentlyResolving)return this.error(100,e.range,"Recursive types"),null;e.currentlyResolving=!0;let l=null;switch(e.kind){case 1:{l=this.resolveNamedType(e,r,n,s,a);break}case 2:{l=this.resolveFunctionType(e,r,n,s,a);break}case 3:{l=this.resolveTupleType(e,r,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,r,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let _=l.identifier.text;if(s&&s.has(_)){let h=assert(s.get(_));if(o&&o.length>0&&a==0&&this.error(2315,e.range,h.toString()),e.isNullable){if(h.isReference)return h.asNullable();a==0&&this.error(204,e.range,h.toString())}return h}}let c=this.resolveTypeName(l,r,n,a);if(!c)return null;let f=c.shadowType;if(f)c=f;else{if(c.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/i32`),p.i32;if(c.kind==6||c.kind==8){let _=this.resolveClassInclTypeArguments(c,o,r,n,pe(s),e,a);return _?e.isNullable?_.type.asNullable():_.type:null}}if(c.kind==14){let _=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let g=_.type;if(e.isNullable){if(g.isReference)return g.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return g}if(u){let g=l.identifier.text;if(tr.has(g)){let A=assert(tr.get(g)),I=new Kl(this,e,n,s,a);return A(I)}}let h=_.typeParameterNodes,m=null;if(h){if(m=this.resolveTypeArguments(h,o,r,n,s=pe(s),e,a),!m)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let x=this.resolveType(_.typeNode,r,c,s,a);if(!x)return null;if(e.isNullable){if(x.isReference)return x.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return x}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,r,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,r,n,s,a),!o))return null;let u=e.parameters,c=u.length,f=new Array(c),_=0,h=!1;for(let A=0;A<c;++A){let I=u[A];switch(I.parameterKind){case 0:{_=A+1;break}case 2:{assert(A==c-1),h=!0;break}}let E=I.type;if(ke(E))return a==0&&this.error(1110,E.range),null;let k=this.resolveType(E,r,n,s,a);if(!k)return null;if(k==p.void)return a==0&&this.error(214,E.range,k.toString()),null;f[A]=k}let m=e.returnType,x;if(ke(m))a==0&&this.error(1110,m.range),x=p.void;else if(x=this.resolveType(m,r,n,s,a),!x)return null;let g=qe.create(this.program,f,x,o,_,h);return e.isNullable?g.type.asNullable():g.type}resolveTupleType(e,r,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],r,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,r,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,r,n,s=0){let a=null;if(r&&(a=r.lookupTypeAlias(e.identifier.text)),a||(a=n.lookup(e.identifier.text,!0)),!a)return s==0&&this.error(2304,e.range,e.identifier.text),null;let l=e,o=e.next;for(;o;){if(!(a=a.getMember(o.identifier.text)))return s==0&&this.error(2339,o.range,o.identifier.text,l.identifier.text),null;l=o,o=o.next}return a}resolveTypeArguments(e,r,n,s,a=new Map,l=null,o=0){let u=0,c=0;for(let m=0,x=e.length;m<x;++m)e[m].defaultType||++u,++c;let f=r?r.length:0;if(f<u||f>c)return o==0&&this.error(2558,f?le.join(r[0].range,r[f-1].range):l.range,(f<u?u:c).toString(),f.toString()),null;let _=new Array(c),h=pe(a);a.clear();for(let m=0;m<c;++m){let x=m<f?this.resolveType(r[m],n,s,h,o):this.resolveType(assert(e[m].defaultType),n,s,pe(a),o);if(!x)return null;a.set(e[m].name.text,x),_[m]=x}return _}maybeInferCall(e,r,n,s=0){let a=e.typeArguments;if(a)return r.is(65536)?this.resolveFunctionInclTypeArguments(r,a,n.sourceFunction,pe(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,r.internalName),null);if(r.is(65536)){let l=this.inferGenericTypeArguments(e,r,r.typeParameterNodes,n,s);return l?this.resolveFunction(r,l,pe(n.contextualTypeArguments),s):null}return this.resolveFunction(r,null,new Map,s)}inferGenericTypeArguments(e,r,n,s,a=0){if(!n)return null;let l=pe(s.contextualTypeArguments),o=n.length,u=new Set;for(let g=0;g<o;++g){let A=n[g].name.text;l.set(A,p.auto),u.add(A)}let c=r.functionTypeNode.parameters,f=c.length,_,h;switch(e.kind){case 10:{let g=e;_=g.args,h=g.argumentsRange;break}case 18:{let g=e;_=g.args,h=g.argumentsRange;break}default:return assert(!1),null}let m=_.length;for(let g=0;g<f;++g){let A=g<m?_[g]:c[g].initializer;if(!A){if(c[g].parameterKind==1)continue;return a==0&&(c[g].parameterKind==2?this.error(1140,h.atEnd):this.error(2554,e.range,f.toString(),m.toString())),null}let I=c[g].type;if(c[g].parameterKind==2&&(I=I.typeArguments[0]),I.hasGenericComponent(n)){let E=this.resolveExpression(A,s,p.auto,1);E&&this.propagateInferredGenericTypes(I,E,r,l,u)}}let x=new Array(o);for(let g=0;g<o;++g){let A=n[g],I=A.name.text;if(l.has(I)){let E=assert(l.get(I));if(E!=p.auto){x[g]=E;continue}let k=A.defaultType;if(k){let F=r.parent,R=null;(F.kind==7||F.kind==5)&&(R=F.contextualTypeArguments);let M=this.resolveType(k,null,r,R,a);if(!M)return null;x[g]=M;continue}}if(a==0){let E;switch(e.kind){case 10:E=e.expression.range;break;case 18:E=e.typeName.range;break;default:return assert(!1),null}this.error(1140,E.atEnd)}return null}return x}propagateInferredGenericTypes(e,r,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=r.classReference;if(u){let c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let f=u.typeArguments;if(f&&f.length==o.length){for(let _=0,h=f.length;_<h;++_)this.propagateInferredGenericTypes(o[_],f[_],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let c=assert(s.get(u));(c==p.auto||a.has(u)&&c.isAssignableTo(r))&&s.set(u,r)}}}else if(e.kind==2){let l=e,o=l.parameters,u=r.signatureReference;if(u){let c=u.parameterTypes;for(let m=0,x=min(c.length,o.length);m<x;++m)this.propagateInferredGenericTypes(o[m].type,c[m],n,s,a);let f=u.returnType;f!=p.void&&this.propagateInferredGenericTypes(l.returnType,f,n,s,a);let _=u.thisType,h=l.explicitThisType;_&&h&&this.propagateInferredGenericTypes(h,_,n,s,a);return}}}getTypeOfElement(e){let r=e.kind;if(r==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Ol(r)){let n=e.type,s=n.getClassOrWrapper(this.program);if(s){let a=s.wrappedType;a&&(n=a)}return n}return null}getElementOfType(e){let r=e.getClassOrWrapper(this.program);return r||null}lookupExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,r,n,s);case 9:return this.lookupBinaryExpression(e,r,n,s);case 10:return this.lookupCallExpression(e,r,n,s);case 12:return this.lookupCommaExpression(e,r,n,s);case 13:return this.lookupElementAccessExpression(e,r,n,s);case 15:return this.lookupFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,r,r.sourceFunction,s);case 25:return this.lookupThisExpression(e,r,n,s);case 24:return this.lookupSuperExpression(e,r,n,s);case 16:return this.lookupInstanceOfExpression(e,r,n,s);case 17:return this.lookupLiteralExpression(e,r,n,s);case 18:return this.lookupNewExpression(e,r,n,s);case 22:return this.lookupPropertyAccessExpression(e,r,n,s);case 23:return this.lookupTernaryExpression(e,r,n,s);case 28:return this.lookupUnaryPostfixExpression(e,r,n,s);case 29:return this.lookupUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}resolveExpression(e,r,n=p.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,r,n,s);return a.delete(e),l}doResolveExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,r,n,s);case 9:return this.resolveBinaryExpression(e,r,n,s);case 10:return this.resolveCallExpression(e,r,n,s);case 12:return this.resolveCommaExpression(e,r,n,s);case 13:return this.resolveElementAccessExpression(e,r,n,s);case 15:return this.resolveFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,r,n,r.sourceFunction,s);case 25:return this.resolveThisExpression(e,r,n,s);case 24:return this.resolveSuperExpression(e,r,n,s);case 16:return this.resolveInstanceOfExpression(e,r,n,s);case 17:return this.resolveLiteralExpression(e,r,n,s);case 18:return this.resolveNewExpression(e,r,n,s);case 22:return this.resolvePropertyAccessExpression(e,r,n,s);case 23:return this.resolveTernaryExpression(e,r,n,s);case 28:return this.resolveUnaryPostfixExpression(e,r,n,s);case 29:return this.resolveUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}lookupIdentifierExpression(e,r,n=r.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,r,p.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=r.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=r.outer;return o&&(l=o.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=n.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=this.program.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2304,e.range,a),null)}resolveIdentifierExpression(e,r,n=p.auto,s=r.sourceFunction,a=0){switch(e.kind){case 26:case 14:return p.bool;case 19:{let u=n.getClass();if(u)return u.type.asNullable();{let c=n.getSignature();if(c)return c.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,r,s,a);if(!l)return null;if(l.kind==4){let u=this.resolveFunction(l,null,new Map,a);if(!u)return null;l=u}let o=this.getTypeOfElement(l);return o||a==0&&this.error(225,e.range),o}ensureResolvedLazyGlobal(e,r=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,r):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,p.auto,r);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,r,n,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;let o=e.property.text;switch(l.kind){case 0:if(!this.ensureResolvedLazyGlobal(l,s))return null;case 3:case 1:{let u=l,c=u.type;if(c==p.void)return null;let f=c.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=f;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,c=u.getterInstance;if(!c){let h=assert(u.setterInstance);return this.errorRelated(229,a.range,h.declaration.range,u.name),null}let f=c.signature.returnType,_=f.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,f.toString()),null;l=_;break}case 15:{let c=l.parent;assert(c.kind==7);let f=c,_=assert(this.currentElementExpression),h=f.lookupOverload(1);if(!h)return s==0&&this.error(2329,_.range,c.internalName),null;let m=h.signature.returnType,x=m.getClassOrWrapper(this.program);if(!x)return s==0&&this.error(2339,e.property.range,o,m.toString()),null;l=x;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let f=this.resolveType(u.typeNode,null,u.parent,null,s);f&&u.setType(f)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let f=this.resolveFunction(l,null,new Map,1);if(f){let _=f.type.getClassOrWrapper(this.program);_&&(l=_)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let f=u.getMember(o);if(f){if(f.kind==10){let _=this.resolveProperty(f,s);if(!_)return null;f=_,_.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,f}switch(c=!1,u.kind){case 6:case 8:{let h=u.basePrototype;h&&(c=!0,u=h);break}case 7:case 9:{let h=u.base;h&&(c=!0,u=h);break}}}while(c);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,r,n,s=0){let a=this.lookupPropertyAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,r,n,s=0){let a=e.expression,l=this.resolveExpression(a,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o)do{let u=o.indexSignature;if(u)return this.currentThisExpression=a,this.currentElementExpression=e.elementExpression,u;o=o.base}while(o);return s==0&&this.error(2329,a.range,l.toString()),null}resolveElementAccessExpression(e,r,n,s=0){let a=this.lookupElementAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,r,n){let s=e.value;if(r){if(i64_gt(i64_add(s,i64_minimum),i64_zero)){let a=e.range;this.error(236,a,a.source.text.substring(a.start-1,a.end))}else if(i64_eq(s,i64_zero)){if(n.isFloatValue)return n.kind==11?p.f32:p.f64;if(!n.isIntegerValue)return p.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return p.bool;break}case 1:{if(i64_is_i8(s))return p.i8;break}case 6:{if(i64_is_u8(s))return p.u8;break}case 2:{if(i64_is_i16(s))return p.i16;break}case 7:{if(i64_is_u16(s))return p.u16;break}case 3:{if(i64_is_i32(s))return p.i32;break}case 8:{if(i64_is_u32(s))return p.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return p.isize32;break}return p.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return p.usize32;break}return p.usize64}case 4:return p.i64;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64}return i64_is_i32(s)?p.i32:i64_is_u32(s)?p.u32:p.i64}lookupAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),this.currentThisExpression=null,this.currentElementExpression=null,null)}case 2:return this.lookupExpression(e.expression,r,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,r,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}default:assert(!1)}return null}lookupUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 82:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 81:case 87:case 88:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Re.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Ie(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(25);if(c)return c.signature.returnType}return p.bool}case 96:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(26);if(c)return c.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Re.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Ie(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,r,n=p.auto,s=0){let a=this.resolveBinaryExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),null)}resolveBinaryExpression(e,r,n=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:return this.resolveExpression(a,r,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Re.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Re.fromBinaryToken(o));if(f)return f.signature.returnType}return p.bool}case 78:case 79:return p.bool;case 29:return p.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let f=this.resolveExpression(l,r,u,s);if(!f)return null;let _=p.commonType(u,f,n);return _||s==0&&this.error(2365,e.range,Ie(o),u.toString(),f.toString()),_}case 89:case 90:case 91:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Re.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let f=this.resolveExpression(l,r,n,s);if(!f)return null;let _=p.commonType(u,f,n);return(!_||!_.isIntegerValue)&&s==0&&this.error(2365,e.range,Ie(o),u.toString(),f.toString()),_}case 97:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),f}case 98:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f?u.is(512)&&c.is(512)?f:f.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}lookupThisExpression(e,r,n=p.auto,s=0){if(r.isInline){let o=r.lookupLocal(C.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=r.lookupLocal(C.this_);if(a||(a=r.lookupLocalInOuter(C.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=r.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,r,n=p.auto,s=0){let a=this.lookupThisExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,r,n=p.auto,s=0){if(r.isInline){let l=r.lookupLocal(C.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=r.sourceFunction.parent;if(a&&a.kind==7){let l=a.base;if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}return s==0&&this.error(2335,e.range),null}resolveSuperExpression(e,r,n=p.auto,s=0){let a=this.lookupSuperExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,r,n=p.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==p.f32?p.f32:p.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=p.auto,c=0;for(let f=0,_=o;f<_;++f){let h=l[f];if(h)if(h.kind==19&&o>1)++c;else{let m=this.resolveExpression(h,r,u);if(!m)return null;if(u==p.auto)u=m;else if(m!=u){let x=p.commonType(u,m,u);x&&(u=x)}}}if(u==p.auto)if(c==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return c>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,r,n=p.auto,s=0){let a=this.lookupLiteralExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,r,n=p.void,s=0){let a=this.resolveCallExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveCallExpression(e,r,n=p.void,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==d.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],r,n,s);let u=this.maybeInferCall(e,o,r,s);if(!u)return null;l=u}case 5:return l.signature.returnType;case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!Ol(l.kind))break;let o=this.getElementOfType(l.type);if(!o||o.kind!=7)break;l=o}case 7:{let o=l.getTypeArgumentsTo(this.program.functionPrototype);if(!(o&&o.length))break;return assert(o[0].getSignature()).returnType}}return s==0&&this.error(2349,a.range,l.internalName),null}lookupCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],r,n,s)}resolveCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],r,n,s)}lookupInstanceOfExpression(e,r,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,r,n=p.auto,s=0){return p.bool}lookupTernaryExpression(e,r,n,s=0){let a=this.resolveTernaryExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveTernaryExpression(e,r,n,s=0){let a=this.resolveExpression(e.ifThen,r,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,r,a,s);if(!l)return null;let o=p.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,r,n,s=0){let a=this.resolveTypeName(e.typeName,r,r.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,r,r.sourceFunction,pe(r.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,r,n,s=0){let a=this.lookupNewExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,r,n,s=0){let a=this.resolveFunctionExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveFunctionExpression(e,r,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,r.sourceFunction,r.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&ke(l.returnType)){let c=o.expression,f=assert(u.getSignature()),_=zt.createDefault(r.sourceFunction),h=l.parameters;assert(f.parameterTypes.length==h.length);for(let x=0,g=h.length;x<g;x++){let A=h[x],I=f.parameterTypes[x];_.addScopedDummyLocal(A.name.text,I,A)}let m=this.resolveExpression(c,_,n,s);m&&(u.signatureReference=qe.create(this.program,f.parameterTypes,m,f.thisType,f.requiredParameters,f.hasRest))}return u}resolveFunction(e,r,n=new Map,s=0){let a=null,l=r?ql(r):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let M=a.typeArguments;if(M){let z=assert(a.prototype.typeParameterNodes),D=z.length;assert(D==z.length);for(let W=0;W<D;++W){let q=z[W].name.text;n.set(q,M[W])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(r&&(c=r.length)>0){assert(u&&c==u.length);for(let R=0;R<c;++R)n.set(u[R].name.text,r[R])}else assert(!u||u.length==0);let f=null,_=o.explicitThisType;if(_){if(f=this.resolveType(_,null,e.parent,n,s),!f)return null;n.set(C.this_,f)}else a&&(f=a.type,n.set(C.this_,f));let h=o.parameters,m=h.length,x=new Array(m),g=0,A=!1;for(let R=0;R<m;++R){let M=h[R];M.parameterKind==0?g=R+1:M.parameterKind==2&&(A=!0);let z=M.type;if(ke(z))return s==0&&this.error(1110,z.range),null;let D=this.resolveType(z,null,e.parent,n,s);if(!D)return null;if(D==p.void)return s==0&&this.error(1110,z.range),null;x[R]=D}let I;if(e.is(4096))I=p.void;else if(e.is(524288))I=a.type;else{let R=o.returnType;if(ke(R))return s==0&&this.error(1110,R.range),null;let M=this.resolveType(R,null,e.parent,n,s);if(!M)return null;I=M}let E=qe.create(this.program,x,I,f,g,A),k=e.name;l.length&&(k+=`<${l}>`);let F=new gt(k,e,r,E,n);if(e.setResolvedInstance(l,F),a){let R=F.declaration.name.text,M=a.base;if(M){let z=M.getMember(R);if(z){this.discoveredOverride=!0;let D=!0;if(F.isAny(6144)){if(z.kind==10){let W=this.resolveProperty(z,s);if(W)if(F.is(2048)){let q=W.getterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(D=!1)}else{assert(F.is(4096));let q=W.setterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(D=!1)}}}else if(F.is(524288))D=!1;else if(z.kind==4){let W=z,q=W.typeParameterNodes,ee=q!=null&&q.length>0,Y=r!=null&&r.length>0;if(ee!=Y)this.errorRelated(242,F.identifierAndSignatureRange,z.identifierAndSignatureRange,R),D=!1;else{let te=this.resolveFunction(W,r,new Map,1);te&&F.signature.isAssignableTo(te.signature,!0)&&(D=!1)}}D&&this.errorRelated(2394,F.identifierAndSignatureRange,z.identifierAndSignatureRange)}}}return F}resolveFunctionInclTypeArguments(e,r,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),c=u.typeArguments;if(c){let f=assert(u.prototype.typeParameterNodes),_=c.length;assert(_==f.length);for(let h=0;h<_;++h)s.set(f[h].name.text,c[h])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),r,null,n,s,a,l),!o)return null}else if(r&&r.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let r=e.prototype.unboundOverrides;if(!r)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(r),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let c=u.parent,f;if(assert(c.kind==6||c.kind==8),f=c.instances,!!f)for(let _=Map_values(f),h=0,m=_.length;h<m;++h){let x=_[h];if(!x.isAssignableTo(n))continue;let g=null;if(e.isAny(6144)){let A=e.declaration.name.text,I=assert(x.getMember(A));assert(I.kind==10);let E=this.resolveProperty(I);if(!E)continue;e.is(2048)?g=E.getterInstance:(assert(e.is(4096)),g=E.setterInstance)}else{let A=x.getMember(u.name);if(A){assert(A.kind==4);let I=A;I.is(65536)==e.is(65536)&&(g=this.resolveFunction(I,e.typeArguments))}}g&&s.add(g)}}return Set_values(s)}resolveClass(e,r,n=new Map,s=0){let a=r?ql(r):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new $n(o,e,r):l=new rr(o,e,r),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),r){let h=assert(e.typeParameterNodes),m=h.length,x=r.length;assert(x==m);for(let g=0;g<x;++g)n.set(h[g].name.text,r[g])}else{let h=e.typeParameterNodes;assert(!(h&&h.length>0))}l.contextualTypeArguments=n;let c=!1,f=e.basePrototype;if(f){let h=f;do{if(h==e)return this.error(2506,e.identifierNode.range,e.internalName),null;h=h.basePrototype}while(h);let m=assert(e.extendsNode),x=this.resolveClassInclTypeArguments(f,m.typeArguments,null,e.parent,pe(n),m,s);if(!x)return null;l.setBase(x),u.has(x)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let _=e.interfacePrototypes;if(_)for(let h=0,m=_.length;h<m;++h){let x=_[h],g=x;do{if(g==e)return this.error(2506,e.identifierNode.range,e.internalName),null;g=g.basePrototype}while(g);let A=assert(e.implementsNodes[h]),I=this.resolveClassInclTypeArguments(x,A.typeArguments,null,e.parent,pe(n),A,s);if(!I)return null;assert(I.kind==9),l.addInterface(I),u.has(I)&&(c=!0)}return c||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,r,n,s,a,l){let o=!1;return r.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,r.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):r.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,r.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):r.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):r.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,r){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let h=Set_values(l),m=0,x=h.length;m<x;++m){let g=h[m];assert(!s.has(g));let A=g.members;if(A)for(let I=Map_keys(A),E=0,k=I.length;E<k;++E){let F=unchecked(I[E]),R=assert(A.get(F)),M=e.getMember(F);M&&!this.checkOverrideVisibility(F,M,e,R,g,r)||(n.set(F,R),a.set(F,R))}}let o=0,u=e.base;if(u){let h=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let m=u.members;if(m)for(let x=Map_keys(m),g=0,A=x.length;g<A;++g){let I=unchecked(x[g]),E=assert(m.get(I));if(h&&E.is(32))continue;let k=e.getMember(I);k&&!this.checkOverrideVisibility(I,k,e,E,u,r)||(n.set(I,E),E.is(128)?a.set(I,E):a.delete(I))}o=u.nextMemoryOffset}let c=e.prototype,f=c.instanceMembers;if(f)for(let h=Map_values(f),m=0,x=h.length;m<x;++m){let g=unchecked(h[m]),A=g.name;if(u){let I=u.getMember(A);I&&this.checkOverrideVisibility(A,g,e,I,u,r)}switch(g.kind){case 4:{let I=g.toBound(e);e.add(I.name,I);break}case 10:{let I=g.toBound(e);if(I.isField){let E=this.resolveProperty(I,r);if(E){let k=E.type;if(k==p.void)break;if(k.isExternalReference){this.error(100,assert(I.typeNode).range,"Reference typed fields");break}let F=!0;if(u){let M=u.getMember(I.name);if(M&&M.kind==10){let z=M,D=this.resolveProperty(z,r);if(D&&D.isField){if(D.type!=E.type){this.errorRelated(2416,E.identifierNode.range,D.identifierNode.range,E.name,e.internalName,u.internalName);break}E.memoryOffset=D.memoryOffset,F=!1}}}if(F){let M=k.byteSize;assert(Ct(M));let z=M-1;o&z&&(o=(o|z)+1),E.memoryOffset=o,o+=M}I.instance=E,e.add(I.name,I);let R=assert(I.fieldDeclaration).type;R&&this.program.checkTypeSupported(k,R)}}else e.add(I.name,I);break}default:assert(!1)}!g.is(128)&&!g.is(65536)&&a.delete(A)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let h=Map_keys(a),m=0,x=h.length;m<x;++m){let g=h[m],A=assert(a.get(g));this.errorRelated(2515,e.identifierNode.range,A.identifierNode.range,e.internalName,g,A.parent.internalName)}e.nextMemoryOffset=o;{let h=e.getMember(C.constructor);if(h&&h.parent==e){assert(h.kind==4);let m=this.resolveFunction(h,null,assert(e.contextualTypeArguments),r);m&&(e.constructorInstance=m)}}}let _=c.operatorOverloadPrototypes;for(let h=Map_keys(_),m=0,x=h.length;m<x;++m){let g=unchecked(h[m]),A=assert(_.get(g));if(assert(g!=0),A.is(65536))continue;let I;if(A.is(262144)){let k=A.toBound(e);I=this.resolveFunction(k,null,new Map,r)}else I=this.resolveFunction(A,null,new Map,r);if(!I)continue;let E=e.operatorOverloads;if(E||(e.operatorOverloads=E=new Map),I.is(262144))switch(g){case 27:case 28:case 29:case 30:{let k=I.signature.returnType;k.isAssignableTo(e.type)||r==0&&this.error(2322,A.functionTypeNode.returnType.range,k.toString(),e.type.toString())}}if(E.has(g))r==0&&this.error(213,I.declaration.range);else if(E.set(g,I),g==1||g==2){let k=e.indexSignature;k||(e.indexSignature=k=new Yn(e)),g==1&&k.setType(I.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let h=Set_values(s),m=0,x=h.length;m<x;++m){let g=h[m],A=g.base==e,I=g.interfaces;if(I){let E=!1;for(let k=Set_values(I),F=0,R=k.length;F<R;++F){let M=k[F];M==e?A=!0:s.has(M)&&(E=!0)}if(E)continue}A&&this.finishResolveClass(g,r)}}resolveClassInclTypeArguments(e,r,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let f=e;f&&!c;f=f.basePrototype)c=f.constructorPrototype;if(!r&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),r,n,s,a,l,o),!u)return null}else if(r&&r.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,r=0){let n=e.instance;if(n)return n;e.instance=n=new Zn(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,r);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,r);l&&(n.setterInstance=l,n.is(4194304)||(assert(l.signature.parameterTypes.length==1),n.setType(l.signature.parameterTypes[0])))}return n.checkVisibility(this),n}ensureOneTypeArgument(e,r=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(r==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};function og(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}var ec=class{constructor(){this.name="";this.typeName="";this.isArray=!1}};function wi(t,i){return Math.imul(t^i&255,16777619)>>>0}function lg(t,i){let e=i.length;t=wi(t,e&255),t=wi(t,e>>>8&255),t=wi(t,e>>>16&255),t=wi(t,e>>>24&255);for(let r=0;r<e;++r)t=wi(t,i.charCodeAt(r));return t>>>0}function ug(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=lg(i,t[e].name),i=lg(i,t[e].typeName),i=wi(i,t[e].isArray?1:0);return i>>>0}function sc(t){let i=new Array,e=t.members;for(let r=0,n=e.length;r<n;++r){let s=e[r];if(s.kind!=55)continue;let a=s;if(a.is(32))continue;let l=a.type;if(l==null||!(l instanceof ce))continue;let o=l,u=o.name.identifier.text,c=new ec;c.name=a.name.text;let f=o.typeArguments;u=="Array"&&f!=null&&f.length==1&&f[0]instanceof ce?(c.typeName=f[0].name.identifier.text,c.isArray=!0):c.typeName=u,i.push(c)}return i}var tc=class{constructor(){this.oldType="";this.newType="";this.fnName="";this.oldVersion=0;this.delta=!1}};function jl(t){return t==null||!(t instanceof ce)?null:t.name.identifier.text}function ac(t,i){let e=new Array;for(let r=0,n=t.length;r<n;++r){let s=t[r];if(s.isLibrary)continue;let a=s.statements;for(let l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=56)continue;let c=u;if(!Hl(c.decorators,37))continue;let f=c.signature,_=null,h=null,m=!1;if(f.parameters.length==1)_=jl(f.parameters[0].type),h=jl(f.returnType);else if(f.parameters.length==2)_=jl(f.parameters[0].type),h=jl(f.parameters[1].type),m=!0;else continue;if(_==null||h==null)continue;let x=new tc;x.oldType=_,x.newType=h,x.fnName=c.name.text,x.delta=m,x.oldVersion=i.has(_)?ug(i.get(_)):og(_),e.push(x)}}return e}function X2(t){switch(t){case"Documents":return 0;case"View":return 1;case"Events":return 2;case"Counter":return 3;case"Membership":return 4;case"Unique":return 5;case"Capacity":return 6;default:return-1}}function Hl(t,i){if(t==null)return!1;for(let e=0,r=t.length;e<r;++e)if(t[e].decoratorKind==i)return!0;return!1}var rc=class{constructor(){this.name="";this.family=0;this.keyType="";this.valueType=""}},ic=class{constructor(){this.name="";this.collections=new Array}},nc=class{constructor(){this.bytes=new Array}u8(i){this.bytes.push(i&255)}u16(i){this.u8(i&255),this.u8(i>>>8&255)}u32(i){this.u8(i&255),this.u8(i>>>8&255),this.u8(i>>>16&255),this.u8(i>>>24&255)}str(i){this.u32(i.length);for(let e=0,r=i.length;e<r;++e)this.u8(i.charCodeAt(e)&255)}toBytes(){let i=this.bytes.length,e=new Uint8Array(i);for(let r=0;r<i;++r)e[r]=this.bytes[r];return e}};function $p(t,i){let e=t.typeArguments;if(e!=null&&e.length>i){let r=e[i];if(r instanceof ce)return r.name.identifier.text}return""}function pg(t){let i=new Array,e=t.sources,r=new Map;for(let l=0,o=e.length;l<o;++l){let u=e[l];if(u.isLibrary)continue;let c=u.statements;for(let f=0,_=c.length;f<_;++f){let h=c[f];if(h.kind!=52)continue;let m=h;Hl(m.decorators,15)&&r.set(m.name.text,sc(m))}}let n=ac(e,r),s=new Map;for(let l=0,o=n.length;l<o;++l){let u=n[l];s.has(u.newType)||s.set(u.newType,new Array),s.get(u.newType).push(u.oldVersion)}for(let l=0,o=e.length;l<o;++l){let u=e[l];if(u.isLibrary)continue;let c=u.statements;for(let f=0,_=c.length;f<_;++f){let h=c[f];if(h.kind!=52)continue;let m=h;if(!Hl(m.decorators,31))continue;let x=new ic;x.name=m.name.text;let g=m.members;for(let A=0,I=g.length;A<I;++A){let E=g[A];if(E.kind!=55)continue;let k=E;if(!Hl(k.decorators,32))continue;let F=k.type;if(F==null||!(F instanceof ce))continue;let R=F,M=X2(R.name.identifier.text);if(M<0)continue;let z=new rc;z.name=k.name.text,z.family=M,M==3||M==6?(z.keyType=$p(R,0),z.valueType="i64"):(z.keyType=$p(R,0),z.valueType=$p(R,1)),x.collections.push(z)}x.collections.length>0&&i.push(x)}}if(i.length==0)return null;let a=new nc;a.u16(1),a.u16(i.length);for(let l=0,o=i.length;l<o;++l){let u=i[l];a.str(u.name),a.u16(u.collections.length);for(let c=0,f=u.collections.length;c<f;++c){let _=u.collections[c];a.str(_.name),a.u8(_.family),a.str(_.keyType),a.str(_.valueType);let h=og(_.valueType),m=r.has(_.valueType),x=m?r.get(_.valueType):new Array,g=m?ug(x):h;a.u32(h),a.u32(g),a.u32(0),a.u8(0),a.u8(0),a.u16(x.length);for(let I=0,E=x.length;I<E;++I)a.str(x[I].name),a.str(x[I].typeName),a.u8(x[I].isArray?1:0);let A=s.has(_.valueType)?s.get(_.valueType):new Array;a.u16(A.length);for(let I=0,E=A.length;I<E;++I)a.u32(A[I])}}return a.toBytes()}function dg(t){switch(t){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function cg(t,i){let e=dg(t);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function fg(t){let i=dg(t);return i.length!=0?"__r.read"+i+"()":t+".decodeFrom(__r)"}function J2(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function _g(t,i){switch(t){case"bool":case"boolean":case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":case"string":return"JSON.of<"+t+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function hg(t,i){switch(t){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+t+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+t+">"+i+".asI64()";case"f32":case"f64":return"<"+t+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"("+i+".isArray() ? new u128("+i+".at(0).asU64(),"+i+".at(1).asU64()) : u128.fromString("+i+".asString()))";case"i128":return"("+i+".isArray() ? new i128("+i+".at(0).asU64(),"+i+".at(1).asI64()) : i128.fromString("+i+".asString()))";case"u256":return"("+i+".isArray() ? new u256("+i+".at(0).asU64(),"+i+".at(1).asU64(),"+i+".at(2).asU64(),"+i+".at(3).asU64()) : u256.fromString("+i+".asString()))";case"i256":return"("+i+".isArray() ? new i256("+i+".at(0).asI64(),"+i+".at(1).asI64(),"+i+".at(2).asI64(),"+i+".at(3).asI64()) : i256.fromString("+i+".asString()))";default:return t+".fromJSON("+i+")"}}var ts=class{constructor(i,e){this.source=i;this.reportNode=e}};function Z2(t,i){switch(t){case"Documents":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="delete"?"Delete":i=="getDelete"?"GetDelete":"";case"View":return i=="get"||i=="require"?"ViewGet":i=="getMany"?"GetMany":i=="publish"?"ViewPublish":"";case"Unique":return i=="lookup"?"UniqueLookup":i=="claim"?"UniqueClaim":i=="release"?"UniqueRelease":"";case"Counter":return i=="get"?"CounterGet":i=="add"?"CounterAdd":"";case"Events":return i=="append"?"Append":i=="latest"?"Latest":"";case"Membership":return i=="contains"?"MembershipContains":i=="list"?"MembershipList":i=="add"?"MembershipAdd":i=="remove"?"MembershipRemove":"";case"Capacity":return i=="available"?"CapacityAvailable":i=="reserve"?"CapacityReserve":i=="confirm"?"CapacityConfirm":i=="cancel"?"CapacityCancel":i=="setTotal"?"CapacitySetTotal":"";default:return""}}function lc(t){return t=="Get"||t=="GetMany"||t=="Exists"||t=="ViewGet"||t=="CounterGet"||t=="UniqueLookup"||t=="Latest"||t=="MembershipContains"||t=="MembershipList"||t=="CapacityAvailable"}function Y2(t,i){switch(t){case 33:return lc(i);case 34:return lc(i)||i=="Create"||i=="Patch"||i=="Delete"||i=="GetDelete"||i=="Append"||i=="CounterAdd"||i=="UniqueClaim"||i=="UniqueRelease"||i=="MembershipAdd"||i=="MembershipRemove"||i=="CapacityReserve"||i=="CapacityConfirm"||i=="CapacityCancel";case 36:return lc(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 38:return!1;case 37:return!1;default:return!0}}function $2(t){switch(t){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 38:return"admin";case 37:return"migrate";default:return"?"}}function e1(t){switch(t){case 33:return"a query is read-only";case 34:return"an action cannot publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 38:return"an admin has no request-path data access";case 37:return"a migration is a pure value transform and cannot access the database";default:return"not permitted in this kind"}}var rs=class extends We{constructor(e=null,r=[]){super(e);this.backlog=new Array;this.seenlog=new Set;this.donelog=new Set;this.onComment=null;this.currentSource=null;this.dependees=new Map;this.restImportedSources=new Set;this.ratelimitRouteCounter=0;this.toildbCodecReads=new Map;this.toildbCodecClasses=new Map;this.toildbWoven=!1;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=r}parseFile(e,r,n){let s=vr(r),a=Nn(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let c=this.dependees,f=null;c.has(a)&&(f=assert(c.get(a))),this.error(6054,f?f.reportNode.range:null,r);return}let l=new fe(n?1:r.startsWith(pt)?r.indexOf(rt,pt.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new kr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let c=this.parseTopLevelStatement(o,null);c?u.push(c):this.skipStatement(o)}}parseTopLevelStatement(e,r=null){let n=r?r.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let g=this.parseDecorator(e);if(!g){this.skipStatement(e);continue}a?a.push(g):a=[g]}let l=0,o=0,u=0,c=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,c=e.pos));let f=0,_=0,h=r!=null&&r.is(32768);e.skip(12)?h?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),f=s,_=e.pos,n|=32772):h&&(n|=32768);let m=null,x=e.peek();switch(s<0&&(s=e.nextTokenPos),x){case 8:{e.next(),n|=8,e.skip(17)?m=this.parseEnum(e,n,a,s):m=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),m=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),m=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),m=this.parseFunction(e,n,a,s),a=null;break}case 0:{let g=e.mark();e.next();let A=e.tokenPos,I=e.pos;if(e.peekOnNewLine()){e.reset(g),m=this.parseStatement(e,!0);break}let E=e.peek();if(E!=7){E==31&&this.error(1242,e.range(A,I)),e.reset(g),m=this.parseStatement(e,!0);break}else e.discard(g);n|=128}case 7:case 31:{e.next(),m=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let g=e.mark();e.next(),e.peek(1)==115?(e.discard(g),m=this.parseNamespace(e,n,a,s),a=null):(e.reset(g),m=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?m=this.parseExportImport(e,s):m=this.parseImport(e);break}case 55:{let g=e.mark();e.next(),e.peek(1)==115?(e.discard(g),m=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(g),m=this.parseStatement(e,!0));break}case 35:{let g=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(g),m=this.parseModuleDeclaration(e,n)):(e.reset(g),m=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(_&&this.error(1120,e.range(f,_)),m=this.parseExportDefaultAlias(e,s,u,c),u=c=0):m=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),_&&this.error(1042,e.range(f,_),"declare"),r?this.error(2695,e.range(s)):m=this.parseStatement(e,!0));break}}if(a)for(let g=0,A=a.length;g<A;++g)this.error(1206,a[g].range);if(c&&m!=null)switch(m.kind){case 53:case 56:case 52:case 58:case 60:return G.createExportDefaultStatement(m,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return m}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let r=this.dependees;return r.has(e)?assert(r.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.weaveDataMigrations(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear(),this.restImportedSources.clear()}weaveDataMigrations(){if(this.toildbWoven||(this.toildbWoven=!0,this.toildbCodecClasses.size==0))return;let e=new Map;for(let a=0,l=this.sources.length;a<l;++a){let o=this.sources[a];if(o.isLibrary)continue;let u=o.statements;for(let c=0,f=u.length;c<f;++c){let _=u[c];if(_.kind!=52)continue;let h=_;(this.hasDecoratorKind(h.decorators,15)||this.hasDecoratorKind(h.decorators,29))&&e.set(h.name.text,sc(h))}}let r=ac(this.sources,e);if(r.length==0)return;let n=new Map,s=new Array;for(let a=0,l=r.length;a<l;++a){let o=r[a];n.has(o.newType)||(n.set(o.newType,new Array),s.push(o.newType)),n.get(o.newType).push(o)}for(let a=0,l=s.length;a<l;++a)this.weaveDecodeInto(s[a],n.get(s[a]),e)}weaveDecodeInto(e,r,n){if(!this.toildbCodecClasses.has(e))return;let s=this.toildbCodecClasses.get(e),a=this.toildbCodecReads.get(e),l=s.members,o=new Array;for(let _=0,h=l.length;_<h;++_){let m=l[_];if(m.kind!=55)continue;let x=m;x.is(32)||o.push(x.name.text)}let u="";for(let _=0,h=o.length;_<h;++_)u+="this."+o[_]+"=__m."+o[_]+";";let c=n.has(e)?n.get(e):new Array,f="";for(let _=0,h=r.length;_<h;++_){let m=r[_],x="const __old="+m.oldType+".decode(__buf);",g;if(m.delta){let A=n.has(m.oldType)?n.get(m.oldType):new Array,I="";for(let E=0,k=c.length;E<k;++E){let F=c[E];for(let R=0,M=A.length;R<M;++R){let z=A[R];if(z.name==F.name&&z.typeName==F.typeName&&z.isArray==F.isArray){I+="this."+F.name+"=__old."+F.name+";";break}}}g=I+m.fnName+"(__old,this);"}else g="const __m="+m.fnName+"(__old);"+u;f+="if(__toildbReadVersion()==<i64>"+m.oldVersion.toString()+"){"+x+g+"__toildbMarkMigrated();return;}"}for(let _=l.length-1;_>=0;--_){let h=l[_];h.kind==59&&h.name.text=="decodeInto"&&l.splice(_,1)}this.injectClassMember(s,"decodeInto(__buf: Uint8Array): void{"+f+"const __r=new DataReader(__buf);__r.readU32();"+a.replace(/__o\./g,"this.")+"}")}checkToilDbKinds(){let e=new Map;for(let r=0,n=this.sources.length;r<n;++r)this.collectDbCollections(this.sources[r].statements,e);if(e.size)for(let r=0,n=this.sources.length;r<n;++r)this.checkDbFunctions(this.sources[r].statements,e)}collectDbCollections(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==52){let l=a;if(this.hasDecoratorKind(l.decorators,31)){let o=new Map,u=l.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];if(_.kind!=55)continue;let h=_;if(!this.hasDecoratorKind(h.decorators,32))continue;let m=h.type;m==null||!(m instanceof ce)||o.set(h.name.text,m.name.identifier.text)}o.size&&r.set(l.name.text,o)}}else a.kind==60&&this.collectDbCollections(a.members,r)}}checkDbFunctions(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==56||a.kind==59){let l=a,o=this.dbFunctionKind(l.decorators),u=l.body;o!=-1&&u!=null&&this.walkDbStmt(u,o,r)}else a.kind==60?this.checkDbFunctions(a.members,r):a.kind==52&&this.checkDbFunctions(a.members,r)}}dbFunctionKind(e){if(e==null)return-1;for(let r=0,n=e.length;r<n;++r){let s=e[r].decoratorKind;if(s==33||s==34||s==35||s==36||s==38||s==37)return s}return-1}walkDbStmt(e,r,n){switch(e.kind){case 31:{let s=e.statements;for(let a=0,l=s.length;a<l;++a)this.walkDbStmt(s[a],r,n);break}case 39:this.walkDbExpr(e.expression,r,n);break;case 44:{let s=e.value;s&&this.walkDbExpr(s,r,n);break}case 48:{let s=e.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;o&&this.walkDbExpr(o,r,n)}break}case 42:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.ifTrue,r,n),s.ifFalse&&this.walkDbStmt(s.ifFalse,r,n);break}case 40:{let s=e;s.initializer&&this.walkDbStmt(s.initializer,r,n),s.condition&&this.walkDbExpr(s.condition,r,n),s.incrementor&&this.walkDbExpr(s.incrementor,r,n),this.walkDbStmt(s.body,r,n);break}case 41:{let s=e;this.walkDbExpr(s.iterable,r,n),this.walkDbStmt(s.body,r,n);break}case 50:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.body,r,n);break}case 34:{let s=e;this.walkDbStmt(s.body,r,n),this.walkDbExpr(s.condition,r,n);break}case 45:{let s=e;this.walkDbExpr(s.condition,r,n);let a=s.cases;for(let l=0,o=a.length;l<o;++l){let u=a[l].statements;for(let c=0,f=u.length;c<f;++c)this.walkDbStmt(u[c],r,n)}break}case 46:this.walkDbExpr(e.value,r,n);break;case 47:{let s=e;this.walkDbStmtList(s.bodyStatements,r,n),s.catchStatements&&this.walkDbStmtList(s.catchStatements,r,n),s.finallyStatements&&this.walkDbStmtList(s.finallyStatements,r,n);break}default:break}}walkDbStmtList(e,r,n){for(let s=0,a=e.length;s<a;++s)this.walkDbStmt(e[s],r,n)}walkDbExpr(e,r,n){switch(e.kind){case 10:{let s=e;this.checkDbCall(s,r,n),this.walkDbExpr(s.expression,r,n);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkDbExpr(a[l],r,n);break}case 18:{let s=e.args;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}case 22:this.walkDbExpr(e.expression,r,n);break;case 13:{let s=e;this.walkDbExpr(s.expression,r,n),this.walkDbExpr(s.elementExpression,r,n);break}case 9:{let s=e;this.walkDbExpr(s.left,r,n),this.walkDbExpr(s.right,r,n);break}case 29:this.walkDbExpr(e.operand,r,n);break;case 28:this.walkDbExpr(e.operand,r,n);break;case 21:this.walkDbExpr(e.expression,r,n);break;case 8:this.walkDbExpr(e.expression,r,n);break;case 16:this.walkDbExpr(e.expression,r,n);break;case 23:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbExpr(s.ifThen,r,n),this.walkDbExpr(s.ifElse,r,n);break}case 12:{let s=e.expressions;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}default:break}}checkDbCall(e,r,n){let s=e.expression;if(s.kind!=22)return;let a=s,l=a.expression;if(l.kind!=22)return;let o=l,u=o.expression;if(u.kind!=7)return;let c=n.get(u.text);if(c==null)return;let f=c.get(o.property.text);if(f==null)return;let _=a.property.text,h=Z2(f,_);h.length!=0&&(Y2(r,h)||this.error(102,a.property.range,"ToilDB: a @"+$2(r)+" function may not call '."+_+"' on '"+u.text+"."+o.property.text+"' ("+e1(r)+")"))}parseTypeName(e){let r=G.createSimpleTypeName(e.readIdentifier(),e.range()),n=r;for(;e.skip(68);)if(e.skip(115)){let s=G.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return r}parseType(e,r=!0,n=!1){let s=e.next(),a=e.tokenPos,l;if(s==64){let o=e.skip(64),u=this.tryParseFunctionType(e);if(u){if(o&&!e.skip(65))return n||this.error(1005,e.range(),")"),null;l=u}else{if(o||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(r){let c=this.parseType(e,!1,n);if(!c)return null;if(!e.skip(65))return n||this.error(1005,e.range(e.pos),")"),null;l=c,l.range.start=a,l.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(s==45){let o=this.parseType(e,r,n);if(!o)return null;l=o,l.range.start=a}else if(s==66&&this.options&&this.options.hasFeature(512)){let o=[],u=[],c=!1;if(!e.skip(67)){do{let f=null,_=e.mark();if(e.skip(115)){let m=e.readIdentifier(),x=e.range();e.skip(100)?(f=G.createIdentifierExpression(m,x),c=!0):e.reset(_)}let h=this.parseType(e,!0,n);if(!h)return null;o.push(h),u.push(f)}while(e.skip(71));if(!e.skip(67))return n||this.error(1005,e.range(e.pos),"]"),null}l=G.createTupleType(o,c?u:null,!1,e.range(a,e.pos))}else if(s==58)l=G.createNamedType(G.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(s==51)l=G.createNamedType(G.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(s==53||s==20)l=G.createNamedType(G.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(s==38)l=G.createNamedType(G.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(s==116)e.readString(),l=G.createNamedType(G.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));else if(s==115){let o=this.parseTypeName(e);if(!o)return null;let u=null;if(e.skip(72)){do{let c=this.parseType(e,!0,n);if(!c)return null;u?u.push(c):u=[c]}while(e.skip(71));if(!e.skip(73))return n||this.error(1005,e.range(e.pos),">"),null}u||(u=[]),l=G.createNamedType(o,u,!1,e.range(a,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(93);){let o=this.parseType(e,!0,!1);if(!o)return null;let u=l.kind==1&&l.isNull,c=o.kind==1&&o.isNull;if(!u&&!c)return n||this.error(100,o.range,"union types"),null;c?(l.isNullable=!0,l.range.end=o.range.end):u?(o.range.start=l.range.start,o.isNullable=!0,l=o):l.range.end=o.range.end}for(;e.skip(66);){let o=e.tokenPos;if(!e.skip(67))return n||this.error(1005,e.range(),"]"),null;let u=e.range(o,e.pos),c=!1;if(e.skip(93))if(e.skip(38))c=!0;else return n||this.error(100,e.range(),"union types"),null;if(l=G.createNamedType(G.createSimpleTypeName("Array",u),[l],c,e.range(a,e.pos)),c)break}return l}tryParseFunctionType(e){let r=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(65))l=!0,e.discard(r),s=[];else{l=!1;do{let f=-1,_=0;if(e.skip(69)&&(f=e.tokenPos,l=!0,e.discard(r),_=2),e.skip(51))if(f<0&&(f=e.tokenPos),e.skip(100)){l=!0,e.discard(r);let h=this.parseType(e,!1);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),this.tryParseSignatureIsSignature=!0,null;a=h}else return e.reset(r),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){f<0&&(f=e.tokenPos);let h=G.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(99)&&(l=!0,e.discard(r),_==2?this.error(1047,e.range()):_=1),e.skip(100)){l=!0,e.discard(r);let m=this.parseType(e);if(!m)return this.tryParseSignatureIsSignature=l,null;let x=G.createParameter(_,h,m,null,e.range(f,e.pos));s?s.push(x):s=[x]}else if(l||e.peek()==71&&(l=!0,e.discard(r)),l){let m=G.createParameter(_,h,G.createOmittedType(e.range(e.pos)),null,e.range(f,e.pos));s?s.push(m):s=[m],this.error(1110,m.type.range)}else s||(o=h,u=_)}else{if(l){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(r);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(71));if(!e.skip(65))return l?this.error(1005,e.range(),")"):e.reset(r),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(80)){if(!l&&(l=!0,e.discard(r),o)){let f=G.createParameter(u,o,G.createOmittedType(o.range.atEnd),null,o.range);s?s.push(f):s=[f],this.error(1110,f.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(r),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),G.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let r=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=G.createIdentifierExpression(n,e.range(r,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=G.createPropertyAccessExpression(s,G.createIdentifierExpression(n,e.range()),e.range(r,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(64)){if(a=this.parseArguments(e),a)return G.createDecorator(s,a,e.range(r,e.pos))}else return G.createDecorator(s,null,e.range(r,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,r,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,r,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(71));let o=G.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(70)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,r,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=G.createIdentifierExpression(e.readIdentifier(),e.range());kp(a.text)&&this.error(1003,a.range);let l=r;e.skip(95)&&(l|=16384);let o=null;e.skip(100)&&(o=this.parseType(e,!0));let u=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let c=le.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),G.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,r,n,s){if(e.next()!=115)return this.error(1003,e.range()),null;let a=G.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let l=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let o=G.createEnumDeclaration(a,n,r,l,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,e.skip(70),o}parseEnumValue(e,r){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=G.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(101)&&(s=this.parseExpression(e,2),!s)?null:G.createEnumValueDeclaration(n,r,s,le.join(n.range,e.range()))}parseReturn(e){let r=e.tokenPos,n=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=G.createReturnStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),a}parseTypeParameters(e){let r=new Array,n=!1,s=e.tokenPos;for(;!e.skip(73);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),r.push(a),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return r.length||this.error(1098,e.range(s,e.pos)),r}parseTypeParameter(e){if(e.next()==115){let r=G.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(101)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return G.createTypeParameter(r,n,s,le.join(r.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,r=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(100)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(71))return e.skip(65)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,r);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,r=!1){let n=!1,s=!1,a=null,l=0;if(r&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=100?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(69)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=G.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(99))&&n&&this.error(1047,o.range),e.skip(100)){if(u=this.parseType(e),!u)return null}else u=G.createOmittedType(e.range(e.pos));let c=null;if(e.skip(101)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let f=G.createParameter(n?2:s?1:0,o,u,c,le.join(assert(a),e.range()));return f.flags|=l,f}else this.error(1003,e.range());return null}parseFunction(e,r,n,s){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=G.createIdentifierExpression(e.readIdentifier(),e.range()),l=-1,o=null;if(e.skip(72)){if(l=e.tokenPos,o=this.parseTypeParameters(e),!o)return null;r|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;l<0&&(l=e.tokenPos);let u=this.parseParameters(e);if(!u)return null;let c=this.parseParametersThis,f=(r&4096)!=0;f&&(u.length!=1&&this.error(1049,a.range),u.length>0&&u[0].initializer&&this.error(1052,a.range)),r&2048&&u.length&&this.error(1054,a.range);let _=null;if(e.skip(100)&&(_=this.parseType(e,!0,f),!_))return null;_||(_=G.createOmittedType(e.range(e.pos)),f||this.error(1110,_.range));let h=G.createFunctionType(u,_,c,!1,e.range(l,e.pos)),m=null;if(e.skip(62)){if(r&32768&&this.error(1183,e.range()),m=this.parseBlockStatement(e,!1),!m)return null}else r&32768||this.error(2391,e.range(e.pos));let x=G.createFunctionDeclaration(a,n,r,o,h,m,0,e.range(s,e.pos));return x.overriddenModuleName=this.currentModuleName,e.skip(70),x}parseFunctionExpression(e){let r=e.tokenPos,n,s=0;if(e.token==24){if(e.skipIdentifier()?n=G.createIdentifierExpression(e.readIdentifier(),e.range()):n=G.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),n=G.createEmptyIdentifierExpression(e.range(e.tokenPos));let a=e.pos,l=this.parseParameters(e);return l?this.parseFunctionExpressionCommon(e,n,l,this.parseParametersThis,s,r,a):null}parseFunctionExpressionCommon(e,r,n,s,a,l=-1,o=-1){l<0&&(l=r.range.start),o<0&&(o=l);let u=null;if(a!=2&&e.skip(100)){if(u=this.parseType(e),!u)return null}else u=G.createOmittedType(e.range(e.pos));if(a&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let c=G.createFunctionType(n,u,s,!1,e.range(o,e.pos)),f=null;if(a)if(e.skip(62))f=this.parseBlockStatement(e,!1);else{let h=this.parseExpression(e,2);h&&(f=G.createExpressionStatement(h))}else{if(!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;f=this.parseBlockStatement(e,!1)}if(!f)return null;let _=G.createFunctionDeclaration(r,null,0,null,c,f,a,e.range(l,e.pos));return G.createFunctionExpression(_)}parseClassOrInterface(e,r,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=G.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;r|=65536}let u=null;if(e.skip(19)){let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;u=h}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;a||(c||(c=[]),c.push(h))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let f=new Array,_;if(a?(assert(!c),_=G.createInterfaceDeclaration(l,n,r,o,u,null,f,e.range(s,e.pos))):_=G.createClassDeclaration(l,n,r,o,u,c,f,e.range(s,e.pos)),!e.skip(63))do{let h=this.parseClassMember(e,_);if(h)h.kind==66?_.indexSignature=h:(assert(h instanceof De),f.push(h));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));if(_.range.end=e.pos,_.overriddenModuleName=this.currentModuleName,!a&&n!=null)for(let h=0,m=n.length;h<m;++h){let x=n[h].decoratorKind;x==15?this.injectDataCodec(_):x==29?(this.injectDataCodec(_),this.injectUserBinding(_)):x==18?this.injectRestController(_,n[h]):x==31&&this.injectDatabaseBinding(_)}return _}injectDatabaseBinding(e){let r=e.name.text,n=e.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=55)continue;let o=l;if(!this.hasDecoratorKind(o.decorators,32))continue;let u=o.type;if(u==null||!(u instanceof ce))continue;let c=u;o.is(32)&&(o.flags&=-33);let f=c.name.identifier.text,_=o.name.text,h=c.typeArguments,m=f;if(h!=null&&h.length>0){let A="";for(let I=0,E=h.length;I<E;++I){I>0&&(A+=", ");let k=h[I];k instanceof ce&&(A+=k.name.identifier.text)}m=f+"<"+A+">"}let x=r+"/"+_,g="__db_"+_;this.injectClassMember(e,"private static "+g+": "+m+" | null = null;"),this.injectClassMember(e,"static get "+_+"(): "+m+" { if ("+r+"."+g+" == null) "+r+"."+g+" = new "+m+'(__toildbResolve("'+x+'")); return '+r+"."+g+"!; }")}this.injectTopLevelStatements(e,`// @ts-ignore: injected
|
|
15
|
+
`,u," \u2502 "];for(;s<t.start;)r.charCodeAt(s)==9?(c.push(" "),s+=2):(c.push(" "),s++);if(mi()&&c.push(ba),t.start==t.end)c.push("^");else for(;s++<t.end;){let f=r.charCodeAt(s);if(f==9)c.push("~~");else if(Pt(f)){c.push(s==t.start+1?"^":"~");break}else c.push("~")}return mi()&&c.push(wn),c.push(`
|
|
16
|
+
`),c.push(u),c.push(" \u2514\u2500 in "),c.push(e.normalizedPath),c.join("")}var We=class{constructor(i=null){this.seen=new Map;i||(i=[]),this.diagnostics=i}emitDiagnostic(i,e,r,n,s=null,a=null,l=null){let o=Ta.create(i,e,s,a,l);if(r&&(o=o.withRange(r)),n&&(o.relatedRange=n),r){let u=this.seen;if(u.has(r.source)){let c=assert(u.get(r.source));if(c.has(r.start)){let f=assert(c.get(r.start));for(let _=0,h=f.length;_<h;++_)if(f[_].equals(o))return;f.push(o)}else c.set(r.start,[o])}else{let c=new Map;c.set(r.start,[o]),u.set(r.source,c)}}this.diagnostics.push(o)}pedantic(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,0,e,null,r,n,s)}pedanticRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,0,e,r,n,s,a)}info(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,1,e,null,r,n,s)}infoRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,1,e,r,n,s,a)}warning(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,2,e,null,r,n,s)}warningRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,2,e,r,n,s,a)}error(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,3,e,null,r,n,s)}errorRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,3,e,r,n,s,a)}};var st=(V=>(V[V.Source=0]="Source",V[V.NamedType=1]="NamedType",V[V.FunctionType=2]="FunctionType",V[V.TupleType=3]="TupleType",V[V.TypeName=4]="TypeName",V[V.TypeParameter=5]="TypeParameter",V[V.Parameter=6]="Parameter",V[V.Identifier=7]="Identifier",V[V.Assertion=8]="Assertion",V[V.Binary=9]="Binary",V[V.Call=10]="Call",V[V.Class=11]="Class",V[V.Comma=12]="Comma",V[V.ElementAccess=13]="ElementAccess",V[V.False=14]="False",V[V.Function=15]="Function",V[V.InstanceOf=16]="InstanceOf",V[V.Literal=17]="Literal",V[V.New=18]="New",V[V.Null=19]="Null",V[V.Omitted=20]="Omitted",V[V.Parenthesized=21]="Parenthesized",V[V.PropertyAccess=22]="PropertyAccess",V[V.Ternary=23]="Ternary",V[V.Super=24]="Super",V[V.This=25]="This",V[V.True=26]="True",V[V.Constructor=27]="Constructor",V[V.UnaryPostfix=28]="UnaryPostfix",V[V.UnaryPrefix=29]="UnaryPrefix",V[V.Compiled=30]="Compiled",V[V.Block=31]="Block",V[V.Break=32]="Break",V[V.Continue=33]="Continue",V[V.Do=34]="Do",V[V.Empty=35]="Empty",V[V.Export=36]="Export",V[V.ExportDefault=37]="ExportDefault",V[V.ExportImport=38]="ExportImport",V[V.Expression=39]="Expression",V[V.For=40]="For",V[V.ForOf=41]="ForOf",V[V.If=42]="If",V[V.Import=43]="Import",V[V.Return=44]="Return",V[V.Switch=45]="Switch",V[V.Throw=46]="Throw",V[V.Try=47]="Try",V[V.Variable=48]="Variable",V[V.Void=49]="Void",V[V.While=50]="While",V[V.Module=51]="Module",V[V.ClassDeclaration=52]="ClassDeclaration",V[V.EnumDeclaration=53]="EnumDeclaration",V[V.EnumValueDeclaration=54]="EnumValueDeclaration",V[V.FieldDeclaration=55]="FieldDeclaration",V[V.FunctionDeclaration=56]="FunctionDeclaration",V[V.ImportDeclaration=57]="ImportDeclaration",V[V.InterfaceDeclaration=58]="InterfaceDeclaration",V[V.MethodDeclaration=59]="MethodDeclaration",V[V.NamespaceDeclaration=60]="NamespaceDeclaration",V[V.TypeDeclaration=61]="TypeDeclaration",V[V.VariableDeclaration=62]="VariableDeclaration",V[V.Decorator=63]="Decorator",V[V.ExportMember=64]="ExportMember",V[V.SwitchCase=65]="SwitchCase",V[V.IndexSignature=66]="IndexSignature",V[V.Comment=67]="Comment",V))(st||{}),G=class t{constructor(i,e){this.kind=i;this.range=e}static createSimpleTypeName(i,e){return new gi(t.createIdentifierExpression(i,e),null,e)}static createNamedType(i,e,r,n){return new ce(i,e,r,n)}static createFunctionType(i,e,r,n,s){return new Sr(i,e,r,n,s)}static createTupleType(i,e,r,n){return new Ea(i,e,r,n)}static createOmittedType(i){return new ce(t.createSimpleTypeName("",i),null,!1,i)}static createTypeParameter(i,e,r,n){return new va(i,e,r,n)}static createParameter(i,e,r,n,s){return new bi(i,e,r,n,s)}static createDecorator(i,e,r){return new Sa(Ye.fromNode(i),i,e,r)}static createComment(i,e,r){return new Ia(i,e,r)}static createIdentifierExpression(i,e,r=!1){return new Ke(i,r,e)}static createEmptyIdentifierExpression(i){return new Ke("",!1,i)}static createArrayLiteralExpression(i,e){return new Ir(i,e)}static createAssertionExpression(i,e,r,n){return new Ra(i,e,r,n)}static createBinaryExpression(i,e,r,n){return new Fa(i,e,r,n)}static createCallExpression(i,e,r,n){return new ka(i,e,r,n)}static createClassExpression(i){return new wa(i)}static createCommaExpression(i,e){return new Ca(i,e)}static createConstructorExpression(i){return new Pa(i)}static createElementAccessExpression(i,e,r){return new Ba(i,e,r)}static createFalseExpression(i){return new Ha(i)}static createFloatLiteralExpression(i,e){return new La(i,e)}static createFunctionExpression(i){return new Na(i)}static createInstanceOfExpression(i,e,r){return new Ma(i,e,r)}static createIntegerLiteralExpression(i,e){return new Bt(i,e)}static createNewExpression(i,e,r,n){return new Ga(i,e,r,n)}static createNullExpression(i){return new za(i)}static createObjectLiteralExpression(i,e,r){return new _t(i,e,r)}static createOmittedExpression(i){return new Da(i)}static createParenthesizedExpression(i,e){return new Ua(i,e)}static createPropertyAccessExpression(i,e,r){return new Lt(i,e,r)}static createRegexpLiteralExpression(i,e,r){return new Va(i,e,r)}static createTernaryExpression(i,e,r,n){return new Oa(i,e,r,n)}static createStringLiteralExpression(i,e){return new Ze(i,e)}static createSuperExpression(i){return new qa(i)}static createTemplateLiteralExpression(i,e,r,n,s){return new Wa(i,e,r,n,s)}static createThisExpression(i){return new Ka(i)}static createTrueExpression(i){return new ja(i)}static createUnaryPostfixExpression(i,e,r){return new Qa(i,e,r)}static createUnaryPrefixExpression(i,e,r){return new Xa(i,e,r)}static createCompiledExpression(i,e,r){return new Ja(i,e,r)}static createBlockStatement(i,e){return new Ya(i,e)}static createBreakStatement(i,e){return new $a(i,e)}static createClassDeclaration(i,e,r,n,s,a,l,o){return new Pn(i,e,r,n,s,a,l,o)}static createContinueStatement(i,e){return new el(i,e)}static createDoStatement(i,e,r){return new tl(i,e,r)}static createEmptyStatement(i){return new rl(i)}static createEnumDeclaration(i,e,r,n,s){return new il(i,e,r,n,s)}static createEnumValueDeclaration(i,e,r,n){return new nl(i,e,r,n)}static createExportStatement(i,e,r,n){return new ll(i,e,r,n)}static createExportDefaultStatement(i,e){return new ol(i,e)}static createExportImportStatement(i,e,r){return new sl(i,e,r)}static createExportMember(i,e,r){return e||(e=i),new al(i,e,r)}static createExpressionStatement(i){return new ul(i)}static createIfStatement(i,e,r,n){return new _l(i,e,r,n)}static createImportStatement(i,e,r){return new Ln(i,null,e,r)}static createWildcardImportStatement(i,e,r){return new Ln(null,i,e,r)}static createImportDeclaration(i,e,r){return e||(e=i),new hl(e,i,r)}static createInterfaceDeclaration(i,e,r,n,s,a,l,o){return new dl(i,e,r,n,s,a,l,o)}static createFieldDeclaration(i,e,r,n,s,a){return new pl(i,e,r,n,s,-1,a)}static createForStatement(i,e,r,n,s){return new cl(i,e,r,n,s)}static createForOfStatement(i,e,r,n){return new fl(i,e,r,n)}static createFunctionDeclaration(i,e,r,n,s,a,l,o){return new Bn(i,e,r,n,s,a,l,o)}static createIndexSignature(i,e,r,n){return new Za(i,e,r,n)}static createMethodDeclaration(i,e,r,n,s,a,l){return new Rr(i,e,r,n,s,a,l)}static createNamespaceDeclaration(i,e,r,n,s){return new ml(i,e,r,n,s)}static createReturnStatement(i,e){return new yl(i,e)}static createSwitchStatement(i,e,r){return new bl(i,e,r)}static createSwitchCase(i,e,r){return new gl(i,e,r)}static createThrowStatement(i,e){return new xl(i,e)}static createTryStatement(i,e,r,n,s){return new Tl(i,e,r,n,s)}static createTypeDeclaration(i,e,r,n,s,a){return new El(i,e,r,n,s,a)}static createModuleDeclaration(i,e,r){return new Al(i,e,r)}static createVariableStatement(i,e,r){return new Sl(i,e,r)}static createVariableDeclaration(i,e,r,n,s,a){return new vl(i,e,r,n,s,a)}static createVoidStatement(i,e){return new Il(i,e)}static createWhileStatement(i,e,r){return new Rl(i,e,r)}isLiteralKind(i){return this.kind==17&&changetype(this).literalKind==i}get isNumericLiteral(){if(this.kind==17)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 17:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 19:case 26:case 14:return!0}return!1}isAccessOn(i){let e=changetype(this);return e.kind==10&&(e=e.expression),e.kind==22&&e.expression.kind==i}get isAccessOnThis(){return this.isAccessOn(25)}get isAccessOnSuper(){return this.isAccessOn(24)}get isEmpty(){return this.kind==35}},yi=class extends G{constructor(e,r,n){super(e,n);this.isNullable=r;this.currentlyResolving=!1}hasGenericComponent(e){if(this.kind==1){let r=changetype(this);if(!r.name.next){let n=r.typeArguments;if(n&&n.length>0){for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else{let s=r.name.identifier.text;for(let a=0,l=e.length;a<l;++a)if(e[a].name.text==s)return!0}}}else if(this.kind==2){let r=changetype(this),n=r.parameters;for(let a=0,l=n.length;a<l;++a)if(n[a].type.hasGenericComponent(e))return!0;if(r.returnType.hasGenericComponent(e))return!0;let s=r.explicitThisType;if(s&&s.hasGenericComponent(e))return!0}else if(this.kind==3){let n=changetype(this).elements;for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else assert(!1);return!1}},gi=class extends G{constructor(e,r,n){super(4,n);this.identifier=e;this.next=r}},ce=class extends yi{constructor(e,r,n,s){super(1,n,s);this.name=e;this.typeArguments=r}get hasTypeArguments(){let e=this.typeArguments;return e!=null&&e.length>0}get isNull(){return this.name.identifier.text=="null"}},Sr=class extends yi{constructor(e,r,n,s,a){super(2,s,a);this.parameters=e;this.returnType=r;this.explicitThisType=n}},Ea=class extends yi{constructor(e,r,n,s){super(3,n,s);this.elements=e;this.elementNames=r}},va=class extends G{constructor(e,r,n,s){super(5,s);this.name=e;this.extendsType=r;this.defaultType=n}},Fr=(r=>(r[r.Default=0]="Default",r[r.Optional=1]="Optional",r[r.Rest=2]="Rest",r))(Fr||{}),bi=class extends G{constructor(e,r,n,s,a){super(6,a);this.parameterKind=e;this.name=r;this.type=n;this.initializer=s;this.implicitFieldDeclaration=null;this.flags=0}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},Ye=(Q=>(Q[Q.Custom=0]="Custom",Q[Q.Global=1]="Global",Q[Q.Operator=2]="Operator",Q[Q.OperatorBinary=3]="OperatorBinary",Q[Q.OperatorPrefix=4]="OperatorPrefix",Q[Q.OperatorPostfix=5]="OperatorPostfix",Q[Q.Unmanaged=6]="Unmanaged",Q[Q.Final=7]="Final",Q[Q.Inline=8]="Inline",Q[Q.External=9]="External",Q[Q.ExternalJs=10]="ExternalJs",Q[Q.Builtin=11]="Builtin",Q[Q.Lazy=12]="Lazy",Q[Q.Unsafe=13]="Unsafe",Q[Q.Main=14]="Main",Q[Q.Data=15]="Data",Q[Q.Remote=16]="Remote",Q[Q.Service=17]="Service",Q[Q.Rest=18]="Rest",Q[Q.Route=19]="Route",Q[Q.Get=20]="Get",Q[Q.Post=21]="Post",Q[Q.Put=22]="Put",Q[Q.Delete=23]="Delete",Q[Q.Patch=24]="Patch",Q[Q.Head=25]="Head",Q[Q.Options=26]="Options",Q[Q.Cache=27]="Cache",Q[Q.Auth=28]="Auth",Q[Q.User=29]="User",Q[Q.Ratelimit=30]="Ratelimit",Q[Q.Database=31]="Database",Q[Q.Collection=32]="Collection",Q[Q.Query=33]="Query",Q[Q.Action=34]="Action",Q[Q.Job=35]="Job",Q[Q.Derive=36]="Derive",Q[Q.Migrate=37]="Migrate",Q[Q.Admin=38]="Admin",Q))(Ye||{});(i=>{function t(e){if(e.kind==7){let r=e.text;switch(assert(r.length),r.charCodeAt(0)){case 97:{if(r=="auth")return 28;if(r=="action")return 34;if(r=="admin")return 38;break}case 98:{if(r=="builtin")return 11;break}case 99:{if(r=="cache")return 27;if(r=="collection")return 32;break}case 100:{if(r=="data")return 15;if(r=="del")return 23;if(r=="database")return 31;if(r=="derive")return 36;break}case 101:{if(r=="external")return 9;break}case 102:{if(r=="final")return 7;break}case 103:{if(r=="global")return 1;if(r=="get")return 20;break}case 104:{if(r=="head")return 25;break}case 105:{if(r=="inline")return 8;break}case 106:{if(r=="job")return 35;break}case 108:{if(r=="lazy")return 12;break}case 109:{if(r=="main")return 14;if(r=="migrate")return 37;break}case 111:{if(r=="operator")return 2;if(r=="options")return 26;break}case 112:{if(r=="post")return 21;if(r=="put")return 22;if(r=="patch")return 24;break}case 113:{if(r=="query")return 33;break}case 114:{if(r=="ratelimit")return 30;if(r=="remote")return 16;if(r=="rest")return 18;if(r=="route")return 19;break}case 115:{if(r=="service")return 17;break}case 117:{if(r=="unmanaged")return 6;if(r=="unsafe")return 13;if(r=="user")return 29;break}}}else if(e.kind==22){let r=e,n=r.expression;if(n.kind==7){let s=n.text;assert(s.length);let a=r.property.text;if(assert(a.length),s=="operator")switch(a.charCodeAt(0)){case 98:{if(a=="binary")return 3;break}case 112:{if(a=="prefix")return 4;if(a=="postfix")return 5;break}}else if(s=="external")switch(a.charCodeAt(0)){case 106:{if(a=="js")return 10;break}}}}return 0}i.fromNode=t})(Ye||={});var Sa=class extends G{constructor(e,r,n,s){super(63,s);this.decoratorKind=e;this.name=r;this.args=n}},Fp=(r=>(r[r.Line=0]="Line",r[r.Triple=1]="Triple",r[r.Block=2]="Block",r))(Fp||{}),Ia=class extends G{constructor(e,r,n){super(67,n);this.commentKind=e;this.text=r}},ye=class extends G{},Ke=class extends ye{constructor(e,r,n){super(7,n);this.text=e;this.isQuoted=r}},Yt=(l=>(l[l.Float=0]="Float",l[l.Integer=1]="Integer",l[l.String=2]="String",l[l.Template=3]="Template",l[l.RegExp=4]="RegExp",l[l.Array=5]="Array",l[l.Object=6]="Object",l))(Yt||{}),ft=class extends ye{constructor(e,r){super(17,r);this.literalKind=e}},Ir=class extends ft{constructor(e,r){super(5,r);this.elementExpressions=e}},Ti=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(Ti||{}),Ra=class extends ye{constructor(e,r,n,s){super(8,s);this.assertionKind=e;this.expression=r;this.toType=n}},Fa=class extends ye{constructor(e,r,n,s){super(9,s);this.operator=e;this.left=r;this.right=n}},ka=class extends ye{constructor(e,r,n,s){super(10,s);this.expression=e;this.typeArguments=r;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,r;return e&&(r=e.length)?le.join(e[0].range,e[r-1].range):this.expression.range}get argumentsRange(){let e=this.args,r=e.length;return r?le.join(e[0].range,e[r-1].range):this.expression.range}},wa=class extends ye{constructor(e){super(11,e.range);this.declaration=e}},Ca=class extends ye{constructor(e,r){super(12,r);this.expressions=e}},Pa=class extends Ke{constructor(i){super("constructor",!1,i),this.kind=27}},Ba=class extends ye{constructor(e,r,n){super(13,n);this.expression=e;this.elementExpression=r}},La=class extends ft{constructor(e,r){super(0,r);this.value=e}},Na=class extends ye{constructor(e){super(15,e.range);this.declaration=e}},Ma=class extends ye{constructor(e,r,n){super(16,n);this.expression=e;this.isType=r}},Bt=class extends ft{constructor(e,r){super(1,r);this.value=e}},Ga=class extends ye{constructor(e,r,n,s){super(18,s);this.typeName=e;this.typeArguments=r;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,r;return e&&(r=e.length)>0?le.join(e[0].range,e[r-1].range):this.typeName.range}get argumentsRange(){let e=this.args,r=e.length;return r?le.join(e[0].range,e[r-1].range):this.typeName.range}},za=class extends Ke{constructor(i){super("null",!1,i),this.kind=19}},_t=class extends ft{constructor(e,r,n){super(6,n);this.names=e;this.values=r}},Da=class extends ye{constructor(i){super(20,i)}},Ua=class extends ye{constructor(e,r){super(21,r);this.expression=e}},Lt=class extends ye{constructor(e,r,n){super(22,n);this.expression=e;this.property=r}},Va=class extends ft{constructor(e,r,n){super(4,n);this.pattern=e;this.patternFlags=r}},Oa=class extends ye{constructor(e,r,n,s){super(23,s);this.condition=e;this.ifThen=r;this.ifElse=n}},Ze=class extends ft{constructor(e,r){super(2,r);this.value=e}},qa=class extends Ke{constructor(i){super("super",!1,i),this.kind=24}},Wa=class extends ft{constructor(e,r,n,s,a){super(3,a);this.tag=e;this.parts=r;this.rawParts=n;this.expressions=s}},Ka=class extends Ke{constructor(i){super("this",!1,i),this.kind=25}},ja=class extends Ke{constructor(i){super("true",!1,i),this.kind=26}},Ha=class extends Ke{constructor(i){super("false",!1,i),this.kind=14}},Cn=class extends ye{constructor(e,r,n,s){super(e,s);this.operator=r;this.operand=n}},Qa=class extends Cn{constructor(i,e,r){super(28,i,e,r)}},Xa=class extends Cn{constructor(i,e,r){super(29,i,e,r)}},Ja=class extends ye{constructor(e,r,n){super(30,n);this.expr=e;this.type=r}},oe=class extends G{},Ai=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Ai||{}),fe=class t extends G{constructor(e,r,n){super(0,new le(0,n.length));this.sourceKind=e;this.normalizedPath=r;this.text=n;this.statements=new Array;this.debugInfoIndex=-1;this.exportPaths=null;this.lineCache=null;this.lineColumn=1;let s=Nn(r);this.internalPath=s;let a=s.lastIndexOf(rt);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=t._native;return e||(t._native=e=new t(3,pt+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==t._native}get isLibrary(){let e=this.sourceKind;return e==2||e==3}lineAt(e){assert(e>=0&&e<2147483647);let r=this.lineCache;if(!r){this.lineCache=r=[0];let a=this.text,l=0,o=a.length;for(;l<o;)a.charCodeAt(l++)==10&&r.push(l);r.push(2147483647)}let n=0,s=r.length-1;for(;n<s;){let a=n+(s-n>>1),l=unchecked(r[a]);if(e<l)s=a;else{if(e<unchecked(r[a+1]))return this.lineColumn=e-l+1,a+1;n=a+1}}return assert(0)}columnAt(){return this.lineColumn}},De=class extends oe{constructor(e,r,n,s,a){super(e,a);this.name=r;this.decorators=n;this.flags=s;this.overriddenModuleName=null}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},Za=class extends G{constructor(e,r,n,s){super(66,s);this.keyType=e;this.valueType=r;this.flags=n}},xi=class extends De{constructor(e,r,n,s,a,l,o){super(e,r,n,s,o);this.type=a;this.initializer=l}},Ya=class extends oe{constructor(e,r){super(31,r);this.statements=e}},$a=class extends oe{constructor(e,r){super(32,r);this.label=e}},Pn=class extends De{constructor(e,r,n,s,a,l,o,u){super(52,e,r,n,u);this.typeParameters=s;this.extendsType=a;this.implementsTypes=l;this.members=o;this.indexSignature=null}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},el=class extends oe{constructor(e,r){super(33,r);this.label=e}},tl=class extends oe{constructor(e,r,n){super(34,n);this.body=e;this.condition=r}},rl=class extends oe{constructor(i){super(35,i)}},il=class extends De{constructor(e,r,n,s,a){super(53,e,r,n,a);this.values=s}},nl=class extends xi{constructor(i,e,r,n){super(54,i,null,e,null,r,n)}},sl=class extends oe{constructor(e,r,n){super(38,n);this.name=e;this.externalName=r}},al=class extends G{constructor(e,r,n){super(64,n);this.localName=e;this.exportedName=r}},ll=class extends oe{constructor(e,r,n,s){super(36,s);this.members=e;this.path=r;this.isDeclare=n;if(r){let a=vr(r.value);r.value.startsWith(".")?a=ya(a,s.source.internalPath):a.startsWith(pt)||(a=pt+a),this.internalPath=a}else this.internalPath=null}},ol=class extends oe{constructor(e,r){super(37,r);this.declaration=e}},ul=class extends oe{constructor(e){super(39,e.range);this.expression=e}},pl=class extends xi{constructor(e,r,n,s,a,l,o){super(55,e,r,n,s,a,o);this.parameterIndex=l}},cl=class extends oe{constructor(e,r,n,s,a){super(40,a);this.initializer=e;this.condition=r;this.incrementor=n;this.body=s}},fl=class extends oe{constructor(e,r,n,s){super(41,s);this.variable=e;this.iterable=r;this.body=n}},Ei=(r=>(r[r.None=0]="None",r[r.Parenthesized=1]="Parenthesized",r[r.Single=2]="Single",r))(Ei||{}),Bn=class t extends De{constructor(e,r,n,s,a,l,o,u){super(56,e,r,n,u);this.typeParameters=s;this.signature=a;this.body=l;this.arrowKind=o}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new t(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range)}},_l=class extends oe{constructor(e,r,n,s){super(42,s);this.condition=e;this.ifTrue=r;this.ifFalse=n}},hl=class extends De{constructor(e,r,n){super(57,e,null,0,n);this.foreignName=r}},Ln=class extends oe{constructor(e,r,n,s){super(43,s);this.declarations=e;this.namespaceName=r;this.path=n;let a=vr(n.value);n.value.startsWith(".")?a=ya(a,s.source.internalPath):a.startsWith(pt)||(a=pt+a),this.internalPath=Nn(a)}},dl=class extends Pn{constructor(i,e,r,n,s,a,l,o){super(i,e,r,n,s,a,l,o),this.kind=58}},Rr=class extends Bn{constructor(i,e,r,n,s,a,l){super(i,e,r,n,s,a,0,l),this.kind=59}},ml=class extends De{constructor(e,r,n,s,a){super(60,e,r,n,a);this.members=s}},yl=class extends oe{constructor(e,r){super(44,r);this.value=e}},gl=class extends G{constructor(e,r,n){super(65,n);this.label=e;this.statements=r}get isDefault(){return this.label==null}},bl=class extends oe{constructor(e,r,n){super(45,n);this.condition=e;this.cases=r}},xl=class extends oe{constructor(e,r){super(46,r);this.value=e}},Tl=class extends oe{constructor(e,r,n,s,a){super(47,a);this.bodyStatements=e;this.catchVariable=r;this.catchStatements=n;this.finallyStatements=s}},Al=class extends oe{constructor(e,r,n){super(51,n);this.moduleName=e;this.flags=r}},El=class extends De{constructor(e,r,n,s,a,l){super(61,e,r,n,l);this.typeParameters=s;this.type=a}},vl=class extends xi{constructor(i,e,r,n,s,a){super(62,i,e,r,n,s,a)}},Sl=class extends oe{constructor(e,r,n){super(48,n);this.decorators=e;this.declarations=r}},Il=class extends oe{constructor(e,r){super(49,r);this.expression=e}},Rl=class extends oe{constructor(e,r,n){super(50,n);this.condition=e;this.body=r}};function Nt(t,i){if(i)for(let e=0,r=i.length;e<r;++e){let n=i[e];if(n.decoratorKind==t)return n}return null}function Nn(t){return t.endsWith("/")?t+="index":t.endsWith(".ts")&&(t=t.substring(0,t.length-3)),t}function ke(t){if(t.kind==1){let i=t.name;return!(i.next||i.identifier.text.length>0)}return!1}var vi=(B=>(B[B.Abstract=0]="Abstract",B[B.As=1]="As",B[B.Async=2]="Async",B[B.Await=3]="Await",B[B.Break=4]="Break",B[B.Case=5]="Case",B[B.Catch=6]="Catch",B[B.Class=7]="Class",B[B.Const=8]="Const",B[B.Continue=9]="Continue",B[B.Constructor=10]="Constructor",B[B.Debugger=11]="Debugger",B[B.Declare=12]="Declare",B[B.Default=13]="Default",B[B.Delete=14]="Delete",B[B.Do=15]="Do",B[B.Else=16]="Else",B[B.Enum=17]="Enum",B[B.Export=18]="Export",B[B.Extends=19]="Extends",B[B.False=20]="False",B[B.Finally=21]="Finally",B[B.For=22]="For",B[B.From=23]="From",B[B.Function=24]="Function",B[B.Get=25]="Get",B[B.If=26]="If",B[B.Implements=27]="Implements",B[B.Import=28]="Import",B[B.In=29]="In",B[B.InstanceOf=30]="InstanceOf",B[B.Interface=31]="Interface",B[B.Is=32]="Is",B[B.KeyOf=33]="KeyOf",B[B.Let=34]="Let",B[B.Module=35]="Module",B[B.Namespace=36]="Namespace",B[B.New=37]="New",B[B.Null=38]="Null",B[B.Of=39]="Of",B[B.Override=40]="Override",B[B.Package=41]="Package",B[B.Private=42]="Private",B[B.Protected=43]="Protected",B[B.Public=44]="Public",B[B.Readonly=45]="Readonly",B[B.Return=46]="Return",B[B.Set=47]="Set",B[B.Static=48]="Static",B[B.Super=49]="Super",B[B.Switch=50]="Switch",B[B.This=51]="This",B[B.Throw=52]="Throw",B[B.True=53]="True",B[B.Try=54]="Try",B[B.Type=55]="Type",B[B.TypeOf=56]="TypeOf",B[B.Var=57]="Var",B[B.Void=58]="Void",B[B.While=59]="While",B[B.With=60]="With",B[B.Yield=61]="Yield",B[B.OpenBrace=62]="OpenBrace",B[B.CloseBrace=63]="CloseBrace",B[B.OpenParen=64]="OpenParen",B[B.CloseParen=65]="CloseParen",B[B.OpenBracket=66]="OpenBracket",B[B.CloseBracket=67]="CloseBracket",B[B.Dot=68]="Dot",B[B.Dot_Dot_Dot=69]="Dot_Dot_Dot",B[B.Semicolon=70]="Semicolon",B[B.Comma=71]="Comma",B[B.LessThan=72]="LessThan",B[B.GreaterThan=73]="GreaterThan",B[B.LessThan_Equals=74]="LessThan_Equals",B[B.GreaterThan_Equals=75]="GreaterThan_Equals",B[B.Equals_Equals=76]="Equals_Equals",B[B.Exclamation_Equals=77]="Exclamation_Equals",B[B.Equals_Equals_Equals=78]="Equals_Equals_Equals",B[B.Exclamation_Equals_Equals=79]="Exclamation_Equals_Equals",B[B.Equals_GreaterThan=80]="Equals_GreaterThan",B[B.Plus=81]="Plus",B[B.Minus=82]="Minus",B[B.Asterisk_Asterisk=83]="Asterisk_Asterisk",B[B.Asterisk=84]="Asterisk",B[B.Slash=85]="Slash",B[B.Percent=86]="Percent",B[B.Plus_Plus=87]="Plus_Plus",B[B.Minus_Minus=88]="Minus_Minus",B[B.LessThan_LessThan=89]="LessThan_LessThan",B[B.GreaterThan_GreaterThan=90]="GreaterThan_GreaterThan",B[B.GreaterThan_GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan_GreaterThan",B[B.Ampersand=92]="Ampersand",B[B.Bar=93]="Bar",B[B.Caret=94]="Caret",B[B.Exclamation=95]="Exclamation",B[B.Tilde=96]="Tilde",B[B.Ampersand_Ampersand=97]="Ampersand_Ampersand",B[B.Bar_Bar=98]="Bar_Bar",B[B.Question=99]="Question",B[B.Colon=100]="Colon",B[B.Equals=101]="Equals",B[B.Plus_Equals=102]="Plus_Equals",B[B.Minus_Equals=103]="Minus_Equals",B[B.Asterisk_Equals=104]="Asterisk_Equals",B[B.Asterisk_Asterisk_Equals=105]="Asterisk_Asterisk_Equals",B[B.Slash_Equals=106]="Slash_Equals",B[B.Percent_Equals=107]="Percent_Equals",B[B.LessThan_LessThan_Equals=108]="LessThan_LessThan_Equals",B[B.GreaterThan_GreaterThan_Equals=109]="GreaterThan_GreaterThan_Equals",B[B.GreaterThan_GreaterThan_GreaterThan_Equals=110]="GreaterThan_GreaterThan_GreaterThan_Equals",B[B.Ampersand_Equals=111]="Ampersand_Equals",B[B.Bar_Equals=112]="Bar_Equals",B[B.Caret_Equals=113]="Caret_Equals",B[B.At=114]="At",B[B.Identifier=115]="Identifier",B[B.StringLiteral=116]="StringLiteral",B[B.IntegerLiteral=117]="IntegerLiteral",B[B.FloatLiteral=118]="FloatLiteral",B[B.TemplateLiteral=119]="TemplateLiteral",B[B.Invalid=120]="Invalid",B[B.EndOfFile=121]="EndOfFile",B))(vi||{}),wp=(r=>(r[r.Default=0]="Default",r[r.Prefer=1]="Prefer",r[r.Always=2]="Always",r))(wp||{});function Jy(t){let i=t.length;switch(assert(i),t.charCodeAt(0)){case 97:{if(i==5){if(t=="async")return 2;if(t=="await")return 3;break}if(t=="as")return 1;if(t=="abstract")return 0;break}case 98:{if(t=="break")return 4;break}case 99:{if(i==5){if(t=="const")return 8;if(t=="class")return 7;if(t=="catch")return 6;break}if(t=="case")return 5;if(t=="continue")return 9;if(t=="constructor")return 10;break}case 100:{if(i==7){if(t=="default")return 13;if(t=="declare")return 12;break}if(t=="do")return 15;if(t=="delete")return 14;if(t=="debugger")return 11;break}case 101:{if(i==4){if(t=="else")return 16;if(t=="enum")return 17;break}if(t=="export")return 18;if(t=="extends")return 19;break}case 102:{if(i<=5){if(t=="false")return 20;if(t=="for")return 22;if(t=="from")return 23;break}if(t=="function")return 24;if(t=="finally")return 21;break}case 103:{if(t=="get")return 25;break}case 105:{if(i==2){if(t=="if")return 26;if(t=="in")return 29;if(t=="is")return 32;break}switch(t.charCodeAt(3)){case 108:{if(t=="implements")return 27;break}case 111:{if(t=="import")return 28;break}case 116:{if(t=="instanceof")return 30;break}case 101:{if(t=="interface")return 31;break}}break}case 107:{if(t=="keyof")return 33;break}case 108:{if(t=="let")return 34;break}case 109:{if(t=="module")return 35;break}case 110:{if(t=="new")return 37;if(t=="null")return 38;if(t=="namespace")return 36;break}case 111:{if(t=="of")return 39;if(t=="override")return 40;break}case 112:{if(i==7){if(t=="private")return 42;if(t=="package")return 41;break}if(t=="public")return 44;if(t=="protected")return 43;break}case 114:{if(t=="return")return 46;if(t=="readonly")return 45;break}case 115:{if(i==6){if(t=="switch")return 50;if(t=="static")return 48;break}if(t=="set")return 47;if(t=="super")return 49;break}case 116:{if(i==4){if(t=="true")return 53;if(t=="this")return 51;if(t=="type")return 55;break}if(t=="try")return 54;if(t=="throw")return 52;if(t=="typeof")return 56;break}case 118:{if(t=="var")return 57;if(t=="void")return 58;break}case 119:{if(t=="while")return 59;if(t=="with")return 60;break}case 121:{if(t=="yield")return 61;break}}return 120}function Zy(t){switch(t){case 0:case 1:case 10:case 12:case 14:case 23:case 22:case 25:case 30:case 32:case 33:case 35:case 36:case 38:case 45:case 47:case 55:case 58:return!0;default:return!1}}function Cp(t){switch(assert(t.length),t.charCodeAt(0)){case 100:return t=="delete";case 102:return t=="for";case 105:return t=="instanceof";case 110:return t=="null";case 118:return t=="void"}return!1}function Ie(t){switch(t){case 14:return"delete";case 29:return"in";case 30:return"instanceof";case 37:return"new";case 56:return"typeof";case 58:return"void";case 61:return"yield";case 69:return"...";case 71:return",";case 72:return"<";case 73:return">";case 74:return"<=";case 75:return">=";case 76:return"==";case 77:return"!=";case 78:return"===";case 79:return"!==";case 81:return"+";case 82:return"-";case 83:return"**";case 84:return"*";case 85:return"/";case 86:return"%";case 87:return"++";case 88:return"--";case 89:return"<<";case 90:return">>";case 91:return">>>";case 92:return"&";case 93:return"|";case 94:return"^";case 95:return"!";case 96:return"~";case 97:return"&&";case 98:return"||";case 101:return"=";case 102:return"+=";case 103:return"-=";case 104:return"*=";case 105:return"**=";case 106:return"/=";case 107:return"%=";case 108:return"<<=";case 109:return">>=";case 110:return">>>=";case 111:return"&=";case 112:return"|=";case 113:return"^=";default:return assert(!1),""}}var kr=class extends We{constructor(e,r=null){super(r);this.end=0;this.pos=0;this.token=-1;this.tokenPos=0;this.nextToken=-1;this.nextTokenPos=0;this.nextTokenOnNewLine=2;this.onComment=null;this.readingTemplateString=!1;this.readStringStart=0;this.readStringEnd=0;r||(r=[]),this.diagnostics=r,this.source=e;let n=e.text,s=n.length,a=0;if(a<s&&n.charCodeAt(a)==65279&&++a,a+1<s&&n.charCodeAt(a)==35&&n.charCodeAt(a+1)==33)for(a+=2;a<s&&n.charCodeAt(a)!=10;)++a;this.pos=a,this.end=s}next(e=0){this.clearNextToken();let r;do r=this.unsafeNext(e);while(r==120);return this.token=r,r}unsafeNext(e=0,r=i32.MAX_VALUE){let n=this.source.text,s=this.end,a=this.pos;for(;a<s;){this.tokenPos=a;let l=n.charCodeAt(a);switch(l){case 13:if(!(++a<s&&n.charCodeAt(a)==10))break;case 10:case 9:case 11:case 12:case 32:{++a;break}case 33:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,79):(this.pos=a,77)):(this.pos=a,95);case 34:case 39:return this.pos=a,116;case 96:return this.pos=a,119;case 37:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,107):(this.pos=a,86);case 38:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==38)return this.pos=a+1,97;if(o==61)return this.pos=a+1,111}return this.pos=a,92}case 40:return this.pos=a+1,64;case 41:return this.pos=a+1,65;case 42:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==61)return this.pos=a+1,104;if(o==42)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,105):(this.pos=a,83)}return this.pos=a,84}case 43:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==43)return this.pos=a+1,87;if(o==61)return this.pos=a+1,102}return this.pos=a,81}case 44:return this.pos=a+1,71;case 45:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==45)return this.pos=a+1,88;if(o==61)return this.pos=a+1,103}return this.pos=a,82}case 46:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(nt(o))return this.pos=a-1,118;if(r>2&&a+1<s&&o==46&&n.charCodeAt(a+1)==46)return this.pos=a+2,69}return this.pos=a,68}case 47:{let o=a;if(++a,r>1&&a<s){let u=n.charCodeAt(a);if(u==47){let c=0;for(a+1<s&&n.charCodeAt(a+1)==47&&(++a,c=1);++a<s;)if(n.charCodeAt(a)==10){++a;break}this.onComment&&this.onComment(c,n.substring(o,a),this.range(o,a));break}if(u==42){let c=!1;for(;++a<s;)if(l=n.charCodeAt(a),l==42&&a+1<s&&n.charCodeAt(a+1)==47){a+=2,c=!0;break}c?this.onComment&&this.onComment(2,n.substring(o,a),this.range(o,a)):this.error(1005,this.range(a),"*/");break}if(u==61)return this.pos=a+1,106}return this.pos=a,85}case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.pos=a,this.testInteger()?117:118;case 58:return this.pos=a+1,100;case 59:return this.pos=a+1,70;case 60:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==60)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,108):(this.pos=a,89);if(o==61)return this.pos=a+1,74}return this.pos=a,72}case 61:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==61)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,78):(this.pos=a,76);if(o==62)return this.pos=a+1,80}return this.pos=a,101}case 62:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==62){if(++a,r>2&&a<s){if(o=n.charCodeAt(a),o==62)return++a,r>3&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,110):(this.pos=a,91);if(o==61)return this.pos=a+1,109}return this.pos=a,90}if(o==61)return this.pos=a+1,75}return this.pos=a,73}case 63:return this.pos=a+1,99;case 91:return this.pos=a+1,66;case 93:return this.pos=a+1,67;case 94:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,113):(this.pos=a,94);case 123:return this.pos=a+1,62;case 124:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==124)return this.pos=a+1,98;if(o==61)return this.pos=a+1,112}return this.pos=a,93}case 125:return this.pos=a+1,63;case 126:return this.pos=a+1,96;case 64:return this.pos=a+1,114;default:{if(_i(l)&&a+1<s&&(l=Fn(l,n.charCodeAt(a+1))),hi(l)){let u=a;for(;(a+=Ar(l))<s&&di(l=n.codePointAt(a)););if(e!=2){let c=Jy(n.substring(u,a));if(c!=120&&!(e==1&&Zy(c)))return this.pos=a,c}return this.pos=u,115}else if(In(l)){++a;break}let o=a;return a+=Ar(l),this.error(1127,this.range(o,a)),this.pos=a,120}}}return this.pos=a,121}peek(e=0,r=i32.MAX_VALUE){let n=this.nextToken;if(n<0){let s=this.pos,a=this.token,l=this.tokenPos;do n=this.unsafeNext(e,r);while(n==120);this.nextToken=n,this.nextTokenPos=this.tokenPos,this.nextTokenOnNewLine=2,this.pos=s,this.token=a,this.tokenPos=l}return n}peekOnNewLine(){switch(this.nextTokenOnNewLine){case 0:return!1;case 1:return!0}this.peek();let e=this.source.text;for(let r=this.pos,n=this.nextTokenPos;r<n;++r)if(Pt(e.charCodeAt(r)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(115,e)}skip(e,r=0){let n=this.pos,s=this.token,a=this.tokenPos,l=i32.MAX_VALUE;e==73&&(l=1);let o;do o=this.unsafeNext(r,l);while(o==120);return o==e?(this.token=e,this.clearNextToken(),!0):(this.pos=n,this.token=s,this.tokenPos=a,!1)}mark(){let e=kp;return e?(kp=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new Fl(this.pos,this.token,this.tokenPos),e}discard(e){kp=e}reset(e){this.pos=e.pos,this.token=e.token,this.tokenPos=e.tokenPos,this.clearNextToken()}clearNextToken(){this.nextToken=-1,this.nextTokenPos=0,this.nextTokenOnNewLine=2}range(e=-1,r=-1){e<0?(e=this.tokenPos,r=this.pos):r<0&&(r=e);let n=new le(e,r);return n.source=this.source,n}readIdentifier(){let e=this.source.text,r=this.end,n=this.pos,s=n,a=e.codePointAt(n);for(assert(hi(a));(n+=Ar(a))<r&&di(a=e.codePointAt(n)););return this.pos=n,e.substring(s,n)}readString(e=0,r=!1){let n=this.source.text,s=this.end,a=this.pos;e||(e=n.charCodeAt(a++));let l=a;this.readStringStart=l;let o="";for(;;){if(a>=s){o+=n.substring(l,a),this.error(1002,this.range(l-1,s)),this.readStringEnd=s;break}let u=n.charCodeAt(a);if(u==e){this.readStringEnd=a,o+=n.substring(l,a++);break}if(u==92){o+=n.substring(l,a),this.pos=a,o+=this.readEscapeSequence(r),a=this.pos,l=a;continue}if(e==96){if(u==36&&a+1<s&&n.charCodeAt(a+1)==123)return o+=n.substring(l,a),this.readStringEnd=a,this.pos=a+2,this.readingTemplateString=!0,o}else if(Pt(u)){o+=n.substring(l,a),this.error(1002,this.range(l-1,a)),this.readStringEnd=a;break}++a}return this.pos=a,this.readingTemplateString=!1,o}readEscapeSequence(e=!1){let r=this.pos,n=this.end;if(++this.pos>=n)return this.error(1126,this.range(n)),"";let s=this.source.text,a=s.charCodeAt(this.pos++);switch(a){case 48:return e&&this.pos<n&&nt(s.charCodeAt(this.pos))?(++this.pos,s.substring(r,this.pos)):"\0";case 98:return"\b";case 116:return" ";case 110:return`
|
|
17
|
+
`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos<n&&s.charCodeAt(this.pos)==123?(++this.pos,this.readExtendedUnicodeEscape(e?r:-1)):this.readUnicodeEscape(e?r:-1);case 120:return this.readHexadecimalEscape(2,e?r:-1);case 13:this.pos<n&&s.charCodeAt(this.pos)==10&&++this.pos;case 10:case 8232:case 8233:return"";default:return String.fromCodePoint(a)}}readRegexpPattern(){let e=this.source.text,r=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(r,n));break}if(e.charCodeAt(this.pos)==92){++this.pos,s=!0;continue}let a=e.charCodeAt(this.pos);if(!s&&a==47)break;if(Pt(a)){this.error(1161,this.range(r,this.pos));break}++this.pos,s=!1}return e.substring(r,this.pos)}readRegexpFlags(){let e=this.source.text,r=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!di(a))break;switch(++this.pos,a){case 103:{s|=s&1?-1:1;break}case 105:{s|=s&2?-1:2;break}case 109:{s|=s&4?-1:4;break}default:{s=-1;break}}}return s==-1&&this.error(209,this.range(r,this.pos)),e.substring(r,this.pos)}testInteger(){let e=this.source.text,r=this.pos,n=this.end;if(r+1<n&&e.charCodeAt(r)==48)switch(e.charCodeAt(r+2)|32){case 120:case 98:case 111:return!0}for(;r<n;){let s=e.charCodeAt(r);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;r++}return!0}readInteger(){let e=this.source.text,r=this.pos;if(r+2<this.end&&e.charCodeAt(r)==48){switch(e.charCodeAt(r+1)|32){case 120:return this.pos=r+2,this.readHexInteger();case 98:return this.pos=r+2,this.readBinaryInteger();case 111:return this.pos=r+2,this.readOctalInteger()}if(ma(e.charCodeAt(r+1))){let n=r;this.pos=r+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(4),u=l,c=!1;for(;r<n;){let f=e.charCodeAt(r);if(nt(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(kn(f))u=i64_add(i64_shl(l,o),i64_new((f|32)+-87));else if(f==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1125,this.range(s)):a==r&&this.error(6188,this.range(a-1)),c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readDecimalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(10),u=l,c=!1;for(;r<n;){let f=e.charCodeAt(r);if(nt(f))u=i64_add(i64_mul(l,o),i64_new(f-48));else if(f==95)a==r?this.error(a==s?6188:6189,this.range(r)):r-1==s&&e.charCodeAt(r-1)==48&&this.error(6188,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1124,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s,r),this.source.text.substring(s,r)),this.pos=r,l}readOctalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(3),u=l,c=!1;for(;r<n;){let f=e.charCodeAt(r);if(ma(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(f==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1178,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readBinaryInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=l,u=!1;for(;r<n;){let c=e.charCodeAt(r);if(c==48)o=i64_shl(l,i64_one);else if(c==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(c==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt(l,o)&&(u=!0),l=o,++r}return r==s?this.error(1177,this.range(s)):a==r?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,r=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<r&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<r){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<r&&(l=e.charCodeAt(this.pos))==45||l==43&&nt(e.charCodeAt(this.pos+1)))&&++this.pos,s+=this.readDecimalFloatPartial())}let a=e.substring(n,this.pos);return s&&(a=a.replaceAll("_","")),parseFloat(a)}readDecimalFloatPartial(e=!0){let r=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=r.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&r.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!nt(u))break;++n}return n!=s&&l==n&&this.error(6188,this.range(l-1)),this.pos=n,o}readHexFloat(){throw new Error("not implemented")}readHexadecimalEscape(e=2,r=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(nt(o))n=(n<<4)+o-48;else if(kn(o))n=(n<<4)+(o|32)+-87;else return~r?(this.pos=--a,s.substring(r,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~r?s.substring(r,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&hi(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let r=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(r,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(r,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(r,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Fl=class{constructor(i,e,r){this.pos=i;this.token=e;this.tokenPos=r}},kp=null;var L;(I=>(I.None=0,I.Unreachable=1,I.I32=2,I.I64=3,I.F32=4,I.F64=5,I.V128=6,I.Funcref=hf(),I.Externref=df(),I.Anyref=mf(),I.Eqref=yf(),I.Structref=bf(),I.Arrayref=xf(),I.I31ref=gf(),I.Stringref=Tf(),I.Noneref=Af(),I.Nofuncref=vf(),I.Noexternref=Ef()))(L||={});var ge;(g=>{g.Extern=8,g.Func=16,g.Any=32,g.Eq=40,g.I31=48,g.Struct=56,g.Array=64,g.Exn=7,g.String=80,g.None=88,g.Noextern=96,g.Nofunc=104;function _(T){return Sf(T)}g.isBottom=_;function h(T){return If(T)}g.getBottom=h;function m(T,I){return Rf(T,I)}g.isSubtype=m;function x(T,I){if(T==I)return T;if(h(T)!=h(I))return-1;if(_(T))return I;if(_(I))return T;if(T>I){let E=T;T=I,I=E}switch(T){case g.Extern:return I==g.String?T:-1;case g.Func:return-1;case g.Any:return T;case g.Eq:return I==g.I31||I==g.Struct||I==g.Array?g.Eq:g.Any;case g.I31:return I==g.Struct||I==g.Array?g.Eq:g.Any;case g.Struct:return I==g.Array?g.Eq:g.Any;case g.Array:return g.Any}return assert(!1),-1}g.leastUpperBound=x})(ge||={});var Gn;(r=>(r.NotPacked=0,r.I8=1,r.I16=2))(Gn||={});var Bp;(s=>{s.SelfSupertype=0,s.InvalidSupertype=1,s.ForwardSupertypeReference=2,s.ForwardChildReference=3;function n(a){switch(a){case 0:return"SelfSupertype";case 1:return"InvalidSupertype";case 2:return"ForwardSupertypeReference";case 3:return"ForwardChildReference"}return assert(!1),""}s.toString=n})(Bp||={});var Lp=(q=>(q[q.MVP=0]="MVP",q[q.Atomics=1]="Atomics",q[q.MutableGlobals=2]="MutableGlobals",q[q.TruncSat=4]="TruncSat",q[q.SIMD=8]="SIMD",q[q.BulkMemory=16]="BulkMemory",q[q.SignExt=32]="SignExt",q[q.ExceptionHandling=64]="ExceptionHandling",q[q.TailCall=128]="TailCall",q[q.ReferenceTypes=256]="ReferenceTypes",q[q.MultiValue=512]="MultiValue",q[q.GC=1024]="GC",q[q.Memory64=2048]="Memory64",q[q.RelaxedSIMD=4096]="RelaxedSIMD",q[q.ExtendedConst=8192]="ExtendedConst",q[q.Strings=16384]="Strings",q[q.MultiMemory=32768]="MultiMemory",q[q.StackSwitching=65536]="StackSwitching",q[q.SharedEverything=131072]="SharedEverything",q[q.FP16=262144]="FP16",q[q.BulkMemoryOpt=524288]="BulkMemoryOpt",q[q.CallIndirectOverlong=1048576]="CallIndirectOverlong",q[q.RelaxedAtomics=4194304]="RelaxedAtomics",q[q.CustomPageSizes=8388608]="CustomPageSizes",q[q.Multibyte=16777216]="Multibyte",q[q.WideArithmetic=33554432]="WideArithmetic",q[q.All=67108863]="All",q))(Lp||{}),wr=(N=>(N[N.Invalid=0]="Invalid",N[N.Block=1]="Block",N[N.If=2]="If",N[N.Loop=3]="Loop",N[N.Break=4]="Break",N[N.Switch=5]="Switch",N[N.Call=6]="Call",N[N.CallIndirect=7]="CallIndirect",N[N.LocalGet=8]="LocalGet",N[N.LocalSet=9]="LocalSet",N[N.GlobalGet=10]="GlobalGet",N[N.GlobalSet=11]="GlobalSet",N[N.Load=12]="Load",N[N.Store=13]="Store",N[N.Const=14]="Const",N[N.Unary=15]="Unary",N[N.Binary=16]="Binary",N[N.Select=17]="Select",N[N.Drop=18]="Drop",N[N.Return=19]="Return",N[N.MemorySize=20]="MemorySize",N[N.MemoryGrow=21]="MemoryGrow",N[N.Nop=22]="Nop",N[N.Unreachable=23]="Unreachable",N[N.AtomicRMW=24]="AtomicRMW",N[N.AtomicCmpxchg=25]="AtomicCmpxchg",N[N.AtomicWait=26]="AtomicWait",N[N.AtomicNotify=27]="AtomicNotify",N[N.AtomicFence=28]="AtomicFence",N[N.Pause=29]="Pause",N[N.SIMDExtract=30]="SIMDExtract",N[N.SIMDReplace=31]="SIMDReplace",N[N.SIMDShuffle=32]="SIMDShuffle",N[N.SIMDTernary=33]="SIMDTernary",N[N.SIMDShift=34]="SIMDShift",N[N.SIMDLoad=35]="SIMDLoad",N[N.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",N[N.MemoryInit=37]="MemoryInit",N[N.DataDrop=38]="DataDrop",N[N.MemoryCopy=39]="MemoryCopy",N[N.MemoryFill=40]="MemoryFill",N[N.Pop=41]="Pop",N[N.RefNull=42]="RefNull",N[N.RefIsNull=43]="RefIsNull",N[N.RefFunc=44]="RefFunc",N[N.RefEq=45]="RefEq",N[N.TableGet=46]="TableGet",N[N.TableSet=47]="TableSet",N[N.TableSize=48]="TableSize",N[N.TableGrow=49]="TableGrow",N[N.TableFill=50]="TableFill",N[N.TableCopy=51]="TableCopy",N[N.TableInit=52]="TableInit",N[N.ElemDrop=53]="ElemDrop",N[N.Try=54]="Try",N[N.TryTable=55]="TryTable",N[N.Throw=56]="Throw",N[N.Rethrow=57]="Rethrow",N[N.ThrowRef=58]="ThrowRef",N[N.TupleMake=59]="TupleMake",N[N.TupleExtract=60]="TupleExtract",N[N.RefI31=61]="RefI31",N[N.I31Get=62]="I31Get",N[N.CallRef=63]="CallRef",N[N.RefTest=64]="RefTest",N[N.RefCast=65]="RefCast",N[N.RefGetDesc=66]="RefGetDesc",N[N.BrOn=67]="BrOn",N[N.StructNew=68]="StructNew",N[N.StructGet=69]="StructGet",N[N.StructSet=70]="StructSet",N[N.StructRMW=71]="StructRMW",N[N.StructCmpxchg=72]="StructCmpxchg",N[N.ArrayNew=73]="ArrayNew",N[N.ArrayNewData=74]="ArrayNewData",N[N.ArrayNewElem=75]="ArrayNewElem",N[N.ArrayNewFixed=76]="ArrayNewFixed",N[N.ArrayGet=77]="ArrayGet",N[N.ArraySet=78]="ArraySet",N[N.ArrayLoad=79]="ArrayLoad",N[N.ArrayStore=80]="ArrayStore",N[N.ArrayLen=81]="ArrayLen",N[N.ArrayCopy=82]="ArrayCopy",N[N.ArrayFill=83]="ArrayFill",N[N.ArrayInitData=84]="ArrayInitData",N[N.ArrayInitElem=85]="ArrayInitElem",N[N.ArrayRMW=86]="ArrayRMW",N[N.ArrayCmpxchg=87]="ArrayCmpxchg",N[N.RefAs=88]="RefAs",N[N.StringNew=89]="StringNew",N[N.StringConst=90]="StringConst",N[N.StringMeasure=91]="StringMeasure",N[N.StringEncode=92]="StringEncode",N[N.StringConcat=93]="StringConcat",N[N.StringEq=94]="StringEq",N[N.StringTest=95]="StringTest",N[N.StringWTF16Get=96]="StringWTF16Get",N[N.StringSliceWTF=97]="StringSliceWTF",N[N.ContNew=98]="ContNew",N[N.ContBind=99]="ContBind",N[N.Suspend=100]="Suspend",N[N.Resume=101]="Resume",N[N.ResumeThrow=102]="ResumeThrow",N[N.StackSwitch=103]="StackSwitch",N[N.StructWait=104]="StructWait",N[N.StructNotify=105]="StructNotify",N[N.WideIntAddSub=106]="WideIntAddSub",N[N.WideIntMul=107]="WideIntMul",N))(wr||{}),Np=(s=>(s[s.Function=0]="Function",s[s.Table=1]="Table",s[s.Memory=2]="Memory",s[s.Global=3]="Global",s[s.Tag=4]="Tag",s))(Np||{}),Yy=(r=>(r[r.Unordered=0]="Unordered",r[r.SeqCst=1]="SeqCst",r[r.AcqRel=2]="AcqRel",r))(Yy||{}),Dn=(w=>(w[w.ClzI32=0]="ClzI32",w[w.ClzI64=1]="ClzI64",w[w.CtzI32=2]="CtzI32",w[w.CtzI64=3]="CtzI64",w[w.PopcntI32=4]="PopcntI32",w[w.PopcntI64=5]="PopcntI64",w[w.NegF32=6]="NegF32",w[w.NegF64=7]="NegF64",w[w.AbsF32=8]="AbsF32",w[w.AbsF64=9]="AbsF64",w[w.CeilF32=10]="CeilF32",w[w.CeilF64=11]="CeilF64",w[w.FloorF32=12]="FloorF32",w[w.FloorF64=13]="FloorF64",w[w.TruncF32=14]="TruncF32",w[w.TruncF64=15]="TruncF64",w[w.NearestF32=16]="NearestF32",w[w.NearestF64=17]="NearestF64",w[w.SqrtF32=18]="SqrtF32",w[w.SqrtF64=19]="SqrtF64",w[w.EqzI32=20]="EqzI32",w[w.EqzI64=21]="EqzI64",w[w.ExtendI32ToI64=22]="ExtendI32ToI64",w[w.ExtendU32ToU64=23]="ExtendU32ToU64",w[w.WrapI64ToI32=24]="WrapI64ToI32",w[w.TruncF32ToI32=25]="TruncF32ToI32",w[w.TruncF32ToI64=26]="TruncF32ToI64",w[w.TruncF32ToU32=27]="TruncF32ToU32",w[w.TruncF32ToU64=28]="TruncF32ToU64",w[w.TruncF64ToI32=29]="TruncF64ToI32",w[w.TruncF64ToI64=30]="TruncF64ToI64",w[w.TruncF64ToU32=31]="TruncF64ToU32",w[w.TruncF64ToU64=32]="TruncF64ToU64",w[w.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",w[w.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",w[w.ConvertI32ToF32=35]="ConvertI32ToF32",w[w.ConvertI32ToF64=36]="ConvertI32ToF64",w[w.ConvertU32ToF32=37]="ConvertU32ToF32",w[w.ConvertU32ToF64=38]="ConvertU32ToF64",w[w.ConvertI64ToF32=39]="ConvertI64ToF32",w[w.ConvertI64ToF64=40]="ConvertI64ToF64",w[w.ConvertU64ToF32=41]="ConvertU64ToF32",w[w.ConvertU64ToF64=42]="ConvertU64ToF64",w[w.PromoteF32ToF64=43]="PromoteF32ToF64",w[w.DemoteF64ToF32=44]="DemoteF64ToF32",w[w.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",w[w.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",w[w.Extend8I32=47]="Extend8I32",w[w.Extend16I32=48]="Extend16I32",w[w.Extend8I64=49]="Extend8I64",w[w.Extend16I64=50]="Extend16I64",w[w.Extend32I64=51]="Extend32I64",w[w.TruncSatF32ToI32=52]="TruncSatF32ToI32",w[w.TruncSatF32ToU32=53]="TruncSatF32ToU32",w[w.TruncSatF64ToI32=54]="TruncSatF64ToI32",w[w.TruncSatF64ToU32=55]="TruncSatF64ToU32",w[w.TruncSatF32ToI64=56]="TruncSatF32ToI64",w[w.TruncSatF32ToU64=57]="TruncSatF32ToU64",w[w.TruncSatF64ToI64=58]="TruncSatF64ToI64",w[w.TruncSatF64ToU64=59]="TruncSatF64ToU64",w[w.SplatI8x16=60]="SplatI8x16",w[w.SplatI16x8=61]="SplatI16x8",w[w.SplatI32x4=62]="SplatI32x4",w[w.SplatI64x2=63]="SplatI64x2",w[w.SplatF32x4=64]="SplatF32x4",w[w.SplatF64x2=65]="SplatF64x2",w[w.NotV128=66]="NotV128",w[w.AnyTrueV128=67]="AnyTrueV128",w[w.AbsI8x16=68]="AbsI8x16",w[w.NegI8x16=69]="NegI8x16",w[w.AllTrueI8x16=70]="AllTrueI8x16",w[w.BitmaskI8x16=71]="BitmaskI8x16",w[w.PopcntI8x16=72]="PopcntI8x16",w[w.AbsI16x8=73]="AbsI16x8",w[w.NegI16x8=74]="NegI16x8",w[w.AllTrueI16x8=75]="AllTrueI16x8",w[w.BitmaskI16x8=76]="BitmaskI16x8",w[w.AbsI32x4=77]="AbsI32x4",w[w.NegI32x4=78]="NegI32x4",w[w.AllTrueI32x4=79]="AllTrueI32x4",w[w.BitmaskI32x4=80]="BitmaskI32x4",w[w.AbsI64x2=81]="AbsI64x2",w[w.NegI64x2=82]="NegI64x2",w[w.AllTrueI64x2=83]="AllTrueI64x2",w[w.BitmaskI64x2=84]="BitmaskI64x2",w[w.AbsF32x4=92]="AbsF32x4",w[w.NegF32x4=93]="NegF32x4",w[w.SqrtF32x4=94]="SqrtF32x4",w[w.CeilF32x4=95]="CeilF32x4",w[w.FloorF32x4=96]="FloorF32x4",w[w.TruncF32x4=97]="TruncF32x4",w[w.NearestF32x4=98]="NearestF32x4",w[w.AbsF64x2=99]="AbsF64x2",w[w.NegF64x2=100]="NegF64x2",w[w.SqrtF64x2=101]="SqrtF64x2",w[w.CeilF64x2=102]="CeilF64x2",w[w.FloorF64x2=103]="FloorF64x2",w[w.TruncF64x2=104]="TruncF64x2",w[w.NearestF64x2=105]="NearestF64x2",w[w.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",w[w.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",w[w.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",w[w.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",w[w.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",w[w.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",w[w.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",w[w.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",w[w.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",w[w.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",w[w.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",w[w.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",w[w.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",w[w.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",w[w.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",w[w.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",w[w.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",w[w.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",w[w.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",w[w.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",w[w.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",w[w.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",w[w.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",w[w.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",w[w.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",w[w.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",w[w.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",w[w.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",w[w.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",w[w.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",w[w.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",w[w._last=141]="_last",w[w.ClzSize=142]="ClzSize",w[w.CtzSize=143]="CtzSize",w[w.PopcntSize=144]="PopcntSize",w[w.EqzSize=145]="EqzSize",w))(Dn||{}),Ii=(A=>(A[A.AddI32=0]="AddI32",A[A.SubI32=1]="SubI32",A[A.MulI32=2]="MulI32",A[A.DivI32=3]="DivI32",A[A.DivU32=4]="DivU32",A[A.RemI32=5]="RemI32",A[A.RemU32=6]="RemU32",A[A.AndI32=7]="AndI32",A[A.OrI32=8]="OrI32",A[A.XorI32=9]="XorI32",A[A.ShlI32=10]="ShlI32",A[A.ShrI32=11]="ShrI32",A[A.ShrU32=12]="ShrU32",A[A.RotlI32=13]="RotlI32",A[A.RotrI32=14]="RotrI32",A[A.EqI32=15]="EqI32",A[A.NeI32=16]="NeI32",A[A.LtI32=17]="LtI32",A[A.LtU32=18]="LtU32",A[A.LeI32=19]="LeI32",A[A.LeU32=20]="LeU32",A[A.GtI32=21]="GtI32",A[A.GtU32=22]="GtU32",A[A.GeI32=23]="GeI32",A[A.GeU32=24]="GeU32",A[A.AddI64=25]="AddI64",A[A.SubI64=26]="SubI64",A[A.MulI64=27]="MulI64",A[A.DivI64=28]="DivI64",A[A.DivU64=29]="DivU64",A[A.RemI64=30]="RemI64",A[A.RemU64=31]="RemU64",A[A.AndI64=32]="AndI64",A[A.OrI64=33]="OrI64",A[A.XorI64=34]="XorI64",A[A.ShlI64=35]="ShlI64",A[A.ShrI64=36]="ShrI64",A[A.ShrU64=37]="ShrU64",A[A.RotlI64=38]="RotlI64",A[A.RotrI64=39]="RotrI64",A[A.EqI64=40]="EqI64",A[A.NeI64=41]="NeI64",A[A.LtI64=42]="LtI64",A[A.LtU64=43]="LtU64",A[A.LeI64=44]="LeI64",A[A.LeU64=45]="LeU64",A[A.GtI64=46]="GtI64",A[A.GtU64=47]="GtU64",A[A.GeI64=48]="GeI64",A[A.GeU64=49]="GeU64",A[A.AddF32=50]="AddF32",A[A.SubF32=51]="SubF32",A[A.MulF32=52]="MulF32",A[A.DivF32=53]="DivF32",A[A.CopysignF32=54]="CopysignF32",A[A.MinF32=55]="MinF32",A[A.MaxF32=56]="MaxF32",A[A.EqF32=57]="EqF32",A[A.NeF32=58]="NeF32",A[A.LtF32=59]="LtF32",A[A.LeF32=60]="LeF32",A[A.GtF32=61]="GtF32",A[A.GeF32=62]="GeF32",A[A.AddF64=63]="AddF64",A[A.SubF64=64]="SubF64",A[A.MulF64=65]="MulF64",A[A.DivF64=66]="DivF64",A[A.CopysignF64=67]="CopysignF64",A[A.MinF64=68]="MinF64",A[A.MaxF64=69]="MaxF64",A[A.EqF64=70]="EqF64",A[A.NeF64=71]="NeF64",A[A.LtF64=72]="LtF64",A[A.LeF64=73]="LeF64",A[A.GtF64=74]="GtF64",A[A.GeF64=75]="GeF64",A[A.EqI8x16=76]="EqI8x16",A[A.NeI8x16=77]="NeI8x16",A[A.LtI8x16=78]="LtI8x16",A[A.LtU8x16=79]="LtU8x16",A[A.GtI8x16=80]="GtI8x16",A[A.GtU8x16=81]="GtU8x16",A[A.LeI8x16=82]="LeI8x16",A[A.LeU8x16=83]="LeU8x16",A[A.GeI8x16=84]="GeI8x16",A[A.GeU8x16=85]="GeU8x16",A[A.EqI16x8=86]="EqI16x8",A[A.NeI16x8=87]="NeI16x8",A[A.LtI16x8=88]="LtI16x8",A[A.LtU16x8=89]="LtU16x8",A[A.GtI16x8=90]="GtI16x8",A[A.GtU16x8=91]="GtU16x8",A[A.LeI16x8=92]="LeI16x8",A[A.LeU16x8=93]="LeU16x8",A[A.GeI16x8=94]="GeI16x8",A[A.GeU16x8=95]="GeU16x8",A[A.EqI32x4=96]="EqI32x4",A[A.NeI32x4=97]="NeI32x4",A[A.LtI32x4=98]="LtI32x4",A[A.LtU32x4=99]="LtU32x4",A[A.GtI32x4=100]="GtI32x4",A[A.GtU32x4=101]="GtU32x4",A[A.LeI32x4=102]="LeI32x4",A[A.LeU32x4=103]="LeU32x4",A[A.GeI32x4=104]="GeI32x4",A[A.GeU32x4=105]="GeU32x4",A[A.EqI64x2=106]="EqI64x2",A[A.NeI64x2=107]="NeI64x2",A[A.LtI64x2=108]="LtI64x2",A[A.GtI64x2=109]="GtI64x2",A[A.LeI64x2=110]="LeI64x2",A[A.GeI64x2=111]="GeI64x2",A[A.EqF32x4=118]="EqF32x4",A[A.NeF32x4=119]="NeF32x4",A[A.LtF32x4=120]="LtF32x4",A[A.GtF32x4=121]="GtF32x4",A[A.LeF32x4=122]="LeF32x4",A[A.GeF32x4=123]="GeF32x4",A[A.EqF64x2=124]="EqF64x2",A[A.NeF64x2=125]="NeF64x2",A[A.LtF64x2=126]="LtF64x2",A[A.GtF64x2=127]="GtF64x2",A[A.LeF64x2=128]="LeF64x2",A[A.GeF64x2=129]="GeF64x2",A[A.AndV128=130]="AndV128",A[A.OrV128=131]="OrV128",A[A.XorV128=132]="XorV128",A[A.AndnotV128=133]="AndnotV128",A[A.AddI8x16=134]="AddI8x16",A[A.AddSatI8x16=135]="AddSatI8x16",A[A.AddSatU8x16=136]="AddSatU8x16",A[A.SubI8x16=137]="SubI8x16",A[A.SubSatI8x16=138]="SubSatI8x16",A[A.SubSatU8x16=139]="SubSatU8x16",A[A.MinI8x16=140]="MinI8x16",A[A.MinU8x16=141]="MinU8x16",A[A.MaxI8x16=142]="MaxI8x16",A[A.MaxU8x16=143]="MaxU8x16",A[A.AvgrU8x16=144]="AvgrU8x16",A[A.AddI16x8=145]="AddI16x8",A[A.AddSatI16x8=146]="AddSatI16x8",A[A.AddSatU16x8=147]="AddSatU16x8",A[A.SubI16x8=148]="SubI16x8",A[A.SubSatI16x8=149]="SubSatI16x8",A[A.SubSatU16x8=150]="SubSatU16x8",A[A.MulI16x8=151]="MulI16x8",A[A.MinI16x8=152]="MinI16x8",A[A.MinU16x8=153]="MinU16x8",A[A.MaxI16x8=154]="MaxI16x8",A[A.MaxU16x8=155]="MaxU16x8",A[A.AvgrU16x8=156]="AvgrU16x8",A[A.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",A[A.ExtmulLowI16x8=158]="ExtmulLowI16x8",A[A.ExtmulHighI16x8=159]="ExtmulHighI16x8",A[A.ExtmulLowU16x8=160]="ExtmulLowU16x8",A[A.ExtmulHighU16x8=161]="ExtmulHighU16x8",A[A.AddI32x4=162]="AddI32x4",A[A.SubI32x4=163]="SubI32x4",A[A.MulI32x4=164]="MulI32x4",A[A.MinI32x4=165]="MinI32x4",A[A.MinU32x4=166]="MinU32x4",A[A.MaxI32x4=167]="MaxI32x4",A[A.MaxU32x4=168]="MaxU32x4",A[A.DotI16x8=169]="DotI16x8",A[A.ExtmulLowI32x4=170]="ExtmulLowI32x4",A[A.ExtmulHighI32x4=171]="ExtmulHighI32x4",A[A.ExtmulLowU32x4=172]="ExtmulLowU32x4",A[A.ExtmulHighU32x4=173]="ExtmulHighU32x4",A[A.AddI64x2=174]="AddI64x2",A[A.SubI64x2=175]="SubI64x2",A[A.MulI64x2=176]="MulI64x2",A[A.ExtmulLowI64x2=177]="ExtmulLowI64x2",A[A.ExtmulHighI64x2=178]="ExtmulHighI64x2",A[A.ExtmulLowU64x2=179]="ExtmulLowU64x2",A[A.ExtmulHighU64x2=180]="ExtmulHighU64x2",A[A.AddF32x4=189]="AddF32x4",A[A.SubF32x4=190]="SubF32x4",A[A.MulF32x4=191]="MulF32x4",A[A.DivF32x4=192]="DivF32x4",A[A.MinF32x4=193]="MinF32x4",A[A.MaxF32x4=194]="MaxF32x4",A[A.PminF32x4=195]="PminF32x4",A[A.PmaxF32x4=196]="PmaxF32x4",A[A.AddF64x2=197]="AddF64x2",A[A.SubF64x2=198]="SubF64x2",A[A.MulF64x2=199]="MulF64x2",A[A.DivF64x2=200]="DivF64x2",A[A.MinF64x2=201]="MinF64x2",A[A.MaxF64x2=202]="MaxF64x2",A[A.PminF64x2=203]="PminF64x2",A[A.PmaxF64x2=204]="PmaxF64x2",A[A.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",A[A.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",A[A.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",A[A.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",A[A.SwizzleI8x16=209]="SwizzleI8x16",A[A.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",A[A.RelaxedMinF32x4=211]="RelaxedMinF32x4",A[A.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",A[A.RelaxedMinF64x2=213]="RelaxedMinF64x2",A[A.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",A[A.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",A[A.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",A[A._last=216]="_last",A[A.AddSize=217]="AddSize",A[A.SubSize=218]="SubSize",A[A.MulSize=219]="MulSize",A[A.DivISize=220]="DivISize",A[A.DivUSize=221]="DivUSize",A[A.RemISize=222]="RemISize",A[A.RemUSize=223]="RemUSize",A[A.AndSize=224]="AndSize",A[A.OrSize=225]="OrSize",A[A.XorSize=226]="XorSize",A[A.ShlSize=227]="ShlSize",A[A.ShrISize=228]="ShrISize",A[A.ShrUSize=229]="ShrUSize",A[A.RotlSize=230]="RotlSize",A[A.RotrSize=231]="RotrSize",A[A.EqSize=232]="EqSize",A[A.NeSize=233]="NeSize",A[A.LtISize=234]="LtISize",A[A.LtUSize=235]="LtUSize",A[A.LeISize=236]="LeISize",A[A.LeUSize=237]="LeUSize",A[A.GtISize=238]="GtISize",A[A.GtUSize=239]="GtUSize",A[A.GeISize=240]="GeISize",A[A.GeUSize=241]="GeUSize",A))(Ii||{}),Mp=(a=>(a[a.Add=0]="Add",a[a.Sub=1]="Sub",a[a.And=2]="And",a[a.Or=3]="Or",a[a.Xor=4]="Xor",a[a.Xchg=5]="Xchg",a))(Mp||{}),Gp=(o=>(o[o.ExtractLaneI8x16=0]="ExtractLaneI8x16",o[o.ExtractLaneU8x16=1]="ExtractLaneU8x16",o[o.ExtractLaneI16x8=2]="ExtractLaneI16x8",o[o.ExtractLaneU16x8=3]="ExtractLaneU16x8",o[o.ExtractLaneI32x4=4]="ExtractLaneI32x4",o[o.ExtractLaneI64x2=5]="ExtractLaneI64x2",o[o.ExtractLaneF32x4=7]="ExtractLaneF32x4",o[o.ExtractLaneF64x2=8]="ExtractLaneF64x2",o))(Gp||{}),zp=(a=>(a[a.ReplaceLaneI8x16=0]="ReplaceLaneI8x16",a[a.ReplaceLaneI16x8=1]="ReplaceLaneI16x8",a[a.ReplaceLaneI32x4=2]="ReplaceLaneI32x4",a[a.ReplaceLaneI64x2=3]="ReplaceLaneI64x2",a[a.ReplaceLaneF32x4=5]="ReplaceLaneF32x4",a[a.ReplaceLaneF64x2=6]="ReplaceLaneF64x2",a))(zp||{}),Dp=(_=>(_[_.ShlI8x16=0]="ShlI8x16",_[_.ShrI8x16=1]="ShrI8x16",_[_.ShrU8x16=2]="ShrU8x16",_[_.ShlI16x8=3]="ShlI16x8",_[_.ShrI16x8=4]="ShrI16x8",_[_.ShrU16x8=5]="ShrU16x8",_[_.ShlI32x4=6]="ShlI32x4",_[_.ShrI32x4=7]="ShrI32x4",_[_.ShrU32x4=8]="ShrU32x4",_[_.ShlI64x2=9]="ShlI64x2",_[_.ShrI64x2=10]="ShrI64x2",_[_.ShrU64x2=11]="ShrU64x2",_))(Dp||{}),Up=(_=>(_[_.Load8Splat=0]="Load8Splat",_[_.Load16Splat=1]="Load16Splat",_[_.Load32Splat=2]="Load32Splat",_[_.Load64Splat=3]="Load64Splat",_[_.Load8x8S=4]="Load8x8S",_[_.Load8x8U=5]="Load8x8U",_[_.Load16x4S=6]="Load16x4S",_[_.Load16x4U=7]="Load16x4U",_[_.Load32x2S=8]="Load32x2S",_[_.Load32x2U=9]="Load32x2U",_[_.Load32Zero=10]="Load32Zero",_[_.Load64Zero=11]="Load64Zero",_))(Up||{}),Vp=(o=>(o[o.Load8Lane=0]="Load8Lane",o[o.Load16Lane=1]="Load16Lane",o[o.Load32Lane=2]="Load32Lane",o[o.Load64Lane=3]="Load64Lane",o[o.Store8Lane=4]="Store8Lane",o[o.Store16Lane=5]="Store16Lane",o[o.Store32Lane=6]="Store32Lane",o[o.Store64Lane=7]="Store64Lane",o))(Vp||{}),Op=(c=>(c[c.Bitselect=0]="Bitselect",c[c.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",c[c.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",c[c.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",c[c.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",c[c.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",c[c.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",c[c.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",c[c.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",c[c.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",c))(Op||{}),$y=(r=>(r[r.NonNull=0]="NonNull",r[r.AnyConvertExtern=1]="AnyConvertExtern",r[r.ExternConvertAny=2]="ExternConvertAny",r))($y||{}),eg=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(eg||{}),tg=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(tg||{}),rg=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(rg||{}),ig=(r=>(r[r.LossyUTF8Array=0]="LossyUTF8Array",r[r.WTF16Array=1]="WTF16Array",r[r.FromCodePoint=2]="FromCodePoint",r))(ig||{}),ng=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(ng||{}),sg=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(sg||{}),ag=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(ag||{}),Pl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(Pl||{}),Si=class{constructor(i,e){this.buffer=i;this.offset=e}},Gt=class t{constructor(i,e,r){this.ref=i;this.useShadowStack=e;this.sizeType=r;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(r==L.I32||r==L.I64),this.lit=ut(ho())}static create(i,e){return new t(kf(),i,e)}static createFrom(i,e,r){let n=Mn(i),s=new t(zm(n,i.length),e,r);return ie(changetype(n)),s}i32(i){let e=this.lit;return Cf(e,i),ei(this.ref,e)}i64(i,e=0){let r=this.lit;return zy(r,i64_new(i,e)),ei(this.ref,r)}usize(i){return i64_is(i)?this.sizeType==L.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==L.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return Pf(e,i),ei(this.ref,e)}f64(i){let e=this.lit;return Bf(e,i),ei(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let r=0;r<16;++r)Le(e+r,unchecked(i[r]));return Lf(e,e),ei(this.ref,e)}ref_null(i){return Mh(this.ref,i)}ref_eq(i,e){return Oh(this.ref,i,e)}string_eq(i,e){return Ju(this.ref,0,i,e)}string_compare(i,e){return Ju(this.ref,1,i,e)}unary(i,e){if(i>141){let r=this.sizeType==L.I64;switch(i){case 142:i=r?1:0;break;case 143:i=r?3:2;break;case 144:i=r?5:4;break;case 145:i=r?21:20;break;default:assert(!1)}}return R_(this.ref,i,e)}binary(i,e,r){if(i>216){let n=this.sizeType==L.I64;switch(i){case 217:i=n?25:0;break;case 218:i=n?26:1;break;case 219:i=n?27:2;break;case 220:i=n?28:3;break;case 221:i=n?29:4;break;case 222:i=n?30:5;break;case 223:i=n?31:6;break;case 224:i=n?32:7;break;case 225:i=n?33:8;break;case 226:i=n?34:9;break;case 227:i=n?35:10;break;case 228:i=n?36:11;break;case 229:i=n?37:12;break;case 230:i=n?38:13;break;case 231:i=n?39:14;break;case 232:i=n?40:15;break;case 233:i=n?41:16;break;case 234:i=n?42:17;break;case 235:i=n?43:18;break;case 236:i=n?44:19;break;case 237:i=n?45:20;break;case 238:i=n?46:21;break;case 239:i=n?47:22;break;case 240:i=n?48:23;break;case 241:i=n?49:24;break;default:assert(!1)}}return P_(this.ref,i,e,r)}wide_int_add_sub(i,e,r,n,s){return w_(this.ref,i,e,r,n,s)}wide_int_mul(i,e,r){return C_(this.ref,i,e,r)}memory_size(i=C.DefaultMemory,e=!1){let r=this.allocStringCached(i);return c_(this.ref,r,e)}memory_grow(i,e=C.DefaultMemory,r=!1){let n=this.allocStringCached(e);return f_(this.ref,i,n,r)}table_size(i){let e=this.allocStringCached(i);return Hh(this.ref,e)}table_grow(i,e,r=0){let n=this.allocStringCached(i);return Qh(this.ref,n,r,e)}local_get(i,e){return s_(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=Ft(i);return assert(e==L.I32||e==L.Unreachable),this.call(d.tostack,[i],e)}return i}local_tee(i,e,r,n=-1){return n==-1&&(n=Ft(e)),r&&this.useShadowStack&&(e=this.tostack(e)),a_(this.ref,i,e,n)}global_get(i,e){let r=this.allocStringCached(i);return l_(this.ref,r,e)}table_get(i,e,r){let n=this.allocStringCached(i);return Kh(this.ref,n,e,r)}load(i,e,r,n,s=0,a=i,l=C.DefaultMemory){let o=this.allocStringCached(l);return h_(this.ref,i,e,s,a,n,r,o)}store(i,e,r,n,s=0,a=i,l=C.DefaultMemory){let o=this.allocStringCached(l);return x_(this.ref,i,s,a,e,r,n,o)}atomic_load(i,e,r,n=0,s=C.DefaultMemory,a=1){let l=this.allocStringCached(s);return b_(this.ref,i,n,r,e,l,a)}atomic_store(i,e,r,n,s=0,a=C.DefaultMemory,l=1){let o=this.allocStringCached(a);return A_(this.ref,i,s,e,r,n,o,l)}atomic_rmw(i,e,r,n,s,a,l=C.DefaultMemory,o=1){let u=this.allocStringCached(l);return W_(this.ref,i,e,r,n,s,a,u,o)}atomic_cmpxchg(i,e,r,n,s,a,l=C.DefaultMemory,o=1){let u=this.allocStringCached(l);return H_(this.ref,i,e,r,n,s,a,u,o)}atomic_wait(i,e,r,n,s=C.DefaultMemory){let a=this.allocStringCached(s);return Z_(this.ref,i,e,r,n,a)}atomic_notify(i,e,r=C.DefaultMemory){let n=this.allocStringCached(r);return th(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return nh(this.ref,e)}local_set(i,e,r){return r&&this.useShadowStack&&(e=this.tostack(e)),un(this.ref,i,e)}global_set(i,e){let r=this.allocStringCached(i);return o_(this.ref,r,e)}table_set(i,e,r){let n=this.allocStringCached(i);return jh(this.ref,n,e,r)}block(i,e,r=L.None){let n=this.allocStringCached(i),s=he(e),a=Gf(this.ref,n,s,e.length,r);return ie(s),a}flatten(i,e=L.None){let r=i.length;if(r==0)return this.nop();if(r==1){let n=i[0];switch($(n)){case 19:case 56:case 23:return n}let s=se(n);return s!=L.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,r=0){let n=this.allocStringCached(i);return Kf(this.ref,n,e,r)}drop(i){return To(this.ref,i)}maybeDrop(i){let e=Ft(i);return e!=L.None&&e!=L.Unreachable?To(this.ref,i):i}maybeDropCondition(i,e){return(ki(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],se(e)):e}loop(i,e){let r=this.allocStringCached(i);return qf(this.ref,r,e)}if(i,e,r=0){return Df(this.ref,i,e,r)}nop(){return O_(this.ref)}return(i=0){return V_(this.ref,i)}select(i,e,r){return M_(this.ref,r,i,e)}switch(i,e,r,n=0){let s=i.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(i[c]));let l=he(a),o=this.allocStringCached(e),u=Qf(this.ref,l,s,o,r,n);return ie(l),u}call(i,e,r,n=!1){let s=this.allocStringCached(i),a=he(e),l=n?t_(this.ref,s,a,e?e.length:0,r):e_(this.ref,s,a,e?e.length:0,r);return ie(a),l}return_call(i,e,r){return this.call(i,e,r,!0)}call_indirect(i,e,r,n,s,a=!1){let l=this.allocStringCached(i??C.DefaultTable),o=he(r),u=a?n_(this.ref,l,e,o,r?r.length:0,n,s):r_(this.ref,l,e,o,r?r.length:0,n,s);return ie(o),u}return_call_indirect(i,e,r,n,s){return this.call_indirect(i,e,r,n,s,!0)}unreachable(){return q_(this.ref)}memory_copy(i,e,r,n=C.DefaultMemory,s=C.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return Fh(this.ref,i,e,r,a,l)}memory_fill(i,e,r,n=C.DefaultMemory){let s=this.allocStringCached(n);return Ph(this.ref,i,e,r,s)}try(i,e,r,n,s=null){let a=r.length,l=new Array(a);for(let h=0;h<a;++h)l[h]=this.allocStringCached(r[h]);let o=he(l),u=he(n),c=this.allocStringCached(i),f=this.allocStringCached(s),_=Xh(this.ref,c,e,o,a,u,n.length,f);return ie(u),ie(o),_}throw(i,e){let r=this.allocStringCached(i),n=he(e),s=Yh(this.ref,r,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return td(this.ref,e)}pop(i){return ad(this.ref,i)}tuple_make(i){let e=he(i),r=rd(this.ref,e,i.length);return ie(e),r}tuple_extract(i,e){return nd(this.ref,i,e)}simd_extract(i,e,r){return sh(this.ref,i,e,r)}simd_replace(i,e,r,n){return lh(this.ref,i,e,r,n)}simd_shuffle(i,e,r){assert(r.length==16);let n=Mn(r),s=ph(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,r,n){return _h(this.ref,i,e,r,n)}simd_shift(i,e,r){return yh(this.ref,i,e,r)}simd_load(i,e,r,n,s=C.DefaultMemory){let a=this.allocStringCached(s);return xh(this.ref,i,r,n,e,a)}simd_loadstorelane(i,e,r,n,s,a,l=C.DefaultMemory){let o=this.allocStringCached(l);return Ah(this.ref,i,r,n,s,e,a,o)}ref_is_null(i){return Gh(this.ref,i)}ref_as(i,e){return tu(this.ref,i,e)}ref_as_nonnull(i){return lg(se(i))?tu(this.ref,0,i):i}ref_func(i,e){let r=this.allocStringCached(i);return Uh(this.ref,r,Ht(e))}i31_new(i){return ld(this.ref,i)}i31_get(i,e){return ud(this.ref,i,e)}addGlobal(i,e,r,n){let s=this.allocStringCached(i);return hm(this.ref,s,e,r,n)}getGlobal(i){let e=this.allocStringCached(i);return sp(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return sp(this.ref,e)?(dm(this.ref,e),!0):!1}addTag(i,e,r){let n=this.allocStringCached(i);return Tm(this.ref,n,e,r)}getTag(i){let e=this.allocStringCached(i);return Am(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);Em(this.ref,e)}addFunction(i,e,r,n,s){let a=this.allocStringCached(i),l=he(n),o=ti(this.ref,a,e,r,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,r){$d(i,e,this.allocStringCached(r))}getFunction(i){let e=this.allocStringCached(i);return ri(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);xn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return ri(this.ref,e)!=0}addTemporaryFunction(i,e,r){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=he(e),a=ti(this.ref,n,je(e),i,0,0,r);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");xn(this.ref,i)}setStart(i){Cm(this.ref,i)}addFunctionExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return ea(this.ref,r,n)}addTableExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return lm(this.ref,r,n)}addMemoryExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return om(this.ref,r,n)}addGlobalExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return um(this.ref,r,n)}addTagExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return pm(this.ref,r,n)}removeExport(i){let e=this.allocStringCached(i);ra(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return ta(this.ref,e)!=0}addFunctionImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);rm(this.ref,a,l,o,n,s)}addTableImport(i,e,r){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(r);im(this.ref,n,s,a)}addMemoryImport(i,e,r,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(r);nm(this.ref,s,a,l,n)}addGlobalImport(i,e,r,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);sm(this.ref,a,l,o,n,s)}addTagImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);am(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,r,n,s=null,a=C.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=r.length,f=new Array(c),_=new Uint8Array(c),h=new Array(c),m=new Array(c);for(let E=0;E<c;++E){let k=unchecked(r[E]),F=k.buffer,R=k.offset;unchecked(f[E]=Mn(F)),unchecked(_[E]=0),unchecked(h[E]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(m[E]=F.length)}let x=he(f),g=Mn(_),T=he(h),I=Pp(m);wm(this.ref,i,e,o,0,x,g,T,I,c,l,!1,u),ie(I),ie(T),ie(g),ie(x);for(let E=c-1;E>=0;--E)ie(unchecked(f[E]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,r,n,s){let a=this.allocStringCached(i),l=n.length,o=new Array(l);for(let f=0;f<l;++f)unchecked(o[f]=this.allocStringCached(n[f]));let u=he(o),c=lp(this.ref,a);c?(Rm(c,e),Fm(c,r)):c=ap(this.ref,a,e,r,L.Funcref),km(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(i){let e=this.allocStringCached(i);lp(this.ref,e)||ap(this.ref,e,0,t.UNLIMITED_TABLE,L.Funcref)}addCustomSection(i,e){let r=this.allocStringCached(i),n=Mn(e);Wm(this.ref,r,n,e.length),ie(n)}getOptimizeLevel(){return ly()}setOptimizeLevel(i){oy(i)}getShrinkLevel(){return uy()}setShrinkLevel(i){py(i)}getDebugInfo(){return cy()}setDebugInfo(i){fy(i)}getTrapsNeverHappen(){return _y()}setTrapsNeverHappen(i){hy(i)}getClosedWorld(){return dy()}setClosedWorld(i){my(i)}getLowMemoryUnused(){return yy()}setLowMemoryUnused(i){gy(i)}getZeroFilledMemory(){return by()}setZeroFilledMemory(i){xy(i)}getFastMath(){return Ty()}setFastMath(i){Ay(i)}getGenerateStackIR(){return Ey()}setGenerateStackIR(i){vy(i)}getOptimizeStackIR(){return Sy()}setOptimizeStackIR(i){Iy(i)}getPassArgument(i){let e=this.allocStringCached(i),r=Ry(e);return r?Ue(r):null}setPassArgument(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);Fy(r,n)}clearPassArguments(){ky()}getAlwaysInlineMaxSize(){return wy()}setAlwaysInlineMaxSize(i){Cy(i)}getFlexibleInlineMaxSize(){return Py()}setFlexibleInlineMaxSize(i){By(i)}getOneCallerInlineMaxSize(){return Ly()}setOneCallerInlineMaxSize(i){Ny(i)}getAllowInliningFunctionsWithLoops(){return My()}setAllowInliningFunctionsWithLoops(i){Gy(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return Om(this.ref)}setFeatures(i){i&16&&(i|=524288),qm(this.ref,i)}runPasses(i,e=0){let r=i.length,n=new Array(r);for(let a=0;a<r;++a)n[a]=kl(i[a]);let s=he(n);e?em(e,this.ref,s,r):Bm(this.ref,s,r),ie(s);for(let a=r-1;a>=0;--a)ie(n[a])}optimize(i,e,r=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(r),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=i>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),i>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(i<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(i>=2?4:0),i>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),i>=2&&a.push("once-reduction"),(i>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(i>=3||e>=1)&&(a.push("rse"),a.push("vacuum"),a.push("code-folding"),a.push("ssa-nomerge"),a.push("local-cse"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),i>=3&&(a.push("simplify-locals-nostructure"),a.push("flatten"),a.push("vacuum"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),a.push("local-cse"),a.push("licm"),a.push("merge-locals"),a.push("reorder-locals")),a.push("optimize-instructions"),i>=2&&a.push("avoid-reinterprets"),a.push("dce"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),this.getFeatures()&512&&a.push("tuple-optimization"),i>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):i>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(i>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(i>=2||e>=1)&&a.push("local-cse"),a.push("reorder-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("coalesce-locals"),a.push("reorder-locals"),a.push("vacuum"),(i>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),i>=3&&a.push("optimize-instructions"),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(i>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(i>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),i>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),i>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),i>=2||e>=1?(a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")):a.push("precompute"),a.push("directize"),a.push("dae-optimizing"),(i>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(i>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),i>=3&&(a.push("simplify-globals"),a.push("vacuum"),a.push("precompute-propagate"),a.push("inlining-optimizing"),a.push("directize"),a.push("dae-optimizing"),a.push("local-cse"),a.push("merge-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("vacuum"),a.push("inlining"),a.push("precompute-propagate"),a.push("rse"),a.push("vacuum"),a.push("ssa-nomerge"),a.push("simplify-locals"),a.push("coalesce-locals")),a.push("optimize-instructions"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("vacuum"),this.getFeatures()&16384&&a.push("string-gathering"),a.push("simplify-globals-optimizing"),a.push("remove-unused-brs"),a.push("optimize-instructions"),a.push("vacuum")),a.push("reorder-globals"),a.push("reorder-functions"),(i>=2||e>=1)&&a.push("duplicate-function-elimination"),e>=2&&a.push("merge-similar-functions"),a.push("memory-packing"),a.push("remove-unused-module-elements"),(i>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return Pm(this.ref)==1}interpret(){Dm(this.ref)}toBinary(i=null){assert(ho()>=Lm());let e=this.lit,r=kl(i);Nm(e,this.ref,r);let n=Jt(e+0),s=Jt(e+4),a=Jt(e+8),l=new Cl(J2(assert(n),s),Ue(a));return r&&ie(r),a&&ie(a),ie(n),l}toText(i=!0){let e=i?Gm(this.ref):Mm(this.ref),r=Ue(e);return e&&ie(e),r||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let r=kl(i);return e.set(i,r),r}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let r=Ue(i);return e.set(i,r),r}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),wf(this.ref),this.ref=0}createRelooper(){return wl.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Rt(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return Nf(i,this.ref)}runExpression(i,e,r=50,n=1){let s=Ym(this.ref,e,r,n),a=$m(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(se(a)==se(i))}return a}isConstExpression(i){switch($(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Ri(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(Qe(i))&&this.isConstExpression(Me(i))}break}}return!1}addDebugInfoFile(i){let e=kl(i),r=Um(this.ref,e);return ie(e),r}getDebugInfoFile(i){return Ue(Vm(this.ref,i))}setDebugLocation(i,e,r,n,s){tm(i,e,r,n,s)}};function je(t){if(!t)return L.None;switch(t.length){case 0:return L.None;case 1:return t[0]}let i=he(t),e=pf(i,t.length);return ie(i),e}function qp(t){let i=cf(t),e=ut(i<<2);ff(t,e);let r=new Array(i);for(let n=0;n<i;++n)unchecked(r[n]=Jt(e+(n<<2)));return ie(e),r}function lg(t){return _f(t)}function $(t){return Rt(t)}function se(t){return Ft(t)}function ne(t){return E_(t)}function ve(t){return i64_low(cp(t))}function we(t){return i64_high(cp(t))}function Wp(t,i){let e=0,r=0;return i?(e=ve(t),r=we(t)):e=ne(t),i64_new(e,r)}function Ae(t){return v_(t)}function Ee(t){return S_(t)}function Kp(t){let i=ut(16);I_(t,i);let e=new Uint8Array(16);for(let r=0;r<16;++r)e[r]=br(i+r);return ie(i),e}function He(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)==0:i==L.I64?(ve(t)|we(t))==0:i==L.F32?Ae(t)==0:i==L.F64?Ee(t)==0:!1}function at(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)!=0:i==L.I64?(ve(t)|we(t))!=0:i==L.F32?Ae(t)!=0:i==L.F64?Ee(t)!=0:!1}function Bl(t){if($(t)!=14)return!1;let i=se(t);if(i==L.F32){let e=Ae(t);return e==0&&f32_as_i32(e)<0}if(i==L.F64){let e=Ee(t);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function E2(t){if($(t)!=14)return!1;let i=se(t);return i==L.F32?isNaN(Ae(t)):i==L.F64?isNaN(Ee(t)):!1}function Ll(t,i){let e=$(i),r=se(i);if(r==L.F32||r==L.F64){if(e==14)return isNaN(r==L.F32?Ae(i):Ee(i));if(e==10){let n=t.runExpression(i,0,8);if(n)return isNaN(r==L.F32?Ae(n):Ee(n))}}return!1}function ht(t){return Ws(t)}function Nl(t){return $r(t)}function Ml(t){return mr(t)}function Un(t){return Ks(t)}function Vn(t){return Ue(Hs(t))}function Ri(t){return B_(t)}function Qe(t){return hn(t)}function Me(t){return dn(t)}function On(t){return F_(t)}function Gl(t){return _n(t)}function jp(t){return y_(t)}function v2(t){return m_(t)}function S2(t){return cn(t)}function Hp(t){return d_(t)}function I2(t){return Qs(t)}function R2(t){return Xs(t)}function F2(t){return yr(t)}function k2(t){return fn(t)}function qn(t){return Ue(Ds(t))}function Wn(t){return $i(t)}function Kn(t,i){return en(t,i)}function zl(t){return tn(t)}function jn(t){return rn(t)}function Fi(t){return nn(t)}function w2(t){return Ue(Us(t))}function C2(t){return sn(t)}function P2(t){return Ue(Vs(t))}function B2(t){return an(t)}function Qp(t){return mn(t)}function Xp(t){return yn(t)}function L2(t){return gn(t)}function N2(t){return bn(t)}function M2(t){return gr(t)}function Hn(t){return Ue(Yr(t))}function dt(t){return Qt(t)}function Ve(t,i){return Xt(t,i)}function G2(t){return pn(t)}function z2(t){return kt(t)}function Jp(t){return Ue(ni(t))}function D2(t){return An(t)}function U2(t){return En(t)}function V2(t){let i=Ys(t),e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=$s(t,r));return e}function O2(t){return Ue(gm(t))}function q2(t){return bm(t)}function Zp(t){return xm(t)}function W2(t){return ia(t)}function K2(t){return Ue(vm(t))}function j2(t){return Sm(t)}function H2(t){return Im(t)}var wl=class t{constructor(i,e){this.module=i;this.ref=e}static create(i){return new t(i,jm(i.ref))}addBlock(i){return Hm(this.ref,i)}addBranch(i,e,r=0,n=0){Qm(i,e,r,n)}addBlockWithSwitch(i,e){return Xm(this.ref,i,e)}addBranchForSwitch(i,e,r,n=0){let s=Q2(r);Jm(i,e,s,r.length,n),ie(s)}renderAndDispose(i,e){return Zm(this.ref,i,e)}},zn=class{constructor(i,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=i,this.condition=e}addOrReplaceCase(i,e){let r=this.values.indexOf(i),n=this.addCode(e);r>=0?this.indexes[r]=n:(this.values.push(i),this.indexes.push(n))}addCase(i,e){this.values.push(i),this.indexes.push(this.addCode(e))}addCode(i){let e=this.cases,r=e.indexOf(i);return r<0&&(r=e.length,e.push(i)),r}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let r=this.module,n=this.cases,s=n.length;if(!s)return r.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),c=new Array(s);for(let x=0;x<s;++x)unchecked(c[x]=`case${x}${e}`);u[0]=r.local_set(i,this.condition,!1);for(let x=0;x<l;++x){let g=unchecked(o[x]);unchecked(u[1+x]=r.br(c[g],r.binary(15,r.local_get(i,L.I32),r.i32(a[x]))))}let f=this.defaultIndex,_=`default${e}`;u[1+l]=r.br(~f?c[f]:_);let h=r.block(c[0],u);for(let x=1;x<s;++x){let g=n[x-1];g.unshift(h),h=r.block(unchecked(c[x]),g)}let m=n[s-1];return m.unshift(h),r.block(~f?null:_,m)}},Yp=(T=>(T[T.None=0]="None",T[T.Branches=1]="Branches",T[T.Calls=2]="Calls",T[T.ReadsLocal=4]="ReadsLocal",T[T.WritesLocal=8]="WritesLocal",T[T.ReadsGlobal=16]="ReadsGlobal",T[T.WritesGlobal=32]="WritesGlobal",T[T.ReadsMemory=64]="ReadsMemory",T[T.WritesMemory=128]="WritesMemory",T[T.ReadsTable=256]="ReadsTable",T[T.WritesTable=512]="WritesTable",T[T.ImplicitTrap=1024]="ImplicitTrap",T[T.IsAtomic=2048]="IsAtomic",T[T.Throws=4096]="Throws",T[T.DanglingPop=8192]="DanglingPop",T[T.TrapsNeverHappen=16384]="TrapsNeverHappen",T[T.Any=32767]="Any",T))(Yp||{});function ki(t,i){return Km(t,i)}function Dl(t,i){return(ki(t,i)&-21)!=0}function Mn(t){if(!t)return 0;let i=t.length,e=ut(i);for(let r=0;r<i;++r)Le(e+r,unchecked(t[r]));return e}function Q2(t){if(!t)return 0;let i=t.length,e=ut(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);sa(r,s),r+=4}return e}function Pp(t){if(!t)return 0;let i=t.length,e=ut(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);sa(r,s),r+=4}return e}function he(t){if(!t)return 0;assert(ASC_TARGET!=2);let i=t.length,e=ut(i<<2),r=e;for(let n=0,s=i;n<s;++n){let a=unchecked(t[n]);sa(r,a),r+=4}return e}function X2(t){let i=0;for(let e=0,r=t.length;e<r;++e){let n=t.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:_i(n)&&e+1<r&&da(t.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function kl(t){if(t==null)return 0;let i=X2(t),e=ut(i+1)>>>0,r=e;if(i==t.length)for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0;Le(r++,a)}else for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0,l;a<=127?Le(r++,a):a<=2047?(Le(r++,192|a>>>6),Le(r++,128|a&63)):_i(a)&&n+1<s&&da(l=t.charCodeAt(n+1))?(a=Fn(a,l),++n,Le(r++,240|a>>>18),Le(r++,128|a>>>12&63),Le(r++,128|a>>>6&63),Le(r++,128|a&63)):(Le(r++,224|a>>>12),Le(r++,128|a>>>6&63),Le(r++,128|a&63))}return Le(r,0),e}function J2(t,i){let e=new Uint8Array(i);for(let r=0;r<i;++r)unchecked(e[r]=br(t+r));return e}function Ue(t){if(!t)return null;let i=new Array,e,r,n,s;for(;e=br(t++);){if(!(e&128)){i.push(e);continue}if(r=br(t++)&63,(e&224)==192){i.push((e&31)<<6|r);continue}if(n=br(t++)&63,(e&240)==224?e=(e&15)<<12|r<<6|n:(s=br(t++)&63,(e&248)==240?e=(e&7)<<18|r<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(Rn|a>>>10),i.push(fi|a&1023)}}return String.fromCharCodes(i)}var Cl=class{constructor(i,e){this.output=i;this.sourceMap=e}},Mt=!1;function Qn(t){if(t==p.void)return L.None;let i=og(t);if(i)return i;let e=t;if(t=t.nonNullableType,i=t.ref)return de(Ht(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let r=ey(0),n=new Map;$t(r,n,t);let s=na(r),a=ut(max(4*s,8));if(!ny(r,a,a,a+4)){let l=Jt(a),o=Jt(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Bp.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let c=l[o];assert(!c.is(512));let f=Jt(a+4*o),_=de(f,!1);assert(!c.ref),c.ref=_,Mt&&console.log(` set ${c.toString()}`);let h=c.getClass();if(h){let m=h.program.module;sy(m.ref,f,m.allocStringCached(h.internalName));let x=h.members;if(x){let g=Ff(f),T=0;for(let I=Map_values(x),E=0,k=I.length;E<k;++E){let F=I[E];if(F.kind!=10)continue;let R=F.instance;!R||!R.isField||ay(m.ref,f,T++,m.allocStringCached(R.name))}assert(g==T)}}}return ie(a),Mt&&console.log(` finalize ${t.toString()}`),i=assert(t.ref),de(Ht(i),e.is(512))}function og(t){switch(t.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return L.I32;case 4:case 9:return L.I64;case 5:case 10:{if(t.isInternalReference)break;return t.size==64?L.I64:L.I32}case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return de(ge.Func,t.is(512));case 14:return de(ge.Extern,t.is(512));case 16:return de(ge.Any,t.is(512));case 17:return de(ge.Eq,t.is(512));case 18:return de(ge.Struct,t.is(512));case 19:return de(ge.Array,t.is(512));case 20:return de(ge.I31,t.is(512));case 21:return de(ge.String,t.is(512));case 25:assert(!1)}return 0}function Z2(t){switch(t.kind){case 0:case 1:case 6:return Gn.I8;case 2:case 7:return Gn.I16}return Gn.NotPacked}function $t(t,i,e){if(e==p.void)return L.None;let r=og(e);if(r||(assert(!e.is(512)),r=e.ref))return r;if(i.has(e))return Mt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Mt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=$t(t,i,a.type));let o=na(t);op(t,1),Mt&&console.log(` block [${o}]: ${e.toString()}`);let u=up(t,o);r=si(t,u,!1),i.set(e,r);let c=new Array,f=new Array,_=new Array,h=n.members;if(h)for(let T=Map_values(h),I=0,E=T.length;I<E;++I){let k=T[I];if(k.kind!=10)continue;let F=k.instance;if(!F||!F.isField)continue;let R=F.type;Mt&&console.log(` field ${R.toString()}`),R.is(512)?c.push(si(t,Ht($t(t,i,R.nonNullableType)),!0)):c.push($t(t,i,R)),f.push(Z2(R)),_.push(1)}let m=he(c),x=Pp(f),g=Pp(_);return Mt&&console.log(` concretize [${o}]: ${e.toString()}`),ry(t,o,m,x,g,c.length),a&&(Mt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),iy(t,o,Ht(l))),ie(g),ie(x),ie(m),r}let s=e.getSignature();if(s){let a=na(t);op(t,1);let l=si(t,up(t,a),!1);i.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let m=0,x=c.length;m<x;++m){let g=c[m];g.is(512)?o.push(si(t,Ht($t(t,i,g.nonNullableType)),!0)):o.push($t(t,i,g))}let f=s.returnType;u.push(f==p.void?L.None:f.is(512)?si(t,Ht($t(t,i,f.nonNullableType)),!0):$t(t,i,f));let _;if(o.length>1){let m=he(o);_=pp(t,m,o.length),ie(m)}else _=o.length?o[0]:L.None;let h;if(u.length>1){let m=he(u);h=pp(t,m,u.length),ie(m)}else h=u[0];return Mt&&console.log(` concretize [${a}]: ${e.toString()}`),ty(t,a,_,h),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Vl=(F=>(F[F.None=0]="None",F[F.Returns=1]="Returns",F[F.ReturnsWrapped=2]="ReturnsWrapped",F[F.ReturnsNonNull=4]="ReturnsNonNull",F[F.Throws=8]="Throws",F[F.Breaks=16]="Breaks",F[F.Continues=32]="Continues",F[F.AccessesThis=64]="AccessesThis",F[F.CallsSuper=128]="CallsSuper",F[F.Terminates=256]="Terminates",F[F.ConditionallyReturns=512]="ConditionallyReturns",F[F.ConditionallyThrows=1024]="ConditionallyThrows",F[F.ConditionallyBreaks=2048]="ConditionallyBreaks",F[F.ConditionallyContinues=4096]="ConditionallyContinues",F[F.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",F[F.MayReturnNonThis=16384]="MayReturnNonThis",F[F.UncheckedContext=32768]="UncheckedContext",F[F.CtorParamContext=65536]="CtorParamContext",F[F.InlineContext=131072]="InlineContext",F[F.AnyCategorical=511]="AnyCategorical",F[F.AnyConditional=15872]="AnyConditional",F))(Vl||{}),Xn=(s=>(s[s.None=0]="None",s[s.Constant=1]="Constant",s[s.Wrapped=2]="Wrapped",s[s.NonNull=4]="NonNull",s[s.Initialized=8]="Initialized",s))(Xn||{}),$p=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))($p||{}),ec=(r=>(r[r.Unknown=0]="Unknown",r[r.True=1]="True",r[r.False=2]="False",r))(ec||{}),zt=class t{constructor(i,e=null){this.targetFunction=i;this.inlineFunction=e;this.parent=null;this.outer=null;this.flags=0;this.continueLabel=null;this.breakLabel=null;this.scopedLocals=null;this.scopedTypeAlias=null;this.localFlags=[];this.thisFieldFlags=null;this.inlineReturnLabel=null;this.trueFlows=null;this.falseFlows=null;this.tryFinallyPendingActionLocal=-1;this.tryFinallyPendingValueLocal=-1;this.tryFinallyDispatchLabel=null;this.tryFinallyReturnType=null}static createDefault(i){let e=new t(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let r=new t(i,e);return r.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&r.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&r.set(32768),r}get isInline(){return this.inlineFunction!=null}get isInTryFinally(){return this.tryFinallyPendingActionLocal>=0}getTryFinallyContext(){let i=this;for(;i;){if(i.tryFinallyPendingActionLocal>=0)return i;i=i.parent}return null}get sourceFunction(){let i=this.inlineFunction;return i||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}deriveConditionalFlags(){let i=this.flags&15872;return this.is(1)&&(i|=512),this.is(8)&&(i|=1024),this.is(16)&&(i|=2048),this.is(32)&&(i|=4096),this.is(64)&&(i|=8192),i}fork(i=!1,e=i){let r=new t(this.targetFunction,this.inlineFunction);if(r.parent=this,r.flags=this.flags,r.outer=this.outer,i?r.flags&=-2065:r.breakLabel=this.breakLabel,e?r.flags&=-4129:r.continueLabel=this.continueLabel,r.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);r.thisFieldFlags=pe(n)}else assert(!this.thisFieldFlags);return r.inlineReturnLabel=this.inlineReturnLabel,r}forkThen(i,e=!1,r=e){let n=this.fork(e,r),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let r=this.trueFlows;r||(this.trueFlows=r=new Map),r.set(i,e)}forkElse(i){let e=this.fork(),r=this.falseFlows;return r&&r.has(i)&&e.inherit(changetype(r.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let r=this.falseFlows;r||(this.falseFlows=r=new Map),r.set(i,e)}addScopedTypeAlias(i,e){let r=this.scopedTypeAlias;r||(this.scopedTypeAlias=r=new Map),r.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let r=e.scopedTypeAlias;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let r=this.sourceFunction.parent;return r.kind==5?r.flow.lookupTypeAlias(i):null}getTempLocal(i){let e=this.targetFunction.addLocal(i);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(i){let e=this.scopedLocals;return e&&e.has(i)?assert(e.get(i)):null}addScopedLocal(i,e){let r=this.getTempLocal(e);r.name=i,r.internalName=Ce(i,r.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,r.set(67108864),n.set(i,r),r}addScopedDummyLocal(i,e,r){let n=new Oe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,r.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,r,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(i)){let l=assert(s.get(i));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,i):this.program.errorRelated(2300,n.range,l.declaration.name.range,i)),l}assert(r<this.targetFunction.localsByIndex.length);let a=new Oe(i,r,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let r=assert(e.get(i));assert(r.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let r=e.scopedLocals;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let r=e.lookupLocal(i);if(r)return r;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let r=e;this.thisFieldFlags=new Map;let n=r.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=10)continue;let u=o.instance;!u||!u.isField||(u.prototype.parent!=r||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let r=this.thisFieldFlags;return r!=null&&r.has(i)?(changetype(r.get(i))&e)==e:!1}setThisFieldFlag(i,e){let r=this.thisFieldFlags;if(r)if(assert(this.sourceFunction.is(524288)),r.has(i)){let n=changetype(r.get(i));r.set(i,n|e)}else r.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,r=i.breakStack;return r?r.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,r=assert(e.breakStack);assert(r.length),assert(r.pop()==i)}inherit(i){assert(i.targetFunction==this.targetFunction);let e=i.flags;this.breakLabel!=i.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=i.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=i.localFlags,this.thisFieldFlags=i.thisFieldFlags}mergeSideEffects(i){assert(i.targetFunction==this.targetFunction);let e=this.flags,r=i.flags,n=0;e&1?n|=1:r&1?n|=512:n|=(e|r)&512,n|=e&r&2,n|=e&r&4,e&8?n|=8:r&8?n|=1024:n|=(e|r)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?r&16?n|=2048:n|=(e|r)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?r&32?n|=4096:n|=(e|r)&4096:n|=e&4096,e&64?r&64?n|=64:n|=8192:r&64&&(n|=8192),n|=(e|r)&16384,n|=e&r&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,r=e.length,n=i.localFlags,s=n.length,a=max(r,s);for(let l=0;l<a;++l){let o=l<r?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(i,e){assert(i.targetFunction==e.targetFunction),assert(i.targetFunction==this.targetFunction);let r=i.flags,n=e.flags,s=0;r&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(r|n)&512,r&2&&n&2&&(s|=2),r&4&&n&4&&(s|=4),r&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(r|n)&1024,r&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(r|n)&2048,r&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(r|n)&4096,r&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(r|n)&8192,s|=(r|n)&16384,r&128&&n&128&&(s|=128),r&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(r&256){if(!(n&256)){let o=e.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}}else if(n&256){let o=i.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,c=e.localFlags,f=c.length,_=max(u,f);for(let h=0;h<_;++h){let m=h<u?o[h]:0,x=h<f?c[h]:0;a[h]=m&x&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),f=0,_=c.length;f<_;++f){let h=c[f];(changetype(l.get(h))&1)!=0&&u.has(h)&&changetype(u.get(h))&1&&o.set(h,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let r=this.localFlags.length,n=i.localFlags.length,s=this.targetFunction;assert(s==i.targetFunction);let a=s.localsByIndex;assert(a==i.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(r,n);o<u;++o){let f=a[o].type;f.isShortIntegerValue&&this.isLocalFlag(o,2)&&!i.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),f.isNullableReference&&this.isLocalFlag(o,4)&&!i.isLocalFlag(o,4)&&(this.unsetLocalFlag(o,4),l=!0)}return l&&(assert(a.length>=e),a.length=e,this.localFlags.length>e&&(this.localFlags.length=e)),l}isNonnull(i,e){if(!e.isNullableReference)return!0;switch($(i)){case 9:{if(!Un(i))break;let r=this.targetFunction.localsByIndex[Nl(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}case 8:{let r=this.targetFunction.localsByIndex[ht(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch($(i)){case 9:{if(!Un(i))break;let r=this.targetFunction.localsByIndex[Nl(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4),this.inheritNonnullIfTrue(Ml(i),e);break}case 8:{let r=this.targetFunction.localsByIndex[ht(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4);break}case 2:{let r=Fi(i);r&&He(r)&&(this.inheritNonnullIfTrue(zl(i),e),this.inheritNonnullIfTrue(jn(i),e));break}case 15:{switch(On(i)){case 20:case 21:{this.inheritNonnullIfFalse(Gl(i),e);break}}break}case 16:{switch(Ri(i)){case 15:case 40:{let r=Qe(i),n=Me(i);at(r)?this.inheritNonnullIfTrue(n,e):at(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Qe(i),n=Me(i);He(r)?this.inheritNonnullIfTrue(n,e):He(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=Hn(i);if(r==d.String_eq){assert(dt(i)==2);let n=Ve(i,0),s=Ve(i,1);at(n)?this.inheritNonnullIfTrue(s,e):at(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(dt(i)==2);let n=Ve(i,0),s=Ve(i,1);He(n)?this.inheritNonnullIfTrue(s,e):He(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(dt(i)==1),this.inheritNonnullIfFalse(Ve(i,0),e)):r==d.tostack&&(assert(dt(i)==1),this.inheritNonnullIfTrue(Ve(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch($(i)){case 15:{switch(On(i)){case 20:case 21:{this.inheritNonnullIfTrue(Gl(i),e);break}}break}case 2:{let r=jn(i);Fi(i)&&at(r)&&(this.inheritNonnullIfFalse(zl(i),e),this.inheritNonnullIfFalse(Fi(i),e));break}case 16:{switch(Ri(i)){case 15:case 40:{let r=Qe(i),n=Me(i);He(r)?this.inheritNonnullIfTrue(n,e):He(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Qe(i),n=Me(i);at(r)?this.inheritNonnullIfTrue(n,e):at(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=Hn(i);if(r==d.String_eq){assert(dt(i)==2);let n=Ve(i,0),s=Ve(i,1);He(n)?this.inheritNonnullIfTrue(s,e):He(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(dt(i)==2);let n=Ve(i,0),s=Ve(i,1);at(n)?this.inheritNonnullIfTrue(s,e):at(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(dt(i)==1),this.inheritNonnullIfTrue(Ve(i,0),e)):r==d.tostack&&(assert(dt(i)==1),this.inheritNonnullIfFalse(Ve(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let r;switch($(i)){case 8:{let n=this.targetFunction.localsByIndex[ht(i)];return!this.isLocalFlag(n.index,2,!0)||Ul(n.type,e)}case 9:return assert(Un(i)),this.canOverflow(Ml(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Vn(i))));return assert(n.kind==0||n.kind==3),Ul(n.type,e)}case 16:{switch(Ri(i)){case 15:case 40:case 57:case 70:case 16:case 41:case 58:case 71:case 17:case 18:case 42:case 43:case 59:case 72:case 19:case 20:case 44:case 45:case 60:case 73:case 21:case 22:case 46:case 47:case 61:case 74:case 23:case 24:case 48:case 49:case 62:case 75:return!1;case 2:return!($(r=Qe(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Me(i),e))||$(r=Me(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Qe(i),e)));case 7:return!($(r=Qe(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e)||$(r=Me(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e));case 10:{let n=32-e.size;return $(r=Me(i))!=14||ne(r)<n}case 11:{let n=32-e.size;return this.canOverflow(Qe(i),e)&&($(r=Me(i))!=14||ne(r)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!($(r=Me(i))==14&&ne(r)>n):this.canOverflow(Qe(i),e)&&!($(r=Me(i))==14&&ne(r)>=n)}case 4:case 5:case 6:return this.canOverflow(Qe(i),e)||this.canOverflow(Me(i),e)}break}case 15:{switch(On(i)){case 20:case 21:return!1;case 0:case 2:case 4:return e.size<7;case 47:return e.size<(e.isUnsignedIntegerValue?32:8);case 49:return e.size<(e.isUnsignedIntegerValue?64:8);case 48:return e.size<(e.isUnsignedIntegerValue?32:16);case 50:return e.size<(e.isUnsignedIntegerValue?64:16);case 51:return e.size<(e.isUnsignedIntegerValue?64:32)}break}case 14:{let n=0;switch(se(i)){case L.I32:{n=ne(i);break}case L.I64:{n=ve(i);break}case L.F32:{n=i32(Ae(i));break}case L.F64:{n=i32(Ee(i));break}case L.V128:return!1;default:assert(!1)}switch(e.kind){case 0:return(n&-2)!=0;case 1:return n<i8.MIN_VALUE||n>i8.MAX_VALUE;case 2:return n<i16.MIN_VALUE||n>i16.MAX_VALUE;case 6:return n<0||n>u8.MAX_VALUE;case 7:return n<0||n>u16.MAX_VALUE}break}case 12:{let n,s=Hp(i);switch(jp(i)){case 1:{n=s?p.i8:p.u8;break}case 2:{n=s?p.i16:p.u16;break}default:{n=s?p.i32:p.u32;break}}return Ul(n,e)}case 1:{if(!qn(i)){let n=assert(Wn(i)),s=Kn(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(jn(i),e)||this.canOverflow(assert(Fi(i)),e);case 17:return this.canOverflow(Qp(i),e)||this.canOverflow(Xp(i),e);case 6:{let s=this.program.instancesByName,a=assert(Hn(i));if(s.has(a)){let l=assert(s.get(a));assert(l.kind==5);let o=l,u=o.signature.returnType;return!o.flow.is(2)||Ul(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let r=new Array;return this.is(1)&&r.push("RETURNS"),this.is(2)&&r.push("RETURNS_WRAPPED"),this.is(4)&&r.push("RETURNS_NONNULL"),this.is(8)&&r.push("THROWS"),this.is(16)&&r.push("BREAKS"),this.is(32)&&r.push("CONTINUES"),this.is(64)&&r.push("ACCESSES_THIS"),this.is(128)&&r.push("CALLS_SUPER"),this.is(256)&&r.push("TERMINATES"),this.is(512)&&r.push("CONDITIONALLY_RETURNS"),this.is(1024)&&r.push("CONDITIONALLY_THROWS"),this.is(2048)&&r.push("CONDITIONALLY_BREAKS"),this.is(4096)&&r.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&r.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&r.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${r.join(" ")}`}};function Ul(t,i){return i.isShortIntegerValue&&(!t.isIntegerValue||t.size>i.size||t.isSignedIntegerValue!=i.isSignedIntegerValue)}var Kl=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(Kl||{}),Jn=class extends We{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}resolveType(e,r,n,s=null,a=0){if(e.currentlyResolving)return this.error(100,e.range,"Recursive types"),null;e.currentlyResolving=!0;let l=null;switch(e.kind){case 1:{l=this.resolveNamedType(e,r,n,s,a);break}case 2:{l=this.resolveFunctionType(e,r,n,s,a);break}case 3:{l=this.resolveTupleType(e,r,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,r,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let _=l.identifier.text;if(s&&s.has(_)){let h=assert(s.get(_));if(o&&o.length>0&&a==0&&this.error(2315,e.range,h.toString()),e.isNullable){if(h.isReference)return h.asNullable();a==0&&this.error(204,e.range,h.toString())}return h}}let c=this.resolveTypeName(l,r,n,a);if(!c)return null;let f=c.shadowType;if(f)c=f;else{if(c.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/i32`),p.i32;if(c.kind==6||c.kind==8){let _=this.resolveClassInclTypeArguments(c,o,r,n,pe(s),e,a);return _?e.isNullable?_.type.asNullable():_.type:null}}if(c.kind==14){let _=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let g=_.type;if(e.isNullable){if(g.isReference)return g.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return g}if(u){let g=l.identifier.text;if(tr.has(g)){let T=assert(tr.get(g)),I=new jl(this,e,n,s,a);return T(I)}}let h=_.typeParameterNodes,m=null;if(h){if(m=this.resolveTypeArguments(h,o,r,n,s=pe(s),e,a),!m)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let x=this.resolveType(_.typeNode,r,c,s,a);if(!x)return null;if(e.isNullable){if(x.isReference)return x.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return x}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,r,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,r,n,s,a),!o))return null;let u=e.parameters,c=u.length,f=new Array(c),_=0,h=!1;for(let T=0;T<c;++T){let I=u[T];switch(I.parameterKind){case 0:{_=T+1;break}case 2:{assert(T==c-1),h=!0;break}}let E=I.type;if(ke(E))return a==0&&this.error(1110,E.range),null;let k=this.resolveType(E,r,n,s,a);if(!k)return null;if(k==p.void)return a==0&&this.error(214,E.range,k.toString()),null;f[T]=k}let m=e.returnType,x;if(ke(m))a==0&&this.error(1110,m.range),x=p.void;else if(x=this.resolveType(m,r,n,s,a),!x)return null;let g=qe.create(this.program,f,x,o,_,h);return e.isNullable?g.type.asNullable():g.type}resolveTupleType(e,r,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],r,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,r,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,r,n,s=0){let a=null;if(r&&(a=r.lookupTypeAlias(e.identifier.text)),a||(a=n.lookup(e.identifier.text,!0)),!a)return s==0&&this.error(2304,e.range,e.identifier.text),null;let l=e,o=e.next;for(;o;){if(!(a=a.getMember(o.identifier.text)))return s==0&&this.error(2339,o.range,o.identifier.text,l.identifier.text),null;l=o,o=o.next}return a}resolveTypeArguments(e,r,n,s,a=new Map,l=null,o=0){let u=0,c=0;for(let m=0,x=e.length;m<x;++m)e[m].defaultType||++u,++c;let f=r?r.length:0;if(f<u||f>c)return o==0&&this.error(2558,f?le.join(r[0].range,r[f-1].range):l.range,(f<u?u:c).toString(),f.toString()),null;let _=new Array(c),h=pe(a);a.clear();for(let m=0;m<c;++m){let x=m<f?this.resolveType(r[m],n,s,h,o):this.resolveType(assert(e[m].defaultType),n,s,pe(a),o);if(!x)return null;a.set(e[m].name.text,x),_[m]=x}return _}maybeInferCall(e,r,n,s=0){let a=e.typeArguments;if(a)return r.is(65536)?this.resolveFunctionInclTypeArguments(r,a,n.sourceFunction,pe(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,r.internalName),null);if(r.is(65536)){let l=this.inferGenericTypeArguments(e,r,r.typeParameterNodes,n,s);return l?this.resolveFunction(r,l,pe(n.contextualTypeArguments),s):null}return this.resolveFunction(r,null,new Map,s)}inferGenericTypeArguments(e,r,n,s,a=0){if(!n)return null;let l=pe(s.contextualTypeArguments),o=n.length,u=new Set;for(let g=0;g<o;++g){let T=n[g].name.text;l.set(T,p.auto),u.add(T)}let c=r.functionTypeNode.parameters,f=c.length,_,h;switch(e.kind){case 10:{let g=e;_=g.args,h=g.argumentsRange;break}case 18:{let g=e;_=g.args,h=g.argumentsRange;break}default:return assert(!1),null}let m=_.length;for(let g=0;g<f;++g){let T=g<m?_[g]:c[g].initializer;if(!T){if(c[g].parameterKind==1)continue;return a==0&&(c[g].parameterKind==2?this.error(1140,h.atEnd):this.error(2554,e.range,f.toString(),m.toString())),null}let I=c[g].type;if(c[g].parameterKind==2&&(I=I.typeArguments[0]),I.hasGenericComponent(n)){let E=this.resolveExpression(T,s,p.auto,1);E&&this.propagateInferredGenericTypes(I,E,r,l,u)}}let x=new Array(o);for(let g=0;g<o;++g){let T=n[g],I=T.name.text;if(l.has(I)){let E=assert(l.get(I));if(E!=p.auto){x[g]=E;continue}let k=T.defaultType;if(k){let F=r.parent,R=null;(F.kind==7||F.kind==5)&&(R=F.contextualTypeArguments);let M=this.resolveType(k,null,r,R,a);if(!M)return null;x[g]=M;continue}}if(a==0){let E;switch(e.kind){case 10:E=e.expression.range;break;case 18:E=e.typeName.range;break;default:return assert(!1),null}this.error(1140,E.atEnd)}return null}return x}propagateInferredGenericTypes(e,r,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=r.classReference;if(u){let c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let f=u.typeArguments;if(f&&f.length==o.length){for(let _=0,h=f.length;_<h;++_)this.propagateInferredGenericTypes(o[_],f[_],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let c=assert(s.get(u));(c==p.auto||a.has(u)&&c.isAssignableTo(r))&&s.set(u,r)}}}else if(e.kind==2){let l=e,o=l.parameters,u=r.signatureReference;if(u){let c=u.parameterTypes;for(let m=0,x=min(c.length,o.length);m<x;++m)this.propagateInferredGenericTypes(o[m].type,c[m],n,s,a);let f=u.returnType;f!=p.void&&this.propagateInferredGenericTypes(l.returnType,f,n,s,a);let _=u.thisType,h=l.explicitThisType;_&&h&&this.propagateInferredGenericTypes(h,_,n,s,a);return}}}getTypeOfElement(e){let r=e.kind;if(r==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(ql(r)){let n=e.type,s=n.getClassOrWrapper(this.program);if(s){let a=s.wrappedType;a&&(n=a)}return n}return null}getElementOfType(e){let r=e.getClassOrWrapper(this.program);return r||null}lookupExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,r,n,s);case 9:return this.lookupBinaryExpression(e,r,n,s);case 10:return this.lookupCallExpression(e,r,n,s);case 12:return this.lookupCommaExpression(e,r,n,s);case 13:return this.lookupElementAccessExpression(e,r,n,s);case 15:return this.lookupFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,r,r.sourceFunction,s);case 25:return this.lookupThisExpression(e,r,n,s);case 24:return this.lookupSuperExpression(e,r,n,s);case 16:return this.lookupInstanceOfExpression(e,r,n,s);case 17:return this.lookupLiteralExpression(e,r,n,s);case 18:return this.lookupNewExpression(e,r,n,s);case 22:return this.lookupPropertyAccessExpression(e,r,n,s);case 23:return this.lookupTernaryExpression(e,r,n,s);case 28:return this.lookupUnaryPostfixExpression(e,r,n,s);case 29:return this.lookupUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}resolveExpression(e,r,n=p.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,r,n,s);return a.delete(e),l}doResolveExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,r,n,s);case 9:return this.resolveBinaryExpression(e,r,n,s);case 10:return this.resolveCallExpression(e,r,n,s);case 12:return this.resolveCommaExpression(e,r,n,s);case 13:return this.resolveElementAccessExpression(e,r,n,s);case 15:return this.resolveFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,r,n,r.sourceFunction,s);case 25:return this.resolveThisExpression(e,r,n,s);case 24:return this.resolveSuperExpression(e,r,n,s);case 16:return this.resolveInstanceOfExpression(e,r,n,s);case 17:return this.resolveLiteralExpression(e,r,n,s);case 18:return this.resolveNewExpression(e,r,n,s);case 22:return this.resolvePropertyAccessExpression(e,r,n,s);case 23:return this.resolveTernaryExpression(e,r,n,s);case 28:return this.resolveUnaryPostfixExpression(e,r,n,s);case 29:return this.resolveUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}lookupIdentifierExpression(e,r,n=r.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,r,p.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=r.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=r.outer;return o&&(l=o.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=n.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=this.program.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2304,e.range,a),null)}resolveIdentifierExpression(e,r,n=p.auto,s=r.sourceFunction,a=0){switch(e.kind){case 26:case 14:return p.bool;case 19:{let u=n.getClass();if(u)return u.type.asNullable();{let c=n.getSignature();if(c)return c.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,r,s,a);if(!l)return null;if(l.kind==4){let u=this.resolveFunction(l,null,new Map,a);if(!u)return null;l=u}let o=this.getTypeOfElement(l);return o||a==0&&this.error(225,e.range),o}ensureResolvedLazyGlobal(e,r=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,r):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,p.auto,r);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,r,n,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;let o=e.property.text;switch(l.kind){case 0:if(!this.ensureResolvedLazyGlobal(l,s))return null;case 3:case 1:{let u=l,c=u.type;if(c==p.void)return null;let f=c.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=f;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,c=u.getterInstance;if(!c){let h=assert(u.setterInstance);return this.errorRelated(229,a.range,h.declaration.range,u.name),null}let f=c.signature.returnType,_=f.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,f.toString()),null;l=_;break}case 15:{let c=l.parent;assert(c.kind==7);let f=c,_=assert(this.currentElementExpression),h=f.lookupOverload(1);if(!h)return s==0&&this.error(2329,_.range,c.internalName),null;let m=h.signature.returnType,x=m.getClassOrWrapper(this.program);if(!x)return s==0&&this.error(2339,e.property.range,o,m.toString()),null;l=x;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let f=this.resolveType(u.typeNode,null,u.parent,null,s);f&&u.setType(f)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let f=this.resolveFunction(l,null,new Map,1);if(f){let _=f.type.getClassOrWrapper(this.program);_&&(l=_)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let f=u.getMember(o);if(f){if(f.kind==10){let _=this.resolveProperty(f,s);if(!_)return null;f=_,_.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,f}switch(c=!1,u.kind){case 6:case 8:{let h=u.basePrototype;h&&(c=!0,u=h);break}case 7:case 9:{let h=u.base;h&&(c=!0,u=h);break}}}while(c);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,r,n,s=0){let a=this.lookupPropertyAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,r,n,s=0){let a=e.expression,l=this.resolveExpression(a,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o)do{let u=o.indexSignature;if(u)return this.currentThisExpression=a,this.currentElementExpression=e.elementExpression,u;o=o.base}while(o);return s==0&&this.error(2329,a.range,l.toString()),null}resolveElementAccessExpression(e,r,n,s=0){let a=this.lookupElementAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,r,n){let s=e.value;if(r){if(i64_gt(i64_add(s,i64_minimum),i64_zero)){let a=e.range;this.error(236,a,a.source.text.substring(a.start-1,a.end))}else if(i64_eq(s,i64_zero)){if(n.isFloatValue)return n.kind==11?p.f32:p.f64;if(!n.isIntegerValue)return p.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return p.bool;break}case 1:{if(i64_is_i8(s))return p.i8;break}case 6:{if(i64_is_u8(s))return p.u8;break}case 2:{if(i64_is_i16(s))return p.i16;break}case 7:{if(i64_is_u16(s))return p.u16;break}case 3:{if(i64_is_i32(s))return p.i32;break}case 8:{if(i64_is_u32(s))return p.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return p.isize32;break}return p.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return p.usize32;break}return p.usize64}case 4:return p.i64;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64}return i64_is_i32(s)?p.i32:i64_is_u32(s)?p.u32:p.i64}lookupAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),this.currentThisExpression=null,this.currentElementExpression=null,null)}case 2:return this.lookupExpression(e.expression,r,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,r,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}default:assert(!1)}return null}lookupUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 82:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 81:case 87:case 88:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Re.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Ie(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(25);if(c)return c.signature.returnType}return p.bool}case 96:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(26);if(c)return c.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Re.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Ie(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,r,n=p.auto,s=0){let a=this.resolveBinaryExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),null)}resolveBinaryExpression(e,r,n=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:return this.resolveExpression(a,r,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Re.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Re.fromBinaryToken(o));if(f)return f.signature.returnType}return p.bool}case 78:case 79:return p.bool;case 29:return p.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let f=this.resolveExpression(l,r,u,s);if(!f)return null;let _=p.commonType(u,f,n);return _||s==0&&this.error(2365,e.range,Ie(o),u.toString(),f.toString()),_}case 89:case 90:case 91:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Re.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let f=this.resolveExpression(l,r,n,s);if(!f)return null;let _=p.commonType(u,f,n);return(!_||!_.isIntegerValue)&&s==0&&this.error(2365,e.range,Ie(o),u.toString(),f.toString()),_}case 97:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),f}case 98:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f?u.is(512)&&c.is(512)?f:f.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}lookupThisExpression(e,r,n=p.auto,s=0){if(r.isInline){let o=r.lookupLocal(C.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=r.lookupLocal(C.this_);if(a||(a=r.lookupLocalInOuter(C.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=r.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,r,n=p.auto,s=0){let a=this.lookupThisExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,r,n=p.auto,s=0){if(r.isInline){let l=r.lookupLocal(C.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=r.sourceFunction.parent;if(a&&a.kind==7){let l=a.base;if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}return s==0&&this.error(2335,e.range),null}resolveSuperExpression(e,r,n=p.auto,s=0){let a=this.lookupSuperExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,r,n=p.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==p.f32?p.f32:p.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=p.auto,c=0;for(let f=0,_=o;f<_;++f){let h=l[f];if(h)if(h.kind==19&&o>1)++c;else{let m=this.resolveExpression(h,r,u);if(!m)return null;if(u==p.auto)u=m;else if(m!=u){let x=p.commonType(u,m,u);x&&(u=x)}}}if(u==p.auto)if(c==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return c>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,r,n=p.auto,s=0){let a=this.lookupLiteralExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,r,n=p.void,s=0){let a=this.resolveCallExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveCallExpression(e,r,n=p.void,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==d.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],r,n,s);let u=this.maybeInferCall(e,o,r,s);if(!u)return null;l=u}case 5:return l.signature.returnType;case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!ql(l.kind))break;let o=this.getElementOfType(l.type);if(!o||o.kind!=7)break;l=o}case 7:{let o=l.getTypeArgumentsTo(this.program.functionPrototype);if(!(o&&o.length))break;return assert(o[0].getSignature()).returnType}}return s==0&&this.error(2349,a.range,l.internalName),null}lookupCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],r,n,s)}resolveCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],r,n,s)}lookupInstanceOfExpression(e,r,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,r,n=p.auto,s=0){return p.bool}lookupTernaryExpression(e,r,n,s=0){let a=this.resolveTernaryExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveTernaryExpression(e,r,n,s=0){let a=this.resolveExpression(e.ifThen,r,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,r,a,s);if(!l)return null;let o=p.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,r,n,s=0){let a=this.resolveTypeName(e.typeName,r,r.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,r,r.sourceFunction,pe(r.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,r,n,s=0){let a=this.lookupNewExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,r,n,s=0){let a=this.resolveFunctionExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveFunctionExpression(e,r,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,r.sourceFunction,r.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&ke(l.returnType)){let c=o.expression,f=assert(u.getSignature()),_=zt.createDefault(r.sourceFunction),h=l.parameters;assert(f.parameterTypes.length==h.length);for(let x=0,g=h.length;x<g;x++){let T=h[x],I=f.parameterTypes[x];_.addScopedDummyLocal(T.name.text,I,T)}let m=this.resolveExpression(c,_,n,s);m&&(u.signatureReference=qe.create(this.program,f.parameterTypes,m,f.thisType,f.requiredParameters,f.hasRest))}return u}resolveFunction(e,r,n=new Map,s=0){let a=null,l=r?Wl(r):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let M=a.typeArguments;if(M){let z=assert(a.prototype.typeParameterNodes),D=z.length;assert(D==z.length);for(let W=0;W<D;++W){let q=z[W].name.text;n.set(q,M[W])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(r&&(c=r.length)>0){assert(u&&c==u.length);for(let R=0;R<c;++R)n.set(u[R].name.text,r[R])}else assert(!u||u.length==0);let f=null,_=o.explicitThisType;if(_){if(f=this.resolveType(_,null,e.parent,n,s),!f)return null;n.set(C.this_,f)}else a&&(f=a.type,n.set(C.this_,f));let h=o.parameters,m=h.length,x=new Array(m),g=0,T=!1;for(let R=0;R<m;++R){let M=h[R];M.parameterKind==0?g=R+1:M.parameterKind==2&&(T=!0);let z=M.type;if(ke(z))return s==0&&this.error(1110,z.range),null;let D=this.resolveType(z,null,e.parent,n,s);if(!D)return null;if(D==p.void)return s==0&&this.error(1110,z.range),null;x[R]=D}let I;if(e.is(4096))I=p.void;else if(e.is(524288))I=a.type;else{let R=o.returnType;if(ke(R))return s==0&&this.error(1110,R.range),null;let M=this.resolveType(R,null,e.parent,n,s);if(!M)return null;I=M}let E=qe.create(this.program,x,I,f,g,T),k=e.name;l.length&&(k+=`<${l}>`);let F=new gt(k,e,r,E,n);if(e.setResolvedInstance(l,F),a){let R=F.declaration.name.text,M=a.base;if(M){let z=M.getMember(R);if(z){this.discoveredOverride=!0;let D=!0;if(F.isAny(6144)){if(z.kind==10){let W=this.resolveProperty(z,s);if(W)if(F.is(2048)){let q=W.getterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(D=!1)}else{assert(F.is(4096));let q=W.setterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(D=!1)}}}else if(F.is(524288))D=!1;else if(z.kind==4){let W=z,q=W.typeParameterNodes,ee=q!=null&&q.length>0,Y=r!=null&&r.length>0;if(ee!=Y)this.errorRelated(242,F.identifierAndSignatureRange,z.identifierAndSignatureRange,R),D=!1;else{let te=this.resolveFunction(W,r,new Map,1);te&&F.signature.isAssignableTo(te.signature,!0)&&(D=!1)}}D&&this.errorRelated(2394,F.identifierAndSignatureRange,z.identifierAndSignatureRange)}}}return F}resolveFunctionInclTypeArguments(e,r,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),c=u.typeArguments;if(c){let f=assert(u.prototype.typeParameterNodes),_=c.length;assert(_==f.length);for(let h=0;h<_;++h)s.set(f[h].name.text,c[h])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),r,null,n,s,a,l),!o)return null}else if(r&&r.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let r=e.prototype.unboundOverrides;if(!r)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(r),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let c=u.parent,f;if(assert(c.kind==6||c.kind==8),f=c.instances,!!f)for(let _=Map_values(f),h=0,m=_.length;h<m;++h){let x=_[h];if(!x.isAssignableTo(n))continue;let g=null;if(e.isAny(6144)){let T=e.declaration.name.text,I=assert(x.getMember(T));assert(I.kind==10);let E=this.resolveProperty(I);if(!E)continue;e.is(2048)?g=E.getterInstance:(assert(e.is(4096)),g=E.setterInstance)}else{let T=x.getMember(u.name);if(T){assert(T.kind==4);let I=T;I.is(65536)==e.is(65536)&&(g=this.resolveFunction(I,e.typeArguments))}}g&&s.add(g)}}return Set_values(s)}resolveClass(e,r,n=new Map,s=0){let a=r?Wl(r):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new $n(o,e,r):l=new rr(o,e,r),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),r){let h=assert(e.typeParameterNodes),m=h.length,x=r.length;assert(x==m);for(let g=0;g<x;++g)n.set(h[g].name.text,r[g])}else{let h=e.typeParameterNodes;assert(!(h&&h.length>0))}l.contextualTypeArguments=n;let c=!1,f=e.basePrototype;if(f){let h=f;do{if(h==e)return this.error(2506,e.identifierNode.range,e.internalName),null;h=h.basePrototype}while(h);let m=assert(e.extendsNode),x=this.resolveClassInclTypeArguments(f,m.typeArguments,null,e.parent,pe(n),m,s);if(!x)return null;l.setBase(x),u.has(x)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let _=e.interfacePrototypes;if(_)for(let h=0,m=_.length;h<m;++h){let x=_[h],g=x;do{if(g==e)return this.error(2506,e.identifierNode.range,e.internalName),null;g=g.basePrototype}while(g);let T=assert(e.implementsNodes[h]),I=this.resolveClassInclTypeArguments(x,T.typeArguments,null,e.parent,pe(n),T,s);if(!I)return null;assert(I.kind==9),l.addInterface(I),u.has(I)&&(c=!0)}return c||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,r,n,s,a,l){let o=!1;return r.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,r.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):r.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,r.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):r.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):r.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,r){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let h=Set_values(l),m=0,x=h.length;m<x;++m){let g=h[m];assert(!s.has(g));let T=g.members;if(T)for(let I=Map_keys(T),E=0,k=I.length;E<k;++E){let F=unchecked(I[E]),R=assert(T.get(F)),M=e.getMember(F);M&&!this.checkOverrideVisibility(F,M,e,R,g,r)||(n.set(F,R),a.set(F,R))}}let o=0,u=e.base;if(u){let h=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let m=u.members;if(m)for(let x=Map_keys(m),g=0,T=x.length;g<T;++g){let I=unchecked(x[g]),E=assert(m.get(I));if(h&&E.is(32))continue;let k=e.getMember(I);k&&!this.checkOverrideVisibility(I,k,e,E,u,r)||(n.set(I,E),E.is(128)?a.set(I,E):a.delete(I))}o=u.nextMemoryOffset}let c=e.prototype,f=c.instanceMembers;if(f)for(let h=Map_values(f),m=0,x=h.length;m<x;++m){let g=unchecked(h[m]),T=g.name;if(u){let I=u.getMember(T);I&&this.checkOverrideVisibility(T,g,e,I,u,r)}switch(g.kind){case 4:{let I=g.toBound(e);e.add(I.name,I);break}case 10:{let I=g.toBound(e);if(I.isField){let E=this.resolveProperty(I,r);if(E){let k=E.type;if(k==p.void)break;if(k.isExternalReference){this.error(100,assert(I.typeNode).range,"Reference typed fields");break}let F=!0;if(u){let M=u.getMember(I.name);if(M&&M.kind==10){let z=M,D=this.resolveProperty(z,r);if(D&&D.isField){if(D.type!=E.type){this.errorRelated(2416,E.identifierNode.range,D.identifierNode.range,E.name,e.internalName,u.internalName);break}E.memoryOffset=D.memoryOffset,F=!1}}}if(F){let M=k.byteSize;assert(Ct(M));let z=M-1;o&z&&(o=(o|z)+1),E.memoryOffset=o,o+=M}I.instance=E,e.add(I.name,I);let R=assert(I.fieldDeclaration).type;R&&this.program.checkTypeSupported(k,R)}}else e.add(I.name,I);break}default:assert(!1)}!g.is(128)&&!g.is(65536)&&a.delete(T)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let h=Map_keys(a),m=0,x=h.length;m<x;++m){let g=h[m],T=assert(a.get(g));this.errorRelated(2515,e.identifierNode.range,T.identifierNode.range,e.internalName,g,T.parent.internalName)}e.nextMemoryOffset=o;{let h=e.getMember(C.constructor);if(h&&h.parent==e){assert(h.kind==4);let m=this.resolveFunction(h,null,assert(e.contextualTypeArguments),r);m&&(e.constructorInstance=m)}}}let _=c.operatorOverloadPrototypes;for(let h=Map_keys(_),m=0,x=h.length;m<x;++m){let g=unchecked(h[m]),T=assert(_.get(g));if(assert(g!=0),T.is(65536))continue;let I;if(T.is(262144)){let k=T.toBound(e);I=this.resolveFunction(k,null,new Map,r)}else I=this.resolveFunction(T,null,new Map,r);if(!I)continue;let E=e.operatorOverloads;if(E||(e.operatorOverloads=E=new Map),I.is(262144))switch(g){case 27:case 28:case 29:case 30:{let k=I.signature.returnType;k.isAssignableTo(e.type)||r==0&&this.error(2322,T.functionTypeNode.returnType.range,k.toString(),e.type.toString())}}if(E.has(g))r==0&&this.error(213,I.declaration.range);else if(E.set(g,I),g==1||g==2){let k=e.indexSignature;k||(e.indexSignature=k=new Yn(e)),g==1&&k.setType(I.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let h=Set_values(s),m=0,x=h.length;m<x;++m){let g=h[m],T=g.base==e,I=g.interfaces;if(I){let E=!1;for(let k=Set_values(I),F=0,R=k.length;F<R;++F){let M=k[F];M==e?T=!0:s.has(M)&&(E=!0)}if(E)continue}T&&this.finishResolveClass(g,r)}}resolveClassInclTypeArguments(e,r,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let f=e;f&&!c;f=f.basePrototype)c=f.constructorPrototype;if(!r&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),r,n,s,a,l,o),!u)return null}else if(r&&r.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,r=0){let n=e.instance;if(n)return n;e.instance=n=new Zn(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,r);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,r);l&&(n.setterInstance=l,n.is(4194304)||(assert(l.signature.parameterTypes.length==1),n.setType(l.signature.parameterTypes[0])))}return n.checkVisibility(this),n}ensureOneTypeArgument(e,r=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(r==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};function pg(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}var rc=class{constructor(){this.name="";this.typeName="";this.isArray=!1}};function wi(t,i){return Math.imul(t^i&255,16777619)>>>0}function ug(t,i){let e=i.length;t=wi(t,e&255),t=wi(t,e>>>8&255),t=wi(t,e>>>16&255),t=wi(t,e>>>24&255);for(let r=0;r<e;++r)t=wi(t,i.charCodeAt(r));return t>>>0}function cg(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=ug(i,t[e].name),i=ug(i,t[e].typeName),i=wi(i,t[e].isArray?1:0);return i>>>0}function Xl(t){let i=new Array,e=t.members;for(let r=0,n=e.length;r<n;++r){let s=e[r];if(s.kind!=55)continue;let a=s;if(a.is(32))continue;let l=a.type;if(l==null||!(l instanceof ce))continue;let o=l,u=o.name.identifier.text,c=new rc;c.name=a.name.text;let f=o.typeArguments;u=="Array"&&f!=null&&f.length==1&&f[0]instanceof ce?(c.typeName=f[0].name.identifier.text,c.isArray=!0):c.typeName=u,i.push(c)}return i}var ic=class{constructor(){this.oldType="";this.newType="";this.fnName="";this.oldVersion=0;this.delta=!1;this.sourceInternalPath=""}};function Hl(t){return t==null||!(t instanceof ce)?null:t.name.identifier.text}function lc(t,i){let e=new Array;for(let r=0,n=t.length;r<n;++r){let s=t[r];if(s.isLibrary)continue;let a=s.statements;for(let l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=56)continue;let c=u;if(!es(c.decorators,37))continue;let f=c.signature,_=null,h=null,m=!1;if(f.parameters.length==1)_=Hl(f.parameters[0].type),h=Hl(f.returnType);else if(f.parameters.length==2)_=Hl(f.parameters[0].type),h=Hl(f.parameters[1].type),m=!0;else continue;if(_==null||h==null)continue;let x=new ic;x.oldType=_,x.newType=h,x.fnName=c.name.text,x.delta=m,x.oldVersion=i.has(_)?cg(i.get(_)):pg(_),x.sourceInternalPath=s.internalPath,e.push(x)}}return e}var nc=class{constructor(){this.oldType="";this.oldVersion=0;this.steps=[]}};function oc(t,i){let e=new Array,r=new Set;r.add(t);let n=new Array,s=new Array;n.push(t),s.push(new Array);let a=0;for(;a<n.length;){let l=n[a],o=s[a];a++;for(let u=0,c=i.length;u<c;++u){let f=i[u];if(f.newType!=l||r.has(f.oldType))continue;r.add(f.oldType);let _=new Array;_.push(f);for(let m=0,x=o.length;m<x;++m)_.push(o[m]);let h=new nc;h.oldType=f.oldType,h.oldVersion=f.oldVersion,h.steps=_,e.push(h),n.push(f.oldType),s.push(_)}}return e}function Y2(t){switch(t){case"Documents":return 0;case"View":return 1;case"Events":return 2;case"Counter":return 3;case"Membership":return 4;case"Unique":return 5;case"Capacity":return 6;default:return-1}}function es(t,i){if(t==null)return!1;for(let e=0,r=t.length;e<r;++e)if(t[e].decoratorKind==i)return!0;return!1}var sc=class{constructor(){this.name="";this.family=0;this.keyType="";this.valueType=""}},ac=class{constructor(){this.name="";this.collections=new Array}},Ql=class{constructor(){this.bytes=new Array}u8(i){this.bytes.push(i&255)}u16(i){this.u8(i&255),this.u8(i>>>8&255)}u32(i){this.u8(i&255),this.u8(i>>>8&255),this.u8(i>>>16&255),this.u8(i>>>24&255)}str(i){this.u32(i.length);for(let e=0,r=i.length;e<r;++e)this.u8(i.charCodeAt(e)&255)}toBytes(){let i=this.bytes.length,e=new Uint8Array(i);for(let r=0;r<i;++r)e[r]=this.bytes[r];return e}};function tc(t,i){let e=t.typeArguments;if(e!=null&&e.length>i){let r=e[i];if(r instanceof ce)return r.name.identifier.text}return""}function fg(t){let i=new Array,e=t.sources,r=new Map;for(let l=0,o=e.length;l<o;++l){let u=e[l];if(u.isLibrary)continue;let c=u.statements;for(let f=0,_=c.length;f<_;++f){let h=c[f];if(h.kind!=52)continue;let m=h;es(m.decorators,15)&&r.set(m.name.text,Xl(m))}}let n=lc(e,r),s=new Map;for(let l=0,o=n.length;l<o;++l){let u=n[l].newType;if(s.has(u))continue;let c=new Array,f=oc(u,n);for(let _=0,h=f.length;_<h;++_)c.push(f[_].oldVersion);s.set(u,c)}for(let l=0,o=e.length;l<o;++l){let u=e[l];if(u.isLibrary)continue;let c=u.statements;for(let f=0,_=c.length;f<_;++f){let h=c[f];if(h.kind!=52)continue;let m=h;if(!es(m.decorators,31))continue;let x=new ac;x.name=m.name.text;let g=m.members;for(let T=0,I=g.length;T<I;++T){let E=g[T];if(E.kind!=55)continue;let k=E;if(!es(k.decorators,32))continue;let F=k.type;if(F==null||!(F instanceof ce))continue;let R=F,M=Y2(R.name.identifier.text);if(M<0)continue;let z=new sc;z.name=k.name.text,z.family=M,M==3||M==6?(z.keyType=tc(R,0),z.valueType="i64"):(z.keyType=tc(R,0),z.valueType=tc(R,1)),x.collections.push(z)}x.collections.length>0&&i.push(x)}}if(i.length==0)return null;let a=new Ql;a.u16(1),a.u16(i.length);for(let l=0,o=i.length;l<o;++l){let u=i[l];a.str(u.name),a.u16(u.collections.length);for(let c=0,f=u.collections.length;c<f;++c){let _=u.collections[c];a.str(_.name),a.u8(_.family),a.str(_.keyType),a.str(_.valueType);let h=pg(_.valueType),m=r.has(_.valueType),x=m?r.get(_.valueType):new Array,g=m?cg(x):h;a.u32(h),a.u32(g),a.u32(0),a.u8(0),a.u8(0),a.u16(x.length);for(let I=0,E=x.length;I<E;++I)a.str(x[I].name),a.str(x[I].typeName),a.u8(x[I].isArray?1:0);let T=s.has(_.valueType)?s.get(_.valueType):new Array;a.u16(T.length);for(let I=0,E=T.length;I<E;++I)a.u32(T[I])}}return a.toBytes()}function _g(t){let i=t.sources,e=new Array,r=new Map;for(let s=0,a=i.length;s<a;++s){let l=i[s];if(l.isLibrary||l.internalPath.endsWith(".migration"))continue;let o=l.statements;for(let u=0,c=o.length;u<c;++u){let f=o[u];if(f.kind!=52)continue;let _=f;if(!es(_.decorators,15))continue;let h=_.name.text;r.has(h)||(e.push(h),r.set(h,Xl(_)))}}if(e.length==0)return null;let n=new Ql;n.u16(e.length);for(let s=0,a=e.length;s<a;++s){let l=e[s];n.str(l);let o=r.get(l);n.u16(o.length);for(let u=0,c=o.length;u<c;++u)n.str(o[u].name),n.str(o[u].typeName),n.u8(o[u].isArray?1:0)}return n.toBytes()}function gg(t){switch(t){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function hg(t,i){let e=gg(t);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function dg(t){let i=gg(t);return i.length!=0?"__r.read"+i+"()":t+".decodeFrom(__r)"}function $2(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function mg(t,i){switch(t){case"bool":case"boolean":case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":case"string":return"JSON.of<"+t+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function yg(t,i){switch(t){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+t+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+t+">"+i+".asI64()";case"f32":case"f64":return"<"+t+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"("+i+".isArray() ? new u128("+i+".at(0).asU64(),"+i+".at(1).asU64()) : u128.fromString("+i+".asString()))";case"i128":return"("+i+".isArray() ? new i128("+i+".at(0).asU64(),"+i+".at(1).asI64()) : i128.fromString("+i+".asString()))";case"u256":return"("+i+".isArray() ? new u256("+i+".at(0).asU64(),"+i+".at(1).asU64(),"+i+".at(2).asU64(),"+i+".at(3).asU64()) : u256.fromString("+i+".asString()))";case"i256":return"("+i+".isArray() ? new i256("+i+".at(0).asI64(),"+i+".at(1).asI64(),"+i+".at(2).asI64(),"+i+".at(3).asI64()) : i256.fromString("+i+".asString()))";default:return t+".fromJSON("+i+")"}}var rs=class{constructor(i,e){this.source=i;this.reportNode=e}};function e1(t,i){switch(t){case"Documents":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="delete"?"Delete":i=="getDelete"?"GetDelete":"";case"View":return i=="get"||i=="require"?"ViewGet":i=="getMany"?"GetMany":i=="publish"?"ViewPublish":"";case"Unique":return i=="lookup"?"UniqueLookup":i=="claim"?"UniqueClaim":i=="release"?"UniqueRelease":"";case"Counter":return i=="get"?"CounterGet":i=="add"?"CounterAdd":"";case"Events":return i=="append"?"Append":i=="latest"?"Latest":"";case"Membership":return i=="contains"?"MembershipContains":i=="list"?"MembershipList":i=="add"?"MembershipAdd":i=="remove"?"MembershipRemove":"";case"Capacity":return i=="available"?"CapacityAvailable":i=="reserve"?"CapacityReserve":i=="confirm"?"CapacityConfirm":i=="cancel"?"CapacityCancel":i=="setTotal"?"CapacitySetTotal":"";default:return""}}function uc(t){return t=="Get"||t=="GetMany"||t=="Exists"||t=="ViewGet"||t=="CounterGet"||t=="UniqueLookup"||t=="Latest"||t=="MembershipContains"||t=="MembershipList"||t=="CapacityAvailable"}function t1(t,i){switch(t){case 33:return uc(i);case 34:return uc(i)||i=="Create"||i=="Patch"||i=="Delete"||i=="GetDelete"||i=="Append"||i=="CounterAdd"||i=="UniqueClaim"||i=="UniqueRelease"||i=="MembershipAdd"||i=="MembershipRemove"||i=="CapacityReserve"||i=="CapacityConfirm"||i=="CapacityCancel";case 36:return uc(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 38:return!1;case 37:return!1;default:return!0}}function r1(t){switch(t){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 38:return"admin";case 37:return"migrate";default:return"?"}}function i1(t){switch(t){case 33:return"a query is read-only";case 34:return"an action cannot publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 38:return"an admin has no request-path data access";case 37:return"a migration is a pure value transform and cannot access the database";default:return"not permitted in this kind"}}var is=class extends We{constructor(e=null,r=[]){super(e);this.backlog=new Array;this.seenlog=new Set;this.donelog=new Set;this.onComment=null;this.currentSource=null;this.dependees=new Map;this.restImportedSources=new Set;this.ratelimitRouteCounter=0;this.toildbCodecReads=new Map;this.toildbCodecClasses=new Map;this.toildbWoven=!1;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=r}parseFile(e,r,n){let s=vr(r),a=Nn(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let c=this.dependees,f=null;c.has(a)&&(f=assert(c.get(a))),this.error(6054,f?f.reportNode.range:null,r);return}let l=new fe(n?1:r.startsWith(pt)?r.indexOf(rt,pt.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new kr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let c=this.parseTopLevelStatement(o,null);c?u.push(c):this.skipStatement(o)}}parseTopLevelStatement(e,r=null){let n=r?r.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let g=this.parseDecorator(e);if(!g){this.skipStatement(e);continue}a?a.push(g):a=[g]}let l=0,o=0,u=0,c=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,c=e.pos));let f=0,_=0,h=r!=null&&r.is(32768);e.skip(12)?h?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),f=s,_=e.pos,n|=32772):h&&(n|=32768);let m=null,x=e.peek();switch(s<0&&(s=e.nextTokenPos),x){case 8:{e.next(),n|=8,e.skip(17)?m=this.parseEnum(e,n,a,s):m=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),m=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),m=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),m=this.parseFunction(e,n,a,s),a=null;break}case 0:{let g=e.mark();e.next();let T=e.tokenPos,I=e.pos;if(e.peekOnNewLine()){e.reset(g),m=this.parseStatement(e,!0);break}let E=e.peek();if(E!=7){E==31&&this.error(1242,e.range(T,I)),e.reset(g),m=this.parseStatement(e,!0);break}else e.discard(g);n|=128}case 7:case 31:{e.next(),m=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let g=e.mark();e.next(),e.peek(1)==115?(e.discard(g),m=this.parseNamespace(e,n,a,s),a=null):(e.reset(g),m=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?m=this.parseExportImport(e,s):m=this.parseImport(e);break}case 55:{let g=e.mark();e.next(),e.peek(1)==115?(e.discard(g),m=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(g),m=this.parseStatement(e,!0));break}case 35:{let g=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(g),m=this.parseModuleDeclaration(e,n)):(e.reset(g),m=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(_&&this.error(1120,e.range(f,_)),m=this.parseExportDefaultAlias(e,s,u,c),u=c=0):m=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),_&&this.error(1042,e.range(f,_),"declare"),r?this.error(2695,e.range(s)):m=this.parseStatement(e,!0));break}}if(a)for(let g=0,T=a.length;g<T;++g)this.error(1206,a[g].range);if(c&&m!=null)switch(m.kind){case 53:case 56:case 52:case 58:case 60:return G.createExportDefaultStatement(m,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return m}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let r=this.dependees;return r.has(e)?assert(r.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.weaveDataMigrations(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear(),this.restImportedSources.clear()}weaveDataMigrations(){if(this.toildbWoven||(this.toildbWoven=!0,this.checkMigrationLocations(),this.toildbCodecClasses.size==0))return;let e=new Map;for(let s=0,a=this.sources.length;s<a;++s){let l=this.sources[s];if(l.isLibrary)continue;let o=l.statements;for(let u=0,c=o.length;u<c;++u){let f=o[u];if(f.kind!=52)continue;let _=f;(this.hasDecoratorKind(_.decorators,15)||this.hasDecoratorKind(_.decorators,29))&&e.set(_.name.text,Xl(_))}}let r=lc(this.sources,e);if(r.length==0)return;let n=new Set;for(let s=0,a=r.length;s<a;++s){let l=r[s].newType;n.has(l)||(n.add(l),this.weaveDecodeInto(l,oc(l,r),e))}}checkMigrationLocations(){for(let e=0,r=this.sources.length;e<r;++e){let n=this.sources[e];if(n.isLibrary)continue;let s=n.internalPath.split("/"),l=s[s.length-1].endsWith(".migration"),o=!1;for(let c=0,f=s.length-1;c<f;++c)if(s[c]=="migrations"){o=!0;break}if(l&&o)continue;let u=n.statements;for(let c=0,f=u.length;c<f;++c){let _=u[c];if(_.kind!=56)continue;let h=_;this.hasDecoratorKind(h.decorators,37)&&this.error(102,h.name.range,"ToilDB: @migrate must live in a 'migrations/<Type>.migration.ts' file (a *.migration.ts under a migrations/ folder), so the build can discover it. Found in '"+n.internalPath+".ts'.")}}}weaveDecodeInto(e,r,n){if(!this.toildbCodecClasses.has(e))return;let s=this.toildbCodecClasses.get(e),a=this.toildbCodecReads.get(e),l=s.members,o=new Array;for(let h=0,m=l.length;h<m;++h){let x=l[h];if(x.kind!=55)continue;let g=x;g.is(32)||o.push(g.name.text)}let u="";for(let h=0,m=r.length;h<m;++h){let x=r[h],g="const __m0="+x.oldType+".decode(__buf);",T=x.steps.length;for(let k=0;k<T;++k){let F=x.steps[k],R="__m"+k.toString(),M="__m"+(k+1).toString();F.delta?g+="const "+M+"=new "+F.newType+"();"+this.migrationCarry(F.oldType,F.newType,R,M,n)+F.fnName+"("+R+","+M+");":g+="const "+M+"="+F.fnName+"("+R+");"}let I="__m"+T.toString(),E="";for(let k=0,F=o.length;k<F;++k)E+="this."+o[k]+"="+I+"."+o[k]+";";u+="if(__v==<i64>"+x.oldVersion.toString()+"){"+g+E+"__toildbMarkMigrated();return;}"}for(let h=l.length-1;h>=0;--h){let m=l[h];if(m.kind!=59)continue;let x=m.name.text;(x=="decodeInto"||x=="decodeIntoVersioned")&&l.splice(h,1)}this.injectClassMember(s,"decodeIntoVersioned(__buf: Uint8Array, __v: i64): void{"+u+"const __r=new DataReader(__buf);__r.readU32();"+a.replace(/__o\./g,"this.")+"}"),this.injectClassMember(s,"decodeInto(__buf: Uint8Array): void{this.decodeIntoVersioned(__buf, __toildbReadVersion());}");let c=s.range.source.internalPath,f=new Array,_=new Array;for(let h=0,m=r.length;h<m;++h){let x=r[h];this.addMigrationImport(f,_,x.oldType,this.typeSourcePath(x.oldType),c);for(let g=0,T=x.steps.length;g<T;++g){let I=x.steps[g];this.addMigrationImport(f,_,I.fnName,I.sourceInternalPath,c),I.newType!=e&&this.addMigrationImport(f,_,I.newType,this.typeSourcePath(I.newType),c)}}for(let h=0,m=f.length;h<m;++h){let x=_[h],g="";for(let T=0,I=x.length;T<I;++T)g+=x[T],T+1<I&&(g+=", ");this.injectTopLevelStatements(s,`// @ts-ignore: injected migration import
|
|
18
|
+
import { `+g+' } from "'+this.relativeModulePath(c,f[h])+`";
|
|
19
|
+
`)}}addMigrationImport(e,r,n,s,a){if(s.length==0||s==a)return;let l=e.indexOf(s);l<0&&(e.push(s),r.push(new Array),l=e.length-1);let o=r[l];o.indexOf(n)<0&&o.push(n)}typeSourcePath(e){return this.toildbCodecClasses.has(e)?this.toildbCodecClasses.get(e).range.source.internalPath:""}relativeModulePath(e,r){let n=e.split("/");n.pop();let s=r.split("/"),a=0;for(;a<n.length&&a+1<s.length&&n[a]==s[a];)a++;let l="";for(let o=a,u=n.length;o<u;++o)l+="../";l.length==0&&(l="./");for(let o=a,u=s.length;o<u;++o)l+=s[o],o+1<u&&(l+="/");return l}migrationCarry(e,r,n,s,a){let l=a.has(e)?a.get(e):new Array,o=a.has(r)?a.get(r):new Array,u="";for(let c=0,f=o.length;c<f;++c){let _=o[c];for(let h=0,m=l.length;h<m;++h){let x=l[h];if(x.name==_.name&&x.typeName==_.typeName&&x.isArray==_.isArray){u+=s+"."+_.name+"="+n+"."+_.name+";";break}}}return u}checkToilDbKinds(){let e=new Map;for(let r=0,n=this.sources.length;r<n;++r)this.collectDbCollections(this.sources[r].statements,e);if(e.size)for(let r=0,n=this.sources.length;r<n;++r)this.checkDbFunctions(this.sources[r].statements,e)}collectDbCollections(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==52){let l=a;if(this.hasDecoratorKind(l.decorators,31)){let o=new Map,u=l.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];if(_.kind!=55)continue;let h=_;if(!this.hasDecoratorKind(h.decorators,32))continue;let m=h.type;m==null||!(m instanceof ce)||o.set(h.name.text,m.name.identifier.text)}o.size&&r.set(l.name.text,o)}}else a.kind==60&&this.collectDbCollections(a.members,r)}}checkDbFunctions(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==56||a.kind==59){let l=a,o=this.dbFunctionKind(l.decorators),u=l.body;o!=-1&&u!=null&&this.walkDbStmt(u,o,r)}else a.kind==60?this.checkDbFunctions(a.members,r):a.kind==52&&this.checkDbFunctions(a.members,r)}}dbFunctionKind(e){if(e==null)return-1;for(let r=0,n=e.length;r<n;++r){let s=e[r].decoratorKind;if(s==33||s==34||s==35||s==36||s==38||s==37)return s}return-1}walkDbStmt(e,r,n){switch(e.kind){case 31:{let s=e.statements;for(let a=0,l=s.length;a<l;++a)this.walkDbStmt(s[a],r,n);break}case 39:this.walkDbExpr(e.expression,r,n);break;case 44:{let s=e.value;s&&this.walkDbExpr(s,r,n);break}case 48:{let s=e.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;o&&this.walkDbExpr(o,r,n)}break}case 42:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.ifTrue,r,n),s.ifFalse&&this.walkDbStmt(s.ifFalse,r,n);break}case 40:{let s=e;s.initializer&&this.walkDbStmt(s.initializer,r,n),s.condition&&this.walkDbExpr(s.condition,r,n),s.incrementor&&this.walkDbExpr(s.incrementor,r,n),this.walkDbStmt(s.body,r,n);break}case 41:{let s=e;this.walkDbExpr(s.iterable,r,n),this.walkDbStmt(s.body,r,n);break}case 50:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.body,r,n);break}case 34:{let s=e;this.walkDbStmt(s.body,r,n),this.walkDbExpr(s.condition,r,n);break}case 45:{let s=e;this.walkDbExpr(s.condition,r,n);let a=s.cases;for(let l=0,o=a.length;l<o;++l){let u=a[l].statements;for(let c=0,f=u.length;c<f;++c)this.walkDbStmt(u[c],r,n)}break}case 46:this.walkDbExpr(e.value,r,n);break;case 47:{let s=e;this.walkDbStmtList(s.bodyStatements,r,n),s.catchStatements&&this.walkDbStmtList(s.catchStatements,r,n),s.finallyStatements&&this.walkDbStmtList(s.finallyStatements,r,n);break}default:break}}walkDbStmtList(e,r,n){for(let s=0,a=e.length;s<a;++s)this.walkDbStmt(e[s],r,n)}walkDbExpr(e,r,n){switch(e.kind){case 10:{let s=e;this.checkDbCall(s,r,n),this.walkDbExpr(s.expression,r,n);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkDbExpr(a[l],r,n);break}case 18:{let s=e.args;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}case 22:this.walkDbExpr(e.expression,r,n);break;case 13:{let s=e;this.walkDbExpr(s.expression,r,n),this.walkDbExpr(s.elementExpression,r,n);break}case 9:{let s=e;this.walkDbExpr(s.left,r,n),this.walkDbExpr(s.right,r,n);break}case 29:this.walkDbExpr(e.operand,r,n);break;case 28:this.walkDbExpr(e.operand,r,n);break;case 21:this.walkDbExpr(e.expression,r,n);break;case 8:this.walkDbExpr(e.expression,r,n);break;case 16:this.walkDbExpr(e.expression,r,n);break;case 23:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbExpr(s.ifThen,r,n),this.walkDbExpr(s.ifElse,r,n);break}case 12:{let s=e.expressions;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}default:break}}checkDbCall(e,r,n){let s=e.expression;if(s.kind!=22)return;let a=s,l=a.expression;if(l.kind!=22)return;let o=l,u=o.expression;if(u.kind!=7)return;let c=n.get(u.text);if(c==null)return;let f=c.get(o.property.text);if(f==null)return;let _=a.property.text,h=e1(f,_);h.length!=0&&(t1(r,h)||this.error(102,a.property.range,"ToilDB: a @"+r1(r)+" function may not call '."+_+"' on '"+u.text+"."+o.property.text+"' ("+i1(r)+")"))}parseTypeName(e){let r=G.createSimpleTypeName(e.readIdentifier(),e.range()),n=r;for(;e.skip(68);)if(e.skip(115)){let s=G.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return r}parseType(e,r=!0,n=!1){let s=e.next(),a=e.tokenPos,l;if(s==64){let o=e.skip(64),u=this.tryParseFunctionType(e);if(u){if(o&&!e.skip(65))return n||this.error(1005,e.range(),")"),null;l=u}else{if(o||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(r){let c=this.parseType(e,!1,n);if(!c)return null;if(!e.skip(65))return n||this.error(1005,e.range(e.pos),")"),null;l=c,l.range.start=a,l.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(s==45){let o=this.parseType(e,r,n);if(!o)return null;l=o,l.range.start=a}else if(s==66&&this.options&&this.options.hasFeature(512)){let o=[],u=[],c=!1;if(!e.skip(67)){do{let f=null,_=e.mark();if(e.skip(115)){let m=e.readIdentifier(),x=e.range();e.skip(100)?(f=G.createIdentifierExpression(m,x),c=!0):e.reset(_)}let h=this.parseType(e,!0,n);if(!h)return null;o.push(h),u.push(f)}while(e.skip(71));if(!e.skip(67))return n||this.error(1005,e.range(e.pos),"]"),null}l=G.createTupleType(o,c?u:null,!1,e.range(a,e.pos))}else if(s==58)l=G.createNamedType(G.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(s==51)l=G.createNamedType(G.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(s==53||s==20)l=G.createNamedType(G.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(s==38)l=G.createNamedType(G.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(s==116)e.readString(),l=G.createNamedType(G.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));else if(s==115){let o=this.parseTypeName(e);if(!o)return null;let u=null;if(e.skip(72)){do{let c=this.parseType(e,!0,n);if(!c)return null;u?u.push(c):u=[c]}while(e.skip(71));if(!e.skip(73))return n||this.error(1005,e.range(e.pos),">"),null}u||(u=[]),l=G.createNamedType(o,u,!1,e.range(a,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(93);){let o=this.parseType(e,!0,!1);if(!o)return null;let u=l.kind==1&&l.isNull,c=o.kind==1&&o.isNull;if(!u&&!c)return n||this.error(100,o.range,"union types"),null;c?(l.isNullable=!0,l.range.end=o.range.end):u?(o.range.start=l.range.start,o.isNullable=!0,l=o):l.range.end=o.range.end}for(;e.skip(66);){let o=e.tokenPos;if(!e.skip(67))return n||this.error(1005,e.range(),"]"),null;let u=e.range(o,e.pos),c=!1;if(e.skip(93))if(e.skip(38))c=!0;else return n||this.error(100,e.range(),"union types"),null;if(l=G.createNamedType(G.createSimpleTypeName("Array",u),[l],c,e.range(a,e.pos)),c)break}return l}tryParseFunctionType(e){let r=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(65))l=!0,e.discard(r),s=[];else{l=!1;do{let f=-1,_=0;if(e.skip(69)&&(f=e.tokenPos,l=!0,e.discard(r),_=2),e.skip(51))if(f<0&&(f=e.tokenPos),e.skip(100)){l=!0,e.discard(r);let h=this.parseType(e,!1);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),this.tryParseSignatureIsSignature=!0,null;a=h}else return e.reset(r),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){f<0&&(f=e.tokenPos);let h=G.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(99)&&(l=!0,e.discard(r),_==2?this.error(1047,e.range()):_=1),e.skip(100)){l=!0,e.discard(r);let m=this.parseType(e);if(!m)return this.tryParseSignatureIsSignature=l,null;let x=G.createParameter(_,h,m,null,e.range(f,e.pos));s?s.push(x):s=[x]}else if(l||e.peek()==71&&(l=!0,e.discard(r)),l){let m=G.createParameter(_,h,G.createOmittedType(e.range(e.pos)),null,e.range(f,e.pos));s?s.push(m):s=[m],this.error(1110,m.type.range)}else s||(o=h,u=_)}else{if(l){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(r);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(71));if(!e.skip(65))return l?this.error(1005,e.range(),")"):e.reset(r),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(80)){if(!l&&(l=!0,e.discard(r),o)){let f=G.createParameter(u,o,G.createOmittedType(o.range.atEnd),null,o.range);s?s.push(f):s=[f],this.error(1110,f.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(r),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),G.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let r=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=G.createIdentifierExpression(n,e.range(r,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=G.createPropertyAccessExpression(s,G.createIdentifierExpression(n,e.range()),e.range(r,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(64)){if(a=this.parseArguments(e),a)return G.createDecorator(s,a,e.range(r,e.pos))}else return G.createDecorator(s,null,e.range(r,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,r,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,r,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(71));let o=G.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(70)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,r,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=G.createIdentifierExpression(e.readIdentifier(),e.range());Cp(a.text)&&this.error(1003,a.range);let l=r;e.skip(95)&&(l|=16384);let o=null;e.skip(100)&&(o=this.parseType(e,!0));let u=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let c=le.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),G.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,r,n,s){if(e.next()!=115)return this.error(1003,e.range()),null;let a=G.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let l=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let o=G.createEnumDeclaration(a,n,r,l,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,e.skip(70),o}parseEnumValue(e,r){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=G.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(101)&&(s=this.parseExpression(e,2),!s)?null:G.createEnumValueDeclaration(n,r,s,le.join(n.range,e.range()))}parseReturn(e){let r=e.tokenPos,n=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=G.createReturnStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),a}parseTypeParameters(e){let r=new Array,n=!1,s=e.tokenPos;for(;!e.skip(73);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),r.push(a),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return r.length||this.error(1098,e.range(s,e.pos)),r}parseTypeParameter(e){if(e.next()==115){let r=G.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(101)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return G.createTypeParameter(r,n,s,le.join(r.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,r=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(100)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(71))return e.skip(65)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,r);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,r=!1){let n=!1,s=!1,a=null,l=0;if(r&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=100?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(69)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=G.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(99))&&n&&this.error(1047,o.range),e.skip(100)){if(u=this.parseType(e),!u)return null}else u=G.createOmittedType(e.range(e.pos));let c=null;if(e.skip(101)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let f=G.createParameter(n?2:s?1:0,o,u,c,le.join(assert(a),e.range()));return f.flags|=l,f}else this.error(1003,e.range());return null}parseFunction(e,r,n,s){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=G.createIdentifierExpression(e.readIdentifier(),e.range()),l=-1,o=null;if(e.skip(72)){if(l=e.tokenPos,o=this.parseTypeParameters(e),!o)return null;r|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;l<0&&(l=e.tokenPos);let u=this.parseParameters(e);if(!u)return null;let c=this.parseParametersThis,f=(r&4096)!=0;f&&(u.length!=1&&this.error(1049,a.range),u.length>0&&u[0].initializer&&this.error(1052,a.range)),r&2048&&u.length&&this.error(1054,a.range);let _=null;if(e.skip(100)&&(_=this.parseType(e,!0,f),!_))return null;_||(_=G.createOmittedType(e.range(e.pos)),f||this.error(1110,_.range));let h=G.createFunctionType(u,_,c,!1,e.range(l,e.pos)),m=null;if(e.skip(62)){if(r&32768&&this.error(1183,e.range()),m=this.parseBlockStatement(e,!1),!m)return null}else r&32768||this.error(2391,e.range(e.pos));let x=G.createFunctionDeclaration(a,n,r,o,h,m,0,e.range(s,e.pos));return x.overriddenModuleName=this.currentModuleName,e.skip(70),x}parseFunctionExpression(e){let r=e.tokenPos,n,s=0;if(e.token==24){if(e.skipIdentifier()?n=G.createIdentifierExpression(e.readIdentifier(),e.range()):n=G.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),n=G.createEmptyIdentifierExpression(e.range(e.tokenPos));let a=e.pos,l=this.parseParameters(e);return l?this.parseFunctionExpressionCommon(e,n,l,this.parseParametersThis,s,r,a):null}parseFunctionExpressionCommon(e,r,n,s,a,l=-1,o=-1){l<0&&(l=r.range.start),o<0&&(o=l);let u=null;if(a!=2&&e.skip(100)){if(u=this.parseType(e),!u)return null}else u=G.createOmittedType(e.range(e.pos));if(a&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let c=G.createFunctionType(n,u,s,!1,e.range(o,e.pos)),f=null;if(a)if(e.skip(62))f=this.parseBlockStatement(e,!1);else{let h=this.parseExpression(e,2);h&&(f=G.createExpressionStatement(h))}else{if(!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;f=this.parseBlockStatement(e,!1)}if(!f)return null;let _=G.createFunctionDeclaration(r,null,0,null,c,f,a,e.range(l,e.pos));return G.createFunctionExpression(_)}parseClassOrInterface(e,r,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=G.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;r|=65536}let u=null;if(e.skip(19)){let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;u=h}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;a||(c||(c=[]),c.push(h))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let f=new Array,_;if(a?(assert(!c),_=G.createInterfaceDeclaration(l,n,r,o,u,null,f,e.range(s,e.pos))):_=G.createClassDeclaration(l,n,r,o,u,c,f,e.range(s,e.pos)),!e.skip(63))do{let h=this.parseClassMember(e,_);if(h)h.kind==66?_.indexSignature=h:(assert(h instanceof De),f.push(h));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));if(_.range.end=e.pos,_.overriddenModuleName=this.currentModuleName,!a&&n!=null)for(let h=0,m=n.length;h<m;++h){let x=n[h].decoratorKind;x==15?this.injectDataCodec(_):x==29?(this.injectDataCodec(_),this.injectUserBinding(_)):x==18?this.injectRestController(_,n[h]):x==31&&this.injectDatabaseBinding(_)}return _}injectDatabaseBinding(e){let r=e.name.text,n=e.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=55)continue;let o=l;if(!this.hasDecoratorKind(o.decorators,32))continue;let u=o.type;if(u==null||!(u instanceof ce))continue;let c=u;o.is(32)&&(o.flags&=-33);let f=c.name.identifier.text,_=o.name.text,h=c.typeArguments,m=f;if(h!=null&&h.length>0){let T="";for(let I=0,E=h.length;I<E;++I){I>0&&(T+=", ");let k=h[I];k instanceof ce&&(T+=k.name.identifier.text)}m=f+"<"+T+">"}let x=r+"/"+_,g="__db_"+_;this.injectClassMember(e,"private static "+g+": "+m+" | null = null;"),this.injectClassMember(e,"static get "+_+"(): "+m+" { if ("+r+"."+g+" == null) "+r+"."+g+" = new "+m+'(__toildbResolve("'+x+'")); return '+r+"."+g+"!; }")}this.injectTopLevelStatements(e,`// @ts-ignore: injected
|
|
18
20
|
import { __toildbResolve } from "toildb";
|
|
19
|
-
`)}injectDataCodec(e){let r=e.name.text,n=e.members,s="",a="",l="",o="";for(let
|
|
21
|
+
`)}injectDataCodec(e){let r=e.name.text,n=e.members,s="",a="",l="",o="";for(let f=0,_=n.length;f<_;++f){let h=n[f];if(h.kind!=55)continue;let m=h;if(m.is(32))continue;let x=m.type;if(x==null||!(x instanceof ce))continue;let g=m.name.text,T='"'+g+'"',I=x,E=I.name.identifier.text,k=I.typeArguments;if(E=="Array"&&k!=null&&k.length==1&&k[0]instanceof ce){let F=k[0].name.identifier.text,R="__a"+f.toString(),M="__c"+f.toString(),z="__j"+f.toString();s+="{const "+R+"=this."+g+";__w.writeU32(<u32>"+R+".length);for(let "+z+"=0,"+M+"="+R+".length;"+z+"<"+M+";++"+z+"){"+hg(F,R+"["+z+"]")+"}}",a+="{const "+M+"=__r.readU32();const "+R+"=new Array<"+F+">();for(let "+z+":u32=0;"+z+"<"+M+"&&__r.ok;++"+z+"){"+R+".push("+dg(F)+");}__o."+g+"="+R+";}",l+="{const "+R+"=this."+g+";const "+R+"j=JSON.arr();for(let "+z+"=0,"+M+"="+R+".length;"+z+"<"+M+";++"+z+"){"+R+"j.push("+mg(F,R+"["+z+"]")+");}__j.set("+T+","+R+"j);}",o+="{const "+R+"v=__v.get("+T+");const "+R+"=new Array<"+F+">();for(let "+z+"=0,"+M+"="+R+"v.length();"+z+"<"+M+";++"+z+"){"+R+".push("+yg(F,R+"v.at("+z+")")+");}__o."+g+"="+R+";}"}else if(E=="Uint8Array"){let F="__a"+f.toString(),R="__c"+f.toString(),M="__j"+f.toString();s+="__w.writeBytes(this."+g+");",a+="__o."+g+"=__r.readBytes();",l+="{const "+F+"=this."+g+";const "+F+"j=JSON.arr();for(let "+M+":i32=0,"+R+"="+F+".length;"+M+"<"+R+";++"+M+"){"+F+"j.push(JSON.of<u8>("+F+"["+M+"]));}__j.set("+T+","+F+"j);}",o+="{const "+F+"v=__v.get("+T+");const "+F+"=new Uint8Array("+F+"v.length());for(let "+M+":i32=0,"+R+"="+F+"v.length();"+M+"<"+R+";++"+M+"){"+F+"["+M+"]=<u8>"+F+"v.at("+M+").asU64();}__o."+g+"="+F+";}"}else s+=hg(E,"this."+g),a+="__o."+g+"="+dg(E)+";",l+="__j.set("+T+","+mg(E,"this."+g)+");",o+="__o."+g+"="+yg(E,"__v.get("+T+")")+";"}let u=$2(r).toString();this.injectClassMember(e,"encodeInto(__w: DataWriter): void{"+s+"}"),this.injectClassMember(e,"encode(): Uint8Array{const __w=new DataWriter();__w.writeU32("+u+");this.encodeInto(__w);return __w.toBytes();}"),this.injectClassMember(e,"static decodeFrom(__r: DataReader): "+r+"{const __o=new "+r+"();"+a+"return __o;}"),this.injectClassMember(e,"static decode(__buf: Uint8Array): "+r+"{const __r=new DataReader(__buf);__r.readU32();return "+r+".decodeFrom(__r);}");let c="const __r=new DataReader(__buf);__r.readU32();"+a.replace(/__o\./g,"this.");this.injectClassMember(e,"decodeIntoVersioned(__buf: Uint8Array, __v: i64): void{"+c+"}"),this.injectClassMember(e,"decodeInto(__buf: Uint8Array): void{this.decodeIntoVersioned(__buf, -1);}"),this.toildbCodecReads.set(r,a),this.toildbCodecClasses.set(r,e),this.injectClassMember(e,"static dataId(): u32{return "+u+";}"),this.injectClassMember(e,"toJSON(): JSON{const __j=JSON.obj();"+l+"return __j;}"),this.injectClassMember(e,"static fromJSON(__v: JSON): "+r+"{const __o=new "+r+"();"+o+"return __o;}")}injectClassMember(e,r){let n=e.range.source,s=new fe(n.sourceKind,n.normalizedPath,r),a=new kr(s,this.diagnostics),l=this.parseClassMember(a,e);l!=null&&l instanceof De&&e.members.push(l)}injectTopLevelStatements(e,r){let n=e.range.source,s=new fe(n.sourceKind,n.normalizedPath,r),a=new kr(s,this.diagnostics);for(;!a.skip(121);){let l=this.parseTopLevelStatement(a,null);if(l!=null)n.statements.push(l);else{this.skipStatement(a);break}}}injectRestController(e,r){let n=e.name.text,s=e.members,a=this.restPrefixOf(r),l=this.restStreamOf(r),o=this.hasDecoratorKind(e.decorators,28),u="";for(let h=0,m=s.length;h<m;++h){let x=s[h];if(x.kind!=59)continue;let g=x,T=this.routeDecoratorOf(g);if(T==null)continue;let I=this.buildRouteBlock(a,l,g,T,o);I!=null&&(u+=I)}if(u.length==0)return;this.injectClassMember(e,"__tryRoute(__req: __toilReq): __toilResp | null{"+u+"return null;}");let c=this.restRuntimePath(e),_=e.range.source.normalizedPath;this.restImportedSources.has(_)||(this.restImportedSources.add(_),this.injectTopLevelStatements(e,"import { Rest as __toilRest, Request as __toilReq, Response as __toilResp, matchRoute as __toilMatch } from "+JSON.stringify(c)+`;
|
|
20
22
|
`)),this.injectTopLevelStatements(e,"__toilRest.register((__q: __toilReq): __toilResp | null => new "+n+`().__tryRoute(__q));
|
|
21
23
|
`)}injectUserBinding(e){let r=e.name.text;this.injectTopLevelStatements(e,`// @ts-ignore: injected
|
|
22
24
|
@global class AuthUser extends `+r+` {}
|
|
23
25
|
`),this.injectTopLevelStatements(e,`// @ts-ignore: injected
|
|
24
26
|
@global function __toilDecodeAuthUser(__b: Uint8Array): AuthUser { return changetype<AuthUser>(`+r+`.decode(__b)); }
|
|
25
|
-
`)}hasDecoratorKind(e,r){if(e==null)return!1;for(let n=0,s=e.length;n<s;++n)if(e[n].decoratorKind==r)return!0;return!1}restPrefixOf(e){let r=e.args;if(r==null||r.length==0)return"";let n=r[0];if(n instanceof Ze){let s=n.value.trim();return s.length==0||s=="/"?"":(s.startsWith("/")||(s="/"+s),s.replace(/\/+$/,""))}return""}restStreamOf(e){let r=e.args;if(r!=null&&r.length>0&&r[0]instanceof _t){let n=this.objectField(r[0],"stream");if(n!=null){let s=this.enumMember(n);if(s!=null)return s}}return"JSON"}routeDecoratorOf(e){let r=e.decorators;if(r==null)return null;for(let n=0,s=r.length;n<s;++n)switch(r[n].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return r[n]}return null}buildRouteBlock(e,r,n,s,a){let l=s.decoratorKind,o,u,c=r;if(l==19){let F=s.args;if(F==null||F.length==0||!(F[0]instanceof _t))return null;let R=F[0],M=this.objectField(R,"method"),z=this.objectField(R,"path");if(M==null||z==null||!(z instanceof Ze))return null;let D=this.enumMember(M);if(D==null)return null;o=D,u=z.value;let W=this.objectField(R,"stream");if(W!=null){let q=this.enumMember(W);q!=null&&(c=q)}}else{o=this.verbName(l);let F=s.args;if(F==null||F.length==0||!(F[0]instanceof Ze))return null;u=F[0].value}let f=this.methodEnumValue(o);if(f<0)return null;let _=this.joinPath(e,u),h=n.signature.parameters,m=null,x="";for(let F=0,R=h.length;F<R;++F){let M=h[F].type,z=M instanceof ce?M.name.identifier.text:"";F>0&&(x+=","),z=="RouteContext"?x+="__ctx":(m=z,x+="__body")}let g=n.signature.returnType,A=g instanceof ce?g.name.identifier.text:"",I="this."+n.name.text+"("+x+")",E=this.cacheSuffixOf(n),k="if(__req.method=="+f.toString()+"){";return k+="const __ctx=__toilMatch("+JSON.stringify(_)+",__req);",k+="if(__ctx!=null){",k+=this.ratelimitGuardOf(n),(a||this.hasDecoratorKind(n.decorators,28))&&(k+='if(!AuthService.hasSession()){return __toilResp.text("unauthorized\\n",401);}'),m!=null&&(c=="Binary"?k+="const __body="+m+".decode(__req.body);":k+="const __body="+m+".fromJSON(JSON.parse(__ctx.text()));"),A=="Response"||A=="__toilResp"?k+="return "+I+E+";":A=="void"?k+=I+";return __toilResp.empty(204)"+E+";":c=="Binary"?k+="const __res="+I+";return __toilResp.bytes(__res.encode())"+E+";":k+="const __res="+I+";return __toilResp.json(__res.toJSON().toString())"+E+";",k+="}}",k}cacheSuffixOf(e){let r=e.decorators;if(r==null)return"";for(let n=0,s=r.length;n<s;++n){if(r[n].decoratorKind!=27)continue;let a=r[n].args;if(a==null||a.length==0)return"";let l="";for(let o=0,u=a.length;o<u;++o){let c=a[o];if(!(c instanceof Bt||c.kind==26||c.kind==14))return"";o>0&&(l+=","),l+=c.range.toString()}return".cache("+l+")"}return""}ratelimitGuardOf(e){let r=e.decorators;if(r==null)return"";for(let n=0,s=r.length;n<s;++n){if(r[n].decoratorKind!=30)continue;let a=r[n].args;if(a==null||a.length<3)return"";let l=this.ratelimitStrategyTag(a[0]);if(l.length==0)return"";let o=a[1],u=a[2];return!(o instanceof Bt)||!(u instanceof Bt)?"":"{const __rl=RateLimitService.guard("+(this.ratelimitRouteCounter++).toString()+","+l+","+o.range.toString()+","+u.range.toString()+");if(__rl!=null){return __rl;}}"}return""}ratelimitStrategyTag(e){if(e instanceof Bt)return e.range.toString();if(e instanceof Lt){let r=e.property.text;return r=="SlidingWindow"?"1":r=="TokenBucket"?"2":"0"}return""}objectField(e,r){let n=e.names;for(let s=0,a=n.length;s<a;++s)if(n[s].text==r)return e.values[s];return null}enumMember(e){return e instanceof Lt?e.property.text:null}verbName(e){switch(e){case 21:return"POST";case 22:return"PUT";case 23:return"DELETE";case 24:return"PATCH";case 25:return"HEAD";case 26:return"OPTIONS";default:return"GET"}}methodEnumValue(e){switch(e){case"GET":return 0;case"POST":return 1;case"PUT":return 2;case"DELETE":return 3;case"PATCH":return 4;case"HEAD":return 5;case"OPTIONS":return 6;default:return-1}}joinPath(e,r){let n=r.trim();if(n.length==0&&(n="/"),n.startsWith("/")||(n="/"+n),n=="/")return e.length>0?e:"/";n.length>1&&(n=n.replace(/\/+$/,""));let s=e+n;return s.length==0?"/":s}restRuntimePath(e){let r=e.range.source.statements;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.kind!=43)continue;let l=a,o=l.declarations;if(o!=null)for(let u=0,c=o.length;u<c;++u){let f=o[u].foreignName.text;if(f=="Response"||f=="Request"||f=="RouteContext"||f=="ToilHandler"||f=="Method"||f=="Header"||f=="Server"||f=="Rest")return l.path.value}}return"toiljs/server/runtime"}parseClassExpression(e){let r=e.tokenPos,n;if(e.skipIdentifier()?n=G.createIdentifierExpression(e.readIdentifier(),e.range()):n=G.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=G.createClassDeclaration(n,null,0,null,null,null,s,e.range(r,e.pos));if(!e.skip(63))do{let l=this.parseClassMember(e,a);if(l)l.kind==66?a.indexSignature=l:(assert(a instanceof De),s.push(l));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));return a.range.end=e.pos,G.createClassExpression(a)}parseClassMember(e,r){let n=r.kind==58,s=0,a=null;if(e.skip(114)){s=e.tokenPos;do{let re=this.parseDecorator(e);if(!re)break;a||(a=new Array),a.push(re)}while(e.skip(114));n&&a&&this.error(1206,le.join(a[0].range,a[a.length-1].range))}let l=r.flags&32768;n&&(l|=268435456);let o=0,u=0,c=r.is(32768);e.skip(12)?(n?this.error(1042,e.range(),"declare"):c?this.error(1038,e.range()):(l|=32772,o=e.tokenPos,u=e.pos),s||(s=e.tokenPos)):c&&(l|=32768);let f=0,_=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos));let h=0,m=0,x=0,g=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,h=e.tokenPos,m=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!r.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,x=e.tokenPos,g=e.pos),s||(s=e.tokenPos)),r.flags&65536&&(l|=131072));let A=0,I=0;e.skip(40)&&(n||r.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,A=e.tokenPos,I=e.pos),s||(s=e.tokenPos));let E=0,k=0;if(e.peek()==45){let re=e.mark();e.next(),e.peek()!=100?(e.discard(re),l|=64,E=e.tokenPos,k=e.pos,s||(s=E)):e.reset(re)}let F=e.mark(),R=!1,M=!1,z=0,D=0,W=!1,q=0,ee=0;n||(e.skip(25)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=2048,M=!0,z=e.tokenPos,D=e.pos,s||(s=z),l&64&&this.error(1042,e.range(E,k),"readonly")):e.reset(F):e.skip(47)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=4096,W=!0,q=e.tokenPos,ee=e.pos,s||(s=q),l&64&&this.error(1042,e.range(E,k),"readonly")):e.reset(F):e.skip(10)&&(l|=524288,R=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(h,m),"static"),l&128&&this.error(1042,e.range(x,g),"abstract"),l&64&&this.error(1042,e.range(E,k),"readonly")));let Y=M||W,te;if(R)te=G.createConstructorExpression(e.range());else{if(!Y&&e.skip(66)){s||(s=e.tokenPos),l&256?this.error(1042,e.range(f,_),"public"):l&1024?this.error(1042,e.range(f,_),"protected"):l&512&&this.error(1042,e.range(f,_),"private"),l&32&&this.error(1042,e.range(h,m),"static"),l&8192&&this.error(1042,e.range(A,I),"override"),l&128&&this.error(1042,e.range(x,g),"abstract");let re=this.parseIndexSignature(e,l,a);return re?(e.skip(70),re):(l&64&&this.error(1042,e.range(E,k),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),te=G.createIdentifierExpression(e.readIdentifier(),e.range())}let j=null;if(e.skip(72)){let re=e.tokenPos;if(j=this.parseTypeParameters(e),!j)return null;R?this.error(1092,e.range(re,e.pos)):Y?this.error(1094,e.range(re,e.pos)):l|=65536}if(e.skip(64)){l&4&&this.error(1031,e.range(o,u),"declare");let re=e.tokenPos,H=this.parseParameters(e,R);if(!H)return null;let ue=this.parseParametersThis;if(R)for(let Q=0,Qi=H.length;Q<Qi;++Q){let St=H[Q];if(St.isAny(1856)){let It=G.createFieldDeclaration(St.name,null,St.flags|262144,St.type,null,St.range);It.parameterIndex=Q,St.implicitFieldDeclaration=It,r.members.push(It)}}else M?H.length&&this.error(1054,te.range):W?(H.length!=1&&this.error(1049,te.range),H.length>0&&H[0].initializer&&this.error(1052,te.range)):te.text=="constructor"&&this.error(230,te.range,"constructor");let be=null;if(e.skip(100)){if(te.kind==27?this.error(1093,e.range()):W&&this.error(1095,e.range()),be=this.parseType(e,W||te.kind==27),!be)return null}else be=G.createOmittedType(e.range(e.pos)),!W&&te.kind!=27&&this.error(1110,be.range);let dr=G.createFunctionType(H,be,ue,!1,e.range(re,e.pos)),vt=null;if(e.skip(62)){if(l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),te.text):n&&this.error(1005,e.range(),";"),vt=this.parseBlockStatement(e,!1),!vt)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let Hi=G.createMethodDeclaration(te,a,l,j,dr,vt,e.range(s,e.pos));return n&&e.skip(71)||e.skip(70),Hi}else if(R)this.error(2390,te.range);else if(Y)this.error(2391,te.range);else{l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(x,g),"abstract"),l&2048&&this.error(1042,e.range(z,D),"get"),l&4096&&this.error(1042,e.range(q,ee),"set");let re=null;if(e.skip(99)&&this.error(219,e.range(s,e.pos)),e.skip(95)&&(l|=16384),e.skip(100)){if(re=this.parseType(e),!re)return null}else this.error(1110,e.range());let H=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),H=this.parseExpression(e),!H)return null;l&16384&&this.error(1263,te.range)}let ue=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,ue);let be=G.createFieldDeclaration(te,a,l,re,H,ue);return n&&e.skip(71)||e.skip(70),be}return null}parseIndexSignature(e,r,n){n&&n.length>0&&this.error(1206,le.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(100)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(67))if(e.skip(100)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):G.createIndexSignature(l,o,r,e.range(s,e.pos)):null}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"]")}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"key");else this.error(1003,e.range());return null}parseNamespace(e,r,n,s){if(e.skipIdentifier()){let a=G.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(62)){let l=new Array,o=G.createNamespaceDeclaration(a,n,r,l,e.range(s,e.pos));for(;!e.skip(63);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==36)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(70),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,r,n){let s=null,a=assert(this.currentSource);if(e.skip(62)){let l=new Array;for(;!e.skip(63);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(116))s=G.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=G.createExportStatement(l,s,n,e.range(r,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new ts(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(70),o}else if(e.skip(84))if(e.skip(23))if(e.skip(116)){s=G.createStringLiteralExpression(e.readString(),e.range());let l=G.createExportStatement(null,s,n,e.range(r,e.pos)),o=assert(l.internalPath),u=e.source,c=u.exportPaths;return c?c.includes(o)||c.push(o):u.exportPaths=[o],this.seenlog.has(o)||(this.dependees.set(o,new ts(a,s)),this.backlog.push(o)),e.skip(70),l}else this.error(1141,e.range());else this.error(1005,e.range(),"from");else this.error(1005,e.range(),"{");return null}parseExportMember(e){if(e.skipIdentifier(2)){let r=G.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=G.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?G.createExportMember(r,n,le.join(r.range,n.range)):G.createExportMember(r,null,r.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,r,n,s){let a=e.readIdentifier(),l=e.range(),o=G.createExportStatement([G.createExportMember(G.createIdentifierExpression(a,l),G.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(r,e.pos));return e.skip(70),o}parseImport(e){let r=e.tokenPos,n=null,s=null,a=!1;if(e.skip(62))for(n=new Array;!e.skip(63);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(84))if(e.skip(1))if(e.skipIdentifier())s=G.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;else return this.error(1005,e.range(),"as"),null;else if(e.skip(115,1)){let l=e.readIdentifier(),o=e.range();if(n=[G.createImportDeclaration(G.createIdentifierExpression("default",o),G.createIdentifierExpression(l,o),o)],e.skip(71))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(116)){let l=G.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=G.createWildcardImportStatement(s,l,e.range(r,e.pos))):o=G.createImportStatement(n,l,e.range(r,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new ts(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(70),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let r=G.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=G.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?G.createImportDeclaration(r,n,le.join(r.range,n.range)):G.createImportDeclaration(r,null,r.range)}else this.error(1003,e.range());return null}parseExportImport(e,r){if(e.skipIdentifier()){let n=G.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(101))if(e.skipIdentifier()){let s=G.createIdentifierExpression(e.readIdentifier(),e.range()),a=G.createExportImportStatement(s,n,e.range(r,e.pos));return e.skip(70),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,r=!1){let n=e.mark(),s=e.next(),a=null;switch(s){case 4:{a=this.parseBreak(e);break}case 8:{a=this.parseVariable(e,8,null,e.tokenPos);break}case 9:{a=this.parseContinue(e);break}case 15:{a=this.parseDoStatement(e);break}case 22:{a=this.parseForStatement(e);break}case 26:{a=this.parseIfStatement(e);break}case 34:{a=this.parseVariable(e,16,null,e.tokenPos);break}case 57:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 62:{a=this.parseBlockStatement(e,r);break}case 46:{r&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 70:return G.createEmptyStatement(e.range(e.tokenPos));case 50:{a=this.parseSwitchStatement(e);break}case 52:{a=this.parseThrowStatement(e);break}case 54:{a=this.parseTryStatement(e);break}case 58:{a=this.parseVoidStatement(e);break}case 59:{a=this.parseWhileStatement(e);break}case 55:if(e.peek(1)==115){a=this.parseTypeDeclaration(e,0,null,e.tokenPos);break}default:{e.reset(n),a=this.parseExpressionStatement(e);break}}return a?e.discard(n):(e.reset(n),this.skipStatement(e)),a}parseBlockStatement(e,r){let n=e.tokenPos,s=new Array;for(;!e.skip(63);){let l=e.mark(),o=this.parseStatement(e,r);if(o)e.discard(l),s.push(o);else{if(e.token==121)return null;e.reset(l),this.skipStatement(e)}}let a=G.createBlockStatement(s,e.range(n,e.pos));return r&&e.skip(70),a}parseBreak(e){let r=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),r=G.createIdentifierExpression(e.readIdentifier(),e.range()));let n=G.createBreakStatement(r,e.range());return e.skip(70),n}parseContinue(e){let r=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),r=G.createIdentifierExpression(e.readIdentifier(),e.range()));let n=G.createContinueStatement(r,e.range());return e.skip(70),n}parseDoStatement(e){let r=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(59))if(e.skip(64)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(65)){let a=G.createDoStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");else this.error(1005,e.range(),"while");return null}parseExpressionStatement(e){let r=this.parseExpression(e);if(!r)return null;let n=G.createExpressionStatement(r);return e.skip(70),n}parseForStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=null;if(e.skip(8))n=this.parseVariable(e,8,null,e.tokenPos,!0);else if(e.skip(34))n=this.parseVariable(e,16,null,e.tokenPos,!0);else if(e.skip(57))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(70)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==39)return n.expression.kind!=7?(this.error(1003,n.range),null):this.parseForOfStatement(e,r,n);if(n.kind==48){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let u=s[a].initializer;u&&this.error(1190,u.range)}return this.parseForOfStatement(e,r,n)}return this.error(1003,n.range),null}if(n.kind==48){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a];o.initializer||(o.flags&8?this.error(1155,o.name.range):o.type||this.error(1110,o.name.range.atEnd))}}}if(e.token==70){let s=null;if(!e.skip(70)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==70){let a=null;if(!e.skip(65)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?G.createForStatement(n,s?s.expression:null,a,l,e.range(r,e.pos)):null}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),"(");return null}parseForOfStatement(e,r,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?G.createForOfStatement(n,s,a,e.range(r,e.pos)):null}parseIfStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:G.createIfStatement(n,s,a,e.range(r,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65))if(e.skip(62)){let s=new Array;for(;!e.skip(63);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=G.createSwitchStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let r=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return G.createSwitchCase(a,n,e.range(r,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return G.createSwitchCase(null,n,e.range(r,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let r=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=G.createThrowStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),s}parseTryStatement(e){let r=e.tokenPos,n;if(e.skip(62)){let s=new Array;for(;!e.skip(63);){if(n=this.parseStatement(e),!n)return null;s.push(n)}let a=null,l=null,o=null;if(e.skip(6)){if(!e.skip(64))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=G.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(65))return this.error(1005,e.range(),")"),null;if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=G.createTryStatement(s,a,l,o,e.range(r,e.pos));return e.skip(70),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,r,n,s){if(e.skipIdentifier()){let a=G.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(72)){if(l=this.parseTypeParameters(e),!l)return null;r|=65536}if(e.skip(101)){e.skip(93);let o=this.parseType(e);if(!o)return null;if(es(a.text,o))return this.error(2456,a.range,a.text),null;let u=G.createTypeDeclaration(a,n,r,l,o,e.range(s,e.pos));return e.skip(70),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,r){let n=e.tokenPos;assert(e.next()==116);let s=e.readString(),a=G.createModuleDeclaration(s,r,e.range(n,e.pos));return this.currentModuleName=s,e.skip(70),a}parseVoidStatement(e){let r=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=G.createVoidStatement(n,e.range(r,e.pos));return e.skip(70),s}parseWhileStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=G.createWhileStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let r=e.next(1),n=e.tokenPos;switch(r){case 69:case 61:case 95:case 96:case 81:case 82:case 56:case 58:case 14:{let s=this.parseExpression(e,17);return s?G.createUnaryPrefixExpression(r,s,e.range(n,e.pos)):null}case 87:case 88:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 7:case 13:case 22:break;default:this.error(2357,s.range)}return G.createUnaryPrefixExpression(r,s,e.range(n,e.pos))}case 37:{if(!e.skipIdentifier())return this.error(1003,e.range()),null;let s=this.parseTypeName(e);if(!s)return null;let a=null,l=null;if(e.skip(64)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return G.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return G.createNullExpression(e.range());case 53:return G.createTrueExpression(e.range());case 20:return G.createFalseExpression(e.range());case 51:return G.createThisExpression(e.range());case 10:return G.createConstructorExpression(e.range());case 64:{if(e.skip(65))return this.parseFunctionExpressionCommon(e,G.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 69:return e.reset(s),this.parseFunctionExpression(e);case 115:{switch(e.readIdentifier(),e.next()){case 65:{if(e.skip(100)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(80)){a=!1;break}}case 100:return e.reset(s),this.parseFunctionExpression(e);case 99:{if(e.skip(100)||e.skip(71)||e.skip(65))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 71:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(65)?(l=G.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 66:{let s=new Array;for(;!e.skip(67);){let a;if(e.peek()==71)a=G.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(71)){if(e.skip(67))break;return this.error(1005,e.range(),"]"),null}}return G.createArrayLiteralExpression(s,e.range(n,e.pos))}case 62:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(63);){if(e.skipIdentifier())o=G.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(116))return this.error(1003,e.range()),null;o=G.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(100)){let u=this.parseExpression(e,2);if(!u)return null;l.push(u)}else if(!o.isQuoted)l.push(o);else return this.error(1005,e.range(),":"),null;if(!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}return G.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 72:{let s=this.parseType(e);if(!s)return null;if(!e.skip(73))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?G.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 115:{let s=e.readIdentifier();if(s=="null")return G.createNullExpression(e.range());let a=G.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(119)?this.parseTemplateLiteral(e,a):e.peek()==80&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,G.createEmptyIdentifierExpression(e.range(n)),[G.createParameter(0,a,G.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 49:{e.peek()!=68&&e.nextToken!=64&&this.error(1034,e.range());let s=G.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 116:return G.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 119:return this.parseTemplateLiteral(e);case 117:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),G.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 118:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),G.createFloatLiteralExpression(s,e.range(n,e.pos))}case 85:{let s=e.readRegexpPattern();return e.skip(85)?G.createRegexpLiteralExpression(s,e.readRegexpFlags(),e.range(n,e.pos)):(this.error(1005,e.range(),"/"),null)}case 24:{let s=this.parseFunctionExpression(e);return s?this.maybeParseCallExpression(e,s):null}case 7:return this.parseClassExpression(e);default:return r==121?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let r=e.mark();if(!e.skip(72))return null;let n=e.tokenPos,s=null;do{if(e.peek()==73)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(r),null;s?s.push(a):s=[a]}while(e.skip(71));if(e.skip(73)){let a=e.pos;if(e.skip(64))return s||this.error(1099,e.range(n,a)),s}return e.reset(r),null}parseArguments(e){let r=new Array;for(;!e.skip(65);){let n=this.parseExpression(e,2);if(!n)return null;if(r.push(n),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return r}parseExpression(e,r=1){assert(r!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=t1(e.peek()))>=r;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=G.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=G.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 95:{n=G.createAssertionExpression(2,n,null,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 30:{let o=this.parseType(e);if(!o)return null;n=G.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 66:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(67))return this.error(1005,e.range(),"]"),null;n=G.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 87:case 88:{n.kind!=7&&n.kind!=13&&n.kind!=22&&this.error(2357,n.range),n=G.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 99:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(100))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,r>1?2:1);if(!u)return null;n=G.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 71:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(71));n=G.createCommaExpression(o,e.range(s,e.pos));break}case 68:{if(e.skipIdentifier(2)){let o=G.createIdentifierExpression(e.readIdentifier(),e.range());n=G.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==10){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(119)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:case 83:{let o=this.parseExpression(e,a);if(!o)return null;n=G.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 72:case 73:case 74:case 75:case 76:case 78:case 79:case 77:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 93:case 94:case 97:case 98:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=G.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,r=null){let n=r?r.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,r!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd));e.readingTemplateString;){let o=this.parseExpression(e);if(!o)return null;if(l.push(o),!e.skip(63))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,r!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return G.createTemplateLiteralExpression(r,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,r,n,s){let a=s.expression;switch(a.kind){case 7:{s.expression=G.createPropertyAccessExpression(n,a,e.range(r,e.pos));break}case 10:{let l=this.joinPropertyCall(e,r,n,a);if(!l)return null;s.expression=l,s.range=e.range(r,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,r,n=!1){let s=null;for(;e.skip(64)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;r=G.createCallExpression(r,s,a,e.range(r.range.start,e.pos)),n=!1}return r}checkASI(e){let r=e.peek();r==121||r==63||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let r=e.peek();if(r==121||r==70){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 115:{e.readIdentifier();break}case 116:case 119:{e.readString();break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 62:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let r=1,n=!0;do switch(e.next()){case 121:{this.error(1005,e.range(),"}"),n=!1;break}case 62:{++r;break}case 63:{--r,r||(n=!1);break}case 115:{e.readIdentifier();break}case 116:{e.readString();break}case 119:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},mg=(R=>(R[R.None=0]="None",R[R.Comma=1]="Comma",R[R.Spread=2]="Spread",R[R.Yield=3]="Yield",R[R.Assignment=4]="Assignment",R[R.Conditional=5]="Conditional",R[R.LogicalOr=6]="LogicalOr",R[R.LogicalAnd=7]="LogicalAnd",R[R.BitwiseOr=8]="BitwiseOr",R[R.BitwiseXor=9]="BitwiseXor",R[R.BitwiseAnd=10]="BitwiseAnd",R[R.Equality=11]="Equality",R[R.Relational=12]="Relational",R[R.Shift=13]="Shift",R[R.Additive=14]="Additive",R[R.Multiplicative=15]="Multiplicative",R[R.Exponentiated=16]="Exponentiated",R[R.UnaryPrefix=17]="UnaryPrefix",R[R.UnaryPostfix=18]="UnaryPostfix",R[R.Call=19]="Call",R[R.MemberAccess=20]="MemberAccess",R[R.Grouping=21]="Grouping",R))(mg||{});function t1(t){switch(t){case 71:return 1;case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:return 4;case 99:return 5;case 98:return 6;case 97:return 7;case 93:return 8;case 94:return 9;case 92:return 10;case 76:case 77:case 78:case 79:return 11;case 1:case 29:case 30:case 72:case 73:case 74:case 75:return 12;case 89:case 90:case 91:return 13;case 81:case 82:return 14;case 84:case 85:case 86:return 15;case 83:return 16;case 87:case 88:return 18;case 68:case 66:case 95:return 20}return 0}function es(t,i){switch(i.kind){case 1:{if(i.name.identifier.text==t)return!0;let e=i.typeArguments;if(e){for(let r=0,n=e.length;r<n;r++)if(es(t,e[r]))return!0}break}case 2:{let e=i;if(es(t,e.returnType))return!0;let r=e.parameters;for(let n=0,s=r.length;n<s;n++)if(es(t,r[n].type))return!0;break}case 3:{let e=i.elements;for(let r=0,n=e.length;r<n;r++)if(es(t,e[r]))return!0;break}default:assert(!1)}return!1}var yg=16,Ci=yg-1,Ql=class{constructor(i,e,r,n,s){this.localFile=i;this.localIdentifier=e;this.foreignIdentifier=r;this.foreignPath=n;this.foreignPathAlt=s}},Xl=class{constructor(i,e,r,n){this.localIdentifier=i;this.foreignIdentifier=e;this.foreignPath=r;this.foreignPathAlt=n}},uc=class{constructor(i,e,r){this.foreignPath=i;this.foreignPathAlt=e;this.pathLiteral=r}},Re=(j=>(j[j.Invalid=0]="Invalid",j[j.IndexedGet=1]="IndexedGet",j[j.IndexedSet=2]="IndexedSet",j[j.UncheckedIndexedGet=3]="UncheckedIndexedGet",j[j.UncheckedIndexedSet=4]="UncheckedIndexedSet",j[j.Add=5]="Add",j[j.Sub=6]="Sub",j[j.Mul=7]="Mul",j[j.Div=8]="Div",j[j.Rem=9]="Rem",j[j.Pow=10]="Pow",j[j.BitwiseAnd=11]="BitwiseAnd",j[j.BitwiseOr=12]="BitwiseOr",j[j.BitwiseXor=13]="BitwiseXor",j[j.BitwiseShl=14]="BitwiseShl",j[j.BitwiseShr=15]="BitwiseShr",j[j.BitwiseShrU=16]="BitwiseShrU",j[j.Eq=17]="Eq",j[j.Ne=18]="Ne",j[j.Gt=19]="Gt",j[j.Ge=20]="Ge",j[j.Lt=21]="Lt",j[j.Le=22]="Le",j[j.Plus=23]="Plus",j[j.Minus=24]="Minus",j[j.Not=25]="Not",j[j.BitwiseNot=26]="BitwiseNot",j[j.PrefixInc=27]="PrefixInc",j[j.PrefixDec=28]="PrefixDec",j[j.PostfixInc=29]="PostfixInc",j[j.PostfixDec=30]="PostfixDec",j))(Re||{});(n=>{function t(s,a){switch(assert(a.length),s){case 2:case 3:{switch(a.charCodeAt(0)){case 91:{if(a=="[]")return 1;if(a=="[]=")return 2;break}case 123:{if(a=="{}")return 3;if(a=="{}=")return 4;break}case 43:{if(a=="+")return 5;break}case 45:{if(a=="-")return 6;break}case 42:{if(a=="*")return 7;if(a=="**")return 10;break}case 47:{if(a=="/")return 8;break}case 37:{if(a=="%")return 9;break}case 38:{if(a=="&")return 11;break}case 124:{if(a=="|")return 12;break}case 94:{if(a=="^")return 13;break}case 61:{if(a=="==")return 17;break}case 33:{if(a=="!=")return 18;break}case 62:{if(a==">")return 19;if(a==">=")return 20;if(a==">>")return 15;if(a==">>>")return 16;break}case 60:{if(a=="<")return 21;if(a=="<=")return 22;if(a=="<<")return 14;break}}break}case 4:{switch(a.charCodeAt(0)){case 43:{if(a=="+")return 23;if(a=="++")return 27;break}case 45:{if(a=="-")return 24;if(a=="--")return 28;break}case 33:{if(a=="!")return 25;break}case 126:{if(a=="~")return 26;break}}break}case 5:{switch(a.charCodeAt(0)){case 43:{if(a=="++")return 29;break}case 45:{if(a=="--")return 30;break}}break}}return 0}n.fromDecorator=t;function i(s){switch(s){case 81:case 102:return 5;case 82:case 103:return 6;case 84:case 104:return 7;case 85:case 106:return 8;case 86:case 107:return 9;case 83:case 105:return 10;case 92:case 111:return 11;case 93:case 112:return 12;case 94:case 113:return 13;case 89:case 108:return 14;case 90:case 109:return 15;case 91:case 110:return 16;case 76:case 78:return 17;case 77:case 79:return 18;case 73:return 19;case 75:return 20;case 72:return 21;case 74:return 22}return 0}n.fromBinaryToken=i;function e(s){switch(s){case 81:return 23;case 82:return 24;case 95:return 25;case 96:return 26;case 87:return 27;case 88:return 28}return 0}n.fromUnaryPrefixToken=e;function r(s){switch(s){case 87:return 29;case 88:return 30}return 0}n.fromUnaryPostfixToken=r})(Re||={});var is=class extends We{constructor(e,r=null){super(r);this.options=e;this.sources=[];this.diagnosticsOffset=0;this.nextClassId=0;this.nextSignatureId=0;this.initialized=!1;this.filesByName=new Map;this.elementsByName=new Map;this.elementsByDeclaration=new Map;this.instancesByName=new Map;this.mainFunction=null;this.wrapperClasses=new Map;this.managedClasses=new Map;this.uniqueSignatures=new Map;this.moduleImports=new Map;this._arrayBufferViewInstance=null;this._arrayBufferInstance=null;this._arrayPrototype=null;this._staticArrayPrototype=null;this._setPrototype=null;this._mapPrototype=null;this._functionPrototype=null;this._int8ArrayPrototype=null;this._int16ArrayPrototype=null;this._int32ArrayPrototype=null;this._int64ArrayPrototype=null;this._uint8ArrayPrototype=null;this._uint8ClampedArrayPrototype=null;this._uint16ArrayPrototype=null;this._uint32ArrayPrototype=null;this._uint64ArrayPrototype=null;this._float32ArrayPrototype=null;this._float64ArrayPrototype=null;this._stringInstance=null;this._errorInstance=null;this._regexpInstance=null;this._objectPrototype=null;this._objectInstance=null;this._templateStringsArrayInstance=null;this._allocInstance=null;this._reallocInstance=null;this._freeInstance=null;this._newInstance=null;this._renewInstance=null;this._linkInstance=null;this._collectInstance=null;this._visitInstance=null;this._newBufferInstance=null;this._newArrayInstance=null;this._BLOCKInstance=null;this._OBJECTInstance=null;this.nativeDummySignature=null;this.module=Gt.create(e.stackSize>0,e.sizeTypeRef),this.parser=new rs(this.diagnostics,this.sources),this.resolver=new Jn(this);let n=new as(this,fe.native);this.nativeFile=n,this.filesByName.set(n.internalName,n),this.parser.options=this.options}get arrayBufferViewInstance(){let e=this._arrayBufferViewInstance;return e||(this._arrayBufferViewInstance=e=this.requireClass(C.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(C.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(C.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(C.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(C.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(C.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(C.Function,6)),e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(C.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(C.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(C.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(C.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(C.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(C.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(C.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(C.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(C.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(C.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(C.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(C.String)),e}get errorInstance(){let e=this._errorInstance;return e||(this._errorInstance=e=this.requireClass(C.Error)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(C.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(C.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(C.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(C.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(C.abort);return!e||e.kind!=4?null:this.resolver.resolveFunction(e,null)}get allocInstance(){let e=this._allocInstance;return e||(this._allocInstance=e=this.requireFunction(C.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(C.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(C.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(C.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(C.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(C.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(C.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(C.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(C.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(C.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(C.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(C.OBJECT)),e}getSource(e){let r=this.sources;for(let n=0;n<r.length;++n){let s=r[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+Ci&~Ci}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let r=Qp(e);if(r){let n=this.instancesByName;if(n.has(r)){let s=assert(n.get(r));if(s.kind==5)return s}}return null}computeBlockStart(e){let r=this.blockOverhead;return(e+r+Ci&~Ci)-r}computeBlockStart64(e){let r=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,r),yg),r)}computeBlockSize(e,r){r&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+Ci&~Ci)-s;n<a&&(n=a);let l=1<<30;if(n>=l||(n&3)!=0)throw new Error("invalid block size");return n}makeNativeVariableDeclaration(e,r=0){let n=fe.native.range;return G.createVariableDeclaration(G.createIdentifierExpression(e,n),null,r,null,null,n)}makeNativeTypeDeclaration(e,r=0){let n=fe.native.range,s=G.createIdentifierExpression(e,n);return G.createTypeDeclaration(s,null,r,null,G.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,r=0){let n=fe.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=G.createFunctionType([],G.createNamedType(G.createSimpleTypeName(C.void_,n),null,!1,n),null,!1,n)),G.createFunctionDeclaration(G.createIdentifierExpression(e,n),null,r,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,r=0){let n=fe.native.range;return G.createNamespaceDeclaration(G.createIdentifierExpression(e,n),null,r,[],n)}makeNativeFunction(e,r,n=this.nativeFile,s=0,a=0){return new gt(e,new Xe(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,r)}getElementByDeclaration(e){let r=this.elementsByDeclaration;return r.has(e)?assert(r.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(C.i8,p.i8),this.registerNativeType(C.i16,p.i16),this.registerNativeType(C.i32,p.i32),this.registerNativeType(C.i64,p.i64),this.registerNativeType(C.isize,e.isizeType),this.registerNativeType(C.u8,p.u8),this.registerNativeType(C.u16,p.u16),this.registerNativeType(C.u32,p.u32),this.registerNativeType(C.u64,p.u64),this.registerNativeType(C.usize,e.usizeType),this.registerNativeType(C.bool,p.bool),this.registerNativeType(C.f32,p.f32),this.registerNativeType(C.f64,p.f64),this.registerNativeType(C.void_,p.void),this.registerNativeType(C.number,p.f64),this.registerNativeType(C.boolean,p.bool),this.nativeFile.add(C.native,new $e(C.native,this.nativeFile,this.makeNativeTypeDeclaration(C.native,65538),512)),this.nativeFile.add(C.indexof,new $e(C.indexof,this.nativeFile,this.makeNativeTypeDeclaration(C.indexof,65538),512)),this.nativeFile.add(C.valueof,new $e(C.valueof,this.nativeFile,this.makeNativeTypeDeclaration(C.valueof,65538),512)),this.nativeFile.add(C.returnof,new $e(C.returnof,this.nativeFile,this.makeNativeTypeDeclaration(C.returnof,65538),512)),this.nativeFile.add(C.nonnull,new $e(C.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(C.nonnull,65538),512)),this.registerNativeType(C.v128,p.v128),this.registerNativeType(C.ref_func,p.func),this.registerNativeType(C.ref_extern,p.extern),this.registerNativeType(C.ref_any,p.any),this.registerNativeType(C.ref_eq,p.eq),this.registerNativeType(C.ref_struct,p.struct),this.registerNativeType(C.ref_array,p.array),this.registerNativeType(C.ref_i31,p.i31),this.registerNativeType(C.ref_string,p.string),this.registerNativeType(C.ref_stringview_wtf8,p.stringview_wtf8),this.registerNativeType(C.ref_stringview_wtf16,p.stringview_wtf16),this.registerNativeType(C.ref_stringview_iter,p.stringview_iter),this.registerConstantInteger(C.ASC_TARGET,p.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(C.ASC_RUNTIME,p.i32,i64_new(e.runtime)),this.registerConstantInteger(C.ASC_NO_ASSERT,p.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(C.ASC_MEMORY_BASE,p.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(C.ASC_TABLE_BASE,p.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(C.ASC_OPTIMIZE_LEVEL,p.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(C.ASC_SHRINK_LEVEL,p.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(C.ASC_LOW_MEMORY_LIMIT,p.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(C.ASC_EXPORT_RUNTIME,p.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(C.ASC_VERSION_MAJOR,p.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(C.ASC_VERSION_MINOR,p.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(C.ASC_VERSION_PATCH,p.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(C.ASC_FEATURE_SIGN_EXTENSION,p.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_MUTABLE_GLOBALS,p.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_NONTRAPPING_F2I,p.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_BULK_MEMORY,p.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_SIMD,p.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_THREADS,p.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_EXCEPTION_HANDLING,p.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_TAIL_CALLS,p.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_REFERENCE_TYPES,p.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_MULTI_VALUE,p.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_GC,p.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_MEMORY64,p.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_RELAXED_SIMD,p.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_EXTENDED_CONST,p.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_STRINGREF,p.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_SHARED_EVERYTHING,p.bool,i64_new(e.hasFeature(32768)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_CLOSURES,p.bool,i64_new(e.hasFeature(65536)?1:0,0));let r=new Array,n=new Map,s=new Map,a=new Array,l=new Array;for(let u=0,c=this.sources.length;u<c;++u){let f=this.sources[u],_=new as(this,f);this.filesByName.set(_.internalName,_);let h=f.statements;for(let m=0,x=h.length;m<x;++m){let g=h[m];switch(g.kind){case 36:{this.initializeExports(g,_,n,s);break}case 37:{this.initializeExportDefault(g,_,a,l);break}case 43:{this.initializeImports(g,_,r,n);break}case 48:{this.initializeVariables(g,_);break}case 52:{this.initializeClass(g,_,a,l);break}case 53:{this.initializeEnum(g,_);break}case 56:{this.initializeFunction(g,_);break}case 58:{this.initializeInterface(g,_,a);break}case 60:{this.initializeNamespace(g,_,a,l);break}case 61:{this.initializeTypeDefinition(g,_);break}}}}for(let u=Map_keys(s),c=0,f=u.length;c<f;++c){let _=u[c],h=assert(s.get(_));for(let m=0,x=h.length;m<x;++m){let g=unchecked(h[m]),A=this.lookupForeignFile(g.foreignPath,g.foreignPathAlt);if(!A){this.error(6054,g.pathLiteral.range,g.pathLiteral.value);continue}_.ensureExportStar(A)}}do{let u=0,c=!1;for(;u<r.length;){let f=r[u],_=f.localIdentifier,h=f.foreignIdentifier,m=assert(this.lookupForeignFile(f.foreignPath,f.foreignPathAlt));if(h){let x=this.lookupForeign(h.text,m,n);x?(f.localFile.add(_.text,x,_),r.splice(u,1),c=!0):++u}else{let x=f.localFile,g=_.text;x.add(g,m.asAliasNamespace(g,x,_),_),r.splice(u,1),c=!0}}if(!c){for(let f=0,_=r.length;f<_;++f){let h=r[f],m=h.foreignIdentifier;m&&this.error(2305,m.range,h.foreignPath,m.text)}break}}while(!0);for(let u=Map_keys(n),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]),h=assert(n.get(_));for(let m=Map_keys(h),x=0,g=m.length;x<g;++x){let A=unchecked(m[x]),I=assert(h.get(A)),E=I.localIdentifier.text,k=I.foreignPath;if(k){let F=assert(this.lookupForeignFile(k,assert(I.foreignPathAlt))),R=this.lookupForeign(E,F,n);R?_.ensureExport(A,R):this.error(2305,I.localIdentifier.range,k,E)}else{let F=_.getMember(E);if(F)_.ensureExport(A,F);else{let R=this.lookup(E);R&&ss(R.kind)?_.ensureExport(A,R):this.error(2305,I.foreignIdentifier.range,_.internalName,I.foreignIdentifier.text)}}}}assert(this.objectInstance.id==0),assert(this.arrayBufferInstance.id==1),assert(this.stringInstance.id==2),assert(this.arrayBufferViewInstance.id==3),this.registerWrapperClass(p.i8,C.I8),this.registerWrapperClass(p.i16,C.I16),this.registerWrapperClass(p.i32,C.I32),this.registerWrapperClass(p.i64,C.I64),this.registerWrapperClass(e.isizeType,C.Isize),this.registerWrapperClass(p.u8,C.U8),this.registerWrapperClass(p.u16,C.U16),this.registerWrapperClass(p.u32,C.U32),this.registerWrapperClass(p.u64,C.U64),this.registerWrapperClass(e.usizeType,C.Usize),this.registerWrapperClass(p.bool,C.Bool),this.registerWrapperClass(p.f32,C.F32),this.registerWrapperClass(p.f64,C.F64),e.hasFeature(16)&&this.registerWrapperClass(p.v128,C.V128),e.hasFeature(256)&&(this.registerWrapperClass(p.func,C.RefFunc),this.registerWrapperClass(p.extern,C.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(p.any,C.RefAny),this.registerWrapperClass(p.eq,C.RefEq),this.registerWrapperClass(p.struct,C.RefStruct),this.registerWrapperClass(p.array,C.RefArray),this.registerWrapperClass(p.i31,C.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(p.string,C.RefString));let o=this.resolver;for(let u=0,c=a.length;u<c;++u){let f=a[u],_=assert(f.extendsNode),h=o.resolveTypeName(_.name,null,f.parent);if(h){if(f.kind==6)if(h.kind==6){let m=h;m.hasDecorator(32)&&this.error(211,_.range,m.identifierNode.text),m.hasDecorator(16)!=f.hasDecorator(16)&&this.error(207,le.join(f.identifierNode.range,_.range)),f.extends(m)?this.error(2506,m.identifierNode.range,m.identifierNode.text):f.basePrototype=m}else this.error(1311,_.range);else if(f.kind==8)if(h.kind==8){let m=h;f.extends(m)?this.error(2506,m.identifierNode.range,m.identifierNode.text):f.basePrototype=m}else this.error(2312,_.range)}}for(let u=0,c=a.length;u<c;u++){let f=a[u],_=f.instanceMembers;if(_){let h=Map_values(_);for(let m=0,x=h.length;m<x;m++){let g=h[m],A=g.declaration;if(A.is(8192)){let I=f.basePrototype,E=!1;for(;I;){let k=I.instanceMembers;if(k&&k.has(g.name)){E=!0;break}I=I.basePrototype}if(!E){let k=assert(f.basePrototype);this.error(4117,A.name.range,k.name)}}}}}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=assert(f.implementsNodes);for(let h=0,m=_.length;h<m;++h){let x=_[h],g=o.resolveTypeName(x.name,null,f.parent);if(g)if(g.kind==8){let A=g,I=f.interfacePrototypes;I||(f.interfacePrototypes=I=new Array),I.push(A)}else this.error(2422,x.range)}}for(let u=0,c=a.length;u<c;++u){let f=a[u],_=f.basePrototype;_&&this.processOverrides(f,_)}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=f.basePrototype,h=f.interfacePrototypes;if(_&&this.processOverrides(f,_),h)for(let m=0,x=h.length;m<x;++m)this.processOverrides(f,h[m])}{let u=e.globalAliases;u||(u=new Map),u.has(C.abort)||u.set(C.abort,d.abort),u.has(C.trace)||u.set(C.trace,d.trace),u.has(C.seed)||u.set(C.seed,d.seed),u.has(C.Math)||u.set(C.Math,C.NativeMath),u.has(C.Mathf)||u.set(C.Mathf,C.NativeMathf);for(let c=Map_keys(u),f=0,_=c.length;f<_;++f){let h=unchecked(c[f]),m=changetype(u.get(h));if(assert(m!=null),!m.length){this.elementsByName.delete(h);continue}let x=m.charCodeAt(0);if(x>=48&&x<=57)this.registerConstantInteger(h,p.i32,i64_new(parseInt(m,10)));else{let g=this.elementsByName;g.has(m)?g.set(h,assert(g.get(m))):this.error(111,null,m)}}}for(let u=Map_values(this.filesByName),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]);_.source.sourceKind==1&&this.markModuleExports(_)}}processOverrides(e,r){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=r.instanceMembers;if(l)for(let c=0,f=s.length;c<f;++c){let _=s[c];if(l.has(_.name)){let h=assert(l.get(_.name));this.doProcessOverride(e,_,r,h)}}let o=r.interfacePrototypes;if(o)for(let c=0,f=o.length;c<f;++c){let _=o[c];_!=r&&this.processOverrides(e,_)}let u=r.basePrototype;if(!u||(a||(a=new Set),a.add(r),a.has(u)))break;r=u}while(!0)}}doProcessOverride(e,r,n,s){if(!r.isAny(524800))if(r.kind==4&&s.kind==4){let a=r,l=s,o=a.is(65536),u=l.is(65536);if(o!=u){this.errorRelated(242,a.identifierNode.range,l.identifierNode.range,a.name);return}a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),s.set(268435456);let c=l.unboundOverrides;c||(l.unboundOverrides=c=new Set),c.add(r);let f=l.instances;if(f)for(let _=Map_values(f),h=0,m=_.length;h<m;++h)_[h].set(268435456)}else if(r.kind==10&&s.kind==10){let a=r,l=s;if(a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),l.parent.kind!=8){let c=a.isField;if(c!=l.isField){c?this.errorRelated(2610,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName):this.errorRelated(2611,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName);return}else if(c)return}l.set(268435456);let o=l.getterPrototype;if(o){o.set(268435456);let c=a.getterPrototype;if(c){let _=o.unboundOverrides;_||(o.unboundOverrides=_=new Set),_.add(c)}let f=o.instances;if(f)for(let _=Map_values(f),h=0,m=_.length;h<m;++h)_[h].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let c=a.setterPrototype;if(c){let _=u.unboundOverrides;_||(u.unboundOverrides=_=new Set),_.add(c)}let f=u.instances;if(f)for(let _=Map_values(f),h=0,m=_.length;h<m;++h)_[h].set(268435456)}}else this.errorRelated(2416,r.identifierNode.range,s.identifierNode.range,r.name,e.internalName,n.internalName)}lookup(e){let r=this.elementsByName;return r.has(e)?assert(r.get(e)):null}require(e,r){let n=this.lookup(e);if(!n)throw this.error(111,null,e),new Error(`Missing standard library component: ${e}`);if(n.kind!=r)throw this.error(111,null,e),new Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let r=this.require(e,6),n=this.resolver.resolveClass(r,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,r=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,r);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let r=e.exports;if(r)for(let s=Map_values(r),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.markModuleExports(n[s])}markModuleExport(e){switch(e.set(1048576),e.kind){case 6:{let n=e.instanceMembers;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}break}case 10:{let n=e,s=n.getterPrototype;s&&this.markModuleExport(s);let a=n.setterPrototype;a&&this.markModuleExport(a);break}case 11:case 5:case 7:assert(!1)}let r=e.members;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,r,n){n.set(2097152);let s=this.moduleImports,a;s.has(e)?a=assert(s.get(e)):(a=new Map,s.set(e,a)),a.set(r,n)}registerNativeType(e,r){let n=new $e(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(r),this.nativeFile.add(e,n)}registerWrapperClass(e,r){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(r));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,r,n){assert(r.isIntegerInclReference);let s=new Cr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,r),this.nativeFile.add(e,s)}registerConstantFloat(e,r,n){assert(r.isFloatValue);let s=new Cr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,r),this.nativeFile.add(e,s)}ensureGlobal(e,r){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=r){let a=_c(s,r);if(!a)return ss(s.kind)?this.errorRelated(2300,r.identifierNode.range,s.declaration.name.range,e):this.error(2300,r.identifierNode.range,e),r;r=a}}return n.set(e,r),r}lookupForeignFile(e,r){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(r)?assert(n.get(r)):null}lookupForeign(e,r,n){do{let a=r.lookupExport(e);if(a)return a;if(n.has(r)){let l=assert(n.get(r));if(l.has(e)){let o=assert(l.get(e)),u=o.foreignPath;if(u){let c=this.lookupForeignFile(u,assert(o.foreignPathAlt));if(!c)return null;e=o.localIdentifier.text,r=c;continue}if(a=r.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=r.exportsStar;if(s)for(let a=0,l=s.length;a<l;++a){let o=this.lookupForeign(e,s[a],n);if(o)return o}return null}checkDecorators(e,r){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Ye.fromNode(l.name),u=nr.fromKind(o);u&&(r&u?n&u?this.error(213,l.range):n|=u:this.error(212,l.range,l.name.range.toString()))}return n}checkFeatureEnabled(e,r){return this.options.hasFeature(e)?!0:(this.error(103,r.range,li(e)),!1)}checkTypeSupported(e,r){switch(e.kind){case 13:return this.checkFeatureEnabled(16,r);case 15:case 14:return e.is(512)?this.checkFeatureEnabled(256,r):this.checkFeatureEnabled(1024,r);case 16:case 17:case 18:case 19:case 20:return this.checkFeatureEnabled(256,r)&&this.checkFeatureEnabled(1024,r);case 21:case 22:case 23:case 24:return this.checkFeatureEnabled(256,r)&&this.checkFeatureEnabled(16384,r)}let n=e.getClass();if(n)do{let s=n.typeArguments;if(s){for(let a=0,l=s.length;a<l;++a)if(!this.checkTypeSupported(s[a],r))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,r))return!1;let l=s.parameterTypes;for(let u=0,c=l.length;u<c;++u)if(!this.checkTypeSupported(l[u],r))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,r))return!1}}return!0}initializeClass(e,r,n,s){let a=e.name.text,l=new os(a,r,e,this.checkDecorators(e.decorators,368689));if(!r.add(a,l))return null;let o=e.implementsTypes;if(o){let c=o.length;c&&(l.hasDecorator(16)?this.error(208,le.join(e.name.range,o[c-1].range)):s.push(l))}e.extendsType?n.push(l):!l.hasDecorator(16)&&l.internalName!=d.Object&&(l.implicitlyExtendsObject=!0);let u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 55:{this.initializeField(_,l);break}case 59:{let h=_;if(h.is(128)&&h.is(65536)&&this.error(241,h.name.range,h.name.text),_.isAny(6144))this.initializeProperty(h,l);else{let m=this.initializeMethod(h,l);m&&h.name.kind==27&&(l.constructorPrototype=m)}break}case 66:break;default:assert(!1)}}return l}initializeField(e,r){let n=e.name.text,s=e.decorators,a,l=2048;if(l|=524288,r.is(32768)&&(l|=128),e.is(32)){if(assert(r.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new Cr(n,r,this.checkDecorators(s,l),e),!r.add(n,a))return}else if(assert(!e.isAny(6272)),a=Pi.forField(n,r,e,this.checkDecorators(s,l)),!r.addInstance(n,a))return}initializeMethod(e,r){let n=e.name.text,s=e.is(32),a=2112;e.is(65536)||(a|=147470),r.is(32768)&&(a|=128),e.range.source.isLibrary&&(a|=512);let l=new Xe(n,r,e,this.checkDecorators(e.decorators,a));if(l.hasDecorator(512)&&!b.has(l.internalName)&&this.error(100,e.range,`Builtin '${l.internalName}'`),s){if(assert(e.name.kind!=27),!r.add(n,l))return null}else if(!r.addInstance(n,l))return null;return this.checkOperatorOverloads(e.decorators,l,r),l}checkOperatorOverloads(e,r,n){if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s];switch(l.decoratorKind){case 2:case 3:case 4:case 5:{let o=l.args,u=o?o.length:0;if(u==1){let c=l.args[0];if(c.isLiteralKind(2)){let f=c.value,_=Re.fromDecorator(l.decoratorKind,f);if(_==0)this.error(224,c.range,f);else{let h=n.operatorOverloadPrototypes;h.has(_)?this.error(2393,c.range):(r.operatorKind=_,h.set(_,r))}}else this.error(1141,c.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,r){let n=e.name.text;if(e.is(32)){let s=r.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Pi(n,r,e);return r.add(n,a)?a:null}}else{let s=r.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Pi(n,r,e);return r.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,r){let n=this.ensureProperty(e,r);if(!n)return;let s=e.name.text,a=e.is(2048);if(a){if(n.getterPrototype){this.error(2718,e.name.range,s);return}}else if(n.setterPrototype){this.error(2718,e.name.range,s);return}let l=new Xe((a?oa:ua)+s,n.parent,e,this.checkDecorators(e.decorators,2112));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,r){let n=e.name.text,s=new Jl(n,r,e,this.checkDecorators(e.decorators,1089));if(!r.add(n,s))return null;let a=e.values;for(let l=0,o=a.length;l<o;++l)this.initializeEnumValue(a[l],s);return s}initializeEnumValue(e,r){let n=e.name.text,s=new Zl(n,r,e,this.checkDecorators(e.decorators,0));r.add(n,s)}initializeExports(e,r,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],r,e.internalPath,n);else{let l;s.has(r)?l=assert(s.get(r)):s.set(r,l=[]);let o=e.internalPath;l.push(new uc(o,o.endsWith(Ge)?o.substring(0,o.length-Ge.length):o+Ge,assert(e.path)))}}initializeExport(e,r,n,s){let a=e.localName.text,l=e.exportedName.text,o=r.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=r.getMember(a))r.ensureExport(l,o);else{let u;s.has(r)?u=assert(s.get(r)):s.set(r,u=new Map),u.set(l,new Xl(e.localName,e.exportedName,null,null))}else{let u;s.has(r)?u=assert(s.get(r)):s.set(r,u=new Map),u.set(l,new Xl(e.localName,e.exportedName,n,n.endsWith(Ge)?n.substring(0,n.length-Ge.length):n+Ge))}}initializeExportDefault(e,r,n,s){let a=e.declaration,l=null;switch(a.kind){case 53:{l=this.initializeEnum(a,r);break}case 56:{l=this.initializeFunction(a,r);break}case 52:{l=this.initializeClass(a,r,n,s);break}case 58:{l=this.initializeInterface(a,r,n);break}case 60:{l=this.initializeNamespace(a,r,n,s);break}default:assert(!1)}if(l){let o=r.exports;if(!o)r.exports=o=new Map;else if(o.has("default")){let u=assert(o.get("default"));this.errorRelated(2300,a.name.range,u.declaration.name.range,"default");return}o.set("default",l)}}initializeImports(e,r,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],r,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new Ql(r,l,null,e.internalPath,e.internalPath+Ge))}}initializeImport(e,r,n,s,a){let l=n.endsWith(Ge)?n.substring(0,n.length-Ge.length):n+Ge,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){r.add(e.name.text,u,e.name);return}}s.push(new Ql(r,e.name,e.foreignName,n,l))}initializeFunction(e,r){let n=e.name.text,s=2048;s|=1048576,e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||r.kind!=6&&(s|=1,e.is(65536)||(s|=4096)),e.is(65536)||(s|=16384),e.range.source.isLibrary&&(s|=512);let a=new Xe(n,r,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!b.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),a.hasDecorator(4096)&&(this.mainFunction?this.error(213,e.range):this.mainFunction=a),r.add(n,a)?a:null}initializeInterface(e,r,n){let s=e.name.text,a=new Yl(s,r,e,this.checkDecorators(e.decorators,1));if(!r.add(s,a))return null;e.extendsType&&n.push(a);let l=e.members;for(let o=0,u=l.length;o<u;++o){let c=l[o];switch(c.kind){case 55:{this.initializeFieldAsProperty(c,a);break}case 59:{let f=c;f.is(65536)&&this.error(241,f.name.range,f.name.text),c.isAny(6144)?this.initializeProperty(f,a):this.initializeMethod(f,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,r){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=G.createOmittedType(e.name.range.atEnd)),this.initializeProperty(G.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,G.createFunctionType([],s,null,!1,e.range),null,e.range),r),e.is(64)||this.initializeProperty(G.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,G.createFunctionType([G.createParameter(0,e.name,s,null,e.name.range)],G.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),r)}initializeNamespace(e,r,n,s){let a=e.name.text,l=new ls(a,r,e,this.checkDecorators(e.decorators,1));if(!r.add(a,l))return null;let o=assert(r.getMember(a)),u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 52:{this.initializeClass(_,l,n,s);break}case 53:{this.initializeEnum(_,l);break}case 56:{this.initializeFunction(_,l);break}case 58:{this.initializeInterface(_,l,n);break}case 60:{this.initializeNamespace(_,l,n,s);break}case 61:{this.initializeTypeDefinition(_,l);break}case 48:{this.initializeVariables(_,l);break}default:assert(!1)}}return l!=o&&Dt(l,o),o}initializeTypeDefinition(e,r){let n=e.name.text,s=new $e(n,r,e,this.checkDecorators(e.decorators,0));r.add(n,s)}initializeVariables(e,r){let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.name.text,u=1025;l.is(32768)&&(u|=128),l.is(8)&&(u|=64),l.range.source.isLibrary&&(u|=512);let c=new Cr(o,r,this.checkDecorators(l.decorators,u),l);c.hasDecorator(512)&&!lt.has(c.internalName)&&this.error(100,l.range,`Builtin '${c.internalName}'`),r.add(o,c)}}},mt=(g=>(g[g.Global=0]="Global",g[g.Local=1]="Local",g[g.Enum=2]="Enum",g[g.EnumValue=3]="EnumValue",g[g.FunctionPrototype=4]="FunctionPrototype",g[g.Function=5]="Function",g[g.ClassPrototype=6]="ClassPrototype",g[g.Class=7]="Class",g[g.InterfacePrototype=8]="InterfacePrototype",g[g.Interface=9]="Interface",g[g.PropertyPrototype=10]="PropertyPrototype",g[g.Property=11]="Property",g[g.Namespace=12]="Namespace",g[g.File=13]="File",g[g.TypeDefinition=14]="TypeDefinition",g[g.IndexSignature=15]="IndexSignature",g))(mt||{}),nr=(R=>(R[R.None=0]="None",R[R.Global=1]="Global",R[R.OperatorBinary=2]="OperatorBinary",R[R.OperatorPrefix=4]="OperatorPrefix",R[R.OperatorPostfix=8]="OperatorPostfix",R[R.Unmanaged=16]="Unmanaged",R[R.Final=32]="Final",R[R.Inline=64]="Inline",R[R.External=128]="External",R[R.ExternalJs=256]="ExternalJs",R[R.Builtin=512]="Builtin",R[R.Lazy=1024]="Lazy",R[R.Unsafe=2048]="Unsafe",R[R.Main=4096]="Main",R[R.Data=8192]="Data",R[R.Remote=16384]="Remote",R[R.Service=32768]="Service",R[R.Rest=65536]="Rest",R[R.Route=131072]="Route",R[R.Database=262144]="Database",R[R.Collection=524288]="Collection",R[R.DbFunction=1048576]="DbFunction",R))(nr||{});(i=>{function t(e){switch(e){case 1:return 1;case 2:case 3:return 2;case 4:return 4;case 5:return 8;case 6:return 16;case 7:return 32;case 8:return 64;case 9:return 128;case 10:return 256;case 11:return 512;case 12:return 1024;case 13:return 2048;case 14:return 4096;case 15:return 8192;case 16:return 16384;case 17:return 32768;case 18:return 65536;case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return 131072;case 31:return 262144;case 32:return 524288;case 33:case 34:case 35:case 36:case 38:return 1048576;default:return 0}}i.fromKind=t})(nr||={});var ns=class{constructor(i,e,r,n,s){this.kind=i;this.name=e;this.internalName=r;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=r,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let i=this;do if(i=i.parent,i.kind==13)return i;while(!0)}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}hasDecorator(i){return(this.decoratorFlags&i)==i}hasAnyDecorator(i){return(this.decoratorFlags&i)!=0}getMember(i){let e=this.members;return e&&e.has(i)?assert(e.get(i)):null}lookup(i,e=!1){return this.parent.lookup(i,e)}add(i,e,r=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(i)){let l=assert(s.get(i));if(l.parent==this){let o=_c(l,e);if(o)e=o;else{let u=r||e.identifierNode;return ss(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(i,e);let a=this.program;return(e.kind!=4||!e.isBound)&&(a.elementsByName.set(e.internalName,e),a.elementsByDeclaration.set(n,e)),!0}get isPublic(){return!this.isAny(1536)}get isImplicitlyPublic(){return this.isPublic&&!this.is(256)}visibilityEquals(i){if(this.isPublic==i.isPublic)return!0;let e=1536;return(this.flags&e)==(i.flags&e)}visibilityNoLessThan(i){return this.isPublic?!0:this.is(512)?i.is(512):this.is(1024)?i.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let i=this.parent;switch(i.kind){case 7:case 9:return i}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},gg=new Set;function ss(t){return gg.has(t)}var ir=class extends ns{constructor(e,r,n,s,a,l){super(e,r,n,s,a);this.declaration=l;gg.add(e),this.declaration=l,this.flags=l.flags}get isDeclaredInLibrary(){return this.declaration.range.source.isLibrary}get identifierNode(){return this.declaration.name}get identifierAndSignatureRange(){let e=this.declaration,r=e.name;if(e.kind==56||e.kind==59){let n=e.signature;if(r.range.source==n.range.source)return le.join(r.range,n.range)}return r.range}get decoratorNodes(){return this.declaration.decorators}},bg=new Set;function Ol(t){return bg.has(t)}var Ut=class extends ir{constructor(e,r,n,s,a,l){super(e,r,n,s,a,l);this.type=p.void;bg.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}},as=class extends ns{constructor(e,r){super(13,r.normalizedPath,r.internalPath,e,null);this.source=r;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=r,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,qe.create(e,[],p.void),this);n.internalName=n.name,this.startFunction=n}add(e,r,n=null){return r.hasDecorator(1)&&(r=this.program.ensureGlobal(e,r)),super.add(e,r,n)?(r=assert(this.getMember(e)),r.is(2)&&!n&&this.ensureExport(r.name,r),!0):!1}getMember(e){let r=super.getMember(e);if(r)return r;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(r=n[s].getMember(e))return r}return null}lookup(e,r=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,r){let n=this.exports;n||(this.exports=n=new Map),n.set(e,r),this.source.sourceKind==3&&this.program.ensureGlobal(e,r);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,r)}ensureExportStar(e){let r=this.exportsStar;if(!r)this.exportsStar=r=[];else if(r.includes(e))return;r.push(e)}lookupExport(e){let r=this.exports;if(r&&r.has(e))return assert(r.get(e));let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s){let l=n[s].lookupExport(e);if(l)return l}return null}asAliasNamespace(e,r,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new ls(e,r,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let r=this.exports;if(r)for(let s=Map_keys(r),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(r.get(o));e.add(o,u)}let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)n[s].copyExportsToNamespace(e)}},$e=class extends Ut{constructor(i,e,r,n=0){super(14,i,Ce(i,e,!1),e.program,e,r),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},ls=class extends ir{constructor(i,e,r,n=0){super(12,i,Ce(i,e,!1),e.program,e,r),this.decoratorFlags=n}lookup(i,e=!1){let r=this.getMember(i);return r||super.lookup(i,e)}},Jl=class extends Ut{constructor(e,r,n,s=0){super(2,e,Ce(e,r,!1),r.program,r,n);this.toStringFunctionName=null;this.decoratorFlags=s,this.setType(p.i32)}lookup(e,r=!1){let n=this.getMember(e);return n||super.lookup(e,r)}},cc=(r=>(r[r.None=0]="None",r[r.Integer=1]="Integer",r[r.Float=2]="Float",r))(cc||{}),Pr=class extends Ut{constructor(e,r,n,s=n.program.makeNativeVariableDeclaration(r)){super(e,r,Ce(r,n,s.is(262144)),n.program,n,s);this.constantValueKind=0;this.constantIntegerValue=i64_zero;this.constantFloatValue=0;this.flags=s.flags}get typeNode(){return this.declaration.type}get initializerNode(){return this.declaration.initializer}setConstantIntegerValue(e,r){assert(r.isIntegerInclReference),this.type=r,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,r){assert(r.isFloatValue),this.type=r,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},Zl=class extends Pr{constructor(e,r,n,s=0){super(3,e,r,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(p.i32)}get valueNode(){return this.declaration.initializer}},Cr=class extends Pr{constructor(i,e,r,n=e.program.makeNativeVariableDeclaration(i)){super(0,i,e,n),this.decoratorFlags=r}},pc=class{constructor(i,e,r=null){this.name=i;this.type=e;this.initializer=r}},Oe=class extends Pr{constructor(e,r,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=r;this.isCaptured=!1;this.envSlotIndex=-1;this.envOwner=null;this.wasAccessedAsLocal=!1;this.originalName=e,this.index=r,assert(n!=p.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},Xe=class t extends ir{constructor(e,r,n,s=0){super(4,e,Ce(e,r,n.is(262144)),r.program,r,n);this.operatorKind=0;this.instances=null;this.unboundOverrides=null;this.boundPrototypes=null;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get functionTypeNode(){return this.declaration.signature}get bodyNode(){return this.declaration.body}get arrowKind(){return this.declaration.arrowKind}toBound(e){assert(this.is(262144)),assert(!this.isBound);let r=this.boundPrototypes;if(!r)this.boundPrototypes=r=new Map;else if(r.has(e))return assert(r.get(e));let n=this.declaration;assert(n.kind==59);let s=new t(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,r.set(e,s),s}getResolvedInstance(e){let r=this.instances;return r&&r.has(e)?assert(r.get(e)):null}setResolvedInstance(e,r){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,r)}},gt=class t extends Ut{constructor(e,r,n,s,a=null){super(5,e,Ce(e,r.parent,r.is(262144)),r.program,r.parent,r.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.capturedLocals=null;this.envClass=null;this.envLocal=null;this.outerFunction=null;this.closureEnvLocal=null;this.needsCaptureRecompile=!1;this.nextBreakId=0;this.breakStack=null;this.prototype=r,this.typeArguments=n,this.signature=s,this.flags=r.flags|4194304,this.decoratorFlags=r.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=r.program;this.type=s.type;let o=zt.createDefault(this);if(this.flow=o,!r.is(32768)){let u=0,c=s.thisType;if(c){let _=new Oe(C.this_,u++,c,this),h=this.flow.scopedLocals;h||(this.flow.scopedLocals=h=new Map),h.set(C.this_,_),this.localsByIndex[_.index]=_,o.setLocalFlag(_.index,8)}let f=s.parameterTypes;for(let _=0,h=f.length;_<h;++_){let m=f[_],x=this.getParameterName(_),g=new Oe(x,u++,m,this),A=this.flow.scopedLocals;A||(this.flow.scopedLocals=A=new Map),A.set(x,g),this.localsByIndex[g.index]=g,o.setLocalFlag(g.index,8)}}l.instancesByName.has(this.internalName)?(l.error(2393,r.declaration.name.range),this.set(16777216)):fc(l,this)}get needsEnvironment(){return this.capturedLocals!=null&&this.capturedLocals.size>0}getNonParameterLocalTypes(){let e=this.localsByIndex,r=this.signature,n=e.length,s=r.parameterTypes.length;r.thisType&&++s;let a=n-s,l=new Array(a);for(let o=0;o<a;++o)l[o]=e[s+o].type;return l}getParameterName(e){let r=this.declaration.signature.parameters;return r.length>e?r[e].name.text:xg(e)}newStub(e,r=this.signature.requiredParameters){let n=new t(this.original.name+_p+e,this.prototype,this.typeArguments,this.signature.clone(r),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,r=null,n=null){let s=this.localsByIndex,a=s.length,l=r??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new Oe(l,a,e,this,n);if(r){let u=this.flow,c=u.scopedLocals;if(c||(u.scopedLocals=c=new Map),c.has(r))throw new Error("duplicate local name");c.set(r,o)}return s[a]=o,o}lookup(e,r=!1){if(!r){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,r)}finalize(e,r){this.ref=r;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,r)}addDebugInfo(e,r){if(this.program.options.sourceMap){let n=this.debugLocations;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o)),c=u.source;e.setDebugLocation(r,o,c.debugInfoIndex,c.lineAt(u.start),c.columnAt()-1)}}if(this.program.options.debugInfo){let n=new Set,s=this.localsByIndex;for(let a=0,l=s.length;a<l;a++){let o=s[a].name;n.has(o)&&(o=`${o}|${a}`),n.add(o),e.setLocalName(r,a,o)}}}},Pi=class t extends ir{constructor(e,r,n){super(10,e,Ce(e,r,n.is(262144)),r.program,r,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,r,n,s){let a=fe.native.range,l=n.type;l||(l=G.createOmittedType(n.name.range.atEnd));let o=new Rr(n.name,n.decorators,n.flags|262144|2048,null,new Sr([],l,null,!1,a),null,a),u=new Rr(n.name,n.decorators,n.flags|262144|4096,null,new Sr([new bi(0,n.name,l,null,a)],new ce(new gi(new Ke("",!1,a),null,a),null,!1,a),null,!1,a),null,a),c=new t(e,r,o);return c.fieldDeclaration=n,c.decoratorFlags=s,c.getterPrototype=new Xe(oa+e,r,o,s),c.setterPrototype=new Xe(ua+e,r,u,s),c}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let r=this.getterPrototype;if(r){let s=r.declaration;if(s.kind==56)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==56){let a=s.signature.parameters;if(a.length)return a[0].type}}return null}get initializerNode(){let e=this.fieldDeclaration;return e?e.initializer:null}get parameterIndex(){let e=this.fieldDeclaration;return e?e.parameterIndex:-1}get thisType(){let e=this.parent;return assert(e.kind==7),e.type}toBound(e){assert(this.is(262144)),assert(!this.isBound);let r=this.boundPrototypes;if(!r)this.boundPrototypes=r=new Map;else if(r.has(e))return assert(r.get(e));let n=this.declaration;assert(n.kind==59);let s=new t(this.name,e,n);s.flags=this.flags,s.fieldDeclaration=this.fieldDeclaration;let a=this.getterPrototype;a&&(s.getterPrototype=a.toBound(e));let l=this.setterPrototype;return l&&(s.setterPrototype=l.toBound(e)),r.set(e,s),s}},Zn=class extends Pr{constructor(e,r){super(11,e.name,r,e.isField?assert(e.fieldDeclaration):G.createVariableDeclaration(e.identifierNode,null,e.flags&262144,null,null,e.identifierNode.range));this.getterInstance=null;this.setterInstance=null;this.memoryOffset=-1;this.prototype=e,this.flags=e.flags,this.decoratorFlags=e.decoratorFlags,this.is(262144)&&fc(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let r=this.getterInstance,n=this.setterInstance;r&&n&&!r.visibilityNoLessThan(n)&&e.errorRelated(2808,r.identifierNode.range,n.identifierNode.range,r.identifierNode.text)}},Yn=class extends Ut{constructor(i){super(15,"[]",i.internalName+"[]",i.program,i,i.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(i){return this.parent.lookupOverload(1,i)}getSetterInstance(i){return this.parent.lookupOverload(2,i)}},os=class extends ir{constructor(e,r,n,s=0,a=!1){super(a?8:6,e,Ce(e,r,n.is(262144)),r.program,r,n);this.instanceMembers=null;this.basePrototype=null;this.interfacePrototypes=null;this.constructorPrototype=null;this.operatorOverloadPrototypes=new Map;this.instances=null;this.extenders=new Set;this.implicitlyExtendsObject=!1;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get extendsNode(){return this.declaration.extendsType}get implementsNodes(){return this.declaration.implementsTypes}get isBuiltinArray(){let e=this.program.arrayBufferViewInstance;return e&&this.extends(e.prototype)}extends(e){let r=this,n=new Set;do{if(n.has(r))break;if(n.add(r),r==e)return!0;r=r.basePrototype}while(r);return!1}addInstance(e,r){let n=r.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=_c(a,r);if(!l)return ss(a.kind)?this.program.errorRelated(2300,r.identifierNode.range,a.declaration.name.range,r.identifierNode.text):this.program.error(2300,r.identifierNode.range,r.identifierNode.text),!1;r=l}return s.set(e,r),r.is(2)&&this.is(1048576)&&r.set(1048576),this.program.elementsByDeclaration.set(n,r),!0}getResolvedInstance(e){let r=this.instances;return r&&r.has(e)?r.get(e):null}setResolvedInstance(e,r){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,r)}},rr=class extends Ut{constructor(e,r,n=null,s=!1){super(s?9:7,e,Ce(e,r.parent,r.is(262144)),r.program,r.parent,r.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=0;this.constructorInstance=null;this.operatorOverloads=null;this.indexSignature=null;this._id=0;this.rttiFlags=0;this.wrappedType=null;this.extenders=null;this.implementers=null;this.didCheckFieldInitialization=!1;this.visitRef=0;this.prototype=r,this.flags=r.flags,this.decoratorFlags=r.decoratorFlags,this.typeArguments=n;let a=this.program,l=a.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size);if(o.classReference=this,this.setType(o),!this.hasDecorator(16)){let c=a.nextClassId++;this._id=c,a.managedClasses.set(c,this)}let u=r.typeParameterNodes;if(n){let c=n.length;if(!u||c!=u.length)throw new Error("type argument count mismatch");if(c){let f=this.contextualTypeArguments;f||(this.contextualTypeArguments=f=new Map);for(let _=0;_<c;++_)f.set(u[_].name.text,n[_])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");fc(a,this)}get id(){return this._id}get isBuiltinArray(){return this.prototype.isBuiltinArray}get isArrayLike(){if(this.isBuiltinArray)return!0;let e=this.getMember("length");return e?(e.kind==11&&e.getterInstance!=null||e.kind==10&&e.getterPrototype!=null)&&(this.lookupOverload(1)!=null||this.lookupOverload(3)!=null):!1}get isInterface(){return this.kind==9}static leastUpperBound(e,r){if(e==r)return e;let n=new Set;for(n.add(e),n.add(r);;){let s=e.base,a=r.base;if(!s&&!a)return null;if(s){if(n.has(s))return s;n.add(e=s)}if(a){if(n.has(a))return a;n.add(r=a)}}}setBase(e){assert(!this.base),this.base=e;let r=e.contextualTypeArguments;if(r){let a=this.contextualTypeArguments;for(let l=Map_keys(r),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]),f=assert(r.get(c));a?a.has(c)||a.set(c,f):(this.contextualTypeArguments=a=new Map,a.set(c,f))}}e.propagateExtenderUp(this);let n=this.extenders;if(n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];e.propagateExtenderUp(u)}let s=e;do{let a=s.interfaces;if(a)for(let l=Set_values(a),o=0,u=l.length;o<u;++o){let c=l[o];this.propagateInterfaceDown(c)}s=s.base}while(s)}propagateExtenderUp(e){let r=this;do{let n=r.extenders;n||(r.extenders=n=new Set),n.add(e),r=r.base}while(r)}propagateInterfaceDown(e){let r=e,n=this.extenders;do{let s=r.implementers;if(s||(r.implementers=s=new Set),s.add(this),n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];s.add(u)}r=r.base}while(r)}addInterface(e){let r=this.interfaces;r||(this.interfaces=r=new Set),r.add(e),this.propagateInterfaceDown(e)}isAssignableTo(e){return e.isInterface?this.isInterface?this==e||this.extends(e):this.implements(e):this.isInterface?e==this.program.objectInstance:this==e||this.extends(e)}hasSubclassAssignableTo(e){return e.isInterface?this.isInterface?this.hasImplementerImplementing(e):this.hasExtenderImplementing(e):this.isInterface?this.hasImplementer(e):this.hasExtender(e)}lookupOverload(e,r=!1){if(r)switch(e){case 1:{let s=this.lookupOverload(3);if(s)return s;break}case 2:{let s=this.lookupOverload(4);if(s)return s;break}default:assert(!1)}let n=this;do{let s=n.operatorOverloads;if(s!=null&&s.has(e))return assert(s.get(e));n=n.base}while(n);return null}getMethod(e,r=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,r):null}offsetof(e){let r=assert(this.getMember(e));assert(r.kind==10);let s=r.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let r=this.program,n=this.nextMemoryOffset+e,s=r.computeBlockSize(n,!0),a=new Uint8Array(r.blockOverhead+s),l=r.OBJECTInstance;return l.writeField("mmInfo",s,a,0),l.writeField("gcInfo",0,a,0),l.writeField("gcInfo2",0,a,0),l.writeField("rtId",this.id,a,0),l.writeField("rtSize",n,a,0),a}writeField(e,r,n,s=this.program.totalOverhead){let a=this.getMember(e);if(a&&a.kind==10){let o=a.instance;if(!o)return 0;assert(o.isField&&o.memoryOffset>=0);let u=s+o.memoryOffset,c=o.type.kind;switch(c){case 1:case 6:return assert(!i64_is(r)),_e(i32(r),n,u),1;case 2:case 7:return assert(!i64_is(r)),Zt(i32(r),n,u),2;case 3:case 8:return assert(!i64_is(r)),me(i32(r),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(r)?ci(r,n,u):ca(i32(r),n,u,c==10),8):(i64_is(r)?hp(r,n,u,c==10):me(i32(r),n,u),4);case 4:case 9:return i64_is(r)?ci(r,n,u):ca(i32(r),n,u,c==9),8;case 11:return assert(!i64_is(r)),xr(f32(r),n,u),4;case 12:return assert(!i64_is(r)),Tr(f64(r),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let r=this;do{if(r.prototype==e)return r.typeArguments;r=r.base}while(r);return null}getArrayValueType(){let e=this,r=this.program,n=r.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=r.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=r.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==r.float32ArrayPrototype)return p.f32;if(l==r.float64ArrayPrototype)return p.f64;break}case 73:{if(l==r.int8ArrayPrototype)return p.i8;if(l==r.int16ArrayPrototype)return p.i16;if(l==r.int32ArrayPrototype)return p.i32;if(l==r.int64ArrayPrototype)return p.i64;break}case 85:{if(l==r.uint8ArrayPrototype)return p.u8;if(l==r.uint8ClampedArrayPrototype)return p.u8;if(l==r.uint16ArrayPrototype)return p.u16;if(l==r.uint32ArrayPrototype)return p.u32;if(l==r.uint64ArrayPrototype)return p.u64;break}}return assert(!1),p.void}get isPointerfree(){let e=this.program,r=this.members;if(r){for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(l.kind==10){let u=l.instance;if(!u)continue;if(u.isField&&u.type.isManaged)return!1}}if(r.has(C.visit)){let n=this.prototype;if(n==e.arrayPrototype||n==e.staticArrayPrototype||n==e.setPrototype||n==e.mapPrototype){let s=assert(this.getTypeArgumentsTo(n));for(let a=0,l=s.length;a<l;++a)if(s[a].isManaged)return!1;return!0}return!1}}return!0}extends(e){return e.hasExtender(this)}hasExtender(e){let r=this.extenders;return r!=null&&r.has(e)}hasExtenderImplementing(e){let r=this.extenders;if(r){for(let n=Set_values(r),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}implements(e){return e.hasImplementer(this)}hasImplementer(e){let r=this.implementers;return r!=null&&r.has(e)}hasImplementerImplementing(e){let r=this.implementers;if(r){for(let n=Set_values(r),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},Yl=class extends os{constructor(i,e,r,n){super(i,e,r,n,!0)}},$n=class extends rr{constructor(i,e,r=null){super(i,e,r,!0)}};function fc(t,i){assert(!t.instancesByName.has(i.internalName)),t.instancesByName.set(i.internalName,i)}function _c(t,i){if(assert(t.program==i.program),i.members)return null;let e=null;switch(t.kind){case 4:{switch(i.kind){case 12:{Dt(i,t),e=t;break}case 14:{t.shadowType||(t.shadowType=i,Dt(i,t),e=t);break}}break}case 6:case 2:{if(i.kind==12){Dt(i,t),e=t;break}break}case 12:{switch(i.kind){case 2:case 6:case 4:{Dt(t,i),e=i;break}case 12:{Dt(i,t),e=t;break}case 14:{t.shadowType||(t.shadowType=i,Dt(i,t),e=t);break}}break}case 0:{i.kind==14&&(t.shadowType||(t.shadowType=i,Dt(i,t),e=t));break}case 14:{switch(i.kind){case 0:case 4:case 12:{i.shadowType||(i.shadowType=t,Dt(t,i),e=i);break}}break}}if(e){let r=t.is(2)||t.hasDecorator(1),n=i.is(2)||i.hasDecorator(1);r!=n&&t.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function Dt(t,i){let e=t.members;if(e){let r=i.members;r||(i.members=r=new Map);for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));r.set(l,o)}}}function Ce(t,i,e,r=!1){switch(i.kind){case 13:return r?t:i.internalName+rt+t;case 5:return r?t:(assert(!e),i.internalName+fp+t);case 10:case 11:i=i.parent;default:return Ce(i.name,i.parent,i.is(262144),r)+(e?cp:Sn)+t}}var oc=[];function xg(t){for(let i=oc.length;i<=t;++i)oc.push(`$${i}`);return oc[t]}var er=(W=>(W[W.Bool=0]="Bool",W[W.I8=1]="I8",W[W.I16=2]="I16",W[W.I32=3]="I32",W[W.I64=4]="I64",W[W.Isize=5]="Isize",W[W.U8=6]="U8",W[W.U16=7]="U16",W[W.U32=8]="U32",W[W.U64=9]="U64",W[W.Usize=10]="Usize",W[W.F32=11]="F32",W[W.F64=12]="F64",W[W.V128=13]="V128",W[W.Extern=14]="Extern",W[W.Func=15]="Func",W[W.Any=16]="Any",W[W.Eq=17]="Eq",W[W.Struct=18]="Struct",W[W.Array=19]="Array",W[W.I31=20]="I31",W[W.String=21]="String",W[W.StringviewWTF8=22]="StringviewWTF8",W[W.StringviewWTF16=23]="StringviewWTF16",W[W.StringviewIter=24]="StringviewIter",W[W.Void=25]="Void",W))(er||{}),yt=(x=>(x[x.None=0]="None",x[x.Signed=1]="Signed",x[x.Unsigned=2]="Unsigned",x[x.Integer=4]="Integer",x[x.Float=8]="Float",x[x.Varying=16]="Varying",x[x.Short=32]="Short",x[x.Long=64]="Long",x[x.Value=128]="Value",x[x.Reference=256]="Reference",x[x.Nullable=512]="Nullable",x[x.Vector=1024]="Vector",x[x.External=2048]="External",x[x.Class=4096]="Class",x[x.Function=8192]="Function",x))(yt||{}),p=class t{constructor(i,e,r){this.classReference=null;this.signatureReference=null;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=i,this.flags=e,this.size=r,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==t.auto)return this;switch(this.kind){case 0:case 3:case 11:return t.i32;case 1:return t.i8;case 2:return t.i16;case 12:case 4:return t.i64;case 5:return this.size==64?t.isize64:t.isize32;case 6:return t.u8;case 7:return t.u16;case 8:return t.u32;case 9:return t.u64;case 10:return this.size==64?t.usize64:t.usize32;default:return t.i32}}get exceptVoid(){return this.kind==25?t.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return 31-clz(this.byteSize)}get isValue(){return this.is(128)}get isIntegerValue(){return this.is(132)}get isShortIntegerValue(){return this.is(164)}get isLongIntegerValue(){return this.is(196)}get isSignedIntegerValue(){return this.is(133)}get isUnsignedIntegerValue(){return this.is(134)}get isVaryingIntegerValue(){return this.is(148)}get isIntegerInclReference(){return this.is(4)}get isFloatValue(){return this.is(136)}get isNumericValue(){return this.isIntegerValue||this.isFloatValue}get isBooleanValue(){return this==t.bool}get isVectorValue(){return this.is(1152)}get isReference(){return this.is(256)}get isNullableReference(){return this.is(768)}get isInternalReference(){return this.is(260)}get isExternalReference(){return this.is(2304)}get isNullableExternalReference(){return this.is(2816)}getClass(){return this.isInternalReference?this.classReference:null}get isClass(){return this.getClass()!=null}getClassOrWrapper(i){let e=this.getClass();if(e)return e;{let r=this.getSignature();if(r){let n=r.type,s=assert(i.resolver.resolveClass(i.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=i.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(i,e){let r=this.getClassOrWrapper(e);return r?r.lookupOverload(i):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let i=this.classReference;return i?!i.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let i=this.classReference;return i!=null&&i.hasDecorator(16)}get isMemory(){switch(this.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:return!0}return!1}get nonNullableType(){return assert(this._nonNullableType)}get nullableType(){return this.isReference?this.asNullable():null}computeSmallIntegerShift(i){return i.size-this.size}computeSmallIntegerMask(i){let e=this.size;return this.is(2)||(e-=1),-1>>>i.size-e}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}asNullable(){assert(this.isReference);let i=this._nullableType;return i||(assert(!this.isNullableReference),this._nullableType=i=new t(this.kind,this.flags|512,this.size),i.classReference=this.classReference,i.signatureReference=this.signatureReference,i._nonNullableType=this),i}toUnsigned(){switch(this.kind){case 1:return t.u8;case 2:return t.u16;case 3:return t.u32;case 4:return t.u64;case 5:return this.size==64?t.usize64:t.usize32}return this}equals(i){if(this.kind!=i.kind)return!1;if(this.isReference){let e=this.signatureReference,r=i.signatureReference;return this.classReference==i.classReference&&e==r&&this.isNullableReference==i.isNullableReference}return!0}isAssignableTo(i,e=!1){let r,n,s,a;if(this.isReference){if(i.isReference&&(!this.isNullableReference||i.isNullableReference)){if(r=this.getClass()){if(n=i.getClass())return r.isAssignableTo(n)}else if(s=this.getSignature()){if(a=i.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==i.kind||i.kind==16&&this.kind!=14))return!0}}else if(!i.isReference){if(this.isIntegerValue)if(i.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==i.isSignedIntegerValue)return this.size<=i.size}else{if(i.kind==11)return this.size<=23;if(i.kind==12)return this.size<=52}else if(this.isFloatValue){if(i.isFloatValue)return this.size<=i.size}else if(this.isVectorValue&&i.isVectorValue)return this.size==i.size}return!1}isStrictlyAssignableTo(i,e=!1){return this.isReference?this.isAssignableTo(i):i.isReference?!1:this.isIntegerValue?i.isIntegerValue&&i.size==this.size&&(!e||this.isSignedIntegerValue==i.isSignedIntegerValue):this.kind==i.kind}hasSubtypeAssignableTo(i){let e=this.getClass(),r=i.getClass();return!e||!r?!1:e.hasSubclassAssignableTo(r)}isChangeableTo(i){if(this.is(4)&&i.is(4)){let e=this.size;return e==i.size&&(e>=32||this.is(1)==i.is(1))}return this.kind==i.kind}canExtendOrImplement(i){let e=this.getClass(),r=i.getClass();if(!e||!r||this.isManaged!=i.isManaged)return!1;if(this.isInternalReference){if(!i.isInternalReference)return!1}else if(this.isExternalReference){if(!i.isExternalReference)return!1}else return!1;return!0}static commonType(i,e,r=t.auto,n=!1){if(i.isInternalReference){if(!e.isInternalReference)return null;if(r!=t.void&&i.isAssignableTo(r)&&e.isAssignableTo(r))return r;let s=i.getClass(),a=e.getClass();if(s&&a){let l=rr.leastUpperBound(s,a);if(l)return i.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(i,n)?i:i.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return C.bool;case 1:return C.i8;case 2:return C.i16;case 3:return C.i32;case 4:return C.i64;case 5:return C.isize;case 6:return C.u8;case 7:return C.u16;case 8:return C.u32;case 9:return C.u64;case 10:return C.usize;case 11:return C.f32;case 12:return C.f64;case 13:return C.v128;case 15:return C.ref_func;case 14:return C.ref_extern;case 16:return C.ref_any;case 17:return C.ref_eq;case 18:return C.ref_struct;case 19:return C.ref_array;case 20:return C.ref_i31;case 21:return C.ref_string;case 22:return C.ref_stringview_wtf8;case 23:return C.ref_stringview_wtf16;case 24:return C.ref_stringview_iter;default:assert(!1);case 25:return C.void_}}toString(i=!1){let e=i?"|null":" | null";if(this.isReference){let r=this.getClass();if(r)return this.isNullableReference?r.internalName+e:r.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(i)})${e}`:n.toString(i):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==t.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return L.I32;case 5:case 10:if(this.size!=64)return L.I32;case 4:case 9:return L.I64;case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return de(ge.Func,this.is(512));case 14:return de(ge.Extern,this.is(512));case 16:return de(ge.Any,this.is(512));case 17:return de(ge.Eq,this.is(512));case 18:return de(ge.Struct,this.is(512));case 19:return de(ge.Array,this.is(512));case 20:return de(ge.I31,this.is(512));case 21:return de(ge.String,this.is(512));case 25:return L.None}return assert(!1),Qn(this)}static{this.i8=new t(1,165,8)}static{this.i16=new t(2,165,16)}static{this.i32=new t(3,133,32)}static{this.i64=new t(4,197,64)}static{this.isize32=new t(5,149,32)}static{this.isize64=new t(5,213,64)}static{this.u8=new t(6,166,8)}static{this.u16=new t(7,166,16)}static{this.u32=new t(8,134,32)}static{this.u64=new t(9,198,64)}static{this.usize32=new t(10,150,32)}static{this.usize64=new t(10,214,64)}static{this.bool=new t(0,166,1)}static{this.f32=new t(11,137,32)}static{this.f64=new t(12,201,64)}static{this.v128=new t(13,1152,128)}static{this.func=new t(15,2304,0)}static{this.extern=new t(14,2304,0)}static{this.any=new t(16,2304,0)}static{this.eq=new t(17,2304,0)}static{this.struct=new t(18,2304,0)}static{this.array=new t(19,2304,0)}static{this.i31=new t(20,2304,0)}static{this.string=new t(21,2304,0)}static{this.stringview_wtf8=new t(22,2304,0)}static{this.stringview_wtf16=new t(23,2304,0)}static{this.stringview_iter=new t(24,2304,0)}static{this.void=new t(25,0,0)}static{this.auto=new t(t.i32.kind,t.i32.flags,t.i32.size)}};function Br(t){let i=t.length,e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=t[r].toRef());return e}function ql(t){let i=t.length;if(!i)return"";let e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=t[r].toString(!0));return e.join(",")}var qe=class t{constructor(i,e,r,n,s,a,l,o){this.program=i;this.parameterTypes=e;this.returnType=r;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.id=l;this.type=o}static create(i,e=[],r=p.void,n=null,s=e?e.length:0,a=!1){let l=i.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size),u=i.uniqueSignatures,c=i.nextSignatureId,f=new t(i,e,r,n,s,a,c,o),_=f.toString();if(u.has(_)){let h=assert(u.get(_));return assert(f.equals(h)),h}return i.nextSignatureId=c+1,o.signatureReference=f,u.set(_,f),f}get paramRefs(){let i=this.thisType,e=this.parameterTypes,r=e.length;if(!r)return i?i.toRef():L.None;if(i){let n=new Array(1+r);unchecked(n[0]=i.toRef());for(let s=0;s<r;++s)unchecked(n[s+1]=e[s].toRef());return je(n)}return je(Br(e))}get resultRefs(){return this.returnType.toRef()}equals(i){let e=this.thisType,r=i.thisType;if(e){if(!r||!e.equals(r))return!1}else if(r)return!1;if(this.hasRest!=i.hasRest||!this.returnType.equals(i.returnType))return!1;let n=this.parameterTypes,s=i.parameterTypes,a=n.length;if(a!=s.length)return!1;for(let l=0;l<a;++l){let o=unchecked(n[l]),u=unchecked(s[l]);if(!o.equals(u))return!1}return!0}isAssignableTo(i,e=!1){let r=this.thisType,n=i.thisType;if(r&&n){if(!(e?r.canExtendOrImplement(n):n.isAssignableTo(r)))return!1}else if(r||n)return!1;if(this.hasRest!=i.hasRest)return!1;let s=this.returnType,a=i.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=i.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let c=0;c<u;++c){let f=unchecked(l[c]),_=unchecked(o[c]);if(f!=_)return!1}return!0}get hasManagedOperands(){let i=this.thisType;if(i&&i.isManaged)return!0;let e=this.parameterTypes;for(let r=0,n=e.length;r<n;++r)if(unchecked(e[r]).isManaged)return!0;return!1}getManagedOperandIndices(){let i=new Array,e=0,r=this.thisType;r&&(r.isManaged&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&i.push(e),++e;return i}get hasVectorValueOperands(){let i=this.thisType;if(i&&i.isVectorValue)return!0;let e=this.parameterTypes;for(let r=0,n=e.length;r<n;++r)if(unchecked(e[r]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let i=new Array,e=0,r=this.thisType;r&&(r.isVectorValue&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&i.push(e),++e;return i}toString(i=!1){let e=new Array;e.push(i?"%28":"(");let r=0,n=this.thisType;n&&(e.push(i?"this:":"this: "),e.push(n.toString(i)),r=1);let s=this.parameterTypes,a=s.length;if(a){let l=this.requiredParameters,o=this.hasRest?a-1:-1;for(let u=0;u<a;++u,++r)r&&e.push(i?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(i)),u>=l&&u!=o&&e.push("?")}return e.push(i?"%29=>":") => "),e.push(this.returnType.toString(i)),e.join("")}clone(i=this.requiredParameters,e=this.hasRest){let r=this.parameterTypes,n=r.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=r[a]);return t.create(this.program,s,this.returnType,this.thisType,i,e)}};var d;(y=>(y.start="~start",y.started="~started",y.argumentsLength="~argumentsLength",y.setArgumentsLength="~setArgumentsLength",y.abort="~lib/builtins/abort",y.trace="~lib/builtins/trace",y.seed="~lib/builtins/seed",y.isBoolean="~lib/builtins/isBoolean",y.isInteger="~lib/builtins/isInteger",y.isSigned="~lib/builtins/isSigned",y.isFloat="~lib/builtins/isFloat",y.isVector="~lib/builtins/isVector",y.isReference="~lib/builtins/isReference",y.isString="~lib/builtins/isString",y.isArray="~lib/builtins/isArray",y.isArrayLike="~lib/builtins/isArrayLike",y.isFunction="~lib/builtins/isFunction",y.isNullable="~lib/builtins/isNullable",y.isDefined="~lib/builtins/isDefined",y.isConstant="~lib/builtins/isConstant",y.isManaged="~lib/builtins/isManaged",y.isVoid="~lib/builtins/isVoid",y.add="~lib/builtins/add",y.sub="~lib/builtins/sub",y.mul="~lib/builtins/mul",y.div="~lib/builtins/div",y.clz="~lib/builtins/clz",y.ctz="~lib/builtins/ctz",y.popcnt="~lib/builtins/popcnt",y.rotl="~lib/builtins/rotl",y.rotr="~lib/builtins/rotr",y.abs="~lib/builtins/abs",y.max="~lib/builtins/max",y.min="~lib/builtins/min",y.ceil="~lib/builtins/ceil",y.floor="~lib/builtins/floor",y.copysign="~lib/builtins/copysign",y.nearest="~lib/builtins/nearest",y.reinterpret="~lib/builtins/reinterpret",y.sqrt="~lib/builtins/sqrt",y.trunc="~lib/builtins/trunc",y.eq="~lib/builtins/eq",y.ne="~lib/builtins/ne",y.rem="~lib/builtins/rem",y.load="~lib/builtins/load",y.store="~lib/builtins/store",y.atomic_load="~lib/builtins/atomic.load",y.atomic_store="~lib/builtins/atomic.store",y.atomic_add="~lib/builtins/atomic.add",y.atomic_sub="~lib/builtins/atomic.sub",y.atomic_and="~lib/builtins/atomic.and",y.atomic_or="~lib/builtins/atomic.or",y.atomic_xor="~lib/builtins/atomic.xor",y.atomic_xchg="~lib/builtins/atomic.xchg",y.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",y.atomic_wait="~lib/builtins/atomic.wait",y.atomic_notify="~lib/builtins/atomic.notify",y.atomic_fence="~lib/builtins/atomic.fence",y.sizeof="~lib/builtins/sizeof",y.alignof="~lib/builtins/alignof",y.offsetof="~lib/builtins/offsetof",y.nameof="~lib/builtins/nameof",y.lengthof="~lib/builtins/lengthof",y.select="~lib/builtins/select",y.unreachable="~lib/builtins/unreachable",y.changetype="~lib/builtins/changetype",y.assert="~lib/builtins/assert",y.call_indirect="~lib/builtins/call_indirect",y.unchecked="~lib/builtins/unchecked",y.inline_always="~lib/builtins/inline.always",y.instantiate="~lib/builtins/instantiate",y.idof="~lib/builtins/idof",y.i8="~lib/builtins/i8",y.i16="~lib/builtins/i16",y.i32="~lib/builtins/i32",y.i64="~lib/builtins/i64",y.isize="~lib/builtins/isize",y.u8="~lib/builtins/u8",y.u16="~lib/builtins/u16",y.u32="~lib/builtins/u32",y.u64="~lib/builtins/u64",y.usize="~lib/builtins/usize",y.bool="~lib/builtins/bool",y.f32="~lib/builtins/f32",y.f64="~lib/builtins/f64",y.v128="~lib/builtins/v128",y.i32_clz="~lib/builtins/i32.clz",y.i64_clz="~lib/builtins/i64.clz",y.i32_ctz="~lib/builtins/i32.ctz",y.i64_ctz="~lib/builtins/i64.ctz",y.i32_popcnt="~lib/builtins/i32.popcnt",y.i64_popcnt="~lib/builtins/i64.popcnt",y.i32_rotl="~lib/builtins/i32.rotl",y.i64_rotl="~lib/builtins/i64.rotl",y.i32_rotr="~lib/builtins/i32.rotr",y.i64_rotr="~lib/builtins/i64.rotr",y.f32_abs="~lib/builtins/f32.abs",y.f64_abs="~lib/builtins/f64.abs",y.f32_max="~lib/builtins/f32.max",y.f64_max="~lib/builtins/f64.max",y.f32_min="~lib/builtins/f32.min",y.f64_min="~lib/builtins/f64.min",y.f32_ceil="~lib/builtins/f32.ceil",y.f64_ceil="~lib/builtins/f64.ceil",y.f32_floor="~lib/builtins/f32.floor",y.f64_floor="~lib/builtins/f64.floor",y.f32_copysign="~lib/builtins/f32.copysign",y.f64_copysign="~lib/builtins/f64.copysign",y.f32_nearest="~lib/builtins/f32.nearest",y.f64_nearest="~lib/builtins/f64.nearest",y.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",y.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",y.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",y.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",y.f32_sqrt="~lib/builtins/f32.sqrt",y.f64_sqrt="~lib/builtins/f64.sqrt",y.f32_trunc="~lib/builtins/f32.trunc",y.f64_trunc="~lib/builtins/f64.trunc",y.i32_add="~lib/builtins/i32.add",y.i64_add="~lib/builtins/i64.add",y.f32_add="~lib/builtins/f32.add",y.f64_add="~lib/builtins/f64.add",y.i32_sub="~lib/builtins/i32.sub",y.i64_sub="~lib/builtins/i64.sub",y.f32_sub="~lib/builtins/f32.sub",y.f64_sub="~lib/builtins/f64.sub",y.i32_mul="~lib/builtins/i32.mul",y.i64_mul="~lib/builtins/i64.mul",y.f32_mul="~lib/builtins/f32.mul",y.f64_mul="~lib/builtins/f64.mul",y.i32_div_s="~lib/builtins/i32.div_s",y.i32_div_u="~lib/builtins/i32.div_u",y.i64_div_s="~lib/builtins/i64.div_s",y.i64_div_u="~lib/builtins/i64.div_u",y.f32_div="~lib/builtins/f32.div",y.f64_div="~lib/builtins/f64.div",y.i32_eq="~lib/builtins/i32.eq",y.i64_eq="~lib/builtins/i64.eq",y.f32_eq="~lib/builtins/f32.eq",y.f64_eq="~lib/builtins/f64.eq",y.i32_ne="~lib/builtins/i32.ne",y.i64_ne="~lib/builtins/i64.ne",y.f32_ne="~lib/builtins/f32.ne",y.f64_ne="~lib/builtins/f64.ne",y.i32_rem_s="~lib/builtins/i32.rem_s",y.i32_rem_u="~lib/builtins/i32.rem_u",y.i64_rem_s="~lib/builtins/i64.rem_s",y.i64_rem_u="~lib/builtins/i64.rem_u",y.i32_load8_s="~lib/builtins/i32.load8_s",y.i32_load8_u="~lib/builtins/i32.load8_u",y.i32_load16_s="~lib/builtins/i32.load16_s",y.i32_load16_u="~lib/builtins/i32.load16_u",y.i32_load="~lib/builtins/i32.load",y.i64_load8_s="~lib/builtins/i64.load8_s",y.i64_load8_u="~lib/builtins/i64.load8_u",y.i64_load16_s="~lib/builtins/i64.load16_s",y.i64_load16_u="~lib/builtins/i64.load16_u",y.i64_load32_s="~lib/builtins/i64.load32_s",y.i64_load32_u="~lib/builtins/i64.load32_u",y.i64_load="~lib/builtins/i64.load",y.f32_load="~lib/builtins/f32.load",y.f64_load="~lib/builtins/f64.load",y.i32_store8="~lib/builtins/i32.store8",y.i32_store16="~lib/builtins/i32.store16",y.i32_store="~lib/builtins/i32.store",y.i64_store8="~lib/builtins/i64.store8",y.i64_store16="~lib/builtins/i64.store16",y.i64_store32="~lib/builtins/i64.store32",y.i64_store="~lib/builtins/i64.store",y.f32_store="~lib/builtins/f32.store",y.f64_store="~lib/builtins/f64.store",y.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",y.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",y.i32_atomic_load="~lib/builtins/i32.atomic.load",y.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",y.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",y.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",y.i64_atomic_load="~lib/builtins/i64.atomic.load",y.i32_atomic_store8="~lib/builtins/i32.atomic.store8",y.i32_atomic_store16="~lib/builtins/i32.atomic.store16",y.i32_atomic_store="~lib/builtins/i32.atomic.store",y.i64_atomic_store8="~lib/builtins/i64.atomic.store8",y.i64_atomic_store16="~lib/builtins/i64.atomic.store16",y.i64_atomic_store32="~lib/builtins/i64.atomic.store32",y.i64_atomic_store="~lib/builtins/i64.atomic.store",y.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",y.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",y.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",y.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",y.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",y.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",y.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",y.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",y.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",y.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",y.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",y.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",y.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",y.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",y.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",y.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",y.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",y.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",y.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",y.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",y.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",y.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",y.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",y.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",y.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",y.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",y.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",y.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",y.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",y.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",y.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",y.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",y.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",y.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",y.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",y.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",y.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",y.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",y.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",y.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",y.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",y.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",y.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",y.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",y.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",y.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",y.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",y.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",y.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",y.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",y.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",y.v128_splat="~lib/builtins/v128.splat",y.v128_extract_lane="~lib/builtins/v128.extract_lane",y.v128_replace_lane="~lib/builtins/v128.replace_lane",y.v128_shuffle="~lib/builtins/v128.shuffle",y.v128_swizzle="~lib/builtins/v128.swizzle",y.v128_load_splat="~lib/builtins/v128.load_splat",y.v128_load_ext="~lib/builtins/v128.load_ext",y.v128_load_zero="~lib/builtins/v128.load_zero",y.v128_load_lane="~lib/builtins/v128.load_lane",y.v128_store_lane="~lib/builtins/v128.store_lane",y.v128_load="~lib/builtins/v128.load",y.v128_load8x8_s="~lib/builtins/v128.load8x8_s",y.v128_load8x8_u="~lib/builtins/v128.load8x8_u",y.v128_load16x4_s="~lib/builtins/v128.load16x4_s",y.v128_load16x4_u="~lib/builtins/v128.load16x4_u",y.v128_load32x2_s="~lib/builtins/v128.load32x2_s",y.v128_load32x2_u="~lib/builtins/v128.load32x2_u",y.v128_load8_splat="~lib/builtins/v128.load8_splat",y.v128_load16_splat="~lib/builtins/v128.load16_splat",y.v128_load32_splat="~lib/builtins/v128.load32_splat",y.v128_load64_splat="~lib/builtins/v128.load64_splat",y.v128_load32_zero="~lib/builtins/v128.load32_zero",y.v128_load64_zero="~lib/builtins/v128.load64_zero",y.v128_load8_lane="~lib/builtins/v128.load8_lane",y.v128_load16_lane="~lib/builtins/v128.load16_lane",y.v128_load32_lane="~lib/builtins/v128.load32_lane",y.v128_load64_lane="~lib/builtins/v128.load64_lane",y.v128_store8_lane="~lib/builtins/v128.store8_lane",y.v128_store16_lane="~lib/builtins/v128.store16_lane",y.v128_store32_lane="~lib/builtins/v128.store32_lane",y.v128_store64_lane="~lib/builtins/v128.store64_lane",y.v128_store="~lib/builtins/v128.store",y.v128_add="~lib/builtins/v128.add",y.v128_sub="~lib/builtins/v128.sub",y.v128_mul="~lib/builtins/v128.mul",y.v128_div="~lib/builtins/v128.div",y.v128_neg="~lib/builtins/v128.neg",y.v128_add_sat="~lib/builtins/v128.add_sat",y.v128_sub_sat="~lib/builtins/v128.sub_sat",y.v128_shl="~lib/builtins/v128.shl",y.v128_shr="~lib/builtins/v128.shr",y.v128_and="~lib/builtins/v128.and",y.v128_or="~lib/builtins/v128.or",y.v128_xor="~lib/builtins/v128.xor",y.v128_andnot="~lib/builtins/v128.andnot",y.v128_not="~lib/builtins/v128.not",y.v128_bitselect="~lib/builtins/v128.bitselect",y.v128_any_true="~lib/builtins/v128.any_true",y.v128_all_true="~lib/builtins/v128.all_true",y.v128_bitmask="~lib/builtins/v128.bitmask",y.v128_popcnt="~lib/builtins/v128.popcnt",y.v128_min="~lib/builtins/v128.min",y.v128_max="~lib/builtins/v128.max",y.v128_pmin="~lib/builtins/v128.pmin",y.v128_pmax="~lib/builtins/v128.pmax",y.v128_dot="~lib/builtins/v128.dot",y.v128_avgr="~lib/builtins/v128.avgr",y.v128_abs="~lib/builtins/v128.abs",y.v128_sqrt="~lib/builtins/v128.sqrt",y.v128_ceil="~lib/builtins/v128.ceil",y.v128_floor="~lib/builtins/v128.floor",y.v128_trunc="~lib/builtins/v128.trunc",y.v128_nearest="~lib/builtins/v128.nearest",y.v128_eq="~lib/builtins/v128.eq",y.v128_ne="~lib/builtins/v128.ne",y.v128_lt="~lib/builtins/v128.lt",y.v128_le="~lib/builtins/v128.le",y.v128_gt="~lib/builtins/v128.gt",y.v128_ge="~lib/builtins/v128.ge",y.v128_convert="~lib/builtins/v128.convert",y.v128_convert_low="~lib/builtins/v128.convert_low",y.v128_trunc_sat="~lib/builtins/v128.trunc_sat",y.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",y.v128_narrow="~lib/builtins/v128.narrow",y.v128_extend_low="~lib/builtins/v128.extend_low",y.v128_extend_high="~lib/builtins/v128.extend_high",y.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",y.v128_demote_zero="~lib/builtins/v128.demote_zero",y.v128_promote_low="~lib/builtins/v128.promote_low",y.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",y.v128_extmul_low="~lib/builtins/v128.extmul_low",y.v128_extmul_high="~lib/builtins/v128.extmul_high",y.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",y.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",y.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",y.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",y.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",y.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",y.v128_relaxed_min="~lib/builtins/v128.relaxed_min",y.v128_relaxed_max="~lib/builtins/v128.relaxed_max",y.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",y.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",y.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",y.i8x16="~lib/builtins/i8x16",y.i16x8="~lib/builtins/i16x8",y.i32x4="~lib/builtins/i32x4",y.i64x2="~lib/builtins/i64x2",y.f32x4="~lib/builtins/f32x4",y.f64x2="~lib/builtins/f64x2",y.i8x16_splat="~lib/builtins/i8x16.splat",y.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",y.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",y.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",y.i8x16_add="~lib/builtins/i8x16.add",y.i8x16_sub="~lib/builtins/i8x16.sub",y.i8x16_mul="~lib/builtins/i8x16.mul",y.i8x16_min_s="~lib/builtins/i8x16.min_s",y.i8x16_min_u="~lib/builtins/i8x16.min_u",y.i8x16_max_s="~lib/builtins/i8x16.max_s",y.i8x16_max_u="~lib/builtins/i8x16.max_u",y.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",y.i8x16_abs="~lib/builtins/i8x16.abs",y.i8x16_neg="~lib/builtins/i8x16.neg",y.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",y.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",y.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",y.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",y.i8x16_shl="~lib/builtins/i8x16.shl",y.i8x16_shr_s="~lib/builtins/i8x16.shr_s",y.i8x16_shr_u="~lib/builtins/i8x16.shr_u",y.i8x16_all_true="~lib/builtins/i8x16.all_true",y.i8x16_bitmask="~lib/builtins/i8x16.bitmask",y.i8x16_popcnt="~lib/builtins/i8x16.popcnt",y.i8x16_eq="~lib/builtins/i8x16.eq",y.i8x16_ne="~lib/builtins/i8x16.ne",y.i8x16_lt_s="~lib/builtins/i8x16.lt_s",y.i8x16_lt_u="~lib/builtins/i8x16.lt_u",y.i8x16_le_s="~lib/builtins/i8x16.le_s",y.i8x16_le_u="~lib/builtins/i8x16.le_u",y.i8x16_gt_s="~lib/builtins/i8x16.gt_s",y.i8x16_gt_u="~lib/builtins/i8x16.gt_u",y.i8x16_ge_s="~lib/builtins/i8x16.ge_s",y.i8x16_ge_u="~lib/builtins/i8x16.ge_u",y.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",y.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",y.i8x16_shuffle="~lib/builtins/i8x16.shuffle",y.i8x16_swizzle="~lib/builtins/i8x16.swizzle",y.i16x8_splat="~lib/builtins/i16x8.splat",y.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",y.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",y.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",y.i16x8_add="~lib/builtins/i16x8.add",y.i16x8_sub="~lib/builtins/i16x8.sub",y.i16x8_mul="~lib/builtins/i16x8.mul",y.i16x8_min_s="~lib/builtins/i16x8.min_s",y.i16x8_min_u="~lib/builtins/i16x8.min_u",y.i16x8_max_s="~lib/builtins/i16x8.max_s",y.i16x8_max_u="~lib/builtins/i16x8.max_u",y.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",y.i16x8_abs="~lib/builtins/i16x8.abs",y.i16x8_neg="~lib/builtins/i16x8.neg",y.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",y.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",y.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",y.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",y.i16x8_shl="~lib/builtins/i16x8.shl",y.i16x8_shr_s="~lib/builtins/i16x8.shr_s",y.i16x8_shr_u="~lib/builtins/i16x8.shr_u",y.i16x8_all_true="~lib/builtins/i16x8.all_true",y.i16x8_bitmask="~lib/builtins/i16x8.bitmask",y.i16x8_eq="~lib/builtins/i16x8.eq",y.i16x8_ne="~lib/builtins/i16x8.ne",y.i16x8_lt_s="~lib/builtins/i16x8.lt_s",y.i16x8_lt_u="~lib/builtins/i16x8.lt_u",y.i16x8_le_s="~lib/builtins/i16x8.le_s",y.i16x8_le_u="~lib/builtins/i16x8.le_u",y.i16x8_gt_s="~lib/builtins/i16x8.gt_s",y.i16x8_gt_u="~lib/builtins/i16x8.gt_u",y.i16x8_ge_s="~lib/builtins/i16x8.ge_s",y.i16x8_ge_u="~lib/builtins/i16x8.ge_u",y.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",y.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",y.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",y.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",y.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",y.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",y.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",y.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",y.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",y.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",y.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",y.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",y.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",y.i16x8_shuffle="~lib/builtins/i16x8.shuffle",y.i32x4_splat="~lib/builtins/i32x4.splat",y.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",y.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",y.i32x4_add="~lib/builtins/i32x4.add",y.i32x4_sub="~lib/builtins/i32x4.sub",y.i32x4_mul="~lib/builtins/i32x4.mul",y.i32x4_min_s="~lib/builtins/i32x4.min_s",y.i32x4_min_u="~lib/builtins/i32x4.min_u",y.i32x4_max_s="~lib/builtins/i32x4.max_s",y.i32x4_max_u="~lib/builtins/i32x4.max_u",y.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",y.i32x4_abs="~lib/builtins/i32x4.abs",y.i32x4_neg="~lib/builtins/i32x4.neg",y.i32x4_shl="~lib/builtins/i32x4.shl",y.i32x4_shr_s="~lib/builtins/i32x4.shr_s",y.i32x4_shr_u="~lib/builtins/i32x4.shr_u",y.i32x4_all_true="~lib/builtins/i32x4.all_true",y.i32x4_bitmask="~lib/builtins/i32x4.bitmask",y.i32x4_eq="~lib/builtins/i32x4.eq",y.i32x4_ne="~lib/builtins/i32x4.ne",y.i32x4_lt_s="~lib/builtins/i32x4.lt_s",y.i32x4_lt_u="~lib/builtins/i32x4.lt_u",y.i32x4_le_s="~lib/builtins/i32x4.le_s",y.i32x4_le_u="~lib/builtins/i32x4.le_u",y.i32x4_gt_s="~lib/builtins/i32x4.gt_s",y.i32x4_gt_u="~lib/builtins/i32x4.gt_u",y.i32x4_ge_s="~lib/builtins/i32x4.ge_s",y.i32x4_ge_u="~lib/builtins/i32x4.ge_u",y.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",y.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",y.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",y.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",y.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",y.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",y.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",y.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",y.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",y.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",y.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",y.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",y.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",y.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",y.i32x4_shuffle="~lib/builtins/i32x4.shuffle",y.i64x2_splat="~lib/builtins/i64x2.splat",y.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",y.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",y.i64x2_add="~lib/builtins/i64x2.add",y.i64x2_sub="~lib/builtins/i64x2.sub",y.i64x2_mul="~lib/builtins/i64x2.mul",y.i64x2_abs="~lib/builtins/i64x2.abs",y.i64x2_neg="~lib/builtins/i64x2.neg",y.i64x2_shl="~lib/builtins/i64x2.shl",y.i64x2_shr_s="~lib/builtins/i64x2.shr_s",y.i64x2_shr_u="~lib/builtins/i64x2.shr_u",y.i64x2_all_true="~lib/builtins/i64x2.all_true",y.i64x2_bitmask="~lib/builtins/i64x2.bitmask",y.i64x2_eq="~lib/builtins/i64x2.eq",y.i64x2_ne="~lib/builtins/i64x2.ne",y.i64x2_lt_s="~lib/builtins/i64x2.lt_s",y.i64x2_lt_u="~lib/builtins/i64x2.lt_u",y.i64x2_le_s="~lib/builtins/i64x2.le_s",y.i64x2_le_u="~lib/builtins/i64x2.le_u",y.i64x2_gt_s="~lib/builtins/i64x2.gt_s",y.i64x2_gt_u="~lib/builtins/i64x2.gt_u",y.i64x2_ge_s="~lib/builtins/i64x2.ge_s",y.i64x2_ge_u="~lib/builtins/i64x2.ge_u",y.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",y.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",y.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",y.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",y.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",y.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",y.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",y.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",y.i64x2_shuffle="~lib/builtins/i64x2.shuffle",y.f32x4_splat="~lib/builtins/f32x4.splat",y.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",y.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",y.f32x4_add="~lib/builtins/f32x4.add",y.f32x4_sub="~lib/builtins/f32x4.sub",y.f32x4_mul="~lib/builtins/f32x4.mul",y.f32x4_div="~lib/builtins/f32x4.div",y.f32x4_neg="~lib/builtins/f32x4.neg",y.f32x4_min="~lib/builtins/f32x4.min",y.f32x4_max="~lib/builtins/f32x4.max",y.f32x4_pmin="~lib/builtins/f32x4.pmin",y.f32x4_pmax="~lib/builtins/f32x4.pmax",y.f32x4_abs="~lib/builtins/f32x4.abs",y.f32x4_sqrt="~lib/builtins/f32x4.sqrt",y.f32x4_ceil="~lib/builtins/f32x4.ceil",y.f32x4_floor="~lib/builtins/f32x4.floor",y.f32x4_trunc="~lib/builtins/f32x4.trunc",y.f32x4_nearest="~lib/builtins/f32x4.nearest",y.f32x4_eq="~lib/builtins/f32x4.eq",y.f32x4_ne="~lib/builtins/f32x4.ne",y.f32x4_lt="~lib/builtins/f32x4.lt",y.f32x4_le="~lib/builtins/f32x4.le",y.f32x4_gt="~lib/builtins/f32x4.gt",y.f32x4_ge="~lib/builtins/f32x4.ge",y.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",y.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",y.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",y.f32x4_shuffle="~lib/builtins/f32x4.shuffle",y.f64x2_splat="~lib/builtins/f64x2.splat",y.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",y.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",y.f64x2_add="~lib/builtins/f64x2.add",y.f64x2_sub="~lib/builtins/f64x2.sub",y.f64x2_mul="~lib/builtins/f64x2.mul",y.f64x2_div="~lib/builtins/f64x2.div",y.f64x2_neg="~lib/builtins/f64x2.neg",y.f64x2_min="~lib/builtins/f64x2.min",y.f64x2_max="~lib/builtins/f64x2.max",y.f64x2_pmin="~lib/builtins/f64x2.pmin",y.f64x2_pmax="~lib/builtins/f64x2.pmax",y.f64x2_abs="~lib/builtins/f64x2.abs",y.f64x2_sqrt="~lib/builtins/f64x2.sqrt",y.f64x2_ceil="~lib/builtins/f64x2.ceil",y.f64x2_floor="~lib/builtins/f64x2.floor",y.f64x2_trunc="~lib/builtins/f64x2.trunc",y.f64x2_nearest="~lib/builtins/f64x2.nearest",y.f64x2_eq="~lib/builtins/f64x2.eq",y.f64x2_ne="~lib/builtins/f64x2.ne",y.f64x2_lt="~lib/builtins/f64x2.lt",y.f64x2_le="~lib/builtins/f64x2.le",y.f64x2_gt="~lib/builtins/f64x2.gt",y.f64x2_ge="~lib/builtins/f64x2.ge",y.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",y.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",y.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",y.f64x2_shuffle="~lib/builtins/f64x2.shuffle",y.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",y.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",y.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",y.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",y.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",y.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",y.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",y.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",y.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",y.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",y.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",y.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",y.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",y.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",y.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",y.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",y.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",y.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",y.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",y.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",y.i31_new="~lib/builtins/i31.new",y.i31_get="~lib/builtins/i31.get",y.data_end="~lib/memory/__data_end",y.stack_pointer="~lib/memory/__stack_pointer",y.heap_base="~lib/memory/__heap_base",y.rtti_base="~lib/rt/__rtti_base",y.visit_globals="~lib/rt/__visit_globals",y.visit_members="~lib/rt/__visit_members",y.tostack="~lib/rt/__tostack",y.NaN="~lib/number/NaN",y.Infinity="~lib/number/Infinity",y.isNaN="~lib/number/isNaN",y.isFinite="~lib/number/isFinite",y.ERROR="~lib/diagnostics/ERROR",y.WARNING="~lib/diagnostics/WARNING",y.INFO="~lib/diagnostics/INFO",y.Function="~lib/function/Function",y.Function_call="~lib/function/Function#call",y.memory_size="~lib/memory/memory.size",y.memory_grow="~lib/memory/memory.grow",y.memory_copy="~lib/memory/memory.copy",y.memory_fill="~lib/memory/memory.fill",y.memory_data="~lib/memory/memory.data",y.Int8Array="~lib/typedarray/Int8Array",y.Uint8Array="~lib/typedarray/Uint8Array",y.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",y.Int16Array="~lib/typedarray/Int16Array",y.Uint16Array="~lib/typedarray/Uint16Array",y.Int32Array="~lib/typedarray/Int32Array",y.Uint32Array="~lib/typedarray/Uint32Array",y.Int64Array="~lib/typedarray/Int64Array",y.Uint64Array="~lib/typedarray/Uint64Array",y.Float32Array="~lib/typedarray/Float32Array",y.Float64Array="~lib/typedarray/Float64Array",y.String_raw="~lib/string/String.raw",y.String_eq="~lib/string/String.__eq",y.String_ne="~lib/string/String.__ne",y.String_not="~lib/string/String.__not",y.Object="~lib/object/Object"))(d||={});var Kl=class{constructor(i,e,r,n,s){this.resolver=i;this.node=e;this.ctxElement=r;this.ctxTypes=n;this.reportMode=s}},us=class{constructor(i,e,r=e.type,n=e.identifierNode){this.compiler=i;this.element=e;this.contextualType=r;this.reportNode=n}},$l=class{constructor(i,e,r,n,s,a,l,o){this.compiler=i;this.prototype=e;this.typeArguments=r;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},tr=new Map,b=new Map,Ot=new Map,lt=new Map;function r1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return p.i32;case 5:if(!i.program.options.isWasm64)return p.i32;case 4:return p.i64;case 6:case 7:case 8:case 0:return p.u32;case 10:if(!i.program.options.isWasm64)return p.u32;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64;case 13:return p.v128;case 25:return p.void;default:assert(!1)}return null}tr.set(C.native,r1);function i1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&i.error(2329,a.range,l.toString()),null;let u=o.lookupOverload(1);if(u){let c=u.signature.parameterTypes;return u.is(32)?(assert(c.length==2),c[1]):(assert(c.length==1),c[0])}return s==0&&i.error(2329,a.range,l.toString()),null}tr.set(C.indexof,i1);function n1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(i.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&i.error(2329,a.range,l.toString()),null}tr.set(C.valueof,n1);function s1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&i.error(2757,a.range,l.toString()),null)}tr.set(C.returnof,s1);function a1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}tr.set(C.nonnull,a1);var Li=0;function l1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isBooleanValue?1:0)):e.unreachable()}b.set(d.isBoolean,l1);function o1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isIntegerValue?1:0)):e.unreachable()}b.set(d.isInteger,o1);function u1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isSignedIntegerValue?1:0)):e.unreachable()}b.set(d.isSigned,u1);function p1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isFloatValue?1:0)):e.unreachable()}b.set(d.isFloat,p1);function c1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isVectorValue?1:0)):e.unreachable()}b.set(d.isVector,c1);function f1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isReference?1:0)):e.unreachable()}b.set(d.isReference,f1);function _1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.isAssignableTo(i.program.stringInstance)?1:0))}b.set(d.isString,_1);function h1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.extendsPrototype(i.program.arrayPrototype)?1:0))}b.set(d.isArray,h1);function d1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.isArrayLike?1:0))}b.set(d.isArrayLike,d1);function m1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isFunction?1:0)):e.unreachable()}b.set(d.isFunction,m1);function y1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isNullableReference?1:0)):e.unreachable()}b.set(d.isNullable,y1);function g1(t){let i=t.compiler,e=i.module;if(i.currentType=p.bool,v(t)|K(t,1))return e.unreachable();let r=i.resolver.lookupExpression(t.operands[0],i.currentFlow,p.auto,1);return e.i32(r?1:0)}b.set(d.isDefined,g1);function b1(t){let i=t.compiler,e=i.module;if(i.currentType=p.bool,v(t)|K(t,1))return e.unreachable();let r=i.compileExpression(t.operands[0],p.auto);return i.currentType=p.bool,zl(r,e.ref)?e.block(null,[e.maybeDrop(r),e.i32(0)],se(r)):e.i32(e.isConstExpression(r)?1:0)}b.set(d.isConstant,b1);function x1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isManaged?1:0)):e.unreachable()}b.set(d.isManaged,x1);function T1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.kind==25?1:0)):e.unreachable()}b.set(d.isVoid,T1);function A1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.i32,!r)return e.unreachable();let n=r.signatureReference;return n?Fe(t,e.i32(n.parameterTypes.length)):(i.error(2757,t.reportNode.range,r.toString()),e.unreachable())}b.set(d.lengthof,A1);function E1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|K(t,0))return e.unreachable();let r=t.typeArguments[0],n=r.byteSize;return n?eo(i,i64_new(n),t.contextualType):(i.error(203,t.reportNode.typeArgumentsRange,"sizeof",r.toString()),e.unreachable())}b.set(d.sizeof,E1);function v1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|K(t,0))return e.unreachable();let r=t.typeArguments[0],n=r.byteSize;return Ct(n)?eo(i,i64_new(ctz(n)),t.contextualType):(i.error(203,t.reportNode.typeArgumentsRange,"alignof",r.toString()),e.unreachable())}b.set(d.alignof,v1);function S1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|Se(t,0,1))return e.unreachable();let r=t.operands,n=t.contextualType,s=t.typeArguments[0],a=s.getClassOrWrapper(i.program);if(!a)return i.error(203,t.reportNode.typeArgumentsRange,"offsetof",s.toString()),i.options.isWasm64?n.isIntegerValue&&n.size<=32&&(i.currentType=p.u32):n.isIntegerValue&&n.size==64&&(i.currentType=p.u64),e.unreachable();if(r.length){let l=r[0];if(!l.isLiteralKind(2))return i.error(1141,r[0].range),e.unreachable();let o=l.value,u=a.getMember(o);if(u&&u.kind==10){let c=u.instance;if(c&&c.isField)return assert(c.memoryOffset>=0),eo(i,i64_new(c.memoryOffset),n)}return i.error(2460,l.range,a.internalName,o),e.unreachable()}return eo(i,i64_new(a.nextMemoryOffset),n)}b.set(d.offsetof,S1);function I1(t){let i=t.compiler,e=i.module,r=Be(t);if(!r)return i.currentType=i.program.stringInstance.type,e.unreachable();let n;if(r.isInternalReference){let s=r.getClass();s?n=s.name:(assert(r.getSignature()),n="Function")}else n=r.toString();return Fe(t,i.ensureStaticString(n))}b.set(d.nameof,I1);function R1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.u32,!r)return e.unreachable();let n=r.getSignature();if(n)return Fe(t,e.i32(n.id));let s=r.getClassOrWrapper(i.program);return s&&!s.hasDecorator(16)?Fe(t,e.i32(s.id)):(i.error(203,t.reportNode.typeArgumentsRange,"idof",r.toString()),e.unreachable())}b.set(d.idof,R1);function F1(t){let i=t.element;if(i.is(1048576)){let e=t.compiler.module;e.addGlobal(i.internalName,L.F64,!1,e.f64(NaN))}}Ot.set(d.NaN,F1);function k1(t){let i=t.compiler,e=i.module;return t.contextualType==p.f32?(i.currentType=p.f32,e.f32(NaN)):(i.currentType=p.f64,e.f64(NaN))}lt.set(d.NaN,k1);function w1(t){let i=t.element;if(i.is(1048576)){let e=t.compiler.module;e.addGlobal(i.internalName,L.F64,!1,e.f64(1/0))}}Ot.set(d.Infinity,w1);function C1(t){let i=t.compiler,e=i.module;return t.contextualType==p.f32?(i.currentType=p.f32,e.f32(1/0)):(i.currentType=p.f64,e.f64(1/0))}lt.set(d.Infinity,C1);function hc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.typeArguments,n=r?i.compileExpression(t.operands[0],r[0],5):i.compileExpression(t.operands[0],p.i32,4),s=i.currentType;if(s.isValue)switch(s.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(0,n);case 5:case 10:return e.unary(142,n);case 4:case 9:return e.unary(1,n)}return i.error(203,t.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}b.set(d.clz,hc);function dc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(2,s);case 5:case 10:return e.unary(143,s);case 4:case 9:return e.unary(3,s)}return i.error(203,t.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}b.set(d.ctz,dc);function mc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue)switch(i.currentType.kind){case 0:return s;case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(4,s);case 4:case 9:return e.unary(5,s);case 5:case 10:return e.unary(144,s)}return i.error(203,t.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}b.set(d.popcnt,mc);function yc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(10,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(12,e.local_get(u.index,L.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,L.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(13,s,l);case 4:case 9:return e.binary(38,s,l);case 5:case 10:return e.binary(230,s,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}b.set(d.rotl,yc);function gc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(12,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(10,e.local_get(u.index,L.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,L.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(14,s,l);case 4:case 9:return e.binary(39,s,l);case 5:case 10:return e.binary(231,s,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}b.set(d.rotr,gc);function bc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.auto,4),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 6:case 7:case 8:case 9:case 10:return s;case 1:case 2:case 3:{let l=i.currentFlow,o=l.getTempLocal(p.i32),u=l.getTempLocal(p.i32);return e.binary(9,e.binary(0,e.local_tee(u.index,e.binary(11,e.local_tee(o.index,s,!1),e.i32(31)),!1),e.local_get(o.index,L.I32)),e.local_get(u.index,L.I32))}case 5:{let l=i.options,o=i.currentFlow,u=o.getTempLocal(l.usizeType),c=o.getTempLocal(l.usizeType);return e.binary(226,e.binary(217,e.local_tee(c.index,e.binary(228,e.local_tee(u.index,s,!1),i.options.isWasm64?e.i64(63):e.i32(31)),!1),e.local_get(u.index,l.sizeTypeRef)),e.local_get(c.index,l.sizeTypeRef))}case 4:{let l=i.currentFlow,o=l.getTempLocal(p.i64),u=l.getTempLocal(p.i64);return e.binary(34,e.binary(25,e.local_tee(u.index,e.binary(36,e.local_tee(o.index,s,!1),e.i64(63)),!1),e.local_get(o.index,L.I64)),e.local_get(u.index,L.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return i.error(203,t.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}b.set(d.abs,bc);function xc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(r[0],p.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(r[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=21;break}case 0:case 6:case 7:case 8:{u=22;break}case 4:{u=46;break}case 9:{u=47;break}case 5:{u=238;break}case 10:{u=239;break}case 11:return e.binary(56,a,o);case 12:return e.binary(69,a,o)}if(u!=-1){let c=i.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let h=c.getTempLocal(l);return c.setLocalFlag(h.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(h.index,f)))}}return i.error(203,t.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}b.set(d.max,xc);function Tc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(r[0],p.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(r[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=17;break}case 0:case 6:case 7:case 8:{u=18;break}case 4:{u=42;break}case 9:{u=43;break}case 5:{u=234;break}case 10:{u=235;break}case 11:return e.binary(55,a,o);case 12:return e.binary(68,a,o)}if(u!=-1){let c=i.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let h=c.getTempLocal(l);return c.setLocalFlag(h.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(h.index,f)))}}return i.error(203,t.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}b.set(d.min,Tc);function Ac(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(10,s);case 12:return e.unary(11,s)}return i.error(203,t.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}b.set(d.ceil,Ac);function Ec(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(12,s);case 12:return e.unary(13,s)}return i.error(203,t.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}b.set(d.floor,Ec);function vc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.f64,0),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}b.set(d.copysign,vc);function Sc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(16,s);case 12:return e.unary(17,s)}return i.error(203,t.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}b.set(d.nearest,Sc);function ps(t){let i=t.compiler,e=i.module;if(J(t,!0)|K(t,1))return e.unreachable();let r=t.operands,s=t.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=i.compileExpression(r[0],p.f32,1);return i.currentType=s,e.unary(33,a)}case 4:case 9:{let a=i.compileExpression(r[0],p.f64,1);return i.currentType=s,e.unary(34,a)}case 5:case 10:{let a=i.options.isWasm64,l=i.compileExpression(r[0],a?p.f64:p.f32,1);return i.currentType=s,e.unary(a?34:33,l)}case 11:{let a=i.compileExpression(r[0],p.i32,1);return i.currentType=p.f32,e.unary(45,a)}case 12:{let a=i.compileExpression(r[0],p.i64,1);return i.currentType=p.f64,e.unary(46,a)}}return i.error(203,t.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}b.set(d.reinterpret,ps);function Ic(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.f64,0),a=i.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return i.error(203,t.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}b.set(d.sqrt,Ic);function Rc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(14,s);case 12:return e.unary(15,s)}return i.error(203,t.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}b.set(d.trunc,Rc);function P1(t){let i=t.compiler,e=i.module;if(ae(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(i.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(0));case 11:{if($(s)==8)return e.binary(58,s,e.local_get(ht(s),L.F32));let o=i.currentFlow.getTempLocal(p.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F32))}case 12:{if($(s)==8)return e.binary(71,s,e.local_get(ht(s),L.F64));let o=i.currentFlow.getTempLocal(p.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F64))}}return i.error(203,t.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}b.set(d.isNaN,P1);function B1(t){let i=t.compiler,e=i.module;if(ae(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(i.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(1));case 11:{if($(s)==8)return e.binary(57,e.binary(51,s,e.local_get(ht(s),L.F32)),e.f32(0));let o=i.currentFlow.getTempLocal(p.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F32)),e.f32(0))}case 12:{if($(s)==8)return e.binary(70,e.binary(64,s,e.local_get(ht(s),L.F64)),e.f64(0));let o=i.currentFlow.getTempLocal(p.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F64)),e.f64(0))}}return i.error(203,t.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}b.set(d.isFinite,B1);function L1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=4,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}Ot.set(d.heap_base,L1);function N1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=4,i.currentType=n,e.global_get(r.internalName,n.toRef())}lt.set(d.heap_base,N1);function M1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=1,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}Ot.set(d.data_end,M1);function G1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=1,i.currentType=n,e.global_get(r.internalName,n.toRef())}lt.set(d.data_end,G1);function z1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=2,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}Ot.set(d.stack_pointer,z1);function D1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=2,i.currentType=n,e.global_get(r.internalName,n.toRef())}lt.set(d.stack_pointer,D1);function U1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=8,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}Ot.set(d.rtti_base,U1);function V1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=8,i.currentType=n,e.global_get(r.internalName,n.toRef())}lt.set(d.rtti_base,V1);function Pe(t){let i=t.compiler,e=i.module;if(J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0],l=s!=p.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return i.error(203,t.reportNode.typeArgumentsRange,"load",l.toString()),i.currentType=p.void,e.unreachable();let o=i.compileExpression(r[0],i.options.usizeType,1),u=r.length,c=0,f=a.byteSize;return u>=2&&(c=et(r[1],i),c<0||u==3&&(f=Vt(r[2],f,i),f<0))?(i.currentType=l,e.unreachable()):(i.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),c,f))}b.set(d.load,Pe);function ot(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,J(t)|Se(t,2,4))return e.unreachable();let r=t.operands,n=r.length,s=t.typeArguments,a=t.contextualType,l=s[0],o=i.compileExpression(r[0],i.options.usizeType,1),u=t.contextIsExact?i.compileExpression(r[1],a,1):i.compileExpression(r[1],l,l.isIntegerValue?0:1),c=i.currentType;if(!c.isMemory)return i.error(203,t.reportNode.typeArgumentsRange,"store",c.toString()),i.currentType=p.void,e.unreachable();l.isIntegerValue&&(!c.isIntegerValue||c.size<l.size)&&(u=i.convertExpression(u,c,l,!1,r[1]),c=l);let f=0,_=l.byteSize;if(n>=3){if(f=et(r[2],i),f<0)return i.currentType=p.void,e.unreachable();if(n==4&&(_=Vt(r[3],_,i),_<0))return i.currentType=p.void,e.unreachable()}return i.currentType=p.void,e.store(l.byteSize,o,u,c.toRef(),f,_)}b.set(d.store,ot);function cs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isIntegerValue)return i.makeRem(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}b.set(d.rem,cs);function fs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeAdd(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}b.set(d.add,fs);function _s(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeSub(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}b.set(d.sub,_s);function hs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeMul(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}b.set(d.mul,hs);function Lr(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeDiv(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}b.set(d.div,Lr);function ds(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.currentType=p.i32,i.makeEq(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}b.set(d.eq,ds);function ms(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.currentType=p.i32,i.makeNe(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}b.set(d.ne,ms);function sr(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t,!0)|Se(t,1,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.load",a.toString()),i.currentType=l,e.unreachable();let o=i.compileExpression(r[0],i.options.usizeType,1),u=r.length==2?et(r[1],i):0;return u<0?(i.currentType=l,e.unreachable()):(i.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}b.set(d.atomic_load,sr);function ar(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t)|Se(t,2,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0];if(!a.isIntegerValue)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.store",a.toString()),i.currentType=p.void,e.unreachable();let l=i.compileExpression(r[0],i.options.usizeType,1),o=t.contextIsExact?i.compileExpression(r[1],s,1):i.compileExpression(r[1],a,a.isIntegerValue?0:1),u=i.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,r[1]),u=a);let c=r.length==3?et(r[2],i):0;return c<0?(i.currentType=p.void,e.unreachable()):(i.currentType=p.void,e.atomic_store(a.byteSize,l,o,u.toRef(),c))}b.set(d.atomic_store,ar);function Ni(t,i,e){let r=t.compiler,n=r.module;if(X(t,32)|J(t,!0)|Se(t,2,3))return n.unreachable();let s=t.operands,a=t.typeArguments,l=t.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return r.error(203,t.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=r.compileExpression(s[0],r.options.usizeType,1),c=t.contextIsExact?r.compileExpression(s[1],l,1):r.compileExpression(s[1],o,o.isIntegerValue?0:1),f=r.currentType;o.isIntegerValue&&(!f.isIntegerValue||f.size<o.size)&&(c=r.convertExpression(c,f,o,!1,s[1]),f=o);let _=s.length==3?et(s[2],r):0;return _<0?(r.currentType=f,n.unreachable()):(r.currentType=f,n.atomic_rmw(i,o.byteSize,_,u,c,f.toRef()))}function lr(t){return Ni(t,0,"atomic.add")}b.set(d.atomic_add,lr);function or(t){return Ni(t,1,"atomic.sub")}b.set(d.atomic_sub,or);function ur(t){return Ni(t,2,"atomic.and")}b.set(d.atomic_and,ur);function pr(t){return Ni(t,3,"atomic.or")}b.set(d.atomic_or,pr);function cr(t){return Ni(t,4,"atomic.xor")}b.set(d.atomic_xor,cr);function fr(t){return Ni(t,5,"atomic.xchg")}b.set(d.atomic_xchg,fr);function _r(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t,!0)|Se(t,3,4))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=i.compileExpression(r[0],i.options.usizeType,1),o=t.contextIsExact?i.compileExpression(r[1],s,1):i.compileExpression(r[1],a,a.isIntegerValue?0:1),u=i.currentType,c=i.compileExpression(r[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,r[1]),c=i.convertExpression(c,u,a,!1,r[2]),u=a);let f=r.length==4?et(r[3],i):0;return f<0?(i.currentType=u,e.unreachable()):(i.currentType=u,e.atomic_cmpxchg(a.byteSize,f,l,o,c,u.toRef()))}b.set(d.atomic_cmpxchg,_r);function Fc(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t)|Se(t,2,3))return i.currentType=p.i32,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],s,1),o=r.length==3?i.compileExpression(r[2],p.i64,1):e.i64(-1,-1);switch(i.currentType=p.i32,s.kind){case 3:case 4:case 5:case 8:case 9:case 10:return e.atomic_wait(a,l,o,s.toRef())}return i.error(203,t.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}b.set(d.atomic_wait,Fc);function O1(t){let i=t.compiler,e=i.module;if(X(t,32)|v(t)|Se(t,1,2))return i.currentType=p.i32,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],i.options.usizeType,1),s=r.length==2?i.compileExpression(r[1],p.i32,1):e.i32(-1);return i.currentType=p.i32,e.atomic_notify(n,s)}b.set(d.atomic_notify,O1);function q1(t){let i=t.compiler,e=i.module;return i.currentType=p.void,X(t,32)|v(t)|K(t,0)?e.unreachable():e.atomic_fence()}b.set(d.atomic_fence,q1);function W1(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(!a.isAny(384))return i.error(203,t.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=i.compileExpression(r[1],a,1),o=i.makeIsTrueish(i.compileExpression(r[2],p.bool),i.currentType,r[2]);return i.currentType=a,e.select(s,l,o)}b.set(d.select,W1);function K1(t){return v(t),K(t,0),t.compiler.module.unreachable()}b.set(d.unreachable,K1);function j1(t){let i=t.compiler,e=i.module;return i.currentType=p.i32,v(t)|K(t,0)?e.unreachable():e.memory_size()}b.set(d.memory_size,j1);function H1(t){let i=t.compiler,e=i.module;return i.currentType=p.i32,v(t)|K(t,1)?e.unreachable():e.memory_grow(i.compileExpression(t.operands[0],p.i32,1))}b.set(d.memory_grow,H1);function Q1(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,v(t)|K(t,3))return e.unreachable();let r=t.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(t.prototype,null);return i.currentType=p.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,r,t.reportNode)}let n=i.options.usizeType,s=i.compileExpression(r[0],n,1),a=i.compileExpression(r[1],n,1),l=i.compileExpression(r[2],n,1);return i.currentType=p.void,e.memory_copy(s,a,l)}b.set(d.memory_copy,Q1);function X1(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,v(t)|K(t,3))return e.unreachable();let r=t.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(t.prototype,null);return i.currentType=p.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,r,t.reportNode)}let n=i.options.usizeType,s=i.compileExpression(r[0],n,1),a=i.compileExpression(r[1],p.u8,1),l=i.compileExpression(r[2],n,1);return i.currentType=p.void,e.memory_fill(s,a,l)}b.set(d.memory_fill,X1);function J1(t){let i=t.compiler,e=i.module;if(i.currentType=p.i32,ae(t)|Se(t,1,2))return e.unreachable();let r=t.typeArguments,n=t.operands,s=n.length,a=i.options.usizeType,l;if(r&&r.length>0){let o=r[0];if(!o.isValue)return i.error(203,t.reportNode.typeArgumentsRange,"memory.data",o.toString()),i.currentType=a,e.unreachable();let u=n[0];if(u.kind!=17||u.literalKind!=5)return i.error(227,n[0].range),i.currentType=a,e.unreachable();let c=u.elementExpressions,f=c.length,_=new Array(f),h=!0;for(let g=0;g<f;++g){let A=c[g];if(A.kind!=20){let I=i.compileExpression(A,o,1),E=e.runExpression(I,1);E?I=E:h=!1,_[g]=I}else _[g]=i.makeZero(o)}if(!h)return i.error(220,u.range),i.currentType=a,e.unreachable();let m=o.byteSize;if(s==2&&(m=Vt(n[1],m,i),m<0))return i.currentType=a,e.unreachable();let x=new Uint8Array(f*o.byteSize);assert(i.writeStaticBuffer(x,0,o,_)==x.byteLength),l=i.addAlignedMemorySegment(x,m).offset}else{let o=i.compileExpression(n[0],p.i32,1),u=e.runExpression(o,1);if(!u)return i.error(220,n[0].range),i.currentType=a,e.unreachable();let c=ne(u);if(c<1)return i.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),i.currentType=a,e.unreachable();let f=16;if(s==2&&(f=Vt(n[1],f,i),f<0))return i.currentType=a,e.unreachable();l=i.addAlignedMemorySegment(new Uint8Array(c),f).offset}return i.currentType=a,a==p.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}b.set(d.memory_data,J1);function Z1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.i32,1);return i.currentType=p.i31,e.i31_new(n)}b.set(d.i31_new,Z1);function Y1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.i31.asNullable(),1);return t.contextualType.is(2)?(i.currentType=p.u32,e.i31_get(n,!1)):(i.currentType=p.i32,e.i31_get(n,!0))}b.set(d.i31_get,Y1);function $1(t){let i=t.compiler,e=i.module;if(J(t,!0)|K(t,1))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.auto),l=i.currentType;return i.currentType=s,l.isChangeableTo(s)?a:(i.error(202,t.reportNode.range,l.toString(),s.toString()),e.unreachable())}b.set(d.changetype,$1);function e6(t){let i=t.compiler,e=i.module,r=t.typeArguments;if(ae(t,!0)|Se(t,1,2))return r&&(assert(r.length),i.currentType=r[0].nonNullableType),e.unreachable();let n=t.operands,s=t.contextualType,a=r?i.compileExpression(n[0],r[0],5):i.compileExpression(n[0],p.bool,4),l=i.currentType;if(i.currentType=l.nonNullableType,i.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(se(o)){case L.I32:{if(ne(o))return a;break}case L.I64:{if(ve(o)|we(o))return a;break}case L.F32:{if(Ae(o))return a;break}case L.F64:{if(Ee(o))return a;break}}let u=i.makeAbort(n.length==2?n[1]:null,t.reportNode);if(i.currentType=l.nonNullableType,s==p.void)switch(i.currentType=p.void,l.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return e.if(e.unary(20,a),u);case 4:case 9:return e.if(e.unary(21,a),u);case 5:case 10:return e.if(e.unary(145,a),u);case 11:return e.if(e.binary(57,a,e.f32(0)),u);case 12:return e.if(e.binary(70,a,e.f64(0)),u);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return e.if(e.ref_is_null(a),u)}else{i.currentType=l.nonNullableType;let c=i.currentFlow;switch(i.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let f=c.getTempLocal(l);return c.setLocalFlag(f.index,2),e.if(e.local_tee(f.index,a,!1),e.local_get(f.index,L.I32),u)}case 4:case 9:{let f=c.getTempLocal(p.i64);return e.if(e.unary(21,e.local_tee(f.index,a,!1)),u,e.local_get(f.index,L.I64))}case 5:case 10:{let f=c.getTempLocal(i.options.usizeType);return e.if(e.unary(145,e.local_tee(f.index,a,l.isManaged)),u,e.local_get(f.index,i.options.sizeTypeRef))}case 11:{let f=c.getTempLocal(p.f32);return e.if(e.binary(57,e.local_tee(f.index,a,!1),e.f32(0)),u,e.local_get(f.index,L.F32))}case 12:{let f=c.getTempLocal(p.f64);return e.if(e.binary(70,e.local_tee(f.index,a,!1),e.f64(0)),u,e.local_get(f.index,L.F64))}case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:{let f=c.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(f.index,a,!1)),u,e.local_get(f.index,l.toRef()))}}}return i.error(203,t.reportNode.typeArgumentsRange,"assert",i.currentType.toString()),u}b.set(d.assert,e6);function t6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=i.currentFlow,n=i.options.uncheckedBehavior===1,s=r.is(32768);n?assert(!s):r.set(32768);let a=i.compileExpression(t.operands[0],t.contextualType);return s||r.unset(32768),a}b.set(d.unchecked,t6);function r6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=i.currentFlow,n=r.is(131072);n||r.set(131072);let s=i.compileExpression(t.operands[0],t.contextualType);return n||r.unset(131072),s}b.set(d.inline_always,r6);function i6(t){let i=t.compiler,e=i.module;if(ae(t,!0)|Se(t,1,i32.MAX_VALUE))return e.unreachable();let r=t.operands,n=t.typeArguments,s;n?(assert(n.length),s=n[0]):s=t.contextualType;let a=i.compileExpression(r[0],p.u32,1),l=r.length-1,o=new Array(l),u=new Array(l);for(let c=0;c<l;++c)o[c]=i.compileExpression(r[1+c],p.auto),i.currentType.isManaged&&(o[c]=e.tostack(o[c])),u[c]=i.currentType.toRef();return i.currentType=s,e.call_indirect(null,a,o,je(u),s.toRef())}b.set(d.call_indirect,i6);function n6(t){let i=t.compiler,e=i.module;if(J(t,!0))return e.unreachable();let r=t.operands,a=t.typeArguments[0].getClass();if(!a)return i.error(2351,t.reportNode.expression.range),e.unreachable();i.currentType=a.type;let l=i.ensureConstructor(a,t.reportNode);return i.checkFieldInitialization(a,t.reportNode),i.compileInstantiate(l,r,0,t.reportNode)}b.set(d.instantiate,n6);function kc(t,i){let e=t.compiler,r=e.module;v(t);let n=t.operands,s=t.reportNode;return e.emitDiagnostic(102,i,s.range,null,n.length?n[0].range.toString():s.range.toString()),i==3?r.unreachable():r.nop()}function s6(t){return kc(t,3)}b.set(d.ERROR,s6);function a6(t){return kc(t,2)}b.set(d.WARNING,a6);function l6(t){return kc(t,1)}b.set(d.INFO,l6);function o6(t){let i=t.compiler,e=t.prototype.parent;assert(e.kind==7);let r=e;assert(r.prototype==i.program.functionPrototype);let n=assert(r.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(v(t)|Se(t,1+a.requiredParameters,1+a.parameterTypes.length))return i.currentType=l,i.module.unreachable();let o=i.compileExpression(assert(t.thisOperand),s,1),u=assert(t.operands.shift()),c=a.thisType,f=0;if(c)f=i.compileExpression(u,c,1);else if(u.kind!=19)return i.error(2332,u.range),i.module.unreachable();return i.compileCallIndirect(a,o,t.operands,t.reportNode,f,t.contextualType==p.void)}b.set(d.Function_call,o6);function u6(t){let i=t.compiler,e=i.module;return i.currentType=t.compiler.program.stringInstance.type,i.error(100,t.reportNode.range,"String.raw"),e.unreachable()}b.set(d.String_raw,u6);function Je(t,i){let e=t.compiler;return v(t)|K(t,1)?(e.currentType=i,e.module.unreachable()):e.compileExpression(t.operands[0],i,2)}function p6(t){return Je(t,p.i8)}b.set(d.i8,p6);function c6(t){return Je(t,p.i16)}b.set(d.i16,c6);function f6(t){return Je(t,p.i32)}b.set(d.i32,f6);function _6(t){return Je(t,p.i64)}b.set(d.i64,_6);function h6(t){return Je(t,t.compiler.options.isizeType)}b.set(d.isize,h6);function d6(t){return Je(t,p.u8)}b.set(d.u8,d6);function m6(t){return Je(t,p.u16)}b.set(d.u16,m6);function y6(t){return Je(t,p.u32)}b.set(d.u32,y6);function g6(t){return Je(t,p.u64)}b.set(d.u64,g6);function b6(t){return Je(t,t.compiler.options.usizeType)}b.set(d.usize,b6);function x6(t){return Je(t,p.bool)}b.set(d.bool,x6);function T6(t){return Je(t,p.f32)}b.set(d.f32,T6);function A6(t){return Je(t,p.f64)}b.set(d.f64,A6);function E6(t){return Tg(t)}b.set(d.v128,E6);function Tg(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,16))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=i.compileExpression(r[l],p.i8,1),u=e.runExpression(o,1);u?_e(ne(u),n,l):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==16;o?l=e.unary(60,s[0]):l=e.v128(n);for(let u=i32(o);u<16;u++){let c=s[u];c&&(l=e.simd_replace(0,l,u,c))}return l}}b.set(d.i8x16,Tg);function v6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,8))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=i.compileExpression(r[l],p.i16,1),u=e.runExpression(o,1);u?Zt(ne(u),n,l<<1):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==8;o?l=e.unary(61,s[0]):l=e.v128(n);for(let u=i32(o);u<8;u++){let c=s[u];c&&(l=e.simd_replace(1,l,u,c))}return l}}b.set(d.i16x8,v6);function S6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,4))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(r[l],p.i32,1),u=e.runExpression(o,1);u?me(ne(u),n,l<<2):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(62,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(2,l,u,c))}return l}}b.set(d.i32x4,S6);function I6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(r[l],p.i64,1),u=e.runExpression(o,1);if(u){let c=l<<3;me(ve(u),n,c+0),me(we(u),n,c+4)}else s[l]=o,a++}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(63,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(3,l,u,c))}return l}}b.set(d.i64x2,I6);function R6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,4))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(r[l],p.f32,1),u=e.runExpression(o,1);u?xr(Ae(u),n,l<<2):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(64,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(5,l,u,c))}return l}}b.set(d.f32x4,R6);function F6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(r[l],p.f64,1),u=e.runExpression(o,1);u?Tr(Ee(u),n,l<<3):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(65,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(6,l,u,c))}return l}}b.set(d.f64x2,F6);function Nr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],s,1);if(i.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.unary(60,a);case 2:case 7:return e.unary(61,a);case 3:case 8:return e.unary(62,a);case 4:case 9:return e.unary(63,a);case 5:case 10:return e.unary(i.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}b.set(d.v128_splat,Nr);function qt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|K(t,2))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.u8,1);i.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=ne(u):i.error(220,r[1].range),s.isValue){let c=16/assert(s.byteSize)-1;switch((o<0||o>c)&&(i.error(222,r[1].range,"Lane index","0",c.toString()),o=0),s.kind){case 1:return e.simd_extract(0,a,o);case 6:return e.simd_extract(1,a,o);case 2:return e.simd_extract(2,a,o);case 7:return e.simd_extract(3,a,o);case 3:case 8:return e.simd_extract(4,a,o);case 4:case 9:return e.simd_extract(5,a,o);case 5:case 10:return e.simd_extract(i.options.isWasm64?5:4,a,o);case 11:return e.simd_extract(7,a,o);case 12:return e.simd_extract(8,a,o)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}b.set(d.v128_extract_lane,qt);function Mr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.u8,1),o=i.compileExpression(r[2],s,1);i.currentType=p.v128;let u=0,c=e.runExpression(l,1);if(c?u=ne(c):i.error(220,r[1].range),s.isValue){let f=16/assert(s.byteSize)-1;switch((u<0||u>f)&&(i.error(222,r[1].range,"Lane index","0",f.toString()),u=0),s.kind){case 1:case 6:return e.simd_replace(0,a,u,o);case 2:case 7:return e.simd_replace(1,a,u,o);case 3:case 8:return e.simd_replace(2,a,u,o);case 4:case 9:return e.simd_replace(3,a,u,o);case 5:case 10:return e.simd_replace(i.options.isWasm64?3:2,a,u,o);case 11:return e.simd_replace(5,a,u,o);case 12:return e.simd_replace(6,a,u,o)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}b.set(d.v128_replace_lane,Mr);function Gr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&Ct(l)),K(t,2+l))return i.currentType=p.v128,e.unreachable();let o=i.compileExpression(r[0],p.v128,1),u=i.compileExpression(r[1],p.v128,1);switch(s.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{let c=new Uint8Array(16),f=(l<<1)-1;for(let _=0;_<l;++_){let h=r[2+_],m=i.compileExpression(h,p.u8,1),x=e.runExpression(m,1),g=0;switch(x?(g=ne(x),(g<0||g>f)&&(i.error(222,h.range,"Lane index","0",f.toString()),g=0)):i.error(220,h.range),a){case 1:{_e(g,c,_);break}case 2:{let A=_<<1,I=g<<1;_e(I,c,A),_e(I+1,c,A+1);break}case 4:{let A=_<<2,I=g<<2;_e(I,c,A),_e(I+1,c,A+1),_e(I+2,c,A+2),_e(I+3,c,A+3);break}case 8:{let A=_<<3,I=g<<3;_e(I,c,A),_e(I+1,c,A+1),_e(I+2,c,A+2),_e(I+3,c,A+3),_e(I+4,c,A+4),_e(I+5,c,A+5),_e(I+6,c,A+6),_e(I+7,c,A+7);break}default:assert(!1)}}return i.currentType=p.v128,e.simd_shuffle(o,u,c)}}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),i.currentType=p.v128,e.unreachable()}b.set(d.v128_shuffle,Gr);function Ag(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1);return e.binary(209,n,s)}b.set(d.v128_swizzle,Ag);function ys(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=et(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Vt(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.simd_load(0,a,o,u);case 2:case 7:return e.simd_load(1,a,o,u);case 3:case 8:case 11:return e.simd_load(2,a,o,u);case 5:case 10:if(!i.options.isWasm64)return e.simd_load(2,a,o,u);case 4:case 9:case 12:return e.simd_load(3,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}b.set(d.v128_load_splat,ys);function zr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=et(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Vt(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue)switch(s.kind){case 1:return e.simd_load(4,a,o,u);case 6:return e.simd_load(5,a,o,u);case 2:return e.simd_load(6,a,o,u);case 7:return e.simd_load(7,a,o,u);case 5:if(i.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(i.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}b.set(d.v128_load_ext,zr);function wc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=et(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Vt(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue)switch(s.kind){case 3:case 8:case 11:return e.simd_load(10,a,o,u);case 4:case 9:case 12:return e.simd_load(11,a,o,u);case 5:case 10:return e.simd_load(i.options.isWasm64?11:10,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}b.set(d.v128_load_zero,wc);function gs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,3,5))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ne(c):i.error(220,r[2].range);let f=r.length,_=0,h=s.byteSize;if(f>=4){if(_=et(r[3],i),_<0)return i.currentType=p.v128,e.unreachable();if(f==5&&(h=Vt(r[4],h,i),h<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue){let m=16/assert(s.byteSize)-1;switch((u<0||u>m)&&(i.error(222,r[1].range,"Lane index","0",m.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,_,h,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,_,h,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,_,h,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,_,h,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?3:2,a,_,h,u,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}b.set(d.v128_load_lane,gs);function bs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,3,5))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ne(c):i.error(220,r[2].range);let f=r.length,_=0,h=s.byteSize;if(f>=4){if(_=et(r[3],i),_<0)return i.currentType=p.v128,e.unreachable();if(f==5&&(h=Vt(r[4],h,i),h<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.void,s.isValue){let m=16/assert(s.byteSize)-1;switch((u<0||u>m)&&(i.error(222,r[1].range,"Lane index","0",m.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,_,h,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,_,h,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,_,h,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,_,h,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?7:6,a,_,h,u,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}b.set(d.v128_store_lane,bs);function Dr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(134,a,l);case 2:case 7:return e.binary(145,a,l);case 3:case 8:return e.binary(162,a,l);case 4:case 9:return e.binary(174,a,l);case 5:case 10:return e.binary(i.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}b.set(d.v128_add,Dr);function Ur(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(137,a,l);case 2:case 7:return e.binary(148,a,l);case 3:case 8:return e.binary(163,a,l);case 4:case 9:return e.binary(175,a,l);case 5:case 10:return e.binary(i.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}b.set(d.v128_sub,Ur);function Mi(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:case 7:return e.binary(151,a,l);case 3:case 8:return e.binary(164,a,l);case 4:case 9:return e.binary(176,a,l);case 5:case 10:return e.binary(i.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}b.set(d.v128_mul,Mi);function Cc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(192,a,l);case 12:return e.binary(200,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}b.set(d.v128_div,Cc);function xs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(135,a,l);case 6:return e.binary(136,a,l);case 2:return e.binary(146,a,l);case 7:return e.binary(147,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}b.set(d.v128_add_sat,xs);function Ts(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(138,a,l);case 6:return e.binary(139,a,l);case 2:return e.binary(149,a,l);case 7:return e.binary(150,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}b.set(d.v128_sub_sat,Ts);function Wt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(140,a,l);case 6:return e.binary(141,a,l);case 2:return e.binary(152,a,l);case 7:return e.binary(153,a,l);case 5:if(i.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(i.options.isWasm64)break;case 8:return e.binary(166,a,l);case 11:return e.binary(193,a,l);case 12:return e.binary(201,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}b.set(d.v128_min,Wt);function Kt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(142,a,l);case 6:return e.binary(143,a,l);case 2:return e.binary(154,a,l);case 7:return e.binary(155,a,l);case 5:if(i.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(i.options.isWasm64)break;case 8:return e.binary(168,a,l);case 11:return e.binary(194,a,l);case 12:return e.binary(202,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}b.set(d.v128_max,Kt);function Pc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(195,a,l);case 12:return e.binary(203,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}b.set(d.v128_pmin,Pc);function Bc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(196,a,l);case 12:return e.binary(204,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}b.set(d.v128_pmax,Bc);function Eg(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}b.set(d.v128_dot,Eg);function Lc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 6:return e.binary(144,a,l);case 7:return e.binary(156,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}b.set(d.v128_avgr,Lc);function Vr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(76,a,l);case 2:case 7:return e.binary(86,a,l);case 3:case 8:return e.binary(96,a,l);case 4:case 9:return e.binary(106,a,l);case 5:case 10:return e.binary(i.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}b.set(d.v128_eq,Vr);function Or(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(77,a,l);case 2:case 7:return e.binary(87,a,l);case 3:case 8:return e.binary(97,a,l);case 4:case 9:return e.binary(107,a,l);case 5:case 10:return e.binary(i.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}b.set(d.v128_ne,Or);function bt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(78,a,l);case 6:return e.binary(79,a,l);case 2:return e.binary(88,a,l);case 7:return e.binary(89,a,l);case 3:return e.binary(98,a,l);case 8:return e.binary(99,a,l);case 4:return e.binary(108,a,l);case 5:return e.binary(i.options.isWasm64?108:98,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(99,a,l)}case 11:return e.binary(120,a,l);case 12:return e.binary(126,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}b.set(d.v128_lt,bt);function xt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(82,a,l);case 6:return e.binary(83,a,l);case 2:return e.binary(92,a,l);case 7:return e.binary(93,a,l);case 3:return e.binary(102,a,l);case 8:return e.binary(103,a,l);case 4:return e.binary(110,a,l);case 5:return e.binary(i.options.isWasm64?110:102,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(103,a,l)}case 11:return e.binary(122,a,l);case 12:return e.binary(128,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}b.set(d.v128_le,xt);function Tt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(80,a,l);case 6:return e.binary(81,a,l);case 2:return e.binary(90,a,l);case 7:return e.binary(91,a,l);case 3:return e.binary(100,a,l);case 8:return e.binary(101,a,l);case 4:return e.binary(109,a,l);case 5:return e.binary(i.options.isWasm64?109:100,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(101,a,l)}case 11:return e.binary(121,a,l);case 12:return e.binary(127,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}b.set(d.v128_gt,Tt);function At(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(84,a,l);case 6:return e.binary(85,a,l);case 2:return e.binary(94,a,l);case 7:return e.binary(95,a,l);case 3:return e.binary(104,a,l);case 8:return e.binary(105,a,l);case 4:return e.binary(111,a,l);case 5:return e.binary(i.options.isWasm64?111:104,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(105,a,l)}case 11:return e.binary(123,a,l);case 12:return e.binary(129,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}b.set(d.v128_ge,At);function As(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:return e.binary(205,a,l);case 7:return e.binary(206,a,l);case 3:return e.binary(207,a,l);case 8:return e.binary(208,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}b.set(d.v128_narrow,As);function qr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.unary(69,a);case 2:case 7:return e.unary(74,a);case 3:case 8:return e.unary(78,a);case 4:case 9:return e.unary(82,a);case 5:case 10:return e.unary(i.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}b.set(d.v128_neg,qr);function Wr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(68,a);case 2:return e.unary(73,a);case 3:return e.unary(77,a);case 4:return e.unary(81,a);case 5:return e.unary(i.options.isWasm64?81:77,a);case 6:case 7:case 8:case 9:case 10:return a;case 11:return e.unary(92,a);case 12:return e.unary(99,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}b.set(d.v128_abs,Wr);function Nc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(94,a);case 12:return e.unary(101,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}b.set(d.v128_sqrt,Nc);function Mc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(95,a);case 12:return e.unary(102,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}b.set(d.v128_ceil,Mc);function Gc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(96,a);case 12:return e.unary(103,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}b.set(d.v128_floor,Gc);function zc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(97,a);case 12:return e.unary(104,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}b.set(d.v128_trunc,zc);function Dc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(98,a);case 12:return e.unary(105,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}b.set(d.v128_nearest,Dc);function Uc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(113,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}b.set(d.v128_convert,Uc);function Vc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(127,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}b.set(d.v128_convert_low,Vc);function Oc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(111,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}b.set(d.v128_trunc_sat,Oc);function qc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(129,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}b.set(d.v128_trunc_sat_zero,qc);function Kr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(114,a);case 6:return e.unary(116,a);case 2:return e.unary(118,a);case 7:return e.unary(120,a);case 5:if(i.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(124,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}b.set(d.v128_extend_low,Kr);function jr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(115,a);case 6:return e.unary(117,a);case 2:return e.unary(119,a);case 7:return e.unary(121,a);case 5:if(i.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(125,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}b.set(d.v128_extend_high,jr);function Es(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1),a=i.compileExpression(r[1],p.i32,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.simd_shift(0,s,a);case 2:case 7:return e.simd_shift(3,s,a);case 3:case 8:return e.simd_shift(6,s,a);case 4:case 9:return e.simd_shift(9,s,a);case 5:case 10:return e.simd_shift(i.options.isWasm64?9:6,s,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}b.set(d.v128_shl,Es);function jt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1),a=i.compileExpression(r[1],p.i32,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.simd_shift(1,s,a);case 6:return e.simd_shift(2,s,a);case 2:return e.simd_shift(4,s,a);case 7:return e.simd_shift(5,s,a);case 3:return e.simd_shift(7,s,a);case 8:return e.simd_shift(8,s,a);case 4:return e.simd_shift(10,s,a);case 9:return e.simd_shift(11,s,a);case 5:return e.simd_shift(i.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(i.options.isWasm64?11:8,s,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}b.set(d.v128_shr,jt);function to(t,i){let e=t.compiler,r=e.module;if(X(t,16)|v(t)|K(t,2))return e.currentType=p.v128,r.unreachable();let n=t.operands,s=e.compileExpression(n[0],p.v128,1),a=e.compileExpression(n[1],p.v128,1);return r.binary(i,s,a)}function k6(t){return to(t,130)}b.set(d.v128_and,k6);function w6(t){return to(t,131)}b.set(d.v128_or,w6);function C6(t){return to(t,132)}b.set(d.v128_xor,C6);function P6(t){return to(t,133)}b.set(d.v128_andnot,P6);function B6(t,i){let e=t.compiler,r=e.module;if(X(t,16)|v(t)|K(t,1))return e.currentType=p.v128,r.unreachable();let n=t.operands,s=e.compileExpression(n[0],p.v128,1);return r.unary(i,s)}function L6(t){return B6(t,66)}b.set(d.v128_not,L6);function N6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1),a=i.compileExpression(r[2],p.v128,1);return e.simd_ternary(0,n,s,a)}b.set(d.v128_bitselect,N6);function M6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1);return i.currentType=p.bool,e.unary(67,n)}b.set(d.v128_any_true,M6);function vs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.bool,n.isValue)switch(n.kind){case 1:case 6:return e.unary(70,s);case 2:case 7:return e.unary(75,s);case 3:case 8:return e.unary(79,s);case 4:case 9:return e.unary(83,s);case 5:case 10:return e.unary(i.options.isWasm64?83:79,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}b.set(d.v128_all_true,vs);function Ss(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.i32,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.i32,n.isValue)switch(n.kind){case 1:case 6:return e.unary(71,s);case 2:case 7:return e.unary(76,s);case 3:case 8:return e.unary(80,s);case 4:case 9:return e.unary(84,s);case 5:case 10:return e.unary(i.options.isWasm64?84:80,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}b.set(d.v128_bitmask,Ss);function vg(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}b.set(d.v128_popcnt,vg);function Is(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.unary(106,s);case 6:return e.unary(107,s);case 2:return e.unary(108,s);case 7:return e.unary(109,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}b.set(d.v128_extadd_pairwise,Is);function Sg(t){let i=t.compiler,e=i.module;if(X(t,16)|ae(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?n[0]:p.f64,a=i.compileExpression(r[0],p.v128,1);return i.currentType=p.v128,s.isValue&&s.kind===12?e.unary(130,a):(i.error(203,t.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}b.set(d.v128_demote_zero,Sg);function Ig(t){let i=t.compiler,e=i.module;if(X(t,16)|ae(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?n[0]:p.f32,a=i.compileExpression(r[0],p.v128,1);return i.currentType=p.v128,s.isValue&&s.kind===11?e.unary(131,a):(i.error(203,t.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}b.set(d.v128_promote_low,Ig);function Rg(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}b.set(d.v128_q15mulr_sat,Rg);function Hr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(158,a,l);case 6:return e.binary(160,a,l);case 2:return e.binary(170,a,l);case 7:return e.binary(172,a,l);case 3:return e.binary(177,a,l);case 8:return e.binary(179,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}b.set(d.v128_extmul_low,Hr);function Qr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(159,a,l);case 6:return e.binary(161,a,l);case 2:return e.binary(171,a,l);case 7:return e.binary(173,a,l);case 3:return e.binary(178,a,l);case 8:return e.binary(180,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}b.set(d.v128_extmul_high,Qr);function Fg(t){let i=t.compiler,e=i.module;if(X(t,4096)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1);return e.binary(210,n,s)}b.set(d.v128_relaxed_swizzle,Fg);function Wc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(133,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}b.set(d.v128_relaxed_trunc,Wc);function Kc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(135,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}b.set(d.v128_relaxed_trunc_zero,Kc);function jc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(1,a,l,o);case 12:return e.simd_ternary(3,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}b.set(d.v128_relaxed_madd,jc);function Hc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(2,a,l,o);case 12:return e.simd_ternary(4,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}b.set(d.v128_relaxed_nmadd,Hc);function Rs(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.simd_ternary(5,a,l,o);case 2:case 7:return e.simd_ternary(6,a,l,o);case 3:case 8:return e.simd_ternary(7,a,l,o);case 4:case 9:return e.simd_ternary(8,a,l,o);case 5:case 10:return e.simd_ternary(i.options.isWasm64?8:7,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}b.set(d.v128_relaxed_laneselect,Rs);function Qc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(211,a,l);case 12:return e.binary(213,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}b.set(d.v128_relaxed_min,Qc);function Xc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(212,a,l);case 12:return e.binary(214,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}b.set(d.v128_relaxed_max,Xc);function kg(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}b.set(d.v128_relaxed_q15mulr,kg);function wg(t){let i=t.compiler,e=i.module;if(X(t,4096)|K(t,2)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.kind===2?e.binary(216,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}b.set(d.v128_relaxed_dot,wg);function Cg(t){let i=t.compiler,e=i.module;if(X(t,4096)|K(t,3)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}b.set(d.v128_relaxed_dot_add,Cg);function G6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return i.currentType=p.void,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.u32,1);return i.runtimeFeatures|=16,i.currentType=p.void,e.call(d.visit_globals,[n],L.None)}b.set(d.visit_globals,G6);function z6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,2))return i.currentType=p.void,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],i.options.usizeType,1),s=i.compileExpression(r[1],p.u32,1);return i.runtimeFeatures|=32,i.currentType=p.void,e.call(d.visit_members,[n,s],L.None)}b.set(d.visit_members,z6);function D6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,hc(t)}b.set(d.i32_clz,D6);function U6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,hc(t)}b.set(d.i64_clz,U6);function V6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,dc(t)}b.set(d.i32_ctz,V6);function O6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,dc(t)}b.set(d.i64_ctz,O6);function q6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,mc(t)}b.set(d.i32_popcnt,q6);function W6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,mc(t)}b.set(d.i64_popcnt,W6);function K6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,yc(t)}b.set(d.i32_rotl,K6);function j6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,yc(t)}b.set(d.i64_rotl,j6);function H6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,gc(t)}b.set(d.i32_rotr,H6);function Q6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,gc(t)}b.set(d.i64_rotr,Q6);function X6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,bc(t)}b.set(d.f32_abs,X6);function J6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,bc(t)}b.set(d.f64_abs,J6);function Z6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,xc(t)}b.set(d.f32_max,Z6);function Y6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,xc(t)}b.set(d.f64_max,Y6);function $6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Tc(t)}b.set(d.f32_min,$6);function eT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Tc(t)}b.set(d.f64_min,eT);function tT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Ac(t)}b.set(d.f32_ceil,tT);function rT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Ac(t)}b.set(d.f64_ceil,rT);function iT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Ec(t)}b.set(d.f32_floor,iT);function nT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Ec(t)}b.set(d.f64_floor,nT);function sT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,vc(t)}b.set(d.f32_copysign,sT);function aT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,vc(t)}b.set(d.f64_copysign,aT);function lT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Sc(t)}b.set(d.f32_nearest,lT);function oT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Sc(t)}b.set(d.f64_nearest,oT);function uT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.f32,ps(t)}b.set(d.i32_reinterpret_f32,uT);function pT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.f64,ps(t)}b.set(d.i64_reinterpret_f64,pT);function cT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,ps(t)}b.set(d.f32_reinterpret_i32,cT);function fT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i64,ps(t)}b.set(d.f64_reinterpret_i64,fT);function _T(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Ic(t)}b.set(d.f32_sqrt,_T);function hT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Ic(t)}b.set(d.f64_sqrt,hT);function dT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Rc(t)}b.set(d.f32_trunc,dT);function mT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Rc(t)}b.set(d.f64_trunc,mT);function yT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,cs(t)}b.set(d.i32_rem_s,yT);function gT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.u32,cs(t)}b.set(d.i32_rem_u,gT);function bT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,cs(t)}b.set(d.i64_rem_s,bT);function xT(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.u64,cs(t)}b.set(d.i64_rem_u,xT);function TT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,fs(t)}b.set(d.i32_add,TT);function AT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,fs(t)}b.set(d.i64_add,AT);function ET(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,fs(t)}b.set(d.f32_add,ET);function vT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,fs(t)}b.set(d.f64_add,vT);function ST(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,_s(t)}b.set(d.i32_sub,ST);function IT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,_s(t)}b.set(d.i64_sub,IT);function RT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,_s(t)}b.set(d.f32_sub,RT);function FT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,_s(t)}b.set(d.f64_sub,FT);function kT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,hs(t)}b.set(d.i32_mul,kT);function wT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,hs(t)}b.set(d.i64_mul,wT);function CT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,hs(t)}b.set(d.f32_mul,CT);function PT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,hs(t)}b.set(d.f64_mul,PT);function BT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Lr(t)}b.set(d.i32_div_s,BT);function LT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.u32,Lr(t)}b.set(d.i32_div_u,LT);function NT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Lr(t)}b.set(d.i64_div_s,NT);function MT(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.u64,Lr(t)}b.set(d.i64_div_u,MT);function GT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Lr(t)}b.set(d.f32_div,GT);function zT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Lr(t)}b.set(d.f64_div,zT);function DT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ds(t)}b.set(d.i32_eq,DT);function UT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,ds(t)}b.set(d.i64_eq,UT);function VT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,ds(t)}b.set(d.f32_eq,VT);function OT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i32,ds(t)}b.set(d.f64_eq,OT);function qT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ms(t)}b.set(d.i32_ne,qT);function WT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,ms(t)}b.set(d.i64_ne,WT);function KT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,ms(t)}b.set(d.f32_ne,KT);function jT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i32,ms(t)}b.set(d.f64_ne,jT);function HT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load8_s,HT);function QT(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load8_u,QT);function XT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load16_s,XT);function JT(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load16_u,JT);function ZT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load,ZT);function YT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load8_s,YT);function $T(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load8_u,$T);function eA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load16_s,eA);function tA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load16_u,tA);function rA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load32_s,rA);function iA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load32_u,iA);function nA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load,nA);function sA(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Pe(t)}b.set(d.f32_load,sA);function aA(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Pe(t)}b.set(d.f64_load,aA);function lA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,t.contextIsExact=!0,ot(t)}b.set(d.i32_store8,lA);function oA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,t.contextIsExact=!0,ot(t)}b.set(d.i32_store16,oA);function uA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ot(t)}b.set(d.i32_store,uA);function pA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,t.contextIsExact=!0,ot(t)}b.set(d.i64_store8,pA);function cA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i64,t.contextIsExact=!0,ot(t)}b.set(d.i64_store16,cA);function fA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,t.contextIsExact=!0,ot(t)}b.set(d.i64_store32,fA);function _A(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ot(t)}b.set(d.i64_store,_A);function hA(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,t.contextIsExact=!0,ot(t)}b.set(d.f32_store,hA);function dA(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,t.contextIsExact=!0,ot(t)}b.set(d.f64_store,dA);function mA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,sr(t)}b.set(d.i32_atomic_load8_u,mA);function yA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,sr(t)}b.set(d.i32_atomic_load16_u,yA);function gA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,sr(t)}b.set(d.i32_atomic_load,gA);function bA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,sr(t)}b.set(d.i64_atomic_load8_u,bA);function xA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,sr(t)}b.set(d.i64_atomic_load16_u,xA);function TA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,sr(t)}b.set(d.i64_atomic_load32_u,TA);function AA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,sr(t)}b.set(d.i64_atomic_load,AA);function EA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,t.contextIsExact=!0,ar(t)}b.set(d.i32_atomic_store8,EA);function vA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,t.contextIsExact=!0,ar(t)}b.set(d.i32_atomic_store16,vA);function SA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ar(t)}b.set(d.i32_atomic_store,SA);function IA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,t.contextIsExact=!0,ar(t)}b.set(d.i64_atomic_store8,IA);function RA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,ar(t)}b.set(d.i64_atomic_store16,RA);function FA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,t.contextIsExact=!0,ar(t)}b.set(d.i64_atomic_store32,FA);function kA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ar(t)}b.set(d.i64_atomic_store,kA);function wA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}b.set(d.i32_atomic_rmw8_add_u,wA);function CA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}b.set(d.i32_atomic_rmw16_add_u,CA);function PA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}b.set(d.i32_atomic_rmw_add,PA);function BA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}b.set(d.i64_atomic_rmw8_add_u,BA);function LA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}b.set(d.i64_atomic_rmw16_add_u,LA);function NA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}b.set(d.i64_atomic_rmw32_add_u,NA);function MA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}b.set(d.i64_atomic_rmw_add,MA);function GA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}b.set(d.i32_atomic_rmw8_sub_u,GA);function zA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}b.set(d.i32_atomic_rmw16_sub_u,zA);function DA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}b.set(d.i32_atomic_rmw_sub,DA);function UA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}b.set(d.i64_atomic_rmw8_sub_u,UA);function VA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}b.set(d.i64_atomic_rmw16_sub_u,VA);function OA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}b.set(d.i64_atomic_rmw32_sub_u,OA);function qA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}b.set(d.i64_atomic_rmw_sub,qA);function WA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}b.set(d.i32_atomic_rmw8_and_u,WA);function KA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}b.set(d.i32_atomic_rmw16_and_u,KA);function jA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}b.set(d.i32_atomic_rmw_and,jA);function HA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}b.set(d.i64_atomic_rmw8_and_u,HA);function QA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}b.set(d.i64_atomic_rmw16_and_u,QA);function XA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}b.set(d.i64_atomic_rmw32_and_u,XA);function JA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}b.set(d.i64_atomic_rmw_and,JA);function ZA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}b.set(d.i32_atomic_rmw8_or_u,ZA);function YA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}b.set(d.i32_atomic_rmw16_or_u,YA);function $A(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}b.set(d.i32_atomic_rmw_or,$A);function eE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}b.set(d.i64_atomic_rmw8_or_u,eE);function tE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}b.set(d.i64_atomic_rmw16_or_u,tE);function rE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}b.set(d.i64_atomic_rmw32_or_u,rE);function iE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}b.set(d.i64_atomic_rmw_or,iE);function nE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}b.set(d.i32_atomic_rmw8_xor_u,nE);function sE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}b.set(d.i32_atomic_rmw16_xor_u,sE);function aE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}b.set(d.i32_atomic_rmw_xor,aE);function lE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}b.set(d.i64_atomic_rmw8_xor_u,lE);function oE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}b.set(d.i64_atomic_rmw16_xor_u,oE);function uE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}b.set(d.i64_atomic_rmw32_xor_u,uE);function pE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}b.set(d.i64_atomic_rmw_xor,pE);function cE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}b.set(d.i32_atomic_rmw8_xchg_u,cE);function fE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}b.set(d.i32_atomic_rmw16_xchg_u,fE);function _E(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}b.set(d.i32_atomic_rmw_xchg,_E);function hE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}b.set(d.i64_atomic_rmw8_xchg_u,hE);function dE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}b.set(d.i64_atomic_rmw16_xchg_u,dE);function mE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}b.set(d.i64_atomic_rmw32_xchg_u,mE);function yE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}b.set(d.i64_atomic_rmw_xchg,yE);function gE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}b.set(d.i32_atomic_rmw8_cmpxchg_u,gE);function bE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}b.set(d.i32_atomic_rmw16_cmpxchg_u,bE);function xE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}b.set(d.i32_atomic_rmw_cmpxchg,xE);function TE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}b.set(d.i64_atomic_rmw8_cmpxchg_u,TE);function AE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}b.set(d.i64_atomic_rmw16_cmpxchg_u,AE);function EE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}b.set(d.i64_atomic_rmw32_cmpxchg_u,EE);function vE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}b.set(d.i64_atomic_rmw_cmpxchg,vE);function SE(t){return v(t),t.typeArguments=[p.i32],Fc(t)}b.set(d.memory_atomic_wait32,SE);function IE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,Fc(t)}b.set(d.memory_atomic_wait64,IE);function RE(t){return v(t),t.typeArguments=[p.v128],t.contextualType=p.v128,Pe(t)}b.set(d.v128_load,RE);function FE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,zr(t)}b.set(d.v128_load8x8_s,FE);function kE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,zr(t)}b.set(d.v128_load8x8_u,kE);function wE(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,zr(t)}b.set(d.v128_load16x4_s,wE);function CE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,zr(t)}b.set(d.v128_load16x4_u,CE);function PE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,zr(t)}b.set(d.v128_load32x2_s,PE);function BE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,zr(t)}b.set(d.v128_load32x2_u,BE);function LE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,ys(t)}b.set(d.v128_load8_splat,LE);function NE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,ys(t)}b.set(d.v128_load16_splat,NE);function ME(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,ys(t)}b.set(d.v128_load32_splat,ME);function GE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,ys(t)}b.set(d.v128_load64_splat,GE);function zE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,wc(t)}b.set(d.v128_load32_zero,zE);function DE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,wc(t)}b.set(d.v128_load64_zero,DE);function UE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,gs(t)}b.set(d.v128_load8_lane,UE);function VE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,gs(t)}b.set(d.v128_load16_lane,VE);function OE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,gs(t)}b.set(d.v128_load32_lane,OE);function qE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,gs(t)}b.set(d.v128_load64_lane,qE);function WE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,bs(t)}b.set(d.v128_store8_lane,WE);function KE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,bs(t)}b.set(d.v128_store16_lane,KE);function jE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,bs(t)}b.set(d.v128_store32_lane,jE);function HE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,bs(t)}b.set(d.v128_store64_lane,HE);function QE(t){return v(t),t.typeArguments=[p.v128],t.contextualType=p.v128,t.contextIsExact=!0,ot(t)}b.set(d.v128_store,QE);function XE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Nr(t)}b.set(d.i8x16_splat,XE);function JE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,qt(t)}b.set(d.i8x16_extract_lane_s,JE);function ZE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,qt(t)}b.set(d.i8x16_extract_lane_u,ZE);function YE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Mr(t)}b.set(d.i8x16_replace_lane,YE);function $E(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Dr(t)}b.set(d.i8x16_add,$E);function e4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ur(t)}b.set(d.i8x16_sub,e4);function t4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Wt(t)}b.set(d.i8x16_min_s,t4);function r4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Wt(t)}b.set(d.i8x16_min_u,r4);function i4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Kt(t)}b.set(d.i8x16_max_s,i4);function n4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Kt(t)}b.set(d.i8x16_max_u,n4);function s4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Lc(t)}b.set(d.i8x16_avgr_u,s4);function a4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Wr(t)}b.set(d.i8x16_abs,a4);function l4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,qr(t)}b.set(d.i8x16_neg,l4);function o4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,xs(t)}b.set(d.i8x16_add_sat_s,o4);function u4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,xs(t)}b.set(d.i8x16_add_sat_u,u4);function p4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ts(t)}b.set(d.i8x16_sub_sat_s,p4);function c4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Ts(t)}b.set(d.i8x16_sub_sat_u,c4);function f4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Es(t)}b.set(d.i8x16_shl,f4);function _4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,jt(t)}b.set(d.i8x16_shr_s,_4);function h4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,jt(t)}b.set(d.i8x16_shr_u,h4);function d4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,vs(t)}b.set(d.i8x16_all_true,d4);function m4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Ss(t)}b.set(d.i8x16_bitmask,m4);function y4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,vg(t)}b.set(d.i8x16_popcnt,y4);function g4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Vr(t)}b.set(d.i8x16_eq,g4);function b4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Or(t)}b.set(d.i8x16_ne,b4);function x4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,bt(t)}b.set(d.i8x16_lt_s,x4);function T4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,bt(t)}b.set(d.i8x16_lt_u,T4);function A4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,xt(t)}b.set(d.i8x16_le_s,A4);function E4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,xt(t)}b.set(d.i8x16_le_u,E4);function v4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Tt(t)}b.set(d.i8x16_gt_s,v4);function S4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Tt(t)}b.set(d.i8x16_gt_u,S4);function I4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,At(t)}b.set(d.i8x16_ge_s,I4);function R4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,At(t)}b.set(d.i8x16_ge_u,R4);function F4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,As(t)}b.set(d.i8x16_narrow_i16x8_s,F4);function k4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,As(t)}b.set(d.i8x16_narrow_i16x8_u,k4);function w4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Gr(t)}b.set(d.i8x16_shuffle,w4);function C4(t){return v(t),t.typeArguments=null,t.contextualType=p.v128,Ag(t)}b.set(d.i8x16_swizzle,C4);function P4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Nr(t)}b.set(d.i16x8_splat,P4);function B4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,qt(t)}b.set(d.i16x8_extract_lane_s,B4);function L4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,qt(t)}b.set(d.i16x8_extract_lane_u,L4);function N4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Mr(t)}b.set(d.i16x8_replace_lane,N4);function M4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Dr(t)}b.set(d.i16x8_add,M4);function G4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ur(t)}b.set(d.i16x8_sub,G4);function z4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Mi(t)}b.set(d.i16x8_mul,z4);function D4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Wt(t)}b.set(d.i16x8_min_s,D4);function U4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Wt(t)}b.set(d.i16x8_min_u,U4);function V4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Kt(t)}b.set(d.i16x8_max_s,V4);function O4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Kt(t)}b.set(d.i16x8_max_u,O4);function q4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Lc(t)}b.set(d.i16x8_avgr_u,q4);function W4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Wr(t)}b.set(d.i16x8_abs,W4);function K4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,qr(t)}b.set(d.i16x8_neg,K4);function j4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,xs(t)}b.set(d.i16x8_add_sat_s,j4);function H4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,xs(t)}b.set(d.i16x8_add_sat_u,H4);function Q4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ts(t)}b.set(d.i16x8_sub_sat_s,Q4);function X4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Ts(t)}b.set(d.i16x8_sub_sat_u,X4);function J4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Es(t)}b.set(d.i16x8_shl,J4);function Z4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,jt(t)}b.set(d.i16x8_shr_s,Z4);function Y4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,jt(t)}b.set(d.i16x8_shr_u,Y4);function $4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,vs(t)}b.set(d.i16x8_all_true,$4);function ev(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Ss(t)}b.set(d.i16x8_bitmask,ev);function tv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Vr(t)}b.set(d.i16x8_eq,tv);function rv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Or(t)}b.set(d.i16x8_ne,rv);function iv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,bt(t)}b.set(d.i16x8_lt_s,iv);function nv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,bt(t)}b.set(d.i16x8_lt_u,nv);function sv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,xt(t)}b.set(d.i16x8_le_s,sv);function av(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,xt(t)}b.set(d.i16x8_le_u,av);function lv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Tt(t)}b.set(d.i16x8_gt_s,lv);function ov(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Tt(t)}b.set(d.i16x8_gt_u,ov);function uv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,At(t)}b.set(d.i16x8_ge_s,uv);function pv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,At(t)}b.set(d.i16x8_ge_u,pv);function cv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,As(t)}b.set(d.i16x8_narrow_i32x4_s,cv);function fv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,As(t)}b.set(d.i16x8_narrow_i32x4_u,fv);function _v(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Kr(t)}b.set(d.i16x8_extend_low_i8x16_s,_v);function hv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Kr(t)}b.set(d.i16x8_extend_low_i8x16_u,hv);function dv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,jr(t)}b.set(d.i16x8_extend_high_i8x16_s,dv);function mv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,jr(t)}b.set(d.i16x8_extend_high_i8x16_u,mv);function yv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Is(t)}b.set(d.i16x8_extadd_pairwise_i8x16_s,yv);function gv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Is(t)}b.set(d.i16x8_extadd_pairwise_i8x16_u,gv);function bv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Rg(t)}b.set(d.i16x8_q15mulr_sat_s,bv);function xv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Hr(t)}b.set(d.i16x8_extmul_low_i8x16_s,xv);function Tv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Hr(t)}b.set(d.i16x8_extmul_low_i8x16_u,Tv);function Av(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Qr(t)}b.set(d.i16x8_extmul_high_i8x16_s,Av);function Ev(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Qr(t)}b.set(d.i16x8_extmul_high_i8x16_u,Ev);function vv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Gr(t)}b.set(d.i16x8_shuffle,vv);function Sv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Nr(t)}b.set(d.i32x4_splat,Sv);function Iv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,qt(t)}b.set(d.i32x4_extract_lane,Iv);function Rv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Mr(t)}b.set(d.i32x4_replace_lane,Rv);function Fv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Dr(t)}b.set(d.i32x4_add,Fv);function kv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Ur(t)}b.set(d.i32x4_sub,kv);function wv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Mi(t)}b.set(d.i32x4_mul,wv);function Cv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Wt(t)}b.set(d.i32x4_min_s,Cv);function Pv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Wt(t)}b.set(d.i32x4_min_u,Pv);function Bv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kt(t)}b.set(d.i32x4_max_s,Bv);function Lv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Kt(t)}b.set(d.i32x4_max_u,Lv);function Nv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Eg(t)}b.set(d.i32x4_dot_i16x8_s,Nv);function Mv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Wr(t)}b.set(d.i32x4_abs,Mv);function Gv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,qr(t)}b.set(d.i32x4_neg,Gv);function zv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Es(t)}b.set(d.i32x4_shl,zv);function Dv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jt(t)}b.set(d.i32x4_shr_s,Dv);function Uv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jt(t)}b.set(d.i32x4_shr_u,Uv);function Vv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,vs(t)}b.set(d.i32x4_all_true,Vv);function Ov(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Ss(t)}b.set(d.i32x4_bitmask,Ov);function qv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Vr(t)}b.set(d.i32x4_eq,qv);function Wv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Or(t)}b.set(d.i32x4_ne,Wv);function Kv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,bt(t)}b.set(d.i32x4_lt_s,Kv);function jv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,bt(t)}b.set(d.i32x4_lt_u,jv);function Hv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,xt(t)}b.set(d.i32x4_le_s,Hv);function Qv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,xt(t)}b.set(d.i32x4_le_u,Qv);function Xv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Tt(t)}b.set(d.i32x4_gt_s,Xv);function Jv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Tt(t)}b.set(d.i32x4_gt_u,Jv);function Zv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,At(t)}b.set(d.i32x4_ge_s,Zv);function Yv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,At(t)}b.set(d.i32x4_ge_u,Yv);function $v(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Oc(t)}b.set(d.i32x4_trunc_sat_f32x4_s,$v);function e3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Oc(t)}b.set(d.i32x4_trunc_sat_f32x4_u,e3);function t3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,qc(t)}b.set(d.i32x4_trunc_sat_f64x2_s_zero,t3);function r3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,qc(t)}b.set(d.i32x4_trunc_sat_f64x2_u_zero,r3);function i3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Kr(t)}b.set(d.i32x4_extend_low_i16x8_s,i3);function n3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Kr(t)}b.set(d.i32x4_extend_low_i16x8_u,n3);function s3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,jr(t)}b.set(d.i32x4_extend_high_i16x8_s,s3);function a3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,jr(t)}b.set(d.i32x4_extend_high_i16x8_u,a3);function l3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Is(t)}b.set(d.i32x4_extadd_pairwise_i16x8_s,l3);function o3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Is(t)}b.set(d.i32x4_extadd_pairwise_i16x8_u,o3);function u3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Hr(t)}b.set(d.i32x4_extmul_low_i16x8_s,u3);function p3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Hr(t)}b.set(d.i32x4_extmul_low_i16x8_u,p3);function c3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Qr(t)}b.set(d.i32x4_extmul_high_i16x8_s,c3);function f3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Qr(t)}b.set(d.i32x4_extmul_high_i16x8_u,f3);function _3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Gr(t)}b.set(d.i32x4_shuffle,_3);function h3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Nr(t)}b.set(d.i64x2_splat,h3);function d3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,qt(t)}b.set(d.i64x2_extract_lane,d3);function m3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Mr(t)}b.set(d.i64x2_replace_lane,m3);function y3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Dr(t)}b.set(d.i64x2_add,y3);function g3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Ur(t)}b.set(d.i64x2_sub,g3);function b3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Mi(t)}b.set(d.i64x2_mul,b3);function x3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Wr(t)}b.set(d.i64x2_abs,x3);function T3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,qr(t)}b.set(d.i64x2_neg,T3);function A3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Es(t)}b.set(d.i64x2_shl,A3);function E3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,jt(t)}b.set(d.i64x2_shr_s,E3);function v3(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,jt(t)}b.set(d.i64x2_shr_u,v3);function S3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,vs(t)}b.set(d.i64x2_all_true,S3);function I3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,Ss(t)}b.set(d.i64x2_bitmask,I3);function R3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Vr(t)}b.set(d.i64x2_eq,R3);function F3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Or(t)}b.set(d.i64x2_ne,F3);function k3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,bt(t)}b.set(d.i64x2_lt_s,k3);function w3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,xt(t)}b.set(d.i64x2_le_s,w3);function C3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Tt(t)}b.set(d.i64x2_gt_s,C3);function P3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,At(t)}b.set(d.i64x2_ge_s,P3);function B3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kr(t)}b.set(d.i64x2_extend_low_i32x4_s,B3);function L3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Kr(t)}b.set(d.i64x2_extend_low_i32x4_u,L3);function N3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jr(t)}b.set(d.i64x2_extend_high_i32x4_s,N3);function M3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jr(t)}b.set(d.i64x2_extend_high_i32x4_u,M3);function G3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Hr(t)}b.set(d.i64x2_extmul_low_i32x4_s,G3);function z3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Hr(t)}b.set(d.i64x2_extmul_low_i32x4_u,z3);function D3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Qr(t)}b.set(d.i64x2_extmul_high_i32x4_s,D3);function U3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Qr(t)}b.set(d.i64x2_extmul_high_i32x4_u,U3);function V3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Gr(t)}b.set(d.i64x2_shuffle,V3);function O3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Nr(t)}b.set(d.f32x4_splat,O3);function q3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,qt(t)}b.set(d.f32x4_extract_lane,q3);function W3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mr(t)}b.set(d.f32x4_replace_lane,W3);function K3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Dr(t)}b.set(d.f32x4_add,K3);function j3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ur(t)}b.set(d.f32x4_sub,j3);function H3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mi(t)}b.set(d.f32x4_mul,H3);function Q3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Cc(t)}b.set(d.f32x4_div,Q3);function X3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,qr(t)}b.set(d.f32x4_neg,X3);function J3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Wt(t)}b.set(d.f32x4_min,J3);function Z3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Kt(t)}b.set(d.f32x4_max,Z3);function Y3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Pc(t)}b.set(d.f32x4_pmin,Y3);function $3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Bc(t)}b.set(d.f32x4_pmax,$3);function eS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Wr(t)}b.set(d.f32x4_abs,eS);function tS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Nc(t)}b.set(d.f32x4_sqrt,tS);function rS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mc(t)}b.set(d.f32x4_ceil,rS);function iS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Gc(t)}b.set(d.f32x4_floor,iS);function nS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,zc(t)}b.set(d.f32x4_trunc,nS);function sS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Dc(t)}b.set(d.f32x4_nearest,sS);function aS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Vr(t)}b.set(d.f32x4_eq,aS);function lS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Or(t)}b.set(d.f32x4_ne,lS);function oS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,bt(t)}b.set(d.f32x4_lt,oS);function uS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,xt(t)}b.set(d.f32x4_le,uS);function pS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Tt(t)}b.set(d.f32x4_gt,pS);function cS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,At(t)}b.set(d.f32x4_ge,cS);function fS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Uc(t)}b.set(d.f32x4_convert_i32x4_s,fS);function _S(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Uc(t)}b.set(d.f32x4_convert_i32x4_u,_S);function hS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Sg(t)}b.set(d.f32x4_demote_f64x2_zero,hS);function dS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Gr(t)}b.set(d.f32x4_shuffle,dS);function mS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Nr(t)}b.set(d.f64x2_splat,mS);function yS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,qt(t)}b.set(d.f64x2_extract_lane,yS);function gS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mr(t)}b.set(d.f64x2_replace_lane,gS);function bS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Dr(t)}b.set(d.f64x2_add,bS);function xS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ur(t)}b.set(d.f64x2_sub,xS);function TS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mi(t)}b.set(d.f64x2_mul,TS);function AS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Cc(t)}b.set(d.f64x2_div,AS);function ES(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,qr(t)}b.set(d.f64x2_neg,ES);function vS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Wt(t)}b.set(d.f64x2_min,vS);function SS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Kt(t)}b.set(d.f64x2_max,SS);function IS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Pc(t)}b.set(d.f64x2_pmin,IS);function RS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Bc(t)}b.set(d.f64x2_pmax,RS);function FS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Wr(t)}b.set(d.f64x2_abs,FS);function kS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Nc(t)}b.set(d.f64x2_sqrt,kS);function wS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mc(t)}b.set(d.f64x2_ceil,wS);function CS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Gc(t)}b.set(d.f64x2_floor,CS);function PS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,zc(t)}b.set(d.f64x2_trunc,PS);function BS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Dc(t)}b.set(d.f64x2_nearest,BS);function LS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Vr(t)}b.set(d.f64x2_eq,LS);function NS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Or(t)}b.set(d.f64x2_ne,NS);function MS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,bt(t)}b.set(d.f64x2_lt,MS);function GS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,xt(t)}b.set(d.f64x2_le,GS);function zS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Tt(t)}b.set(d.f64x2_gt,zS);function DS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,At(t)}b.set(d.f64x2_ge,DS);function US(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Vc(t)}b.set(d.f64x2_convert_low_i32x4_s,US);function VS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Vc(t)}b.set(d.f64x2_convert_low_i32x4_u,VS);function OS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ig(t)}b.set(d.f64x2_promote_low_f32x4,OS);function qS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Gr(t)}b.set(d.f64x2_shuffle,qS);function WS(t){return v(t),t.typeArguments=null,t.contextualType=p.v128,Fg(t)}b.set(d.i8x16_relaxed_swizzle,WS);function KS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Wc(t)}b.set(d.i32x4_relaxed_trunc_f32x4_s,KS);function jS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Wc(t)}b.set(d.i32x4_relaxed_trunc_f32x4_u,jS);function HS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kc(t)}b.set(d.i32x4_relaxed_trunc_f64x2_s_zero,HS);function QS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Kc(t)}b.set(d.i32x4_relaxed_trunc_f64x2_u_zero,QS);function XS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,jc(t)}b.set(d.f32x4_relaxed_madd,XS);function JS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Hc(t)}b.set(d.f32x4_relaxed_nmadd,JS);function ZS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,jc(t)}b.set(d.f64x2_relaxed_madd,ZS);function YS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Hc(t)}b.set(d.f64x2_relaxed_nmadd,YS);function $S(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Rs(t)}b.set(d.i8x16_relaxed_laneselect,$S);function eI(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Rs(t)}b.set(d.i16x8_relaxed_laneselect,eI);function tI(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Rs(t)}b.set(d.i32x4_relaxed_laneselect,tI);function rI(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Rs(t)}b.set(d.i64x2_relaxed_laneselect,rI);function iI(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Qc(t)}b.set(d.f32x4_relaxed_min,iI);function nI(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Xc(t)}b.set(d.f32x4_relaxed_max,nI);function sI(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Qc(t)}b.set(d.f64x2_relaxed_min,sI);function aI(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Xc(t)}b.set(d.f64x2_relaxed_max,aI);function lI(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,kg(t)}b.set(d.i16x8_relaxed_q15mulr_s,lI);function oI(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,wg(t)}b.set(d.i16x8_relaxed_dot_i8x16_i7x16_s,oI);function uI(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Cg(t)}b.set(d.i32x4_relaxed_dot_i8x16_i7x16_add_s,uI);function Pg(t){let i=t.module,e=new Array,r=t.options.sizeTypeRef,n=assert(t.program.visitInstance);t.compileFunction(n,!0);for(let s=Map_values(t.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,f=u.type.getClass();if(f&&!f.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let _=u.constantIntegerValue;(i64_low(_)||i64_high(_))&&e.push(i.call(n.internalName,[t.options.isWasm64?i.i64(i64_low(_),i64_high(_)):i.i32(i64_low(_)),i.local_get(0,L.I32)],L.None))}else e.push(i.if(i.local_tee(1,i.global_get(u.internalName,r),!1),i.call(n.internalName,[i.local_get(1,r),i.local_get(0,L.I32)],L.None)))}i.addFunction(d.visit_globals,L.I32,L.None,[r],e.length?i.block(null,e):i.nop())}function Bg(t,i){if(assert(i.type.isManaged),i.visitRef)return;let e=t.program,r=t.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=i.base;u&&o.push(r.call(`${u.internalName}~visit`,[r.local_get(0,s),r.local_get(1,L.I32)],L.None));let c=!1;if(i.isDeclaredInLibrary){let _=i.getMember("__visit");if(_){assert(_.kind==4);let h=e.resolver.resolveFunction(_,null);if(!h||!t.compileFunction(h))o.push(r.unreachable());else{let m=h.signature,x=assert(m.thisType);assert(m.parameterTypes.length==1&&m.parameterTypes[0]==p.u32&&m.returnType==p.void&&i.type.isStrictlyAssignableTo(x)),o.push(r.call(h.internalName,[r.local_get(0,s),r.local_get(1,L.I32)],L.None))}c=!0}}let f=!1;if(!c){let _=i.members;if(_)for(let h=Map_values(_),m=0,x=h.length;m<x;++m){let g=unchecked(h[m]);if(g.kind!=10)continue;let A=g.instance;if(!A)continue;let I=A.type;if(!A.isField||A.getBoundClassOrInterface()!=i||!I.isManaged)continue;let E=A.memoryOffset;assert(E>=0),f=!0,o.push(r.call(l.internalName,[r.load(a,!1,r.local_get(0,s),s,E),r.local_get(1,L.I32)],L.None))}}i.visitRef=r.addFunction(`${i.internalName}~visit`,je([s,L.I32]),L.None,f?[s]:null,r.flatten(o,L.None)),u&&u.type.isManaged&&Bg(t,u)}function Lg(t){let i=t.program,e=t.module,n=i.options.usizeType.toRef(),s=i.managedClasses,a=assert(i.visitInstance);t.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let f=Map_keys(s),_=0,h=f.length;_<h;++_){let m=f[_];assert(m==u++);let x=assert(s.get(m));l[_]=x.internalName,x.isPointerfree?o[_]=e.return():(o[_]=e.block(null,[e.call(`${x.internalName}~visit`,[e.local_get(0,n),e.local_get(1,L.I32)],L.None),e.return()],L.None),Bg(t,x))}let c=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==L.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),L.I32,0))],L.None);for(let f=0,_=l.length-1;f<_;++f)c=e.block(l[f+1],[c,o[f]],L.None);c=e.block("invalid",[c,o[l.length-1]],L.None),e.addFunction(d.visit_members,je([n,L.I32]),L.None,null,e.flatten([c,e.unreachable()]))}function Bi(t){let i=64*(1<<t.alignLog2);return t.is(1)&&(i|=2048),t.is(8)&&(i|=4096),t.is(512)&&(i|=8192),t.isManaged&&(i|=16384),i/64}function Ng(t){let i=t.program,e=t.module,r=i.managedClasses,n=r.size,s=4+4*n,a=new Uint8Array(s);me(n,a,0);let l=4,o=i.arrayBufferViewInstance,u=o.prototype,c=i.arrayPrototype,f=i.setPrototype,_=i.mapPrototype,h=i.staticArrayPrototype,m=0;for(let A=Map_keys(r),I=0,E=A.length;I<E;++I){let k=unchecked(A[I]),F=assert(r.get(k));assert(k==m++);let R=0;if(F.isPointerfree&&(R|=32),F!=o&&F.extendsPrototype(u)){let M=F.getArrayValueType();R|=1,R|=64*Bi(M)}else if(F.extendsPrototype(c)){let M=F.getArrayValueType();R|=2,R|=64*Bi(M)}else if(F.extendsPrototype(f)){let M=assert(F.getTypeArgumentsTo(f));assert(M.length==1),R|=8,R|=64*Bi(M[0])}else if(F.extendsPrototype(_)){let M=assert(F.getTypeArgumentsTo(_));assert(M.length==2),R|=16,R|=32768*Bi(M[0]),R|=64*Bi(M[1])}else if(F.extendsPrototype(h)){let M=F.getArrayValueType();R|=4,R|=64*Bi(M)}me(R,a,l),l+=4,F.rttiFlags=R}assert(l==s);let x=i.options.usizeType,g=t.addAlignedMemorySegment(a);if(x.size==8){let A=g.offset;e.addGlobal(d.rtti_base,L.I64,!1,e.i64(i64_low(A),i64_high(A)))}else e.addGlobal(d.rtti_base,L.I32,!1,e.i32(i64_low(g.offset)))}function Be(t){let i=t.compiler,e=t.operands,r=t.typeArguments;if(Li=0,e.length==0)return!r||r.length!=1?(i.error(2558,t.reportNode.typeArgumentsRange,"1",r?r.length.toString():"0"),null):r[0];if(e.length==1){if(r&&r.length>0){if(r.length>1)return i.error(2558,t.reportNode.typeArgumentsRange,"1",r.length.toString()),null;Li=i.compileExpression(e[0],r[0],1)}else Li=i.compileExpression(e[0],p.auto);return i.currentType}return r&&r.length>1&&i.error(2558,t.reportNode.typeArgumentsRange,"1",r.length.toString()),i.error(2554,t.reportNode.argumentsRange,"1",e.length.toString()),null}function Fe(t,i){let e=t.compiler.module;return Li&&zl(Li,e.ref)&&(i=e.block(null,[e.maybeDrop(Li),i],se(i))),i}function et(t,i){let e=i.module,r;if(i.options.isWasm64){let n=i.compileExpression(t,p.usize64,1),s=e.runExpression(n,1);s?(assert(we(s)==0),r=ve(s)):(i.error(220,t.range),r=-1)}else{let n=i.compileExpression(t,p.usize32,1),s=e.runExpression(n,1);s?r=ne(s):(i.error(220,t.range),r=-1)}return r}function Vt(t,i,e){let r=et(t,e);return r<0?r:r<1||i>16?(e.error(222,t.range,"Alignment","1",i.toString()),-1):Ct(r)?r:(e.error(223,t.range,"Alignment"),-1)}function X(t,i){let e=t.compiler;return e.options.hasFeature(i)?0:(e.error(103,t.reportNode.range,li(i)),1)}function J(t,i=!1){let e=t.compiler,r=t.typeArguments;if(r){let n=r.length;if(n==1)return 0;assert(n),i&&(e.currentType=r[0]),e.error(2558,t.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,t.reportNode.range,"1","0");return 1}function ae(t,i=!1){let e=t.typeArguments;if(e){let r=t.compiler,n=e.length;return n==1?0:(assert(n),i&&(r.currentType=e[0]),r.error(2558,t.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function v(t){if(t.typeArguments){let e=t.prototype;return e.program.error(2315,t.reportNode.typeArgumentsRange,e.internalName),1}return 0}function K(t,i){let e=t.operands;return e.length!=i?(t.compiler.error(2554,t.reportNode.range,i.toString(),e.length.toString()),1):0}function Se(t,i,e){let n=t.operands.length;return n<i?(t.compiler.error(2555,t.reportNode.range,i.toString(),n.toString()),1):n>e?(t.compiler.error(2554,t.reportNode.range,e.toString(),n.toString()),1):0}function eo(t,i,e){let r=t.module;if(e!=p.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(i))return t.currentType=p.i32,r.i32(i64_low(i));break}case 8:{if(i64_is_u32(i))return t.currentType=p.u32,r.i32(i64_low(i));break}case 4:case 9:return t.currentType=e,r.i64(i64_low(i),i64_high(i))}return t.options.isWasm64?(t.currentType=p.usize64,r.i64(i64_low(i),i64_high(i))):(t.currentType=p.usize32,assert(!i64_high(i)),r.i32(i64_low(i)))}var Yc=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let i=this._currentExpression;if(!i)throw new Error("not walking expressions");return i}get parentExpressionOrNull(){let i=this.stack,e=i.length;return e?i[e-1]:0}visitBlock(i){}visitIf(i){}visitLoop(i){}visitBreak(i){}visitSwitch(i){}visitCallPre(i){}visitCall(i){}visitCallIndirectPre(i){}visitCallIndirect(i){}visitLocalGet(i){}visitLocalSet(i){}visitGlobalGet(i){}visitGlobalSet(i){}visitLoad(i){}visitStore(i){}visitConst(i){}visitUnary(i){}visitBinary(i){}visitSelect(i){}visitDrop(i){}visitReturn(i){}visitMemorySize(i){}visitMemoryGrow(i){}visitNop(i){}visitUnreachable(i){}visitAtomicRMW(i){}visitAtomicCmpxchg(i){}visitAtomicWait(i){}visitAtomicNotify(i){}visitAtomicFence(i){}visitSIMDExtract(i){}visitSIMDReplace(i){}visitSIMDShuffle(i){}visitSIMDTernary(i){}visitSIMDShift(i){}visitSIMDLoad(i){}visitSIMDLoadStoreLane(i){}visitMemoryInit(i){}visitDataDrop(i){}visitMemoryCopy(i){}visitMemoryFill(i){}visitPop(i){}visitRefNull(i){}visitRefIsNull(i){}visitRefFunc(i){}visitRefEq(i){}visitTry(i){}visitThrow(i){}visitRethrow(i){}visitTupleMake(i){}visitTupleExtract(i){}visitRefI31(i){}visitI31Get(i){}visitCallRef(i){}visitRefTest(i){}visitRefCast(i){}visitBrOn(i){}visitStructNew(i){}visitStructGet(i){}visitStructSet(i){}visitArrayNew(i){}visitArrayNewFixed(i){}visitArrayGet(i){}visitArraySet(i){}visitArrayLen(i){}visitArrayCopy(i){}visitRefAs(i){}visitStringNew(i){}visitStringConst(i){}visitStringMeasure(i){}visitStringEncode(i){}visitStringConcat(i){}visitStringEq(i){}visitStringAs(i){}visitStringWTF8Advance(i){}visitStringWTF16Get(i){}visitStringIterNext(i){}visitStringIterMove(i){}visitStringSliceWTF(i){}visitStringSliceIter(i){}visitName(i){}visitLabel(i){}visitIndex(i){}visitTag(i){}visit(i){let e=this._currentExpression;switch(this._currentExpression=assert(i),Rt(i)){case 1:{this.stack.push(i);let r=zs(i);r&&this.visitLabel(r);for(let n=0,s=$i(i);n<s;++n)this.visit(en(i,n));assert(this.stack.pop()==i),this.visitBlock(i);break}case 2:{this.stack.push(i),this.visit(tn(i)),this.visit(rn(i));let r=nn(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitIf(i);break}case 3:{this.stack.push(i);let r=Ds(i);r&&this.visitLabel(r),this.visit(sn(i)),assert(this.stack.pop()==i),this.visitLoop(i);break}case 4:{this.stack.push(i),this.visitLabel(Us(i));let r=an(i);r&&this.visit(r);let n=_o(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitBreak(i);break}case 5:{this.stack.push(i);let r=Xf(i);r&&this.visitLabel(r);let n=Hf(i);for(let a=0;a<n;++a)this.visitLabel(Qf(i,a));this.visit(ho(i));let s=mo(i);s&&this.visit(s),assert(this.stack.pop()==i),this.visitSwitch(i);break}case 6:{this.visitCallPre(i),this.stack.push(i),this.visitName(Yr(i));let r=Qt(i);for(let n=0;n<r;++n)this.visit(Xt(i,n));assert(this.stack.pop()==i),this.visitCall(i);break}case 7:{this.visitCallIndirectPre(i),this.stack.push(i),this.visit(yo(i));for(let r=0,n=ln(i);r<n;++r)this.visit(on(i,r));assert(this.stack.pop()==i),this.visitCallIndirect(i);break}case 8:{this.stack.push(i),this.visitIndex(qs(i)),assert(this.stack.pop()==i),this.visitLocalGet(i);break}case 9:{this.stack.push(i),this.visitIndex($r(i)),this.visit(mr(i)),assert(this.stack.pop()==i),this.visitLocalSet(i);break}case 10:{this.stack.push(i),this.visitName(js(i)),assert(this.stack.pop()==i),this.visitGlobalGet(i);break}case 11:{this.stack.push(i),this.visitName(l_(i)),this.visit(go(i)),assert(this.stack.pop()==i),this.visitGlobalSet(i);break}case 12:{this.stack.push(i),this.visit(cn(i)),assert(this.stack.pop()==i),this.visitLoad(i);break}case 13:{this.stack.push(i),this.visit(yr(i)),this.visit(fn(i)),assert(this.stack.pop()==i),this.visitStore(i);break}case 14:{this.visitConst(i);break}case 15:{this.stack.push(i),this.visit(_n(i)),assert(this.stack.pop()==i),this.visitUnary(i);break}case 16:{this.stack.push(i),this.visit(hn(i)),this.visit(dn(i)),assert(this.stack.pop()==i),this.visitBinary(i);break}case 17:{this.stack.push(i),this.visit(mn(i)),this.visit(yn(i)),this.visit(gn(i)),assert(this.stack.pop()==i),this.visitSelect(i);break}case 18:{this.stack.push(i),this.visit(bn(i)),assert(this.stack.pop()==i),this.visitDrop(i);break}case 19:{let r=gr(i);r&&(this.stack.push(i),this.visit(r),assert(this.stack.pop()==i)),this.visitReturn(i);break}case 20:{this.visitMemorySize(i);break}case 21:{this.stack.push(i),this.visit(pn(i)),assert(this.stack.pop()==i),this.visitMemoryGrow(i);break}case 22:{this.visitNop(i);break}case 23:{this.visitUnreachable(i);break}case 24:{this.stack.push(i),this.visit(xo(i)),this.visit(To(i)),assert(this.stack.pop()==i),this.visitAtomicRMW(i);break}case 25:{this.stack.push(i),this.visit(Ao(i)),this.visit(Eo(i)),this.visit(vo(i)),assert(this.stack.pop()==i),this.visitAtomicCmpxchg(i);break}case 26:{this.stack.push(i),this.visit(So(i)),this.visit(Io(i)),this.visit(Ro(i)),assert(this.stack.pop()==i),this.visitAtomicWait(i);break}case 27:{this.stack.push(i),this.visit(Fo(i)),this.visit(ko(i)),assert(this.stack.pop()==i),this.visitAtomicNotify(i);break}case 28:{this.visitAtomicFence(i);break}case 30:{this.stack.push(i),this.visit(wo(i)),assert(this.stack.pop()==i),this.visitSIMDExtract(i);break}case 31:{this.stack.push(i),this.visit(Co(i)),this.visit(Po(i)),assert(this.stack.pop()==i),this.visitSIMDReplace(i);break}case 32:{this.stack.push(i),this.visit(Bo(i)),this.visit(Lo(i)),assert(this.stack.pop()==i),this.visitSIMDShuffle(i);break}case 33:{this.stack.push(i),this.visit(No(i)),this.visit(Mo(i)),this.visit(Go(i)),assert(this.stack.pop()==i),this.visitSIMDTernary(i);break}case 34:{this.stack.push(i),this.visit(zo(i)),this.visit(Do(i)),assert(this.stack.pop()==i),this.visitSIMDShift(i);break}case 35:{this.stack.push(i),this.visit(Uo(i)),assert(this.stack.pop()==i),this.visitSIMDLoad(i);break}case 36:{this.stack.push(i),this.visit(Vo(i)),this.visit(Oo(i)),assert(this.stack.pop()==i),this.visitSIMDLoadStoreLane(i);break}case 37:{this.stack.push(i),this.visit(qo(i)),this.visit(Wo(i)),this.visit(Ko(i)),assert(this.stack.pop()==i),this.visitMemoryInit(i);break}case 38:{this.visitDataDrop(i);break}case 39:{this.stack.push(i),this.visit(jo(i)),this.visit(Ho(i)),this.visit(Qo(i)),assert(this.stack.pop()==i),this.visitMemoryCopy(i);break}case 40:{this.stack.push(i),this.visit(Xo(i)),this.visit(Jo(i)),this.visit(Zo(i)),assert(this.stack.pop()==i),this.visitMemoryFill(i);break}case 41:{this.visitPop(i);break}case 42:{this.visitRefNull(i);break}case 43:{this.stack.push(i),this.visit(Yo(i)),assert(this.stack.pop()==i),this.visitRefIsNull(i);break}case 44:{this.stack.push(i),this.visitName(Dh(i)),assert(this.stack.pop()==i),this.visitRefFunc(i);break}case 45:{this.stack.push(i),this.visit(tu(i)),this.visit(ru(i)),assert(this.stack.pop()==i),this.visitRefEq(i);break}case 54:{this.stack.push(i),this.visit(iu(i));let r=nu(i);for(let n=0;n<r;++n)this.visit(su(i,n));assert(this.stack.pop()==i),this.visitTry(i);break}case 56:{this.stack.push(i),this.visitTag(Zh(i));let r=au(i);for(let n=0;n<r;++n)this.visit(lu(i,n));assert(this.stack.pop()==i),this.visitThrow(i);break}case 57:{this.visitRethrow(i);break}case 59:{let r=ou(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(uu(i,n));assert(this.stack.pop()==i)}this.visitTupleMake(i);break}case 60:{this.stack.push(i),this.visit(pu(i)),assert(this.stack.pop()==i),this.visitTupleExtract(i);break}case 61:{this.stack.push(i),this.visit(cu(i)),assert(this.stack.pop()==i),this.visitRefI31(i);break}case 62:{this.stack.push(i),this.visit(fu(i)),assert(this.stack.pop()==i),this.visitI31Get(i);break}case 63:{this.stack.push(i);let r=_u(i);if(r)for(let n=0;n<r;++n)this.visit(hu(i,n));this.visit(du(i)),assert(this.stack.pop()==i),this.visitCallRef(i);break}case 64:{this.stack.push(i),this.visit(mu(i)),assert(this.stack.pop()==i),this.visitRefTest(i);break}case 65:{this.stack.push(i),this.visit(yu(i)),assert(this.stack.pop()==i),this.visitRefCast(i);break}case 67:{this.stack.push(i),this.visitLabel(_d(i)),this.visit(gu(i)),assert(this.stack.pop()==i),this.visitBrOn(i);break}case 68:{let r=bu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(xu(i,n));assert(this.stack.pop()==i)}this.visitStructNew(i);break}case 69:{this.stack.push(i),this.visit(Tu(i)),this.visitIndex(md(i)),assert(this.stack.pop()==i),this.visitStructGet(i);break}case 70:{this.stack.push(i),this.visit(Au(i)),this.visitIndex(gd(i)),this.visit(Eu(i)),assert(this.stack.pop()==i),this.visitStructSet(i);break}case 73:{this.stack.push(i),this.visit(Su(i));let r=vu(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitArrayNew(i);break}case 76:{let r=Iu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(Ru(i,n));assert(this.stack.pop()==i)}this.visitArrayNewFixed(i);break}case 77:{this.stack.push(i),this.visit(Fu(i)),this.visit(ku(i)),assert(this.stack.pop()==i),this.visitArrayGet(i);break}case 78:{this.stack.push(i),this.visit(wu(i)),this.visit(Cu(i)),this.visit(Pu(i)),assert(this.stack.pop()==i),this.visitArraySet(i);break}case 81:{this.stack.push(i),this.visit(Bu(i)),assert(this.stack.pop()==i),this.visitArrayLen(i);break}case 82:{this.stack.push(i),this.visit(Lu(i)),this.visit(Nu(i)),this.visit(Mu(i)),this.visit(Gu(i)),this.visit(zu(i)),assert(this.stack.pop()==i),this.visitArrayCopy(i);break}case 88:{this.stack.push(i),this.visit(eu(i)),assert(this.stack.pop()==i),this.visitRefAs(i);break}case 89:{this.stack.push(i),this.visit(Du(i));let r=Uu(i);r&&this.visit(r);let n=Vu(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitStringNew(i);break}case 90:{this.stack.push(i),assert(this.stack.pop()==i),this.visitStringConst(i);break}case 91:{this.stack.push(i),this.visit(Ou(i)),assert(this.stack.pop()==i),this.visitStringMeasure(i);break}case 92:{this.stack.push(i),this.visit(qu(i)),this.visit(Wu(i));let r=Ku(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitStringEncode(i);break}case 93:{this.stack.push(i),this.visit(ju(i)),this.visit(Hu(i)),assert(this.stack.pop()==i),this.visitStringConcat(i);break}case 94:{this.stack.push(i),this.visit(Xu(i)),this.visit(Ju(i)),assert(this.stack.pop()==i),this.visitStringEq(i);break}case 96:{this.stack.push(i),this.visit(Zu(i)),this.visit(Yu(i)),assert(this.stack.pop()==i),this.visitStringWTF16Get(i);break}case 97:{this.stack.push(i),this.visit($u(i)),this.visit(ep(i)),this.visit(tp(i)),assert(this.stack.pop()==i),this.visitStringSliceWTF(i);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},Xr=class extends Yc{constructor(e){super();this.module=e;this._currentFunction=0;this._currentGlobal=0}get currentFunction(){let e=this._currentFunction;if(!e)throw new Error("not walking a function");return e}get currentGlobal(){let e=this._currentGlobal;if(!e)throw new Error("not walking a global");return e}walkModule(){this.walkFunctions(),this.walkGlobals()}walkFunctions(){let e=this.module.ref;for(let r=0,n=ii(e);r<n;++r)this.walkFunction(Tn(e,r))}walkFunction(e){let r=kt(e);r&&(this._currentFunction=e,this.visit(r),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let r=0,n=hm(e);r<n;++r)this.walkGlobal(dm(e,r))}walkGlobal(e){this._currentGlobal=e;let r=ra(e);r&&this.visit(r),this._currentGlobal=0}replaceCurrent(e){let r=this.currentExpression,n=this.currentFunction;if(kt(n)==r)vn(n,e);else{let a=assert(this.parentExpressionOrNull);if(!pI(a,r,e))throw Error("failed to replace expression");Lf(a)}}};function pI(t,i,e){switch(Rt(t)){case 1:{let r=$i(t);for(let n=0;n<r;++n){let s=en(t,n);if(s==i)return Mf(t,n,e),s}break}case 2:{let r=tn(t);if(r==i)return zf(t,e),r;let n=rn(t);if(n==i)return Df(t,e),n;let s=nn(t);if(s==i)return Uf(t,e),s;break}case 3:{let r=sn(t);if(r==i)return Of(t,e),r;break}case 4:{let r=an(t);if(r==i)return Wf(t,e),r;let n=_o(t);if(n==i)return Kf(t,e),n;break}case 5:{let r=ho(t);if(r==i)return Jf(t,e),r;let n=mo(t);if(n==i)return Zf(t,e),n;break}case 6:{let r=Qt(t);for(let n=0;n<r;++n){let s=Xt(t,n);if(s==i)return Vs(t,n,e),s}break}case 7:{let r=yo(t);if(r==i)return t_(t,e),r;let n=ln(t);for(let s=0;s<n;++s){let a=on(t,s);if(a==i)return Os(t,s,e),a}break}case 8:break;case 9:{let r=mr(t);if(r==i)return Ks(t,e),r;break}case 10:break;case 11:{let r=go(t);if(r==i)return o_(t,e),r;break}case 12:{let r=cn(t);if(r==i)return m_(t,e),r;break}case 13:{let r=yr(t);if(r==i)return Xs(t,e),r;let n=fn(t);if(n==i)return b_(t,e),n;break}case 14:break;case 15:{let r=_n(t);if(r==i)return R_(t,e),r;break}case 16:{let r=hn(t);if(r==i)return P_(t,e),r;let n=dn(t);if(n==i)return B_(t,e),n;break}case 17:{let r=mn(t);if(r==i)return N_(t,e),r;let n=yn(t);if(n==i)return M_(t,e),n;let s=gn(t);if(s==i)return G_(t,e),s;break}case 18:{let r=bn(t);if(r==i)return z_(t,e),r;break}case 19:{let r=gr(t);if(r==i)return Js(t,e),r;break}case 20:break;case 21:{let r=pn(t);if(r==i)return c_(t,e),r;break}case 22:break;case 23:break;case 24:{let r=xo(t);if(r==i)return q_(t,e),r;let n=To(t);if(n==i)return W_(t,e),n;break}case 25:{let r=Ao(t);if(r==i)return j_(t,e),r;let n=Eo(t);if(n==i)return H_(t,e),n;let s=vo(t);if(s==i)return Q_(t,e),s;break}case 26:{let r=So(t);if(r==i)return J_(t,e),r;let n=Io(t);if(n==i)return Z_(t,e),n;let s=Ro(t);if(s==i)return Y_(t,e),s;break}case 27:{let r=Fo(t);if(r==i)return eh(t,e),r;let n=ko(t);if(n==i)return th(t,e),n;break}case 28:break;case 30:{let r=wo(t);if(r==i)return nh(t,e),r;break}case 31:{let r=Co(t);if(r==i)return ah(t,e),r;let n=Po(t);if(n==i)return lh(t,e),n;break}case 32:{let r=Bo(t);if(r==i)return uh(t,e),r;let n=Lo(t);if(n==i)return ph(t,e),n;break}case 33:{let r=No(t);if(r==i)return fh(t,e),r;let n=Mo(t);if(n==i)return _h(t,e),n;let s=Go(t);if(s==i)return hh(t,e),s;break}case 34:{let r=zo(t);if(r==i)return mh(t,e),r;let n=Do(t);if(n==i)return yh(t,e),n;break}case 35:{let r=Uo(t);if(r==i)return bh(t,e),r;break}case 36:{let r=Vo(t);if(r==i)return Th(t,e),r;if(Oo(t)==i)return Ah(t,e),r;break}case 37:{let r=qo(t);if(r==i)return Eh(t,e),r;let n=Wo(t);if(n==i)return vh(t,e),n;let s=Ko(t);if(s==i)return Sh(t,e),s;break}case 38:break;case 39:{let r=jo(t);if(r==i)return Rh(t,e),r;let n=Ho(t);if(n==i)return Fh(t,e),n;let s=Qo(t);if(s==i)return kh(t,e),s;break}case 40:{let r=Xo(t);if(r==i)return Ch(t,e),r;let n=Jo(t);if(n==i)return Ph(t,e),n;let s=Zo(t);if(s==i)return Bh(t,e),s;break}case 41:break;case 42:break;case 43:{let r=Yo(t);if(r==i)return Mh(t,e),r;break}case 44:break;case 45:{let r=tu(t);if(r==i)return Vh(t,e),r;let n=ru(t);if(n==i)return Oh(t,e),n;break}case 54:{let r=iu(t);if(r==i)return Qh(t,e),r;let n=nu(t);for(let s=0;s<n;++s){let a=su(t,s);if(a==i)return Xh(t,s,e),a}break}case 56:{let r=au(t);for(let n=0;n<r;++n){let s=lu(t,n);if(s==i)return Yh(t,n,e),s}break}case 57:break;case 59:{let r=ou(t);for(let n=0;n<r;++n){let s=uu(t,n);if(s==i)return td(t,n,e),s}break}case 60:{let r=pu(t);if(r==i)return id(t,e),r;break}case 61:{let r=cu(t);if(r==i)return ad(t,e),r;break}case 62:{let r=fu(t);if(r==i)return od(t,e),r;break}case 63:{let r=_u(t);for(let s=0;s<r;++s){let a=hu(t,s);if(a==i)return ud(t,s,e),a}let n=du(t);if(n==i)return pd(t,e),n;break}case 64:{let r=mu(t);if(r==i)return cd(t,e),r;break}case 65:{let r=yu(t);if(r==i)return fd(t,e),r;break}case 67:{let r=gu(t);if(r==i)return hd(t,e),r;break}case 68:{let r=bu(t);for(let n=0;n<r;++n){let s=xu(t,n);if(s==i)return dd(t,n,e),s}break}case 69:{let r=Tu(t);if(r==i)return yd(t,e),r;break}case 70:{let r=Au(t);if(r==i)return bd(t,e),r;let n=Eu(t);if(n==i)return xd(t,e),n;break}case 73:{let r=Su(t);if(r==i)return Ad(t,e),r;let n=vu(t);if(n==i)return Td(t,e),n;break}case 76:{let r=Iu(t);for(let n=0;n<r;++n){let s=Ru(t,n);if(s==i)return Ed(t,n,e),s}break}case 77:{let r=Fu(t);if(r==i)return vd(t,e),r;let n=ku(t);if(n==i)return Sd(t,e),n;break}case 78:{let r=wu(t);if(r==i)return Id(t,e),r;let n=Cu(t);if(n==i)return Rd(t,e),n;let s=Pu(t);if(s==i)return Fd(t,e),s;break}case 81:{let r=Bu(t);if(r==i)return kd(t,e),r;break}case 82:{let r=Lu(t);if(r==i)return wd(t,e),r;let n=Nu(t);if(n==i)return Cd(t,e),n;let s=Mu(t);if(s==i)return Pd(t,e),s;let a=Gu(t);if(a==i)return Bd(t,e),a;let l=zu(t);if(l==i)return Ld(t,e),l;break}case 88:{let r=eu(t);if(r==i)return Gh(t,e),r;break}case 89:{let r=Du(t);if(r==i)return Nd(t,e),r;let n=Uu(t);if(n==i)return Md(t,e),n;let s=Vu(t);if(s==i)return Gd(t,e),s;break}case 90:break;case 91:{let r=Ou(t);if(r==i)return zd(t,e),r;break}case 92:{let r=qu(t);if(r==i)return Dd(t,e),r;let n=Wu(t);if(n==i)return Ud(t,e),n;let s=Ku(t);if(s==i)return Vd(t,e),s;break}case 93:{let r=ju(t);if(r==i)return Od(t,e),r;let n=Hu(t);if(n==i)return qd(t,e),n;break}case 94:{let r=Xu(t);if(r==i)return Wd(t,e),r;let n=Ju(t);if(n==i)return Kd(t,e),n;break}case 96:{let r=Zu(t);if(r==i)return jd(t,e),r;let n=Yu(t);if(n==i)return Hd(t,e),n;break}case 97:{let r=$u(t);if(r==i)return Qd(t,e),r;let n=ep(t);if(n==i)return Xd(t,e),n;let s=tp(t);if(s==i)return Jd(t,e),s;break}default:throw new Error("unexpected expression id")}return 0}var ro=class extends Xr{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(ni(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let r=this.module,n=yr(e),s=Qs(e),a=Hs(e);Xs(e,r.call("~onstore",[n,r.i32(s),r.i32(a),r.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",je([this.ptrType,L.I32,L.I32,L.I32]),this.ptrType)}};function Mg(t,i){let e=!1;for(;Rt(i)==6&&t.readStringCached(Yr(i))==d.tostack;)assert(Qt(i)==1),i=Xt(i,0),e=!0;return e?i:0}function Gg(t){return Rt(t)===14?!He(t):!0}var Fs=class extends Xr{constructor(e){super(e.module);this.slotMaps=new Map;this.tempMaps=new Map;this.exportMap=new Map;this.hasStackCheckFunction=!1;this.callSlotOffset=0;this.callSlotStack=new Array;this.compiler=e}get options(){return this.compiler.options}get ptrType(){return this.options.sizeTypeRef}get ptrSize(){return this.ptrType==L.I64?8:4}get ptrBinaryAdd(){return this.ptrType==L.I64?25:0}get ptrBinarySub(){return this.ptrType==L.I64?26:1}ptrConst(e){return this.ptrType==L.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,r){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(r))return changetype(n.get(r))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(r,s),s}noteExport(e,r){r.length&&this.exportMap.set(e,r)}getSharedTemp(e,r){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(r))return changetype(n.get(r))}else n=new Map,this.tempMaps.set(e,n);let a=rp(e)+n.size;return n.set(r,a),a}makeStackOffset(e){assert(e!=0);let r=this.module,n=r.global_set(d.stack_pointer,r.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,r.global_get(d.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:r.block(null,[n,this.makeStackCheck()],L.None)}makeStackFill(e,r){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)r.push(n.memory_fill(n.global_get(d.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)r.push(n.store(8,n.global_get(d.stack_pointer,this.ptrType),n.i64(0),L.I64,e-s)),s-=8;s&&(assert(s==4),r.push(n.store(4,n.global_get(d.stack_pointer,this.ptrType),n.i32(0),L.I32,e-s)))}}makeStackCheck(){let e=this.module;return!this.hasStackCheckFunction&&!e.hasFunction("~stack_check")&&(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",L.None,L.None,null,e.if(e.binary(17,e.global_get(d.stack_pointer,this.ptrType),e.global_get(d.data_end,this.ptrType)),this.compiler.options.hasFeature(64)?e.unreachable():this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),fe.native)))),e.call("~stack_check",null,L.None)}updateCallOperands(e){let r=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Mg(r,l);if(!o)continue;if(!Gg(o)){e[s]=o;continue}let u=this.currentFunction,c=rp(u),f=this.noteSlot(u,c+this.callSlotOffset+n),_=this.getSharedTemp(u,this.ptrType),h=new Array;h.push(r.local_set(_,o,!1)),h.push(r.store(this.ptrSize,r.global_get(d.stack_pointer,this.ptrType),r.local_get(_,this.ptrType),this.ptrType,f*this.ptrSize)),h.push(r.local_get(_,this.ptrType)),e[s]=r.block(null,h,this.ptrType),++n}return n}visitCallPre(e){let r=Qt(e),n=new Array(r);for(let a=0;a<r;++a)n[a]=Xt(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Vs(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let r=this.callSlotStack.pop();r&&(this.callSlotOffset-=r)}visitCallIndirectPre(e){let r=ln(e),n=new Array(r);for(let a=0;a<r;++a)n[a]=on(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Os(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let r=this.callSlotStack.pop();r&&(this.callSlotOffset-=r)}visitLocalSet(e){let r=this.module,n=mr(e),s=Mg(r,n);if(!s)return;if(!Gg(s)){Ks(e,s);return}let a=$r(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(r.store(this.ptrSize,r.global_get(d.stack_pointer,this.ptrType),r.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),Ws(e)?(o.push(r.local_get(a,this.ptrType)),this.replaceCurrent(r.flatten(o,this.ptrType))):this.replaceCurrent(r.flatten(o,L.None))}updateFunction(e){let r=ni(e),n=An(e),s=En(e),a=assert(kt(e)),l=Zs(e),o=new Array;for(let h=0;h<l;++h)o[h]=Ys(e,h);let u=this.tempMaps;if(u.has(e)){let h=changetype(u.get(e));for(let m=Map_keys(h),x=0,g=m.length;x<g;++x)o.push(m[x])}let c=this.module.ref;xn(c,r);let f=he(o),_=ti(c,r,n,s,f,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let h=this.compiler.program.searchFunctionByRef(_);h&&h.addDebugInfo(this.module,_)}ie(f)}updateExport(e,r){let n=this.module,s=n.ref;assert(um(e)==0);let a=cm(e),l=n.readStringCached(a),o=pm(e),u=ri(s,a),c=An(u),f=Vp(c),_=f.length,h=En(u),m=_,x=new Array,g=assert(r.length),A=g*this.ptrSize,I="export:"+l,E=n.allocStringCached(I);if(ri(s,E)==0){let k=new Array;k.push(this.makeStackOffset(-A));for(let M=0;M<g;++M)k.push(n.store(this.ptrSize,n.global_get(d.stack_pointer,this.ptrType),n.local_get(r[M],this.ptrType),this.ptrType,M*this.ptrSize));let F=new Array(_);for(let M=0;M<_;++M)F[M]=n.local_get(M,f[M]);if(h!=L.None){let M=m++;x.push(h),k.push(n.local_set(M,n.call(l,F,h),!1)),k.push(this.makeStackOffset(+A)),k.push(n.local_get(M,h))}else k.push(n.call(l,F,h)),k.push(this.makeStackOffset(+A));let R=he(x);ti(s,E,c,h,R,x.length,n.block(null,k,h)),ie(R)}ta(s,o),$s(s,E,o)}walkModule(){let e=this.module.ref,r=this.module,n=0,s=0,a=new Set;for(;;){let u=ii(e);if(u==n)break;for(let f=n;f<u;++f)this.walkFunction(Tn(e,f));let c=new io(this);for(let f=Map_keys(this.slotMaps),_=0,h=f.length;_<h;++_){let m=f[_];if(a.has(m))continue;a.add(m);let g=changetype(this.slotMaps.get(m)).size*this.ptrSize;c.frameSize=g,c.walkFunction(m);let A=new Array;A.push(this.makeStackOffset(-g)),this.makeStackFill(g,A);let I=kt(m),E=Ft(I);if(E==L.Unreachable)A.push(I);else if(E==L.None)A.push(I),A.push(this.makeStackOffset(+g));else{let k=this.getSharedTemp(m,E);A.push(r.local_set(k,I,!1)),A.push(this.makeStackOffset(+g)),A.push(r.local_get(k,E))}vn(m,r.flatten(A,E))}if(n=u,s++,s>100)throw new Error("ShadowStackPass: too many iterations, possible infinite loop")}this.walkGlobals();let l=this.exportMap;for(let u=Map_keys(l),c=0,f=u.length;c<f;++c){let _=u[c],h=ea(r.ref,r.allocStringCached(_)),m=changetype(l.get(_));this.updateExport(h,m)}let o=ii(e);for(;n<o;){for(let c=n;c<o;++c)this.walkFunction(Tn(e,c));let u=new io(this);for(let c=Map_keys(this.slotMaps),f=0,_=c.length;f<_;++f){let h=c[f];if(a.has(h))continue;a.add(h);let x=changetype(this.slotMaps.get(h)).size*this.ptrSize;u.frameSize=x,u.walkFunction(h);let g=new Array;g.push(this.makeStackOffset(-x)),this.makeStackFill(x,g);let A=kt(h),I=Ft(A);if(I==L.Unreachable)g.push(A);else if(I==L.None)g.push(A),g.push(this.makeStackOffset(+x));else{let E=this.getSharedTemp(h,I);g.push(r.local_set(E,A,!1)),g.push(this.makeStackOffset(+x)),g.push(r.local_get(E,I))}vn(h,r.flatten(g,I))}n=o,o=ii(e)}for(let u=Map_keys(this.tempMaps),c=0,f=u.length;c<f;++c)this.updateFunction(u[c])}},io=class extends Xr{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let r=this.module,n=gr(e),s=new Array;if(n){let a=Ft(n);if(a==L.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(r.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),Js(e,r.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(r.flatten(s,L.Unreachable))}};var Gi=class{constructor(i,e=!1){this.seen=new Map;this.program=i,this.includePrivate=e}walk(){for(let i=Map_values(this.program.filesByName),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(i){let e=i.exports;if(e)for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));this.visitElement(l,o)}let r=i.exportsStar;if(r)for(let n=0,s=r.length;n<s;++n){let a=unchecked(r[n]);this.visitFile(a)}}visitElement(i,e){if(e.is(512)&&!this.includePrivate)return;let r=this.seen;if(!e.is(262144)&&r.has(e)){this.visitAlias(i,e,assert(r.get(e)));return}switch(r.set(e,i),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(i,e);break}case 2:{e.is(8388608)&&this.visitEnum(i,e);break}case 3:break;case 4:{this.visitFunctionInstances(i,e);break}case 6:{this.visitClassInstances(i,e);break}case 8:{this.visitInterfaceInstances(i,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(i,s);let a=n.setterInstance;a&&this.visitFunction(i,a);break}case 12:{zg(e)&&this.visitNamespace(i,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(i,l)}}visitClassInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(i,l)}}visitInterfaceInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(i,l)}}};function zg(t){let i=t.members;if(i)for(let e=Map_values(i),r=0,n=e.length;r<n;++r){let s=unchecked(e[r]);switch(s.kind){case 4:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}case 6:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}default:{if(s.is(8388608)||zg(s))return!0;break}}}return!1}function cI(t){return t=="rtrace"?"#rtrace":t}function fI(t){return t!="rtrace"}var Di=class t extends Gi{constructor(e,r,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.needsLiftBuffer=!1;this.needsLowerBuffer=!1;this.needsLiftString=!1;this.needsLowerString=!1;this.needsLiftArray=!1;this.needsLowerArray=!1;this.needsLiftTypedArray=!1;this.needsLowerTypedArray=!1;this.needsLiftStaticArray=!1;this.needsLowerStaticArray=!1;this.needsLiftInternref=!1;this.needsLowerInternref=!1;this.needsRetain=!1;this.needsRelease=!1;this.needsNotNull=!1;this.needsSetU8=!1;this.needsSetU16=!1;this.needsSetU32=!1;this.needsSetU64=!1;this.needsSetF32=!1;this.needsSetF64=!1;this.needsGetI8=!1;this.needsGetU8=!1;this.needsGetI16=!1;this.needsGetU16=!1;this.needsGetI32=!1;this.needsGetU32=!1;this.needsGetI64=!1;this.needsGetU64=!1;this.needsGetF32=!1;this.needsGetF64=!1;this.deferredLifts=new Set;this.deferredLowers=new Set;this.deferredCode=new Array;this.exports=new Array;this.importMappings=new Map;this.esm=r}static build(e,r=!0){return new t(e,r).build()}visitGlobal(e,r){let n=this.sb,s=r.type;this.exports.push(e),Jr(s,1)||(O(n,this.indentLevel),n.push(e),n.push(`: {
|
|
27
|
+
`)}hasDecoratorKind(e,r){if(e==null)return!1;for(let n=0,s=e.length;n<s;++n)if(e[n].decoratorKind==r)return!0;return!1}restPrefixOf(e){let r=e.args;if(r==null||r.length==0)return"";let n=r[0];if(n instanceof Ze){let s=n.value.trim();return s.length==0||s=="/"?"":(s.startsWith("/")||(s="/"+s),s.replace(/\/+$/,""))}return""}restStreamOf(e){let r=e.args;if(r!=null&&r.length>0&&r[0]instanceof _t){let n=this.objectField(r[0],"stream");if(n!=null){let s=this.enumMember(n);if(s!=null)return s}}return"JSON"}routeDecoratorOf(e){let r=e.decorators;if(r==null)return null;for(let n=0,s=r.length;n<s;++n)switch(r[n].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return r[n]}return null}buildRouteBlock(e,r,n,s,a){let l=s.decoratorKind,o,u,c=r;if(l==19){let F=s.args;if(F==null||F.length==0||!(F[0]instanceof _t))return null;let R=F[0],M=this.objectField(R,"method"),z=this.objectField(R,"path");if(M==null||z==null||!(z instanceof Ze))return null;let D=this.enumMember(M);if(D==null)return null;o=D,u=z.value;let W=this.objectField(R,"stream");if(W!=null){let q=this.enumMember(W);q!=null&&(c=q)}}else{o=this.verbName(l);let F=s.args;if(F==null||F.length==0||!(F[0]instanceof Ze))return null;u=F[0].value}let f=this.methodEnumValue(o);if(f<0)return null;let _=this.joinPath(e,u),h=n.signature.parameters,m=null,x="";for(let F=0,R=h.length;F<R;++F){let M=h[F].type,z=M instanceof ce?M.name.identifier.text:"";F>0&&(x+=","),z=="RouteContext"?x+="__ctx":(m=z,x+="__body")}let g=n.signature.returnType,T=g instanceof ce?g.name.identifier.text:"",I="this."+n.name.text+"("+x+")",E=this.cacheSuffixOf(n),k="if(__req.method=="+f.toString()+"){";return k+="const __ctx=__toilMatch("+JSON.stringify(_)+",__req);",k+="if(__ctx!=null){",k+=this.ratelimitGuardOf(n),(a||this.hasDecoratorKind(n.decorators,28))&&(k+='if(!AuthService.hasSession()){return __toilResp.text("unauthorized\\n",401);}'),m!=null&&(c=="Binary"?k+="const __body="+m+".decode(__req.body);":k+="const __body="+m+".fromJSON(JSON.parse(__ctx.text()));"),T=="Response"||T=="__toilResp"?k+="return "+I+E+";":T=="void"?k+=I+";return __toilResp.empty(204)"+E+";":c=="Binary"?k+="const __res="+I+";return __toilResp.bytes(__res.encode())"+E+";":k+="const __res="+I+";return __toilResp.json(__res.toJSON().toString())"+E+";",k+="}}",k}cacheSuffixOf(e){let r=e.decorators;if(r==null)return"";for(let n=0,s=r.length;n<s;++n){if(r[n].decoratorKind!=27)continue;let a=r[n].args;if(a==null||a.length==0)return"";let l="";for(let o=0,u=a.length;o<u;++o){let c=a[o];if(!(c instanceof Bt||c.kind==26||c.kind==14))return"";o>0&&(l+=","),l+=c.range.toString()}return".cache("+l+")"}return""}ratelimitGuardOf(e){let r=e.decorators;if(r==null)return"";for(let n=0,s=r.length;n<s;++n){if(r[n].decoratorKind!=30)continue;let a=r[n].args;if(a==null||a.length<3)return"";let l=this.ratelimitStrategyTag(a[0]);if(l.length==0)return"";let o=a[1],u=a[2];return!(o instanceof Bt)||!(u instanceof Bt)?"":"{const __rl=RateLimitService.guard("+(this.ratelimitRouteCounter++).toString()+","+l+","+o.range.toString()+","+u.range.toString()+");if(__rl!=null){return __rl;}}"}return""}ratelimitStrategyTag(e){if(e instanceof Bt)return e.range.toString();if(e instanceof Lt){let r=e.property.text;return r=="SlidingWindow"?"1":r=="TokenBucket"?"2":"0"}return""}objectField(e,r){let n=e.names;for(let s=0,a=n.length;s<a;++s)if(n[s].text==r)return e.values[s];return null}enumMember(e){return e instanceof Lt?e.property.text:null}verbName(e){switch(e){case 21:return"POST";case 22:return"PUT";case 23:return"DELETE";case 24:return"PATCH";case 25:return"HEAD";case 26:return"OPTIONS";default:return"GET"}}methodEnumValue(e){switch(e){case"GET":return 0;case"POST":return 1;case"PUT":return 2;case"DELETE":return 3;case"PATCH":return 4;case"HEAD":return 5;case"OPTIONS":return 6;default:return-1}}joinPath(e,r){let n=r.trim();if(n.length==0&&(n="/"),n.startsWith("/")||(n="/"+n),n=="/")return e.length>0?e:"/";n.length>1&&(n=n.replace(/\/+$/,""));let s=e+n;return s.length==0?"/":s}restRuntimePath(e){let r=e.range.source.statements;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.kind!=43)continue;let l=a,o=l.declarations;if(o!=null)for(let u=0,c=o.length;u<c;++u){let f=o[u].foreignName.text;if(f=="Response"||f=="Request"||f=="RouteContext"||f=="ToilHandler"||f=="Method"||f=="Header"||f=="Server"||f=="Rest")return l.path.value}}return"toiljs/server/runtime"}parseClassExpression(e){let r=e.tokenPos,n;if(e.skipIdentifier()?n=G.createIdentifierExpression(e.readIdentifier(),e.range()):n=G.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=G.createClassDeclaration(n,null,0,null,null,null,s,e.range(r,e.pos));if(!e.skip(63))do{let l=this.parseClassMember(e,a);if(l)l.kind==66?a.indexSignature=l:(assert(a instanceof De),s.push(l));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));return a.range.end=e.pos,G.createClassExpression(a)}parseClassMember(e,r){let n=r.kind==58,s=0,a=null;if(e.skip(114)){s=e.tokenPos;do{let re=this.parseDecorator(e);if(!re)break;a||(a=new Array),a.push(re)}while(e.skip(114));n&&a&&this.error(1206,le.join(a[0].range,a[a.length-1].range))}let l=r.flags&32768;n&&(l|=268435456);let o=0,u=0,c=r.is(32768);e.skip(12)?(n?this.error(1042,e.range(),"declare"):c?this.error(1038,e.range()):(l|=32772,o=e.tokenPos,u=e.pos),s||(s=e.tokenPos)):c&&(l|=32768);let f=0,_=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos));let h=0,m=0,x=0,g=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,h=e.tokenPos,m=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!r.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,x=e.tokenPos,g=e.pos),s||(s=e.tokenPos)),r.flags&65536&&(l|=131072));let T=0,I=0;e.skip(40)&&(n||r.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,T=e.tokenPos,I=e.pos),s||(s=e.tokenPos));let E=0,k=0;if(e.peek()==45){let re=e.mark();e.next(),e.peek()!=100?(e.discard(re),l|=64,E=e.tokenPos,k=e.pos,s||(s=E)):e.reset(re)}let F=e.mark(),R=!1,M=!1,z=0,D=0,W=!1,q=0,ee=0;n||(e.skip(25)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=2048,M=!0,z=e.tokenPos,D=e.pos,s||(s=z),l&64&&this.error(1042,e.range(E,k),"readonly")):e.reset(F):e.skip(47)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=4096,W=!0,q=e.tokenPos,ee=e.pos,s||(s=q),l&64&&this.error(1042,e.range(E,k),"readonly")):e.reset(F):e.skip(10)&&(l|=524288,R=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(h,m),"static"),l&128&&this.error(1042,e.range(x,g),"abstract"),l&64&&this.error(1042,e.range(E,k),"readonly")));let Y=M||W,te;if(R)te=G.createConstructorExpression(e.range());else{if(!Y&&e.skip(66)){s||(s=e.tokenPos),l&256?this.error(1042,e.range(f,_),"public"):l&1024?this.error(1042,e.range(f,_),"protected"):l&512&&this.error(1042,e.range(f,_),"private"),l&32&&this.error(1042,e.range(h,m),"static"),l&8192&&this.error(1042,e.range(T,I),"override"),l&128&&this.error(1042,e.range(x,g),"abstract");let re=this.parseIndexSignature(e,l,a);return re?(e.skip(70),re):(l&64&&this.error(1042,e.range(E,k),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),te=G.createIdentifierExpression(e.readIdentifier(),e.range())}let j=null;if(e.skip(72)){let re=e.tokenPos;if(j=this.parseTypeParameters(e),!j)return null;R?this.error(1092,e.range(re,e.pos)):Y?this.error(1094,e.range(re,e.pos)):l|=65536}if(e.skip(64)){l&4&&this.error(1031,e.range(o,u),"declare");let re=e.tokenPos,H=this.parseParameters(e,R);if(!H)return null;let ue=this.parseParametersThis;if(R)for(let Q=0,Qi=H.length;Q<Qi;++Q){let St=H[Q];if(St.isAny(1856)){let It=G.createFieldDeclaration(St.name,null,St.flags|262144,St.type,null,St.range);It.parameterIndex=Q,St.implicitFieldDeclaration=It,r.members.push(It)}}else M?H.length&&this.error(1054,te.range):W?(H.length!=1&&this.error(1049,te.range),H.length>0&&H[0].initializer&&this.error(1052,te.range)):te.text=="constructor"&&this.error(230,te.range,"constructor");let be=null;if(e.skip(100)){if(te.kind==27?this.error(1093,e.range()):W&&this.error(1095,e.range()),be=this.parseType(e,W||te.kind==27),!be)return null}else be=G.createOmittedType(e.range(e.pos)),!W&&te.kind!=27&&this.error(1110,be.range);let dr=G.createFunctionType(H,be,ue,!1,e.range(re,e.pos)),vt=null;if(e.skip(62)){if(l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),te.text):n&&this.error(1005,e.range(),";"),vt=this.parseBlockStatement(e,!1),!vt)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let Hi=G.createMethodDeclaration(te,a,l,j,dr,vt,e.range(s,e.pos));return n&&e.skip(71)||e.skip(70),Hi}else if(R)this.error(2390,te.range);else if(Y)this.error(2391,te.range);else{l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(x,g),"abstract"),l&2048&&this.error(1042,e.range(z,D),"get"),l&4096&&this.error(1042,e.range(q,ee),"set");let re=null;if(e.skip(99)&&this.error(219,e.range(s,e.pos)),e.skip(95)&&(l|=16384),e.skip(100)){if(re=this.parseType(e),!re)return null}else this.error(1110,e.range());let H=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),H=this.parseExpression(e),!H)return null;l&16384&&this.error(1263,te.range)}let ue=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,ue);let be=G.createFieldDeclaration(te,a,l,re,H,ue);return n&&e.skip(71)||e.skip(70),be}return null}parseIndexSignature(e,r,n){n&&n.length>0&&this.error(1206,le.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(100)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(67))if(e.skip(100)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):G.createIndexSignature(l,o,r,e.range(s,e.pos)):null}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"]")}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"key");else this.error(1003,e.range());return null}parseNamespace(e,r,n,s){if(e.skipIdentifier()){let a=G.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(62)){let l=new Array,o=G.createNamespaceDeclaration(a,n,r,l,e.range(s,e.pos));for(;!e.skip(63);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==36)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(70),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,r,n){let s=null,a=assert(this.currentSource);if(e.skip(62)){let l=new Array;for(;!e.skip(63);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(116))s=G.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=G.createExportStatement(l,s,n,e.range(r,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new rs(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(70),o}else if(e.skip(84))if(e.skip(23))if(e.skip(116)){s=G.createStringLiteralExpression(e.readString(),e.range());let l=G.createExportStatement(null,s,n,e.range(r,e.pos)),o=assert(l.internalPath),u=e.source,c=u.exportPaths;return c?c.includes(o)||c.push(o):u.exportPaths=[o],this.seenlog.has(o)||(this.dependees.set(o,new rs(a,s)),this.backlog.push(o)),e.skip(70),l}else this.error(1141,e.range());else this.error(1005,e.range(),"from");else this.error(1005,e.range(),"{");return null}parseExportMember(e){if(e.skipIdentifier(2)){let r=G.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=G.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?G.createExportMember(r,n,le.join(r.range,n.range)):G.createExportMember(r,null,r.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,r,n,s){let a=e.readIdentifier(),l=e.range(),o=G.createExportStatement([G.createExportMember(G.createIdentifierExpression(a,l),G.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(r,e.pos));return e.skip(70),o}parseImport(e){let r=e.tokenPos,n=null,s=null,a=!1;if(e.skip(62))for(n=new Array;!e.skip(63);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(84))if(e.skip(1))if(e.skipIdentifier())s=G.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;else return this.error(1005,e.range(),"as"),null;else if(e.skip(115,1)){let l=e.readIdentifier(),o=e.range();if(n=[G.createImportDeclaration(G.createIdentifierExpression("default",o),G.createIdentifierExpression(l,o),o)],e.skip(71))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(116)){let l=G.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=G.createWildcardImportStatement(s,l,e.range(r,e.pos))):o=G.createImportStatement(n,l,e.range(r,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new rs(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(70),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let r=G.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=G.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?G.createImportDeclaration(r,n,le.join(r.range,n.range)):G.createImportDeclaration(r,null,r.range)}else this.error(1003,e.range());return null}parseExportImport(e,r){if(e.skipIdentifier()){let n=G.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(101))if(e.skipIdentifier()){let s=G.createIdentifierExpression(e.readIdentifier(),e.range()),a=G.createExportImportStatement(s,n,e.range(r,e.pos));return e.skip(70),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,r=!1){let n=e.mark(),s=e.next(),a=null;switch(s){case 4:{a=this.parseBreak(e);break}case 8:{a=this.parseVariable(e,8,null,e.tokenPos);break}case 9:{a=this.parseContinue(e);break}case 15:{a=this.parseDoStatement(e);break}case 22:{a=this.parseForStatement(e);break}case 26:{a=this.parseIfStatement(e);break}case 34:{a=this.parseVariable(e,16,null,e.tokenPos);break}case 57:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 62:{a=this.parseBlockStatement(e,r);break}case 46:{r&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 70:return G.createEmptyStatement(e.range(e.tokenPos));case 50:{a=this.parseSwitchStatement(e);break}case 52:{a=this.parseThrowStatement(e);break}case 54:{a=this.parseTryStatement(e);break}case 58:{a=this.parseVoidStatement(e);break}case 59:{a=this.parseWhileStatement(e);break}case 55:if(e.peek(1)==115){a=this.parseTypeDeclaration(e,0,null,e.tokenPos);break}default:{e.reset(n),a=this.parseExpressionStatement(e);break}}return a?e.discard(n):(e.reset(n),this.skipStatement(e)),a}parseBlockStatement(e,r){let n=e.tokenPos,s=new Array;for(;!e.skip(63);){let l=e.mark(),o=this.parseStatement(e,r);if(o)e.discard(l),s.push(o);else{if(e.token==121)return null;e.reset(l),this.skipStatement(e)}}let a=G.createBlockStatement(s,e.range(n,e.pos));return r&&e.skip(70),a}parseBreak(e){let r=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),r=G.createIdentifierExpression(e.readIdentifier(),e.range()));let n=G.createBreakStatement(r,e.range());return e.skip(70),n}parseContinue(e){let r=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),r=G.createIdentifierExpression(e.readIdentifier(),e.range()));let n=G.createContinueStatement(r,e.range());return e.skip(70),n}parseDoStatement(e){let r=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(59))if(e.skip(64)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(65)){let a=G.createDoStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");else this.error(1005,e.range(),"while");return null}parseExpressionStatement(e){let r=this.parseExpression(e);if(!r)return null;let n=G.createExpressionStatement(r);return e.skip(70),n}parseForStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=null;if(e.skip(8))n=this.parseVariable(e,8,null,e.tokenPos,!0);else if(e.skip(34))n=this.parseVariable(e,16,null,e.tokenPos,!0);else if(e.skip(57))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(70)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==39)return n.expression.kind!=7?(this.error(1003,n.range),null):this.parseForOfStatement(e,r,n);if(n.kind==48){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let u=s[a].initializer;u&&this.error(1190,u.range)}return this.parseForOfStatement(e,r,n)}return this.error(1003,n.range),null}if(n.kind==48){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a];o.initializer||(o.flags&8?this.error(1155,o.name.range):o.type||this.error(1110,o.name.range.atEnd))}}}if(e.token==70){let s=null;if(!e.skip(70)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==70){let a=null;if(!e.skip(65)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?G.createForStatement(n,s?s.expression:null,a,l,e.range(r,e.pos)):null}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),"(");return null}parseForOfStatement(e,r,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?G.createForOfStatement(n,s,a,e.range(r,e.pos)):null}parseIfStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:G.createIfStatement(n,s,a,e.range(r,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65))if(e.skip(62)){let s=new Array;for(;!e.skip(63);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=G.createSwitchStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let r=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return G.createSwitchCase(a,n,e.range(r,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return G.createSwitchCase(null,n,e.range(r,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let r=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=G.createThrowStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),s}parseTryStatement(e){let r=e.tokenPos,n;if(e.skip(62)){let s=new Array;for(;!e.skip(63);){if(n=this.parseStatement(e),!n)return null;s.push(n)}let a=null,l=null,o=null;if(e.skip(6)){if(!e.skip(64))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=G.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(65))return this.error(1005,e.range(),")"),null;if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=G.createTryStatement(s,a,l,o,e.range(r,e.pos));return e.skip(70),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,r,n,s){if(e.skipIdentifier()){let a=G.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(72)){if(l=this.parseTypeParameters(e),!l)return null;r|=65536}if(e.skip(101)){e.skip(93);let o=this.parseType(e);if(!o)return null;if(ts(a.text,o))return this.error(2456,a.range,a.text),null;let u=G.createTypeDeclaration(a,n,r,l,o,e.range(s,e.pos));return e.skip(70),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,r){let n=e.tokenPos;assert(e.next()==116);let s=e.readString(),a=G.createModuleDeclaration(s,r,e.range(n,e.pos));return this.currentModuleName=s,e.skip(70),a}parseVoidStatement(e){let r=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=G.createVoidStatement(n,e.range(r,e.pos));return e.skip(70),s}parseWhileStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=G.createWhileStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let r=e.next(1),n=e.tokenPos;switch(r){case 69:case 61:case 95:case 96:case 81:case 82:case 56:case 58:case 14:{let s=this.parseExpression(e,17);return s?G.createUnaryPrefixExpression(r,s,e.range(n,e.pos)):null}case 87:case 88:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 7:case 13:case 22:break;default:this.error(2357,s.range)}return G.createUnaryPrefixExpression(r,s,e.range(n,e.pos))}case 37:{if(!e.skipIdentifier())return this.error(1003,e.range()),null;let s=this.parseTypeName(e);if(!s)return null;let a=null,l=null;if(e.skip(64)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return G.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return G.createNullExpression(e.range());case 53:return G.createTrueExpression(e.range());case 20:return G.createFalseExpression(e.range());case 51:return G.createThisExpression(e.range());case 10:return G.createConstructorExpression(e.range());case 64:{if(e.skip(65))return this.parseFunctionExpressionCommon(e,G.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 69:return e.reset(s),this.parseFunctionExpression(e);case 115:{switch(e.readIdentifier(),e.next()){case 65:{if(e.skip(100)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(80)){a=!1;break}}case 100:return e.reset(s),this.parseFunctionExpression(e);case 99:{if(e.skip(100)||e.skip(71)||e.skip(65))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 71:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(65)?(l=G.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 66:{let s=new Array;for(;!e.skip(67);){let a;if(e.peek()==71)a=G.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(71)){if(e.skip(67))break;return this.error(1005,e.range(),"]"),null}}return G.createArrayLiteralExpression(s,e.range(n,e.pos))}case 62:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(63);){if(e.skipIdentifier())o=G.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(116))return this.error(1003,e.range()),null;o=G.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(100)){let u=this.parseExpression(e,2);if(!u)return null;l.push(u)}else if(!o.isQuoted)l.push(o);else return this.error(1005,e.range(),":"),null;if(!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}return G.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 72:{let s=this.parseType(e);if(!s)return null;if(!e.skip(73))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?G.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 115:{let s=e.readIdentifier();if(s=="null")return G.createNullExpression(e.range());let a=G.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(119)?this.parseTemplateLiteral(e,a):e.peek()==80&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,G.createEmptyIdentifierExpression(e.range(n)),[G.createParameter(0,a,G.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 49:{e.peek()!=68&&e.nextToken!=64&&this.error(1034,e.range());let s=G.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 116:return G.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 119:return this.parseTemplateLiteral(e);case 117:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),G.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 118:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),G.createFloatLiteralExpression(s,e.range(n,e.pos))}case 85:{let s=e.readRegexpPattern();return e.skip(85)?G.createRegexpLiteralExpression(s,e.readRegexpFlags(),e.range(n,e.pos)):(this.error(1005,e.range(),"/"),null)}case 24:{let s=this.parseFunctionExpression(e);return s?this.maybeParseCallExpression(e,s):null}case 7:return this.parseClassExpression(e);default:return r==121?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let r=e.mark();if(!e.skip(72))return null;let n=e.tokenPos,s=null;do{if(e.peek()==73)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(r),null;s?s.push(a):s=[a]}while(e.skip(71));if(e.skip(73)){let a=e.pos;if(e.skip(64))return s||this.error(1099,e.range(n,a)),s}return e.reset(r),null}parseArguments(e){let r=new Array;for(;!e.skip(65);){let n=this.parseExpression(e,2);if(!n)return null;if(r.push(n),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return r}parseExpression(e,r=1){assert(r!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=n1(e.peek()))>=r;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=G.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=G.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 95:{n=G.createAssertionExpression(2,n,null,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 30:{let o=this.parseType(e);if(!o)return null;n=G.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 66:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(67))return this.error(1005,e.range(),"]"),null;n=G.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 87:case 88:{n.kind!=7&&n.kind!=13&&n.kind!=22&&this.error(2357,n.range),n=G.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 99:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(100))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,r>1?2:1);if(!u)return null;n=G.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 71:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(71));n=G.createCommaExpression(o,e.range(s,e.pos));break}case 68:{if(e.skipIdentifier(2)){let o=G.createIdentifierExpression(e.readIdentifier(),e.range());n=G.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==10){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(119)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:case 83:{let o=this.parseExpression(e,a);if(!o)return null;n=G.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 72:case 73:case 74:case 75:case 76:case 78:case 79:case 77:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 93:case 94:case 97:case 98:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=G.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,r=null){let n=r?r.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,r!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd));e.readingTemplateString;){let o=this.parseExpression(e);if(!o)return null;if(l.push(o),!e.skip(63))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,r!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return G.createTemplateLiteralExpression(r,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,r,n,s){let a=s.expression;switch(a.kind){case 7:{s.expression=G.createPropertyAccessExpression(n,a,e.range(r,e.pos));break}case 10:{let l=this.joinPropertyCall(e,r,n,a);if(!l)return null;s.expression=l,s.range=e.range(r,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,r,n=!1){let s=null;for(;e.skip(64)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;r=G.createCallExpression(r,s,a,e.range(r.range.start,e.pos)),n=!1}return r}checkASI(e){let r=e.peek();r==121||r==63||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let r=e.peek();if(r==121||r==70){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 115:{e.readIdentifier();break}case 116:case 119:{e.readString();break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 62:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let r=1,n=!0;do switch(e.next()){case 121:{this.error(1005,e.range(),"}"),n=!1;break}case 62:{++r;break}case 63:{--r,r||(n=!1);break}case 115:{e.readIdentifier();break}case 116:{e.readString();break}case 119:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},bg=(R=>(R[R.None=0]="None",R[R.Comma=1]="Comma",R[R.Spread=2]="Spread",R[R.Yield=3]="Yield",R[R.Assignment=4]="Assignment",R[R.Conditional=5]="Conditional",R[R.LogicalOr=6]="LogicalOr",R[R.LogicalAnd=7]="LogicalAnd",R[R.BitwiseOr=8]="BitwiseOr",R[R.BitwiseXor=9]="BitwiseXor",R[R.BitwiseAnd=10]="BitwiseAnd",R[R.Equality=11]="Equality",R[R.Relational=12]="Relational",R[R.Shift=13]="Shift",R[R.Additive=14]="Additive",R[R.Multiplicative=15]="Multiplicative",R[R.Exponentiated=16]="Exponentiated",R[R.UnaryPrefix=17]="UnaryPrefix",R[R.UnaryPostfix=18]="UnaryPostfix",R[R.Call=19]="Call",R[R.MemberAccess=20]="MemberAccess",R[R.Grouping=21]="Grouping",R))(bg||{});function n1(t){switch(t){case 71:return 1;case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:return 4;case 99:return 5;case 98:return 6;case 97:return 7;case 93:return 8;case 94:return 9;case 92:return 10;case 76:case 77:case 78:case 79:return 11;case 1:case 29:case 30:case 72:case 73:case 74:case 75:return 12;case 89:case 90:case 91:return 13;case 81:case 82:return 14;case 84:case 85:case 86:return 15;case 83:return 16;case 87:case 88:return 18;case 68:case 66:case 95:return 20}return 0}function ts(t,i){switch(i.kind){case 1:{if(i.name.identifier.text==t)return!0;let e=i.typeArguments;if(e){for(let r=0,n=e.length;r<n;r++)if(ts(t,e[r]))return!0}break}case 2:{let e=i;if(ts(t,e.returnType))return!0;let r=e.parameters;for(let n=0,s=r.length;n<s;n++)if(ts(t,r[n].type))return!0;break}case 3:{let e=i.elements;for(let r=0,n=e.length;r<n;r++)if(ts(t,e[r]))return!0;break}default:assert(!1)}return!1}var xg=16,Ci=xg-1,Jl=class{constructor(i,e,r,n,s){this.localFile=i;this.localIdentifier=e;this.foreignIdentifier=r;this.foreignPath=n;this.foreignPathAlt=s}},Zl=class{constructor(i,e,r,n){this.localIdentifier=i;this.foreignIdentifier=e;this.foreignPath=r;this.foreignPathAlt=n}},cc=class{constructor(i,e,r){this.foreignPath=i;this.foreignPathAlt=e;this.pathLiteral=r}},Re=(j=>(j[j.Invalid=0]="Invalid",j[j.IndexedGet=1]="IndexedGet",j[j.IndexedSet=2]="IndexedSet",j[j.UncheckedIndexedGet=3]="UncheckedIndexedGet",j[j.UncheckedIndexedSet=4]="UncheckedIndexedSet",j[j.Add=5]="Add",j[j.Sub=6]="Sub",j[j.Mul=7]="Mul",j[j.Div=8]="Div",j[j.Rem=9]="Rem",j[j.Pow=10]="Pow",j[j.BitwiseAnd=11]="BitwiseAnd",j[j.BitwiseOr=12]="BitwiseOr",j[j.BitwiseXor=13]="BitwiseXor",j[j.BitwiseShl=14]="BitwiseShl",j[j.BitwiseShr=15]="BitwiseShr",j[j.BitwiseShrU=16]="BitwiseShrU",j[j.Eq=17]="Eq",j[j.Ne=18]="Ne",j[j.Gt=19]="Gt",j[j.Ge=20]="Ge",j[j.Lt=21]="Lt",j[j.Le=22]="Le",j[j.Plus=23]="Plus",j[j.Minus=24]="Minus",j[j.Not=25]="Not",j[j.BitwiseNot=26]="BitwiseNot",j[j.PrefixInc=27]="PrefixInc",j[j.PrefixDec=28]="PrefixDec",j[j.PostfixInc=29]="PostfixInc",j[j.PostfixDec=30]="PostfixDec",j))(Re||{});(n=>{function t(s,a){switch(assert(a.length),s){case 2:case 3:{switch(a.charCodeAt(0)){case 91:{if(a=="[]")return 1;if(a=="[]=")return 2;break}case 123:{if(a=="{}")return 3;if(a=="{}=")return 4;break}case 43:{if(a=="+")return 5;break}case 45:{if(a=="-")return 6;break}case 42:{if(a=="*")return 7;if(a=="**")return 10;break}case 47:{if(a=="/")return 8;break}case 37:{if(a=="%")return 9;break}case 38:{if(a=="&")return 11;break}case 124:{if(a=="|")return 12;break}case 94:{if(a=="^")return 13;break}case 61:{if(a=="==")return 17;break}case 33:{if(a=="!=")return 18;break}case 62:{if(a==">")return 19;if(a==">=")return 20;if(a==">>")return 15;if(a==">>>")return 16;break}case 60:{if(a=="<")return 21;if(a=="<=")return 22;if(a=="<<")return 14;break}}break}case 4:{switch(a.charCodeAt(0)){case 43:{if(a=="+")return 23;if(a=="++")return 27;break}case 45:{if(a=="-")return 24;if(a=="--")return 28;break}case 33:{if(a=="!")return 25;break}case 126:{if(a=="~")return 26;break}}break}case 5:{switch(a.charCodeAt(0)){case 43:{if(a=="++")return 29;break}case 45:{if(a=="--")return 30;break}}break}}return 0}n.fromDecorator=t;function i(s){switch(s){case 81:case 102:return 5;case 82:case 103:return 6;case 84:case 104:return 7;case 85:case 106:return 8;case 86:case 107:return 9;case 83:case 105:return 10;case 92:case 111:return 11;case 93:case 112:return 12;case 94:case 113:return 13;case 89:case 108:return 14;case 90:case 109:return 15;case 91:case 110:return 16;case 76:case 78:return 17;case 77:case 79:return 18;case 73:return 19;case 75:return 20;case 72:return 21;case 74:return 22}return 0}n.fromBinaryToken=i;function e(s){switch(s){case 81:return 23;case 82:return 24;case 95:return 25;case 96:return 26;case 87:return 27;case 88:return 28}return 0}n.fromUnaryPrefixToken=e;function r(s){switch(s){case 87:return 29;case 88:return 30}return 0}n.fromUnaryPostfixToken=r})(Re||={});var ns=class extends We{constructor(e,r=null){super(r);this.options=e;this.sources=[];this.diagnosticsOffset=0;this.nextClassId=0;this.nextSignatureId=0;this.initialized=!1;this.filesByName=new Map;this.elementsByName=new Map;this.elementsByDeclaration=new Map;this.instancesByName=new Map;this.mainFunction=null;this.wrapperClasses=new Map;this.managedClasses=new Map;this.uniqueSignatures=new Map;this.moduleImports=new Map;this._arrayBufferViewInstance=null;this._arrayBufferInstance=null;this._arrayPrototype=null;this._staticArrayPrototype=null;this._setPrototype=null;this._mapPrototype=null;this._functionPrototype=null;this._int8ArrayPrototype=null;this._int16ArrayPrototype=null;this._int32ArrayPrototype=null;this._int64ArrayPrototype=null;this._uint8ArrayPrototype=null;this._uint8ClampedArrayPrototype=null;this._uint16ArrayPrototype=null;this._uint32ArrayPrototype=null;this._uint64ArrayPrototype=null;this._float32ArrayPrototype=null;this._float64ArrayPrototype=null;this._stringInstance=null;this._errorInstance=null;this._regexpInstance=null;this._objectPrototype=null;this._objectInstance=null;this._templateStringsArrayInstance=null;this._allocInstance=null;this._reallocInstance=null;this._freeInstance=null;this._newInstance=null;this._renewInstance=null;this._linkInstance=null;this._collectInstance=null;this._visitInstance=null;this._newBufferInstance=null;this._newArrayInstance=null;this._BLOCKInstance=null;this._OBJECTInstance=null;this.nativeDummySignature=null;this.module=Gt.create(e.stackSize>0,e.sizeTypeRef),this.parser=new is(this.diagnostics,this.sources),this.resolver=new Jn(this);let n=new ls(this,fe.native);this.nativeFile=n,this.filesByName.set(n.internalName,n),this.parser.options=this.options}get arrayBufferViewInstance(){let e=this._arrayBufferViewInstance;return e||(this._arrayBufferViewInstance=e=this.requireClass(C.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(C.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(C.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(C.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(C.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(C.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(C.Function,6)),e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(C.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(C.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(C.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(C.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(C.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(C.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(C.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(C.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(C.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(C.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(C.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(C.String)),e}get errorInstance(){let e=this._errorInstance;return e||(this._errorInstance=e=this.requireClass(C.Error)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(C.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(C.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(C.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(C.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(C.abort);return!e||e.kind!=4?null:this.resolver.resolveFunction(e,null)}get allocInstance(){let e=this._allocInstance;return e||(this._allocInstance=e=this.requireFunction(C.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(C.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(C.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(C.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(C.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(C.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(C.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(C.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(C.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(C.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(C.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(C.OBJECT)),e}getSource(e){let r=this.sources;for(let n=0;n<r.length;++n){let s=r[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+Ci&~Ci}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let r=Jp(e);if(r){let n=this.instancesByName;if(n.has(r)){let s=assert(n.get(r));if(s.kind==5)return s}}return null}computeBlockStart(e){let r=this.blockOverhead;return(e+r+Ci&~Ci)-r}computeBlockStart64(e){let r=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,r),xg),r)}computeBlockSize(e,r){r&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+Ci&~Ci)-s;n<a&&(n=a);let l=1<<30;if(n>=l||(n&3)!=0)throw new Error("invalid block size");return n}makeNativeVariableDeclaration(e,r=0){let n=fe.native.range;return G.createVariableDeclaration(G.createIdentifierExpression(e,n),null,r,null,null,n)}makeNativeTypeDeclaration(e,r=0){let n=fe.native.range,s=G.createIdentifierExpression(e,n);return G.createTypeDeclaration(s,null,r,null,G.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,r=0){let n=fe.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=G.createFunctionType([],G.createNamedType(G.createSimpleTypeName(C.void_,n),null,!1,n),null,!1,n)),G.createFunctionDeclaration(G.createIdentifierExpression(e,n),null,r,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,r=0){let n=fe.native.range;return G.createNamespaceDeclaration(G.createIdentifierExpression(e,n),null,r,[],n)}makeNativeFunction(e,r,n=this.nativeFile,s=0,a=0){return new gt(e,new Xe(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,r)}getElementByDeclaration(e){let r=this.elementsByDeclaration;return r.has(e)?assert(r.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(C.i8,p.i8),this.registerNativeType(C.i16,p.i16),this.registerNativeType(C.i32,p.i32),this.registerNativeType(C.i64,p.i64),this.registerNativeType(C.isize,e.isizeType),this.registerNativeType(C.u8,p.u8),this.registerNativeType(C.u16,p.u16),this.registerNativeType(C.u32,p.u32),this.registerNativeType(C.u64,p.u64),this.registerNativeType(C.usize,e.usizeType),this.registerNativeType(C.bool,p.bool),this.registerNativeType(C.f32,p.f32),this.registerNativeType(C.f64,p.f64),this.registerNativeType(C.void_,p.void),this.registerNativeType(C.number,p.f64),this.registerNativeType(C.boolean,p.bool),this.nativeFile.add(C.native,new $e(C.native,this.nativeFile,this.makeNativeTypeDeclaration(C.native,65538),512)),this.nativeFile.add(C.indexof,new $e(C.indexof,this.nativeFile,this.makeNativeTypeDeclaration(C.indexof,65538),512)),this.nativeFile.add(C.valueof,new $e(C.valueof,this.nativeFile,this.makeNativeTypeDeclaration(C.valueof,65538),512)),this.nativeFile.add(C.returnof,new $e(C.returnof,this.nativeFile,this.makeNativeTypeDeclaration(C.returnof,65538),512)),this.nativeFile.add(C.nonnull,new $e(C.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(C.nonnull,65538),512)),this.registerNativeType(C.v128,p.v128),this.registerNativeType(C.ref_func,p.func),this.registerNativeType(C.ref_extern,p.extern),this.registerNativeType(C.ref_any,p.any),this.registerNativeType(C.ref_eq,p.eq),this.registerNativeType(C.ref_struct,p.struct),this.registerNativeType(C.ref_array,p.array),this.registerNativeType(C.ref_i31,p.i31),this.registerNativeType(C.ref_string,p.string),this.registerNativeType(C.ref_stringview_wtf8,p.stringview_wtf8),this.registerNativeType(C.ref_stringview_wtf16,p.stringview_wtf16),this.registerNativeType(C.ref_stringview_iter,p.stringview_iter),this.registerConstantInteger(C.ASC_TARGET,p.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(C.ASC_RUNTIME,p.i32,i64_new(e.runtime)),this.registerConstantInteger(C.ASC_NO_ASSERT,p.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(C.ASC_MEMORY_BASE,p.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(C.ASC_TABLE_BASE,p.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(C.ASC_OPTIMIZE_LEVEL,p.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(C.ASC_SHRINK_LEVEL,p.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(C.ASC_LOW_MEMORY_LIMIT,p.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(C.ASC_EXPORT_RUNTIME,p.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(C.ASC_VERSION_MAJOR,p.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(C.ASC_VERSION_MINOR,p.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(C.ASC_VERSION_PATCH,p.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(C.ASC_FEATURE_SIGN_EXTENSION,p.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_MUTABLE_GLOBALS,p.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_NONTRAPPING_F2I,p.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_BULK_MEMORY,p.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_SIMD,p.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_THREADS,p.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_EXCEPTION_HANDLING,p.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_TAIL_CALLS,p.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_REFERENCE_TYPES,p.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_MULTI_VALUE,p.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_GC,p.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_MEMORY64,p.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_RELAXED_SIMD,p.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_EXTENDED_CONST,p.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_STRINGREF,p.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_SHARED_EVERYTHING,p.bool,i64_new(e.hasFeature(32768)?1:0,0)),this.registerConstantInteger(C.ASC_FEATURE_CLOSURES,p.bool,i64_new(e.hasFeature(65536)?1:0,0));let r=new Array,n=new Map,s=new Map,a=new Array,l=new Array;for(let u=0,c=this.sources.length;u<c;++u){let f=this.sources[u],_=new ls(this,f);this.filesByName.set(_.internalName,_);let h=f.statements;for(let m=0,x=h.length;m<x;++m){let g=h[m];switch(g.kind){case 36:{this.initializeExports(g,_,n,s);break}case 37:{this.initializeExportDefault(g,_,a,l);break}case 43:{this.initializeImports(g,_,r,n);break}case 48:{this.initializeVariables(g,_);break}case 52:{this.initializeClass(g,_,a,l);break}case 53:{this.initializeEnum(g,_);break}case 56:{this.initializeFunction(g,_);break}case 58:{this.initializeInterface(g,_,a);break}case 60:{this.initializeNamespace(g,_,a,l);break}case 61:{this.initializeTypeDefinition(g,_);break}}}}for(let u=Map_keys(s),c=0,f=u.length;c<f;++c){let _=u[c],h=assert(s.get(_));for(let m=0,x=h.length;m<x;++m){let g=unchecked(h[m]),T=this.lookupForeignFile(g.foreignPath,g.foreignPathAlt);if(!T){this.error(6054,g.pathLiteral.range,g.pathLiteral.value);continue}_.ensureExportStar(T)}}do{let u=0,c=!1;for(;u<r.length;){let f=r[u],_=f.localIdentifier,h=f.foreignIdentifier,m=assert(this.lookupForeignFile(f.foreignPath,f.foreignPathAlt));if(h){let x=this.lookupForeign(h.text,m,n);x?(f.localFile.add(_.text,x,_),r.splice(u,1),c=!0):++u}else{let x=f.localFile,g=_.text;x.add(g,m.asAliasNamespace(g,x,_),_),r.splice(u,1),c=!0}}if(!c){for(let f=0,_=r.length;f<_;++f){let h=r[f],m=h.foreignIdentifier;m&&this.error(2305,m.range,h.foreignPath,m.text)}break}}while(!0);for(let u=Map_keys(n),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]),h=assert(n.get(_));for(let m=Map_keys(h),x=0,g=m.length;x<g;++x){let T=unchecked(m[x]),I=assert(h.get(T)),E=I.localIdentifier.text,k=I.foreignPath;if(k){let F=assert(this.lookupForeignFile(k,assert(I.foreignPathAlt))),R=this.lookupForeign(E,F,n);R?_.ensureExport(T,R):this.error(2305,I.localIdentifier.range,k,E)}else{let F=_.getMember(E);if(F)_.ensureExport(T,F);else{let R=this.lookup(E);R&&as(R.kind)?_.ensureExport(T,R):this.error(2305,I.foreignIdentifier.range,_.internalName,I.foreignIdentifier.text)}}}}assert(this.objectInstance.id==0),assert(this.arrayBufferInstance.id==1),assert(this.stringInstance.id==2),assert(this.arrayBufferViewInstance.id==3),this.registerWrapperClass(p.i8,C.I8),this.registerWrapperClass(p.i16,C.I16),this.registerWrapperClass(p.i32,C.I32),this.registerWrapperClass(p.i64,C.I64),this.registerWrapperClass(e.isizeType,C.Isize),this.registerWrapperClass(p.u8,C.U8),this.registerWrapperClass(p.u16,C.U16),this.registerWrapperClass(p.u32,C.U32),this.registerWrapperClass(p.u64,C.U64),this.registerWrapperClass(e.usizeType,C.Usize),this.registerWrapperClass(p.bool,C.Bool),this.registerWrapperClass(p.f32,C.F32),this.registerWrapperClass(p.f64,C.F64),e.hasFeature(16)&&this.registerWrapperClass(p.v128,C.V128),e.hasFeature(256)&&(this.registerWrapperClass(p.func,C.RefFunc),this.registerWrapperClass(p.extern,C.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(p.any,C.RefAny),this.registerWrapperClass(p.eq,C.RefEq),this.registerWrapperClass(p.struct,C.RefStruct),this.registerWrapperClass(p.array,C.RefArray),this.registerWrapperClass(p.i31,C.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(p.string,C.RefString));let o=this.resolver;for(let u=0,c=a.length;u<c;++u){let f=a[u],_=assert(f.extendsNode),h=o.resolveTypeName(_.name,null,f.parent);if(h){if(f.kind==6)if(h.kind==6){let m=h;m.hasDecorator(32)&&this.error(211,_.range,m.identifierNode.text),m.hasDecorator(16)!=f.hasDecorator(16)&&this.error(207,le.join(f.identifierNode.range,_.range)),f.extends(m)?this.error(2506,m.identifierNode.range,m.identifierNode.text):f.basePrototype=m}else this.error(1311,_.range);else if(f.kind==8)if(h.kind==8){let m=h;f.extends(m)?this.error(2506,m.identifierNode.range,m.identifierNode.text):f.basePrototype=m}else this.error(2312,_.range)}}for(let u=0,c=a.length;u<c;u++){let f=a[u],_=f.instanceMembers;if(_){let h=Map_values(_);for(let m=0,x=h.length;m<x;m++){let g=h[m],T=g.declaration;if(T.is(8192)){let I=f.basePrototype,E=!1;for(;I;){let k=I.instanceMembers;if(k&&k.has(g.name)){E=!0;break}I=I.basePrototype}if(!E){let k=assert(f.basePrototype);this.error(4117,T.name.range,k.name)}}}}}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=assert(f.implementsNodes);for(let h=0,m=_.length;h<m;++h){let x=_[h],g=o.resolveTypeName(x.name,null,f.parent);if(g)if(g.kind==8){let T=g,I=f.interfacePrototypes;I||(f.interfacePrototypes=I=new Array),I.push(T)}else this.error(2422,x.range)}}for(let u=0,c=a.length;u<c;++u){let f=a[u],_=f.basePrototype;_&&this.processOverrides(f,_)}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=f.basePrototype,h=f.interfacePrototypes;if(_&&this.processOverrides(f,_),h)for(let m=0,x=h.length;m<x;++m)this.processOverrides(f,h[m])}{let u=e.globalAliases;u||(u=new Map),u.has(C.abort)||u.set(C.abort,d.abort),u.has(C.trace)||u.set(C.trace,d.trace),u.has(C.seed)||u.set(C.seed,d.seed),u.has(C.Math)||u.set(C.Math,C.NativeMath),u.has(C.Mathf)||u.set(C.Mathf,C.NativeMathf);for(let c=Map_keys(u),f=0,_=c.length;f<_;++f){let h=unchecked(c[f]),m=changetype(u.get(h));if(assert(m!=null),!m.length){this.elementsByName.delete(h);continue}let x=m.charCodeAt(0);if(x>=48&&x<=57)this.registerConstantInteger(h,p.i32,i64_new(parseInt(m,10)));else{let g=this.elementsByName;g.has(m)?g.set(h,assert(g.get(m))):this.error(111,null,m)}}}for(let u=Map_values(this.filesByName),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]);_.source.sourceKind==1&&this.markModuleExports(_)}}processOverrides(e,r){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=r.instanceMembers;if(l)for(let c=0,f=s.length;c<f;++c){let _=s[c];if(l.has(_.name)){let h=assert(l.get(_.name));this.doProcessOverride(e,_,r,h)}}let o=r.interfacePrototypes;if(o)for(let c=0,f=o.length;c<f;++c){let _=o[c];_!=r&&this.processOverrides(e,_)}let u=r.basePrototype;if(!u||(a||(a=new Set),a.add(r),a.has(u)))break;r=u}while(!0)}}doProcessOverride(e,r,n,s){if(!r.isAny(524800))if(r.kind==4&&s.kind==4){let a=r,l=s,o=a.is(65536),u=l.is(65536);if(o!=u){this.errorRelated(242,a.identifierNode.range,l.identifierNode.range,a.name);return}a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),s.set(268435456);let c=l.unboundOverrides;c||(l.unboundOverrides=c=new Set),c.add(r);let f=l.instances;if(f)for(let _=Map_values(f),h=0,m=_.length;h<m;++h)_[h].set(268435456)}else if(r.kind==10&&s.kind==10){let a=r,l=s;if(a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),l.parent.kind!=8){let c=a.isField;if(c!=l.isField){c?this.errorRelated(2610,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName):this.errorRelated(2611,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName);return}else if(c)return}l.set(268435456);let o=l.getterPrototype;if(o){o.set(268435456);let c=a.getterPrototype;if(c){let _=o.unboundOverrides;_||(o.unboundOverrides=_=new Set),_.add(c)}let f=o.instances;if(f)for(let _=Map_values(f),h=0,m=_.length;h<m;++h)_[h].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let c=a.setterPrototype;if(c){let _=u.unboundOverrides;_||(u.unboundOverrides=_=new Set),_.add(c)}let f=u.instances;if(f)for(let _=Map_values(f),h=0,m=_.length;h<m;++h)_[h].set(268435456)}}else this.errorRelated(2416,r.identifierNode.range,s.identifierNode.range,r.name,e.internalName,n.internalName)}lookup(e){let r=this.elementsByName;return r.has(e)?assert(r.get(e)):null}require(e,r){let n=this.lookup(e);if(!n)throw this.error(111,null,e),new Error(`Missing standard library component: ${e}`);if(n.kind!=r)throw this.error(111,null,e),new Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let r=this.require(e,6),n=this.resolver.resolveClass(r,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,r=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,r);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let r=e.exports;if(r)for(let s=Map_values(r),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.markModuleExports(n[s])}markModuleExport(e){switch(e.set(1048576),e.kind){case 6:{let n=e.instanceMembers;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}break}case 10:{let n=e,s=n.getterPrototype;s&&this.markModuleExport(s);let a=n.setterPrototype;a&&this.markModuleExport(a);break}case 11:case 5:case 7:assert(!1)}let r=e.members;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,r,n){n.set(2097152);let s=this.moduleImports,a;s.has(e)?a=assert(s.get(e)):(a=new Map,s.set(e,a)),a.set(r,n)}registerNativeType(e,r){let n=new $e(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(r),this.nativeFile.add(e,n)}registerWrapperClass(e,r){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(r));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,r,n){assert(r.isIntegerInclReference);let s=new Cr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,r),this.nativeFile.add(e,s)}registerConstantFloat(e,r,n){assert(r.isFloatValue);let s=new Cr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,r),this.nativeFile.add(e,s)}ensureGlobal(e,r){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=r){let a=dc(s,r);if(!a)return as(s.kind)?this.errorRelated(2300,r.identifierNode.range,s.declaration.name.range,e):this.error(2300,r.identifierNode.range,e),r;r=a}}return n.set(e,r),r}lookupForeignFile(e,r){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(r)?assert(n.get(r)):null}lookupForeign(e,r,n){do{let a=r.lookupExport(e);if(a)return a;if(n.has(r)){let l=assert(n.get(r));if(l.has(e)){let o=assert(l.get(e)),u=o.foreignPath;if(u){let c=this.lookupForeignFile(u,assert(o.foreignPathAlt));if(!c)return null;e=o.localIdentifier.text,r=c;continue}if(a=r.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=r.exportsStar;if(s)for(let a=0,l=s.length;a<l;++a){let o=this.lookupForeign(e,s[a],n);if(o)return o}return null}checkDecorators(e,r){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Ye.fromNode(l.name),u=nr.fromKind(o);u&&(r&u?n&u?this.error(213,l.range):n|=u:this.error(212,l.range,l.name.range.toString()))}return n}checkFeatureEnabled(e,r){return this.options.hasFeature(e)?!0:(this.error(103,r.range,li(e)),!1)}checkTypeSupported(e,r){switch(e.kind){case 13:return this.checkFeatureEnabled(16,r);case 15:case 14:return e.is(512)?this.checkFeatureEnabled(256,r):this.checkFeatureEnabled(1024,r);case 16:case 17:case 18:case 19:case 20:return this.checkFeatureEnabled(256,r)&&this.checkFeatureEnabled(1024,r);case 21:case 22:case 23:case 24:return this.checkFeatureEnabled(256,r)&&this.checkFeatureEnabled(16384,r)}let n=e.getClass();if(n)do{let s=n.typeArguments;if(s){for(let a=0,l=s.length;a<l;++a)if(!this.checkTypeSupported(s[a],r))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,r))return!1;let l=s.parameterTypes;for(let u=0,c=l.length;u<c;++u)if(!this.checkTypeSupported(l[u],r))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,r))return!1}}return!0}initializeClass(e,r,n,s){let a=e.name.text,l=new us(a,r,e,this.checkDecorators(e.decorators,368689));if(!r.add(a,l))return null;let o=e.implementsTypes;if(o){let c=o.length;c&&(l.hasDecorator(16)?this.error(208,le.join(e.name.range,o[c-1].range)):s.push(l))}e.extendsType?n.push(l):!l.hasDecorator(16)&&l.internalName!=d.Object&&(l.implicitlyExtendsObject=!0);let u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 55:{this.initializeField(_,l);break}case 59:{let h=_;if(h.is(128)&&h.is(65536)&&this.error(241,h.name.range,h.name.text),_.isAny(6144))this.initializeProperty(h,l);else{let m=this.initializeMethod(h,l);m&&h.name.kind==27&&(l.constructorPrototype=m)}break}case 66:break;default:assert(!1)}}return l}initializeField(e,r){let n=e.name.text,s=e.decorators,a,l=2048;if(l|=524288,r.is(32768)&&(l|=128),e.is(32)){if(assert(r.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new Cr(n,r,this.checkDecorators(s,l),e),!r.add(n,a))return}else if(assert(!e.isAny(6272)),a=Pi.forField(n,r,e,this.checkDecorators(s,l)),!r.addInstance(n,a))return}initializeMethod(e,r){let n=e.name.text,s=e.is(32),a=2112;e.is(65536)||(a|=147470),r.is(32768)&&(a|=128),e.range.source.isLibrary&&(a|=512);let l=new Xe(n,r,e,this.checkDecorators(e.decorators,a));if(l.hasDecorator(512)&&!b.has(l.internalName)&&this.error(100,e.range,`Builtin '${l.internalName}'`),s){if(assert(e.name.kind!=27),!r.add(n,l))return null}else if(!r.addInstance(n,l))return null;return this.checkOperatorOverloads(e.decorators,l,r),l}checkOperatorOverloads(e,r,n){if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s];switch(l.decoratorKind){case 2:case 3:case 4:case 5:{let o=l.args,u=o?o.length:0;if(u==1){let c=l.args[0];if(c.isLiteralKind(2)){let f=c.value,_=Re.fromDecorator(l.decoratorKind,f);if(_==0)this.error(224,c.range,f);else{let h=n.operatorOverloadPrototypes;h.has(_)?this.error(2393,c.range):(r.operatorKind=_,h.set(_,r))}}else this.error(1141,c.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,r){let n=e.name.text;if(e.is(32)){let s=r.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Pi(n,r,e);return r.add(n,a)?a:null}}else{let s=r.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Pi(n,r,e);return r.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,r){let n=this.ensureProperty(e,r);if(!n)return;let s=e.name.text,a=e.is(2048);if(a){if(n.getterPrototype){this.error(2718,e.name.range,s);return}}else if(n.setterPrototype){this.error(2718,e.name.range,s);return}let l=new Xe((a?ua:pa)+s,n.parent,e,this.checkDecorators(e.decorators,2112));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,r){let n=e.name.text,s=new Yl(n,r,e,this.checkDecorators(e.decorators,1089));if(!r.add(n,s))return null;let a=e.values;for(let l=0,o=a.length;l<o;++l)this.initializeEnumValue(a[l],s);return s}initializeEnumValue(e,r){let n=e.name.text,s=new $l(n,r,e,this.checkDecorators(e.decorators,0));r.add(n,s)}initializeExports(e,r,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],r,e.internalPath,n);else{let l;s.has(r)?l=assert(s.get(r)):s.set(r,l=[]);let o=e.internalPath;l.push(new cc(o,o.endsWith(Ge)?o.substring(0,o.length-Ge.length):o+Ge,assert(e.path)))}}initializeExport(e,r,n,s){let a=e.localName.text,l=e.exportedName.text,o=r.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=r.getMember(a))r.ensureExport(l,o);else{let u;s.has(r)?u=assert(s.get(r)):s.set(r,u=new Map),u.set(l,new Zl(e.localName,e.exportedName,null,null))}else{let u;s.has(r)?u=assert(s.get(r)):s.set(r,u=new Map),u.set(l,new Zl(e.localName,e.exportedName,n,n.endsWith(Ge)?n.substring(0,n.length-Ge.length):n+Ge))}}initializeExportDefault(e,r,n,s){let a=e.declaration,l=null;switch(a.kind){case 53:{l=this.initializeEnum(a,r);break}case 56:{l=this.initializeFunction(a,r);break}case 52:{l=this.initializeClass(a,r,n,s);break}case 58:{l=this.initializeInterface(a,r,n);break}case 60:{l=this.initializeNamespace(a,r,n,s);break}default:assert(!1)}if(l){let o=r.exports;if(!o)r.exports=o=new Map;else if(o.has("default")){let u=assert(o.get("default"));this.errorRelated(2300,a.name.range,u.declaration.name.range,"default");return}o.set("default",l)}}initializeImports(e,r,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],r,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new Jl(r,l,null,e.internalPath,e.internalPath+Ge))}}initializeImport(e,r,n,s,a){let l=n.endsWith(Ge)?n.substring(0,n.length-Ge.length):n+Ge,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){r.add(e.name.text,u,e.name);return}}s.push(new Jl(r,e.name,e.foreignName,n,l))}initializeFunction(e,r){let n=e.name.text,s=2048;s|=1048576,e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||r.kind!=6&&(s|=1,e.is(65536)||(s|=4096)),e.is(65536)||(s|=16384),e.range.source.isLibrary&&(s|=512);let a=new Xe(n,r,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!b.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),a.hasDecorator(4096)&&(this.mainFunction?this.error(213,e.range):this.mainFunction=a),r.add(n,a)?a:null}initializeInterface(e,r,n){let s=e.name.text,a=new eo(s,r,e,this.checkDecorators(e.decorators,1));if(!r.add(s,a))return null;e.extendsType&&n.push(a);let l=e.members;for(let o=0,u=l.length;o<u;++o){let c=l[o];switch(c.kind){case 55:{this.initializeFieldAsProperty(c,a);break}case 59:{let f=c;f.is(65536)&&this.error(241,f.name.range,f.name.text),c.isAny(6144)?this.initializeProperty(f,a):this.initializeMethod(f,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,r){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=G.createOmittedType(e.name.range.atEnd)),this.initializeProperty(G.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,G.createFunctionType([],s,null,!1,e.range),null,e.range),r),e.is(64)||this.initializeProperty(G.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,G.createFunctionType([G.createParameter(0,e.name,s,null,e.name.range)],G.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),r)}initializeNamespace(e,r,n,s){let a=e.name.text,l=new os(a,r,e,this.checkDecorators(e.decorators,1));if(!r.add(a,l))return null;let o=assert(r.getMember(a)),u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 52:{this.initializeClass(_,l,n,s);break}case 53:{this.initializeEnum(_,l);break}case 56:{this.initializeFunction(_,l);break}case 58:{this.initializeInterface(_,l,n);break}case 60:{this.initializeNamespace(_,l,n,s);break}case 61:{this.initializeTypeDefinition(_,l);break}case 48:{this.initializeVariables(_,l);break}default:assert(!1)}}return l!=o&&Dt(l,o),o}initializeTypeDefinition(e,r){let n=e.name.text,s=new $e(n,r,e,this.checkDecorators(e.decorators,0));r.add(n,s)}initializeVariables(e,r){let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.name.text,u=1025;l.is(32768)&&(u|=128),l.is(8)&&(u|=64),l.range.source.isLibrary&&(u|=512);let c=new Cr(o,r,this.checkDecorators(l.decorators,u),l);c.hasDecorator(512)&&!lt.has(c.internalName)&&this.error(100,l.range,`Builtin '${c.internalName}'`),r.add(o,c)}}},mt=(g=>(g[g.Global=0]="Global",g[g.Local=1]="Local",g[g.Enum=2]="Enum",g[g.EnumValue=3]="EnumValue",g[g.FunctionPrototype=4]="FunctionPrototype",g[g.Function=5]="Function",g[g.ClassPrototype=6]="ClassPrototype",g[g.Class=7]="Class",g[g.InterfacePrototype=8]="InterfacePrototype",g[g.Interface=9]="Interface",g[g.PropertyPrototype=10]="PropertyPrototype",g[g.Property=11]="Property",g[g.Namespace=12]="Namespace",g[g.File=13]="File",g[g.TypeDefinition=14]="TypeDefinition",g[g.IndexSignature=15]="IndexSignature",g))(mt||{}),nr=(R=>(R[R.None=0]="None",R[R.Global=1]="Global",R[R.OperatorBinary=2]="OperatorBinary",R[R.OperatorPrefix=4]="OperatorPrefix",R[R.OperatorPostfix=8]="OperatorPostfix",R[R.Unmanaged=16]="Unmanaged",R[R.Final=32]="Final",R[R.Inline=64]="Inline",R[R.External=128]="External",R[R.ExternalJs=256]="ExternalJs",R[R.Builtin=512]="Builtin",R[R.Lazy=1024]="Lazy",R[R.Unsafe=2048]="Unsafe",R[R.Main=4096]="Main",R[R.Data=8192]="Data",R[R.Remote=16384]="Remote",R[R.Service=32768]="Service",R[R.Rest=65536]="Rest",R[R.Route=131072]="Route",R[R.Database=262144]="Database",R[R.Collection=524288]="Collection",R[R.DbFunction=1048576]="DbFunction",R))(nr||{});(i=>{function t(e){switch(e){case 1:return 1;case 2:case 3:return 2;case 4:return 4;case 5:return 8;case 6:return 16;case 7:return 32;case 8:return 64;case 9:return 128;case 10:return 256;case 11:return 512;case 12:return 1024;case 13:return 2048;case 14:return 4096;case 15:return 8192;case 16:return 16384;case 17:return 32768;case 18:return 65536;case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return 131072;case 31:return 262144;case 32:return 524288;case 33:case 34:case 35:case 36:case 38:return 1048576;default:return 0}}i.fromKind=t})(nr||={});var ss=class{constructor(i,e,r,n,s){this.kind=i;this.name=e;this.internalName=r;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=r,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let i=this;do if(i=i.parent,i.kind==13)return i;while(!0)}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}hasDecorator(i){return(this.decoratorFlags&i)==i}hasAnyDecorator(i){return(this.decoratorFlags&i)!=0}getMember(i){let e=this.members;return e&&e.has(i)?assert(e.get(i)):null}lookup(i,e=!1){return this.parent.lookup(i,e)}add(i,e,r=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(i)){let l=assert(s.get(i));if(l.parent==this){let o=dc(l,e);if(o)e=o;else{let u=r||e.identifierNode;return as(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(i,e);let a=this.program;return(e.kind!=4||!e.isBound)&&(a.elementsByName.set(e.internalName,e),a.elementsByDeclaration.set(n,e)),!0}get isPublic(){return!this.isAny(1536)}get isImplicitlyPublic(){return this.isPublic&&!this.is(256)}visibilityEquals(i){if(this.isPublic==i.isPublic)return!0;let e=1536;return(this.flags&e)==(i.flags&e)}visibilityNoLessThan(i){return this.isPublic?!0:this.is(512)?i.is(512):this.is(1024)?i.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let i=this.parent;switch(i.kind){case 7:case 9:return i}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},Tg=new Set;function as(t){return Tg.has(t)}var ir=class extends ss{constructor(e,r,n,s,a,l){super(e,r,n,s,a);this.declaration=l;Tg.add(e),this.declaration=l,this.flags=l.flags}get isDeclaredInLibrary(){return this.declaration.range.source.isLibrary}get identifierNode(){return this.declaration.name}get identifierAndSignatureRange(){let e=this.declaration,r=e.name;if(e.kind==56||e.kind==59){let n=e.signature;if(r.range.source==n.range.source)return le.join(r.range,n.range)}return r.range}get decoratorNodes(){return this.declaration.decorators}},Ag=new Set;function ql(t){return Ag.has(t)}var Ut=class extends ir{constructor(e,r,n,s,a,l){super(e,r,n,s,a,l);this.type=p.void;Ag.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}},ls=class extends ss{constructor(e,r){super(13,r.normalizedPath,r.internalPath,e,null);this.source=r;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=r,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,qe.create(e,[],p.void),this);n.internalName=n.name,this.startFunction=n}add(e,r,n=null){return r.hasDecorator(1)&&(r=this.program.ensureGlobal(e,r)),super.add(e,r,n)?(r=assert(this.getMember(e)),r.is(2)&&!n&&this.ensureExport(r.name,r),!0):!1}getMember(e){let r=super.getMember(e);if(r)return r;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(r=n[s].getMember(e))return r}return null}lookup(e,r=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,r){let n=this.exports;n||(this.exports=n=new Map),n.set(e,r),this.source.sourceKind==3&&this.program.ensureGlobal(e,r);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,r)}ensureExportStar(e){let r=this.exportsStar;if(!r)this.exportsStar=r=[];else if(r.includes(e))return;r.push(e)}lookupExport(e){let r=this.exports;if(r&&r.has(e))return assert(r.get(e));let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s){let l=n[s].lookupExport(e);if(l)return l}return null}asAliasNamespace(e,r,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new os(e,r,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let r=this.exports;if(r)for(let s=Map_keys(r),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(r.get(o));e.add(o,u)}let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)n[s].copyExportsToNamespace(e)}},$e=class extends Ut{constructor(i,e,r,n=0){super(14,i,Ce(i,e,!1),e.program,e,r),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},os=class extends ir{constructor(i,e,r,n=0){super(12,i,Ce(i,e,!1),e.program,e,r),this.decoratorFlags=n}lookup(i,e=!1){let r=this.getMember(i);return r||super.lookup(i,e)}},Yl=class extends Ut{constructor(e,r,n,s=0){super(2,e,Ce(e,r,!1),r.program,r,n);this.toStringFunctionName=null;this.decoratorFlags=s,this.setType(p.i32)}lookup(e,r=!1){let n=this.getMember(e);return n||super.lookup(e,r)}},_c=(r=>(r[r.None=0]="None",r[r.Integer=1]="Integer",r[r.Float=2]="Float",r))(_c||{}),Pr=class extends Ut{constructor(e,r,n,s=n.program.makeNativeVariableDeclaration(r)){super(e,r,Ce(r,n,s.is(262144)),n.program,n,s);this.constantValueKind=0;this.constantIntegerValue=i64_zero;this.constantFloatValue=0;this.flags=s.flags}get typeNode(){return this.declaration.type}get initializerNode(){return this.declaration.initializer}setConstantIntegerValue(e,r){assert(r.isIntegerInclReference),this.type=r,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,r){assert(r.isFloatValue),this.type=r,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},$l=class extends Pr{constructor(e,r,n,s=0){super(3,e,r,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(p.i32)}get valueNode(){return this.declaration.initializer}},Cr=class extends Pr{constructor(i,e,r,n=e.program.makeNativeVariableDeclaration(i)){super(0,i,e,n),this.decoratorFlags=r}},fc=class{constructor(i,e,r=null){this.name=i;this.type=e;this.initializer=r}},Oe=class extends Pr{constructor(e,r,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=r;this.isCaptured=!1;this.envSlotIndex=-1;this.envOwner=null;this.wasAccessedAsLocal=!1;this.originalName=e,this.index=r,assert(n!=p.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},Xe=class t extends ir{constructor(e,r,n,s=0){super(4,e,Ce(e,r,n.is(262144)),r.program,r,n);this.operatorKind=0;this.instances=null;this.unboundOverrides=null;this.boundPrototypes=null;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get functionTypeNode(){return this.declaration.signature}get bodyNode(){return this.declaration.body}get arrowKind(){return this.declaration.arrowKind}toBound(e){assert(this.is(262144)),assert(!this.isBound);let r=this.boundPrototypes;if(!r)this.boundPrototypes=r=new Map;else if(r.has(e))return assert(r.get(e));let n=this.declaration;assert(n.kind==59);let s=new t(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,r.set(e,s),s}getResolvedInstance(e){let r=this.instances;return r&&r.has(e)?assert(r.get(e)):null}setResolvedInstance(e,r){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,r)}},gt=class t extends Ut{constructor(e,r,n,s,a=null){super(5,e,Ce(e,r.parent,r.is(262144)),r.program,r.parent,r.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.capturedLocals=null;this.envClass=null;this.envLocal=null;this.outerFunction=null;this.closureEnvLocal=null;this.needsCaptureRecompile=!1;this.nextBreakId=0;this.breakStack=null;this.prototype=r,this.typeArguments=n,this.signature=s,this.flags=r.flags|4194304,this.decoratorFlags=r.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=r.program;this.type=s.type;let o=zt.createDefault(this);if(this.flow=o,!r.is(32768)){let u=0,c=s.thisType;if(c){let _=new Oe(C.this_,u++,c,this),h=this.flow.scopedLocals;h||(this.flow.scopedLocals=h=new Map),h.set(C.this_,_),this.localsByIndex[_.index]=_,o.setLocalFlag(_.index,8)}let f=s.parameterTypes;for(let _=0,h=f.length;_<h;++_){let m=f[_],x=this.getParameterName(_),g=new Oe(x,u++,m,this),T=this.flow.scopedLocals;T||(this.flow.scopedLocals=T=new Map),T.set(x,g),this.localsByIndex[g.index]=g,o.setLocalFlag(g.index,8)}}l.instancesByName.has(this.internalName)?(l.error(2393,r.declaration.name.range),this.set(16777216)):hc(l,this)}get needsEnvironment(){return this.capturedLocals!=null&&this.capturedLocals.size>0}getNonParameterLocalTypes(){let e=this.localsByIndex,r=this.signature,n=e.length,s=r.parameterTypes.length;r.thisType&&++s;let a=n-s,l=new Array(a);for(let o=0;o<a;++o)l[o]=e[s+o].type;return l}getParameterName(e){let r=this.declaration.signature.parameters;return r.length>e?r[e].name.text:Eg(e)}newStub(e,r=this.signature.requiredParameters){let n=new t(this.original.name+dp+e,this.prototype,this.typeArguments,this.signature.clone(r),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,r=null,n=null){let s=this.localsByIndex,a=s.length,l=r??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new Oe(l,a,e,this,n);if(r){let u=this.flow,c=u.scopedLocals;if(c||(u.scopedLocals=c=new Map),c.has(r))throw new Error("duplicate local name");c.set(r,o)}return s[a]=o,o}lookup(e,r=!1){if(!r){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,r)}finalize(e,r){this.ref=r;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,r)}addDebugInfo(e,r){if(this.program.options.sourceMap){let n=this.debugLocations;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o)),c=u.source;e.setDebugLocation(r,o,c.debugInfoIndex,c.lineAt(u.start),c.columnAt()-1)}}if(this.program.options.debugInfo){let n=new Set,s=this.localsByIndex;for(let a=0,l=s.length;a<l;a++){let o=s[a].name;n.has(o)&&(o=`${o}|${a}`),n.add(o),e.setLocalName(r,a,o)}}}},Pi=class t extends ir{constructor(e,r,n){super(10,e,Ce(e,r,n.is(262144)),r.program,r,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,r,n,s){let a=fe.native.range,l=n.type;l||(l=G.createOmittedType(n.name.range.atEnd));let o=new Rr(n.name,n.decorators,n.flags|262144|2048,null,new Sr([],l,null,!1,a),null,a),u=new Rr(n.name,n.decorators,n.flags|262144|4096,null,new Sr([new bi(0,n.name,l,null,a)],new ce(new gi(new Ke("",!1,a),null,a),null,!1,a),null,!1,a),null,a),c=new t(e,r,o);return c.fieldDeclaration=n,c.decoratorFlags=s,c.getterPrototype=new Xe(ua+e,r,o,s),c.setterPrototype=new Xe(pa+e,r,u,s),c}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let r=this.getterPrototype;if(r){let s=r.declaration;if(s.kind==56)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==56){let a=s.signature.parameters;if(a.length)return a[0].type}}return null}get initializerNode(){let e=this.fieldDeclaration;return e?e.initializer:null}get parameterIndex(){let e=this.fieldDeclaration;return e?e.parameterIndex:-1}get thisType(){let e=this.parent;return assert(e.kind==7),e.type}toBound(e){assert(this.is(262144)),assert(!this.isBound);let r=this.boundPrototypes;if(!r)this.boundPrototypes=r=new Map;else if(r.has(e))return assert(r.get(e));let n=this.declaration;assert(n.kind==59);let s=new t(this.name,e,n);s.flags=this.flags,s.fieldDeclaration=this.fieldDeclaration;let a=this.getterPrototype;a&&(s.getterPrototype=a.toBound(e));let l=this.setterPrototype;return l&&(s.setterPrototype=l.toBound(e)),r.set(e,s),s}},Zn=class extends Pr{constructor(e,r){super(11,e.name,r,e.isField?assert(e.fieldDeclaration):G.createVariableDeclaration(e.identifierNode,null,e.flags&262144,null,null,e.identifierNode.range));this.getterInstance=null;this.setterInstance=null;this.memoryOffset=-1;this.prototype=e,this.flags=e.flags,this.decoratorFlags=e.decoratorFlags,this.is(262144)&&hc(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let r=this.getterInstance,n=this.setterInstance;r&&n&&!r.visibilityNoLessThan(n)&&e.errorRelated(2808,r.identifierNode.range,n.identifierNode.range,r.identifierNode.text)}},Yn=class extends Ut{constructor(i){super(15,"[]",i.internalName+"[]",i.program,i,i.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(i){return this.parent.lookupOverload(1,i)}getSetterInstance(i){return this.parent.lookupOverload(2,i)}},us=class extends ir{constructor(e,r,n,s=0,a=!1){super(a?8:6,e,Ce(e,r,n.is(262144)),r.program,r,n);this.instanceMembers=null;this.basePrototype=null;this.interfacePrototypes=null;this.constructorPrototype=null;this.operatorOverloadPrototypes=new Map;this.instances=null;this.extenders=new Set;this.implicitlyExtendsObject=!1;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get extendsNode(){return this.declaration.extendsType}get implementsNodes(){return this.declaration.implementsTypes}get isBuiltinArray(){let e=this.program.arrayBufferViewInstance;return e&&this.extends(e.prototype)}extends(e){let r=this,n=new Set;do{if(n.has(r))break;if(n.add(r),r==e)return!0;r=r.basePrototype}while(r);return!1}addInstance(e,r){let n=r.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=dc(a,r);if(!l)return as(a.kind)?this.program.errorRelated(2300,r.identifierNode.range,a.declaration.name.range,r.identifierNode.text):this.program.error(2300,r.identifierNode.range,r.identifierNode.text),!1;r=l}return s.set(e,r),r.is(2)&&this.is(1048576)&&r.set(1048576),this.program.elementsByDeclaration.set(n,r),!0}getResolvedInstance(e){let r=this.instances;return r&&r.has(e)?r.get(e):null}setResolvedInstance(e,r){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,r)}},rr=class extends Ut{constructor(e,r,n=null,s=!1){super(s?9:7,e,Ce(e,r.parent,r.is(262144)),r.program,r.parent,r.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=0;this.constructorInstance=null;this.operatorOverloads=null;this.indexSignature=null;this._id=0;this.rttiFlags=0;this.wrappedType=null;this.extenders=null;this.implementers=null;this.didCheckFieldInitialization=!1;this.visitRef=0;this.prototype=r,this.flags=r.flags,this.decoratorFlags=r.decoratorFlags,this.typeArguments=n;let a=this.program,l=a.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size);if(o.classReference=this,this.setType(o),!this.hasDecorator(16)){let c=a.nextClassId++;this._id=c,a.managedClasses.set(c,this)}let u=r.typeParameterNodes;if(n){let c=n.length;if(!u||c!=u.length)throw new Error("type argument count mismatch");if(c){let f=this.contextualTypeArguments;f||(this.contextualTypeArguments=f=new Map);for(let _=0;_<c;++_)f.set(u[_].name.text,n[_])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");hc(a,this)}get id(){return this._id}get isBuiltinArray(){return this.prototype.isBuiltinArray}get isArrayLike(){if(this.isBuiltinArray)return!0;let e=this.getMember("length");return e?(e.kind==11&&e.getterInstance!=null||e.kind==10&&e.getterPrototype!=null)&&(this.lookupOverload(1)!=null||this.lookupOverload(3)!=null):!1}get isInterface(){return this.kind==9}static leastUpperBound(e,r){if(e==r)return e;let n=new Set;for(n.add(e),n.add(r);;){let s=e.base,a=r.base;if(!s&&!a)return null;if(s){if(n.has(s))return s;n.add(e=s)}if(a){if(n.has(a))return a;n.add(r=a)}}}setBase(e){assert(!this.base),this.base=e;let r=e.contextualTypeArguments;if(r){let a=this.contextualTypeArguments;for(let l=Map_keys(r),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]),f=assert(r.get(c));a?a.has(c)||a.set(c,f):(this.contextualTypeArguments=a=new Map,a.set(c,f))}}e.propagateExtenderUp(this);let n=this.extenders;if(n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];e.propagateExtenderUp(u)}let s=e;do{let a=s.interfaces;if(a)for(let l=Set_values(a),o=0,u=l.length;o<u;++o){let c=l[o];this.propagateInterfaceDown(c)}s=s.base}while(s)}propagateExtenderUp(e){let r=this;do{let n=r.extenders;n||(r.extenders=n=new Set),n.add(e),r=r.base}while(r)}propagateInterfaceDown(e){let r=e,n=this.extenders;do{let s=r.implementers;if(s||(r.implementers=s=new Set),s.add(this),n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];s.add(u)}r=r.base}while(r)}addInterface(e){let r=this.interfaces;r||(this.interfaces=r=new Set),r.add(e),this.propagateInterfaceDown(e)}isAssignableTo(e){return e.isInterface?this.isInterface?this==e||this.extends(e):this.implements(e):this.isInterface?e==this.program.objectInstance:this==e||this.extends(e)}hasSubclassAssignableTo(e){return e.isInterface?this.isInterface?this.hasImplementerImplementing(e):this.hasExtenderImplementing(e):this.isInterface?this.hasImplementer(e):this.hasExtender(e)}lookupOverload(e,r=!1){if(r)switch(e){case 1:{let s=this.lookupOverload(3);if(s)return s;break}case 2:{let s=this.lookupOverload(4);if(s)return s;break}default:assert(!1)}let n=this;do{let s=n.operatorOverloads;if(s!=null&&s.has(e))return assert(s.get(e));n=n.base}while(n);return null}getMethod(e,r=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,r):null}offsetof(e){let r=assert(this.getMember(e));assert(r.kind==10);let s=r.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let r=this.program,n=this.nextMemoryOffset+e,s=r.computeBlockSize(n,!0),a=new Uint8Array(r.blockOverhead+s),l=r.OBJECTInstance;return l.writeField("mmInfo",s,a,0),l.writeField("gcInfo",0,a,0),l.writeField("gcInfo2",0,a,0),l.writeField("rtId",this.id,a,0),l.writeField("rtSize",n,a,0),a}writeField(e,r,n,s=this.program.totalOverhead){let a=this.getMember(e);if(a&&a.kind==10){let o=a.instance;if(!o)return 0;assert(o.isField&&o.memoryOffset>=0);let u=s+o.memoryOffset,c=o.type.kind;switch(c){case 1:case 6:return assert(!i64_is(r)),_e(i32(r),n,u),1;case 2:case 7:return assert(!i64_is(r)),Zt(i32(r),n,u),2;case 3:case 8:return assert(!i64_is(r)),me(i32(r),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(r)?ci(r,n,u):fa(i32(r),n,u,c==10),8):(i64_is(r)?mp(r,n,u,c==10):me(i32(r),n,u),4);case 4:case 9:return i64_is(r)?ci(r,n,u):fa(i32(r),n,u,c==9),8;case 11:return assert(!i64_is(r)),xr(f32(r),n,u),4;case 12:return assert(!i64_is(r)),Tr(f64(r),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let r=this;do{if(r.prototype==e)return r.typeArguments;r=r.base}while(r);return null}getArrayValueType(){let e=this,r=this.program,n=r.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=r.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=r.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==r.float32ArrayPrototype)return p.f32;if(l==r.float64ArrayPrototype)return p.f64;break}case 73:{if(l==r.int8ArrayPrototype)return p.i8;if(l==r.int16ArrayPrototype)return p.i16;if(l==r.int32ArrayPrototype)return p.i32;if(l==r.int64ArrayPrototype)return p.i64;break}case 85:{if(l==r.uint8ArrayPrototype)return p.u8;if(l==r.uint8ClampedArrayPrototype)return p.u8;if(l==r.uint16ArrayPrototype)return p.u16;if(l==r.uint32ArrayPrototype)return p.u32;if(l==r.uint64ArrayPrototype)return p.u64;break}}return assert(!1),p.void}get isPointerfree(){let e=this.program,r=this.members;if(r){for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(l.kind==10){let u=l.instance;if(!u)continue;if(u.isField&&u.type.isManaged)return!1}}if(r.has(C.visit)){let n=this.prototype;if(n==e.arrayPrototype||n==e.staticArrayPrototype||n==e.setPrototype||n==e.mapPrototype){let s=assert(this.getTypeArgumentsTo(n));for(let a=0,l=s.length;a<l;++a)if(s[a].isManaged)return!1;return!0}return!1}}return!0}extends(e){return e.hasExtender(this)}hasExtender(e){let r=this.extenders;return r!=null&&r.has(e)}hasExtenderImplementing(e){let r=this.extenders;if(r){for(let n=Set_values(r),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}implements(e){return e.hasImplementer(this)}hasImplementer(e){let r=this.implementers;return r!=null&&r.has(e)}hasImplementerImplementing(e){let r=this.implementers;if(r){for(let n=Set_values(r),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},eo=class extends us{constructor(i,e,r,n){super(i,e,r,n,!0)}},$n=class extends rr{constructor(i,e,r=null){super(i,e,r,!0)}};function hc(t,i){assert(!t.instancesByName.has(i.internalName)),t.instancesByName.set(i.internalName,i)}function dc(t,i){if(assert(t.program==i.program),i.members)return null;let e=null;switch(t.kind){case 4:{switch(i.kind){case 12:{Dt(i,t),e=t;break}case 14:{t.shadowType||(t.shadowType=i,Dt(i,t),e=t);break}}break}case 6:case 2:{if(i.kind==12){Dt(i,t),e=t;break}break}case 12:{switch(i.kind){case 2:case 6:case 4:{Dt(t,i),e=i;break}case 12:{Dt(i,t),e=t;break}case 14:{t.shadowType||(t.shadowType=i,Dt(i,t),e=t);break}}break}case 0:{i.kind==14&&(t.shadowType||(t.shadowType=i,Dt(i,t),e=t));break}case 14:{switch(i.kind){case 0:case 4:case 12:{i.shadowType||(i.shadowType=t,Dt(t,i),e=i);break}}break}}if(e){let r=t.is(2)||t.hasDecorator(1),n=i.is(2)||i.hasDecorator(1);r!=n&&t.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function Dt(t,i){let e=t.members;if(e){let r=i.members;r||(i.members=r=new Map);for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));r.set(l,o)}}}function Ce(t,i,e,r=!1){switch(i.kind){case 13:return r?t:i.internalName+rt+t;case 5:return r?t:(assert(!e),i.internalName+hp+t);case 10:case 11:i=i.parent;default:return Ce(i.name,i.parent,i.is(262144),r)+(e?_p:Sn)+t}}var pc=[];function Eg(t){for(let i=pc.length;i<=t;++i)pc.push(`$${i}`);return pc[t]}var er=(W=>(W[W.Bool=0]="Bool",W[W.I8=1]="I8",W[W.I16=2]="I16",W[W.I32=3]="I32",W[W.I64=4]="I64",W[W.Isize=5]="Isize",W[W.U8=6]="U8",W[W.U16=7]="U16",W[W.U32=8]="U32",W[W.U64=9]="U64",W[W.Usize=10]="Usize",W[W.F32=11]="F32",W[W.F64=12]="F64",W[W.V128=13]="V128",W[W.Extern=14]="Extern",W[W.Func=15]="Func",W[W.Any=16]="Any",W[W.Eq=17]="Eq",W[W.Struct=18]="Struct",W[W.Array=19]="Array",W[W.I31=20]="I31",W[W.String=21]="String",W[W.StringviewWTF8=22]="StringviewWTF8",W[W.StringviewWTF16=23]="StringviewWTF16",W[W.StringviewIter=24]="StringviewIter",W[W.Void=25]="Void",W))(er||{}),yt=(x=>(x[x.None=0]="None",x[x.Signed=1]="Signed",x[x.Unsigned=2]="Unsigned",x[x.Integer=4]="Integer",x[x.Float=8]="Float",x[x.Varying=16]="Varying",x[x.Short=32]="Short",x[x.Long=64]="Long",x[x.Value=128]="Value",x[x.Reference=256]="Reference",x[x.Nullable=512]="Nullable",x[x.Vector=1024]="Vector",x[x.External=2048]="External",x[x.Class=4096]="Class",x[x.Function=8192]="Function",x))(yt||{}),p=class t{constructor(i,e,r){this.classReference=null;this.signatureReference=null;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=i,this.flags=e,this.size=r,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==t.auto)return this;switch(this.kind){case 0:case 3:case 11:return t.i32;case 1:return t.i8;case 2:return t.i16;case 12:case 4:return t.i64;case 5:return this.size==64?t.isize64:t.isize32;case 6:return t.u8;case 7:return t.u16;case 8:return t.u32;case 9:return t.u64;case 10:return this.size==64?t.usize64:t.usize32;default:return t.i32}}get exceptVoid(){return this.kind==25?t.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return 31-clz(this.byteSize)}get isValue(){return this.is(128)}get isIntegerValue(){return this.is(132)}get isShortIntegerValue(){return this.is(164)}get isLongIntegerValue(){return this.is(196)}get isSignedIntegerValue(){return this.is(133)}get isUnsignedIntegerValue(){return this.is(134)}get isVaryingIntegerValue(){return this.is(148)}get isIntegerInclReference(){return this.is(4)}get isFloatValue(){return this.is(136)}get isNumericValue(){return this.isIntegerValue||this.isFloatValue}get isBooleanValue(){return this==t.bool}get isVectorValue(){return this.is(1152)}get isReference(){return this.is(256)}get isNullableReference(){return this.is(768)}get isInternalReference(){return this.is(260)}get isExternalReference(){return this.is(2304)}get isNullableExternalReference(){return this.is(2816)}getClass(){return this.isInternalReference?this.classReference:null}get isClass(){return this.getClass()!=null}getClassOrWrapper(i){let e=this.getClass();if(e)return e;{let r=this.getSignature();if(r){let n=r.type,s=assert(i.resolver.resolveClass(i.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=i.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(i,e){let r=this.getClassOrWrapper(e);return r?r.lookupOverload(i):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let i=this.classReference;return i?!i.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let i=this.classReference;return i!=null&&i.hasDecorator(16)}get isMemory(){switch(this.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:return!0}return!1}get nonNullableType(){return assert(this._nonNullableType)}get nullableType(){return this.isReference?this.asNullable():null}computeSmallIntegerShift(i){return i.size-this.size}computeSmallIntegerMask(i){let e=this.size;return this.is(2)||(e-=1),-1>>>i.size-e}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}asNullable(){assert(this.isReference);let i=this._nullableType;return i||(assert(!this.isNullableReference),this._nullableType=i=new t(this.kind,this.flags|512,this.size),i.classReference=this.classReference,i.signatureReference=this.signatureReference,i._nonNullableType=this),i}toUnsigned(){switch(this.kind){case 1:return t.u8;case 2:return t.u16;case 3:return t.u32;case 4:return t.u64;case 5:return this.size==64?t.usize64:t.usize32}return this}equals(i){if(this.kind!=i.kind)return!1;if(this.isReference){let e=this.signatureReference,r=i.signatureReference;return this.classReference==i.classReference&&e==r&&this.isNullableReference==i.isNullableReference}return!0}isAssignableTo(i,e=!1){let r,n,s,a;if(this.isReference){if(i.isReference&&(!this.isNullableReference||i.isNullableReference)){if(r=this.getClass()){if(n=i.getClass())return r.isAssignableTo(n)}else if(s=this.getSignature()){if(a=i.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==i.kind||i.kind==16&&this.kind!=14))return!0}}else if(!i.isReference){if(this.isIntegerValue)if(i.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==i.isSignedIntegerValue)return this.size<=i.size}else{if(i.kind==11)return this.size<=23;if(i.kind==12)return this.size<=52}else if(this.isFloatValue){if(i.isFloatValue)return this.size<=i.size}else if(this.isVectorValue&&i.isVectorValue)return this.size==i.size}return!1}isStrictlyAssignableTo(i,e=!1){return this.isReference?this.isAssignableTo(i):i.isReference?!1:this.isIntegerValue?i.isIntegerValue&&i.size==this.size&&(!e||this.isSignedIntegerValue==i.isSignedIntegerValue):this.kind==i.kind}hasSubtypeAssignableTo(i){let e=this.getClass(),r=i.getClass();return!e||!r?!1:e.hasSubclassAssignableTo(r)}isChangeableTo(i){if(this.is(4)&&i.is(4)){let e=this.size;return e==i.size&&(e>=32||this.is(1)==i.is(1))}return this.kind==i.kind}canExtendOrImplement(i){let e=this.getClass(),r=i.getClass();if(!e||!r||this.isManaged!=i.isManaged)return!1;if(this.isInternalReference){if(!i.isInternalReference)return!1}else if(this.isExternalReference){if(!i.isExternalReference)return!1}else return!1;return!0}static commonType(i,e,r=t.auto,n=!1){if(i.isInternalReference){if(!e.isInternalReference)return null;if(r!=t.void&&i.isAssignableTo(r)&&e.isAssignableTo(r))return r;let s=i.getClass(),a=e.getClass();if(s&&a){let l=rr.leastUpperBound(s,a);if(l)return i.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(i,n)?i:i.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return C.bool;case 1:return C.i8;case 2:return C.i16;case 3:return C.i32;case 4:return C.i64;case 5:return C.isize;case 6:return C.u8;case 7:return C.u16;case 8:return C.u32;case 9:return C.u64;case 10:return C.usize;case 11:return C.f32;case 12:return C.f64;case 13:return C.v128;case 15:return C.ref_func;case 14:return C.ref_extern;case 16:return C.ref_any;case 17:return C.ref_eq;case 18:return C.ref_struct;case 19:return C.ref_array;case 20:return C.ref_i31;case 21:return C.ref_string;case 22:return C.ref_stringview_wtf8;case 23:return C.ref_stringview_wtf16;case 24:return C.ref_stringview_iter;default:assert(!1);case 25:return C.void_}}toString(i=!1){let e=i?"|null":" | null";if(this.isReference){let r=this.getClass();if(r)return this.isNullableReference?r.internalName+e:r.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(i)})${e}`:n.toString(i):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==t.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return L.I32;case 5:case 10:if(this.size!=64)return L.I32;case 4:case 9:return L.I64;case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return de(ge.Func,this.is(512));case 14:return de(ge.Extern,this.is(512));case 16:return de(ge.Any,this.is(512));case 17:return de(ge.Eq,this.is(512));case 18:return de(ge.Struct,this.is(512));case 19:return de(ge.Array,this.is(512));case 20:return de(ge.I31,this.is(512));case 21:return de(ge.String,this.is(512));case 25:return L.None}return assert(!1),Qn(this)}static{this.i8=new t(1,165,8)}static{this.i16=new t(2,165,16)}static{this.i32=new t(3,133,32)}static{this.i64=new t(4,197,64)}static{this.isize32=new t(5,149,32)}static{this.isize64=new t(5,213,64)}static{this.u8=new t(6,166,8)}static{this.u16=new t(7,166,16)}static{this.u32=new t(8,134,32)}static{this.u64=new t(9,198,64)}static{this.usize32=new t(10,150,32)}static{this.usize64=new t(10,214,64)}static{this.bool=new t(0,166,1)}static{this.f32=new t(11,137,32)}static{this.f64=new t(12,201,64)}static{this.v128=new t(13,1152,128)}static{this.func=new t(15,2304,0)}static{this.extern=new t(14,2304,0)}static{this.any=new t(16,2304,0)}static{this.eq=new t(17,2304,0)}static{this.struct=new t(18,2304,0)}static{this.array=new t(19,2304,0)}static{this.i31=new t(20,2304,0)}static{this.string=new t(21,2304,0)}static{this.stringview_wtf8=new t(22,2304,0)}static{this.stringview_wtf16=new t(23,2304,0)}static{this.stringview_iter=new t(24,2304,0)}static{this.void=new t(25,0,0)}static{this.auto=new t(t.i32.kind,t.i32.flags,t.i32.size)}};function Br(t){let i=t.length,e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=t[r].toRef());return e}function Wl(t){let i=t.length;if(!i)return"";let e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=t[r].toString(!0));return e.join(",")}var qe=class t{constructor(i,e,r,n,s,a,l,o){this.program=i;this.parameterTypes=e;this.returnType=r;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.id=l;this.type=o}static create(i,e=[],r=p.void,n=null,s=e?e.length:0,a=!1){let l=i.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size),u=i.uniqueSignatures,c=i.nextSignatureId,f=new t(i,e,r,n,s,a,c,o),_=f.toString();if(u.has(_)){let h=assert(u.get(_));return assert(f.equals(h)),h}return i.nextSignatureId=c+1,o.signatureReference=f,u.set(_,f),f}get paramRefs(){let i=this.thisType,e=this.parameterTypes,r=e.length;if(!r)return i?i.toRef():L.None;if(i){let n=new Array(1+r);unchecked(n[0]=i.toRef());for(let s=0;s<r;++s)unchecked(n[s+1]=e[s].toRef());return je(n)}return je(Br(e))}get resultRefs(){return this.returnType.toRef()}equals(i){let e=this.thisType,r=i.thisType;if(e){if(!r||!e.equals(r))return!1}else if(r)return!1;if(this.hasRest!=i.hasRest||!this.returnType.equals(i.returnType))return!1;let n=this.parameterTypes,s=i.parameterTypes,a=n.length;if(a!=s.length)return!1;for(let l=0;l<a;++l){let o=unchecked(n[l]),u=unchecked(s[l]);if(!o.equals(u))return!1}return!0}isAssignableTo(i,e=!1){let r=this.thisType,n=i.thisType;if(r&&n){if(!(e?r.canExtendOrImplement(n):n.isAssignableTo(r)))return!1}else if(r||n)return!1;if(this.hasRest!=i.hasRest)return!1;let s=this.returnType,a=i.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=i.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let c=0;c<u;++c){let f=unchecked(l[c]),_=unchecked(o[c]);if(f!=_)return!1}return!0}get hasManagedOperands(){let i=this.thisType;if(i&&i.isManaged)return!0;let e=this.parameterTypes;for(let r=0,n=e.length;r<n;++r)if(unchecked(e[r]).isManaged)return!0;return!1}getManagedOperandIndices(){let i=new Array,e=0,r=this.thisType;r&&(r.isManaged&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&i.push(e),++e;return i}get hasVectorValueOperands(){let i=this.thisType;if(i&&i.isVectorValue)return!0;let e=this.parameterTypes;for(let r=0,n=e.length;r<n;++r)if(unchecked(e[r]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let i=new Array,e=0,r=this.thisType;r&&(r.isVectorValue&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&i.push(e),++e;return i}toString(i=!1){let e=new Array;e.push(i?"%28":"(");let r=0,n=this.thisType;n&&(e.push(i?"this:":"this: "),e.push(n.toString(i)),r=1);let s=this.parameterTypes,a=s.length;if(a){let l=this.requiredParameters,o=this.hasRest?a-1:-1;for(let u=0;u<a;++u,++r)r&&e.push(i?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(i)),u>=l&&u!=o&&e.push("?")}return e.push(i?"%29=>":") => "),e.push(this.returnType.toString(i)),e.join("")}clone(i=this.requiredParameters,e=this.hasRest){let r=this.parameterTypes,n=r.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=r[a]);return t.create(this.program,s,this.returnType,this.thisType,i,e)}};var d;(y=>(y.start="~start",y.started="~started",y.argumentsLength="~argumentsLength",y.setArgumentsLength="~setArgumentsLength",y.abort="~lib/builtins/abort",y.trace="~lib/builtins/trace",y.seed="~lib/builtins/seed",y.isBoolean="~lib/builtins/isBoolean",y.isInteger="~lib/builtins/isInteger",y.isSigned="~lib/builtins/isSigned",y.isFloat="~lib/builtins/isFloat",y.isVector="~lib/builtins/isVector",y.isReference="~lib/builtins/isReference",y.isString="~lib/builtins/isString",y.isArray="~lib/builtins/isArray",y.isArrayLike="~lib/builtins/isArrayLike",y.isFunction="~lib/builtins/isFunction",y.isNullable="~lib/builtins/isNullable",y.isDefined="~lib/builtins/isDefined",y.isConstant="~lib/builtins/isConstant",y.isManaged="~lib/builtins/isManaged",y.isVoid="~lib/builtins/isVoid",y.add="~lib/builtins/add",y.sub="~lib/builtins/sub",y.mul="~lib/builtins/mul",y.div="~lib/builtins/div",y.clz="~lib/builtins/clz",y.ctz="~lib/builtins/ctz",y.popcnt="~lib/builtins/popcnt",y.rotl="~lib/builtins/rotl",y.rotr="~lib/builtins/rotr",y.abs="~lib/builtins/abs",y.max="~lib/builtins/max",y.min="~lib/builtins/min",y.ceil="~lib/builtins/ceil",y.floor="~lib/builtins/floor",y.copysign="~lib/builtins/copysign",y.nearest="~lib/builtins/nearest",y.reinterpret="~lib/builtins/reinterpret",y.sqrt="~lib/builtins/sqrt",y.trunc="~lib/builtins/trunc",y.eq="~lib/builtins/eq",y.ne="~lib/builtins/ne",y.rem="~lib/builtins/rem",y.load="~lib/builtins/load",y.store="~lib/builtins/store",y.atomic_load="~lib/builtins/atomic.load",y.atomic_store="~lib/builtins/atomic.store",y.atomic_add="~lib/builtins/atomic.add",y.atomic_sub="~lib/builtins/atomic.sub",y.atomic_and="~lib/builtins/atomic.and",y.atomic_or="~lib/builtins/atomic.or",y.atomic_xor="~lib/builtins/atomic.xor",y.atomic_xchg="~lib/builtins/atomic.xchg",y.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",y.atomic_wait="~lib/builtins/atomic.wait",y.atomic_notify="~lib/builtins/atomic.notify",y.atomic_fence="~lib/builtins/atomic.fence",y.sizeof="~lib/builtins/sizeof",y.alignof="~lib/builtins/alignof",y.offsetof="~lib/builtins/offsetof",y.nameof="~lib/builtins/nameof",y.lengthof="~lib/builtins/lengthof",y.select="~lib/builtins/select",y.unreachable="~lib/builtins/unreachable",y.changetype="~lib/builtins/changetype",y.assert="~lib/builtins/assert",y.call_indirect="~lib/builtins/call_indirect",y.unchecked="~lib/builtins/unchecked",y.inline_always="~lib/builtins/inline.always",y.instantiate="~lib/builtins/instantiate",y.idof="~lib/builtins/idof",y.i8="~lib/builtins/i8",y.i16="~lib/builtins/i16",y.i32="~lib/builtins/i32",y.i64="~lib/builtins/i64",y.isize="~lib/builtins/isize",y.u8="~lib/builtins/u8",y.u16="~lib/builtins/u16",y.u32="~lib/builtins/u32",y.u64="~lib/builtins/u64",y.usize="~lib/builtins/usize",y.bool="~lib/builtins/bool",y.f32="~lib/builtins/f32",y.f64="~lib/builtins/f64",y.v128="~lib/builtins/v128",y.i32_clz="~lib/builtins/i32.clz",y.i64_clz="~lib/builtins/i64.clz",y.i32_ctz="~lib/builtins/i32.ctz",y.i64_ctz="~lib/builtins/i64.ctz",y.i32_popcnt="~lib/builtins/i32.popcnt",y.i64_popcnt="~lib/builtins/i64.popcnt",y.i32_rotl="~lib/builtins/i32.rotl",y.i64_rotl="~lib/builtins/i64.rotl",y.i32_rotr="~lib/builtins/i32.rotr",y.i64_rotr="~lib/builtins/i64.rotr",y.f32_abs="~lib/builtins/f32.abs",y.f64_abs="~lib/builtins/f64.abs",y.f32_max="~lib/builtins/f32.max",y.f64_max="~lib/builtins/f64.max",y.f32_min="~lib/builtins/f32.min",y.f64_min="~lib/builtins/f64.min",y.f32_ceil="~lib/builtins/f32.ceil",y.f64_ceil="~lib/builtins/f64.ceil",y.f32_floor="~lib/builtins/f32.floor",y.f64_floor="~lib/builtins/f64.floor",y.f32_copysign="~lib/builtins/f32.copysign",y.f64_copysign="~lib/builtins/f64.copysign",y.f32_nearest="~lib/builtins/f32.nearest",y.f64_nearest="~lib/builtins/f64.nearest",y.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",y.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",y.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",y.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",y.f32_sqrt="~lib/builtins/f32.sqrt",y.f64_sqrt="~lib/builtins/f64.sqrt",y.f32_trunc="~lib/builtins/f32.trunc",y.f64_trunc="~lib/builtins/f64.trunc",y.i32_add="~lib/builtins/i32.add",y.i64_add="~lib/builtins/i64.add",y.f32_add="~lib/builtins/f32.add",y.f64_add="~lib/builtins/f64.add",y.i32_sub="~lib/builtins/i32.sub",y.i64_sub="~lib/builtins/i64.sub",y.f32_sub="~lib/builtins/f32.sub",y.f64_sub="~lib/builtins/f64.sub",y.i32_mul="~lib/builtins/i32.mul",y.i64_mul="~lib/builtins/i64.mul",y.f32_mul="~lib/builtins/f32.mul",y.f64_mul="~lib/builtins/f64.mul",y.i32_div_s="~lib/builtins/i32.div_s",y.i32_div_u="~lib/builtins/i32.div_u",y.i64_div_s="~lib/builtins/i64.div_s",y.i64_div_u="~lib/builtins/i64.div_u",y.f32_div="~lib/builtins/f32.div",y.f64_div="~lib/builtins/f64.div",y.i32_eq="~lib/builtins/i32.eq",y.i64_eq="~lib/builtins/i64.eq",y.f32_eq="~lib/builtins/f32.eq",y.f64_eq="~lib/builtins/f64.eq",y.i32_ne="~lib/builtins/i32.ne",y.i64_ne="~lib/builtins/i64.ne",y.f32_ne="~lib/builtins/f32.ne",y.f64_ne="~lib/builtins/f64.ne",y.i32_rem_s="~lib/builtins/i32.rem_s",y.i32_rem_u="~lib/builtins/i32.rem_u",y.i64_rem_s="~lib/builtins/i64.rem_s",y.i64_rem_u="~lib/builtins/i64.rem_u",y.i32_load8_s="~lib/builtins/i32.load8_s",y.i32_load8_u="~lib/builtins/i32.load8_u",y.i32_load16_s="~lib/builtins/i32.load16_s",y.i32_load16_u="~lib/builtins/i32.load16_u",y.i32_load="~lib/builtins/i32.load",y.i64_load8_s="~lib/builtins/i64.load8_s",y.i64_load8_u="~lib/builtins/i64.load8_u",y.i64_load16_s="~lib/builtins/i64.load16_s",y.i64_load16_u="~lib/builtins/i64.load16_u",y.i64_load32_s="~lib/builtins/i64.load32_s",y.i64_load32_u="~lib/builtins/i64.load32_u",y.i64_load="~lib/builtins/i64.load",y.f32_load="~lib/builtins/f32.load",y.f64_load="~lib/builtins/f64.load",y.i32_store8="~lib/builtins/i32.store8",y.i32_store16="~lib/builtins/i32.store16",y.i32_store="~lib/builtins/i32.store",y.i64_store8="~lib/builtins/i64.store8",y.i64_store16="~lib/builtins/i64.store16",y.i64_store32="~lib/builtins/i64.store32",y.i64_store="~lib/builtins/i64.store",y.f32_store="~lib/builtins/f32.store",y.f64_store="~lib/builtins/f64.store",y.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",y.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",y.i32_atomic_load="~lib/builtins/i32.atomic.load",y.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",y.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",y.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",y.i64_atomic_load="~lib/builtins/i64.atomic.load",y.i32_atomic_store8="~lib/builtins/i32.atomic.store8",y.i32_atomic_store16="~lib/builtins/i32.atomic.store16",y.i32_atomic_store="~lib/builtins/i32.atomic.store",y.i64_atomic_store8="~lib/builtins/i64.atomic.store8",y.i64_atomic_store16="~lib/builtins/i64.atomic.store16",y.i64_atomic_store32="~lib/builtins/i64.atomic.store32",y.i64_atomic_store="~lib/builtins/i64.atomic.store",y.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",y.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",y.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",y.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",y.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",y.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",y.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",y.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",y.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",y.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",y.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",y.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",y.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",y.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",y.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",y.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",y.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",y.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",y.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",y.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",y.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",y.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",y.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",y.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",y.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",y.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",y.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",y.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",y.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",y.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",y.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",y.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",y.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",y.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",y.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",y.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",y.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",y.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",y.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",y.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",y.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",y.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",y.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",y.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",y.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",y.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",y.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",y.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",y.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",y.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",y.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",y.v128_splat="~lib/builtins/v128.splat",y.v128_extract_lane="~lib/builtins/v128.extract_lane",y.v128_replace_lane="~lib/builtins/v128.replace_lane",y.v128_shuffle="~lib/builtins/v128.shuffle",y.v128_swizzle="~lib/builtins/v128.swizzle",y.v128_load_splat="~lib/builtins/v128.load_splat",y.v128_load_ext="~lib/builtins/v128.load_ext",y.v128_load_zero="~lib/builtins/v128.load_zero",y.v128_load_lane="~lib/builtins/v128.load_lane",y.v128_store_lane="~lib/builtins/v128.store_lane",y.v128_load="~lib/builtins/v128.load",y.v128_load8x8_s="~lib/builtins/v128.load8x8_s",y.v128_load8x8_u="~lib/builtins/v128.load8x8_u",y.v128_load16x4_s="~lib/builtins/v128.load16x4_s",y.v128_load16x4_u="~lib/builtins/v128.load16x4_u",y.v128_load32x2_s="~lib/builtins/v128.load32x2_s",y.v128_load32x2_u="~lib/builtins/v128.load32x2_u",y.v128_load8_splat="~lib/builtins/v128.load8_splat",y.v128_load16_splat="~lib/builtins/v128.load16_splat",y.v128_load32_splat="~lib/builtins/v128.load32_splat",y.v128_load64_splat="~lib/builtins/v128.load64_splat",y.v128_load32_zero="~lib/builtins/v128.load32_zero",y.v128_load64_zero="~lib/builtins/v128.load64_zero",y.v128_load8_lane="~lib/builtins/v128.load8_lane",y.v128_load16_lane="~lib/builtins/v128.load16_lane",y.v128_load32_lane="~lib/builtins/v128.load32_lane",y.v128_load64_lane="~lib/builtins/v128.load64_lane",y.v128_store8_lane="~lib/builtins/v128.store8_lane",y.v128_store16_lane="~lib/builtins/v128.store16_lane",y.v128_store32_lane="~lib/builtins/v128.store32_lane",y.v128_store64_lane="~lib/builtins/v128.store64_lane",y.v128_store="~lib/builtins/v128.store",y.v128_add="~lib/builtins/v128.add",y.v128_sub="~lib/builtins/v128.sub",y.v128_mul="~lib/builtins/v128.mul",y.v128_div="~lib/builtins/v128.div",y.v128_neg="~lib/builtins/v128.neg",y.v128_add_sat="~lib/builtins/v128.add_sat",y.v128_sub_sat="~lib/builtins/v128.sub_sat",y.v128_shl="~lib/builtins/v128.shl",y.v128_shr="~lib/builtins/v128.shr",y.v128_and="~lib/builtins/v128.and",y.v128_or="~lib/builtins/v128.or",y.v128_xor="~lib/builtins/v128.xor",y.v128_andnot="~lib/builtins/v128.andnot",y.v128_not="~lib/builtins/v128.not",y.v128_bitselect="~lib/builtins/v128.bitselect",y.v128_any_true="~lib/builtins/v128.any_true",y.v128_all_true="~lib/builtins/v128.all_true",y.v128_bitmask="~lib/builtins/v128.bitmask",y.v128_popcnt="~lib/builtins/v128.popcnt",y.v128_min="~lib/builtins/v128.min",y.v128_max="~lib/builtins/v128.max",y.v128_pmin="~lib/builtins/v128.pmin",y.v128_pmax="~lib/builtins/v128.pmax",y.v128_dot="~lib/builtins/v128.dot",y.v128_avgr="~lib/builtins/v128.avgr",y.v128_abs="~lib/builtins/v128.abs",y.v128_sqrt="~lib/builtins/v128.sqrt",y.v128_ceil="~lib/builtins/v128.ceil",y.v128_floor="~lib/builtins/v128.floor",y.v128_trunc="~lib/builtins/v128.trunc",y.v128_nearest="~lib/builtins/v128.nearest",y.v128_eq="~lib/builtins/v128.eq",y.v128_ne="~lib/builtins/v128.ne",y.v128_lt="~lib/builtins/v128.lt",y.v128_le="~lib/builtins/v128.le",y.v128_gt="~lib/builtins/v128.gt",y.v128_ge="~lib/builtins/v128.ge",y.v128_convert="~lib/builtins/v128.convert",y.v128_convert_low="~lib/builtins/v128.convert_low",y.v128_trunc_sat="~lib/builtins/v128.trunc_sat",y.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",y.v128_narrow="~lib/builtins/v128.narrow",y.v128_extend_low="~lib/builtins/v128.extend_low",y.v128_extend_high="~lib/builtins/v128.extend_high",y.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",y.v128_demote_zero="~lib/builtins/v128.demote_zero",y.v128_promote_low="~lib/builtins/v128.promote_low",y.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",y.v128_extmul_low="~lib/builtins/v128.extmul_low",y.v128_extmul_high="~lib/builtins/v128.extmul_high",y.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",y.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",y.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",y.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",y.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",y.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",y.v128_relaxed_min="~lib/builtins/v128.relaxed_min",y.v128_relaxed_max="~lib/builtins/v128.relaxed_max",y.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",y.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",y.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",y.i8x16="~lib/builtins/i8x16",y.i16x8="~lib/builtins/i16x8",y.i32x4="~lib/builtins/i32x4",y.i64x2="~lib/builtins/i64x2",y.f32x4="~lib/builtins/f32x4",y.f64x2="~lib/builtins/f64x2",y.i8x16_splat="~lib/builtins/i8x16.splat",y.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",y.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",y.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",y.i8x16_add="~lib/builtins/i8x16.add",y.i8x16_sub="~lib/builtins/i8x16.sub",y.i8x16_mul="~lib/builtins/i8x16.mul",y.i8x16_min_s="~lib/builtins/i8x16.min_s",y.i8x16_min_u="~lib/builtins/i8x16.min_u",y.i8x16_max_s="~lib/builtins/i8x16.max_s",y.i8x16_max_u="~lib/builtins/i8x16.max_u",y.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",y.i8x16_abs="~lib/builtins/i8x16.abs",y.i8x16_neg="~lib/builtins/i8x16.neg",y.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",y.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",y.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",y.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",y.i8x16_shl="~lib/builtins/i8x16.shl",y.i8x16_shr_s="~lib/builtins/i8x16.shr_s",y.i8x16_shr_u="~lib/builtins/i8x16.shr_u",y.i8x16_all_true="~lib/builtins/i8x16.all_true",y.i8x16_bitmask="~lib/builtins/i8x16.bitmask",y.i8x16_popcnt="~lib/builtins/i8x16.popcnt",y.i8x16_eq="~lib/builtins/i8x16.eq",y.i8x16_ne="~lib/builtins/i8x16.ne",y.i8x16_lt_s="~lib/builtins/i8x16.lt_s",y.i8x16_lt_u="~lib/builtins/i8x16.lt_u",y.i8x16_le_s="~lib/builtins/i8x16.le_s",y.i8x16_le_u="~lib/builtins/i8x16.le_u",y.i8x16_gt_s="~lib/builtins/i8x16.gt_s",y.i8x16_gt_u="~lib/builtins/i8x16.gt_u",y.i8x16_ge_s="~lib/builtins/i8x16.ge_s",y.i8x16_ge_u="~lib/builtins/i8x16.ge_u",y.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",y.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",y.i8x16_shuffle="~lib/builtins/i8x16.shuffle",y.i8x16_swizzle="~lib/builtins/i8x16.swizzle",y.i16x8_splat="~lib/builtins/i16x8.splat",y.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",y.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",y.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",y.i16x8_add="~lib/builtins/i16x8.add",y.i16x8_sub="~lib/builtins/i16x8.sub",y.i16x8_mul="~lib/builtins/i16x8.mul",y.i16x8_min_s="~lib/builtins/i16x8.min_s",y.i16x8_min_u="~lib/builtins/i16x8.min_u",y.i16x8_max_s="~lib/builtins/i16x8.max_s",y.i16x8_max_u="~lib/builtins/i16x8.max_u",y.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",y.i16x8_abs="~lib/builtins/i16x8.abs",y.i16x8_neg="~lib/builtins/i16x8.neg",y.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",y.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",y.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",y.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",y.i16x8_shl="~lib/builtins/i16x8.shl",y.i16x8_shr_s="~lib/builtins/i16x8.shr_s",y.i16x8_shr_u="~lib/builtins/i16x8.shr_u",y.i16x8_all_true="~lib/builtins/i16x8.all_true",y.i16x8_bitmask="~lib/builtins/i16x8.bitmask",y.i16x8_eq="~lib/builtins/i16x8.eq",y.i16x8_ne="~lib/builtins/i16x8.ne",y.i16x8_lt_s="~lib/builtins/i16x8.lt_s",y.i16x8_lt_u="~lib/builtins/i16x8.lt_u",y.i16x8_le_s="~lib/builtins/i16x8.le_s",y.i16x8_le_u="~lib/builtins/i16x8.le_u",y.i16x8_gt_s="~lib/builtins/i16x8.gt_s",y.i16x8_gt_u="~lib/builtins/i16x8.gt_u",y.i16x8_ge_s="~lib/builtins/i16x8.ge_s",y.i16x8_ge_u="~lib/builtins/i16x8.ge_u",y.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",y.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",y.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",y.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",y.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",y.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",y.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",y.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",y.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",y.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",y.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",y.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",y.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",y.i16x8_shuffle="~lib/builtins/i16x8.shuffle",y.i32x4_splat="~lib/builtins/i32x4.splat",y.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",y.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",y.i32x4_add="~lib/builtins/i32x4.add",y.i32x4_sub="~lib/builtins/i32x4.sub",y.i32x4_mul="~lib/builtins/i32x4.mul",y.i32x4_min_s="~lib/builtins/i32x4.min_s",y.i32x4_min_u="~lib/builtins/i32x4.min_u",y.i32x4_max_s="~lib/builtins/i32x4.max_s",y.i32x4_max_u="~lib/builtins/i32x4.max_u",y.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",y.i32x4_abs="~lib/builtins/i32x4.abs",y.i32x4_neg="~lib/builtins/i32x4.neg",y.i32x4_shl="~lib/builtins/i32x4.shl",y.i32x4_shr_s="~lib/builtins/i32x4.shr_s",y.i32x4_shr_u="~lib/builtins/i32x4.shr_u",y.i32x4_all_true="~lib/builtins/i32x4.all_true",y.i32x4_bitmask="~lib/builtins/i32x4.bitmask",y.i32x4_eq="~lib/builtins/i32x4.eq",y.i32x4_ne="~lib/builtins/i32x4.ne",y.i32x4_lt_s="~lib/builtins/i32x4.lt_s",y.i32x4_lt_u="~lib/builtins/i32x4.lt_u",y.i32x4_le_s="~lib/builtins/i32x4.le_s",y.i32x4_le_u="~lib/builtins/i32x4.le_u",y.i32x4_gt_s="~lib/builtins/i32x4.gt_s",y.i32x4_gt_u="~lib/builtins/i32x4.gt_u",y.i32x4_ge_s="~lib/builtins/i32x4.ge_s",y.i32x4_ge_u="~lib/builtins/i32x4.ge_u",y.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",y.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",y.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",y.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",y.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",y.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",y.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",y.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",y.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",y.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",y.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",y.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",y.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",y.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",y.i32x4_shuffle="~lib/builtins/i32x4.shuffle",y.i64x2_splat="~lib/builtins/i64x2.splat",y.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",y.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",y.i64x2_add="~lib/builtins/i64x2.add",y.i64x2_sub="~lib/builtins/i64x2.sub",y.i64x2_mul="~lib/builtins/i64x2.mul",y.i64x2_abs="~lib/builtins/i64x2.abs",y.i64x2_neg="~lib/builtins/i64x2.neg",y.i64x2_shl="~lib/builtins/i64x2.shl",y.i64x2_shr_s="~lib/builtins/i64x2.shr_s",y.i64x2_shr_u="~lib/builtins/i64x2.shr_u",y.i64x2_all_true="~lib/builtins/i64x2.all_true",y.i64x2_bitmask="~lib/builtins/i64x2.bitmask",y.i64x2_eq="~lib/builtins/i64x2.eq",y.i64x2_ne="~lib/builtins/i64x2.ne",y.i64x2_lt_s="~lib/builtins/i64x2.lt_s",y.i64x2_lt_u="~lib/builtins/i64x2.lt_u",y.i64x2_le_s="~lib/builtins/i64x2.le_s",y.i64x2_le_u="~lib/builtins/i64x2.le_u",y.i64x2_gt_s="~lib/builtins/i64x2.gt_s",y.i64x2_gt_u="~lib/builtins/i64x2.gt_u",y.i64x2_ge_s="~lib/builtins/i64x2.ge_s",y.i64x2_ge_u="~lib/builtins/i64x2.ge_u",y.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",y.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",y.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",y.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",y.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",y.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",y.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",y.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",y.i64x2_shuffle="~lib/builtins/i64x2.shuffle",y.f32x4_splat="~lib/builtins/f32x4.splat",y.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",y.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",y.f32x4_add="~lib/builtins/f32x4.add",y.f32x4_sub="~lib/builtins/f32x4.sub",y.f32x4_mul="~lib/builtins/f32x4.mul",y.f32x4_div="~lib/builtins/f32x4.div",y.f32x4_neg="~lib/builtins/f32x4.neg",y.f32x4_min="~lib/builtins/f32x4.min",y.f32x4_max="~lib/builtins/f32x4.max",y.f32x4_pmin="~lib/builtins/f32x4.pmin",y.f32x4_pmax="~lib/builtins/f32x4.pmax",y.f32x4_abs="~lib/builtins/f32x4.abs",y.f32x4_sqrt="~lib/builtins/f32x4.sqrt",y.f32x4_ceil="~lib/builtins/f32x4.ceil",y.f32x4_floor="~lib/builtins/f32x4.floor",y.f32x4_trunc="~lib/builtins/f32x4.trunc",y.f32x4_nearest="~lib/builtins/f32x4.nearest",y.f32x4_eq="~lib/builtins/f32x4.eq",y.f32x4_ne="~lib/builtins/f32x4.ne",y.f32x4_lt="~lib/builtins/f32x4.lt",y.f32x4_le="~lib/builtins/f32x4.le",y.f32x4_gt="~lib/builtins/f32x4.gt",y.f32x4_ge="~lib/builtins/f32x4.ge",y.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",y.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",y.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",y.f32x4_shuffle="~lib/builtins/f32x4.shuffle",y.f64x2_splat="~lib/builtins/f64x2.splat",y.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",y.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",y.f64x2_add="~lib/builtins/f64x2.add",y.f64x2_sub="~lib/builtins/f64x2.sub",y.f64x2_mul="~lib/builtins/f64x2.mul",y.f64x2_div="~lib/builtins/f64x2.div",y.f64x2_neg="~lib/builtins/f64x2.neg",y.f64x2_min="~lib/builtins/f64x2.min",y.f64x2_max="~lib/builtins/f64x2.max",y.f64x2_pmin="~lib/builtins/f64x2.pmin",y.f64x2_pmax="~lib/builtins/f64x2.pmax",y.f64x2_abs="~lib/builtins/f64x2.abs",y.f64x2_sqrt="~lib/builtins/f64x2.sqrt",y.f64x2_ceil="~lib/builtins/f64x2.ceil",y.f64x2_floor="~lib/builtins/f64x2.floor",y.f64x2_trunc="~lib/builtins/f64x2.trunc",y.f64x2_nearest="~lib/builtins/f64x2.nearest",y.f64x2_eq="~lib/builtins/f64x2.eq",y.f64x2_ne="~lib/builtins/f64x2.ne",y.f64x2_lt="~lib/builtins/f64x2.lt",y.f64x2_le="~lib/builtins/f64x2.le",y.f64x2_gt="~lib/builtins/f64x2.gt",y.f64x2_ge="~lib/builtins/f64x2.ge",y.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",y.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",y.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",y.f64x2_shuffle="~lib/builtins/f64x2.shuffle",y.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",y.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",y.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",y.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",y.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",y.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",y.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",y.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",y.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",y.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",y.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",y.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",y.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",y.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",y.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",y.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",y.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",y.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",y.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",y.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",y.i31_new="~lib/builtins/i31.new",y.i31_get="~lib/builtins/i31.get",y.data_end="~lib/memory/__data_end",y.stack_pointer="~lib/memory/__stack_pointer",y.heap_base="~lib/memory/__heap_base",y.rtti_base="~lib/rt/__rtti_base",y.visit_globals="~lib/rt/__visit_globals",y.visit_members="~lib/rt/__visit_members",y.tostack="~lib/rt/__tostack",y.NaN="~lib/number/NaN",y.Infinity="~lib/number/Infinity",y.isNaN="~lib/number/isNaN",y.isFinite="~lib/number/isFinite",y.ERROR="~lib/diagnostics/ERROR",y.WARNING="~lib/diagnostics/WARNING",y.INFO="~lib/diagnostics/INFO",y.Function="~lib/function/Function",y.Function_call="~lib/function/Function#call",y.memory_size="~lib/memory/memory.size",y.memory_grow="~lib/memory/memory.grow",y.memory_copy="~lib/memory/memory.copy",y.memory_fill="~lib/memory/memory.fill",y.memory_data="~lib/memory/memory.data",y.Int8Array="~lib/typedarray/Int8Array",y.Uint8Array="~lib/typedarray/Uint8Array",y.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",y.Int16Array="~lib/typedarray/Int16Array",y.Uint16Array="~lib/typedarray/Uint16Array",y.Int32Array="~lib/typedarray/Int32Array",y.Uint32Array="~lib/typedarray/Uint32Array",y.Int64Array="~lib/typedarray/Int64Array",y.Uint64Array="~lib/typedarray/Uint64Array",y.Float32Array="~lib/typedarray/Float32Array",y.Float64Array="~lib/typedarray/Float64Array",y.String_raw="~lib/string/String.raw",y.String_eq="~lib/string/String.__eq",y.String_ne="~lib/string/String.__ne",y.String_not="~lib/string/String.__not",y.Object="~lib/object/Object"))(d||={});var jl=class{constructor(i,e,r,n,s){this.resolver=i;this.node=e;this.ctxElement=r;this.ctxTypes=n;this.reportMode=s}},ps=class{constructor(i,e,r=e.type,n=e.identifierNode){this.compiler=i;this.element=e;this.contextualType=r;this.reportNode=n}},to=class{constructor(i,e,r,n,s,a,l,o){this.compiler=i;this.prototype=e;this.typeArguments=r;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},tr=new Map,b=new Map,Ot=new Map,lt=new Map;function s1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return p.i32;case 5:if(!i.program.options.isWasm64)return p.i32;case 4:return p.i64;case 6:case 7:case 8:case 0:return p.u32;case 10:if(!i.program.options.isWasm64)return p.u32;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64;case 13:return p.v128;case 25:return p.void;default:assert(!1)}return null}tr.set(C.native,s1);function a1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&i.error(2329,a.range,l.toString()),null;let u=o.lookupOverload(1);if(u){let c=u.signature.parameterTypes;return u.is(32)?(assert(c.length==2),c[1]):(assert(c.length==1),c[0])}return s==0&&i.error(2329,a.range,l.toString()),null}tr.set(C.indexof,a1);function l1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(i.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&i.error(2329,a.range,l.toString()),null}tr.set(C.valueof,l1);function o1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&i.error(2757,a.range,l.toString()),null)}tr.set(C.returnof,o1);function u1(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}tr.set(C.nonnull,u1);var Li=0;function p1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isBooleanValue?1:0)):e.unreachable()}b.set(d.isBoolean,p1);function c1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isIntegerValue?1:0)):e.unreachable()}b.set(d.isInteger,c1);function f1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isSignedIntegerValue?1:0)):e.unreachable()}b.set(d.isSigned,f1);function _1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isFloatValue?1:0)):e.unreachable()}b.set(d.isFloat,_1);function h1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isVectorValue?1:0)):e.unreachable()}b.set(d.isVector,h1);function d1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isReference?1:0)):e.unreachable()}b.set(d.isReference,d1);function m1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.isAssignableTo(i.program.stringInstance)?1:0))}b.set(d.isString,m1);function y1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.extendsPrototype(i.program.arrayPrototype)?1:0))}b.set(d.isArray,y1);function g1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.isArrayLike?1:0))}b.set(d.isArrayLike,g1);function b1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isFunction?1:0)):e.unreachable()}b.set(d.isFunction,b1);function x1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isNullableReference?1:0)):e.unreachable()}b.set(d.isNullable,x1);function T1(t){let i=t.compiler,e=i.module;if(i.currentType=p.bool,v(t)|K(t,1))return e.unreachable();let r=i.resolver.lookupExpression(t.operands[0],i.currentFlow,p.auto,1);return e.i32(r?1:0)}b.set(d.isDefined,T1);function A1(t){let i=t.compiler,e=i.module;if(i.currentType=p.bool,v(t)|K(t,1))return e.unreachable();let r=i.compileExpression(t.operands[0],p.auto);return i.currentType=p.bool,Dl(r,e.ref)?e.block(null,[e.maybeDrop(r),e.i32(0)],se(r)):e.i32(e.isConstExpression(r)?1:0)}b.set(d.isConstant,A1);function E1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isManaged?1:0)):e.unreachable()}b.set(d.isManaged,E1);function v1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.kind==25?1:0)):e.unreachable()}b.set(d.isVoid,v1);function S1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.i32,!r)return e.unreachable();let n=r.signatureReference;return n?Fe(t,e.i32(n.parameterTypes.length)):(i.error(2757,t.reportNode.range,r.toString()),e.unreachable())}b.set(d.lengthof,S1);function I1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|K(t,0))return e.unreachable();let r=t.typeArguments[0],n=r.byteSize;return n?ro(i,i64_new(n),t.contextualType):(i.error(203,t.reportNode.typeArgumentsRange,"sizeof",r.toString()),e.unreachable())}b.set(d.sizeof,I1);function R1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|K(t,0))return e.unreachable();let r=t.typeArguments[0],n=r.byteSize;return Ct(n)?ro(i,i64_new(ctz(n)),t.contextualType):(i.error(203,t.reportNode.typeArgumentsRange,"alignof",r.toString()),e.unreachable())}b.set(d.alignof,R1);function F1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|Se(t,0,1))return e.unreachable();let r=t.operands,n=t.contextualType,s=t.typeArguments[0],a=s.getClassOrWrapper(i.program);if(!a)return i.error(203,t.reportNode.typeArgumentsRange,"offsetof",s.toString()),i.options.isWasm64?n.isIntegerValue&&n.size<=32&&(i.currentType=p.u32):n.isIntegerValue&&n.size==64&&(i.currentType=p.u64),e.unreachable();if(r.length){let l=r[0];if(!l.isLiteralKind(2))return i.error(1141,r[0].range),e.unreachable();let o=l.value,u=a.getMember(o);if(u&&u.kind==10){let c=u.instance;if(c&&c.isField)return assert(c.memoryOffset>=0),ro(i,i64_new(c.memoryOffset),n)}return i.error(2460,l.range,a.internalName,o),e.unreachable()}return ro(i,i64_new(a.nextMemoryOffset),n)}b.set(d.offsetof,F1);function k1(t){let i=t.compiler,e=i.module,r=Be(t);if(!r)return i.currentType=i.program.stringInstance.type,e.unreachable();let n;if(r.isInternalReference){let s=r.getClass();s?n=s.name:(assert(r.getSignature()),n="Function")}else n=r.toString();return Fe(t,i.ensureStaticString(n))}b.set(d.nameof,k1);function w1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.u32,!r)return e.unreachable();let n=r.getSignature();if(n)return Fe(t,e.i32(n.id));let s=r.getClassOrWrapper(i.program);return s&&!s.hasDecorator(16)?Fe(t,e.i32(s.id)):(i.error(203,t.reportNode.typeArgumentsRange,"idof",r.toString()),e.unreachable())}b.set(d.idof,w1);function C1(t){let i=t.element;if(i.is(1048576)){let e=t.compiler.module;e.addGlobal(i.internalName,L.F64,!1,e.f64(NaN))}}Ot.set(d.NaN,C1);function P1(t){let i=t.compiler,e=i.module;return t.contextualType==p.f32?(i.currentType=p.f32,e.f32(NaN)):(i.currentType=p.f64,e.f64(NaN))}lt.set(d.NaN,P1);function B1(t){let i=t.element;if(i.is(1048576)){let e=t.compiler.module;e.addGlobal(i.internalName,L.F64,!1,e.f64(1/0))}}Ot.set(d.Infinity,B1);function L1(t){let i=t.compiler,e=i.module;return t.contextualType==p.f32?(i.currentType=p.f32,e.f32(1/0)):(i.currentType=p.f64,e.f64(1/0))}lt.set(d.Infinity,L1);function mc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.typeArguments,n=r?i.compileExpression(t.operands[0],r[0],5):i.compileExpression(t.operands[0],p.i32,4),s=i.currentType;if(s.isValue)switch(s.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(0,n);case 5:case 10:return e.unary(142,n);case 4:case 9:return e.unary(1,n)}return i.error(203,t.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}b.set(d.clz,mc);function yc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(2,s);case 5:case 10:return e.unary(143,s);case 4:case 9:return e.unary(3,s)}return i.error(203,t.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}b.set(d.ctz,yc);function gc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue)switch(i.currentType.kind){case 0:return s;case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(4,s);case 4:case 9:return e.unary(5,s);case 5:case 10:return e.unary(144,s)}return i.error(203,t.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}b.set(d.popcnt,gc);function bc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(10,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(12,e.local_get(u.index,L.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,L.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(13,s,l);case 4:case 9:return e.binary(38,s,l);case 5:case 10:return e.binary(230,s,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}b.set(d.rotl,bc);function xc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(12,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(10,e.local_get(u.index,L.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,L.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(14,s,l);case 4:case 9:return e.binary(39,s,l);case 5:case 10:return e.binary(231,s,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}b.set(d.rotr,xc);function Tc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.auto,4),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 6:case 7:case 8:case 9:case 10:return s;case 1:case 2:case 3:{let l=i.currentFlow,o=l.getTempLocal(p.i32),u=l.getTempLocal(p.i32);return e.binary(9,e.binary(0,e.local_tee(u.index,e.binary(11,e.local_tee(o.index,s,!1),e.i32(31)),!1),e.local_get(o.index,L.I32)),e.local_get(u.index,L.I32))}case 5:{let l=i.options,o=i.currentFlow,u=o.getTempLocal(l.usizeType),c=o.getTempLocal(l.usizeType);return e.binary(226,e.binary(217,e.local_tee(c.index,e.binary(228,e.local_tee(u.index,s,!1),i.options.isWasm64?e.i64(63):e.i32(31)),!1),e.local_get(u.index,l.sizeTypeRef)),e.local_get(c.index,l.sizeTypeRef))}case 4:{let l=i.currentFlow,o=l.getTempLocal(p.i64),u=l.getTempLocal(p.i64);return e.binary(34,e.binary(25,e.local_tee(u.index,e.binary(36,e.local_tee(o.index,s,!1),e.i64(63)),!1),e.local_get(o.index,L.I64)),e.local_get(u.index,L.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return i.error(203,t.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}b.set(d.abs,Tc);function Ac(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(r[0],p.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(r[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=21;break}case 0:case 6:case 7:case 8:{u=22;break}case 4:{u=46;break}case 9:{u=47;break}case 5:{u=238;break}case 10:{u=239;break}case 11:return e.binary(56,a,o);case 12:return e.binary(69,a,o)}if(u!=-1){let c=i.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let h=c.getTempLocal(l);return c.setLocalFlag(h.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(h.index,f)))}}return i.error(203,t.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}b.set(d.max,Ac);function Ec(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(r[0],p.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(r[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=17;break}case 0:case 6:case 7:case 8:{u=18;break}case 4:{u=42;break}case 9:{u=43;break}case 5:{u=234;break}case 10:{u=235;break}case 11:return e.binary(55,a,o);case 12:return e.binary(68,a,o)}if(u!=-1){let c=i.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let h=c.getTempLocal(l);return c.setLocalFlag(h.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(h.index,f)))}}return i.error(203,t.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}b.set(d.min,Ec);function vc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(10,s);case 12:return e.unary(11,s)}return i.error(203,t.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}b.set(d.ceil,vc);function Sc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(12,s);case 12:return e.unary(13,s)}return i.error(203,t.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}b.set(d.floor,Sc);function Ic(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.f64,0),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}b.set(d.copysign,Ic);function Rc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(16,s);case 12:return e.unary(17,s)}return i.error(203,t.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}b.set(d.nearest,Rc);function cs(t){let i=t.compiler,e=i.module;if(J(t,!0)|K(t,1))return e.unreachable();let r=t.operands,s=t.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=i.compileExpression(r[0],p.f32,1);return i.currentType=s,e.unary(33,a)}case 4:case 9:{let a=i.compileExpression(r[0],p.f64,1);return i.currentType=s,e.unary(34,a)}case 5:case 10:{let a=i.options.isWasm64,l=i.compileExpression(r[0],a?p.f64:p.f32,1);return i.currentType=s,e.unary(a?34:33,l)}case 11:{let a=i.compileExpression(r[0],p.i32,1);return i.currentType=p.f32,e.unary(45,a)}case 12:{let a=i.compileExpression(r[0],p.i64,1);return i.currentType=p.f64,e.unary(46,a)}}return i.error(203,t.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}b.set(d.reinterpret,cs);function Fc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.f64,0),a=i.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return i.error(203,t.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}b.set(d.sqrt,Fc);function kc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(14,s);case 12:return e.unary(15,s)}return i.error(203,t.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}b.set(d.trunc,kc);function N1(t){let i=t.compiler,e=i.module;if(ae(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(i.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(0));case 11:{if($(s)==8)return e.binary(58,s,e.local_get(ht(s),L.F32));let o=i.currentFlow.getTempLocal(p.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F32))}case 12:{if($(s)==8)return e.binary(71,s,e.local_get(ht(s),L.F64));let o=i.currentFlow.getTempLocal(p.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F64))}}return i.error(203,t.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}b.set(d.isNaN,N1);function M1(t){let i=t.compiler,e=i.module;if(ae(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(i.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(1));case 11:{if($(s)==8)return e.binary(57,e.binary(51,s,e.local_get(ht(s),L.F32)),e.f32(0));let o=i.currentFlow.getTempLocal(p.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F32)),e.f32(0))}case 12:{if($(s)==8)return e.binary(70,e.binary(64,s,e.local_get(ht(s),L.F64)),e.f64(0));let o=i.currentFlow.getTempLocal(p.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F64)),e.f64(0))}}return i.error(203,t.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}b.set(d.isFinite,M1);function G1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=4,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}Ot.set(d.heap_base,G1);function z1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=4,i.currentType=n,e.global_get(r.internalName,n.toRef())}lt.set(d.heap_base,z1);function D1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=1,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}Ot.set(d.data_end,D1);function U1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=1,i.currentType=n,e.global_get(r.internalName,n.toRef())}lt.set(d.data_end,U1);function V1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=2,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}Ot.set(d.stack_pointer,V1);function O1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=2,i.currentType=n,e.global_get(r.internalName,n.toRef())}lt.set(d.stack_pointer,O1);function q1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=8,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}Ot.set(d.rtti_base,q1);function W1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=8,i.currentType=n,e.global_get(r.internalName,n.toRef())}lt.set(d.rtti_base,W1);function Pe(t){let i=t.compiler,e=i.module;if(J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0],l=s!=p.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return i.error(203,t.reportNode.typeArgumentsRange,"load",l.toString()),i.currentType=p.void,e.unreachable();let o=i.compileExpression(r[0],i.options.usizeType,1),u=r.length,c=0,f=a.byteSize;return u>=2&&(c=et(r[1],i),c<0||u==3&&(f=Vt(r[2],f,i),f<0))?(i.currentType=l,e.unreachable()):(i.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),c,f))}b.set(d.load,Pe);function ot(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,J(t)|Se(t,2,4))return e.unreachable();let r=t.operands,n=r.length,s=t.typeArguments,a=t.contextualType,l=s[0],o=i.compileExpression(r[0],i.options.usizeType,1),u=t.contextIsExact?i.compileExpression(r[1],a,1):i.compileExpression(r[1],l,l.isIntegerValue?0:1),c=i.currentType;if(!c.isMemory)return i.error(203,t.reportNode.typeArgumentsRange,"store",c.toString()),i.currentType=p.void,e.unreachable();l.isIntegerValue&&(!c.isIntegerValue||c.size<l.size)&&(u=i.convertExpression(u,c,l,!1,r[1]),c=l);let f=0,_=l.byteSize;if(n>=3){if(f=et(r[2],i),f<0)return i.currentType=p.void,e.unreachable();if(n==4&&(_=Vt(r[3],_,i),_<0))return i.currentType=p.void,e.unreachable()}return i.currentType=p.void,e.store(l.byteSize,o,u,c.toRef(),f,_)}b.set(d.store,ot);function fs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isIntegerValue)return i.makeRem(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}b.set(d.rem,fs);function _s(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeAdd(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}b.set(d.add,_s);function hs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeSub(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}b.set(d.sub,hs);function ds(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeMul(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}b.set(d.mul,ds);function Lr(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeDiv(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}b.set(d.div,Lr);function ms(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.currentType=p.i32,i.makeEq(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}b.set(d.eq,ms);function ys(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.currentType=p.i32,i.makeNe(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}b.set(d.ne,ys);function sr(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t,!0)|Se(t,1,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.load",a.toString()),i.currentType=l,e.unreachable();let o=i.compileExpression(r[0],i.options.usizeType,1),u=r.length==2?et(r[1],i):0;return u<0?(i.currentType=l,e.unreachable()):(i.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}b.set(d.atomic_load,sr);function ar(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t)|Se(t,2,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0];if(!a.isIntegerValue)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.store",a.toString()),i.currentType=p.void,e.unreachable();let l=i.compileExpression(r[0],i.options.usizeType,1),o=t.contextIsExact?i.compileExpression(r[1],s,1):i.compileExpression(r[1],a,a.isIntegerValue?0:1),u=i.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,r[1]),u=a);let c=r.length==3?et(r[2],i):0;return c<0?(i.currentType=p.void,e.unreachable()):(i.currentType=p.void,e.atomic_store(a.byteSize,l,o,u.toRef(),c))}b.set(d.atomic_store,ar);function Ni(t,i,e){let r=t.compiler,n=r.module;if(X(t,32)|J(t,!0)|Se(t,2,3))return n.unreachable();let s=t.operands,a=t.typeArguments,l=t.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return r.error(203,t.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=r.compileExpression(s[0],r.options.usizeType,1),c=t.contextIsExact?r.compileExpression(s[1],l,1):r.compileExpression(s[1],o,o.isIntegerValue?0:1),f=r.currentType;o.isIntegerValue&&(!f.isIntegerValue||f.size<o.size)&&(c=r.convertExpression(c,f,o,!1,s[1]),f=o);let _=s.length==3?et(s[2],r):0;return _<0?(r.currentType=f,n.unreachable()):(r.currentType=f,n.atomic_rmw(i,o.byteSize,_,u,c,f.toRef()))}function lr(t){return Ni(t,0,"atomic.add")}b.set(d.atomic_add,lr);function or(t){return Ni(t,1,"atomic.sub")}b.set(d.atomic_sub,or);function ur(t){return Ni(t,2,"atomic.and")}b.set(d.atomic_and,ur);function pr(t){return Ni(t,3,"atomic.or")}b.set(d.atomic_or,pr);function cr(t){return Ni(t,4,"atomic.xor")}b.set(d.atomic_xor,cr);function fr(t){return Ni(t,5,"atomic.xchg")}b.set(d.atomic_xchg,fr);function _r(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t,!0)|Se(t,3,4))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=i.compileExpression(r[0],i.options.usizeType,1),o=t.contextIsExact?i.compileExpression(r[1],s,1):i.compileExpression(r[1],a,a.isIntegerValue?0:1),u=i.currentType,c=i.compileExpression(r[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,r[1]),c=i.convertExpression(c,u,a,!1,r[2]),u=a);let f=r.length==4?et(r[3],i):0;return f<0?(i.currentType=u,e.unreachable()):(i.currentType=u,e.atomic_cmpxchg(a.byteSize,f,l,o,c,u.toRef()))}b.set(d.atomic_cmpxchg,_r);function wc(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t)|Se(t,2,3))return i.currentType=p.i32,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],s,1),o=r.length==3?i.compileExpression(r[2],p.i64,1):e.i64(-1,-1);switch(i.currentType=p.i32,s.kind){case 3:case 4:case 5:case 8:case 9:case 10:return e.atomic_wait(a,l,o,s.toRef())}return i.error(203,t.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}b.set(d.atomic_wait,wc);function K1(t){let i=t.compiler,e=i.module;if(X(t,32)|v(t)|Se(t,1,2))return i.currentType=p.i32,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],i.options.usizeType,1),s=r.length==2?i.compileExpression(r[1],p.i32,1):e.i32(-1);return i.currentType=p.i32,e.atomic_notify(n,s)}b.set(d.atomic_notify,K1);function j1(t){let i=t.compiler,e=i.module;return i.currentType=p.void,X(t,32)|v(t)|K(t,0)?e.unreachable():e.atomic_fence()}b.set(d.atomic_fence,j1);function H1(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(!a.isAny(384))return i.error(203,t.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=i.compileExpression(r[1],a,1),o=i.makeIsTrueish(i.compileExpression(r[2],p.bool),i.currentType,r[2]);return i.currentType=a,e.select(s,l,o)}b.set(d.select,H1);function Q1(t){return v(t),K(t,0),t.compiler.module.unreachable()}b.set(d.unreachable,Q1);function X1(t){let i=t.compiler,e=i.module;return i.currentType=p.i32,v(t)|K(t,0)?e.unreachable():e.memory_size()}b.set(d.memory_size,X1);function J1(t){let i=t.compiler,e=i.module;return i.currentType=p.i32,v(t)|K(t,1)?e.unreachable():e.memory_grow(i.compileExpression(t.operands[0],p.i32,1))}b.set(d.memory_grow,J1);function Z1(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,v(t)|K(t,3))return e.unreachable();let r=t.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(t.prototype,null);return i.currentType=p.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,r,t.reportNode)}let n=i.options.usizeType,s=i.compileExpression(r[0],n,1),a=i.compileExpression(r[1],n,1),l=i.compileExpression(r[2],n,1);return i.currentType=p.void,e.memory_copy(s,a,l)}b.set(d.memory_copy,Z1);function Y1(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,v(t)|K(t,3))return e.unreachable();let r=t.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(t.prototype,null);return i.currentType=p.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,r,t.reportNode)}let n=i.options.usizeType,s=i.compileExpression(r[0],n,1),a=i.compileExpression(r[1],p.u8,1),l=i.compileExpression(r[2],n,1);return i.currentType=p.void,e.memory_fill(s,a,l)}b.set(d.memory_fill,Y1);function $1(t){let i=t.compiler,e=i.module;if(i.currentType=p.i32,ae(t)|Se(t,1,2))return e.unreachable();let r=t.typeArguments,n=t.operands,s=n.length,a=i.options.usizeType,l;if(r&&r.length>0){let o=r[0];if(!o.isValue)return i.error(203,t.reportNode.typeArgumentsRange,"memory.data",o.toString()),i.currentType=a,e.unreachable();let u=n[0];if(u.kind!=17||u.literalKind!=5)return i.error(227,n[0].range),i.currentType=a,e.unreachable();let c=u.elementExpressions,f=c.length,_=new Array(f),h=!0;for(let g=0;g<f;++g){let T=c[g];if(T.kind!=20){let I=i.compileExpression(T,o,1),E=e.runExpression(I,1);E?I=E:h=!1,_[g]=I}else _[g]=i.makeZero(o)}if(!h)return i.error(220,u.range),i.currentType=a,e.unreachable();let m=o.byteSize;if(s==2&&(m=Vt(n[1],m,i),m<0))return i.currentType=a,e.unreachable();let x=new Uint8Array(f*o.byteSize);assert(i.writeStaticBuffer(x,0,o,_)==x.byteLength),l=i.addAlignedMemorySegment(x,m).offset}else{let o=i.compileExpression(n[0],p.i32,1),u=e.runExpression(o,1);if(!u)return i.error(220,n[0].range),i.currentType=a,e.unreachable();let c=ne(u);if(c<1)return i.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),i.currentType=a,e.unreachable();let f=16;if(s==2&&(f=Vt(n[1],f,i),f<0))return i.currentType=a,e.unreachable();l=i.addAlignedMemorySegment(new Uint8Array(c),f).offset}return i.currentType=a,a==p.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}b.set(d.memory_data,$1);function e6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.i32,1);return i.currentType=p.i31,e.i31_new(n)}b.set(d.i31_new,e6);function t6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.i31.asNullable(),1);return t.contextualType.is(2)?(i.currentType=p.u32,e.i31_get(n,!1)):(i.currentType=p.i32,e.i31_get(n,!0))}b.set(d.i31_get,t6);function r6(t){let i=t.compiler,e=i.module;if(J(t,!0)|K(t,1))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.auto),l=i.currentType;return i.currentType=s,l.isChangeableTo(s)?a:(i.error(202,t.reportNode.range,l.toString(),s.toString()),e.unreachable())}b.set(d.changetype,r6);function i6(t){let i=t.compiler,e=i.module,r=t.typeArguments;if(ae(t,!0)|Se(t,1,2))return r&&(assert(r.length),i.currentType=r[0].nonNullableType),e.unreachable();let n=t.operands,s=t.contextualType,a=r?i.compileExpression(n[0],r[0],5):i.compileExpression(n[0],p.bool,4),l=i.currentType;if(i.currentType=l.nonNullableType,i.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(se(o)){case L.I32:{if(ne(o))return a;break}case L.I64:{if(ve(o)|we(o))return a;break}case L.F32:{if(Ae(o))return a;break}case L.F64:{if(Ee(o))return a;break}}let u=i.makeAbort(n.length==2?n[1]:null,t.reportNode);if(i.currentType=l.nonNullableType,s==p.void)switch(i.currentType=p.void,l.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return e.if(e.unary(20,a),u);case 4:case 9:return e.if(e.unary(21,a),u);case 5:case 10:return e.if(e.unary(145,a),u);case 11:return e.if(e.binary(57,a,e.f32(0)),u);case 12:return e.if(e.binary(70,a,e.f64(0)),u);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return e.if(e.ref_is_null(a),u)}else{i.currentType=l.nonNullableType;let c=i.currentFlow;switch(i.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let f=c.getTempLocal(l);return c.setLocalFlag(f.index,2),e.if(e.local_tee(f.index,a,!1),e.local_get(f.index,L.I32),u)}case 4:case 9:{let f=c.getTempLocal(p.i64);return e.if(e.unary(21,e.local_tee(f.index,a,!1)),u,e.local_get(f.index,L.I64))}case 5:case 10:{let f=c.getTempLocal(i.options.usizeType);return e.if(e.unary(145,e.local_tee(f.index,a,l.isManaged)),u,e.local_get(f.index,i.options.sizeTypeRef))}case 11:{let f=c.getTempLocal(p.f32);return e.if(e.binary(57,e.local_tee(f.index,a,!1),e.f32(0)),u,e.local_get(f.index,L.F32))}case 12:{let f=c.getTempLocal(p.f64);return e.if(e.binary(70,e.local_tee(f.index,a,!1),e.f64(0)),u,e.local_get(f.index,L.F64))}case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:{let f=c.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(f.index,a,!1)),u,e.local_get(f.index,l.toRef()))}}}return i.error(203,t.reportNode.typeArgumentsRange,"assert",i.currentType.toString()),u}b.set(d.assert,i6);function n6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=i.currentFlow,n=i.options.uncheckedBehavior===1,s=r.is(32768);n?assert(!s):r.set(32768);let a=i.compileExpression(t.operands[0],t.contextualType);return s||r.unset(32768),a}b.set(d.unchecked,n6);function s6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=i.currentFlow,n=r.is(131072);n||r.set(131072);let s=i.compileExpression(t.operands[0],t.contextualType);return n||r.unset(131072),s}b.set(d.inline_always,s6);function a6(t){let i=t.compiler,e=i.module;if(ae(t,!0)|Se(t,1,i32.MAX_VALUE))return e.unreachable();let r=t.operands,n=t.typeArguments,s;n?(assert(n.length),s=n[0]):s=t.contextualType;let a=i.compileExpression(r[0],p.u32,1),l=r.length-1,o=new Array(l),u=new Array(l);for(let c=0;c<l;++c)o[c]=i.compileExpression(r[1+c],p.auto),i.currentType.isManaged&&(o[c]=e.tostack(o[c])),u[c]=i.currentType.toRef();return i.currentType=s,e.call_indirect(null,a,o,je(u),s.toRef())}b.set(d.call_indirect,a6);function l6(t){let i=t.compiler,e=i.module;if(J(t,!0))return e.unreachable();let r=t.operands,a=t.typeArguments[0].getClass();if(!a)return i.error(2351,t.reportNode.expression.range),e.unreachable();i.currentType=a.type;let l=i.ensureConstructor(a,t.reportNode);return i.checkFieldInitialization(a,t.reportNode),i.compileInstantiate(l,r,0,t.reportNode)}b.set(d.instantiate,l6);function Cc(t,i){let e=t.compiler,r=e.module;v(t);let n=t.operands,s=t.reportNode;return e.emitDiagnostic(102,i,s.range,null,n.length?n[0].range.toString():s.range.toString()),i==3?r.unreachable():r.nop()}function o6(t){return Cc(t,3)}b.set(d.ERROR,o6);function u6(t){return Cc(t,2)}b.set(d.WARNING,u6);function p6(t){return Cc(t,1)}b.set(d.INFO,p6);function c6(t){let i=t.compiler,e=t.prototype.parent;assert(e.kind==7);let r=e;assert(r.prototype==i.program.functionPrototype);let n=assert(r.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(v(t)|Se(t,1+a.requiredParameters,1+a.parameterTypes.length))return i.currentType=l,i.module.unreachable();let o=i.compileExpression(assert(t.thisOperand),s,1),u=assert(t.operands.shift()),c=a.thisType,f=0;if(c)f=i.compileExpression(u,c,1);else if(u.kind!=19)return i.error(2332,u.range),i.module.unreachable();return i.compileCallIndirect(a,o,t.operands,t.reportNode,f,t.contextualType==p.void)}b.set(d.Function_call,c6);function f6(t){let i=t.compiler,e=i.module;return i.currentType=t.compiler.program.stringInstance.type,i.error(100,t.reportNode.range,"String.raw"),e.unreachable()}b.set(d.String_raw,f6);function Je(t,i){let e=t.compiler;return v(t)|K(t,1)?(e.currentType=i,e.module.unreachable()):e.compileExpression(t.operands[0],i,2)}function _6(t){return Je(t,p.i8)}b.set(d.i8,_6);function h6(t){return Je(t,p.i16)}b.set(d.i16,h6);function d6(t){return Je(t,p.i32)}b.set(d.i32,d6);function m6(t){return Je(t,p.i64)}b.set(d.i64,m6);function y6(t){return Je(t,t.compiler.options.isizeType)}b.set(d.isize,y6);function g6(t){return Je(t,p.u8)}b.set(d.u8,g6);function b6(t){return Je(t,p.u16)}b.set(d.u16,b6);function x6(t){return Je(t,p.u32)}b.set(d.u32,x6);function T6(t){return Je(t,p.u64)}b.set(d.u64,T6);function A6(t){return Je(t,t.compiler.options.usizeType)}b.set(d.usize,A6);function E6(t){return Je(t,p.bool)}b.set(d.bool,E6);function v6(t){return Je(t,p.f32)}b.set(d.f32,v6);function S6(t){return Je(t,p.f64)}b.set(d.f64,S6);function I6(t){return vg(t)}b.set(d.v128,I6);function vg(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,16))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=i.compileExpression(r[l],p.i8,1),u=e.runExpression(o,1);u?_e(ne(u),n,l):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==16;o?l=e.unary(60,s[0]):l=e.v128(n);for(let u=i32(o);u<16;u++){let c=s[u];c&&(l=e.simd_replace(0,l,u,c))}return l}}b.set(d.i8x16,vg);function R6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,8))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=i.compileExpression(r[l],p.i16,1),u=e.runExpression(o,1);u?Zt(ne(u),n,l<<1):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==8;o?l=e.unary(61,s[0]):l=e.v128(n);for(let u=i32(o);u<8;u++){let c=s[u];c&&(l=e.simd_replace(1,l,u,c))}return l}}b.set(d.i16x8,R6);function F6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,4))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(r[l],p.i32,1),u=e.runExpression(o,1);u?me(ne(u),n,l<<2):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(62,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(2,l,u,c))}return l}}b.set(d.i32x4,F6);function k6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(r[l],p.i64,1),u=e.runExpression(o,1);if(u){let c=l<<3;me(ve(u),n,c+0),me(we(u),n,c+4)}else s[l]=o,a++}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(63,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(3,l,u,c))}return l}}b.set(d.i64x2,k6);function w6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,4))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(r[l],p.f32,1),u=e.runExpression(o,1);u?xr(Ae(u),n,l<<2):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(64,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(5,l,u,c))}return l}}b.set(d.f32x4,w6);function C6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(r[l],p.f64,1),u=e.runExpression(o,1);u?Tr(Ee(u),n,l<<3):(s[l]=o,a++)}if(i.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(65,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(6,l,u,c))}return l}}b.set(d.f64x2,C6);function Nr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],s,1);if(i.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.unary(60,a);case 2:case 7:return e.unary(61,a);case 3:case 8:return e.unary(62,a);case 4:case 9:return e.unary(63,a);case 5:case 10:return e.unary(i.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}b.set(d.v128_splat,Nr);function qt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|K(t,2))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.u8,1);i.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=ne(u):i.error(220,r[1].range),s.isValue){let c=16/assert(s.byteSize)-1;switch((o<0||o>c)&&(i.error(222,r[1].range,"Lane index","0",c.toString()),o=0),s.kind){case 1:return e.simd_extract(0,a,o);case 6:return e.simd_extract(1,a,o);case 2:return e.simd_extract(2,a,o);case 7:return e.simd_extract(3,a,o);case 3:case 8:return e.simd_extract(4,a,o);case 4:case 9:return e.simd_extract(5,a,o);case 5:case 10:return e.simd_extract(i.options.isWasm64?5:4,a,o);case 11:return e.simd_extract(7,a,o);case 12:return e.simd_extract(8,a,o)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}b.set(d.v128_extract_lane,qt);function Mr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.u8,1),o=i.compileExpression(r[2],s,1);i.currentType=p.v128;let u=0,c=e.runExpression(l,1);if(c?u=ne(c):i.error(220,r[1].range),s.isValue){let f=16/assert(s.byteSize)-1;switch((u<0||u>f)&&(i.error(222,r[1].range,"Lane index","0",f.toString()),u=0),s.kind){case 1:case 6:return e.simd_replace(0,a,u,o);case 2:case 7:return e.simd_replace(1,a,u,o);case 3:case 8:return e.simd_replace(2,a,u,o);case 4:case 9:return e.simd_replace(3,a,u,o);case 5:case 10:return e.simd_replace(i.options.isWasm64?3:2,a,u,o);case 11:return e.simd_replace(5,a,u,o);case 12:return e.simd_replace(6,a,u,o)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}b.set(d.v128_replace_lane,Mr);function Gr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&Ct(l)),K(t,2+l))return i.currentType=p.v128,e.unreachable();let o=i.compileExpression(r[0],p.v128,1),u=i.compileExpression(r[1],p.v128,1);switch(s.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{let c=new Uint8Array(16),f=(l<<1)-1;for(let _=0;_<l;++_){let h=r[2+_],m=i.compileExpression(h,p.u8,1),x=e.runExpression(m,1),g=0;switch(x?(g=ne(x),(g<0||g>f)&&(i.error(222,h.range,"Lane index","0",f.toString()),g=0)):i.error(220,h.range),a){case 1:{_e(g,c,_);break}case 2:{let T=_<<1,I=g<<1;_e(I,c,T),_e(I+1,c,T+1);break}case 4:{let T=_<<2,I=g<<2;_e(I,c,T),_e(I+1,c,T+1),_e(I+2,c,T+2),_e(I+3,c,T+3);break}case 8:{let T=_<<3,I=g<<3;_e(I,c,T),_e(I+1,c,T+1),_e(I+2,c,T+2),_e(I+3,c,T+3),_e(I+4,c,T+4),_e(I+5,c,T+5),_e(I+6,c,T+6),_e(I+7,c,T+7);break}default:assert(!1)}}return i.currentType=p.v128,e.simd_shuffle(o,u,c)}}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),i.currentType=p.v128,e.unreachable()}b.set(d.v128_shuffle,Gr);function Sg(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1);return e.binary(209,n,s)}b.set(d.v128_swizzle,Sg);function gs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=et(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Vt(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.simd_load(0,a,o,u);case 2:case 7:return e.simd_load(1,a,o,u);case 3:case 8:case 11:return e.simd_load(2,a,o,u);case 5:case 10:if(!i.options.isWasm64)return e.simd_load(2,a,o,u);case 4:case 9:case 12:return e.simd_load(3,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}b.set(d.v128_load_splat,gs);function zr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=et(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Vt(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue)switch(s.kind){case 1:return e.simd_load(4,a,o,u);case 6:return e.simd_load(5,a,o,u);case 2:return e.simd_load(6,a,o,u);case 7:return e.simd_load(7,a,o,u);case 5:if(i.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(i.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}b.set(d.v128_load_ext,zr);function Pc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=et(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Vt(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue)switch(s.kind){case 3:case 8:case 11:return e.simd_load(10,a,o,u);case 4:case 9:case 12:return e.simd_load(11,a,o,u);case 5:case 10:return e.simd_load(i.options.isWasm64?11:10,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}b.set(d.v128_load_zero,Pc);function bs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,3,5))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ne(c):i.error(220,r[2].range);let f=r.length,_=0,h=s.byteSize;if(f>=4){if(_=et(r[3],i),_<0)return i.currentType=p.v128,e.unreachable();if(f==5&&(h=Vt(r[4],h,i),h<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue){let m=16/assert(s.byteSize)-1;switch((u<0||u>m)&&(i.error(222,r[1].range,"Lane index","0",m.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,_,h,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,_,h,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,_,h,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,_,h,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?3:2,a,_,h,u,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}b.set(d.v128_load_lane,bs);function xs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,3,5))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ne(c):i.error(220,r[2].range);let f=r.length,_=0,h=s.byteSize;if(f>=4){if(_=et(r[3],i),_<0)return i.currentType=p.v128,e.unreachable();if(f==5&&(h=Vt(r[4],h,i),h<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.void,s.isValue){let m=16/assert(s.byteSize)-1;switch((u<0||u>m)&&(i.error(222,r[1].range,"Lane index","0",m.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,_,h,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,_,h,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,_,h,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,_,h,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?7:6,a,_,h,u,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}b.set(d.v128_store_lane,xs);function Dr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(134,a,l);case 2:case 7:return e.binary(145,a,l);case 3:case 8:return e.binary(162,a,l);case 4:case 9:return e.binary(174,a,l);case 5:case 10:return e.binary(i.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}b.set(d.v128_add,Dr);function Ur(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(137,a,l);case 2:case 7:return e.binary(148,a,l);case 3:case 8:return e.binary(163,a,l);case 4:case 9:return e.binary(175,a,l);case 5:case 10:return e.binary(i.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}b.set(d.v128_sub,Ur);function Mi(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:case 7:return e.binary(151,a,l);case 3:case 8:return e.binary(164,a,l);case 4:case 9:return e.binary(176,a,l);case 5:case 10:return e.binary(i.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}b.set(d.v128_mul,Mi);function Bc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(192,a,l);case 12:return e.binary(200,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}b.set(d.v128_div,Bc);function Ts(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(135,a,l);case 6:return e.binary(136,a,l);case 2:return e.binary(146,a,l);case 7:return e.binary(147,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}b.set(d.v128_add_sat,Ts);function As(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(138,a,l);case 6:return e.binary(139,a,l);case 2:return e.binary(149,a,l);case 7:return e.binary(150,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}b.set(d.v128_sub_sat,As);function Wt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(140,a,l);case 6:return e.binary(141,a,l);case 2:return e.binary(152,a,l);case 7:return e.binary(153,a,l);case 5:if(i.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(i.options.isWasm64)break;case 8:return e.binary(166,a,l);case 11:return e.binary(193,a,l);case 12:return e.binary(201,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}b.set(d.v128_min,Wt);function Kt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(142,a,l);case 6:return e.binary(143,a,l);case 2:return e.binary(154,a,l);case 7:return e.binary(155,a,l);case 5:if(i.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(i.options.isWasm64)break;case 8:return e.binary(168,a,l);case 11:return e.binary(194,a,l);case 12:return e.binary(202,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}b.set(d.v128_max,Kt);function Lc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(195,a,l);case 12:return e.binary(203,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}b.set(d.v128_pmin,Lc);function Nc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(196,a,l);case 12:return e.binary(204,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}b.set(d.v128_pmax,Nc);function Ig(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}b.set(d.v128_dot,Ig);function Mc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 6:return e.binary(144,a,l);case 7:return e.binary(156,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}b.set(d.v128_avgr,Mc);function Vr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(76,a,l);case 2:case 7:return e.binary(86,a,l);case 3:case 8:return e.binary(96,a,l);case 4:case 9:return e.binary(106,a,l);case 5:case 10:return e.binary(i.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}b.set(d.v128_eq,Vr);function Or(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(77,a,l);case 2:case 7:return e.binary(87,a,l);case 3:case 8:return e.binary(97,a,l);case 4:case 9:return e.binary(107,a,l);case 5:case 10:return e.binary(i.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}b.set(d.v128_ne,Or);function bt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(78,a,l);case 6:return e.binary(79,a,l);case 2:return e.binary(88,a,l);case 7:return e.binary(89,a,l);case 3:return e.binary(98,a,l);case 8:return e.binary(99,a,l);case 4:return e.binary(108,a,l);case 5:return e.binary(i.options.isWasm64?108:98,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(99,a,l)}case 11:return e.binary(120,a,l);case 12:return e.binary(126,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}b.set(d.v128_lt,bt);function xt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(82,a,l);case 6:return e.binary(83,a,l);case 2:return e.binary(92,a,l);case 7:return e.binary(93,a,l);case 3:return e.binary(102,a,l);case 8:return e.binary(103,a,l);case 4:return e.binary(110,a,l);case 5:return e.binary(i.options.isWasm64?110:102,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(103,a,l)}case 11:return e.binary(122,a,l);case 12:return e.binary(128,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}b.set(d.v128_le,xt);function Tt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(80,a,l);case 6:return e.binary(81,a,l);case 2:return e.binary(90,a,l);case 7:return e.binary(91,a,l);case 3:return e.binary(100,a,l);case 8:return e.binary(101,a,l);case 4:return e.binary(109,a,l);case 5:return e.binary(i.options.isWasm64?109:100,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(101,a,l)}case 11:return e.binary(121,a,l);case 12:return e.binary(127,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}b.set(d.v128_gt,Tt);function At(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(84,a,l);case 6:return e.binary(85,a,l);case 2:return e.binary(94,a,l);case 7:return e.binary(95,a,l);case 3:return e.binary(104,a,l);case 8:return e.binary(105,a,l);case 4:return e.binary(111,a,l);case 5:return e.binary(i.options.isWasm64?111:104,a,l);case 10:{if(i.options.isWasm64)break;return e.binary(105,a,l)}case 11:return e.binary(123,a,l);case 12:return e.binary(129,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}b.set(d.v128_ge,At);function Es(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:return e.binary(205,a,l);case 7:return e.binary(206,a,l);case 3:return e.binary(207,a,l);case 8:return e.binary(208,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}b.set(d.v128_narrow,Es);function qr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.unary(69,a);case 2:case 7:return e.unary(74,a);case 3:case 8:return e.unary(78,a);case 4:case 9:return e.unary(82,a);case 5:case 10:return e.unary(i.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}b.set(d.v128_neg,qr);function Wr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(68,a);case 2:return e.unary(73,a);case 3:return e.unary(77,a);case 4:return e.unary(81,a);case 5:return e.unary(i.options.isWasm64?81:77,a);case 6:case 7:case 8:case 9:case 10:return a;case 11:return e.unary(92,a);case 12:return e.unary(99,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}b.set(d.v128_abs,Wr);function Gc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(94,a);case 12:return e.unary(101,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}b.set(d.v128_sqrt,Gc);function zc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(95,a);case 12:return e.unary(102,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}b.set(d.v128_ceil,zc);function Dc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(96,a);case 12:return e.unary(103,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}b.set(d.v128_floor,Dc);function Uc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(97,a);case 12:return e.unary(104,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}b.set(d.v128_trunc,Uc);function Vc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(98,a);case 12:return e.unary(105,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}b.set(d.v128_nearest,Vc);function Oc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(113,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}b.set(d.v128_convert,Oc);function qc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(127,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}b.set(d.v128_convert_low,qc);function Wc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(111,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}b.set(d.v128_trunc_sat,Wc);function Kc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(129,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}b.set(d.v128_trunc_sat_zero,Kc);function Kr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(114,a);case 6:return e.unary(116,a);case 2:return e.unary(118,a);case 7:return e.unary(120,a);case 5:if(i.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(124,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}b.set(d.v128_extend_low,Kr);function jr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(115,a);case 6:return e.unary(117,a);case 2:return e.unary(119,a);case 7:return e.unary(121,a);case 5:if(i.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(125,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}b.set(d.v128_extend_high,jr);function vs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1),a=i.compileExpression(r[1],p.i32,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.simd_shift(0,s,a);case 2:case 7:return e.simd_shift(3,s,a);case 3:case 8:return e.simd_shift(6,s,a);case 4:case 9:return e.simd_shift(9,s,a);case 5:case 10:return e.simd_shift(i.options.isWasm64?9:6,s,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}b.set(d.v128_shl,vs);function jt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1),a=i.compileExpression(r[1],p.i32,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.simd_shift(1,s,a);case 6:return e.simd_shift(2,s,a);case 2:return e.simd_shift(4,s,a);case 7:return e.simd_shift(5,s,a);case 3:return e.simd_shift(7,s,a);case 8:return e.simd_shift(8,s,a);case 4:return e.simd_shift(10,s,a);case 9:return e.simd_shift(11,s,a);case 5:return e.simd_shift(i.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(i.options.isWasm64?11:8,s,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}b.set(d.v128_shr,jt);function io(t,i){let e=t.compiler,r=e.module;if(X(t,16)|v(t)|K(t,2))return e.currentType=p.v128,r.unreachable();let n=t.operands,s=e.compileExpression(n[0],p.v128,1),a=e.compileExpression(n[1],p.v128,1);return r.binary(i,s,a)}function P6(t){return io(t,130)}b.set(d.v128_and,P6);function B6(t){return io(t,131)}b.set(d.v128_or,B6);function L6(t){return io(t,132)}b.set(d.v128_xor,L6);function N6(t){return io(t,133)}b.set(d.v128_andnot,N6);function M6(t,i){let e=t.compiler,r=e.module;if(X(t,16)|v(t)|K(t,1))return e.currentType=p.v128,r.unreachable();let n=t.operands,s=e.compileExpression(n[0],p.v128,1);return r.unary(i,s)}function G6(t){return M6(t,66)}b.set(d.v128_not,G6);function z6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1),a=i.compileExpression(r[2],p.v128,1);return e.simd_ternary(0,n,s,a)}b.set(d.v128_bitselect,z6);function D6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1);return i.currentType=p.bool,e.unary(67,n)}b.set(d.v128_any_true,D6);function Ss(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.bool,n.isValue)switch(n.kind){case 1:case 6:return e.unary(70,s);case 2:case 7:return e.unary(75,s);case 3:case 8:return e.unary(79,s);case 4:case 9:return e.unary(83,s);case 5:case 10:return e.unary(i.options.isWasm64?83:79,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}b.set(d.v128_all_true,Ss);function Is(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.i32,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.i32,n.isValue)switch(n.kind){case 1:case 6:return e.unary(71,s);case 2:case 7:return e.unary(76,s);case 3:case 8:return e.unary(80,s);case 4:case 9:return e.unary(84,s);case 5:case 10:return e.unary(i.options.isWasm64?84:80,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}b.set(d.v128_bitmask,Is);function Rg(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}b.set(d.v128_popcnt,Rg);function Rs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.unary(106,s);case 6:return e.unary(107,s);case 2:return e.unary(108,s);case 7:return e.unary(109,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}b.set(d.v128_extadd_pairwise,Rs);function Fg(t){let i=t.compiler,e=i.module;if(X(t,16)|ae(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?n[0]:p.f64,a=i.compileExpression(r[0],p.v128,1);return i.currentType=p.v128,s.isValue&&s.kind===12?e.unary(130,a):(i.error(203,t.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}b.set(d.v128_demote_zero,Fg);function kg(t){let i=t.compiler,e=i.module;if(X(t,16)|ae(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?n[0]:p.f32,a=i.compileExpression(r[0],p.v128,1);return i.currentType=p.v128,s.isValue&&s.kind===11?e.unary(131,a):(i.error(203,t.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}b.set(d.v128_promote_low,kg);function wg(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}b.set(d.v128_q15mulr_sat,wg);function Hr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(158,a,l);case 6:return e.binary(160,a,l);case 2:return e.binary(170,a,l);case 7:return e.binary(172,a,l);case 3:return e.binary(177,a,l);case 8:return e.binary(179,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}b.set(d.v128_extmul_low,Hr);function Qr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(159,a,l);case 6:return e.binary(161,a,l);case 2:return e.binary(171,a,l);case 7:return e.binary(173,a,l);case 3:return e.binary(178,a,l);case 8:return e.binary(180,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}b.set(d.v128_extmul_high,Qr);function Cg(t){let i=t.compiler,e=i.module;if(X(t,4096)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1);return e.binary(210,n,s)}b.set(d.v128_relaxed_swizzle,Cg);function jc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(133,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}b.set(d.v128_relaxed_trunc,jc);function Hc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(135,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}b.set(d.v128_relaxed_trunc_zero,Hc);function Qc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(1,a,l,o);case 12:return e.simd_ternary(3,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}b.set(d.v128_relaxed_madd,Qc);function Xc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(2,a,l,o);case 12:return e.simd_ternary(4,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}b.set(d.v128_relaxed_nmadd,Xc);function Fs(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.simd_ternary(5,a,l,o);case 2:case 7:return e.simd_ternary(6,a,l,o);case 3:case 8:return e.simd_ternary(7,a,l,o);case 4:case 9:return e.simd_ternary(8,a,l,o);case 5:case 10:return e.simd_ternary(i.options.isWasm64?8:7,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}b.set(d.v128_relaxed_laneselect,Fs);function Jc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(211,a,l);case 12:return e.binary(213,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}b.set(d.v128_relaxed_min,Jc);function Zc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(212,a,l);case 12:return e.binary(214,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}b.set(d.v128_relaxed_max,Zc);function Pg(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}b.set(d.v128_relaxed_q15mulr,Pg);function Bg(t){let i=t.compiler,e=i.module;if(X(t,4096)|K(t,2)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.kind===2?e.binary(216,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}b.set(d.v128_relaxed_dot,Bg);function Lg(t){let i=t.compiler,e=i.module;if(X(t,4096)|K(t,3)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}b.set(d.v128_relaxed_dot_add,Lg);function U6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return i.currentType=p.void,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.u32,1);return i.runtimeFeatures|=16,i.currentType=p.void,e.call(d.visit_globals,[n],L.None)}b.set(d.visit_globals,U6);function V6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,2))return i.currentType=p.void,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],i.options.usizeType,1),s=i.compileExpression(r[1],p.u32,1);return i.runtimeFeatures|=32,i.currentType=p.void,e.call(d.visit_members,[n,s],L.None)}b.set(d.visit_members,V6);function O6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,mc(t)}b.set(d.i32_clz,O6);function q6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,mc(t)}b.set(d.i64_clz,q6);function W6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,yc(t)}b.set(d.i32_ctz,W6);function K6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,yc(t)}b.set(d.i64_ctz,K6);function j6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,gc(t)}b.set(d.i32_popcnt,j6);function H6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,gc(t)}b.set(d.i64_popcnt,H6);function Q6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,bc(t)}b.set(d.i32_rotl,Q6);function X6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,bc(t)}b.set(d.i64_rotl,X6);function J6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,xc(t)}b.set(d.i32_rotr,J6);function Z6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,xc(t)}b.set(d.i64_rotr,Z6);function Y6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Tc(t)}b.set(d.f32_abs,Y6);function $6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Tc(t)}b.set(d.f64_abs,$6);function eT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Ac(t)}b.set(d.f32_max,eT);function tT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Ac(t)}b.set(d.f64_max,tT);function rT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Ec(t)}b.set(d.f32_min,rT);function iT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Ec(t)}b.set(d.f64_min,iT);function nT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,vc(t)}b.set(d.f32_ceil,nT);function sT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,vc(t)}b.set(d.f64_ceil,sT);function aT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Sc(t)}b.set(d.f32_floor,aT);function lT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Sc(t)}b.set(d.f64_floor,lT);function oT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Ic(t)}b.set(d.f32_copysign,oT);function uT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Ic(t)}b.set(d.f64_copysign,uT);function pT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Rc(t)}b.set(d.f32_nearest,pT);function cT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Rc(t)}b.set(d.f64_nearest,cT);function fT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.f32,cs(t)}b.set(d.i32_reinterpret_f32,fT);function _T(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.f64,cs(t)}b.set(d.i64_reinterpret_f64,_T);function hT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,cs(t)}b.set(d.f32_reinterpret_i32,hT);function dT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i64,cs(t)}b.set(d.f64_reinterpret_i64,dT);function mT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Fc(t)}b.set(d.f32_sqrt,mT);function yT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Fc(t)}b.set(d.f64_sqrt,yT);function gT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,kc(t)}b.set(d.f32_trunc,gT);function bT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,kc(t)}b.set(d.f64_trunc,bT);function xT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,fs(t)}b.set(d.i32_rem_s,xT);function TT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.u32,fs(t)}b.set(d.i32_rem_u,TT);function AT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,fs(t)}b.set(d.i64_rem_s,AT);function ET(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.u64,fs(t)}b.set(d.i64_rem_u,ET);function vT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,_s(t)}b.set(d.i32_add,vT);function ST(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,_s(t)}b.set(d.i64_add,ST);function IT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,_s(t)}b.set(d.f32_add,IT);function RT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,_s(t)}b.set(d.f64_add,RT);function FT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,hs(t)}b.set(d.i32_sub,FT);function kT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,hs(t)}b.set(d.i64_sub,kT);function wT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,hs(t)}b.set(d.f32_sub,wT);function CT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,hs(t)}b.set(d.f64_sub,CT);function PT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ds(t)}b.set(d.i32_mul,PT);function BT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,ds(t)}b.set(d.i64_mul,BT);function LT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,ds(t)}b.set(d.f32_mul,LT);function NT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,ds(t)}b.set(d.f64_mul,NT);function MT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Lr(t)}b.set(d.i32_div_s,MT);function GT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.u32,Lr(t)}b.set(d.i32_div_u,GT);function zT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Lr(t)}b.set(d.i64_div_s,zT);function DT(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.u64,Lr(t)}b.set(d.i64_div_u,DT);function UT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Lr(t)}b.set(d.f32_div,UT);function VT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Lr(t)}b.set(d.f64_div,VT);function OT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ms(t)}b.set(d.i32_eq,OT);function qT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,ms(t)}b.set(d.i64_eq,qT);function WT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,ms(t)}b.set(d.f32_eq,WT);function KT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i32,ms(t)}b.set(d.f64_eq,KT);function jT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ys(t)}b.set(d.i32_ne,jT);function HT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,ys(t)}b.set(d.i64_ne,HT);function QT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,ys(t)}b.set(d.f32_ne,QT);function XT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i32,ys(t)}b.set(d.f64_ne,XT);function JT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load8_s,JT);function ZT(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load8_u,ZT);function YT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load16_s,YT);function $T(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load16_u,$T);function eA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Pe(t)}b.set(d.i32_load,eA);function tA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load8_s,tA);function rA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load8_u,rA);function iA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load16_s,iA);function nA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load16_u,nA);function sA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load32_s,sA);function aA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load32_u,aA);function lA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Pe(t)}b.set(d.i64_load,lA);function oA(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Pe(t)}b.set(d.f32_load,oA);function uA(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Pe(t)}b.set(d.f64_load,uA);function pA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,t.contextIsExact=!0,ot(t)}b.set(d.i32_store8,pA);function cA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,t.contextIsExact=!0,ot(t)}b.set(d.i32_store16,cA);function fA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ot(t)}b.set(d.i32_store,fA);function _A(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,t.contextIsExact=!0,ot(t)}b.set(d.i64_store8,_A);function hA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i64,t.contextIsExact=!0,ot(t)}b.set(d.i64_store16,hA);function dA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,t.contextIsExact=!0,ot(t)}b.set(d.i64_store32,dA);function mA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ot(t)}b.set(d.i64_store,mA);function yA(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,t.contextIsExact=!0,ot(t)}b.set(d.f32_store,yA);function gA(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,t.contextIsExact=!0,ot(t)}b.set(d.f64_store,gA);function bA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,sr(t)}b.set(d.i32_atomic_load8_u,bA);function xA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,sr(t)}b.set(d.i32_atomic_load16_u,xA);function TA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,sr(t)}b.set(d.i32_atomic_load,TA);function AA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,sr(t)}b.set(d.i64_atomic_load8_u,AA);function EA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,sr(t)}b.set(d.i64_atomic_load16_u,EA);function vA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,sr(t)}b.set(d.i64_atomic_load32_u,vA);function SA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,sr(t)}b.set(d.i64_atomic_load,SA);function IA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,t.contextIsExact=!0,ar(t)}b.set(d.i32_atomic_store8,IA);function RA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,t.contextIsExact=!0,ar(t)}b.set(d.i32_atomic_store16,RA);function FA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ar(t)}b.set(d.i32_atomic_store,FA);function kA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,t.contextIsExact=!0,ar(t)}b.set(d.i64_atomic_store8,kA);function wA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,ar(t)}b.set(d.i64_atomic_store16,wA);function CA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,t.contextIsExact=!0,ar(t)}b.set(d.i64_atomic_store32,CA);function PA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ar(t)}b.set(d.i64_atomic_store,PA);function BA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}b.set(d.i32_atomic_rmw8_add_u,BA);function LA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}b.set(d.i32_atomic_rmw16_add_u,LA);function NA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}b.set(d.i32_atomic_rmw_add,NA);function MA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}b.set(d.i64_atomic_rmw8_add_u,MA);function GA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}b.set(d.i64_atomic_rmw16_add_u,GA);function zA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}b.set(d.i64_atomic_rmw32_add_u,zA);function DA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}b.set(d.i64_atomic_rmw_add,DA);function UA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}b.set(d.i32_atomic_rmw8_sub_u,UA);function VA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}b.set(d.i32_atomic_rmw16_sub_u,VA);function OA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}b.set(d.i32_atomic_rmw_sub,OA);function qA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}b.set(d.i64_atomic_rmw8_sub_u,qA);function WA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}b.set(d.i64_atomic_rmw16_sub_u,WA);function KA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}b.set(d.i64_atomic_rmw32_sub_u,KA);function jA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}b.set(d.i64_atomic_rmw_sub,jA);function HA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}b.set(d.i32_atomic_rmw8_and_u,HA);function QA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}b.set(d.i32_atomic_rmw16_and_u,QA);function XA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}b.set(d.i32_atomic_rmw_and,XA);function JA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}b.set(d.i64_atomic_rmw8_and_u,JA);function ZA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}b.set(d.i64_atomic_rmw16_and_u,ZA);function YA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}b.set(d.i64_atomic_rmw32_and_u,YA);function $A(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}b.set(d.i64_atomic_rmw_and,$A);function eE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}b.set(d.i32_atomic_rmw8_or_u,eE);function tE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}b.set(d.i32_atomic_rmw16_or_u,tE);function rE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}b.set(d.i32_atomic_rmw_or,rE);function iE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}b.set(d.i64_atomic_rmw8_or_u,iE);function nE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}b.set(d.i64_atomic_rmw16_or_u,nE);function sE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}b.set(d.i64_atomic_rmw32_or_u,sE);function aE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}b.set(d.i64_atomic_rmw_or,aE);function lE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}b.set(d.i32_atomic_rmw8_xor_u,lE);function oE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}b.set(d.i32_atomic_rmw16_xor_u,oE);function uE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}b.set(d.i32_atomic_rmw_xor,uE);function pE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}b.set(d.i64_atomic_rmw8_xor_u,pE);function cE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}b.set(d.i64_atomic_rmw16_xor_u,cE);function fE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}b.set(d.i64_atomic_rmw32_xor_u,fE);function _E(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}b.set(d.i64_atomic_rmw_xor,_E);function hE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}b.set(d.i32_atomic_rmw8_xchg_u,hE);function dE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}b.set(d.i32_atomic_rmw16_xchg_u,dE);function mE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}b.set(d.i32_atomic_rmw_xchg,mE);function yE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}b.set(d.i64_atomic_rmw8_xchg_u,yE);function gE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}b.set(d.i64_atomic_rmw16_xchg_u,gE);function bE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}b.set(d.i64_atomic_rmw32_xchg_u,bE);function xE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}b.set(d.i64_atomic_rmw_xchg,xE);function TE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}b.set(d.i32_atomic_rmw8_cmpxchg_u,TE);function AE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}b.set(d.i32_atomic_rmw16_cmpxchg_u,AE);function EE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}b.set(d.i32_atomic_rmw_cmpxchg,EE);function vE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}b.set(d.i64_atomic_rmw8_cmpxchg_u,vE);function SE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}b.set(d.i64_atomic_rmw16_cmpxchg_u,SE);function IE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}b.set(d.i64_atomic_rmw32_cmpxchg_u,IE);function RE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}b.set(d.i64_atomic_rmw_cmpxchg,RE);function FE(t){return v(t),t.typeArguments=[p.i32],wc(t)}b.set(d.memory_atomic_wait32,FE);function kE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,wc(t)}b.set(d.memory_atomic_wait64,kE);function wE(t){return v(t),t.typeArguments=[p.v128],t.contextualType=p.v128,Pe(t)}b.set(d.v128_load,wE);function CE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,zr(t)}b.set(d.v128_load8x8_s,CE);function PE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,zr(t)}b.set(d.v128_load8x8_u,PE);function BE(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,zr(t)}b.set(d.v128_load16x4_s,BE);function LE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,zr(t)}b.set(d.v128_load16x4_u,LE);function NE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,zr(t)}b.set(d.v128_load32x2_s,NE);function ME(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,zr(t)}b.set(d.v128_load32x2_u,ME);function GE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,gs(t)}b.set(d.v128_load8_splat,GE);function zE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,gs(t)}b.set(d.v128_load16_splat,zE);function DE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,gs(t)}b.set(d.v128_load32_splat,DE);function UE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,gs(t)}b.set(d.v128_load64_splat,UE);function VE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Pc(t)}b.set(d.v128_load32_zero,VE);function OE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,Pc(t)}b.set(d.v128_load64_zero,OE);function qE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,bs(t)}b.set(d.v128_load8_lane,qE);function WE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,bs(t)}b.set(d.v128_load16_lane,WE);function KE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,bs(t)}b.set(d.v128_load32_lane,KE);function jE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,bs(t)}b.set(d.v128_load64_lane,jE);function HE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,xs(t)}b.set(d.v128_store8_lane,HE);function QE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,xs(t)}b.set(d.v128_store16_lane,QE);function XE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,xs(t)}b.set(d.v128_store32_lane,XE);function JE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,xs(t)}b.set(d.v128_store64_lane,JE);function ZE(t){return v(t),t.typeArguments=[p.v128],t.contextualType=p.v128,t.contextIsExact=!0,ot(t)}b.set(d.v128_store,ZE);function YE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Nr(t)}b.set(d.i8x16_splat,YE);function $E(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,qt(t)}b.set(d.i8x16_extract_lane_s,$E);function e4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,qt(t)}b.set(d.i8x16_extract_lane_u,e4);function t4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Mr(t)}b.set(d.i8x16_replace_lane,t4);function r4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Dr(t)}b.set(d.i8x16_add,r4);function i4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ur(t)}b.set(d.i8x16_sub,i4);function n4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Wt(t)}b.set(d.i8x16_min_s,n4);function s4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Wt(t)}b.set(d.i8x16_min_u,s4);function a4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Kt(t)}b.set(d.i8x16_max_s,a4);function l4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Kt(t)}b.set(d.i8x16_max_u,l4);function o4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Mc(t)}b.set(d.i8x16_avgr_u,o4);function u4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Wr(t)}b.set(d.i8x16_abs,u4);function p4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,qr(t)}b.set(d.i8x16_neg,p4);function c4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ts(t)}b.set(d.i8x16_add_sat_s,c4);function f4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Ts(t)}b.set(d.i8x16_add_sat_u,f4);function _4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,As(t)}b.set(d.i8x16_sub_sat_s,_4);function h4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,As(t)}b.set(d.i8x16_sub_sat_u,h4);function d4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,vs(t)}b.set(d.i8x16_shl,d4);function m4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,jt(t)}b.set(d.i8x16_shr_s,m4);function y4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,jt(t)}b.set(d.i8x16_shr_u,y4);function g4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Ss(t)}b.set(d.i8x16_all_true,g4);function b4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Is(t)}b.set(d.i8x16_bitmask,b4);function x4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Rg(t)}b.set(d.i8x16_popcnt,x4);function T4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Vr(t)}b.set(d.i8x16_eq,T4);function A4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Or(t)}b.set(d.i8x16_ne,A4);function E4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,bt(t)}b.set(d.i8x16_lt_s,E4);function v4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,bt(t)}b.set(d.i8x16_lt_u,v4);function S4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,xt(t)}b.set(d.i8x16_le_s,S4);function I4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,xt(t)}b.set(d.i8x16_le_u,I4);function R4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Tt(t)}b.set(d.i8x16_gt_s,R4);function F4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Tt(t)}b.set(d.i8x16_gt_u,F4);function k4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,At(t)}b.set(d.i8x16_ge_s,k4);function w4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,At(t)}b.set(d.i8x16_ge_u,w4);function C4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Es(t)}b.set(d.i8x16_narrow_i16x8_s,C4);function P4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Es(t)}b.set(d.i8x16_narrow_i16x8_u,P4);function B4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Gr(t)}b.set(d.i8x16_shuffle,B4);function L4(t){return v(t),t.typeArguments=null,t.contextualType=p.v128,Sg(t)}b.set(d.i8x16_swizzle,L4);function N4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Nr(t)}b.set(d.i16x8_splat,N4);function M4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,qt(t)}b.set(d.i16x8_extract_lane_s,M4);function G4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,qt(t)}b.set(d.i16x8_extract_lane_u,G4);function z4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Mr(t)}b.set(d.i16x8_replace_lane,z4);function D4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Dr(t)}b.set(d.i16x8_add,D4);function U4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ur(t)}b.set(d.i16x8_sub,U4);function V4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Mi(t)}b.set(d.i16x8_mul,V4);function O4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Wt(t)}b.set(d.i16x8_min_s,O4);function q4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Wt(t)}b.set(d.i16x8_min_u,q4);function W4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Kt(t)}b.set(d.i16x8_max_s,W4);function K4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Kt(t)}b.set(d.i16x8_max_u,K4);function j4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Mc(t)}b.set(d.i16x8_avgr_u,j4);function H4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Wr(t)}b.set(d.i16x8_abs,H4);function Q4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,qr(t)}b.set(d.i16x8_neg,Q4);function X4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ts(t)}b.set(d.i16x8_add_sat_s,X4);function J4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Ts(t)}b.set(d.i16x8_add_sat_u,J4);function Z4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,As(t)}b.set(d.i16x8_sub_sat_s,Z4);function Y4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,As(t)}b.set(d.i16x8_sub_sat_u,Y4);function $4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,vs(t)}b.set(d.i16x8_shl,$4);function ev(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,jt(t)}b.set(d.i16x8_shr_s,ev);function tv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,jt(t)}b.set(d.i16x8_shr_u,tv);function rv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Ss(t)}b.set(d.i16x8_all_true,rv);function iv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Is(t)}b.set(d.i16x8_bitmask,iv);function nv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Vr(t)}b.set(d.i16x8_eq,nv);function sv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Or(t)}b.set(d.i16x8_ne,sv);function av(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,bt(t)}b.set(d.i16x8_lt_s,av);function lv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,bt(t)}b.set(d.i16x8_lt_u,lv);function ov(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,xt(t)}b.set(d.i16x8_le_s,ov);function uv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,xt(t)}b.set(d.i16x8_le_u,uv);function pv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Tt(t)}b.set(d.i16x8_gt_s,pv);function cv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Tt(t)}b.set(d.i16x8_gt_u,cv);function fv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,At(t)}b.set(d.i16x8_ge_s,fv);function _v(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,At(t)}b.set(d.i16x8_ge_u,_v);function hv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Es(t)}b.set(d.i16x8_narrow_i32x4_s,hv);function dv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Es(t)}b.set(d.i16x8_narrow_i32x4_u,dv);function mv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Kr(t)}b.set(d.i16x8_extend_low_i8x16_s,mv);function yv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Kr(t)}b.set(d.i16x8_extend_low_i8x16_u,yv);function gv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,jr(t)}b.set(d.i16x8_extend_high_i8x16_s,gv);function bv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,jr(t)}b.set(d.i16x8_extend_high_i8x16_u,bv);function xv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Rs(t)}b.set(d.i16x8_extadd_pairwise_i8x16_s,xv);function Tv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Rs(t)}b.set(d.i16x8_extadd_pairwise_i8x16_u,Tv);function Av(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,wg(t)}b.set(d.i16x8_q15mulr_sat_s,Av);function Ev(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Hr(t)}b.set(d.i16x8_extmul_low_i8x16_s,Ev);function vv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Hr(t)}b.set(d.i16x8_extmul_low_i8x16_u,vv);function Sv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Qr(t)}b.set(d.i16x8_extmul_high_i8x16_s,Sv);function Iv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Qr(t)}b.set(d.i16x8_extmul_high_i8x16_u,Iv);function Rv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Gr(t)}b.set(d.i16x8_shuffle,Rv);function Fv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Nr(t)}b.set(d.i32x4_splat,Fv);function kv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,qt(t)}b.set(d.i32x4_extract_lane,kv);function wv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Mr(t)}b.set(d.i32x4_replace_lane,wv);function Cv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Dr(t)}b.set(d.i32x4_add,Cv);function Pv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Ur(t)}b.set(d.i32x4_sub,Pv);function Bv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Mi(t)}b.set(d.i32x4_mul,Bv);function Lv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Wt(t)}b.set(d.i32x4_min_s,Lv);function Nv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Wt(t)}b.set(d.i32x4_min_u,Nv);function Mv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kt(t)}b.set(d.i32x4_max_s,Mv);function Gv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Kt(t)}b.set(d.i32x4_max_u,Gv);function zv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ig(t)}b.set(d.i32x4_dot_i16x8_s,zv);function Dv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Wr(t)}b.set(d.i32x4_abs,Dv);function Uv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,qr(t)}b.set(d.i32x4_neg,Uv);function Vv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,vs(t)}b.set(d.i32x4_shl,Vv);function Ov(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jt(t)}b.set(d.i32x4_shr_s,Ov);function qv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jt(t)}b.set(d.i32x4_shr_u,qv);function Wv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Ss(t)}b.set(d.i32x4_all_true,Wv);function Kv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Is(t)}b.set(d.i32x4_bitmask,Kv);function jv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Vr(t)}b.set(d.i32x4_eq,jv);function Hv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Or(t)}b.set(d.i32x4_ne,Hv);function Qv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,bt(t)}b.set(d.i32x4_lt_s,Qv);function Xv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,bt(t)}b.set(d.i32x4_lt_u,Xv);function Jv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,xt(t)}b.set(d.i32x4_le_s,Jv);function Zv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,xt(t)}b.set(d.i32x4_le_u,Zv);function Yv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Tt(t)}b.set(d.i32x4_gt_s,Yv);function $v(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Tt(t)}b.set(d.i32x4_gt_u,$v);function e3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,At(t)}b.set(d.i32x4_ge_s,e3);function t3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,At(t)}b.set(d.i32x4_ge_u,t3);function r3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Wc(t)}b.set(d.i32x4_trunc_sat_f32x4_s,r3);function i3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Wc(t)}b.set(d.i32x4_trunc_sat_f32x4_u,i3);function n3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kc(t)}b.set(d.i32x4_trunc_sat_f64x2_s_zero,n3);function s3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Kc(t)}b.set(d.i32x4_trunc_sat_f64x2_u_zero,s3);function a3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Kr(t)}b.set(d.i32x4_extend_low_i16x8_s,a3);function l3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Kr(t)}b.set(d.i32x4_extend_low_i16x8_u,l3);function o3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,jr(t)}b.set(d.i32x4_extend_high_i16x8_s,o3);function u3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,jr(t)}b.set(d.i32x4_extend_high_i16x8_u,u3);function p3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Rs(t)}b.set(d.i32x4_extadd_pairwise_i16x8_s,p3);function c3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Rs(t)}b.set(d.i32x4_extadd_pairwise_i16x8_u,c3);function f3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Hr(t)}b.set(d.i32x4_extmul_low_i16x8_s,f3);function _3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Hr(t)}b.set(d.i32x4_extmul_low_i16x8_u,_3);function h3(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Qr(t)}b.set(d.i32x4_extmul_high_i16x8_s,h3);function d3(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Qr(t)}b.set(d.i32x4_extmul_high_i16x8_u,d3);function m3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Gr(t)}b.set(d.i32x4_shuffle,m3);function y3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Nr(t)}b.set(d.i64x2_splat,y3);function g3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,qt(t)}b.set(d.i64x2_extract_lane,g3);function b3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Mr(t)}b.set(d.i64x2_replace_lane,b3);function x3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Dr(t)}b.set(d.i64x2_add,x3);function T3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Ur(t)}b.set(d.i64x2_sub,T3);function A3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Mi(t)}b.set(d.i64x2_mul,A3);function E3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Wr(t)}b.set(d.i64x2_abs,E3);function v3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,qr(t)}b.set(d.i64x2_neg,v3);function S3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,vs(t)}b.set(d.i64x2_shl,S3);function I3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,jt(t)}b.set(d.i64x2_shr_s,I3);function R3(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,jt(t)}b.set(d.i64x2_shr_u,R3);function F3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,Ss(t)}b.set(d.i64x2_all_true,F3);function k3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,Is(t)}b.set(d.i64x2_bitmask,k3);function w3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Vr(t)}b.set(d.i64x2_eq,w3);function C3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Or(t)}b.set(d.i64x2_ne,C3);function P3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,bt(t)}b.set(d.i64x2_lt_s,P3);function B3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,xt(t)}b.set(d.i64x2_le_s,B3);function L3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Tt(t)}b.set(d.i64x2_gt_s,L3);function N3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,At(t)}b.set(d.i64x2_ge_s,N3);function M3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kr(t)}b.set(d.i64x2_extend_low_i32x4_s,M3);function G3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Kr(t)}b.set(d.i64x2_extend_low_i32x4_u,G3);function z3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jr(t)}b.set(d.i64x2_extend_high_i32x4_s,z3);function D3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jr(t)}b.set(d.i64x2_extend_high_i32x4_u,D3);function U3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Hr(t)}b.set(d.i64x2_extmul_low_i32x4_s,U3);function V3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Hr(t)}b.set(d.i64x2_extmul_low_i32x4_u,V3);function O3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Qr(t)}b.set(d.i64x2_extmul_high_i32x4_s,O3);function q3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Qr(t)}b.set(d.i64x2_extmul_high_i32x4_u,q3);function W3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Gr(t)}b.set(d.i64x2_shuffle,W3);function K3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Nr(t)}b.set(d.f32x4_splat,K3);function j3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,qt(t)}b.set(d.f32x4_extract_lane,j3);function H3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mr(t)}b.set(d.f32x4_replace_lane,H3);function Q3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Dr(t)}b.set(d.f32x4_add,Q3);function X3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ur(t)}b.set(d.f32x4_sub,X3);function J3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mi(t)}b.set(d.f32x4_mul,J3);function Z3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Bc(t)}b.set(d.f32x4_div,Z3);function Y3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,qr(t)}b.set(d.f32x4_neg,Y3);function $3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Wt(t)}b.set(d.f32x4_min,$3);function eS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Kt(t)}b.set(d.f32x4_max,eS);function tS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Lc(t)}b.set(d.f32x4_pmin,tS);function rS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Nc(t)}b.set(d.f32x4_pmax,rS);function iS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Wr(t)}b.set(d.f32x4_abs,iS);function nS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Gc(t)}b.set(d.f32x4_sqrt,nS);function sS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,zc(t)}b.set(d.f32x4_ceil,sS);function aS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Dc(t)}b.set(d.f32x4_floor,aS);function lS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Uc(t)}b.set(d.f32x4_trunc,lS);function oS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Vc(t)}b.set(d.f32x4_nearest,oS);function uS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Vr(t)}b.set(d.f32x4_eq,uS);function pS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Or(t)}b.set(d.f32x4_ne,pS);function cS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,bt(t)}b.set(d.f32x4_lt,cS);function fS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,xt(t)}b.set(d.f32x4_le,fS);function _S(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Tt(t)}b.set(d.f32x4_gt,_S);function hS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,At(t)}b.set(d.f32x4_ge,hS);function dS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Oc(t)}b.set(d.f32x4_convert_i32x4_s,dS);function mS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Oc(t)}b.set(d.f32x4_convert_i32x4_u,mS);function yS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Fg(t)}b.set(d.f32x4_demote_f64x2_zero,yS);function gS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Gr(t)}b.set(d.f32x4_shuffle,gS);function bS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Nr(t)}b.set(d.f64x2_splat,bS);function xS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,qt(t)}b.set(d.f64x2_extract_lane,xS);function TS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mr(t)}b.set(d.f64x2_replace_lane,TS);function AS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Dr(t)}b.set(d.f64x2_add,AS);function ES(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ur(t)}b.set(d.f64x2_sub,ES);function vS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mi(t)}b.set(d.f64x2_mul,vS);function SS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Bc(t)}b.set(d.f64x2_div,SS);function IS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,qr(t)}b.set(d.f64x2_neg,IS);function RS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Wt(t)}b.set(d.f64x2_min,RS);function FS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Kt(t)}b.set(d.f64x2_max,FS);function kS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Lc(t)}b.set(d.f64x2_pmin,kS);function wS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Nc(t)}b.set(d.f64x2_pmax,wS);function CS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Wr(t)}b.set(d.f64x2_abs,CS);function PS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Gc(t)}b.set(d.f64x2_sqrt,PS);function BS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,zc(t)}b.set(d.f64x2_ceil,BS);function LS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Dc(t)}b.set(d.f64x2_floor,LS);function NS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Uc(t)}b.set(d.f64x2_trunc,NS);function MS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Vc(t)}b.set(d.f64x2_nearest,MS);function GS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Vr(t)}b.set(d.f64x2_eq,GS);function zS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Or(t)}b.set(d.f64x2_ne,zS);function DS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,bt(t)}b.set(d.f64x2_lt,DS);function US(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,xt(t)}b.set(d.f64x2_le,US);function VS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Tt(t)}b.set(d.f64x2_gt,VS);function OS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,At(t)}b.set(d.f64x2_ge,OS);function qS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,qc(t)}b.set(d.f64x2_convert_low_i32x4_s,qS);function WS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,qc(t)}b.set(d.f64x2_convert_low_i32x4_u,WS);function KS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,kg(t)}b.set(d.f64x2_promote_low_f32x4,KS);function jS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Gr(t)}b.set(d.f64x2_shuffle,jS);function HS(t){return v(t),t.typeArguments=null,t.contextualType=p.v128,Cg(t)}b.set(d.i8x16_relaxed_swizzle,HS);function QS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jc(t)}b.set(d.i32x4_relaxed_trunc_f32x4_s,QS);function XS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jc(t)}b.set(d.i32x4_relaxed_trunc_f32x4_u,XS);function JS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Hc(t)}b.set(d.i32x4_relaxed_trunc_f64x2_s_zero,JS);function ZS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Hc(t)}b.set(d.i32x4_relaxed_trunc_f64x2_u_zero,ZS);function YS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Qc(t)}b.set(d.f32x4_relaxed_madd,YS);function $S(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Xc(t)}b.set(d.f32x4_relaxed_nmadd,$S);function eI(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Qc(t)}b.set(d.f64x2_relaxed_madd,eI);function tI(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Xc(t)}b.set(d.f64x2_relaxed_nmadd,tI);function rI(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Fs(t)}b.set(d.i8x16_relaxed_laneselect,rI);function iI(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Fs(t)}b.set(d.i16x8_relaxed_laneselect,iI);function nI(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Fs(t)}b.set(d.i32x4_relaxed_laneselect,nI);function sI(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Fs(t)}b.set(d.i64x2_relaxed_laneselect,sI);function aI(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Jc(t)}b.set(d.f32x4_relaxed_min,aI);function lI(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Zc(t)}b.set(d.f32x4_relaxed_max,lI);function oI(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Jc(t)}b.set(d.f64x2_relaxed_min,oI);function uI(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Zc(t)}b.set(d.f64x2_relaxed_max,uI);function pI(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Pg(t)}b.set(d.i16x8_relaxed_q15mulr_s,pI);function cI(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Bg(t)}b.set(d.i16x8_relaxed_dot_i8x16_i7x16_s,cI);function fI(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Lg(t)}b.set(d.i32x4_relaxed_dot_i8x16_i7x16_add_s,fI);function Ng(t){let i=t.module,e=new Array,r=t.options.sizeTypeRef,n=assert(t.program.visitInstance);t.compileFunction(n,!0);for(let s=Map_values(t.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,f=u.type.getClass();if(f&&!f.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let _=u.constantIntegerValue;(i64_low(_)||i64_high(_))&&e.push(i.call(n.internalName,[t.options.isWasm64?i.i64(i64_low(_),i64_high(_)):i.i32(i64_low(_)),i.local_get(0,L.I32)],L.None))}else e.push(i.if(i.local_tee(1,i.global_get(u.internalName,r),!1),i.call(n.internalName,[i.local_get(1,r),i.local_get(0,L.I32)],L.None)))}i.addFunction(d.visit_globals,L.I32,L.None,[r],e.length?i.block(null,e):i.nop())}function Mg(t,i){if(assert(i.type.isManaged),i.visitRef)return;let e=t.program,r=t.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=i.base;u&&o.push(r.call(`${u.internalName}~visit`,[r.local_get(0,s),r.local_get(1,L.I32)],L.None));let c=!1;if(i.isDeclaredInLibrary){let _=i.getMember("__visit");if(_){assert(_.kind==4);let h=e.resolver.resolveFunction(_,null);if(!h||!t.compileFunction(h))o.push(r.unreachable());else{let m=h.signature,x=assert(m.thisType);assert(m.parameterTypes.length==1&&m.parameterTypes[0]==p.u32&&m.returnType==p.void&&i.type.isStrictlyAssignableTo(x)),o.push(r.call(h.internalName,[r.local_get(0,s),r.local_get(1,L.I32)],L.None))}c=!0}}let f=!1;if(!c){let _=i.members;if(_)for(let h=Map_values(_),m=0,x=h.length;m<x;++m){let g=unchecked(h[m]);if(g.kind!=10)continue;let T=g.instance;if(!T)continue;let I=T.type;if(!T.isField||T.getBoundClassOrInterface()!=i||!I.isManaged)continue;let E=T.memoryOffset;assert(E>=0),f=!0,o.push(r.call(l.internalName,[r.load(a,!1,r.local_get(0,s),s,E),r.local_get(1,L.I32)],L.None))}}i.visitRef=r.addFunction(`${i.internalName}~visit`,je([s,L.I32]),L.None,f?[s]:null,r.flatten(o,L.None)),u&&u.type.isManaged&&Mg(t,u)}function Gg(t){let i=t.program,e=t.module,n=i.options.usizeType.toRef(),s=i.managedClasses,a=assert(i.visitInstance);t.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let f=Map_keys(s),_=0,h=f.length;_<h;++_){let m=f[_];assert(m==u++);let x=assert(s.get(m));l[_]=x.internalName,x.isPointerfree?o[_]=e.return():(o[_]=e.block(null,[e.call(`${x.internalName}~visit`,[e.local_get(0,n),e.local_get(1,L.I32)],L.None),e.return()],L.None),Mg(t,x))}let c=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==L.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),L.I32,0))],L.None);for(let f=0,_=l.length-1;f<_;++f)c=e.block(l[f+1],[c,o[f]],L.None);c=e.block("invalid",[c,o[l.length-1]],L.None),e.addFunction(d.visit_members,je([n,L.I32]),L.None,null,e.flatten([c,e.unreachable()]))}function Bi(t){let i=64*(1<<t.alignLog2);return t.is(1)&&(i|=2048),t.is(8)&&(i|=4096),t.is(512)&&(i|=8192),t.isManaged&&(i|=16384),i/64}function zg(t){let i=t.program,e=t.module,r=i.managedClasses,n=r.size,s=4+4*n,a=new Uint8Array(s);me(n,a,0);let l=4,o=i.arrayBufferViewInstance,u=o.prototype,c=i.arrayPrototype,f=i.setPrototype,_=i.mapPrototype,h=i.staticArrayPrototype,m=0;for(let T=Map_keys(r),I=0,E=T.length;I<E;++I){let k=unchecked(T[I]),F=assert(r.get(k));assert(k==m++);let R=0;if(F.isPointerfree&&(R|=32),F!=o&&F.extendsPrototype(u)){let M=F.getArrayValueType();R|=1,R|=64*Bi(M)}else if(F.extendsPrototype(c)){let M=F.getArrayValueType();R|=2,R|=64*Bi(M)}else if(F.extendsPrototype(f)){let M=assert(F.getTypeArgumentsTo(f));assert(M.length==1),R|=8,R|=64*Bi(M[0])}else if(F.extendsPrototype(_)){let M=assert(F.getTypeArgumentsTo(_));assert(M.length==2),R|=16,R|=32768*Bi(M[0]),R|=64*Bi(M[1])}else if(F.extendsPrototype(h)){let M=F.getArrayValueType();R|=4,R|=64*Bi(M)}me(R,a,l),l+=4,F.rttiFlags=R}assert(l==s);let x=i.options.usizeType,g=t.addAlignedMemorySegment(a);if(x.size==8){let T=g.offset;e.addGlobal(d.rtti_base,L.I64,!1,e.i64(i64_low(T),i64_high(T)))}else e.addGlobal(d.rtti_base,L.I32,!1,e.i32(i64_low(g.offset)))}function Be(t){let i=t.compiler,e=t.operands,r=t.typeArguments;if(Li=0,e.length==0)return!r||r.length!=1?(i.error(2558,t.reportNode.typeArgumentsRange,"1",r?r.length.toString():"0"),null):r[0];if(e.length==1){if(r&&r.length>0){if(r.length>1)return i.error(2558,t.reportNode.typeArgumentsRange,"1",r.length.toString()),null;Li=i.compileExpression(e[0],r[0],1)}else Li=i.compileExpression(e[0],p.auto);return i.currentType}return r&&r.length>1&&i.error(2558,t.reportNode.typeArgumentsRange,"1",r.length.toString()),i.error(2554,t.reportNode.argumentsRange,"1",e.length.toString()),null}function Fe(t,i){let e=t.compiler.module;return Li&&Dl(Li,e.ref)&&(i=e.block(null,[e.maybeDrop(Li),i],se(i))),i}function et(t,i){let e=i.module,r;if(i.options.isWasm64){let n=i.compileExpression(t,p.usize64,1),s=e.runExpression(n,1);s?(assert(we(s)==0),r=ve(s)):(i.error(220,t.range),r=-1)}else{let n=i.compileExpression(t,p.usize32,1),s=e.runExpression(n,1);s?r=ne(s):(i.error(220,t.range),r=-1)}return r}function Vt(t,i,e){let r=et(t,e);return r<0?r:r<1||i>16?(e.error(222,t.range,"Alignment","1",i.toString()),-1):Ct(r)?r:(e.error(223,t.range,"Alignment"),-1)}function X(t,i){let e=t.compiler;return e.options.hasFeature(i)?0:(e.error(103,t.reportNode.range,li(i)),1)}function J(t,i=!1){let e=t.compiler,r=t.typeArguments;if(r){let n=r.length;if(n==1)return 0;assert(n),i&&(e.currentType=r[0]),e.error(2558,t.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,t.reportNode.range,"1","0");return 1}function ae(t,i=!1){let e=t.typeArguments;if(e){let r=t.compiler,n=e.length;return n==1?0:(assert(n),i&&(r.currentType=e[0]),r.error(2558,t.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function v(t){if(t.typeArguments){let e=t.prototype;return e.program.error(2315,t.reportNode.typeArgumentsRange,e.internalName),1}return 0}function K(t,i){let e=t.operands;return e.length!=i?(t.compiler.error(2554,t.reportNode.range,i.toString(),e.length.toString()),1):0}function Se(t,i,e){let n=t.operands.length;return n<i?(t.compiler.error(2555,t.reportNode.range,i.toString(),n.toString()),1):n>e?(t.compiler.error(2554,t.reportNode.range,e.toString(),n.toString()),1):0}function ro(t,i,e){let r=t.module;if(e!=p.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(i))return t.currentType=p.i32,r.i32(i64_low(i));break}case 8:{if(i64_is_u32(i))return t.currentType=p.u32,r.i32(i64_low(i));break}case 4:case 9:return t.currentType=e,r.i64(i64_low(i),i64_high(i))}return t.options.isWasm64?(t.currentType=p.usize64,r.i64(i64_low(i),i64_high(i))):(t.currentType=p.usize32,assert(!i64_high(i)),r.i32(i64_low(i)))}var ef=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let i=this._currentExpression;if(!i)throw new Error("not walking expressions");return i}get parentExpressionOrNull(){let i=this.stack,e=i.length;return e?i[e-1]:0}visitBlock(i){}visitIf(i){}visitLoop(i){}visitBreak(i){}visitSwitch(i){}visitCallPre(i){}visitCall(i){}visitCallIndirectPre(i){}visitCallIndirect(i){}visitLocalGet(i){}visitLocalSet(i){}visitGlobalGet(i){}visitGlobalSet(i){}visitLoad(i){}visitStore(i){}visitConst(i){}visitUnary(i){}visitBinary(i){}visitSelect(i){}visitDrop(i){}visitReturn(i){}visitMemorySize(i){}visitMemoryGrow(i){}visitNop(i){}visitUnreachable(i){}visitAtomicRMW(i){}visitAtomicCmpxchg(i){}visitAtomicWait(i){}visitAtomicNotify(i){}visitAtomicFence(i){}visitSIMDExtract(i){}visitSIMDReplace(i){}visitSIMDShuffle(i){}visitSIMDTernary(i){}visitSIMDShift(i){}visitSIMDLoad(i){}visitSIMDLoadStoreLane(i){}visitMemoryInit(i){}visitDataDrop(i){}visitMemoryCopy(i){}visitMemoryFill(i){}visitPop(i){}visitRefNull(i){}visitRefIsNull(i){}visitRefFunc(i){}visitRefEq(i){}visitTry(i){}visitThrow(i){}visitRethrow(i){}visitTupleMake(i){}visitTupleExtract(i){}visitRefI31(i){}visitI31Get(i){}visitCallRef(i){}visitRefTest(i){}visitRefCast(i){}visitBrOn(i){}visitStructNew(i){}visitStructGet(i){}visitStructSet(i){}visitArrayNew(i){}visitArrayNewFixed(i){}visitArrayGet(i){}visitArraySet(i){}visitArrayLen(i){}visitArrayCopy(i){}visitRefAs(i){}visitStringNew(i){}visitStringConst(i){}visitStringMeasure(i){}visitStringEncode(i){}visitStringConcat(i){}visitStringEq(i){}visitStringAs(i){}visitStringWTF8Advance(i){}visitStringWTF16Get(i){}visitStringIterNext(i){}visitStringIterMove(i){}visitStringSliceWTF(i){}visitStringSliceIter(i){}visitName(i){}visitLabel(i){}visitIndex(i){}visitTag(i){}visit(i){let e=this._currentExpression;switch(this._currentExpression=assert(i),Rt(i)){case 1:{this.stack.push(i);let r=Ds(i);r&&this.visitLabel(r);for(let n=0,s=$i(i);n<s;++n)this.visit(en(i,n));assert(this.stack.pop()==i),this.visitBlock(i);break}case 2:{this.stack.push(i),this.visit(tn(i)),this.visit(rn(i));let r=nn(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitIf(i);break}case 3:{this.stack.push(i);let r=Us(i);r&&this.visitLabel(r),this.visit(sn(i)),assert(this.stack.pop()==i),this.visitLoop(i);break}case 4:{this.stack.push(i),this.visitLabel(Vs(i));let r=an(i);r&&this.visit(r);let n=mo(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitBreak(i);break}case 5:{this.stack.push(i);let r=Zf(i);r&&this.visitLabel(r);let n=Xf(i);for(let a=0;a<n;++a)this.visitLabel(Jf(i,a));this.visit(yo(i));let s=go(i);s&&this.visit(s),assert(this.stack.pop()==i),this.visitSwitch(i);break}case 6:{this.visitCallPre(i),this.stack.push(i),this.visitName(Yr(i));let r=Qt(i);for(let n=0;n<r;++n)this.visit(Xt(i,n));assert(this.stack.pop()==i),this.visitCall(i);break}case 7:{this.visitCallIndirectPre(i),this.stack.push(i),this.visit(bo(i));for(let r=0,n=ln(i);r<n;++r)this.visit(on(i,r));assert(this.stack.pop()==i),this.visitCallIndirect(i);break}case 8:{this.stack.push(i),this.visitIndex(Ws(i)),assert(this.stack.pop()==i),this.visitLocalGet(i);break}case 9:{this.stack.push(i),this.visitIndex($r(i)),this.visit(mr(i)),assert(this.stack.pop()==i),this.visitLocalSet(i);break}case 10:{this.stack.push(i),this.visitName(Hs(i)),assert(this.stack.pop()==i),this.visitGlobalGet(i);break}case 11:{this.stack.push(i),this.visitName(u_(i)),this.visit(xo(i)),assert(this.stack.pop()==i),this.visitGlobalSet(i);break}case 12:{this.stack.push(i),this.visit(cn(i)),assert(this.stack.pop()==i),this.visitLoad(i);break}case 13:{this.stack.push(i),this.visit(yr(i)),this.visit(fn(i)),assert(this.stack.pop()==i),this.visitStore(i);break}case 14:{this.visitConst(i);break}case 15:{this.stack.push(i),this.visit(_n(i)),assert(this.stack.pop()==i),this.visitUnary(i);break}case 16:{this.stack.push(i),this.visit(hn(i)),this.visit(dn(i)),assert(this.stack.pop()==i),this.visitBinary(i);break}case 17:{this.stack.push(i),this.visit(mn(i)),this.visit(yn(i)),this.visit(gn(i)),assert(this.stack.pop()==i),this.visitSelect(i);break}case 18:{this.stack.push(i),this.visit(bn(i)),assert(this.stack.pop()==i),this.visitDrop(i);break}case 19:{let r=gr(i);r&&(this.stack.push(i),this.visit(r),assert(this.stack.pop()==i)),this.visitReturn(i);break}case 20:{this.visitMemorySize(i);break}case 21:{this.stack.push(i),this.visit(pn(i)),assert(this.stack.pop()==i),this.visitMemoryGrow(i);break}case 22:{this.visitNop(i);break}case 23:{this.visitUnreachable(i);break}case 24:{this.stack.push(i),this.visit(Ao(i)),this.visit(Eo(i)),assert(this.stack.pop()==i),this.visitAtomicRMW(i);break}case 25:{this.stack.push(i),this.visit(vo(i)),this.visit(So(i)),this.visit(Io(i)),assert(this.stack.pop()==i),this.visitAtomicCmpxchg(i);break}case 26:{this.stack.push(i),this.visit(Ro(i)),this.visit(Fo(i)),this.visit(ko(i)),assert(this.stack.pop()==i),this.visitAtomicWait(i);break}case 27:{this.stack.push(i),this.visit(wo(i)),this.visit(Co(i)),assert(this.stack.pop()==i),this.visitAtomicNotify(i);break}case 28:{this.visitAtomicFence(i);break}case 30:{this.stack.push(i),this.visit(Po(i)),assert(this.stack.pop()==i),this.visitSIMDExtract(i);break}case 31:{this.stack.push(i),this.visit(Bo(i)),this.visit(Lo(i)),assert(this.stack.pop()==i),this.visitSIMDReplace(i);break}case 32:{this.stack.push(i),this.visit(No(i)),this.visit(Mo(i)),assert(this.stack.pop()==i),this.visitSIMDShuffle(i);break}case 33:{this.stack.push(i),this.visit(Go(i)),this.visit(zo(i)),this.visit(Do(i)),assert(this.stack.pop()==i),this.visitSIMDTernary(i);break}case 34:{this.stack.push(i),this.visit(Uo(i)),this.visit(Vo(i)),assert(this.stack.pop()==i),this.visitSIMDShift(i);break}case 35:{this.stack.push(i),this.visit(Oo(i)),assert(this.stack.pop()==i),this.visitSIMDLoad(i);break}case 36:{this.stack.push(i),this.visit(qo(i)),this.visit(Wo(i)),assert(this.stack.pop()==i),this.visitSIMDLoadStoreLane(i);break}case 37:{this.stack.push(i),this.visit(Ko(i)),this.visit(jo(i)),this.visit(Ho(i)),assert(this.stack.pop()==i),this.visitMemoryInit(i);break}case 38:{this.visitDataDrop(i);break}case 39:{this.stack.push(i),this.visit(Qo(i)),this.visit(Xo(i)),this.visit(Jo(i)),assert(this.stack.pop()==i),this.visitMemoryCopy(i);break}case 40:{this.stack.push(i),this.visit(Zo(i)),this.visit(Yo(i)),this.visit($o(i)),assert(this.stack.pop()==i),this.visitMemoryFill(i);break}case 41:{this.visitPop(i);break}case 42:{this.visitRefNull(i);break}case 43:{this.stack.push(i),this.visit(eu(i)),assert(this.stack.pop()==i),this.visitRefIsNull(i);break}case 44:{this.stack.push(i),this.visitName(Vh(i)),assert(this.stack.pop()==i),this.visitRefFunc(i);break}case 45:{this.stack.push(i),this.visit(iu(i)),this.visit(nu(i)),assert(this.stack.pop()==i),this.visitRefEq(i);break}case 54:{this.stack.push(i),this.visit(su(i));let r=au(i);for(let n=0;n<r;++n)this.visit(lu(i,n));assert(this.stack.pop()==i),this.visitTry(i);break}case 56:{this.stack.push(i),this.visitTag($h(i));let r=ou(i);for(let n=0;n<r;++n)this.visit(uu(i,n));assert(this.stack.pop()==i),this.visitThrow(i);break}case 57:{this.visitRethrow(i);break}case 59:{let r=pu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(cu(i,n));assert(this.stack.pop()==i)}this.visitTupleMake(i);break}case 60:{this.stack.push(i),this.visit(fu(i)),assert(this.stack.pop()==i),this.visitTupleExtract(i);break}case 61:{this.stack.push(i),this.visit(_u(i)),assert(this.stack.pop()==i),this.visitRefI31(i);break}case 62:{this.stack.push(i),this.visit(hu(i)),assert(this.stack.pop()==i),this.visitI31Get(i);break}case 63:{this.stack.push(i);let r=du(i);if(r)for(let n=0;n<r;++n)this.visit(mu(i,n));this.visit(yu(i)),assert(this.stack.pop()==i),this.visitCallRef(i);break}case 64:{this.stack.push(i),this.visit(gu(i)),assert(this.stack.pop()==i),this.visitRefTest(i);break}case 65:{this.stack.push(i),this.visit(bu(i)),assert(this.stack.pop()==i),this.visitRefCast(i);break}case 67:{this.stack.push(i),this.visitLabel(dd(i)),this.visit(xu(i)),assert(this.stack.pop()==i),this.visitBrOn(i);break}case 68:{let r=Tu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(Au(i,n));assert(this.stack.pop()==i)}this.visitStructNew(i);break}case 69:{this.stack.push(i),this.visit(Eu(i)),this.visitIndex(gd(i)),assert(this.stack.pop()==i),this.visitStructGet(i);break}case 70:{this.stack.push(i),this.visit(vu(i)),this.visitIndex(xd(i)),this.visit(Su(i)),assert(this.stack.pop()==i),this.visitStructSet(i);break}case 73:{this.stack.push(i),this.visit(Ru(i));let r=Iu(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitArrayNew(i);break}case 76:{let r=Fu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(ku(i,n));assert(this.stack.pop()==i)}this.visitArrayNewFixed(i);break}case 77:{this.stack.push(i),this.visit(wu(i)),this.visit(Cu(i)),assert(this.stack.pop()==i),this.visitArrayGet(i);break}case 78:{this.stack.push(i),this.visit(Pu(i)),this.visit(Bu(i)),this.visit(Lu(i)),assert(this.stack.pop()==i),this.visitArraySet(i);break}case 81:{this.stack.push(i),this.visit(Nu(i)),assert(this.stack.pop()==i),this.visitArrayLen(i);break}case 82:{this.stack.push(i),this.visit(Mu(i)),this.visit(Gu(i)),this.visit(zu(i)),this.visit(Du(i)),this.visit(Uu(i)),assert(this.stack.pop()==i),this.visitArrayCopy(i);break}case 88:{this.stack.push(i),this.visit(ru(i)),assert(this.stack.pop()==i),this.visitRefAs(i);break}case 89:{this.stack.push(i),this.visit(Vu(i));let r=Ou(i);r&&this.visit(r);let n=qu(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitStringNew(i);break}case 90:{this.stack.push(i),assert(this.stack.pop()==i),this.visitStringConst(i);break}case 91:{this.stack.push(i),this.visit(Wu(i)),assert(this.stack.pop()==i),this.visitStringMeasure(i);break}case 92:{this.stack.push(i),this.visit(Ku(i)),this.visit(ju(i));let r=Hu(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitStringEncode(i);break}case 93:{this.stack.push(i),this.visit(Qu(i)),this.visit(Xu(i)),assert(this.stack.pop()==i),this.visitStringConcat(i);break}case 94:{this.stack.push(i),this.visit(Zu(i)),this.visit(Yu(i)),assert(this.stack.pop()==i),this.visitStringEq(i);break}case 96:{this.stack.push(i),this.visit($u(i)),this.visit(ep(i)),assert(this.stack.pop()==i),this.visitStringWTF16Get(i);break}case 97:{this.stack.push(i),this.visit(tp(i)),this.visit(rp(i)),this.visit(ip(i)),assert(this.stack.pop()==i),this.visitStringSliceWTF(i);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},Xr=class extends ef{constructor(e){super();this.module=e;this._currentFunction=0;this._currentGlobal=0}get currentFunction(){let e=this._currentFunction;if(!e)throw new Error("not walking a function");return e}get currentGlobal(){let e=this._currentGlobal;if(!e)throw new Error("not walking a global");return e}walkModule(){this.walkFunctions(),this.walkGlobals()}walkFunctions(){let e=this.module.ref;for(let r=0,n=ii(e);r<n;++r)this.walkFunction(Tn(e,r))}walkFunction(e){let r=kt(e);r&&(this._currentFunction=e,this.visit(r),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let r=0,n=mm(e);r<n;++r)this.walkGlobal(ym(e,r))}walkGlobal(e){this._currentGlobal=e;let r=ia(e);r&&this.visit(r),this._currentGlobal=0}replaceCurrent(e){let r=this.currentExpression,n=this.currentFunction;if(kt(n)==r)vn(n,e);else{let a=assert(this.parentExpressionOrNull);if(!_I(a,r,e))throw Error("failed to replace expression");Mf(a)}}};function _I(t,i,e){switch(Rt(t)){case 1:{let r=$i(t);for(let n=0;n<r;++n){let s=en(t,n);if(s==i)return zf(t,n,e),s}break}case 2:{let r=tn(t);if(r==i)return Uf(t,e),r;let n=rn(t);if(n==i)return Vf(t,e),n;let s=nn(t);if(s==i)return Of(t,e),s;break}case 3:{let r=sn(t);if(r==i)return Wf(t,e),r;break}case 4:{let r=an(t);if(r==i)return jf(t,e),r;let n=mo(t);if(n==i)return Hf(t,e),n;break}case 5:{let r=yo(t);if(r==i)return Yf(t,e),r;let n=go(t);if(n==i)return $f(t,e),n;break}case 6:{let r=Qt(t);for(let n=0;n<r;++n){let s=Xt(t,n);if(s==i)return Os(t,n,e),s}break}case 7:{let r=bo(t);if(r==i)return i_(t,e),r;let n=ln(t);for(let s=0;s<n;++s){let a=on(t,s);if(a==i)return qs(t,s,e),a}break}case 8:break;case 9:{let r=mr(t);if(r==i)return js(t,e),r;break}case 10:break;case 11:{let r=xo(t);if(r==i)return p_(t,e),r;break}case 12:{let r=cn(t);if(r==i)return g_(t,e),r;break}case 13:{let r=yr(t);if(r==i)return Js(t,e),r;let n=fn(t);if(n==i)return T_(t,e),n;break}case 14:break;case 15:{let r=_n(t);if(r==i)return k_(t,e),r;break}case 16:{let r=hn(t);if(r==i)return L_(t,e),r;let n=dn(t);if(n==i)return N_(t,e),n;break}case 17:{let r=mn(t);if(r==i)return G_(t,e),r;let n=yn(t);if(n==i)return z_(t,e),n;let s=gn(t);if(s==i)return D_(t,e),s;break}case 18:{let r=bn(t);if(r==i)return U_(t,e),r;break}case 19:{let r=gr(t);if(r==i)return Zs(t,e),r;break}case 20:break;case 21:{let r=pn(t);if(r==i)return __(t,e),r;break}case 22:break;case 23:break;case 24:{let r=Ao(t);if(r==i)return K_(t,e),r;let n=Eo(t);if(n==i)return j_(t,e),n;break}case 25:{let r=vo(t);if(r==i)return Q_(t,e),r;let n=So(t);if(n==i)return X_(t,e),n;let s=Io(t);if(s==i)return J_(t,e),s;break}case 26:{let r=Ro(t);if(r==i)return Y_(t,e),r;let n=Fo(t);if(n==i)return $_(t,e),n;let s=ko(t);if(s==i)return eh(t,e),s;break}case 27:{let r=wo(t);if(r==i)return rh(t,e),r;let n=Co(t);if(n==i)return ih(t,e),n;break}case 28:break;case 30:{let r=Po(t);if(r==i)return ah(t,e),r;break}case 31:{let r=Bo(t);if(r==i)return oh(t,e),r;let n=Lo(t);if(n==i)return uh(t,e),n;break}case 32:{let r=No(t);if(r==i)return ch(t,e),r;let n=Mo(t);if(n==i)return fh(t,e),n;break}case 33:{let r=Go(t);if(r==i)return hh(t,e),r;let n=zo(t);if(n==i)return dh(t,e),n;let s=Do(t);if(s==i)return mh(t,e),s;break}case 34:{let r=Uo(t);if(r==i)return gh(t,e),r;let n=Vo(t);if(n==i)return bh(t,e),n;break}case 35:{let r=Oo(t);if(r==i)return Th(t,e),r;break}case 36:{let r=qo(t);if(r==i)return Eh(t,e),r;if(Wo(t)==i)return vh(t,e),r;break}case 37:{let r=Ko(t);if(r==i)return Sh(t,e),r;let n=jo(t);if(n==i)return Ih(t,e),n;let s=Ho(t);if(s==i)return Rh(t,e),s;break}case 38:break;case 39:{let r=Qo(t);if(r==i)return kh(t,e),r;let n=Xo(t);if(n==i)return wh(t,e),n;let s=Jo(t);if(s==i)return Ch(t,e),s;break}case 40:{let r=Zo(t);if(r==i)return Bh(t,e),r;let n=Yo(t);if(n==i)return Lh(t,e),n;let s=$o(t);if(s==i)return Nh(t,e),s;break}case 41:break;case 42:break;case 43:{let r=eu(t);if(r==i)return zh(t,e),r;break}case 44:break;case 45:{let r=iu(t);if(r==i)return qh(t,e),r;let n=nu(t);if(n==i)return Wh(t,e),n;break}case 54:{let r=su(t);if(r==i)return Jh(t,e),r;let n=au(t);for(let s=0;s<n;++s){let a=lu(t,s);if(a==i)return Zh(t,s,e),a}break}case 56:{let r=ou(t);for(let n=0;n<r;++n){let s=uu(t,n);if(s==i)return ed(t,n,e),s}break}case 57:break;case 59:{let r=pu(t);for(let n=0;n<r;++n){let s=cu(t,n);if(s==i)return id(t,n,e),s}break}case 60:{let r=fu(t);if(r==i)return sd(t,e),r;break}case 61:{let r=_u(t);if(r==i)return od(t,e),r;break}case 62:{let r=hu(t);if(r==i)return pd(t,e),r;break}case 63:{let r=du(t);for(let s=0;s<r;++s){let a=mu(t,s);if(a==i)return cd(t,s,e),a}let n=yu(t);if(n==i)return fd(t,e),n;break}case 64:{let r=gu(t);if(r==i)return _d(t,e),r;break}case 65:{let r=bu(t);if(r==i)return hd(t,e),r;break}case 67:{let r=xu(t);if(r==i)return md(t,e),r;break}case 68:{let r=Tu(t);for(let n=0;n<r;++n){let s=Au(t,n);if(s==i)return yd(t,n,e),s}break}case 69:{let r=Eu(t);if(r==i)return bd(t,e),r;break}case 70:{let r=vu(t);if(r==i)return Td(t,e),r;let n=Su(t);if(n==i)return Ad(t,e),n;break}case 73:{let r=Ru(t);if(r==i)return vd(t,e),r;let n=Iu(t);if(n==i)return Ed(t,e),n;break}case 76:{let r=Fu(t);for(let n=0;n<r;++n){let s=ku(t,n);if(s==i)return Sd(t,n,e),s}break}case 77:{let r=wu(t);if(r==i)return Id(t,e),r;let n=Cu(t);if(n==i)return Rd(t,e),n;break}case 78:{let r=Pu(t);if(r==i)return Fd(t,e),r;let n=Bu(t);if(n==i)return kd(t,e),n;let s=Lu(t);if(s==i)return wd(t,e),s;break}case 81:{let r=Nu(t);if(r==i)return Cd(t,e),r;break}case 82:{let r=Mu(t);if(r==i)return Pd(t,e),r;let n=Gu(t);if(n==i)return Bd(t,e),n;let s=zu(t);if(s==i)return Ld(t,e),s;let a=Du(t);if(a==i)return Nd(t,e),a;let l=Uu(t);if(l==i)return Md(t,e),l;break}case 88:{let r=ru(t);if(r==i)return Dh(t,e),r;break}case 89:{let r=Vu(t);if(r==i)return Gd(t,e),r;let n=Ou(t);if(n==i)return zd(t,e),n;let s=qu(t);if(s==i)return Dd(t,e),s;break}case 90:break;case 91:{let r=Wu(t);if(r==i)return Ud(t,e),r;break}case 92:{let r=Ku(t);if(r==i)return Vd(t,e),r;let n=ju(t);if(n==i)return Od(t,e),n;let s=Hu(t);if(s==i)return qd(t,e),s;break}case 93:{let r=Qu(t);if(r==i)return Wd(t,e),r;let n=Xu(t);if(n==i)return Kd(t,e),n;break}case 94:{let r=Zu(t);if(r==i)return jd(t,e),r;let n=Yu(t);if(n==i)return Hd(t,e),n;break}case 96:{let r=$u(t);if(r==i)return Qd(t,e),r;let n=ep(t);if(n==i)return Xd(t,e),n;break}case 97:{let r=tp(t);if(r==i)return Jd(t,e),r;let n=rp(t);if(n==i)return Zd(t,e),n;let s=ip(t);if(s==i)return Yd(t,e),s;break}default:throw new Error("unexpected expression id")}return 0}var no=class extends Xr{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(ni(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let r=this.module,n=yr(e),s=Xs(e),a=Qs(e);Js(e,r.call("~onstore",[n,r.i32(s),r.i32(a),r.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",je([this.ptrType,L.I32,L.I32,L.I32]),this.ptrType)}};function Dg(t,i){let e=!1;for(;Rt(i)==6&&t.readStringCached(Yr(i))==d.tostack;)assert(Qt(i)==1),i=Xt(i,0),e=!0;return e?i:0}function Ug(t){return Rt(t)===14?!He(t):!0}var ks=class extends Xr{constructor(e){super(e.module);this.slotMaps=new Map;this.tempMaps=new Map;this.exportMap=new Map;this.hasStackCheckFunction=!1;this.callSlotOffset=0;this.callSlotStack=new Array;this.compiler=e}get options(){return this.compiler.options}get ptrType(){return this.options.sizeTypeRef}get ptrSize(){return this.ptrType==L.I64?8:4}get ptrBinaryAdd(){return this.ptrType==L.I64?25:0}get ptrBinarySub(){return this.ptrType==L.I64?26:1}ptrConst(e){return this.ptrType==L.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,r){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(r))return changetype(n.get(r))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(r,s),s}noteExport(e,r){r.length&&this.exportMap.set(e,r)}getSharedTemp(e,r){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(r))return changetype(n.get(r))}else n=new Map,this.tempMaps.set(e,n);let a=np(e)+n.size;return n.set(r,a),a}makeStackOffset(e){assert(e!=0);let r=this.module,n=r.global_set(d.stack_pointer,r.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,r.global_get(d.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:r.block(null,[n,this.makeStackCheck()],L.None)}makeStackFill(e,r){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)r.push(n.memory_fill(n.global_get(d.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)r.push(n.store(8,n.global_get(d.stack_pointer,this.ptrType),n.i64(0),L.I64,e-s)),s-=8;s&&(assert(s==4),r.push(n.store(4,n.global_get(d.stack_pointer,this.ptrType),n.i32(0),L.I32,e-s)))}}makeStackCheck(){let e=this.module;return!this.hasStackCheckFunction&&!e.hasFunction("~stack_check")&&(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",L.None,L.None,null,e.if(e.binary(17,e.global_get(d.stack_pointer,this.ptrType),e.global_get(d.data_end,this.ptrType)),this.compiler.options.hasFeature(64)?e.unreachable():this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),fe.native)))),e.call("~stack_check",null,L.None)}updateCallOperands(e){let r=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Dg(r,l);if(!o)continue;if(!Ug(o)){e[s]=o;continue}let u=this.currentFunction,c=np(u),f=this.noteSlot(u,c+this.callSlotOffset+n),_=this.getSharedTemp(u,this.ptrType),h=new Array;h.push(r.local_set(_,o,!1)),h.push(r.store(this.ptrSize,r.global_get(d.stack_pointer,this.ptrType),r.local_get(_,this.ptrType),this.ptrType,f*this.ptrSize)),h.push(r.local_get(_,this.ptrType)),e[s]=r.block(null,h,this.ptrType),++n}return n}visitCallPre(e){let r=Qt(e),n=new Array(r);for(let a=0;a<r;++a)n[a]=Xt(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Os(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let r=this.callSlotStack.pop();r&&(this.callSlotOffset-=r)}visitCallIndirectPre(e){let r=ln(e),n=new Array(r);for(let a=0;a<r;++a)n[a]=on(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)qs(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let r=this.callSlotStack.pop();r&&(this.callSlotOffset-=r)}visitLocalSet(e){let r=this.module,n=mr(e),s=Dg(r,n);if(!s)return;if(!Ug(s)){js(e,s);return}let a=$r(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(r.store(this.ptrSize,r.global_get(d.stack_pointer,this.ptrType),r.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),Ks(e)?(o.push(r.local_get(a,this.ptrType)),this.replaceCurrent(r.flatten(o,this.ptrType))):this.replaceCurrent(r.flatten(o,L.None))}updateFunction(e){let r=ni(e),n=An(e),s=En(e),a=assert(kt(e)),l=Ys(e),o=new Array;for(let h=0;h<l;++h)o[h]=$s(e,h);let u=this.tempMaps;if(u.has(e)){let h=changetype(u.get(e));for(let m=Map_keys(h),x=0,g=m.length;x<g;++x)o.push(m[x])}let c=this.module.ref;xn(c,r);let f=he(o),_=ti(c,r,n,s,f,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let h=this.compiler.program.searchFunctionByRef(_);h&&h.addDebugInfo(this.module,_)}ie(f)}updateExport(e,r){let n=this.module,s=n.ref;assert(cm(e)==0);let a=_m(e),l=n.readStringCached(a),o=fm(e),u=ri(s,a),c=An(u),f=qp(c),_=f.length,h=En(u),m=_,x=new Array,g=assert(r.length),T=g*this.ptrSize,I="export:"+l,E=n.allocStringCached(I);if(ri(s,E)==0){let k=new Array;k.push(this.makeStackOffset(-T));for(let M=0;M<g;++M)k.push(n.store(this.ptrSize,n.global_get(d.stack_pointer,this.ptrType),n.local_get(r[M],this.ptrType),this.ptrType,M*this.ptrSize));let F=new Array(_);for(let M=0;M<_;++M)F[M]=n.local_get(M,f[M]);if(h!=L.None){let M=m++;x.push(h),k.push(n.local_set(M,n.call(l,F,h),!1)),k.push(this.makeStackOffset(+T)),k.push(n.local_get(M,h))}else k.push(n.call(l,F,h)),k.push(this.makeStackOffset(+T));let R=he(x);ti(s,E,c,h,R,x.length,n.block(null,k,h)),ie(R)}ra(s,o),ea(s,E,o)}walkModule(){let e=this.module.ref,r=this.module,n=0,s=0,a=new Set;for(;;){let u=ii(e);if(u==n)break;for(let f=n;f<u;++f)this.walkFunction(Tn(e,f));let c=new so(this);for(let f=Map_keys(this.slotMaps),_=0,h=f.length;_<h;++_){let m=f[_];if(a.has(m))continue;a.add(m);let g=changetype(this.slotMaps.get(m)).size*this.ptrSize;c.frameSize=g,c.walkFunction(m);let T=new Array;T.push(this.makeStackOffset(-g)),this.makeStackFill(g,T);let I=kt(m),E=Ft(I);if(E==L.Unreachable)T.push(I);else if(E==L.None)T.push(I),T.push(this.makeStackOffset(+g));else{let k=this.getSharedTemp(m,E);T.push(r.local_set(k,I,!1)),T.push(this.makeStackOffset(+g)),T.push(r.local_get(k,E))}vn(m,r.flatten(T,E))}if(n=u,s++,s>100)throw new Error("ShadowStackPass: too many iterations, possible infinite loop")}this.walkGlobals();let l=this.exportMap;for(let u=Map_keys(l),c=0,f=u.length;c<f;++c){let _=u[c],h=ta(r.ref,r.allocStringCached(_)),m=changetype(l.get(_));this.updateExport(h,m)}let o=ii(e);for(;n<o;){for(let c=n;c<o;++c)this.walkFunction(Tn(e,c));let u=new so(this);for(let c=Map_keys(this.slotMaps),f=0,_=c.length;f<_;++f){let h=c[f];if(a.has(h))continue;a.add(h);let x=changetype(this.slotMaps.get(h)).size*this.ptrSize;u.frameSize=x,u.walkFunction(h);let g=new Array;g.push(this.makeStackOffset(-x)),this.makeStackFill(x,g);let T=kt(h),I=Ft(T);if(I==L.Unreachable)g.push(T);else if(I==L.None)g.push(T),g.push(this.makeStackOffset(+x));else{let E=this.getSharedTemp(h,I);g.push(r.local_set(E,T,!1)),g.push(this.makeStackOffset(+x)),g.push(r.local_get(E,I))}vn(h,r.flatten(g,I))}n=o,o=ii(e)}for(let u=Map_keys(this.tempMaps),c=0,f=u.length;c<f;++c)this.updateFunction(u[c])}},so=class extends Xr{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let r=this.module,n=gr(e),s=new Array;if(n){let a=Ft(n);if(a==L.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(r.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),Zs(e,r.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(r.flatten(s,L.Unreachable))}};var Gi=class{constructor(i,e=!1){this.seen=new Map;this.program=i,this.includePrivate=e}walk(){for(let i=Map_values(this.program.filesByName),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(i){let e=i.exports;if(e)for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));this.visitElement(l,o)}let r=i.exportsStar;if(r)for(let n=0,s=r.length;n<s;++n){let a=unchecked(r[n]);this.visitFile(a)}}visitElement(i,e){if(e.is(512)&&!this.includePrivate)return;let r=this.seen;if(!e.is(262144)&&r.has(e)){this.visitAlias(i,e,assert(r.get(e)));return}switch(r.set(e,i),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(i,e);break}case 2:{e.is(8388608)&&this.visitEnum(i,e);break}case 3:break;case 4:{this.visitFunctionInstances(i,e);break}case 6:{this.visitClassInstances(i,e);break}case 8:{this.visitInterfaceInstances(i,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(i,s);let a=n.setterInstance;a&&this.visitFunction(i,a);break}case 12:{Vg(e)&&this.visitNamespace(i,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(i,l)}}visitClassInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(i,l)}}visitInterfaceInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(i,l)}}};function Vg(t){let i=t.members;if(i)for(let e=Map_values(i),r=0,n=e.length;r<n;++r){let s=unchecked(e[r]);switch(s.kind){case 4:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}case 6:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}default:{if(s.is(8388608)||Vg(s))return!0;break}}}return!1}function hI(t){return t=="rtrace"?"#rtrace":t}function dI(t){return t!="rtrace"}var Di=class t extends Gi{constructor(e,r,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.needsLiftBuffer=!1;this.needsLowerBuffer=!1;this.needsLiftString=!1;this.needsLowerString=!1;this.needsLiftArray=!1;this.needsLowerArray=!1;this.needsLiftTypedArray=!1;this.needsLowerTypedArray=!1;this.needsLiftStaticArray=!1;this.needsLowerStaticArray=!1;this.needsLiftInternref=!1;this.needsLowerInternref=!1;this.needsRetain=!1;this.needsRelease=!1;this.needsNotNull=!1;this.needsSetU8=!1;this.needsSetU16=!1;this.needsSetU32=!1;this.needsSetU64=!1;this.needsSetF32=!1;this.needsSetF64=!1;this.needsGetI8=!1;this.needsGetU8=!1;this.needsGetI16=!1;this.needsGetU16=!1;this.needsGetI32=!1;this.needsGetU32=!1;this.needsGetI64=!1;this.needsGetU64=!1;this.needsGetF32=!1;this.needsGetF64=!1;this.deferredLifts=new Set;this.deferredLowers=new Set;this.deferredCode=new Array;this.exports=new Array;this.importMappings=new Map;this.esm=r}static build(e,r=!0){return new t(e,r).build()}visitGlobal(e,r){let n=this.sb,s=r.type;this.exports.push(e),Jr(s,1)||(O(n,this.indentLevel),n.push(e),n.push(`: {
|
|
26
28
|
`),O(n,++this.indentLevel),n.push("// "),n.push(r.internalName),n.push(": "),n.push(s.toString()),n.push(`
|
|
27
29
|
`),O(n,this.indentLevel),n.push(`valueOf() { return this.value; },
|
|
28
30
|
`),O(n,this.indentLevel),n.push(`get value() {
|
|
@@ -44,7 +46,7 @@ import { __toildbResolve } from "toildb";
|
|
|
44
46
|
`),O(s,++this.indentLevel),s.push("// "),s.push(n.internalName),s.push(": "),s.push(n.type.toString()),s.push(`
|
|
45
47
|
`),O(s,this.indentLevel),s.push(`// not supported: cannot lower before instantiate completes
|
|
46
48
|
`),O(s,--this.indentLevel),s.push("}")),s.push(`,
|
|
47
|
-
`)}makeFunctionImport(e,r,n,s=null){let a=this.sb,l=n.signature;if(O(a,this.indentLevel),ze(r)?a.push(r):(a.push('"'),a.push(Te(r,34)),a.push('"'))
|
|
49
|
+
`)}makeFunctionImport(e,r,n,s=null){let a=this.sb,l=n.signature;if(O(a,this.indentLevel),ze(r)?a.push(r):(a.push('"'),a.push(Te(r,34)),a.push('"')),tf(l,0)&&!s&&ze(r))a.push(`: (
|
|
48
50
|
`),O(a,this.indentLevel+1),a.push("// "),a.push(n.internalName),a.push(n.signature.toString()),a.push(`
|
|
49
51
|
`),O(a,this.indentLevel+1),e!="env"&&(a.push(e),a.push(".")),a.push(r),a.push(`
|
|
50
52
|
`),O(a,this.indentLevel),a.push(")");else{a.push("(");let o=l.parameterTypes,u=new Array;for(let _=0,h=o.length;_<h;++_)u.push(n.getParameterName(_));a.push(u.join(", ")),a.push(`) {
|
|
@@ -52,11 +54,11 @@ import { __toildbResolve } from "toildb";
|
|
|
52
54
|
`);for(let _=0,h=o.length;_<h;++_){let m=o[_];if(!Jr(m,1)){let x=n.getParameterName(_);O(a,this.indentLevel),a.push(x),a.push(" = "),this.makeLiftFromValue(x,m,a),a.push(`;
|
|
53
55
|
`)}}let c=new Array,f=this.ensureModuleId(e);s?(c.push(`(() => {
|
|
54
56
|
`),O(c,1),c.push(`// @external.js
|
|
55
|
-
`),
|
|
56
|
-
})()`)):(e!="env"&&(c.push("__module"),c.push(f.toString()),c.push(".")),c.push(r),c.push("("),c.push(u.join(", ")),c.push(")")),s=c.join(""),c.length=0,
|
|
57
|
+
`),Og(s,1,c),c.push(`
|
|
58
|
+
})()`)):(e!="env"&&(c.push("__module"),c.push(f.toString()),c.push(".")),c.push(r),c.push("("),c.push(u.join(", ")),c.push(")")),s=c.join(""),c.length=0,Og(s,this.indentLevel,c,!0),s=c.join(""),O(a,this.indentLevel),l.returnType!=p.void?(a.push("return "),this.makeLowerToValue(s,l.returnType,a),a.push(`;
|
|
57
59
|
`)):(a.push(s),a.push(`;
|
|
58
60
|
`)),O(a,--this.indentLevel),a.push("}")}a.push(`,
|
|
59
|
-
`)}visitFunction(e,r){if(r.is(512))return;let n=this.sb,s=r.signature;if(this.exports.push(e)
|
|
61
|
+
`)}visitFunction(e,r){if(r.is(512))return;let n=this.sb,s=r.signature;if(this.exports.push(e),!tf(s,1)){O(n,this.indentLevel),n.push(e),n.push("(");let a=s.parameterTypes,l=0;for(let c=0,f=a.length;c<f;++c)a[c].isInternalReference&&l++,c>0&&n.push(", "),n.push(r.getParameterName(c));n.push(`) {
|
|
60
62
|
`),O(n,++this.indentLevel),n.push("// "),n.push(r.internalName),n.push(s.toString()),n.push(`
|
|
61
63
|
`);let o=new Array;for(let c=0,f=a.length;c<f;++c){let _=a[c];if(!Jr(_,0)){let h=r.getParameterName(c);O(n,this.indentLevel),n.push(h),n.push(" = ");let m=_.isInternalReference&&--l>0;m&&(this.needsRetain=!0,this.needsRelease=!0,n.push("__retain("),o.push(h)),this.makeLowerToValue(h,_,n),m&&n.push(")"),n.push(`;
|
|
62
64
|
`)}}o.length&&(O(n,this.indentLevel++),n.push(`try {
|
|
@@ -68,12 +70,12 @@ import { __toildbResolve } from "toildb";
|
|
|
68
70
|
`)}O(n,--this.indentLevel),n.push(`},
|
|
69
71
|
`)}this.visitNamespace(e,r)}visitClass(e,r){}visitInterface(e,r){this.visitClass(e,r)}visitNamespace(e,r){}visitAlias(e,r,n){}getExternalCode(e){let r=Nt(10,e.decoratorNodes);if(r){let n=r.args;if(n&&n.length==1){let s=n[0];if(s.kind==17){let a=s;if(a.literalKind==2)return a.value;if(a.literalKind==3){let l=a.parts;if(l.length==1)return l[0]}}}}return null}build(){let e=this.exports,r=this.program.moduleImports,n=this.program,s=n.options,a=this.sb;a.push(""),O(a,this.indentLevel++),this.esm||a.push("export "),a.push(`async function instantiate(module, imports = {}) {
|
|
70
72
|
`);let l=a.push("")-1;O(a,this.indentLevel++),a.push(`const adaptedImports = {
|
|
71
|
-
`);let o=a.length;for(let x=Map_keys(r),g=0,
|
|
73
|
+
`);let o=a.length;for(let x=Map_keys(r),g=0,T=x.length;g<T;++g){let I=x[g],E=this.ensureModuleId(I),k=r.get(I);if(O(a,this.indentLevel),ze(I)?a.push(I):(a.push('"'),a.push(Te(I,34)),a.push('"')),!dI(I)){a.push(": __module"),a.push(E.toString()),a.push(`,
|
|
72
74
|
`);continue}let F=a.length;a.push(`: Object.setPrototypeOf({
|
|
73
|
-
`),++this.indentLevel;let R=0;for(let M=Map_keys(k),z=0,D=M.length;z<D;++z){let W=M[z],q=assert(k.get(W));if(q.kind==5){let ee=q,Y=this.getExternalCode(ee);(
|
|
75
|
+
`),++this.indentLevel;let R=0;for(let M=Map_keys(k),z=0,D=M.length;z<D;++z){let W=M[z],q=assert(k.get(W));if(q.kind==5){let ee=q,Y=this.getExternalCode(ee);(!tf(ee.signature,0)||!ze(W)||Y)&&(this.makeFunctionImport(I,W,q,Y),++R)}else if(q.kind==0){let ee=q;(!Jr(ee.type,0)||!ze(W))&&(this.makeGlobalImport(I,W,ee),++R)}}--this.indentLevel,R?(O(a,this.indentLevel),a.push("}, "),I=="env"?a.push("Object.assign(Object.create(globalThis), imports.env || {})"):(a.push("__module"),a.push(E.toString())),a.push(`),
|
|
74
76
|
`)):(a.length=F,I=="env"?a.push(": Object.assign(Object.create(globalThis), imports.env || {})"):(a.push(": __module"),a.push(E.toString())),a.push(`,
|
|
75
77
|
`))}--this.indentLevel;let u=a.length>o;u?(O(a,this.indentLevel),a.push(`};
|
|
76
|
-
`)):a.length=o-2;let c=this.importMappings,f=new Array;for(let x=Map_keys(c),g=0,
|
|
78
|
+
`)):a.length=o-2;let c=this.importMappings,f=new Array;for(let x=Map_keys(c),g=0,T=x.length;g<T;++g){let I=x[g];if(I=="env")f.push(` const env = imports.env;
|
|
77
79
|
`);else{let E=c.get(I);I=="rtrace"&&(f.push(` ((rtrace) => {
|
|
78
80
|
`),f.push(` delete imports.rtrace;
|
|
79
81
|
`),f.push(" new rtrace.Rtrace({ getMemory() { return memory; }, onerror(err) { console.log(`RTRACE: ${err.stack}`); } }).install(imports);\n"),f.push(` })(imports.rtrace);
|
|
@@ -93,7 +95,7 @@ import { __toildbResolve } from "toildb";
|
|
|
93
95
|
new Uint8Array(memory.buffer).set(new Uint8Array(value), pointer);
|
|
94
96
|
return pointer;
|
|
95
97
|
}
|
|
96
|
-
`)}if(this.needsLiftString){let x=n.OBJECTInstance,g=x.offsetof("rtSize")-x.nextMemoryOffset,
|
|
98
|
+
`)}if(this.needsLiftString){let x=n.OBJECTInstance,g=x.offsetof("rtSize")-x.nextMemoryOffset,T=1024;a.push(` function __liftString(pointer) {
|
|
97
99
|
if (!pointer) return null;
|
|
98
100
|
const
|
|
99
101
|
end = pointer + new Uint32Array(memory.buffer)[pointer - ${-g} >>> 2] >>> 1,
|
|
@@ -101,7 +103,7 @@ import { __toildbResolve } from "toildb";
|
|
|
101
103
|
let
|
|
102
104
|
start = pointer >>> 1,
|
|
103
105
|
string = "";
|
|
104
|
-
while (end - start > ${
|
|
106
|
+
while (end - start > ${T}) string += String.fromCharCode(...memoryU16.subarray(start, start += ${T}));
|
|
105
107
|
return string + String.fromCharCode(...memoryU16.subarray(start, end));
|
|
106
108
|
}
|
|
107
109
|
`)}if(this.needsLowerString){let x=n.stringInstance.id;a.push(` function __lowerString(value) {
|
|
@@ -122,12 +124,12 @@ import { __toildbResolve } from "toildb";
|
|
|
122
124
|
for (let i = 0; i < length; ++i) values[i] = liftElement(dataStart + (i << align >>> 0));
|
|
123
125
|
return values;
|
|
124
126
|
}
|
|
125
|
-
`)}if(this.needsLowerArray){let x=n.arrayBufferInstance.id,g=n.arrayBufferViewInstance,
|
|
127
|
+
`)}if(this.needsLowerArray){let x=n.arrayBufferInstance.id,g=n.arrayBufferViewInstance,T=g.nextMemoryOffset+4,I=g.offsetof("buffer"),E=g.offsetof("dataStart"),k=g.offsetof("byteLength"),F=k+4;this.needsSetU32=!0,a.push(` function __lowerArray(lowerElement, id, align, values) {
|
|
126
128
|
if (values == null) return 0;
|
|
127
129
|
const
|
|
128
130
|
length = values.length,
|
|
129
131
|
buffer = exports.__pin(exports.__new(length << align, ${x})) >>> 0,
|
|
130
|
-
header = exports.__pin(exports.__new(${
|
|
132
|
+
header = exports.__pin(exports.__new(${T}, id)) >>> 0;
|
|
131
133
|
__setU32(header + ${I}, buffer);
|
|
132
134
|
__dataview.setUint32(header + ${E}, buffer, true);
|
|
133
135
|
__dataview.setUint32(header + ${k}, length << align, true);
|
|
@@ -137,20 +139,20 @@ import { __toildbResolve } from "toildb";
|
|
|
137
139
|
exports.__unpin(header);
|
|
138
140
|
return header;
|
|
139
141
|
}
|
|
140
|
-
`)}if(this.needsLiftTypedArray){let x=n.arrayBufferViewInstance,g=x.offsetof("dataStart"),
|
|
142
|
+
`)}if(this.needsLiftTypedArray){let x=n.arrayBufferViewInstance,g=x.offsetof("dataStart"),T=x.offsetof("byteLength");this.needsGetU32=!0,a.push(` function __liftTypedArray(constructor, pointer) {
|
|
141
143
|
if (!pointer) return null;
|
|
142
144
|
return new constructor(
|
|
143
145
|
memory.buffer,
|
|
144
146
|
__getU32(pointer + ${g}),
|
|
145
|
-
__dataview.getUint32(pointer + ${
|
|
147
|
+
__dataview.getUint32(pointer + ${T}, true) / constructor.BYTES_PER_ELEMENT
|
|
146
148
|
).slice();
|
|
147
149
|
}
|
|
148
|
-
`)}if(this.needsLowerTypedArray){let x=n.arrayBufferInstance.id,g=n.arrayBufferViewInstance,
|
|
150
|
+
`)}if(this.needsLowerTypedArray){let x=n.arrayBufferInstance.id,g=n.arrayBufferViewInstance,T=g.nextMemoryOffset,I=g.offsetof("buffer"),E=g.offsetof("dataStart"),k=g.offsetof("byteLength");this.needsSetU32=!0,a.push(` function __lowerTypedArray(constructor, id, align, values) {
|
|
149
151
|
if (values == null) return 0;
|
|
150
152
|
const
|
|
151
153
|
length = values.length,
|
|
152
154
|
buffer = exports.__pin(exports.__new(length << align, ${x})) >>> 0,
|
|
153
|
-
header = exports.__new(${
|
|
155
|
+
header = exports.__new(${T}, id) >>> 0;
|
|
154
156
|
__setU32(header + ${I}, buffer);
|
|
155
157
|
__dataview.setUint32(header + ${E}, buffer, true);
|
|
156
158
|
__dataview.setUint32(header + ${k}, length << align, true);
|
|
@@ -221,18 +223,18 @@ import { __toildbResolve } from "toildb";
|
|
|
221
223
|
`),--this.indentLevel,assert(this.indentLevel==0),this.esm){if(a.push(`export const {
|
|
222
224
|
`),this.program.options.exportMemory&&a.push(` memory,
|
|
223
225
|
`),this.program.options.exportTable&&a.push(` table,
|
|
224
|
-
`),this.program.options.exportRuntime){for(let
|
|
225
|
-
`);for(let
|
|
226
|
-
`)}for(let
|
|
226
|
+
`),this.program.options.exportRuntime){for(let T=0,I=Ui.length;T<I;++T)a.push(" "),a.push(Ui[T]),a.push(`,
|
|
227
|
+
`);for(let T=0,I=Vi.length;T<I;++T)a.push(" "),a.push(Vi[T]),a.push(`,
|
|
228
|
+
`)}for(let T=0,I=e.length;T<I;++T)a.push(" "),a.push(e[T]),a.push(`,
|
|
227
229
|
`);a.push(`} = await (async url => instantiate(
|
|
228
230
|
await (async () => {
|
|
229
231
|
const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
|
|
230
232
|
if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); }
|
|
231
233
|
else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); }
|
|
232
234
|
})(), {
|
|
233
|
-
`);let x=!1,g=new Array;for(let
|
|
235
|
+
`);let x=!1,g=new Array;for(let T=Map_keys(c),I=0,E=T.length;I<E;++I){let k=T[I];if(k=="env")O(a,2),a.push(`env: globalThis,
|
|
234
236
|
`);else{let F=this.ensureModuleId(k);O(a,2),ze(k)?a.push(k):(a.push('"'),a.push(Te(k,34)),a.push('"')),a.push(": __maybeDefault(__import"),a.push(F.toString()),a.push(`),
|
|
235
|
-
`),g.push("import * as __import"),g.push(F.toString()),g.push(' from "'),g.push(Te(
|
|
237
|
+
`),g.push("import * as __import"),g.push(F.toString()),g.push(' from "'),g.push(Te(hI(k),34)),g.push(`";
|
|
236
238
|
`),x=!0}}a[0]=g.join(""),a.push(` }
|
|
237
239
|
))(new URL("${Te(s.basenameHint,34)}.wasm", import.meta.url));
|
|
238
240
|
`),x&&a.push(`function __maybeDefault(module) {
|
|
@@ -240,7 +242,7 @@ import { __toildbResolve } from "toildb";
|
|
|
240
242
|
? module.default
|
|
241
243
|
: module;
|
|
242
244
|
}
|
|
243
|
-
`)}return a.join("")}ensureModuleId(e){if(e=="env")return-1;let r=this.importMappings,n=r.has(e)?i32(r.get(e)):r.size;return r.set(e,n),n}makeLiftFromValue(e,r,n=this.sb){if(r.isInternalReference){let s=assert(r.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__liftBuffer("),this.needsLiftBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__liftString("),this.needsLiftString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__liftArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__liftStaticArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype))n.push("__liftTypedArray("),s.name=="Uint64Array"?n.push("BigUint64Array"):s.name=="Int64Array"?n.push("BigInt64Array"):n.push(s.name),n.push(", "),this.needsLiftTypedArray=!0;else if(
|
|
245
|
+
`)}return a.join("")}ensureModuleId(e){if(e=="env")return-1;let r=this.importMappings,n=r.has(e)?i32(r.get(e)):r.size;return r.set(e,n),n}makeLiftFromValue(e,r,n=this.sb){if(r.isInternalReference){let s=assert(r.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__liftBuffer("),this.needsLiftBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__liftString("),this.needsLiftString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__liftArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__liftStaticArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype))n.push("__liftTypedArray("),s.name=="Uint64Array"?n.push("BigUint64Array"):s.name=="Int64Array"?n.push("BigInt64Array"):n.push(s.name),n.push(", "),this.needsLiftTypedArray=!0;else if(ws(s)){if(n.push("__liftRecord"),n.push(s.id.toString()),n.push("("),!this.deferredLifts.has(s)){this.deferredLifts.add(s);let a=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLiftRecord(s)),this.indentLevel=a}}else n.push("__liftInternref("),this.needsLiftInternref=!0;n.push(e),e.startsWith("__get")||n.push(" >>> 0"),n.push(")")}else r==p.bool?n.push(`${e} != 0`):r.isUnsignedIntegerValue&&r.size>=32?r.size==64?n.push(`BigInt.asUintN(64, ${e})`):n.push(`${e} >>> 0`):n.push(e)}makeLowerToValue(e,r,n=this.sb){if(r.isInternalReference){let s=assert(r.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__lowerBuffer("),this.needsLowerBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__lowerString("),this.needsLowerString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__lowerArray("),this.makeLowerToMemoryFunc(a,n),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(s.getArrayValueType().alignLog2.toString()),n.push(", "),this.needsLowerArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__lowerStaticArray("),this.makeLowerToMemoryFunc(a,n),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLowerStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype)){let a=s.getArrayValueType();n.push("__lowerTypedArray("),a==p.u64?n.push("BigUint64Array"):a==p.i64?n.push("BigInt64Array"):n.push(s.name),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(s.getArrayValueType().alignLog2.toString()),n.push(", "),this.needsLowerTypedArray=!0}else if(ws(s)){if(n.push("__lowerRecord"),n.push(s.id.toString()),n.push("("),!this.deferredLowers.has(s)){this.deferredLowers.add(s);let a=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLowerRecord(s)),this.indentLevel=a}}else n.push("__lowerInternref("),this.needsLowerInternref=!0;if(n.push(e),s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();a.isNumericValue&&(n.push(", "),a==p.u8||a==p.bool?n.push("Uint8Array"):a==p.i8?n.push("Int8Array"):a==p.u16?n.push("Uint16Array"):a==p.i16?n.push("Int16Array"):a==p.u32||a==p.usize32?n.push("Uint32Array"):a==p.i32||a==p.isize32?n.push("Int32Array"):a==p.u64||a==p.usize64?n.push("BigUint64Array"):a==p.i64||a==p.isize64?n.push("BigInt64Array"):a==p.f32?n.push("Float32Array"):a==p.f64?n.push("Float64Array"):assert(!1))}n.push(")"),r.is(512)||(this.needsNotNull=!0,n.push(" || __notnull()"))}else n.push(e),r.isIntegerValue&&r.size==64?n.push(" || 0n"):r==p.bool&&n.push(" ? 1 : 0")}ensureLiftFromMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsGetU64=!0,"__getU64"):(this.needsGetU32=!0,"__getU32"):e==p.i8?(this.needsGetI8=!0,"__getI8"):e==p.u8||e==p.bool?(this.needsGetU8=!0,"__getU8"):e==p.i16?(this.needsGetI16=!0,"__getI16"):e==p.u16?(this.needsGetU16=!0,"__getU16"):e==p.i32||e==p.isize32?(this.needsGetI32=!0,"__getI32"):e==p.u32||e==p.usize32?(this.needsGetU32=!0,"__getU32"):e==p.i64||e==p.isize64?(this.needsGetI64=!0,"__getI64"):e==p.u64||e==p.usize64?(this.needsGetU64=!0,"__getU64"):e==p.f32?(this.needsGetF32=!0,"__getF32"):e==p.f64?(this.needsGetF64=!0,"__getF64"):'(() => { throw Error("unsupported type"); })'}makeLiftFromMemoryFunc(e,r=this.sb){let n=this.ensureLiftFromMemoryFn(e);e.isInternalReference||e==p.bool||e.isUnsignedIntegerValue&&e.size>=32?(r.push("pointer => "),this.makeLiftFromValue(`${n}(pointer)`,e,r)):r.push(n)}makeLiftFromMemoryCall(e,r=this.sb,n="pointer"){let s=this.ensureLiftFromMemoryFn(e);e.isInternalReference?this.makeLiftFromValue(`${s}(${n})`,e,r):(r.push(s),r.push("("),r.push(n),r.push(")"),e==p.bool&&r.push(" != 0"))}ensureLowerToMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsSetU64=!0,"__setU64"):(this.needsSetU32=!0,"__setU32"):e==p.i8||e==p.u8||e==p.bool?(this.needsSetU8=!0,"__setU8"):e==p.i16||e==p.u16?(this.needsSetU16=!0,"__setU16"):e==p.i32||e==p.u32||e==p.isize32||e==p.usize32?(this.needsSetU32=!0,"__setU32"):e==p.i64||e==p.u64||e==p.isize64||e==p.usize64?(this.needsSetU64=!0,"__setU64"):e==p.f32?(this.needsSetF32=!0,"__setF32"):e==p.f64?(this.needsSetF64=!0,"__setF64"):'(() => { throw Error("unsupported type") })'}makeLowerToMemoryFunc(e,r=this.sb){let n=this.ensureLowerToMemoryFn(e);e.isInternalReference?(r.push("(pointer, value) => { "),r.push(n),r.push("(pointer, "),this.makeLowerToValue("value",e,r),r.push("); }")):r.push(n)}makeLowerToMemoryCall(e,r=this.sb,n="pointer",s="value"){let a=this.ensureLowerToMemoryFn(e);r.push(a),r.push("("),r.push(n),r.push(", "),this.makeLowerToValue(s,e,r),r.push(")")}makeLiftRecord(e){assert(ws(e));let r=new Array;O(r,this.indentLevel),r.push("function __liftRecord"),r.push(e.id.toString()),r.push(`(pointer) {
|
|
244
246
|
`),O(r,++this.indentLevel),r.push("// "),r.push(e.type.toString()),r.push(`
|
|
245
247
|
`),O(r,this.indentLevel),r.push(`// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
246
248
|
`),O(r,this.indentLevel),r.push(`if (!pointer) return null;
|
|
@@ -248,7 +250,7 @@ import { __toildbResolve } from "toildb";
|
|
|
248
250
|
`);let n=e.members;if(n)for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),O(r,this.indentLevel),r.push(c.name),r.push(": "),this.makeLiftFromMemoryCall(c.type,r,`pointer + ${c.memoryOffset}`),r.push(`,
|
|
249
251
|
`))}return O(r,--this.indentLevel),r.push(`};
|
|
250
252
|
`),O(r,--this.indentLevel),r.push(`}
|
|
251
|
-
`),r.join("")}makeLowerRecord(e){assert(
|
|
253
|
+
`),r.join("")}makeLowerRecord(e){assert(ws(e));let r=new Array;O(r,this.indentLevel),r.push("function __lowerRecord"),r.push(e.id.toString()),r.push(`(value) {
|
|
252
254
|
`),O(r,++this.indentLevel),r.push("// "),r.push(e.type.toString()),r.push(`
|
|
253
255
|
`),O(r,this.indentLevel),r.push(`// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
254
256
|
`),O(r,this.indentLevel),r.push(`if (value == null) return 0;
|
|
@@ -257,7 +259,7 @@ import { __toildbResolve } from "toildb";
|
|
|
257
259
|
`))}return O(r,this.indentLevel),r.push(`exports.__unpin(pointer);
|
|
258
260
|
`),O(r,this.indentLevel),r.push(`return pointer;
|
|
259
261
|
`),O(r,--this.indentLevel),r.push(`}
|
|
260
|
-
`),r.join("")}};function Jr(t,i){if(i==0){if(t==p.bool||t.isIntegerValue&&t.size==64)return!1}else if(t==p.bool||t.isUnsignedIntegerValue&&t.size>=32)return!1;return!t.isInternalReference}function
|
|
262
|
+
`),r.join("")}};function Jr(t,i){if(i==0){if(t==p.bool||t.isIntegerValue&&t.size==64)return!1}else if(t==p.bool||t.isUnsignedIntegerValue&&t.size>=32)return!1;return!t.isInternalReference}function tf(t,i){let e=t.parameterTypes,r=i==0?1:0;if(!Jr(t.returnType,i))return!1;for(let n=0,s=e.length;n<s;++n)if(!Jr(e[n],r))return!1;return!0}function ws(t){if(t.base&&!t.prototype.implicitlyExtendsObject)return!1;let i=t.members;if(i)for(let e=Map_values(i),r=0,n=e.length;r<n;++r){let s=e[r];if(s.isAny(1536)||s.is(524288)&&s.declaration.range!=fe.native.range)return!1}return!0}function Og(t,i,e,r=!1){let n=0,s=t.length,a=0;for(;a<s;)t.charCodeAt(a)==10&&(r?r=!1:O(e,i),e.push(t.substring(n,n=a+1))),++a;n<s&&(r||O(e,i),e.push(t.substring(n)))}function Oi(t){if(!t.isInternalReference)return!1;let i=t.classReference;if(!i)return assert(t.signatureReference),!0;let e=i.program;return i.extendsPrototype(e.arrayBufferInstance.prototype)||i.extendsPrototype(e.stringInstance.prototype)||i.extendsPrototype(e.arrayBufferViewInstance.prototype)?!1:i.extendsPrototype(e.arrayPrototype)||i.extendsPrototype(e.staticArrayPrototype)?Oi(i.getArrayValueType()):!0}function qi(t){if(!t.isInternalReference)return!1;let i=t.classReference;if(!i)return assert(t.signatureReference),!1;let e=i.program;return i.extendsPrototype(e.arrayBufferInstance.prototype)||i.extendsPrototype(e.stringInstance.prototype)||i.extendsPrototype(e.arrayBufferViewInstance.prototype)||i.extendsPrototype(e.arrayPrototype)||i.extendsPrototype(e.staticArrayPrototype)?!0:ws(i)}function zi(t,i){return` function __set${t}(pointer, value) {
|
|
261
263
|
try {
|
|
262
264
|
__dataview.${i}(pointer, value, true);
|
|
263
265
|
} catch {
|
|
@@ -273,7 +275,7 @@ import { __toildbResolve } from "toildb";
|
|
|
273
275
|
return __dataview.${i}(pointer, true);
|
|
274
276
|
}
|
|
275
277
|
}
|
|
276
|
-
`}var Zr="",hr="",no=15,Cs=class{constructor(){this.target=1;this.runtime=2;this.debugInfo=!1;this.noAssert=!1;this.exportMemory=!0;this.importMemory=!1;this.initialMemory=0;this.maximumMemory=0;this.sharedMemory=!1;this.zeroFilledMemory=!1;this.importTable=!1;this.exportTable=!1;this.sourceMap=!1;this.uncheckedBehavior=0;this.exportStart=null;this.memoryBase=0;this.tableBase=0;this.globalAliases=null;this.features=no;this.noUnsafe=!1;this.pedantic=!1;this.lowMemoryLimit=0;this.exportRuntime=!1;this.stackSize=0;this.bundleMajorVersion=0;this.bundleMinorVersion=0;this.bundlePatchVersion=0;this.optimizeLevelHint=0;this.shrinkLevelHint=0;this.basenameHint="output";this.bindingsHint=!1}get isWasm64(){return this.target==2}get usizeType(){return this.target==2?p.usize64:p.usize32}get isizeType(){return this.target==2?p.isize64:p.isize32}get sizeTypeRef(){return this.target==2?L.I64:L.I32}get willOptimize(){return this.optimizeLevelHint>0||this.shrinkLevelHint>0}setFeature(i,e=!0){e?(i&32768&&(i|=1056),i&16384&&(i|=1024),i&1024&&(i|=256),i&4096&&(i|=16),this.features|=i):(i&256&&(i|=1024),i&1024&&(i|=16384),i&16&&(i|=4096),i&1056&&(i|=32768),this.features&=~i)}hasFeature(i){return(this.features&i)!=0}},Vl=(r=>(r[r.Default=0]="Default",r[r.Never=1]="Never",r[r.Always=2]="Always",r))(Vl||{}),Jc=(l=>(l[l.None=0]="None",l[l.ConvImplicit=1]="ConvImplicit",l[l.ConvExplicit=2]="ConvExplicit",l[l.MustWrap=4]="MustWrap",l[l.WillDrop=8]="WillDrop",l[l.PreferStatic=16]="PreferStatic",l[l.IsThis=32]="IsThis",l))(Jc||{}),Zc=(o=>(o[o.None=0]="None",o[o.Data=1]="Data",o[o.Stack=2]="Stack",o[o.Heap=4]="Heap",o[o.Rtti=8]="Rtti",o[o.visitGlobals=16]="visitGlobals",o[o.visitMembers=32]="visitMembers",o[o.setArgumentsLength=64]="setArgumentsLength",o))(Zc||{}),Wi;(r=>(r.DefaultNamespace="env",r.Memory="memory",r.Table="table"))(Wi||={});var ws;(n=>(n.Memory="memory",n.Table="table",n.argumentsLength="__argumentsLength",n.setArgumentsLength="__setArgumentsLength"))(ws||={});var Ui=["__new","__pin","__unpin","__collect"],Vi=["__rtti_base"],Ps=class t extends We{constructor(e){super(e.diagnostics);this.currentParent=null;this.currentType=p.void;this.memorySegments=[];this.stringSegments=new Map;this.staticGcObjectOffsets=new Map;this.functionTable=[];this.builtinArgumentsLength=0;this.closureEnvironmentGlobal=0;this.runtimeFeatures=0;this.inlineStack=[];this.lazyFunctions=new Set;this.pendingInstanceOf=new Map;this.overrideStubs=new Set;this.pendingElements=new Set;this.doneModuleExports=new Set;this.hasCustomFunctionExports=!1;this.desiresExportRuntime=!1;this.exceptionTagEnsured=!1;this.f32ModInstance=null;this.f64ModInstance=null;this.f32PowInstance=null;this.f64PowInstance=null;this.i32PowInstance=null;this.i64PowInstance=null;this._reusableCallExpression=null;this.program=e;let r=e.module,n=e.options;n.memoryBase?(this.memoryOffset=i64_new(n.memoryBase),r.setLowMemoryUnused(!1)):!n.lowMemoryLimit&&n.optimizeLevelHint>=2?(this.memoryOffset=i64_new(1024),r.setLowMemoryUnused(!0)):(this.memoryOffset=i64_new(8),r.setLowMemoryUnused(!1));let s=0;n.hasFeature(1)&&(s|=32),n.hasFeature(2)&&(s|=2),n.hasFeature(4)&&(s|=4),n.hasFeature(8)&&(s|=16),n.hasFeature(16)&&(s|=8),n.hasFeature(32)&&(s|=1),n.hasFeature(64)&&(s|=64),n.hasFeature(128)&&(s|=128),n.hasFeature(256)&&(s|=256),n.hasFeature(512)&&(s|=512),n.hasFeature(1024)&&(s|=1024),n.hasFeature(2048)&&(s|=2048),n.hasFeature(4096)&&(s|=4096),n.hasFeature(8192)&&(s|=8192),n.hasFeature(16384)&&(s|=16384),n.hasFeature(32768)&&(s|=131072),r.setFeatures(s);let a=e.makeNativeFunction(d.start,qe.create(e,[],p.void));a.internalName=d.start,this.currentFlow=a.flow,this.currentBody=new Array,this.shadowStack=new Fs(this)}get module(){return this.program.module}get options(){return this.program.options}get resolver(){return this.program.resolver}static compile(e){return new t(e).compile()}compile(){let e=this.options,r=this.module,n=this.program,s=this.resolver,a=e.stackSize>0;this.initDummyMemory(),this.program.initialize(),r.setClosedWorld(!0);let l=this.currentFlow.targetFunction;assert(l.internalName==d.start);let o=this.currentBody;assert(o.length==0);let u=n.filesByName;for(let E=Map_values(u),k=0,F=E.length;k<F;++k){let R=unchecked(E[k]);R.source.sourceKind==1&&(this.compileFile(R),this.compileModuleExports(R))}if((this.options.exportRuntime||this.options.bindingsHint&&this.desiresExportRuntime)&&this.options.runtime!=3){for(let E=0,k=Ui.length;E<k;++E){let F=Ui[E],R=n.requireFunction(F);this.compileFunction(R)&&!r.hasExport(F)&&r.addFunctionExport(R.internalName,F)}for(let E=0,k=Vi.length;E<k;++E){let F=Vi[E],R=n.requireGlobal(F);this.compileGlobal(R)&&!r.hasExport(F)&&r.addGlobalExport(R.internalName,F)}}let c=this.lazyFunctions;do{let E=new Array;for(let k=Set_values(c),F=0,R=k.length;F<R;++F){let M=unchecked(k[F]);E.push(M)}c.clear();for(let k=0,F=E.length;k<F;++k)this.compileFunction(unchecked(E[k]),!0)}while(c.size);let f=this.functionTable,_=this.overrideStubs;for(let E=0,k=f.length;E<k;++E){let F=f[E];F.is(268435456)?(assert(F.is(262144)),f[E]=this.ensureOverrideStub(F)):F.signature.requiredParameters<F.signature.parameterTypes.length&&(f[E]=this.ensureVarargsStub(F))}let h=new Set;do{s.discoveredOverride=!1;for(let E=Set_values(_),k=0,F=E.length;k<F;++k){let R=unchecked(E[k]),M=s.resolveOverrides(R);if(M)for(let z=0,D=M.length;z<D;++z)this.compileFunction(M[z]);h.add(R)}}while(_.size>h.size||s.discoveredOverride);h.clear();for(let E=Set_values(_),k=0,F=E.length;k<F;++k)this.finalizeOverrideStub(E[k]);for(let E=Map_keys(this.pendingInstanceOf),k=0,F=E.length;k<F;++k){let R=E[k],M=assert(this.pendingInstanceOf.get(R));switch(R.kind){case 7:case 9:{this.finalizeInstanceOf(R,M);break}case 6:case 8:{this.finalizeAnyInstanceOf(R,M);break}default:assert(!1)}}r.removeGlobal(d.rtti_base),this.runtimeFeatures&8&&Ng(this);let m=i64_align(this.memoryOffset,e.usizeType.byteSize);r.removeGlobal(d.data_end),((this.runtimeFeatures&1)!=0||a)&&(e.isWasm64?r.addGlobal(d.data_end,L.I64,!1,r.i64(i64_low(m),i64_high(m))):r.addGlobal(d.data_end,L.I32,!1,r.i32(i64_low(m)))),r.removeGlobal(d.stack_pointer),((this.runtimeFeatures&2)!=0||a)&&(m=i64_align(i64_add(m,i64_new(e.stackSize)),e.usizeType.byteSize),e.isWasm64?r.addGlobal(d.stack_pointer,L.I64,!0,r.i64(i64_low(m),i64_high(m))):r.addGlobal(d.stack_pointer,L.I32,!0,r.i32(i64_low(m)))),r.removeGlobal(d.heap_base),((this.runtimeFeatures&4)!=0||a)&&(e.isWasm64?r.addGlobal(d.heap_base,L.I64,!1,r.i64(i64_low(m),i64_high(m))):r.addGlobal(d.heap_base,L.I32,!1,r.i32(i64_low(m)))),this.initDefaultMemory(m),this.initDefaultTable(),this.runtimeFeatures&64&&(r.addFunction(d.setArgumentsLength,L.I32,L.None,null,r.global_set(this.ensureArgumentsLength(),r.local_get(0,L.I32))),r.addFunctionExport(d.setArgumentsLength,ws.setArgumentsLength));let x=this.program.mainFunction;if(x){let E=this.resolver.resolveFunction(x,null);E&&this.compileFunction(E)&&(r.hasExport("main")?this.error(110,x.declaration.range,"main"):r.addFunctionExport(E.internalName,"main"))}let g=!o.length,A=e.exportStart;if(!g||A!=null){let E=l.signature;!g&&A!=null&&(r.addGlobal(d.started,L.I32,!0,r.i32(0)),o.unshift(r.global_set(d.started,r.i32(1))),o.unshift(r.if(r.global_get(d.started,L.I32),r.return())));let k=r.addFunction(l.internalName,E.paramRefs,E.resultRefs,Br(l.getNonParameterLocalTypes()),r.flatten(o));l.finalize(r,k),A==null?r.setStart(k):!ze(A)||r.hasExport(A)?this.error(110,fe.native.range,A):r.addFunctionExport(l.internalName,A)}a&&this.shadowStack.walkModule(),this.runtimeFeatures&16&&Pg(this),this.runtimeFeatures&32&&Lg(this),a&&this.runtimeFeatures&48&&new Fs(this).walkModule(),n.lookup("ASC_RTRACE")!=null&&new ro(this).walkModule();let I=pg(n);return I!=null&&r.addCustomSection("toildb.catalog",I),r}initDummyMemory(){let e=this.options;this.module.setMemory(0,Gt.UNLIMITED_MEMORY,[],e.target,null,C.DefaultMemory,e.sharedMemory)}initDefaultMemory(e){this.memoryOffset=e;let r=this.options,n=this.module,s=this.memorySegments,a=0,l=Gt.UNLIMITED_MEMORY,o=!1;(r.memoryBase||s.length)&&(a=u32(i64_low(i64_shr_u(i64_align(e,65536),i64_new(16))))),r.initialMemory&&(r.initialMemory<a?this.error(105,null,a.toString()):a=r.initialMemory),r.maximumMemory&&(r.maximumMemory<a?this.error(106,null,a.toString()):l=r.maximumMemory),r.sharedMemory&&(o=!0,r.maximumMemory||(this.error(107,null),o=!1),r.hasFeature(32)||(this.error(108,null),o=!1));let u=r.lowMemoryLimit;if(u){let c=i64_new(u&-16);i64_gt(e,c)&&this.error(104,null,i64_to_string(e),i64_to_string(c))}n.setMemory(a,l,s,r.target,r.exportMemory?ws.Memory:null,C.DefaultMemory,o),r.importMemory&&n.addMemoryImport(C.DefaultMemory,Wi.DefaultNamespace,Wi.Memory,o)}initDefaultTable(){let e=this.options,r=this.module;e.importTable&&(r.addTableImport(C.DefaultTable,Wi.DefaultNamespace,Wi.Table),r.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(901,null)),e.exportTable&&(r.addTableExport(C.DefaultTable,ws.Table),r.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(902,null));let n=e.tableBase;n||(n=1);let s=this.functionTable,a=new Array(s.length);for(let u=0,c=s.length;u<c;++u)a[u]=s[u].internalName;let l=n+s.length,o=Gt.UNLIMITED_TABLE;e.importTable||e.exportTable||(o=l,e.willOptimize&&r.setPassArgument("directize-initial-contents-immutable","true")),r.addFunctionTable(C.DefaultTable,l,o,a,r.i32(n))}compileModuleExports(e){let r=e.exports;if(r)for(let s=Map_keys(r),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(r.get(o));this.compileModuleExport(o,u)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.compileModuleExports(n[s])}compileModuleExport(e,r,n=""){let s=this.module;switch(r.kind){case 4:{let a=r;if(!a.is(65536)){let l=this.resolver.resolveFunction(a,null);l&&this.compileModuleExport(e,l,n);return}break}case 5:{let a=r;if(!a.hasDecorator(512)){let l=a.signature;if(l.requiredParameters<l.parameterTypes.length&&(a=this.ensureVarargsStub(a),this.runtimeFeatures|=64),this.compileFunction(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addFunctionExport(a.internalName,o),this.hasCustomFunctionExports=!0,l.hasManagedOperands&&this.shadowStack.noteExport(o,l.getManagedOperandIndices()),!this.desiresExportRuntime){let c=l.thisType;if(c&&qi(c)||Oi(l.returnType))this.desiresExportRuntime=!0;else{let f=l.parameterTypes;for(let _=0,h=f.length;_<h;++_)if(qi(f[_])){this.desiresExportRuntime=!0;break}}}a.signature.returnType.kind==15&&this.module.setClosedWorld(!1)}return}}break}case 0:{let a=r;if(!(a.is(8)||a.is(96))&&!this.options.hasFeature(2)){this.warning(103,a.identifierNode.range,"mutable-globals");return}if(this.compileGlobal(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addGlobalExport(r.internalName,o),!this.desiresExportRuntime){let u=a.type;(Oi(u)||!a.is(8)&&qi(u))&&(this.desiresExportRuntime=!0)}a.type.kind==15&&this.module.setClosedWorld(!1)}a.type==p.v128&&this.warning(112,a.typeNode?assert(a.typeNode).range:a.identifierNode.range,"v128");return}break}case 2:{this.compileEnum(r);let a=r.members;if(a){let l=n+e+Sn;for(let o=Map_keys(a),u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=assert(a.get(f));_.is(512)||this.compileModuleExport(f,_,l)}}return}case 3:{let a=r;if(!a.isImmutable&&!this.options.hasFeature(2)){this.error(103,a.identifierNode.range,"mutable-globals");return}if(a.is(8388608)){let l=n+e;s.hasExport(l)||s.addGlobalExport(r.internalName,l);return}break}}this.warning(235,r.identifierNode.range)}compileFileByPath(e,r){let n,s=this.program.filesByName,a;if(s.has(e))n=assert(s.get(e));else if(s.has(a=e+Ge))n=assert(s.get(a));else{this.error(6054,r.range,e);return}this.compileFile(n)}compileFile(e){if(e.is(8388608))return;e.set(8388608);let r=e.startFunction,n=r.signature,s=this.currentBody,a=new Array;this.currentBody=a;let l=this.currentFlow,o=r.flow;this.currentFlow=o;for(let u=e.source.statements,c=0,f=u.length;c<f;++c)this.compileTopLevelStatement(u[c],a);if(this.currentFlow=l,this.currentBody=s,a.length){let u=this.module,c=r.localsByIndex,f=c.length,_=new Array(f);for(let m=0;m<f;++m)_[m]=c[m].type.toRef();let h=u.addFunction(r.internalName,n.paramRefs,n.resultRefs,_,u.flatten(a));r.finalize(u,h),s.push(u.call(r.internalName,null,L.None))}}compileGlobalLazy(e,r){return e.is(8388608)?!e.is(16777216):e.hasAnyDecorator(1536)||e.is(32768)?this.compileGlobal(e):(this.errorRelated(2448,r.range,e.identifierNode.range,e.internalName),!1)}compileGlobal(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let r=this.pendingElements;r.add(e);let n=this.module,s=0,a=e.typeNode,l=e.initializerNode;if(!e.is(4194304))if(a){let m=this.resolver.resolveType(a,null,e.parent);if(!m)return e.set(16777216),r.delete(e),!1;if(m==p.void)return this.error(1110,a.range),e.set(16777216),r.delete(e),!1;e.setType(m),this.program.checkTypeSupported(m,a)}else if(l){let m=this.currentFlow;if(e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,p.auto,20),this.currentFlow=m,this.currentType==p.void)return this.error(2322,l.range,this.currentType.toString(),"<auto>"),e.set(16777216),r.delete(e),!1;e.setType(this.currentType)}else return this.error(1110,e.identifierNode.range.atEnd),e.set(16777216),r.delete(e),!1;if(e.hasDecorator(512)){let m=e.internalName;return Ot.has(m)&&assert(Ot.get(m))(new us(this,e)),r.delete(e),!0}let o=e.type;!l&&!e.is(16384)&&o.isReference&&!o.isNullableReference&&this.error(238,e.identifierNode.range);let u=o.toRef(),c=e.is(8)||e.is(96),f=e.hasDecorator(64);if(e.is(32768))return c||this.options.hasFeature(2)?(Ug(e,e.declaration),this.program.markModuleImport(Zr,hr,e),n.addGlobalImport(e.internalName,Zr,hr,u,!c),r.delete(e),!this.desiresExportRuntime&&qi(o)&&(this.desiresExportRuntime=!0),!0):(this.error(103,e.declaration.range,"mutable-globals"),e.set(16777216),r.delete(e),!1);let _=!1;if(l){if(!s){let m=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,o,21),this.currentFlow=m}if(!n.isConstExpression(s))if(c){let m=n.runExpression(s,1);m?s=m:_=!0}else _=!0;if(_&&$(s)==10){let m=assert(Vn(s));if(!Xp(n.getGlobal(m))){let x=this.program.elementsByName;x.has(m)&&assert(x.get(m)).is(32768)&&(_=!1)}}if(f)if(_)this.warning(206,l.range);else{switch(assert($(s)==14),se(s)){case L.I32:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ne(s),0);break}case L.I64:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ve(s),we(s));break}case L.F32:{e.constantValueKind=2,e.constantFloatValue=Ae(s);break}case L.F64:{e.constantValueKind=2,e.constantFloatValue=Ee(s);break}default:return assert(!1),e.set(16777216),r.delete(e),!1}e.set(33554432)}}else e.is(33554432)?s=this.compileInlineConstant(e,e.type,16):s=this.makeZero(o);let h=e.internalName;if(_){f&&this.error(212,Nt(8,e.decoratorNodes).range,"inline");let m=o;o.isExternalReference&&!o.is(512)&&(e.set(-2147483648),m=o.asNullable()),n.addGlobal(h,m.toRef(),!0,this.makeZero(m)),this.currentBody.push(n.global_set(h,s))}else f||n.addGlobal(h,u,!c,s);return r.delete(e),!0}compileEnum(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let r=this.pendingElements;r.add(e);let n=this.module,s=this.currentParent;this.currentParent=e;let a=null,l=!1,o=e.is(8)||e.hasDecorator(64),u=e.members;if(u)for(let c=Map_values(u),f=0,_=c.length;f<_;++f){let h=unchecked(c[f]);if(h.kind!=3)continue;let m=!1,x=h,g=x.valueNode;x.set(8388608);let A=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow);let I;if(g){if(I=this.compileExpression(g,p.i32,1),$(I)!=14){let E=n.runExpression(I,1);E?I=E:(e.is(8)&&this.error(2474,g.range),m=!0)}}else if(a==null)I=n.i32(0);else if(l&&this.error(1061,x.identifierNode.range.atEnd),o){let E=i64_add(a.constantIntegerValue,i64_new(1));assert(!i64_high(E)),I=n.i32(i64_low(E))}else{I=n.binary(0,n.global_get(a.internalName,L.I32),n.i32(1));let E=n.runExpression(I,1);E?I=E:(e.is(8)&&this.error(2474,h.declaration.range),m=!0)}this.currentFlow=A,m?(n.addGlobal(x.internalName,L.I32,!0,n.i32(0)),this.currentBody.push(this.makeGlobalAssignment(x,I,p.i32,!1)),l=!0):(o?(x.setConstantIntegerValue(i64_new(ne(I)),p.i32),x.is(1048576)&&n.addGlobal(x.internalName,L.I32,!1,I)):n.addGlobal(x.internalName,L.I32,!1,I),x.isImmutable=!0,l=!1),a=x}return this.currentParent=s,r.delete(e),!0}ensureEnumToString(e,r){if(e.toStringFunctionName)return e.toStringFunctionName;if(!this.compileEnum(e))return null;if(e.is(8))return this.errorRelated(2476,r.range,e.identifierNode.range),null;let n=e.members;if(!n)return null;let s=this.module,a=e.hasDecorator(64),l=`${e.internalName}#${C.EnumToString}`;e.toStringFunctionName=l;let o=new Array;for(let u=Map_keys(n),c=Map_values(n),f=1,_=u.length;f<=_;++f){let h=unchecked(u[_-f]),m=unchecked(c[_-f]);if(m.kind!=3)continue;let x=m,g=a?s.i32(i64_low(x.constantIntegerValue)):s.global_get(x.internalName,L.I32),A=s.if(s.binary(15,g,s.local_get(0,L.I32)),s.return(this.ensureStaticString(h)));o.push(A)}return o.push(s.unreachable()),s.addFunction(l,L.I32,L.I32,null,s.block(null,o,L.I32)),l}compileFunction(e,r=!1){if(e.is(16777216))return!1;if(e.is(8388608))return!0;if(!r){if(e.hasDecorator(512))return!0;if(e.hasDecorator(1024))return this.lazyFunctions.add(e),!0}let n=e.prototype.functionTypeNode.parameters,s=n.length;if(s>=2){let h=new Set;h.add(n[0].name.text);for(let m=1;m<s;m++){let x=n[m].name,g=x.text;h.has(g)?this.error(2300,x.range,g):h.add(g)}}e.set(8388608);let a=this.pendingElements;a.add(e);let l=this.currentType,o=this.module,u=e.signature,c=e.prototype.bodyNode,f=e.declaration;assert(f.kind==56||f.kind==59),this.checkSignatureSupported(e.signature,f.signature);let _=0;if(c){if(e.is(32768)&&this.error(1183,e.identifierNode.range),e.hasAnyDecorator(384)){let g=e.decoratorNodes,A;(A=Nt(9,g))&&this.error(212,A.range,"external"),(A=Nt(10,g))&&this.error(212,A.range,"external.js")}let h=this.currentFlow,m=e.flow;this.currentFlow=m;let x=new Array;this.compileFunctionBody(e,x)||x.push(o.unreachable()),this.currentFlow=h,_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,Br(e.getNonParameterLocalTypes()),o.flatten(x,e.signature.returnType.toRef()))}else if(e.is(32768)){if(Ug(e,f),this.program.markModuleImport(Zr,hr,e),o.addFunctionImport(e.internalName,Zr,hr,u.paramRefs,u.resultRefs),_=o.getFunction(e.internalName),!this.desiresExportRuntime){let h=u.thisType;if(h&&Oi(h)||qi(u.returnType))this.desiresExportRuntime=!0;else{let m=u.parameterTypes;for(let x=0,g=m.length;x<g;++x)if(Oi(m[x])){this.desiresExportRuntime=!0;break}}}}else if(e.is(128)||e.parent.kind==9)_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,null,o.unreachable());else{if(e.isAny(6144)){let h=e.declaration.name.text,m=assert(e.parent.getMember(h));assert(m.kind==10);let x=m.instance;x&&x.isField&&(_=e.is(2048)?this.makeBuiltinFieldGetter(x):this.makeBuiltinFieldSetter(x),assert(e.is(8388608)))}_||(this.error(2391,e.identifierNode.range),e.set(16777216))}if((e.is(32768)||e.is(2))&&u.hasVectorValueOperands){let m,x=e.prototype.functionTypeNode;if(u.returnType==p.v128)m=x.returnType.range;else{let g=u.getVectorValueOperandIndices()[0];m=x.parameters[g].range}this.warning(112,m,"v128")}return e.finalize(o,_),this.currentType=l,a.delete(e),!0}compileFunctionBody(e,r){let n=this.module,s=assert(e.prototype.bodyNode),a=e.signature.returnType,l=this.currentFlow,o=e.signature.thisType?assert(l.lookupLocal(C.this_)):null,u=r.length,c=e.localsByIndex.length,f=e.nextAnonymousId;e.outerFunction&&!e.closureEnvLocal&&(e.closureEnvLocal=l.addScopedLocal("$closureEnv",this.options.usizeType));let _=e.capturedLocals;if(_&&_.size>0){let m=!1;for(let x=Map_keys(_),g=0,A=x.length;g<A;g++){let I=x[g];if(I.parent==e){let E=l.lookupLocal(I.name);E&&!E.isCaptured&&(E.isCaptured=!0,E.envSlotIndex=I.envSlotIndex,E.envOwner=I.envOwner)}I.envOwner==e&&(m=!0)}m&&!e.envLocal&&(e.envLocal=l.addScopedLocal("$env",this.options.usizeType))}if(s.kind==31)r=this.compileStatements(s.statements,r);else{assert(s.kind==39),assert(e.prototype.arrowKind),assert(!e.isAny(530432));let m=this.compileExpression(s.expression,a,1);l.canOverflow(m,a)||l.set(2),l.isNonnull(m,a)&&l.set(4),r?r.push(m):r=[m],l.is(256)||(l.canOverflow(m,a)||l.set(2),l.isNonnull(m,a)&&l.set(4),l.set(257))}if(e.needsCaptureRecompile){e.needsCaptureRecompile=!1,r.length=u;let m=e.localsByIndex;for(let g=c,A=m.length;g<A;g++)m[g].wasAccessedAsLocal=!1;m.length=c,l.localFlags.length=c,l.unset(25079);let x=l.scopedLocals;if(x){let g=e.signature,A=g.parameterTypes.length,I=g.thisType!=null,E=new Array;for(let k=Map_keys(x),F=0,R=k.length;F<R;F++){let M=k[F],z=assert(x.get(M)),D=z.index>=(I?1:0)&&z.index<A+(I?1:0),W=I&&z.index==0,q=z==e.envLocal||z==e.closureEnvLocal;!D&&!W&&!q&&E.push(M)}for(let k=0,F=E.length;k<F;k++)x.delete(E[k])}if(e.envLocal){let g=l.scopedLocals;g&&g.has("$env")&&g.delete("$env"),e.envLocal=null}if(e.closureEnvLocal){let g=l.scopedLocals;g&&g.has("$closureEnv")&&g.delete("$closureEnv"),e.closureEnvLocal=null}if(_=e.capturedLocals,_)for(let g=Map_keys(_),A=0,I=g.length;A<I;A++)g[A].wasAccessedAsLocal=!1;return e.nextAnonymousId=f,this.compileFunctionBody(e,r)}if(_=e.capturedLocals,e.envLocal&&_&&_.size>0){let m=this.compileClosureEnvironmentAllocation(e);for(let x=r.length-1;x>=u;--x)r[x+1]=r[x];r[u]=m}let h=e.closureEnvLocal;if(h){let m=this.ensureClosureEnvironmentGlobal(),x=this.options.sizeTypeRef,g=n.local_set(h.index,n.global_get(m,x),!1);for(let A=r.length-1;A>=u;--A)r[A+1]=r[A];r[u]=g}if(e.is(524288)){assert(e.is(262144)),o=assert(o);let m=assert(e.parent);assert(m.kind==7);let x=m;if(l.isAny(8256)||!l.is(256)){let g=new Array;g.push(this.makeConditionalAllocation(x,o.index)),this.makeFieldInitializationInConstructor(x,g);for(let A=r.length-1;A>=u;--A)r[A+1]=r[A];r[u]=n.flatten(g,L.None),l.is(16384)&&this.options.pedantic&&this.pedantic(905,e.identifierNode.range)}l.is(16384)&&!x.hasDecorator(32)&&this.error(231,x.identifierNode.range),l.is(256)||(r.push(n.local_get(o.index,o.type.toRef())),l.set(261)),x.base&&!x.prototype.implicitlyExtendsObject&&!l.is(128)&&this.error(2377,e.prototype.declaration.range)}else if(a!=p.void&&!l.is(256))return this.error(2355,e.prototype.functionTypeNode.returnType.range),!1;return!0}makeBuiltinFieldGetter(e){let r=assert(e.getterInstance),n=this.module,s=e.type,a=s.toRef(),l=this.options.sizeTypeRef;r.set(8388608);let o=n.load(s.byteSize,s.isSignedIntegerValue,n.local_get(0,l),a,e.memoryOffset),u=this.currentFlow;return this.currentFlow=r.flow,e.is(16384)&&s.isReference&&!s.isNullableReference&&(o=this.makeRuntimeNonNullCheck(o,s,r.identifierNode)),this.currentFlow=u,n.addFunction(r.internalName,l,a,Br(r.getNonParameterLocalTypes()),o)}makeBuiltinFieldSetter(e){let r=assert(e.setterInstance),n=this.module,s=e.type,a=this.options.sizeTypeRef,l=s.toRef(),o=n.store(s.byteSize,n.local_get(0,a),n.local_get(1,l),l,e.memoryOffset);if(s.isManaged&&this.options.runtime!=3){let u=r.parent;if(assert(u.kind==7),u.type.isManaged){let c=this.program.linkInstance;this.compileFunction(c),o=n.block(null,[o,n.call(c.internalName,[n.local_get(0,a),n.local_get(1,l),n.i32(0)],L.None)],L.None)}}return r.set(8388608),n.addFunction(r.internalName,je([a,l]),L.None,null,o)}addAlignedMemorySegment(e,r=16){assert(Ct(r));let n=i64_align(this.memoryOffset,r),s=new Si(e,n);return this.memorySegments.push(s),this.memoryOffset=i64_add(n,i64_new(e.length)),s}addRuntimeMemorySegment(e){let r=this.program.computeBlockStart64(this.memoryOffset),n=new Si(e,r);return this.memorySegments.push(n),this.memoryOffset=i64_add(r,i64_new(e.length)),n}ensureStaticString(e){let r=this.ensureStaticStringPtr(e);return this.currentType=this.program.stringInstance.type,this.module.usize(r)}ensureStaticStringPtr(e){let r=this.program,n=r.totalOverhead,s=assert(r.stringInstance),a,l=this.stringSegments;if(l.has(e))a=assert(l.get(e));else{let c=e.length,f=s.createBuffer(c<<1);for(let _=0;_<c;++_)Zt(e.charCodeAt(_),f,n+(_<<1));a=this.addRuntimeMemorySegment(f),l.set(e,a)}let o=i64_add(a.offset,i64_new(n)),u=this.staticGcObjectOffsets;if(u.has(i64_high(o)))assert(u.get(i64_high(o))).add(i64_low(o));else{let c=new Set;c.add(i64_low(o)),u.set(i64_high(o),c)}return o}writeStaticBuffer(e,r,n,s){let a=s.length,l=n.byteSize,o=n.toRef();switch(o){case L.I32:{switch(l){case 1:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),_e(ne(c),e,r),r+=1}break}case 2:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),Zt(ne(c),e,r),r+=2}break}case 4:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),me(ne(c),e,r),r+=4}break}default:assert(!1)}break}case L.I64:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),ci(i64_new(ve(c),we(c)),e,r),r+=8}break}case L.F32:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),xr(Ae(c),e,r),r+=4}break}case L.F64:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),Tr(Ee(c),e,r),r+=8}break}case L.V128:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),dp(qp(c),e,r),r+=16}break}case L.None:break;default:assert(!1)}return r}addStaticBuffer(e,r,n=this.program.arrayBufferInstance.id){let s=this.program,l=s.arrayBufferInstance.createBuffer(r.length*e.byteSize);return this.program.OBJECTInstance.writeField("rtId",n,l,0),this.writeStaticBuffer(l,s.totalOverhead,e,r),this.addRuntimeMemorySegment(l)}addStaticArrayHeader(e,r,n=null){let s=this.program;n||(n=assert(this.resolver.resolveClass(this.program.arrayPrototype,[e])));let a=pi(r.buffer,s.OBJECTInstance.offsetof("rtSize")),l=i32(a/e.byteSize),o=i64_add(r.offset,i64_new(s.totalOverhead)),u=n.createBuffer();return assert(n.writeField("buffer",o,u)),assert(n.writeField("dataStart",o,u)),assert(n.writeField("byteLength",a,u)),assert(n.writeField("length_",l,u)),this.addRuntimeMemorySegment(u)}ensureRuntimeFunction(e){assert(e.is(8388608)&&!e.is(134217728));let r=this.program,n=e.memorySegment;if(!n){this.options.importTable||this.module.ensureFunctionTable(C.DefaultTable);let s=this.functionTable,a=this.options.tableBase;a||(a=1);let l=a+s.length;s.push(e);let o=assert(this.resolver.resolveClass(r.functionPrototype,[e.type])),u=o.createBuffer();assert(o.writeField("_index",l,u)),assert(o.writeField("_env",0,u)),e.memorySegment=n=this.addRuntimeMemorySegment(u)}return i64_add(n.offset,i64_new(r.totalOverhead))}compileTopLevelStatement(e,r){switch(e.kind){case 52:{let n=e.members;for(let s=0,a=n.length;s<a;++s)this.compileTopLevelStatement(n[s],r);break}case 53:{let n=this.program.getElementByDeclaration(e);n&&(assert(n.kind==2),n.hasDecorator(1024)||this.compileEnum(n));break}case 60:{let n=e,s=this.program.getElementByDeclaration(n);if(s){let a=this.currentParent;this.currentParent=s;let l=n.members;for(let o=0,u=l.length;o<u;++o)this.compileTopLevelStatement(l[o],r);this.currentParent=a}break}case 48:{let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=this.program.getElementByDeclaration(n[s]);l&&(assert(l.kind==0),!l.is(32768)&&!l.hasDecorator(1024)&&this.compileGlobal(l))}break}case 55:{let n=this.program.getElementByDeclaration(e);n&&n.kind==0&&(n.hasDecorator(1024)||this.compileGlobal(n));break}case 36:{let n=e,s=n.internalPath;s!=null&&this.compileFileByPath(s,assert(n.path));break}case 37:{this.compileTopLevelStatement(e.declaration,r);break}case 43:{let n=e;this.compileFileByPath(n.internalPath,n.path);break}case 56:case 59:case 58:case 66:case 61:break;default:{let n=this.compileStatement(e);$(n)!=22&&r.push(n);break}}}compileStatement(e){let r=this.module,n;switch(e.kind){case 31:{n=this.compileBlockStatement(e);break}case 32:{n=this.compileBreakStatement(e);break}case 33:{n=this.compileContinueStatement(e);break}case 34:{n=this.compileDoStatement(e);break}case 35:{n=this.compileEmptyStatement(e);break}case 39:{n=this.compileExpressionStatement(e);break}case 40:{n=this.compileForStatement(e);break}case 41:{n=this.compileForOfStatement(e);break}case 42:{n=this.compileIfStatement(e);break}case 44:{n=this.compileReturnStatement(e);break}case 45:{n=this.compileSwitchStatement(e);break}case 46:{n=this.compileThrowStatement(e);break}case 47:{n=this.compileTryStatement(e);break}case 48:{n=this.compileVariableStatement(e),n||(n=r.nop());break}case 49:{n=this.compileVoidStatement(e);break}case 50:{n=this.compileWhileStatement(e);break}case 61:{n=this.compileTypeDeclaration(e);break}case 51:{n=r.nop();break}default:assert(!1),n=r.unreachable()}return this.options.sourceMap&&this.addDebugLocation(n,e.range),n}compileStatements(e,r=null){let n=e.length;r||(r=new Array(n),r.length=0);let s=this.currentFlow;for(let a=0;a<n;++a){let l=this.compileStatement(e[a]);switch($(l)){case 1:if(!qn(l)){for(let o=0,u=Wn(l);o<u;++o)r.push(Kn(l,o));break}default:r.push(l);case 22:}if(s.isAny(272))break}return r}compileBlockStatement(e){let r=e.statements,n=this.currentFlow,s=n.fork();this.currentFlow=s;let a=this.compileStatements(r);return n.inherit(s),this.currentFlow=n,this.module.flatten(a)}compileTypeDeclaration(e){let r=this.currentFlow,n=e.name.text,s=r.lookupScopedTypeAlias(n);if(s)return this.errorRelated(2300,e.range,s.declaration.range,n),this.module.unreachable();let a=new $e(n,r.sourceFunction,e,0);return r.addScopedTypeAlias(n,a),this.module.nop()}compileBreakStatement(e){let r=this.module,n=e.label;if(n)return this.error(100,n.range,"Break label"),r.unreachable();let s=this.currentFlow,a=s.breakLabel;return a==null?(this.error(1105,e.range),r.unreachable()):(s.set(16),r.br(a))}compileContinueStatement(e){let r=this.module,n=e.label;if(n)return this.error(100,n.range,"Continue label"),r.unreachable();let s=this.currentFlow,a=s.continueLabel;return a==null?(this.error(1104,e.range),r.unreachable()):(s.set(288),r.br(a))}compileDoStatement(e){return this.doCompileDoStatement(e)}doCompileDoStatement(e){let r=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork(!0),l=a.pushControlFlowLabel(),o=`do-break|${l}`;a.breakLabel=o;let u=`do-continue|${l}`;a.continueLabel=u;let c=`do-loop|${l}`;this.currentFlow=a;let f=new Array,_=e.body;_.kind==31?this.compileStatements(_.statements,f):f.push(this.compileStatement(_)),a.popControlFlowLabel(l);let h=a.isAny(4128),m=a.isAny(2064),x=!a.isAny(272);if(!x&&!h)f.push(r.unreachable()),n.inherit(a),m||n.set(256);else{let A=this.compileExpression(e.condition,p.bool),I=this.makeIsTrueish(A,this.currentType,e.condition),E=this.evaluateCondition(I);if(E!=2&&(h||x)&&n.resetIfNeedsRecompile(a.forkThen(A),s))return this.currentFlow=n,this.doCompileDoStatement(e);h&&(f[0]=r.block(u,f),f.length=1,a.unset(256)),f.push(r.br(c,I)),n.inherit(a),E==1&&!m&&n.set(256)}this.currentFlow=n;let g=r.loop(c,r.flatten(f));return m&&(g=r.block(o,[g])),n.is(256)&&(g=r.block(null,[g,r.unreachable()])),g}compileEmptyStatement(e){return this.module.nop()}compileExpressionStatement(e){return this.compileExpression(e.expression,p.void,1)}compileForStatement(e){return this.doCompileForStatement(e)}doCompileForStatement(e){let r=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork();this.currentFlow=a;let l=new Array,o=e.initializer;o&&(assert(o.kind==39||o.kind==48),l.push(this.compileStatement(o)));let u,c,f,_=e.condition;if(_){if(u=this.compileExpression(_,p.bool),c=this.makeIsTrueish(u,this.currentType,_),f=this.evaluateCondition(c),f==2)return l.push(r.drop(c)),n.inherit(a),this.currentFlow=n,r.flatten(l)}else u=r.i32(1),c=u,f=1;let h=a.forkThen(u,!0),m=h.pushControlFlowLabel(),x=`for-break${m}`;h.breakLabel=x;let g=`for-continue|${m}`;h.continueLabel=g;let A=`for-loop|${m}`;this.currentFlow=h;let I=new Array,E=e.body;E.kind==31?this.compileStatements(E.statements,I):I.push(this.compileStatement(E)),h.popControlFlowLabel(m),h.breakLabel=null,h.continueLabel=null;let k=!h.isAny(272),F=h.isAny(4128),R=h.isAny(2064);F&&(I[0]=r.block(g,I),I.length=1),f==1?a.inherit(h):a.mergeBranch(h);let M=F||k;if(M){let D=e.incrementor;if(D&&(this.currentFlow=a,I.push(this.compileExpression(D,p.void,9))),I.push(r.br(A)),n.resetIfNeedsRecompile(h.forkThen(u),s))return this.currentFlow=n,this.doCompileForStatement(e)}n.inherit(a),this.currentFlow=n;let z=r.if(c,r.flatten(I));return M&&(z=r.loop(A,z)),R&&(z=r.block(x,[z])),l.push(z),n.is(256)&&l.push(r.unreachable()),r.flatten(l)}compileForOfStatement(e){return this.error(100,e.range,"Iterators"),this.module.unreachable()}compileIfStatement(e){let r=this.module,n=e.ifTrue,s=e.ifFalse,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition);switch(this.evaluateCondition(l)){case 1:return r.block(null,[r.drop(l),this.compileStatement(n)]);case 2:return s?r.block(null,[r.drop(l),this.compileStatement(s)]):r.drop(l)}let u=this.currentFlow,c=new Array,f=u.forkThen(a);this.currentFlow=f,n.kind==31?this.compileStatements(n.statements,c):c.push(this.compileStatement(n)),this.currentFlow=u;let _=u.forkElse(a);if(s){this.currentFlow=_;let h=new Array;return s.kind==31?this.compileStatements(s.statements,h):h.push(this.compileStatement(s)),u.inheritAlternatives(f,_),this.currentFlow=u,r.if(l,r.flatten(c),r.flatten(h))}else return f.isAny(272)?(u.inherit(_),u.mergeSideEffects(f)):u.inheritAlternatives(f,_),this.currentFlow=u,r.if(l,r.flatten(c))}compileReturnStatement(e){let r=this.module,n=0,s=this.currentFlow,a=s.returnType,l=e.value;if(l){let u=1;s.sourceFunction.is(1048576)&&(u|=4),n=this.compileExpression(l,a,u),s.canOverflow(n,a)||s.set(2),s.isNonnull(n,a)&&s.set(4),s.sourceFunction.is(524288)&&l.kind!=25&&s.set(16384)}else if(a!=p.void)return this.error(2322,e.range,"void",a.toString()),this.currentType=a,r.unreachable();s.set(257);let o=s.getTryFinallyContext();if(o){let u=o.tryFinallyPendingActionLocal,c=o.tryFinallyPendingValueLocal,f=assert(o.tryFinallyDispatchLabel),_=new Array;return n&&a!=p.void&&_.push(r.local_set(c,n,a.isManaged)),_.push(r.local_set(u,r.i32(1),!1)),_.push(r.br(f)),r.flatten(_)}if(s.isInline){let u=assert(s.inlineReturnLabel);return n?this.currentType==p.void?r.block(null,[n,r.br(u)]):r.br(u,0,n):r.br(u)}return n?this.currentType==p.void?r.block(null,[n,r.return()]):r.return(n):r.return()}compileSwitchStatement(e){let r=this.module,n=e.cases,s=n.length,a=this.compileExpression(e.condition,p.auto),l=this.currentType;if(!s)return r.drop(a);let o=this.currentFlow,c=o.getTempLocal(l).index,f=new Array(1+s);f[0]=r.local_set(c,a,l.isManaged);let _=1,h=-1,m=o.pushControlFlowLabel();for(let I=0;I<s;++I){let E=n[I];if(E.isDefault){h=I;continue}let k=e.condition,F=r.local_get(c,l.toRef()),R=l,M=E.label,z=this.compileExpression(assert(E.label),l,1),D=this.currentType,W=this.compileCommutativeCompareBinaryExpressionFromParts(76,k,F,R,M,z,D,l,e);f[_++]=r.br(`case${I}|${m}`,W)}f[_]=r.br(h>=0?`case${h}|${m}`:`break|${m}`);let x=r.block(`case0|${m}`,f,L.None),g=null,A=null;for(let I=0;I<s;++I){let k=n[I].statements,F=k.length,R=o.fork(!0,!1);g&&R.mergeBranch(g),this.currentFlow=R;let M=`break|${m}`;R.breakLabel=M;let z=I==s-1,D=z?M:`case${I+1}|${m}`,W=new Array(1+F);W[0]=x;let q=1,ee=!0;for(let te=0;te<F;++te){let j=this.compileStatement(k[te]);if($(j)!=22&&(W[q++]=j),R.isAny(272)){ee=!1;break}}W.length=q,g=ee?R:null;let Y=R.isAny(2064);R.unset(2064),Y||z&&ee?A?A.inheritAlternatives(A,R):A=R:ee||o.mergeSideEffects(R),this.currentFlow=o,x=r.block(D,W,L.None)}return o.popControlFlowLabel(m),h>=0?A?o.inherit(A):o.set(256):A&&o.mergeBranch(A),this.currentFlow=o,x}compileThrowStatement(e){let r=this.module;if(this.currentFlow.set(264),this.options.hasFeature(64)){let o=this.compileExpression(e.value,p.auto),u=this.currentType,c=this.program.errorInstance,f=u.getClass();if(!f||!f.isAssignableTo(c))return this.error(250,e.value.range,u.toString()),r.unreachable();let _=this.ensureExceptionTag();return r.throw(_,[o])}let s=new Array,a=e.value,l=null;if(a.kind==18){let o=a.args;o.length&&(l=o[0])}return s.push(this.makeAbort(l,e)),r.flatten(s)}compileTryStatement(e){let r=this.module,n=this.currentFlow;if(!this.options.hasFeature(64))return this.error(103,e.range,"exception-handling"),r.unreachable();let s=this.ensureExceptionTag(),a=n.pushControlFlowLabel(),l=`try|${a}`,o=n.fork();this.currentFlow=o;let u=new Array;this.compileStatements(e.bodyStatements,u);let c=r.flatten(u),f=o.isAny(256),_=[],h=[],m=null,x=!1,g=e.catchStatements,A=e.catchVariable;if(g){m=n.fork(),this.currentFlow=m;let E=new Array,k=r.pop(this.options.sizeTypeRef);if(A){let F=A.text,R=this.program.lookup(C.Error),M;if(R&&R.kind==6){let D=this.resolver.resolveClass(R,null);M=D?D.type:this.options.usizeType}else M=this.options.usizeType;let z=m.addScopedLocal(F,M);E.push(un(r.ref,z.index,k)),m.setLocalFlag(z.index,8)}else E.push(r.drop(k));this.compileStatements(g,E),_.push(s),h.push(r.flatten(E)),x=m.isAny(256)}let I=e.finallyStatements;if(I){let E=n.returnType,k=n.targetFunction,F=k.addLocal(p.i32),R=E!=p.void?k.addLocal(E):null,M=R?R.index:-1,z=`finally_dispatch|${a}`,D=`try_finally|${a}`;n.popControlFlowLabel(a);let W=n.pushControlFlowLabel();l=`try|${W}`,o=n.fork(),o.tryFinallyPendingActionLocal=F.index,o.tryFinallyPendingValueLocal=M,o.tryFinallyDispatchLabel=z,o.tryFinallyReturnType=E,this.currentFlow=o;let q=new Array;if(this.compileStatements(e.bodyStatements,q),c=r.flatten(q),f=o.isAny(256),_=[],h=[],m=null,x=!1,g){m=n.fork(),m.tryFinallyPendingActionLocal=F.index,m.tryFinallyPendingValueLocal=M,m.tryFinallyDispatchLabel=z,m.tryFinallyReturnType=E,this.currentFlow=m;let tt=new Array,Ns=r.pop(this.options.sizeTypeRef);if(A){let oo=A.text,Xi=this.program.lookup(C.Error),Ji;if(Xi&&Xi.kind==6){let Gs=this.resolver.resolveClass(Xi,null);Ji=Gs?Gs.type:this.options.usizeType}else Ji=this.options.usizeType;let Ms=m.addScopedLocal(oo,Ji);tt.push(un(r.ref,Ms.index,Ns)),m.setLocalFlag(Ms.index,8)}else tt.push(r.drop(Ns));this.compileStatements(g,tt),_.push(s),h.push(r.flatten(tt)),x=m.isAny(256)}this.currentFlow=n;let ee;h.length>0?ee=r.try(l,c,_,h,null):ee=c;let Y=n.fork();this.currentFlow=Y;let te=new Array;this.compileStatements(I,te);let j=r.flatten(te),re=r.block(null,[j,r.rethrow(D)]),H=r.try(D,ee,[],[re],null),ue=n.fork();this.currentFlow=ue;let be=new Array;this.compileStatements(I,be);let dr=r.flatten(be),vt=ue.isAny(256),Hi=ue.isAny(1);this.currentFlow=n,n.popControlFlowLabel(W);let Q=new Array;Q.push(dr),vt||(E!=p.void&&R?Q.push(r.if(r.binary(15,r.local_get(F.index,L.I32),r.i32(1)),r.return(r.local_get(R.index,E.toRef())))):Q.push(r.if(r.binary(15,r.local_get(F.index,L.I32),r.i32(1)),r.return())));let Qi=r.block(z,[H]);!vt&&(m?f&&x:f)&&Q.push(r.unreachable());let It=new Array(1+Q.length);It[0]=Qi;for(let tt=0;tt<Q.length;tt++)It[1+tt]=Q[tt];let lo=r.block(null,It);return vt?(n.set(256),Hi&&n.set(1)):m?f&&x?n.set(256):n.inheritAlternatives(o,m):n.mergeSideEffects(o),lo}return n.popControlFlowLabel(a),this.currentFlow=n,m&&(f&&x?n.set(256):g?n.inheritAlternatives(o,m):n.inherit(o)),h.length==0?c:r.try(l,c,_,h,null)}compileVariableStatement(e){let r=this.module,n=e.declarations,s=n.length,a=this.currentFlow,l=new Array,o=this.resolver;for(let u=0;u<s;++u){let c=n[u],f=c.name.text,_=null,h=0,m=null;c.is(16384)&&this.warning(239,c.name.range);let x=c.type,g=c.initializer;if(x){if(_=o.resolveType(x,a,a.sourceFunction,pe(a.contextualTypeArguments)),!_)continue;if(this.program.checkTypeSupported(_,x),g){let E=this.pendingElements,k=a.addScopedDummyLocal(f,_,e);E.add(k),h=this.compileExpression(g,_,1),m=this.currentType,E.delete(k),a.freeScopedDummyLocal(f)}}else if(g){let E=this.pendingElements,k=a.addScopedDummyLocal(f,p.auto,e);if(E.add(k),h=this.compileExpression(g,p.auto),m=this.currentType,E.delete(k),a.freeScopedDummyLocal(f),this.currentType==p.void){this.error(2322,c.range,this.currentType.toString(),"<auto>");continue}_=m}else{this.error(1110,c.name.range.atEnd);continue}let A=c.is(8),I=!1;if(A)if(h){let E=r.runExpression(h,1);if(E){h=E;let k=null;switch(se(h)){case L.I32:{k=new Oe(f,-1,_,a.targetFunction),k.setConstantIntegerValue(i64_new(ne(h),0),_);break}case L.I64:{k=new Oe(f,-1,_,a.targetFunction),k.setConstantIntegerValue(i64_new(ve(h),we(h)),_);break}case L.F32:{k=new Oe(f,-1,_,a.targetFunction),k.setConstantFloatValue(Ae(h),_);break}case L.F64:{k=new Oe(f,-1,_,a.targetFunction),k.setConstantFloatValue(Ee(h),_);break}}if(k){let F=a.scopedLocals;if(!F)a.scopedLocals=F=new Map;else if(F.has(f)){let R=assert(F.get(f));return this.errorRelated(2300,c.name.range,R.declaration.name.range,f),this.module.unreachable()}F.set(f,k),I=!0}}}else this.error(1155,c.range);if(!I){let E;if(c.isAny(24)||a.isInline){let R=a.getScopedLocal(f);R?(R.declaration.range.source.isNative?this.error(2300,c.name.range,f):this.errorRelated(2300,c.name.range,R.declaration.name.range,f),E=R):E=a.addScopedLocal(f,_),A&&a.setLocalFlag(E.index,1)}else{let R=a.lookupLocal(f);if(R){this.errorRelated(2300,c.name.range,R.declaration.name.range,f);continue}E=a.targetFunction.addLocal(_,f,c),a.unsetLocalFlag(E.index,-1),A&&a.setLocalFlag(E.index,1)}let k=a.sourceFunction,F=k.capturedLocals;if(F)for(let R=Map_keys(F),M=0,z=R.length;M<z;++M){let D=R[M];if(D.name==f&&D.parent==k){E.isCaptured=!0,E.envSlotIndex=D.envSlotIndex,E.envOwner=D.envOwner;let W=F.get(D);F.delete(D),F.set(E,W);break}}h?l.push(this.makeLocalAssignment(E,h,m||_,!1)):E.type.isShortIntegerValue&&a.setLocalFlag(E.index,2)}}return this.currentType=p.void,l.length==0?0:r.flatten(l)}compileVoidStatement(e){return this.compileExpression(e.expression,p.void,10)}compileWhileStatement(e){return this.doCompileWhileStatement(e)}doCompileWhileStatement(e){let r=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition),o=this.evaluateCondition(l);if(o==2)return r.drop(l);let u=n.forkThen(a,!0),c=u.pushControlFlowLabel(),f=`while-break|${c}`;u.breakLabel=f;let _=`while-continue|${c}`;u.continueLabel=_,this.currentFlow=u;let h=new Array,m=e.body;m.kind==31?this.compileStatements(m.statements,h):h.push(this.compileStatement(m)),h.push(r.br(_)),u.popControlFlowLabel(c);let x=u.isAny(4128),g=u.isAny(2064),A=!u.isAny(272);if((x||A)&&n.resetIfNeedsRecompile(u,s))return this.currentFlow=n,this.doCompileWhileStatement(e);let E=!1;if(o==1)n.inherit(u),g||(E=!0,n.set(256));else{let F=n.forkElse(a);!A&&!g?(n.inherit(F),n.mergeSideEffects(u)):n.inheritAlternatives(u,F)}this.currentFlow=n;let k=[r.loop(_,r.if(l,r.flatten(h)))];return E&&k.push(r.unreachable()),r.block(f,k)}compileInlineConstant(e,r,n){assert(e.is(37748736));let s=e.type;switch(this.currentType=s,s.kind){case 0:return this.module.i32(e.constantValueKind==1?i64_ne(e.constantIntegerValue,i64_zero):0);case 1:case 2:{let a=s.computeSmallIntegerShift(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)<<a>>a:0)}case 6:case 7:{let a=e.type.computeSmallIntegerMask(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)&a:0)}case 3:case 8:return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 5:case 10:if(!e.program.options.isWasm64)return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 4:case 9:return e.constantValueKind==1?this.module.i64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.i64(0);case 12:{if(!(e.hasDecorator(512)&&r==p.f32))return this.module.f64(e.constantFloatValue);this.currentType=p.f32}case 11:return this.module.f32(e.constantFloatValue);default:return assert(!1),this.module.unreachable()}}compileExpression(e,r,n=0){for(;e.kind==21;)e=e.expression;this.currentType=r,r==p.void&&(n|=8);let s;switch(e.kind){case 8:{s=this.compileAssertionExpression(e,r,n);break}case 9:{s=this.compileBinaryExpression(e,r,n);break}case 10:{s=this.compileCallExpression(e,r,n);break}case 12:{s=this.compileCommaExpression(e,r,n);break}case 13:{s=this.compileElementAccessExpression(e,r,n);break}case 15:{s=this.compileFunctionExpression(e,r,n);break}case 7:case 14:case 19:case 25:case 24:case 26:{s=this.compileIdentifierExpression(e,r,n);break}case 16:{s=this.compileInstanceOfExpression(e,r,n);break}case 17:{s=this.compileLiteralExpression(e,r,n);break}case 18:{s=this.compileNewExpression(e,r,n);break}case 22:{s=this.compilePropertyAccessExpression(e,r,n);break}case 23:{s=this.compileTernaryExpression(e,r,n);break}case 28:{s=this.compileUnaryPostfixExpression(e,r,n);break}case 29:{s=this.compileUnaryPrefixExpression(e,r,n);break}case 30:{let o=e;s=o.expr,this.currentType=o.type;break}case 11:{this.error(100,e.range,"Block-scoped class declarations or expressions"),s=this.module.unreachable();break}default:assert(!1),s=this.module.unreachable()}let a=this.currentType,l=(n&4)!=0;return a!=r.nonNullableType&&(n&2?(s=this.convertExpression(s,a,r,!0,e),this.currentType=a=r):n&1&&(s=this.convertExpression(s,a,r,!1,e),this.currentType=a=r)),l&&(s=this.ensureSmallIntegerWrap(s,a)),this.options.sourceMap&&this.addDebugLocation(s,e.range),s}convertExpression(e,r,n,s,a){let l=this.module;if(r.kind==25)return n.kind==25?e:(this.error(2322,a.range,r.toString(),n.toString()),l.unreachable());if(n.kind==25)return l.drop(e);if(r.isReference||n.isReference)return this.currentFlow.isNonnull(e,r)?r=r.nonNullableType:s&&r.isNullableReference&&!n.isNullableReference&&(this.options.noAssert||(e=this.makeRuntimeNonNullCheck(e,r,a)),r=r.nonNullableType),r.isAssignableTo(n)?(assert(n.isExternalReference||r.kind==n.kind),this.currentType=n,e):s&&n.nonNullableType.isAssignableTo(r)?n.isExternalReference?(this.error(100,a.range,"ref.cast"),this.currentType=n,l.unreachable()):(assert(r.kind==n.kind),this.options.noAssert||(e=this.makeRuntimeDowncastCheck(e,r,n,a)),this.currentType=n,e):(this.error(2322,a.range,r.toString(),n.toString()),this.currentType=n,l.unreachable());if(assert(!r.isReference&&!n.isReference),n.kind==r.kind)return this.currentType=n,e;if(!n.isBooleanValue&&(n.isVectorValue||r.isVectorValue))return this.error(2322,a.range,r.toString(),n.toString()),l.unreachable();if(r.isAssignableTo(n)||s||this.error(200,a.range,r.toString(),n.toString()),r.isFloatValue)if(n.isFloatValue)r.kind==11?n.kind==12&&(e=l.unary(43,e)):n.kind==11&&(e=l.unary(44,e));else if(n.isIntegerValue)if(r.kind==11)if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f32,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?56:26,e):e=l.unary(o?52:25,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?57:28,e):e=l.unary(o?53:27,e)}else if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f64,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?58:30,e):e=l.unary(o?54:29,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?59:32,e):e=l.unary(o?55:31,e)}else assert(n.flags==0,"void type expected"),e=l.drop(e);else if(r.isIntegerValue&&n.isFloatValue){e=this.ensureSmallIntegerWrap(e,r);let o;n.kind==11?r.isLongIntegerValue?r.isSignedIntegerValue?o=39:o=41:r.isSignedIntegerValue?o=35:o=37:r.isLongIntegerValue?r.isSignedIntegerValue?o=40:o=42:r.isSignedIntegerValue?o=36:o=38,e=l.unary(o,e)}else r==p.v128&&n.isBooleanValue?e=this.makeIsTrueish(e,p.v128,a):r.isLongIntegerValue?n.isBooleanValue?e=l.binary(41,e,l.i64(0)):n.isLongIntegerValue||(e=l.unary(24,e)):n.isLongIntegerValue?e=l.unary(r.isSignedIntegerValue?22:23,this.ensureSmallIntegerWrap(e,r)):r.isShortIntegerValue?r.size<n.size&&(e=this.ensureSmallIntegerWrap(e,r)):!s&&!this.options.isWasm64&&r.isVaryingIntegerValue&&!n.isVaryingIntegerValue&&this.warning(201,a.range,r.toString(),n.toString());return this.currentType=n,e}compileAssertionExpression(e,r,n){let s=n&-4;switch(e.assertionKind){case 0:case 1:{let a=this.currentFlow,l=this.resolver.resolveType(assert(e.toType),a,a.sourceFunction,pe(a.contextualTypeArguments));return l?this.compileExpression(e.expression,l,s|2):this.module.unreachable()}case 2:{assert(!e.toType);let a=this.compileExpression(e.expression,r.exceptVoid,s),l=this.currentType;return this.currentFlow.isNonnull(a,l)?this.info(210,e.expression.range):this.options.noAssert||(a=this.makeRuntimeNonNullCheck(a,l,e)),this.currentType=l.nonNullableType,a}case 3:return this.error(100,e.range,"Const assertion"),this.module.unreachable();default:assert(!1)}return this.module.unreachable()}compileCommutativeCompareBinaryExpression(e,r){let n=e.left,s=this.compileExpression(n,r),a=this.currentType,l=e.right,o=this.compileExpression(l,a),u=this.currentType;return this.compileCommutativeCompareBinaryExpressionFromParts(e.operator,n,s,a,l,o,u,r,e)}compileCommutativeCompareBinaryExpressionFromParts(e,r,n,s,a,l,o,u,c){let f=this.module,_=Ie(e),h=Re.fromBinaryToken(e),m=s.lookupOverload(h,this.program),x=o.lookupOverload(h,this.program);if(m&&x&&m!=x)return this.error(240,c.range,_,m.internalName,x.internalName),this.currentType=u,f.unreachable();if(m)return this.compileCommutativeBinaryOverload(m,r,n,s,a,l,o,c);if(x)return this.compileCommutativeBinaryOverload(x,a,l,o,r,n,s,c);let A=p.commonType(s,o,u,!1);if(!A)return this.error(2365,c.range,_,s.toString(),o.toString()),this.currentType=u,f.unreachable();switch(A.isFloatValue&&((Bl(f,l)||Bl(f,n))&&this.warning(907,c.range),(Pl(l)||Pl(n))&&this.warning(908,c.range)),n=this.convertExpression(n,s,A,!1,r),s=A,l=this.convertExpression(l,o,A,!1,a),o=A,this.currentType=p.bool,e){case 78:case 76:return this.makeEq(n,l,A,c);case 79:case 77:return this.makeNe(n,l,A,c);default:return assert(!1),f.unreachable()}}compileNonCommutativeCompareBinaryExpression(e,r){let n=this.module,s=e.left,a=e.right,l,o,u,c,f,_=e.operator,h=Ie(_);l=this.compileExpression(s,r),o=this.currentType;let m=Re.fromBinaryToken(_),x=o.lookupOverload(m,this.program);if(x)return this.compileBinaryOverload(x,s,l,o,a,e);if(u=this.compileExpression(a,o),c=this.currentType,f=p.commonType(o,c,r,!0),!f||!f.isNumericValue)return this.error(2365,e.range,h,o.toString(),c.toString()),this.currentType=r,n.unreachable();switch(l=this.convertExpression(l,o,f,!1,s),o=f,u=this.convertExpression(u,c,f,!1,a),c=f,this.currentType=p.bool,_){case 72:return this.makeLt(l,u,f);case 73:return this.makeGt(l,u,f);case 74:return this.makeLe(l,u,f);case 75:return this.makeGe(l,u,f);default:return assert(!1),n.unreachable()}}compileBinaryExpression(e,r,n){let s=this.module,a=e.left,l=e.right,o,u,c,f,_,h,m=!1;switch(e.operator){case 72:case 73:case 74:case 75:return this.compileNonCommutativeCompareBinaryExpression(e,r);case 78:case 76:case 79:case 77:return this.compileCommutativeCompareBinaryExpression(e,r);case 101:return this.compileAssignment(a,l,r);case 102:m=!0;case 81:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(5);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"+",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"+",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeAdd(o,c,_);break}case 103:m=!0;case 82:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(6);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"-",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"-",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeSub(o,c,_);break}case 104:m=!0;case 84:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(7);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"*",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"*",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeMul(o,c,_);break}case 105:m=!0;case 83:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(10);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"**",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"**",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makePow(o,c,_,e);break}case 106:m=!0;case 85:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(8);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"/",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"/",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeDiv(o,c,_);break}case 107:m=!0;case 86:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(9);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"%",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"%",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeRem(o,c,_,e);break}case 108:m=!0;case 89:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(14);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,"<<",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,h=this.makeShl(o,c,f);break}case 109:m=!0;case 90:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(15);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>",u.toString()),this.module.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,h=this.makeShr(o,c,f);break}case 110:m=!0;case 91:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(16);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>>",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,h=this.makeShru(o,c,f);break}case 111:m=!0;case 92:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(11);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isIntegerValue)return this.error(2469,e.range,"&",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isIntegerValue)return this.error(2365,e.range,"&",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeAnd(o,c,_);break}case 112:m=!0;case 93:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(12);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isIntegerValue)return this.error(2469,e.range,"|",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isIntegerValue)return this.error(2365,e.range,"|",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeOr(o,c,_);break}case 113:m=!0;case 94:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(13);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isIntegerValue)return this.error(2469,e.range,"^",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isIntegerValue)return this.error(2365,e.range,"^",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeXor(o,c,_);break}case 97:{let E=this.currentFlow,k=n&4;o=this.compileExpression(a,r.exceptVoid,k),u=this.currentType;let F=E.forkThen(o);if(this.currentFlow=F,r==p.bool||r==p.void){o=this.makeIsTrueish(o,u,a);let R=this.evaluateCondition(o);R==2?h=o:(c=this.compileExpression(l,u,k),f=this.currentType,c=this.makeIsTrueish(c,f,l),R==1?(h=c,E.inherit(F)):(h=s.if(o,c,s.i32(0)),E.mergeBranch(F),E.noteThen(h,F))),this.currentFlow=E,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,k),f=this.currentType,_=p.commonType(u,f,r),!_)return this.error(2365,e.range,"&&",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_;let R=s.runExpression(o,1);R&&(o=R),c=this.convertExpression(c,f,_,!1,l),f=_;let M=this.makeIsTrueish(o,this.currentType,a),z=this.evaluateCondition(M);if(z!=0)h=z==1?c:o;else if(h=s.tryCopyTrivialExpression(o))h=s.if(M,c,h);else{let D=E.getTempLocal(u);E.canOverflow(o,u)||E.setLocalFlag(D.index,2),E.isNonnull(o,u)&&E.setLocalFlag(D.index,4),h=s.if(this.makeIsTrueish(s.local_tee(D.index,o,u.isManaged),u,a),c,s.local_get(D.index,u.toRef()))}E.mergeBranch(F),E.noteThen(h,F),this.currentFlow=E,this.currentType=_}break}case 98:{let E=this.currentFlow,k=n&4;o=this.compileExpression(a,r.exceptVoid,k),u=this.currentType;let F=E.forkElse(o);if(this.currentFlow=F,r==p.bool||r==p.void){o=this.makeIsTrueish(o,u,a);let R=this.evaluateCondition(o);R==1?h=o:(c=this.compileExpression(l,u,k),f=this.currentType,c=this.makeIsTrueish(c,f,l),R==2?(h=c,E.inherit(F)):(h=s.if(o,s.i32(1),c),E.mergeBranch(F),E.noteElse(h,F))),this.currentFlow=E,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,k),f=this.currentType,_=p.commonType(u,f,r),!_)return this.error(2365,e.range,"||",u.toString(),f.toString()),this.currentType=r,s.unreachable();let R=u.is(512)&&f.is(512);o=this.convertExpression(o,u,_,!1,a),u=_;let M=s.runExpression(o,1);M&&(o=M),c=this.convertExpression(c,f,_,!1,l),f=_;let z=this.makeIsTrueish(o,this.currentType,a),D=this.evaluateCondition(z);if(D!=0)h=D==1?o:c;else if(h=s.tryCopyTrivialExpression(o))h=s.if(z,h,c);else{let q=E.getTempLocal(u).index;E.canOverflow(o,u)||E.setLocalFlag(q,2),E.isNonnull(o,u)&&E.setLocalFlag(q,4),h=s.if(this.makeIsTrueish(s.local_tee(q,o,u.isManaged),u,a),s.local_get(q,u.toRef()),c)}E.mergeBranch(F),E.noteElse(h,F),this.currentFlow=E,this.currentType=R?_:_.nonNullableType}break}case 29:return this.error(100,e.range,"'in' operator"),this.currentType=p.bool,s.unreachable();default:{assert(!1),h=this.module.unreachable();break}}if(!m)return h;let g=this.resolver,A=g.lookupExpression(a,this.currentFlow);if(!A)return s.unreachable();let I=g.getTypeOfElement(A);return I||(I=p.void),this.currentType.isStrictlyAssignableTo(I)?this.makeAssignment(A,h,this.currentType,l,g.currentThisExpression,g.currentElementExpression,r!=p.void):(this.error(2322,e.range,this.currentType.toString(),I.toString()),s.unreachable())}makeLt(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(17,e,r);case 4:return s.binary(42,e,r);case 5:return s.binary(234,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(18,e,r);case 9:return s.binary(43,e,r);case 10:return s.binary(235,e,r);case 11:return s.binary(59,e,r);case 12:return s.binary(72,e,r)}return assert(!1),s.unreachable()}makeGt(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(21,e,r);case 4:return s.binary(46,e,r);case 5:return s.binary(238,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(22,e,r);case 9:return s.binary(47,e,r);case 10:return s.binary(239,e,r);case 11:return s.binary(61,e,r);case 12:return s.binary(74,e,r)}return assert(!1),s.unreachable()}makeLe(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(19,e,r);case 4:return s.binary(44,e,r);case 5:return s.binary(236,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(20,e,r);case 9:return s.binary(45,e,r);case 10:return s.binary(237,e,r);case 11:return s.binary(60,e,r);case 12:return s.binary(73,e,r)}return assert(!1),s.unreachable()}makeGe(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(23,e,r);case 4:return s.binary(48,e,r);case 5:return s.binary(240,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(24,e,r);case 9:return s.binary(49,e,r);case 10:return s.binary(241,e,r);case 11:return s.binary(62,e,r);case 12:return s.binary(75,e,r)}return assert(!1),s.unreachable()}makeEq(e,r,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:case 8:return a.binary(15,e,r);case 4:case 9:return a.binary(40,e,r);case 5:case 10:return a.binary(232,e,r);case 11:return a.binary(57,e,r);case 12:return a.binary(70,e,r);case 13:return a.unary(70,a.binary(76,e,r));case 17:case 18:case 19:case 20:return a.ref_eq(e,r);case 21:return a.string_eq(e,r);case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeNe(e,r,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:case 8:return a.binary(16,e,r);case 4:case 9:return a.binary(41,e,r);case 5:case 10:return a.binary(233,e,r);case 11:return a.binary(58,e,r);case 12:return a.binary(71,e,r);case 13:return a.unary(67,a.binary(77,e,r));case 17:case 18:case 19:case 20:return a.unary(20,a.ref_eq(e,r));case 21:return a.unary(20,a.string_eq(e,r));case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeAdd(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(0,e,r);case 4:case 9:return s.binary(25,e,r);case 5:case 10:return s.binary(217,e,r);case 11:return s.binary(50,e,r);case 12:return s.binary(63,e,r)}return assert(!1),s.unreachable()}makeSub(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(1,e,r);case 4:case 9:return s.binary(26,e,r);case 5:case 10:return s.binary(218,e,r);case 11:return s.binary(51,e,r);case 12:return s.binary(64,e,r)}return assert(!1),s.unreachable()}makeMul(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(2,e,r);case 4:case 9:return s.binary(27,e,r);case 5:case 10:return s.binary(219,e,r);case 11:return s.binary(52,e,r);case 12:return s.binary(65,e,r)}return assert(!1),s.unreachable()}makePow(e,r,n,s){let a=this.module;switch(n.kind){case 0:return a.select(a.i32(1),a.binary(15,r,a.i32(0)),e);case 1:case 6:case 2:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:case 8:{if(this.options.willOptimize&&$(e)==14&&$(r)==14){let u=ne(e),c=ne(r);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let l=this.i32PowInstance;if(!l){let u=this.program.lookup(C.ipow32);if(!u)return this.error(2304,s.range,"ipow32"),a.unreachable();assert(u.kind==4),this.i32PowInstance=l=this.resolver.resolveFunction(u,null)}if(!l||!this.compileFunction(l))return a.unreachable();let o=this.makeCallDirect(l,[e,r],s);return n.size<32&&(o=this.ensureSmallIntegerWrap(o,n)),o}case 4:case 9:{if(this.options.willOptimize&&$(e)==14&&$(r)==14){let o=i64_new(ve(e),we(e)),u=i64_new(ve(r),we(r)),c=i64_pow(o,u);return this.currentType=n,a.i64(i64_low(c),i64_high(c))}let l=this.i64PowInstance;if(!l){let o=this.program.lookup(C.ipow64);if(!o)return this.error(2304,s.range,"ipow64"),a.unreachable();assert(o.kind==4),this.i64PowInstance=l=this.resolver.resolveFunction(o,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}case 5:case 10:{let l=this.options.isWasm64;if(this.options.willOptimize&&$(e)==14&&$(r)==14)if(l){let u=i64_new(ve(e),we(e)),c=i64_new(ve(r),we(r)),f=i64_pow(u,c);return this.currentType=n,a.i64(i64_low(f),i64_high(f))}else{let u=ne(e),c=ne(r);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let o=l?this.i64PowInstance:this.i32PowInstance;if(!o){let u=this.program.lookup(l?C.ipow64:C.ipow32);if(!u)return this.error(2304,s.range,l?"ipow64":"ipow32"),a.unreachable();assert(u.kind==4),o=this.resolver.resolveFunction(u,null),l?this.i64PowInstance=o:this.i32PowInstance=o}return!o||!this.compileFunction(o)?a.unreachable():this.makeCallDirect(o,[e,r],s)}case 11:{if(this.options.willOptimize&&$(e)==14&&$(r)==14){let o=Ae(e),u=Ae(r);return this.currentType=n,a.f32(f32(fa(o,u)))}let l=this.f32PowInstance;if(!l){let o=this.program.lookup(C.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(C.pow);if(!u)return this.error(2304,s.range,"Mathf.pow"),a.unreachable();assert(u.kind==4),this.f32PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}case 12:{if(this.options.willOptimize&&$(e)==14&&$(r)==14){let o=Ee(e),u=Ee(r);return this.currentType=n,a.f64(fa(o,u))}let l=this.f64PowInstance;if(!l){let o=this.program.lookup(C.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(C.pow);if(!u)return this.error(2304,s.range,"Math.pow"),a.unreachable();assert(u.kind==4),this.f64PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}}return assert(!1),a.unreachable()}makeDiv(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(3,e,r);case 4:return s.binary(28,e,r);case 5:return s.binary(220,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(4,e,r);case 9:return s.binary(29,e,r);case 10:return s.binary(221,e,r);case 11:return s.binary(53,e,r);case 12:return s.binary(66,e,r)}return assert(!1),s.unreachable()}makeRem(e,r,n,s){let a=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return a.binary(5,e,r);case 4:return a.binary(30,e,r);case 5:return a.binary(222,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return a.binary(6,e,r);case 9:return a.binary(31,e,r);case 10:return a.binary(223,e,r);case 11:{let l=this.f32ModInstance;if(!l){let o=this.program.lookup(C.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(C.mod);if(!u)return this.error(2304,s.range,"Mathf.mod"),a.unreachable();assert(u.kind==4),this.f32ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}case 12:{let l=this.f64ModInstance;if(!l){let o=this.program.lookup(C.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(C.mod);if(!u)return this.error(2304,s.range,"Math.mod"),a.unreachable();assert(u.kind==4),this.f64ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}}return assert(!1),a.unreachable()}makeShl(e,r,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(10,e,s.binary(7,r,s.i32(n.size-1)));case 3:case 8:return s.binary(10,e,r);case 4:case 9:return s.binary(35,e,r);case 5:case 10:return s.binary(227,e,r)}return assert(!1),s.unreachable()}makeShr(e,r,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:return s.binary(11,this.ensureSmallIntegerWrap(e,n),s.binary(7,r,s.i32(n.size-1)));case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,r,s.i32(n.size-1)));case 3:return s.binary(11,e,r);case 4:return s.binary(36,e,r);case 5:return s.binary(228,e,r);case 8:return s.binary(12,e,r);case 9:return s.binary(37,e,r);case 10:return s.binary(229,e,r)}return assert(!1),s.unreachable()}makeShru(e,r,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,r,s.i32(n.size-1)));case 3:case 8:return s.binary(12,e,r);case 4:case 9:return s.binary(37,e,r);case 5:case 10:return s.binary(229,e,r)}return assert(!1),s.unreachable()}makeAnd(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return s.binary(7,e,r);case 4:case 9:return s.binary(32,e,r);case 5:case 10:return s.binary(224,e,r)}return assert(!1),s.unreachable()}makeOr(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(8,e,r);case 3:case 8:return s.binary(8,e,r);case 4:case 9:return s.binary(33,e,r);case 5:case 10:return s.binary(225,e,r)}return assert(!1),s.unreachable()}makeXor(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(9,e,r);case 3:case 8:return s.binary(9,e,r);case 4:case 9:return s.binary(34,e,r);case 5:case 10:return s.binary(226,e,r)}return assert(!1),s.unreachable()}compileUnaryOverload(e,r,n,s){return this.makeCallDirect(e,[n],s,!1)}compileBinaryOverload(e,r,n,s,a,l){let o,u=e.signature,c=u.parameterTypes;e.is(262144)?(n=this.convertExpression(n,s,assert(u.thisType),!1,r),o=c[0]):(n=this.convertExpression(n,s,c[0],!1,r),o=c[1]);let f=this.compileExpression(a,o,1);return this.makeCallDirect(e,[n,f],l)}compileCommutativeBinaryOverload(e,r,n,s,a,l,o,u){let c=e.signature,f=c.parameterTypes;return e.is(262144)?(n=this.convertExpression(n,s,assert(c.thisType),!1,r),l=this.convertExpression(l,o,f[0],!1,a)):(n=this.convertExpression(n,s,f[0],!1,r),l=this.convertExpression(l,o,f[1],!1,a)),this.makeCallDirect(e,[n,l],u)}compileAssignment(e,r,n){let a=this.program.resolver,l=this.currentFlow,o=a.lookupExpression(e,l);if(!o)return this.module.unreachable();let u=a.currentThisExpression,c=a.currentElementExpression,f;switch(o.kind){case 0:case 1:{if(o.kind==0){if(!this.compileGlobalLazy(o,e))return this.module.unreachable()}else if(!o.declaredByFlow(l)&&(!o.isCaptured||o.envSlotIndex<0))return this.error(100,e.range,"Closures"),this.module.unreachable();if(this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();f=o.type,o.hasDecorator(2048)&&this.checkUnsafe(e);break}case 10:{let m=o,x=a.resolveProperty(m);if(!x)return this.module.unreachable();o=x}case 11:{let m=o;if(m.isField&&this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();let x=m.setterInstance;if(!x)return this.error(2540,e.range,m.internalName),this.module.unreachable();assert(x.signature.parameterTypes.length==1),f=x.signature.parameterTypes[0],x.hasDecorator(2048)&&this.checkUnsafe(e);break}case 15:{let m=o.parent;assert(m.kind==7);let x=m,g=l.is(32768),A=x.lookupOverload(2,g);if(!A)return x.lookupOverload(1,g)?this.error(2542,e.range,x.internalName):this.error(2329,e.range,x.internalName),this.module.unreachable();let I=A.signature.parameterTypes;assert(I.length==2),f=I[1],A.hasDecorator(2048)&&this.checkUnsafe(e),!g&&this.options.pedantic&&this.pedantic(904,e.range);break}default:return this.error(2540,e.range,o.internalName),this.module.unreachable()}assert(f!=p.void);let _=this.compileExpression(r,f),h=this.currentType;return f.isNullableReference&&this.currentFlow.isNonnull(_,h)&&(f=f.nonNullableType),this.makeAssignment(o,this.convertExpression(_,h,f,!1,r),f,r,u,c,n!=p.void)}makeAssignment(e,r,n,s,a,l,o){let u=this.module,c=this.currentFlow;switch(e.kind){case 1:{let f=e;return c.isLocalFlag(f.index,1,!0)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeLocalAssignment(f,r,n,o)}case 0:{let f=e;return this.compileGlobalLazy(f,s)?e.isAny(72)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeGlobalAssignment(f,r,n,o):u.unreachable()}case 10:{let f=this.resolver.resolveProperty(e);if(!f)return u.unreachable();e=f}case 11:{let f=e;if(f.isField){let h=c.sourceFunction.is(524288);if(f.is(64)){let m=f.initializerNode;if(!h||m)return this.error(2540,s.range,f.internalName),u.unreachable()}a=assert(a),h&&a.kind==25&&c.setThisFieldFlag(f,1)}let _=f.setterInstance;if(!_)return this.error(2540,s.range,e.internalName),u.unreachable();if(assert(_.signature.parameterTypes.length==1),assert(_.signature.returnType==p.void),f.is(262144)){let h=assert(_.signature.thisType),m=this.compileExpression(assert(a),h,33);if(!o)return this.makeCallDirect(_,[m,r],s);let x=c.getTempLocal(n),g=n.toRef(),A=u.block(null,[this.makeCallDirect(_,[m,u.local_tee(x.index,r,n.isManaged,g)],s),u.local_get(x.index,g)],g);return this.currentType=n,A}else{if(!o)return this.makeCallDirect(_,[r],s);let h=c.getTempLocal(n),m=n.toRef(),x=u.block(null,[this.makeCallDirect(_,[u.local_tee(h.index,r,n.isManaged,m)],s),u.local_get(h.index,m)],m);return this.currentType=n,x}}case 15:{let _=e.parent;assert(_.kind==7);let h=_;assert(h.kind==7);let m=c.is(32768),x=h.lookupOverload(1,m);if(!x)return this.error(2329,s.range,h.internalName),u.unreachable();let g=h.lookupOverload(2,m);if(!g)return this.error(2542,s.range,h.internalName),this.currentType=o?x.signature.returnType:p.void,u.unreachable();assert(g.signature.parameterTypes.length==2);let A=h.type,I=this.compileExpression(assert(a),A,33),E=g.signature.parameterTypes[0],k=x.signature.parameterTypes[0];if(!E.equals(k))return this.errorRelated(237,x.identifierAndSignatureRange,g.identifierAndSignatureRange,h.internalName),this.currentType=o?x.signature.returnType:p.void,u.unreachable();let F=this.compileExpression(assert(l),E,1),R=this.currentType;if(o){let M=c.getTempLocal(A),z=c.getTempLocal(R),D=x.signature.returnType;return u.block(null,[this.makeCallDirect(g,[u.local_tee(M.index,I,A.isManaged),u.local_tee(z.index,F,R.isManaged),r],s),this.makeCallDirect(x,[u.local_get(M.index,M.type.toRef()),u.local_get(z.index,z.type.toRef())],s)],D.toRef())}else return this.makeCallDirect(g,[I,F,r],s)}default:this.error(2541,s.range)}return u.unreachable()}makeLocalAssignment(e,r,n,s){let a=this.module,l=this.currentFlow,o=e.type;assert(o!=p.void);let u=e.index;if(e.isCaptured&&e.envSlotIndex>=0){let c=l.sourceFunction;if(!(e.parent==c)||c.envLocal){l.setLocalFlag(u,8),o.isNullableReference&&(!n.isNullableReference||l.isNonnull(r,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),o.isShortIntegerValue&&(l.canOverflow(r,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2));let _=this.compileClosureStore(e,r,n);if(s){let h=this.compileClosureLoad(e,e.declaration);return this.currentType=o,a.block(null,[_,h],o.toRef())}else return this.currentType=p.void,_}}return o.isNullableReference&&(!n.isNullableReference||l.isNonnull(r,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),l.setLocalFlag(u,8),o.isShortIntegerValue&&(l.canOverflow(r,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2)),e.isCaptured||(e.wasAccessedAsLocal=!0),s?(this.currentType=o,a.local_tee(u,r,o.isManaged)):(this.currentType=p.void,a.local_set(u,r,o.isManaged))}makeGlobalAssignment(e,r,n,s){let a=this.module,l=e.type;assert(l!=p.void);let o=l.toRef();return r=this.ensureSmallIntegerWrap(r,l),s?(this.currentType=l,a.block(null,[a.global_set(e.internalName,r),a.global_get(e.internalName,o)],o)):(this.currentType=p.void,a.global_set(e.internalName,r))}compileCallExpression(e,r,n){let s=this.module,a=this.currentFlow;if(e.expression.kind==24){let f=this.currentFlow,_=f.sourceFunction;if(!_.is(524288))return this.error(2337,e.range),s.unreachable();let h=assert(_.parent);assert(h.kind==7);let m=h,x=m.base;if(!x||m.prototype.implicitlyExtendsObject)return this.error(2335,e.expression.range),s.unreachable();let g=assert(f.lookupLocal(C.this_)),A=this.options.sizeTypeRef,I=this.ensureConstructor(x,e);this.checkFieldInitialization(x,e);let E=this.compileCallDirect(I,e.args,e,s.local_get(g.index,A));return f.isAny(8256)?(this.error(17009,e.range),s.unreachable()):(f.set(192),this.currentType=p.void,s.local_set(g.index,E,m.type.isManaged))}let l=this.resolver.lookupExpression(e.expression,a);if(!l)return s.unreachable();let o=this.resolver.currentThisExpression;switch(l.kind){case 4:{let f=l;if(f.hasDecorator(512))return this.compileCallExpressionBuiltin(f,e,r);let _=this.resolver.maybeInferCall(e,f,a);if(!_)return this.module.unreachable();l=_}case 5:{let f=l,_=0;return f.is(262144)&&(_=this.compileExpression(assert(o),assert(f.signature.thisType),33)),this.compileCallDirect(f,e.args,e,_,n)}}let u=this.compileExpression(e.expression,p.auto),c=this.currentType.getSignature();if(c)return this.compileCallIndirect(c,u,e.args,e,0,r==p.void);if(this.error(2349,e.range,this.currentType.toString()),l.kind==10){let f=l.getterPrototype;f&&this.infoRelated(6234,e.range,f.identifierNode.range)}return s.unreachable()}compileCallExpressionLike(e,r,n,s,a,l=0){let o=this._reusableCallExpression;return o?(o.expression=e,o.typeArguments=r,o.args=n,o.range=s):this._reusableCallExpression=o=G.createCallExpression(e,r,n,s),this.compileCallExpression(o,a,l)}compileCallExpressionBuiltin(e,r,n){e.hasDecorator(2048)&&this.checkUnsafe(r);let s=null,a=e.typeParameterNodes,l=r.typeArguments;r.typeArguments&&(e.is(65536)||this.error(2315,r.range,e.internalName),s=this.resolver.resolveTypeArguments(assert(a),l,this.currentFlow,this.currentFlow.sourceFunction.parent,pe(this.currentFlow.contextualTypeArguments),r));let o=r.expression,u=new $l(this,e,s,r.args,o.kind==22?o.expression:null,n,r,!1),c;return e.is(262144)?c=`${assert(e.getBoundClassOrInterface()).prototype.internalName}#${e.name}`:c=e.internalName,assert(b.has(c)),assert(b.get(c))(u)}checkCallSignature(e,r,n,s){let a=e.thisType;if(n!=(a!=null))return this.error(2685,s.range),!1;let l=e.hasRest,o=e.requiredParameters,u=e.parameterTypes.length;return r<o?(this.error(o<u?2555:2554,s.range,o.toString(),r.toString()),!1):r>u&&!l?(this.error(2554,s.range,u.toString(),r.toString()),!1):!0}checkUnsafe(e,r=null){this.options.noUnsafe&&!e.range.source.isLibrary&&(r?this.errorRelated(101,e.range,r.range):this.error(101,e.range))}adjustArgumentsForRestParams(e,r,n){if(!r.hasRest)return e;let s=e.length,a=r.parameterTypes.length;if(s<a)return e;let l=e.slice(a-1),o=new le(l[0].range.start,l[l.length-1].range.end);o.source=n.range.source;let u=new Ir(l,o),c=e.slice(0,a-1);return c.push(u),c}compileCallDirect(e,r,n,s=0,a=0){let l=r.length,o=e.signature;if(!this.checkCallSignature(o,l,s!=0,n))return this.currentType=o.returnType,this.module.unreachable();e.hasDecorator(2048)&&this.checkUnsafe(n),r=this.adjustArgumentsForRestParams(r,o,n),l=r.length;let u=this.currentFlow.sourceFunction;if(u.is(524288)&&n.isAccessOnThis){let x=u.parent;assert(x.kind==7),this.checkFieldInitialization(x,n)}if((e.hasDecorator(64)||this.currentFlow.is(131072))&&(!e.is(268435456)||n.isAccessOnSuper)){assert(!e.is(134217728));let x=this.inlineStack;if(x.includes(e))this.warning(217,n.range,e.internalName);else{let g=o.parameterTypes;assert(l<=g.length);let A=new Array(l);for(let E=0;E<l;++E)A[E]=this.compileExpression(r[E],g[E],1);x.push(e);let I=this.makeCallInline(e,A,s,(a&8)!=0);return x.pop(),I}}let f=s?l+1:l,_=new Array(f),h=0;s&&(_[0]=s,h=1);let m=o.parameterTypes;for(let x=0;x<l;++x,++h){let g=m[x],A=this.compileExpression(r[x],g,1);_[h]=A}return assert(h==f),this.makeCallDirect(e,_,n,(a&8)!=0)}makeCallInline(e,r,n=0,s=!1){let a=this.module,l=r?r.length:0,u=e.signature.parameterTypes,c=u.length,f=this.currentFlow,_=zt.createInline(f.targetFunction,e),h=[];if(n){let g=assert(e.parent);assert(g.kind==7);let A=g,I=assert(e.signature.thisType),E=_.addScopedLocal(C.this_,I);h.push(a.local_set(E.index,n,I.isManaged)),_.setLocalFlag(E.index,8);let k=A.base;k&&_.addScopedAlias(C.super_,k.type,E.index)}else assert(!e.signature.thisType);for(let g=0;g<l;++g){let A=r[g],I=u[g],E=_.addScopedLocal(e.getParameterName(g),I);f.canOverflow(A,I)||_.setLocalFlag(E.index,2),_.isNonnull(A,I)&&_.setLocalFlag(E.index,4),h.push(a.local_set(E.index,A,I.isManaged)),_.setLocalFlag(E.index,8)}this.currentFlow=_;let m=e.is(524288);m&&_.set(65536);for(let g=l;g<c;++g){let A=u[g],I=this.compileExpression(assert(e.prototype.functionTypeNode.parameters[g].initializer),A,1),E=_.addScopedLocal(e.getParameterName(g),A);h.push(this.makeLocalAssignment(E,I,A,!1))}if(_.unset(65536),this.compileFunctionBody(e,h),m){let g=e.parent;assert(g.kind==7),this.checkFieldInitializationInFlow(g,_)}let x=_.returnType;return this.currentFlow=f,this.currentType=x,a.block(_.inlineReturnLabel,h,x.toRef())}ensureArgumentsLength(){let e=d.argumentsLength;if(!this.builtinArgumentsLength){let r=this.module;this.builtinArgumentsLength=r.addGlobal(e,L.I32,!0,r.i32(0))}return e}ensureClosureEnvironmentGlobal(){let e="~lib/__closure_env";if(!this.closureEnvironmentGlobal){let r=this.module,n=this.options.sizeTypeRef,s=this.options.isWasm64?r.i64(0):r.i32(0);this.closureEnvironmentGlobal=r.addGlobal(e,n,!0,s)}return e}ensureExceptionTag(){let e="error";if(!this.exceptionTagEnsured){let r=this.module,n=this.options.sizeTypeRef;r.addTag(e,n,L.None),this.exceptionTagEnsured=!0}return e}ensureVarargsStub(e){let r=e.varargsStub;if(r)return r;let n=e.signature,s=n.parameterTypes,a=e.prototype.functionTypeNode.parameters,l=n.returnType,o=e.is(262144),u=n.requiredParameters,c=u,f=s.length,_=f;o&&(++c,++_);let h=assert(_-c),m=new Array(c),x=0,g=new Array,A=this.module,I=n.thisType;I&&(m[0]=A.local_get(0,I.toRef()),x=1);for(let q=0;q<u;++q,++x){let ee=s[q];m[x]=A.local_get(x,ee.toRef())}assert(x==c),r=e.newStub("varargs",f),e.varargsStub=r;let E=this.currentFlow,k=r.flow;e.is(524288)&&k.set(65536),this.currentFlow=k;let F=h+1,R=new Array(F),M=`of${h}`;for(let q=0;q<F;++q)R[q]=`${q}${M}`;let z=this.ensureArgumentsLength(),D=A.block(R[0],[A.block("outOfRange",[A.switch(R,"outOfRange",u?A.binary(1,A.global_get(z,L.I32),A.i32(u)):A.global_get(z,L.I32))]),A.unreachable()]);for(let q=0;q<h;++q,++x){let ee=s[u+q],Y=a[u+q],te=Y.initializer,j;if(Y.parameterKind===2){let re=new Ir([],Y.range.atEnd);j=this.compileArrayLiteral(re,ee,2),j=A.local_set(x,j,ee.isManaged)}else te?(j=this.compileExpression(te,ee,1),j=A.local_set(x,j,ee.isManaged)):(this.error(215,Y.range),j=A.unreachable());D=A.block(R[q+1],[D,j]),m[x]=A.local_get(x,ee.toRef())}assert(x==_),g.push(D),g.push(this.makeCallDirect(e,m,e.declaration.name)),this.currentFlow=E;let W=A.addFunction(r.internalName,r.signature.paramRefs,r.signature.resultRefs,Br(r.getNonParameterLocalTypes()),A.flatten(g,l.toRef()));return r.set(8388608),r.finalize(A,W),r}ensureOverrideStub(e){let r=e.overrideStub;if(r)return r;r=e.newStub("override"),e.overrideStub=r;let n=this.module;return r.ref=n.addFunction(r.internalName,r.signature.paramRefs,r.signature.resultRefs,null,n.unreachable()),this.overrideStubs.add(e),r}finalizeOverrideStub(e){let r=this.ensureOverrideStub(e);if(r.is(8388608))return;assert(e.parent.kind==7||e.parent.kind==9);let n=this.module,a=this.options.usizeType.toRef(),l=e.signature.parameterTypes,o=e.signature.returnType,u=l.length,c=1+l.length,f=new zn(this.module,n.load(4,!1,n.binary(a==L.I64?26:1,n.local_get(0,a),a==L.I64?n.i64(8):n.i32(8)),L.I32)),_=this.resolver.resolveOverrides(e);if(_){let g=new Map;for(let A=0,I=_.length;A<I;++A){let E=_[A];if(!E.is(8388608))continue;let k=E.signature,F=e.signature;if(!k.isAssignableTo(F,!0)){this.error(2322,E.identifierNode.range,k.toString(),F.toString());continue}let R=k.parameterTypes,M=R.length,z=new Array(1+M);z[0]=n.local_get(0,a);for(let j=1;j<=u;++j)z[j]=n.local_get(j,l[j-1].toRef());let D=!1;for(let j=u;j<M;++j)z[1+j]=this.makeZero(R[j]),D=!0;let W=D?this.ensureVarargsStub(E).internalName:E.internalName,q=k.returnType.toRef(),ee=new Array;D&&ee.push(n.global_set(this.ensureArgumentsLength(),n.i32(u))),o==p.void?(ee.push(n.call(W,z,q)),ee.push(n.return())):ee.push(n.return(n.call(W,z,q)));let Y=assert(E.getBoundClassOrInterface());f.addCase(Y.id,ee);let te=Y.extenders;if(te)for(let j=Set_values(te),re=0,H=j.length;re<H;++re){let ue=j[re],be=ue.prototype.instanceMembers;be&&be.has(e.declaration.name.text)||(!g.has(ue)||!assert(g.get(ue)).extends(Y))&&(g.set(ue,Y),f.addOrReplaceCase(ue.id,ee))}}}let h,m=e.getBoundClassOrInterface();if(!e.is(128)&&!(m&&m.kind==9)){let g=new Array(u);g[0]=n.local_get(0,a);for(let A=0,I=l.length;A<I;++A)g[1+A]=n.local_get(1+A,l[A].toRef());h=n.call(e.internalName,g,o.toRef())}else h=n.unreachable();r.ref&&n.removeFunction(r.internalName),r.ref=n.addFunction(r.internalName,r.signature.paramRefs,r.signature.resultRefs,[L.I32],n.block(null,[f.render(c),h],o.toRef())),r.set(8388608)}needToStack(e){let r=this.module.runExpression(e,0);if(r==0)return!0;let n=Op(r,this.options.isWasm64);if(i64_eq(n,i64_zero))return!1;let s=this.staticGcObjectOffsets;return!(s.has(i64_high(n))&&assert(s.get(i64_high(n))).has(i64_low(n)))}operandsTostack(e,r){if(!this.options.stackSize)return;let n=this.module,s=0,a=e.thisType;if(a){if(a.isManaged){let u=r[0];this.needToStack(u)&&(r[s]=n.tostack(u))}++s}let l=0,o=e.parameterTypes;for(assert(o.length>=r.length-s);s<r.length;){if(o[l].isManaged){let c=r[s];this.needToStack(c)&&(r[s]=n.tostack(c))}++s,++l}}makeCallDirect(e,r,n,s=!1){if(e.hasDecorator(64))if(e.is(268435456))this.warning(228,n.range,e.internalName);else{assert(!e.is(134217728));let g=this.inlineStack;if(g.includes(e))this.warning(217,n.range,e.internalName);else{g.push(e);let A;if(e.is(262144)){let I=assert(r);assert(I.length),A=this.makeCallInline(e,I.slice(1),I[0],s)}else A=this.makeCallInline(e,r,0,s);return g.pop(),A}}let a=this.module,l=r?r.length:0,o=l,c=e.signature.requiredParameters,f=e.signature.parameterTypes,_=f.length,h=_;if(e.is(262144)&&(++c,++h,--o),assert(l>=c),!this.compileFunction(e))return a.unreachable();let m=e.signature.returnType;if(l<h){r||(r=new Array(h),r.length=0);let g=e.prototype.functionTypeNode.parameters;assert(g.length==f.length);let A=!0;for(let I=o;I<_;++I){let E=g[I].initializer;if(E){if(E.compilesToConst){r.push(this.compileExpression(E,f[I],1));continue}let k=this.resolver.lookupExpression(E,e.flow,f[I],1);if(k&&k.kind==0){let F=k;if(this.compileGlobalLazy(F,E)&&F.is(33554432)){r.push(this.compileInlineConstant(F,f[I],1));continue}}}r.push(this.makeZero(f[I])),A=!1}if(!A&&!e.is(2097152)){let I=e;if(e=this.ensureVarargsStub(e),!this.compileFunction(e))return a.unreachable();e.flow.flags=I.flow.flags;let E=m.toRef(),k=r[h-1];assert(!(ki(k,a.ref)&32));let F=f[_-1];r[h-1]=a.block(null,[a.global_set(this.ensureArgumentsLength(),a.i32(o)),k],F.toRef()),this.operandsTostack(e.signature,r);let R=a.call(e.internalName,r,E);return m!=p.void&&s?(R=a.drop(R),this.currentType=p.void):this.currentType=m,R}}e.is(268435456)&&!n.isAccessOnSuper&&(e=this.ensureOverrideStub(e)),r&&this.operandsTostack(e.signature,r);let x=a.call(e.internalName,r,m.toRef());return this.currentType=m,x}compileCallIndirect(e,r,n,s,a=0,l=!1){let o=n.length;if(!this.checkCallSignature(e,o,a!=0,s))return this.module.unreachable();n=this.adjustArgumentsForRestParams(n,e,s),o=n.length;let u=a?o+1:o,c=new Array(u),f=0;a&&(c[0]=a,f=1);let _=e.parameterTypes;for(let h=0;h<o;++h,++f)c[f]=this.compileExpression(n[h],_[h],1);return assert(f==u),this.makeCallIndirect(e,r,s,c,l)}makeCallIndirect(e,r,n,s=null,a=!1){let l=this.module,o=s?s.length:0,u=o,f=e.requiredParameters,_=e.parameterTypes,h=e.returnType,m=_.length,x=m;if(e.thisType&&(++f,++x,--u),assert(o>=f),o<x){s||(s=new Array(x),s.length=0);let M=e.parameterTypes;for(let z=u;z<m;++z)s.push(this.makeZero(M[z]))}let g=(ki(r,l.ref)&32)==0;if(s&&g){for(let M=0;M<o;++M)if(!l.isTrivialExpression(s[M])){g=!1;break}}let A=new Array,I=this.options.sizeTypeRef;if(!g){let M=this.currentFlow.getTempLocal(this.options.usizeType),z=l.local_set(M.index,r,!0);A.push(z),r=l.local_get(M.index,I)}let E=this.ensureArgumentsLength(),k=l.block(null,[l.global_set(E,l.i32(u)),r],I);if(s&&this.operandsTostack(e,s),this.options.hasFeature(65536)){let M=this.ensureClosureEnvironmentGlobal(),z=this.options.usizeType.byteSize,D=this.options.isWasm64?8:4,ee=this.currentFlow.getTempLocal(this.options.usizeType).index,Y=[l.local_set(ee,k,!0),l.global_set(M,l.load(z,!1,l.local_get(ee,I),I,D))],te=l.load(4,!1,l.local_get(ee,I),L.I32),j=l.call_indirect(null,l.block(null,Y.concat([te]),L.I32),s,e.paramRefs,e.resultRefs);return this.currentType=h,A.push(j),l.flatten(A,h.toRef())}let F=l.load(4,!1,k,L.I32),R=l.call_indirect(null,F,s,e.paramRefs,e.resultRefs);return this.currentType=h,A.push(R),l.flatten(A,h.toRef())}compileCommaExpression(e,r,n){let s=e.expressions,a=s.length,l=new Array(a--);for(let o=0;o<a;++o)l[o]=this.compileExpression(s[o],p.void,9);return l[a]=this.compileExpression(s[a],r,n),this.module.flatten(l,this.currentType.toRef())}compileElementAccessExpression(e,r,n){let s=this.module,a=e.expression,l=this.resolver,o=l.lookupExpression(a,this.currentFlow,p.auto,1);if(o&&o.kind==2){let c=this.compileExpression(e.elementExpression,p.i32,1),f=this.ensureEnumToString(o,e);return this.currentType=this.program.stringInstance.type,f==null?s.unreachable():s.call(f,[c],L.I32)}let u=l.resolveExpression(a,this.currentFlow);if(u){let c=u.getClassOrWrapper(this.program);if(c){let f=this.currentFlow.is(32768),_=c.lookupOverload(1,f);if(_){let h=assert(_.signature.thisType),m=this.compileExpression(a,h,1);return!f&&this.options.pedantic&&this.pedantic(904,e.range),this.compileCallDirect(_,[e.elementExpression],e,m,n)}}this.error(2329,e.expression.range,u.toString())}return s.unreachable()}compileFunctionExpression(e,r,n){let s=e.declaration.clone();assert(!s.typeParameters);let a=this.currentFlow,l=a.sourceFunction,o=s.name.text.length>0,u=!o||r!=p.void,c=u?`${o?s.name.text:"anonymous"}|${l.nextAnonymousId++}`:s.name.text,f=Ce(c,l,!1),_=this.program.instancesByName.has(f)?this.program.instancesByName.get(f):null;if(_&&_.kind==5){let F=_;if(F.is(8388608)){let R=this.ensureRuntimeFunction(F),M=F.capturedLocals;return M&&M.size>0?this.compileClosureFunctionCreation(F,l):(this.currentType=F.signature.type,this.options.isWasm64?this.module.i64(i64_low(R),i64_high(R)):this.module.i32(i64_low(R)))}}let h;_&&_.kind==5?h=_.prototype:h=new Xe(c,l,s,0);let m,x=pe(a.contextualTypeArguments),g=this.module,A=r.signatureReference;if(A){let F=h.functionTypeNode,R=F.parameters,M=R.length,z=A.parameterTypes,D=z.length;if(M>D)return this.error(2554,e.range,D.toString(),M.toString()),g.unreachable();for(let re=0;re<M;++re){let H=R[re];if(!ke(H.type)){let ue=this.resolver.resolveType(H.type,a,l.parent,x);if(!ue)return g.unreachable();if(!z[re].isStrictlyAssignableTo(ue))return this.error(2322,H.range,z[re].toString(),ue.toString()),g.unreachable()}}let W=A.returnType;if(!ke(F.returnType)){let re=this.resolver.resolveType(F.returnType,a,l.parent,x);if(!re)return g.unreachable();if(W==p.void?re!=p.void:!re.isStrictlyAssignableTo(W))return this.error(2322,F.returnType.range,re.toString(),W.toString()),g.unreachable()}let q=A.thisType,ee=F.explicitThisType;if(ee){if(!q)return this.error(2332,ee.range),g.unreachable();let re=this.resolver.resolveType(ee,a,l.parent,x);if(!re)return g.unreachable();if(!q.isStrictlyAssignableTo(re))return this.error(2322,ee.range,q.toString(),re.toString()),g.unreachable()}let Y=qe.create(this.program,z,W,q,D);m=new gt(h.name,h,null,Y,x),m.flow.outer=a;let te=this.analyzeCapturedVariables(s,a);if(te.size>0){if(!this.options.hasFeature(65536))return this.error(103,e.range,"closures"),g.unreachable();m.capturedLocals=te,m.outerFunction=l,this.ensureClosureEnvironmentsForCaptures(te,a)}let j=this.compileFunction(m);if(this.currentType=A.type,!j)return g.unreachable()}else{if(m=this.resolver.resolveFunction(h,null,x),!m)return this.module.unreachable();m.flow.outer=a;let F=this.analyzeCapturedVariables(s,a);if(F.size>0){if(!this.options.hasFeature(65536))return this.error(103,e.range,"closures"),g.unreachable();m.capturedLocals=F,m.outerFunction=l,this.ensureClosureEnvironmentsForCaptures(F,a)}let R=this.compileFunction(m);if(this.currentType=m.signature.type,!R)return g.unreachable()}let I=this.ensureRuntimeFunction(m),E=m.capturedLocals;if(E&&E.size>0)return this.compileClosureFunctionCreation(m,l);let k=this.options.isWasm64?g.i64(i64_low(I),i64_high(I)):g.i32(i64_low(I));if(!u){let F=m.name,R=a.getScopedLocal(F);if(R)R.declaration.range.source.isNative?this.error(2300,s.name.range,F):this.errorRelated(2300,s.name.range,R.declaration.name.range,F);else{let M=m.type,z=a.addScopedLocal(m.name,M);a.setLocalFlag(z.index,9),k=g.local_tee(z.index,k,M.isManaged)}}return k}scanNodeForCaptures(e,r,n,s){switch(e.kind){case 7:{let l=e.text;if(n.has(l))break;let o=r.lookupLocal(l);if(o||(o=r.lookupLocalInOuter(l)),o&&!s.has(o)){if(o.isCaptured=!0,o.envOwner||(o.envOwner=o.parent),o.wasAccessedAsLocal){let u=o.parent;u.needsCaptureRecompile=!0}if(o.envSlotIndex>=0)s.set(o,o.envSlotIndex);else{let c=this.options.usizeType.byteSize,f=o.envOwner;if(f&&f.capturedLocals){let m=changetype(f.capturedLocals);for(let x=Map_keys(m),g=0,A=x.length;g<A;++g){let I=x[g];if(I.envOwner==f&&I.envSlotIndex>=0){let E=I.envSlotIndex+I.type.byteSize;E>c&&(c=E)}}}for(let m=Map_keys(s),x=0,g=m.length;x<g;++x){let A=m[x];if(A.envOwner==f&&A.envSlotIndex>=0){let I=A.envSlotIndex+A.type.byteSize;I>c&&(c=I)}}let h=o.type.byteSize;c=c+h-1&~(h-1),o.envSlotIndex=c,s.set(o,o.envSlotIndex)}}break}case 25:{let a=r.lookupLocal(C.this_);if(a||(a=r.lookupLocalInOuter(C.this_)),a&&!s.has(a)){if(a.isCaptured=!0,a.envOwner||(a.envOwner=a.parent),a.wasAccessedAsLocal){let l=a.parent;l.needsCaptureRecompile=!0}if(a.envSlotIndex>=0)s.set(a,a.envSlotIndex);else{let o=this.options.usizeType.byteSize,u=a.envOwner;if(u&&u.capturedLocals){let _=changetype(u.capturedLocals);for(let h=Map_keys(_),m=0,x=h.length;m<x;++m){let g=h[m];if(g.envOwner==u&&g.envSlotIndex>=0){let A=g.envSlotIndex+g.type.byteSize;A>o&&(o=A)}}}for(let _=Map_keys(s),h=0,m=_.length;h<m;++h){let x=_[h];if(x.envOwner==u&&x.envSlotIndex>=0){let g=x.envSlotIndex+x.type.byteSize;g>o&&(o=g)}}let f=a.type.byteSize;o=o+f-1&~(f-1),a.envSlotIndex=o,s.set(a,a.envSlotIndex)}}break}case 15:{let l=e.declaration,o=l.signature.parameters;for(let c=0,f=o.length;c<f;c++){let _=o[c].initializer;_&&this.scanNodeForCaptures(_,r,n,s)}for(let c=0,f=o.length;c<f;c++)n.add(o[c].name.text);let u=l.body;u&&this.scanNodeForCaptures(u,r,n,s);for(let c=0,f=o.length;c<f;c++)n.delete(o[c].name.text);break}case 8:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 9:{let a=e;this.scanNodeForCaptures(a.left,r,n,s),this.scanNodeForCaptures(a.right,r,n,s);break}case 10:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);let l=a.args;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],r,n,s);break}case 12:{let l=e.expressions;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],r,n,s);break}case 17:{let a=e;if(a.literalKind==5){let o=a.elementExpressions;for(let u=0,c=o.length;u<c;u++){let f=o[u];f&&this.scanNodeForCaptures(f,r,n,s)}}else if(a.literalKind==6){let o=a.values;for(let u=0,c=o.length;u<c;u++)this.scanNodeForCaptures(o[u],r,n,s)}else if(a.literalKind==3){let o=a.expressions;for(let u=0,c=o.length;u<c;u++)this.scanNodeForCaptures(o[u],r,n,s)}break}case 13:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s),this.scanNodeForCaptures(a.elementExpression,r,n,s);break}case 18:{let a=e;this.scanNodeForCaptures(a.typeName,r,n,s);let l=a.args;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],r,n,s);break}case 21:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 22:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 23:{let a=e;this.scanNodeForCaptures(a.condition,r,n,s),this.scanNodeForCaptures(a.ifThen,r,n,s),this.scanNodeForCaptures(a.ifElse,r,n,s);break}case 28:{let a=e;this.scanNodeForCaptures(a.operand,r,n,s);break}case 29:{let a=e;this.scanNodeForCaptures(a.operand,r,n,s);break}case 16:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 31:{let l=e.statements;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],r,n,s);break}case 34:{let a=e;this.scanNodeForCaptures(a.body,r,n,s),this.scanNodeForCaptures(a.condition,r,n,s);break}case 39:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 40:{let a=e,l=a.initializer,o=a.condition,u=a.incrementor;l&&this.scanNodeForCaptures(l,r,n,s),o&&this.scanNodeForCaptures(o,r,n,s),u&&this.scanNodeForCaptures(u,r,n,s),this.scanNodeForCaptures(a.body,r,n,s);break}case 41:{let a=e;this.scanNodeForCaptures(a.variable,r,n,s),this.scanNodeForCaptures(a.iterable,r,n,s),this.scanNodeForCaptures(a.body,r,n,s);break}case 42:{let a=e;this.scanNodeForCaptures(a.condition,r,n,s),this.scanNodeForCaptures(a.ifTrue,r,n,s);let l=a.ifFalse;l&&this.scanNodeForCaptures(l,r,n,s);break}case 44:{let l=e.value;l&&this.scanNodeForCaptures(l,r,n,s);break}case 45:{let a=e;this.scanNodeForCaptures(a.condition,r,n,s);let l=a.cases;for(let o=0,u=l.length;o<u;o++){let c=l[o],f=c.label;f&&this.scanNodeForCaptures(f,r,n,s);let _=c.statements;for(let h=0,m=_.length;h<m;h++)this.scanNodeForCaptures(_[h],r,n,s)}break}case 46:{let a=e;this.scanNodeForCaptures(a.value,r,n,s);break}case 47:{let a=e,l=a.bodyStatements;for(let c=0,f=l.length;c<f;c++)this.scanNodeForCaptures(l[c],r,n,s);let o=a.catchStatements;if(o)for(let c=0,f=o.length;c<f;c++)this.scanNodeForCaptures(o[c],r,n,s);let u=a.finallyStatements;if(u)for(let c=0,f=u.length;c<f;c++)this.scanNodeForCaptures(u[c],r,n,s);break}case 48:{let l=e.declarations;for(let o=0,u=l.length;o<u;o++){let c=l[o];n.add(c.name.text);let f=c.initializer;f&&this.scanNodeForCaptures(f,r,n,s)}break}case 50:{let a=e;this.scanNodeForCaptures(a.condition,r,n,s),this.scanNodeForCaptures(a.body,r,n,s);break}case 49:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 19:case 26:case 14:case 24:case 27:case 32:case 33:case 35:case 20:case 67:case 30:break;case 11:break;case 4:case 1:case 2:case 5:case 6:break;case 0:case 52:case 53:case 54:case 56:case 58:case 60:case 61:case 43:case 36:case 37:case 38:case 51:case 63:case 66:case 55:case 57:case 64:case 59:case 62:case 65:break;default:assert(!1,"scanNodeForCaptures: unhandled node kind: "+e.kind.toString())}}analyzeCapturedVariables(e,r){let n=new Map,s=new Set,a=e.signature.parameters;for(let o=0,u=a.length;o<u;o++){let c=a[o].initializer;c&&this.scanNodeForCaptures(c,r,s,n)}for(let o=0,u=a.length;o<u;o++)s.add(a[o].name.text);let l=e.body;return l&&this.scanNodeForCaptures(l,r,s,n),n}computeEnvironmentSize(e){let r=this.options.usizeType.byteSize,n=r;for(let s=Map_keys(e),a=0,l=s.length;a<l;a++){let o=s[a],u=o.envSlotIndex+o.type.byteSize;u>n&&(n=u)}return n+r-1&~(r-1)}ensureClosureEnvironmentsForCaptures(e,r){let n=new Map;for(let s=Map_keys(e),a=0,l=s.length;a<l;a++){let o=s[a],u=assert(o.envOwner),c=n.has(u)?n.get(u):null;c||(c=new Map,n.set(u,c)),c.set(o,e.get(o))}for(let s=Map_keys(n),a=0,l=s.length;a<l;a++){let o=s[a],u=assert(n.get(o));this.ensureClosureEnvironment(o,u,r)}}ensureClosureEnvironment(e,r,n){if(e.envLocal){let a=e.capturedLocals;if(a)for(let l=Map_keys(r),o=0,u=l.length;o<u;o++){let c=l[o];a.has(c)||a.set(c,r.get(c))}return}let s=this.options.usizeType;e.envLocal=n.addScopedLocal("$env",s),e.capturedLocals=r,this.computeEnvironmentSize(r)}compileClosureFunctionCreation(e,r){let n=this.module,s=this.program,a=this.options,l=a.sizeTypeRef,o=a.usizeType,u=assert(this.resolver.resolveClass(s.functionPrototype,[e.type])),c=u.id,f=u.nextMemoryOffset,_=s.newInstance;assert(_),this.compileFunction(_);let h=n.call(_.internalName,[a.isWasm64?n.i64(f):n.i32(f),n.i32(c)],l),m=this.currentFlow,x=m.getTempLocal(o);m.setLocalFlag(x.index,2);let g,A=r.envLocal,I=r.closureEnvLocal;A?g=n.local_get(A.index,l):I?g=n.local_get(I.index,l):g=a.isWasm64?n.i64(0):n.i32(0);let E=a.tableBase;E||(E=1);let k=E+this.functionTable.indexOf(e),F=u.offsetof("_index"),R=u.offsetof("_env"),M=[n.local_set(x.index,h,!1),n.store(4,n.local_get(x.index,l),n.i32(k),L.I32,F),n.store(o.byteSize,n.local_get(x.index,l),g,l,R),n.local_get(x.index,l)];return this.currentType=e.type,n.block(null,M,l)}getClosureEnvironmentPointer(e){let r=this.module,s=this.currentFlow.sourceFunction,a=this.options.sizeTypeRef,l=e.envOwner,o=s.envLocal;if(l==s&&o)return r.local_get(o.index,a);let u,c=s.closureEnvLocal;if(c)u=r.local_get(c.index,a);else{let h=this.ensureClosureEnvironmentGlobal();u=r.global_get(h,a)}let f=s.outerFunction,_=0;for(;f&&f!=l;)f.envLocal&&_++,f=f.outerFunction;for(let h=0;h<_;h++)u=r.load(this.options.usizeType.byteSize,!1,u,a,0);return u}compileClosureLoad(e,r=null){let n=this.module,s=e.type,a=e.envSlotIndex,l=this.getClosureEnvironmentPointer(e);return this.currentType=s,n.load(s.byteSize,s.is(1),l,s.toRef(),a)}compileClosureStore(e,r,n){let s=this.module,a=e.type,l=e.envSlotIndex,o=this.getClosureEnvironmentPointer(e);return s.store(a.byteSize,o,r,a.toRef(),l)}compileClosureEnvironmentAllocation(e){let r=this.module,n=this.program,s=this.options,a=s.sizeTypeRef,l=s.usizeType,o=assert(e.capturedLocals),u=assert(e.envLocal),c=this.computeEnvironmentSize(o),f=n.allocInstance;assert(f),this.compileFunction(f);let _=r.call(f.internalName,[s.isWasm64?r.i64(c):r.i32(c)],a),h=[];h.push(r.local_set(u.index,_,!1));let m,x=e.closureEnvLocal;x?m=r.local_get(x.index,a):m=s.isWasm64?r.i64(0):r.i32(0),h.push(r.store(l.byteSize,r.local_get(u.index,a),m,a,0));let g=e.signature,A=g.parameterTypes.length,I=g.thisType!=null,E=I?1:0,k=E+A;for(let F=Map_keys(o),R=0,M=F.length;R<M;R++){let z=F[R],D=z.envSlotIndex,W=z.type,q=z.index>=E&&z.index<k,ee=I&&z.index==0;(q||ee)&&h.push(r.store(W.byteSize,r.local_get(u.index,a),r.local_get(z.index,W.toRef()),W.toRef(),D))}return this.currentFlow.setLocalFlag(u.index,8),r.flatten(h,L.None)}maybeCompileEnclosingSource(e){let r=e.range.source.internalPath,n=this.program.filesByName;assert(n.has(r)),assert(n.get(r)).is(8388608)||this.compileFileByPath(r,e)}compileIdentifierExpression(e,r,n){let s=this.module,a=this.currentFlow,l=a.sourceFunction;switch(e.kind){case 19:{let c=this.options;if(r.isReference){let f=r.getClass();if(f)return this.currentType=f.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0);let _=r.getSignature();return _?(this.currentType=_.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0)):this.makeZero(r)}return this.currentType=c.usizeType,this.warning(226,e.range,this.currentType.toString()),c.isWasm64?s.i64(0):s.i32(0)}case 26:return this.currentType=p.bool,s.i32(1);case 14:return this.currentType=p.bool,s.i32(0);case 25:{let c=l.signature.thisType;if(!c&&this.options.hasFeature(65536)){let _=a.lookupLocal(C.this_);if(_||(_=a.lookupLocalInOuter(C.this_)),_&&_.isCaptured&&_.envSlotIndex>=0)return a.set(64),this.currentType=_.type,this.compileClosureLoad(_,e)}if(!c)return this.error(2332,e.range),this.currentType=this.options.usizeType,s.unreachable();if(l.is(524288)&&(a.is(65536)&&this.error(2333,e.range),!(n&32))){let _=l.parent;assert(_.kind==7),this.checkFieldInitialization(_,e)}let f=assert(a.lookupLocal(C.this_));return a.set(64),this.currentType=c,s.local_get(f.index,c.toRef())}case 24:{if(l.is(524288)&&(a.is(65536)?this.error(2336,e.range):a.is(128)||this.error(17011,e.range)),a.isInline){let c=a.lookupLocal(C.this_);if(c){let _=assert(c.type.getClass()).base;if(_)return this.currentType=_.type,s.local_get(c.index,_.type.toRef())}}if(l.is(262144)){let c=assert(l.parent);assert(c.kind==7);let _=c.base;if(_){let h=_.type;return this.currentType=h,s.local_get(0,h.toRef())}}return this.error(2335,e.range),this.currentType=this.options.usizeType,s.unreachable()}}this.maybeCompileEnclosingSource(e);let o=this.currentParent;o||(o=l);let u=this.resolver.lookupIdentifierExpression(e,a,o);if(!u)return this.currentType==p.void&&(this.currentType=p.i32),s.unreachable();switch(u.kind){case 1:{let c=u,f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,r,n);let _=c.index;if(!c.declaredByFlow(a))return c.isCaptured&&c.envSlotIndex>=0?(this.currentType=f,this.compileClosureLoad(c,e)):(this.error(100,e.range,"Closures"),s.unreachable());let h=a.sourceFunction;if(c.isCaptured&&c.envSlotIndex>=0&&h.envLocal)return this.currentType=f,this.compileClosureLoad(c,e);a.isLocalFlag(_,8)||this.error(2454,e.range,c.name),assert(_>=0);let m=a.isLocalFlag(_,4,!1);f.isNullableReference&&m&&(!f.isExternalReference||this.options.hasFeature(1024))?this.currentType=f.nonNullableType:this.currentType=f,c.isCaptured||(c.wasAccessedAsLocal=!0);let x=s.local_get(_,f.toRef());return m&&f.isNullableExternalReference&&this.options.hasFeature(1024)&&(x=s.ref_as_nonnull(x)),x}case 0:{let c=u;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(assert(f!=p.void),c.hasDecorator(512))return this.compileIdentifierExpressionBuiltin(c,e,r);if(c.is(33554432))return this.compileInlineConstant(c,r,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=u;return u.is(8388608)?(this.currentType=p.i32,c.is(33554432)?(assert(c.constantValueKind==1),s.i32(i64_low(c.constantIntegerValue))):s.global_get(c.internalName,L.I32)):(this.error(2651,e.range),this.currentType=p.i32,s.unreachable())}case 4:{let c=u,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null,pe(a.contextualTypeArguments));if(!_||!this.compileFunction(_))return s.unreachable();if(_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),this.currentType=_.type,s.unreachable();if(r.isExternalReference)return this.currentType=p.func,s.ref_func(_.internalName,Qn(_.type));let h=this.ensureRuntimeFunction(_);return this.currentType=_.signature.type,this.options.isWasm64?s.i64(i64_low(h),i64_high(h)):s.i32(i64_low(h))}}return this.error(234,e.range),s.unreachable()}compileIdentifierExpressionBuiltin(e,r,n){e.hasDecorator(2048)&&this.checkUnsafe(r,e.identifierNode);let s=e.internalName;return assert(lt.has(s)),assert(lt.get(s))(new us(this,e,n,r))}compileInstanceOfExpression(e,r,n){let s=this.currentFlow,a=e.isType;if(a.kind==1){let o=a;if(!(o.isNullable||o.hasTypeArguments)){let u=this.resolver.resolveTypeName(o.name,s,s.sourceFunction,1);if(u&&u.kind==6){let c=u;if(c.is(65536))return this.makeInstanceofClass(e,c)}}}let l=this.resolver.resolveType(e.isType,s,s.sourceFunction,pe(s.contextualTypeArguments));return l?this.makeInstanceofType(e,l):(this.currentType=p.bool,this.module.unreachable())}makeInstanceofType(e,r){let n=this.module,s=this.currentFlow,a=this.compileExpression(e.expression,r),l=this.currentType;if(this.currentType=p.bool,r.isValue)return n.maybeDropCondition(a,n.i32(l==r?1:0));if(l.isValue)return n.maybeDropCondition(a,n.i32(0));let o=l.toRef();if(l.isNullableReference&&!r.isNullableReference){if(l.nonNullableType.isAssignableTo(r))return n.binary(o==L.I64?41:16,a,this.makeZero(l));if(l.nonNullableType.hasSubtypeAssignableTo(r))if(l.isUnmanaged||r.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),r.toString());else{this.options.pedantic&&this.pedantic(903,e.range);let c=s.getTempLocal(l).index;return n.if(n.unary(o==L.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(r.classReference),[n.local_get(c,o)],L.I32))}}else{if(l.isAssignableTo(r))return n.maybeDropCondition(a,n.i32(1));if(l.hasSubtypeAssignableTo(r))if(l.isUnmanaged||r.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),r.toString());else{let c=s.getTempLocal(l).index;return n.if(n.unary(o==L.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(r.classReference),[n.local_get(c,o)],L.I32))}}return n.maybeDropCondition(a,n.i32(0))}prepareInstanceOf(e){let r=`~instanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,r);let s=this.module;return s.addFunction(r,this.options.sizeTypeRef,L.I32,null,s.unreachable()),r}finalizeInstanceOf(e,r){let n=this.program,s=this.module,a=this.options.sizeTypeRef,l=new Array;l.push(s.local_set(1,s.load(4,!1,s.binary(a==L.I64?26:1,s.local_get(0,a),s.i32(n.totalOverhead-n.OBJECTInstance.offsetof("rtId"))),L.I32),!1));let o;if(e.isInterface)o=e.implementers;else{o=new Set,o.add(e);let u=e.extenders;if(u)for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let h=c[f];o.add(h)}}if(o)for(let u=Set_values(o),c=0,f=u.length;c<f;++c){let _=u[c];l.push(s.br("is_instance",s.binary(15,s.local_get(1,L.I32),s.i32(_.id))))}l.push(s.return(s.i32(0))),l[0]=s.block("is_instance",l,L.None),l.length=1,l.push(s.i32(1)),s.removeFunction(r),s.addFunction(r,a,L.I32,[L.I32],s.block(null,l,L.I32))}makeInstanceofClass(e,r){let n=this.module,s=this.compileExpression(e.expression,p.auto),a=this.currentType,l=a.toRef();this.currentType=p.bool;let o=a.getClass();if(o){if(o.extendsPrototype(r))return a.isNullableReference?n.binary(l==L.I64?41:16,s,this.makeZero(a)):n.maybeDropCondition(s,n.i32(1));if(r.extends(o.prototype)){let f=this.currentFlow.getTempLocal(a).index;return n.if(n.unary(l==L.I64?21:20,n.local_tee(f,s,a.isManaged)),n.i32(0),n.call(this.prepareAnyInstanceOf(r),[n.local_get(f,l)],L.I32))}}return n.maybeDropCondition(s,n.i32(0))}prepareAnyInstanceOf(e){let r=`~anyinstanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,r);let s=this.module;return s.addFunction(r,this.options.sizeTypeRef,L.I32,null,s.unreachable()),r}finalizeAnyInstanceOf(e,r){let n=this.module,s=this.options.sizeTypeRef,a=new Array,l=e.instances;if(l){let o=this.program;a.push(n.local_set(1,n.load(4,!1,n.binary(s==L.I64?26:1,n.local_get(0,s),n.i32(o.totalOverhead-o.OBJECTInstance.offsetof("rtId"))),L.I32),!1));let u=new Set;for(let c=Map_values(l),f=0,_=c.length;f<_;++f){let h=c[f];if(h.isInterface){let m=h.implementers;if(m)for(let x=Set_values(m),g=0,A=x.length;g<A;++g){let I=x[g];u.add(I)}}else{u.add(h);let m=h.extenders;if(m)for(let x=Set_values(m),g=0,A=x.length;g<A;++g){let I=x[g];u.add(I)}}}for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let h=c[f];a.push(n.br("is_instance",n.binary(15,n.local_get(1,L.I32),n.i32(h.id))))}}a.push(n.return(n.i32(0))),a[0]=n.block("is_instance",a,L.None),a.length=1,a.push(n.i32(1)),n.removeFunction(r),n.addFunction(r,s,L.I32,[L.I32],n.block(null,a,L.I32))}compileLiteralExpression(e,r,n,s=!1){let a=this.module;switch(e.literalKind){case 5:return assert(!s),this.compileArrayLiteral(e,r,n);case 0:{let l=e.value;return s&&(l=-l),r==p.f32?a.f32(l):(this.currentType=p.f64,a.f64(l))}case 1:{let l=e,o=this.resolver.determineIntegerLiteralType(l,s,r);this.currentType=o;let u=l.value,c=1;switch(s&&(o.isFloatValue?c=-1:u=i64_neg(u)),o.kind){case 5:if(!this.options.isWasm64)return a.i32(i64_low(u));case 4:return a.i64(i64_low(u),i64_high(u));case 10:if(!this.options.isWasm64)return a.i32(i64_low(u));case 9:return a.i64(i64_low(u),i64_high(u));case 11:return a.f32(c*i64_to_f32(u));case 12:return a.f64(c*i64_to_f64(u));default:return a.i32(i64_low(u))}}case 2:return assert(!s),this.compileStringLiteral(e,n);case 3:return assert(!s),this.compileTemplateLiteral(e,n);case 6:return assert(!s),this.compileObjectLiteral(e,r);case 4:return this.error(100,e.range,"Regular expressions"),this.currentType=r,a.unreachable()}return assert(!1),a.unreachable()}compileStringLiteral(e,r){return this.ensureStaticString(e.value)}compileTemplateLiteral(e,r){let n=e.tag,s=e.parts,a=s.length,l=e.expressions,o=l.length;assert(o==a-1);let u=this.module,c=this.program.stringInstance,f=c.type;if(!n){if(a==1)return this.ensureStaticString(s[0]);if(a==2){let Y=l[0],te=s[0].length,j=s[1].length;if(!te&&!j)return this.makeToString(this.compileExpression(Y,f),this.currentType,Y);let re=te!=0;if(re^j!=0){let H,ue,be=this.makeToString(this.compileExpression(Y,f),this.currentType,Y);re?(H=this.ensureStaticString(s[0]),ue=be):(H=be,ue=this.ensureStaticString(s[1]));let dr=assert(c.getMethod("concat"));return this.makeCallDirect(dr,[H,ue],Y)}}if(a==3&&!s[0].length&&!s[1].length&&!s[2].length){let Y=l[0],te=l[1],j=this.makeToString(this.compileExpression(Y,f),this.currentType,Y),re=this.makeToString(this.compileExpression(te,f),this.currentType,te),H=assert(c.getMethod("concat"));return this.makeCallDirect(H,[j,re],e)}let E=new Array(o),k=new Array;s[0].length>0&&k.push(this.ensureStaticString(s[0]));for(let Y=1;Y<a;++Y)E[Y-1]=k.length,k.push(u.usize(0)),s[Y].length>0&&k.push(this.ensureStaticString(s[Y]));let F=assert(this.resolver.resolveClass(this.program.staticArrayPrototype,[f])),R=this.addStaticBuffer(f,k,F.id);this.program.OBJECTInstance.writeField("gcInfo",3,R.buffer,0);let M=i64_add(R.offset,i64_new(this.program.totalOverhead)),z=assert(F.getMethod("join")),D=assert(F.lookupOverload(2,!0)),W=new Array(2*o+1),q=new Array(o),ee=this.currentFlow;for(let Y=0;Y<o;++Y){let te=l[Y],j=ee.getTempLocal(f);q[Y]=j,W[Y]=u.local_set(j.index,this.makeToString(this.compileExpression(te,f),this.currentType,te),!0)}for(let Y=0;Y<o;++Y)W[o+Y]=this.makeCallDirect(D,[u.usize(M),u.i32(E[Y]),u.local_get(q[Y].index,f.toRef())],e);return W[2*o]=this.makeCallDirect(z,[u.usize(M),this.ensureStaticString("")],e),u.flatten(W,f.toRef())}let _=this.program.templateStringsArrayInstance,h=_,m=this.resolver.lookupExpression(n,this.currentFlow,p.auto,1);if(m)switch(m.kind){case 4:{let E=this.resolver.resolveFunction(m,null,new Map,1);if(!E)break;m=E}case 5:{let k=m.signature.parameterTypes;if(k.length){let F=k[0].getClass();F&&!F.extendsPrototype(_.prototype)&&(h=assert(this.resolver.resolveClass(this.program.arrayPrototype,[f])))}break}}let x=e.rawParts;assert(x.length==a);let g=new Array(a);for(let E=0;E<a;++E)g[E]=this.ensureStaticString(s[E]);let A;if(h==_){let E=new Array(a);for(let F=0;F<a;++F)E[F]=this.ensureStaticString(x[F]);A=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,g),h);let k=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,E));h.writeField("raw",i64_add(k.offset,i64_new(this.program.totalOverhead)),A.buffer)}else A=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,g),h);let I=l.slice();return I.unshift(G.createCompiledExpression(u.usize(i64_add(A.offset,i64_new(this.program.totalOverhead))),h.type,fe.native.range)),this.error(100,e.range,"Tagged template literals"),this.compileCallExpressionLike(n,null,I,e.range,f)}compileArrayLiteral(e,r,n){let s=this.module,a=this.currentFlow,l=this.program,o=r.getClass();if(o&&o.extendsPrototype(l.staticArrayPrototype))return this.compileStaticArrayLiteral(e,r,n);let u=this.resolver.lookupExpression(e,a,this.currentType);if(!u)return s.unreachable();assert(u.kind==7);let c=u,f=c.type,_=c.getTypeArgumentsTo(l.arrayPrototype)[0],h=a.getTempLocal(this.options.usizeType),m=e.elementExpressions,x=m.length,g=new Array(x),A=!_.isExternalReference;for(let M=0;M<x;++M){let z=m[M];if(z.kind!=20){let D=this.compileExpression(z,_,1);if(se(D)!=_.toRef())A=!1;else{let W=s.runExpression(D,1);W?D=W:A=!1}g[M]=D}else g[M]=this.makeZero(_)}if(A){let M=l.totalOverhead,z=this.addStaticBuffer(_,g),D=i64_add(z.offset,i64_new(M));if(n&16){let W=this.addStaticArrayHeader(_,z),q=i64_add(W.offset,i64_new(M));return this.currentType=f,l.options.isWasm64?this.module.i64(i64_low(q),i64_high(q)):this.module.i32(i64_low(q))}else return this.makeNewArray(c,x,D,e)}let I=c.lookupOverload(2,!0);if(!I)return this.error(2542,e.range,c.internalName),this.currentType=f,s.unreachable();let E=f.toRef(),k=new Array;k.push(s.local_set(h.index,this.makeNewArray(c,x,i64_new(0),e),f.isManaged));let F=assert(c.getMember("dataStart"));assert(F.kind==10);let R=F.instance;if(!R)return s.unreachable();assert(R.isField&&R.memoryOffset>=0);for(let M=0;M<x;++M)k.push(s.call(I.internalName,[s.local_get(h.index,E),s.i32(M),g[M]],L.None));return k.push(s.local_get(h.index,E)),x&&this.compileFunction(I),this.currentType=f,s.flatten(k,E)}makeNewArray(e,r,n,s){let a=this.program,l=this.module;assert(!e.extendsPrototype(a.staticArrayPrototype));let o=e.getArrayValueType(),u=this.makeCallDirect(a.newArrayInstance,[l.i32(r),a.options.isWasm64?l.i64(o.alignLog2):l.i32(o.alignLog2),l.i32(e.id),a.options.isWasm64?l.i64(i64_low(n),i64_high(n)):l.i32(i64_low(n))],s);return this.currentType=e.type,u}compileStaticArrayLiteral(e,r,n){let s=this.module,a=this.currentFlow,l=this.program,o=assert(r.getClass()),u=o.type,f=assert(o.getTypeArgumentsTo(l.staticArrayPrototype))[0],_=a.getTempLocal(this.options.usizeType),h=e.elementExpressions,m=h.length,x=new Array(m),g=!f.isExternalReference;for(let R=0;R<m;++R){let M=h[R];if(M.kind!=20){let z=this.compileExpression(M,f,1),D=s.runExpression(z,1);D?z=D:g=!1,x[R]=z}else x[R]=this.makeZero(f)}let A=this.options.isWasm64,I=x.length<<f.alignLog2;if(g){let R=this.addStaticBuffer(f,x,o.id),M=i64_add(R.offset,i64_new(l.totalOverhead));if(n&16){let z=this.options.isWasm64?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M));return this.currentType=u,z}else{let z=this.makeCallDirect(l.newBufferInstance,[A?s.i64(I):s.i32(I),s.i32(o.id),A?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M))],e);return this.currentType=u,z}}let E=o.lookupOverload(2,!0);if(!E)return this.error(2542,e.range,o.internalName),this.currentType=u,s.unreachable();let k=u.toRef(),F=new Array;F.push(s.local_set(_.index,this.makeCallDirect(l.newBufferInstance,[A?s.i64(I):s.i32(I),s.i32(o.id)],e),u.isManaged));for(let R=0;R<m;++R)F.push(s.call(E.internalName,[s.local_get(_.index,k),s.i32(R),x[R]],L.None));return F.push(s.local_get(_.index,k)),m&&this.compileFunction(E),this.currentType=u,s.flatten(F,k)}compileObjectLiteral(e,r){let n=this.module,s=r.getClass();if(!s)return this.error(2322,e.range,"<object>",r.toString()),n.unreachable();let a=s.type;if(this.currentType=a.nonNullableType,s.kind==9)return this.error(100,e.range,"Interface hidden classes"),n.unreachable();if(s.is(128))return this.error(2511,e.range),n.unreachable();let l=s.prototype.constructorPrototype;if(l)return this.errorRelated(216,e.range,l.identifierNode.range,a.toString()),n.unreachable();a.isManaged||this.checkUnsafe(e,Nt(6,s.decoratorNodes));let u=e.names,c=u.length,f=e.values,_=s.members,h=!1,m=new Array,g=this.currentFlow.getTempLocal(a),A=a.toRef();assert(c==f.length);let I=new Set;if(_)for(let F=Map_keys(_),R=0,M=F.length;R<M;++R){let z=F[R],D=assert(_.get(z));if(D&&D.kind==10){let W=D.instance;W&&W.isField&&I.add(W)}}let E=new Array;for(let F=0;F<c;++F){let R=u[F].text,M=s.getMember(R);if(!M||M.kind!=10){this.error(2339,u[F].range,R,a.toString()),h=!0;continue}if(M.is(512)){this.error(2341,u[F].range,R,a.toString()),h=!0;continue}if(M.is(1024)){this.error(2445,u[F].range,R,a.toString()),h=!0;continue}let z=this.resolver.resolveProperty(M);if(!z)continue;let D=z.setterInstance;if(!D){this.error(2540,u[F].range,R,a.toString()),h=!0;continue}if(I.delete(z),!z.isField){E.push(z);continue}let W=z.type,q=this.makeCallDirect(D,[n.local_get(g.index,A),this.compileExpression(f[F],W,1)],D.identifierNode,!0);this.currentType!=p.void&&(q=n.drop(q)),m.push(q)}for(let F=0,R=E.length;F<R;++F){let M=E[F],z=assert(M.setterInstance);m.push(this.makeCallDirect(z,[n.local_get(g.index,A),this.compileExpression(f[F],M.type,1)],z.identifierNode))}if(this.currentType=a.nonNullableType,h)return n.unreachable();for(let F=Set_values(I),R=0,M=F.length;R<M;++R){let z=F[R];assert(z.isField);let D=z.type;if(!z.initializerNode){if(D.isReference&&!D.isNullableReference){this.error(2741,e.range,z.name,"<object>",a.toString()),h=!0;continue}switch(D.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{m.push(n.store(D.byteSize,n.local_get(g.index,A),this.makeZero(D),D.toRef(),z.memoryOffset));continue}}this.error(2741,e.range,z.name,"<object>",a.toString()),h=!0}}if(h)return n.unreachable();let k=this.ensureConstructor(s,e);return m.unshift(n.local_set(g.index,this.compileInstantiate(k,[],0,e),a.isManaged)),m.push(n.local_get(g.index,A)),this.currentType=a.nonNullableType,n.flatten(m,A)}compileNewExpression(e,r,n){let s=this.module,a=this.currentFlow,l=this.resolver.resolveTypeName(e.typeName,a,a.sourceFunction);if(!l)return s.unreachable();if(l.kind!=6)return this.error(2351,e.typeName.range),this.module.unreachable();if(l.is(128))return this.error(2511,e.typeName.range),this.module.unreachable();let o=l,u=null,c=e.typeArguments,f;if(!c&&(f=r.classReference)&&f.prototype==o&&f.is(65536)?u=this.resolver.resolveClass(o,f.typeArguments,pe(a.contextualTypeArguments)):u=this.resolver.resolveClassInclTypeArguments(o,c,a,a.sourceFunction.parent,pe(a.contextualTypeArguments),e),!u)return s.unreachable();r==p.void&&(n|=8);let _=this.ensureConstructor(u,e);return _.hasDecorator(64)||this.checkFieldInitialization(u,e),this.compileInstantiate(_,e.args,n,e)}ensureConstructor(e,r){let n=e.constructorInstance;if(n){if(n.is(8388608))return n;n.hasDecorator(64)||this.compileFunction(n)}else{let s=e.base,a=pe(e.contextualTypeArguments);if(s){let E=this.ensureConstructor(s,r);this.checkFieldInitialization(s,r),n=new gt(C.constructor,new Xe(C.constructor,e,E.declaration.clone()),null,qe.create(this.program,E.signature.parameterTypes,e.type,e.type,E.signature.requiredParameters,E.signature.hasRest),a)}else n=new gt(C.constructor,new Xe(C.constructor,e,this.program.makeNativeFunctionDeclaration(C.constructor,786432)),null,qe.create(this.program,[],e.type,e.type),a);n.set(8388608),n.prototype.setResolvedInstance("",n),e.is(1048576)&&n.set(1048576),e.constructorInstance=n;let l=e.members;l||(e.members=l=new Map),l.set(C.constructor,n.prototype);let o=this.currentFlow,u=n.flow;this.currentFlow=u;let c=n.signature,f=this.module,_=this.options.sizeTypeRef,h=new Array;if(h.push(this.makeConditionalAllocation(e,0)),s){let E=c.parameterTypes,k=E.length,F=new Array(1+k);F[0]=f.local_get(0,_);for(let R=1;R<=k;++R)F[R]=f.local_get(R,E[R-1].toRef());h.push(f.local_set(0,this.makeCallDirect(assert(s.constructorInstance),F,r,!1),s.type.isManaged))}this.makeFieldInitializationInConstructor(e,h),h.push(f.local_get(0,_)),this.currentFlow=o;let m=n.localsByIndex,x=new Array,g=1+c.parameterTypes.length,A=m.length;if(A>g)for(let E=g;E<A;++E)x.push(m[E].type.toRef());let I=f.addFunction(n.internalName,c.paramRefs,c.resultRefs,x,f.flatten(h,_));n.finalize(f,I)}return n}checkFieldInitialization(e,r=null){if(e.didCheckFieldInitialization)return;e.didCheckFieldInitialization=!0;let n=assert(e.constructorInstance);this.checkFieldInitializationInFlow(e,n.flow,r)}checkFieldInitializationInFlow(e,r,n=null){let s=e.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=10||u.parent!=e)continue;let c=u.instance;!c||!c.isField||(!c.initializerNode&&!r.isThisFieldFlag(c,1)?c.is(16384)||(n?this.errorRelated(2564,c.declaration.name.range,n.range,c.internalName):this.error(2564,c.declaration.name.range,c.internalName)):c.is(16384)&&(c.type.isReference?this.warning(233,c.identifierNode.range,c.internalName):this.pedantic(906,c.identifierNode.range)))}}compileInstantiate(e,r,n,s){assert(e.is(524288));let a=e.parent;assert(a.kind==7);let l=a;(l.type.isUnmanaged||e.hasDecorator(2048))&&this.checkUnsafe(s);let o=this.compileCallDirect(e,r,s,this.makeZero(this.options.usizeType),n);return se(o)!=L.None&&(this.currentType=l.type),o}compilePropertyAccessExpression(e,r,n){let s=this.module,a=this.currentFlow;this.maybeCompileEnclosingSource(e);let l=this.resolver,o=l.lookupExpression(e,a,r);if(!o)return s.unreachable();let u=l.currentThisExpression;switch(o.hasDecorator(2048)&&this.checkUnsafe(e),o.kind){case 0:{let c=o;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,r,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=o,f=assert(c.parent);assert(f.kind==2);let _=f;return this.compileEnum(_)?(this.currentType=p.i32,c.is(33554432)?(assert(c.constantValueKind==1),this.compileInlineConstant(c,r,n)):(assert(c.type==p.i32),s.global_get(c.internalName,L.I32))):(this.currentType=p.i32,this.module.unreachable())}case 10:{let c=o,f=this.resolver.resolveProperty(c);if(!f)return s.unreachable();o=f}case 11:{let c=o;c.isField&&a.sourceFunction.is(524288)&&assert(u).kind==25&&!a.isThisFieldFlag(c,1)&&!c.is(16384)&&this.errorRelated(2565,e.range,c.identifierNode.range,c.internalName);let f=c.getterInstance;if(!f)return s.unreachable();let _=0;return f.is(262144)&&(_=this.compileExpression(assert(u),assert(f.signature.thisType),33)),this.compileCallDirect(f,[],e,_)}case 4:{let c=o,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null);if(!_||!this.compileFunction(_))return s.unreachable();if(this.currentType=_.type,_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),s.unreachable();let h=this.ensureRuntimeFunction(_);return this.options.isWasm64?s.i64(i64_low(h),i64_high(h)):s.i32(i64_low(h))}}return this.error(234,e.range),this.module.unreachable()}compileTernaryExpression(e,r,n){let s=this.module,a=e.ifThen,l=e.ifElse,o=this.compileExpression(e.condition,p.bool),u=this.makeIsTrueish(o,this.currentType,e.condition),c=this.evaluateCondition(u);if(c==1)return s.maybeDropCondition(u,this.compileExpression(a,r));if(c==2)return s.maybeDropCondition(u,this.compileExpression(l,r));let f=this.currentFlow,_=f.forkThen(o);this.currentFlow=_;let h=this.compileExpression(a,r),m=this.currentType,x=f.forkElse(o);this.currentFlow=x;let g=this.compileExpression(l,r==p.auto?m:r),A=this.currentType;if(r==p.void)m!=p.void&&(h=s.drop(h),m=p.void),A!=p.void&&(g=s.drop(g),A=p.void),this.currentType=p.void;else{let I=p.commonType(m,A,r);if(!I)return this.error(2322,l.range,A.toString(),m.toString()),this.currentType=r,s.unreachable();h=this.convertExpression(h,m,I,!1,a),m=I,g=this.convertExpression(g,A,I,!1,l),A=I,this.currentType=I}return f.inheritAlternatives(_,x),this.currentFlow=f,s.if(u,h,g)}compileUnaryPostfixExpression(e,r,n){let s=this.module,a=this.currentFlow,l=this.compileExpression(e.operand,r.exceptVoid,0),o,u=null;r!=p.void?(u=a.getTempLocal(this.currentType),o=s.local_tee(u.index,l,this.currentType.isManaged)):o=l;let c;switch(e.operator){case 87:{let x=this.currentType.getClassOrWrapper(this.program);if(x){let g=x.lookupOverload(29);if(g){let A=g.is(262144);if(u&&!A&&(o=l,u=null),c=this.compileUnaryOverload(g,e.operand,o,e),A)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(0,o,s.i32(1));break}case 4:case 9:{c=s.binary(25,o,s.i64(1));break}case 5:case 10:{c=s.binary(217,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(50,o,s.f32(1));break}case 12:{c=s.binary(63,o,s.f64(1));break}default:return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable()}break}case 88:{let x=this.currentType.getClassOrWrapper(this.program);if(x){let g=x.lookupOverload(30);if(g){let A=g.is(262144);if(u&&!A&&(o=l,u=null),c=this.compileUnaryOverload(g,e.operand,o,e),A)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(1,o,s.i32(1));break}case 4:case 9:{c=s.binary(26,o,s.i64(1));break}case 5:case 10:{c=s.binary(218,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(51,o,s.f32(1));break}case 12:{c=s.binary(64,o,s.f64(1));break}default:return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable()}break}default:return assert(!1),s.unreachable()}let f=this.resolver,_=f.lookupExpression(e.operand,a);if(!_)return s.unreachable();if(!u)return this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);let h=this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);this.currentType=u.type;let m=u.type.toRef();return s.block(null,[h,s.local_get(u.index,m)],m)}compileUnaryPrefixExpression(e,r,n){let s=this.module,a=!1,l;switch(e.operator){case 81:{l=this.compileExpression(e.operand,r.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(23);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"+",this.currentType.toString()),s.unreachable();break}case 82:{let c=e.operand;if(c.isNumericLiteral){l=this.compileLiteralExpression(c,r,0,!0),this.options.sourceMap&&this.addDebugLocation(l,e.range);break}l=this.compileExpression(e.operand,r.exceptVoid,0);let f=this.currentType.getClassOrWrapper(this.program);if(f){let _=f.lookupOverload(24);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"-",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,s.i32(0),l);break}case 4:case 9:{l=s.binary(26,s.i64(0),l);break}case 5:case 10:{l=s.binary(218,this.makeZero(this.currentType),l);break}case 11:{l=s.unary(6,l);break}case 12:{l=s.unary(7,l);break}default:this.error(2469,e.range,"-",this.currentType.toString()),l=s.unreachable()}break}case 87:{a=!0,l=this.compileExpression(e.operand,r.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(27);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(0,l,this.module.i32(1));break}case 4:case 9:{l=s.binary(25,l,s.i64(1));break}case 5:case 10:{l=s.binary(217,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(50,l,s.f32(1));break}case 12:{l=s.binary(63,l,s.f64(1));break}default:this.error(2469,e.range,"++",this.currentType.toString()),l=s.unreachable()}break}case 88:{a=!0,l=this.compileExpression(e.operand,r.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(28);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,l,s.i32(1));break}case 4:case 9:{l=s.binary(26,l,s.i64(1));break}case 5:case 10:{l=s.binary(218,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(51,l,s.f32(1));break}case 12:{l=s.binary(64,l,s.f64(1));break}default:this.error(2469,e.range,"--",this.currentType.toString()),l=s.unreachable()}break}case 95:{l=this.compileExpression(e.operand,r.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(25);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}l=s.unary(20,this.makeIsTrueish(l,this.currentType,e.operand)),this.currentType=p.bool;break}case 96:{l=this.compileExpression(e.operand,r==p.void?p.i32:r.isFloatValue?p.i64:r,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(26);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"~",this.currentType.toString()),s.unreachable();switch(l=this.convertExpression(l,this.currentType,this.currentType.intType,!1,e.operand),this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(9,l,s.i32(-1));break}case 4:case 9:{l=s.binary(34,l,s.i64(-1,-1));break}case 5:case 10:{l=s.binary(226,l,this.makeNegOne(this.currentType));break}default:this.error(2469,e.range,"~",this.currentType.toString()),l=s.unreachable()}break}case 56:return this.compileTypeof(e,r,n);case 69:return this.error(100,e.range,"Spread operator"),s.unreachable();default:return assert(!1),s.unreachable()}if(!a)return l;let o=this.resolver,u=o.lookupExpression(e.operand,this.currentFlow);return u?this.makeAssignment(u,l,this.currentType,e.operand,o.currentThisExpression,o.currentElementExpression,r!=p.void):s.unreachable()}compileTypeof(e,r,n){let s=e.operand,a=0,l=this.program.stringInstance,o;if(s.kind==19)o="object";else{let u=this.resolver.lookupExpression(s,this.currentFlow,p.auto,1);if(u)switch(u.kind){case 6:case 12:case 2:{o="object";break}case 4:{o="function";break}default:{a=this.compileExpression(s,p.auto);let c=this.currentType;if(a=this.convertExpression(a,c,p.void,!0,s),c.isReference)if(c.getSignature())o="function";else{let _=c.getClass();_?_.prototype==l.prototype?o="string":o="object":o="externref"}else c==p.bool?o="boolean":c.isNumericValue?o="number":o="undefined";break}}else{switch(s.kind){case 7:break;case 22:case 13:if(s=(s.kind==22,s.expression),!this.resolver.resolveExpression(s,this.currentFlow,p.auto,0))return this.currentType=l.type,this.module.unreachable();default:a=this.compileExpression(s,p.auto),a=this.convertExpression(a,this.currentType,p.void,!0,s)}o="undefined"}}return this.currentType=l.type,a?this.module.block(null,[a,this.ensureStaticString(o)],this.options.sizeTypeRef):this.ensureStaticString(o)}ensureSmallIntegerWrap(e,r){let n=this.module,s=this.currentFlow;switch(r.kind){case 0:{s.canOverflow(e,r)&&(e=n.binary(16,e,n.i32(0)));break}case 1:{s.canOverflow(e,r)&&(e=this.options.hasFeature(1)?n.unary(47,e):n.binary(11,n.binary(10,e,n.i32(24)),n.i32(24)));break}case 2:{s.canOverflow(e,r)&&(e=this.options.hasFeature(1)?n.unary(48,e):n.binary(11,n.binary(10,e,n.i32(16)),n.i32(16)));break}case 6:{s.canOverflow(e,r)&&(e=n.binary(7,e,n.i32(255)));break}case 7:{s.canOverflow(e,r)&&(e=n.binary(7,e,n.i32(65535)));break}}return e}addDebugLocation(e,r){let n=this.currentFlow.targetFunction,s=r.source;s.debugInfoIndex<0&&(s.debugInfoIndex=this.module.addDebugInfoFile(s.normalizedPath)),n.debugLocations.set(e,r)}checkSignatureSupported(e,r){let n=!0,s=r.explicitThisType;s&&(this.program.checkTypeSupported(assert(e.thisType),s)||(n=!1));let a=e.parameterTypes,l=r.parameters;for(let o=0,u=a.length;o<u;++o){let c;l.length>o?c=l[o]:c=r,this.program.checkTypeSupported(a[o],c)||(n=!1)}return this.program.checkTypeSupported(e.returnType,r.returnType)||(n=!1),n}evaluateCondition(e){let r=se(e);if(r==L.Unreachable)return 0;assert(r==L.I32);let s=this.module.runExpression(e,0);return s?ne(s)?1:2:0}makeZero(e){let r=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return r.i32(0);case 5:case 10:if(e.size!=64)return r.i32(0);case 4:case 9:return r.i64(0);case 11:return r.f32(0);case 12:return r.f64(0);case 13:return r.v128(Ap);case 15:case 14:case 16:case 17:case 18:case 19:case 21:case 22:case 23:case 24:return e.is(512)?r.ref_null(e.toRef()):(assert(!1),r.unreachable());case 20:return e.is(512)?r.ref_null(e.toRef()):r.i31_new(r.i32(0))}}makeOne(e){let r=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return r.i32(1);case 5:case 10:if(e.size!=64)return r.i32(1);case 4:case 9:return r.i64(1);case 11:return r.f32(1);case 12:return r.f64(1);case 20:return r.i31_new(r.i32(1))}}makeNegOne(e){let r=this.module;switch(e.kind){default:assert(!1);case 1:case 2:case 3:case 6:case 7:case 8:return r.i32(-1);case 5:case 10:if(e.size!=64)return r.i32(-1);case 4:case 9:return r.i64(-1,-1);case 11:return r.f32(-1);case 12:return r.f64(-1);case 13:return r.v128(Ep);case 20:return r.i31_new(r.i32(-1))}}makeIsTrueish(e,r,n){let s=this.module;switch(r.kind){case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,r);case 0:case 3:case 8:return e;case 4:case 9:return s.binary(41,e,s.i64(0));case 5:case 10:return r.size==64?s.binary(41,e,s.i64(0)):e;case 11:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(53,s.unary(10,s.unary(8,e))))):s.binary(20,s.binary(1,s.binary(10,s.unary(33,e),s.i32(1)),s.i32(2)),s.i32(4278190078))}case 12:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(55,s.unary(11,s.unary(9,e))))):s.binary(45,s.binary(26,s.binary(35,s.unary(34,e),s.i64(1)),s.i64(2)),s.i64(4294967294,4292870143))}case 13:return s.unary(67,e);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return s.unary(20,s.ref_is_null(e));case 25:default:return this.error(1345,n.range,r.toString()),s.i32(0)}}makeToString(e,r,n){let s=this.module,a=this.program.stringInstance.type;if(r==a)return e;let l=r.getClassOrWrapper(this.program);if(l){let o=l.getMethod("toString");if(o){let u=o.signature;if(!this.checkCallSignature(u,0,!0,n))return this.currentType=a,s.unreachable();if(!r.isStrictlyAssignableTo(assert(u.thisType))){if(!r.is(512))return this.errorRelated(2685,n.range,o.identifierAndSignatureRange),this.currentType=a,s.unreachable();let f=this.currentFlow.getTempLocal(r);return s.if(s.local_tee(f.index,e,r.isManaged),this.makeToString(s.local_get(f.index,r.toRef()),r.nonNullableType,n),this.ensureStaticString("null"))}let c=u.returnType;return c.isStrictlyAssignableTo(a)?this.makeCallDirect(o,[e],n):(this.errorRelated(2322,n.range,o.identifierAndSignatureRange,c.toString(),a.toString()),this.currentType=a,s.unreachable())}}return this.error(2322,n.range,r.toString(),a.toString()),this.currentType=a,s.unreachable()}makeAllocation(e){let r=this.program;assert(e.program==r);let n=this.module,s=this.options;if(this.currentType=e.type,e.hasDecorator(16)){let a=r.allocInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset)],s.sizeTypeRef)}else{let a=r.newInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset),n.i32(e.id)],s.sizeTypeRef)}}makeConditionalAllocation(e,r){let n=this.module,a=e.type.toRef();return assert(a==this.options.sizeTypeRef),n.if(n.unary(a==L.I64?21:20,n.local_get(r,a)),n.local_set(r,this.makeAllocation(e),e.type.isManaged))}makeFieldInitializationInConstructor(e,r=[]){let n=e.members;if(!n)return r;let s=this.module,a=this.currentFlow,l=a.isInline,o=l?a.lookupLocal(C.this_).index:0,u=this.options.sizeTypeRef,c=null;for(let f=Map_values(n),_=0,h=f.length;_<h;++_){let m=unchecked(f[_]);if(m.kind!=10)continue;let x=m.instance;if(!x||!x.isField||x.getBoundClassOrInterface()!=e)continue;assert(!x.isAny(8));let g=x.prototype,A=g.parameterIndex;if(A<0){c||(c=new Array),c.push(x);continue}let E=x.type.toRef();assert(!g.initializerNode);let k=assert(x.setterInstance),F=this.makeCallDirect(k,[s.local_get(o,u),s.local_get(l?a.lookupLocal(x.name).index:1+A,E)],k.identifierNode,!0);this.currentType!=p.void&&(F=s.drop(F)),r.push(F)}if(c)for(let f=0,_=c.length;f<_;++f){let h=unchecked(c[f]),m=h.type,x=h.prototype,g=x.initializerNode;assert(x.parameterIndex<0);let A=assert(h.setterInstance),I=this.makeCallDirect(A,[s.local_get(o,u),g?this.compileExpression(g,m,1):this.makeZero(m)],h.identifierNode,!0);this.currentType!=p.void&&(I=s.drop(I)),r.push(I)}return this.currentType=p.void,r}makeAbort(e,r){let n=this.program,s=n.abortInstance;if(!s||!this.compileFunction(s))return this.module.unreachable();let a=n.stringInstance,l;return e?l=this.compileExpression(e,a.type,1):l=this.makeZero(a.type),this.makeStaticAbort(l,r)}makeStaticAbort(e,r){let n=this.program,s=this.module,a=n.abortInstance;if(!a||!this.compileFunction(a))return s.unreachable();let l=this.ensureStaticString(r.range.source.normalizedPath),o=r.range,u=o.source;return s.block(null,[s.call(a.internalName,[e,l,s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],L.None),s.unreachable()])}makeRuntimeNonNullCheck(e,r,n){let s=this.module,a=this.currentFlow,o=a.getTempLocal(r).index;a.canOverflow(e,r)||a.setLocalFlag(o,2),a.setLocalFlag(o,4);let u=this.makeStaticAbort(this.ensureStaticString("Unexpected 'null' (not assigned or failed cast)"),n);if(r.isExternalReference){let c=s.local_get(o,r.toRef());this.options.hasFeature(1024)&&(c=s.ref_as_nonnull(c)),e=s.if(s.ref_is_null(s.local_tee(o,e,!1)),u,c)}else e=s.if(s.local_tee(o,e,r.isManaged),s.local_get(o,r.toRef()),u);return this.currentType=r.nonNullableType,e}makeRuntimeDowncastCheck(e,r,n,s){assert(n.isReference&&n.nonNullableType.isAssignableTo(r));let a=this.module,l=this.currentFlow,u=l.getTempLocal(r).index,c=this.makeStaticAbort(this.ensureStaticString("invalid downcast"),s);return!n.isNullableReference||l.isNonnull(e,r)?e=a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_tee(u,e,r.isManaged)],L.I32),a.local_get(u,r.toRef()),c):e=a.if(a.unary(20,a.local_tee(u,e,r.isManaged)),a.usize(0),a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_get(u,r.toRef())],L.I32),a.local_get(u,r.toRef()),c)),this.currentType=n,e}};function Ug(t,i){Zr=i.range.source.simplePath,hr=Ce(t.name,t.parent,t.is(262144),!0);let e=i.overriddenModuleName;if(e&&(Zr=e),!t.hasDecorator(128))return;let r=t.program,n=assert(Nt(9,i.decorators)),s=n.args;if(s&&s.length>0){let a=s[0];a.isLiteralKind(2)?(hr=a.value,s.length>=2&&(a=s[1],a.isLiteralKind(2)?(Zr=hr,hr=a.value,s.length>2&&r.error(2554,n.range,"2",s.length.toString())):r.error(1141,a.range))):r.error(1141,a.range)}else r.error(2555,n.range,"1","0")}var Ki=class t extends Gi{constructor(e,r,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.seenObjectTypes=new Map;this.deferredTypings=new Array;this.esm=r}static build(e,r=!0){return new t(e,r).build()}visitGlobal(e,r){let n=this.sb,s=r.type,a=this.toTypeScriptType(s,1);O(n,this.indentLevel),n.push("/** "),n.push(r.internalName),n.push(` */
|
|
278
|
+
`}var Zr="",hr="",ao=15,Ps=class{constructor(){this.target=1;this.runtime=2;this.debugInfo=!1;this.noAssert=!1;this.exportMemory=!0;this.importMemory=!1;this.initialMemory=0;this.maximumMemory=0;this.sharedMemory=!1;this.zeroFilledMemory=!1;this.importTable=!1;this.exportTable=!1;this.sourceMap=!1;this.uncheckedBehavior=0;this.exportStart=null;this.memoryBase=0;this.tableBase=0;this.globalAliases=null;this.features=ao;this.noUnsafe=!1;this.pedantic=!1;this.lowMemoryLimit=0;this.exportRuntime=!1;this.stackSize=0;this.bundleMajorVersion=0;this.bundleMinorVersion=0;this.bundlePatchVersion=0;this.optimizeLevelHint=0;this.shrinkLevelHint=0;this.basenameHint="output";this.bindingsHint=!1}get isWasm64(){return this.target==2}get usizeType(){return this.target==2?p.usize64:p.usize32}get isizeType(){return this.target==2?p.isize64:p.isize32}get sizeTypeRef(){return this.target==2?L.I64:L.I32}get willOptimize(){return this.optimizeLevelHint>0||this.shrinkLevelHint>0}setFeature(i,e=!0){e?(i&32768&&(i|=1056),i&16384&&(i|=1024),i&1024&&(i|=256),i&4096&&(i|=16),this.features|=i):(i&256&&(i|=1024),i&1024&&(i|=16384),i&16&&(i|=4096),i&1056&&(i|=32768),this.features&=~i)}hasFeature(i){return(this.features&i)!=0}},Ol=(r=>(r[r.Default=0]="Default",r[r.Never=1]="Never",r[r.Always=2]="Always",r))(Ol||{}),Yc=(l=>(l[l.None=0]="None",l[l.ConvImplicit=1]="ConvImplicit",l[l.ConvExplicit=2]="ConvExplicit",l[l.MustWrap=4]="MustWrap",l[l.WillDrop=8]="WillDrop",l[l.PreferStatic=16]="PreferStatic",l[l.IsThis=32]="IsThis",l))(Yc||{}),$c=(o=>(o[o.None=0]="None",o[o.Data=1]="Data",o[o.Stack=2]="Stack",o[o.Heap=4]="Heap",o[o.Rtti=8]="Rtti",o[o.visitGlobals=16]="visitGlobals",o[o.visitMembers=32]="visitMembers",o[o.setArgumentsLength=64]="setArgumentsLength",o))($c||{}),Wi;(r=>(r.DefaultNamespace="env",r.Memory="memory",r.Table="table"))(Wi||={});var Cs;(n=>(n.Memory="memory",n.Table="table",n.argumentsLength="__argumentsLength",n.setArgumentsLength="__setArgumentsLength"))(Cs||={});var Ui=["__new","__pin","__unpin","__collect"],Vi=["__rtti_base"],Bs=class t extends We{constructor(e){super(e.diagnostics);this.currentParent=null;this.currentType=p.void;this.memorySegments=[];this.stringSegments=new Map;this.staticGcObjectOffsets=new Map;this.functionTable=[];this.builtinArgumentsLength=0;this.closureEnvironmentGlobal=0;this.runtimeFeatures=0;this.inlineStack=[];this.lazyFunctions=new Set;this.pendingInstanceOf=new Map;this.overrideStubs=new Set;this.pendingElements=new Set;this.doneModuleExports=new Set;this.hasCustomFunctionExports=!1;this.desiresExportRuntime=!1;this.exceptionTagEnsured=!1;this.f32ModInstance=null;this.f64ModInstance=null;this.f32PowInstance=null;this.f64PowInstance=null;this.i32PowInstance=null;this.i64PowInstance=null;this._reusableCallExpression=null;this.program=e;let r=e.module,n=e.options;n.memoryBase?(this.memoryOffset=i64_new(n.memoryBase),r.setLowMemoryUnused(!1)):!n.lowMemoryLimit&&n.optimizeLevelHint>=2?(this.memoryOffset=i64_new(1024),r.setLowMemoryUnused(!0)):(this.memoryOffset=i64_new(8),r.setLowMemoryUnused(!1));let s=0;n.hasFeature(1)&&(s|=32),n.hasFeature(2)&&(s|=2),n.hasFeature(4)&&(s|=4),n.hasFeature(8)&&(s|=16),n.hasFeature(16)&&(s|=8),n.hasFeature(32)&&(s|=1),n.hasFeature(64)&&(s|=64),n.hasFeature(128)&&(s|=128),n.hasFeature(256)&&(s|=256),n.hasFeature(512)&&(s|=512),n.hasFeature(1024)&&(s|=1024),n.hasFeature(2048)&&(s|=2048),n.hasFeature(4096)&&(s|=4096),n.hasFeature(8192)&&(s|=8192),n.hasFeature(16384)&&(s|=16384),n.hasFeature(32768)&&(s|=131072),r.setFeatures(s);let a=e.makeNativeFunction(d.start,qe.create(e,[],p.void));a.internalName=d.start,this.currentFlow=a.flow,this.currentBody=new Array,this.shadowStack=new ks(this)}get module(){return this.program.module}get options(){return this.program.options}get resolver(){return this.program.resolver}static compile(e){return new t(e).compile()}compile(){let e=this.options,r=this.module,n=this.program,s=this.resolver,a=e.stackSize>0;this.initDummyMemory(),this.program.initialize(),r.setClosedWorld(!0);let l=this.currentFlow.targetFunction;assert(l.internalName==d.start);let o=this.currentBody;assert(o.length==0);let u=n.filesByName;for(let E=Map_values(u),k=0,F=E.length;k<F;++k){let R=unchecked(E[k]);R.source.sourceKind==1&&(this.compileFile(R),this.compileModuleExports(R))}if((this.options.exportRuntime||this.options.bindingsHint&&this.desiresExportRuntime)&&this.options.runtime!=3){for(let E=0,k=Ui.length;E<k;++E){let F=Ui[E],R=n.requireFunction(F);this.compileFunction(R)&&!r.hasExport(F)&&r.addFunctionExport(R.internalName,F)}for(let E=0,k=Vi.length;E<k;++E){let F=Vi[E],R=n.requireGlobal(F);this.compileGlobal(R)&&!r.hasExport(F)&&r.addGlobalExport(R.internalName,F)}}let c=this.lazyFunctions;do{let E=new Array;for(let k=Set_values(c),F=0,R=k.length;F<R;++F){let M=unchecked(k[F]);E.push(M)}c.clear();for(let k=0,F=E.length;k<F;++k)this.compileFunction(unchecked(E[k]),!0)}while(c.size);let f=this.functionTable,_=this.overrideStubs;for(let E=0,k=f.length;E<k;++E){let F=f[E];F.is(268435456)?(assert(F.is(262144)),f[E]=this.ensureOverrideStub(F)):F.signature.requiredParameters<F.signature.parameterTypes.length&&(f[E]=this.ensureVarargsStub(F))}let h=new Set;do{s.discoveredOverride=!1;for(let E=Set_values(_),k=0,F=E.length;k<F;++k){let R=unchecked(E[k]),M=s.resolveOverrides(R);if(M)for(let z=0,D=M.length;z<D;++z)this.compileFunction(M[z]);h.add(R)}}while(_.size>h.size||s.discoveredOverride);h.clear();for(let E=Set_values(_),k=0,F=E.length;k<F;++k)this.finalizeOverrideStub(E[k]);for(let E=Map_keys(this.pendingInstanceOf),k=0,F=E.length;k<F;++k){let R=E[k],M=assert(this.pendingInstanceOf.get(R));switch(R.kind){case 7:case 9:{this.finalizeInstanceOf(R,M);break}case 6:case 8:{this.finalizeAnyInstanceOf(R,M);break}default:assert(!1)}}r.removeGlobal(d.rtti_base),this.runtimeFeatures&8&&zg(this);let m=i64_align(this.memoryOffset,e.usizeType.byteSize);r.removeGlobal(d.data_end),((this.runtimeFeatures&1)!=0||a)&&(e.isWasm64?r.addGlobal(d.data_end,L.I64,!1,r.i64(i64_low(m),i64_high(m))):r.addGlobal(d.data_end,L.I32,!1,r.i32(i64_low(m)))),r.removeGlobal(d.stack_pointer),((this.runtimeFeatures&2)!=0||a)&&(m=i64_align(i64_add(m,i64_new(e.stackSize)),e.usizeType.byteSize),e.isWasm64?r.addGlobal(d.stack_pointer,L.I64,!0,r.i64(i64_low(m),i64_high(m))):r.addGlobal(d.stack_pointer,L.I32,!0,r.i32(i64_low(m)))),r.removeGlobal(d.heap_base),((this.runtimeFeatures&4)!=0||a)&&(e.isWasm64?r.addGlobal(d.heap_base,L.I64,!1,r.i64(i64_low(m),i64_high(m))):r.addGlobal(d.heap_base,L.I32,!1,r.i32(i64_low(m)))),this.initDefaultMemory(m),this.initDefaultTable(),this.runtimeFeatures&64&&(r.addFunction(d.setArgumentsLength,L.I32,L.None,null,r.global_set(this.ensureArgumentsLength(),r.local_get(0,L.I32))),r.addFunctionExport(d.setArgumentsLength,Cs.setArgumentsLength));let x=this.program.mainFunction;if(x){let E=this.resolver.resolveFunction(x,null);E&&this.compileFunction(E)&&(r.hasExport("main")?this.error(110,x.declaration.range,"main"):r.addFunctionExport(E.internalName,"main"))}let g=!o.length,T=e.exportStart;if(!g||T!=null){let E=l.signature;!g&&T!=null&&(r.addGlobal(d.started,L.I32,!0,r.i32(0)),o.unshift(r.global_set(d.started,r.i32(1))),o.unshift(r.if(r.global_get(d.started,L.I32),r.return())));let k=r.addFunction(l.internalName,E.paramRefs,E.resultRefs,Br(l.getNonParameterLocalTypes()),r.flatten(o));l.finalize(r,k),T==null?r.setStart(k):!ze(T)||r.hasExport(T)?this.error(110,fe.native.range,T):r.addFunctionExport(l.internalName,T)}a&&this.shadowStack.walkModule(),this.runtimeFeatures&16&&Ng(this),this.runtimeFeatures&32&&Gg(this),a&&this.runtimeFeatures&48&&new ks(this).walkModule(),n.lookup("ASC_RTRACE")!=null&&new no(this).walkModule();let I=fg(n);if(I!=null){r.addCustomSection("toildb.catalog",I);let E=_g(n);E!=null&&r.addCustomSection("toildb.types",E)}return r}initDummyMemory(){let e=this.options;this.module.setMemory(0,Gt.UNLIMITED_MEMORY,[],e.target,null,C.DefaultMemory,e.sharedMemory)}initDefaultMemory(e){this.memoryOffset=e;let r=this.options,n=this.module,s=this.memorySegments,a=0,l=Gt.UNLIMITED_MEMORY,o=!1;(r.memoryBase||s.length)&&(a=u32(i64_low(i64_shr_u(i64_align(e,65536),i64_new(16))))),r.initialMemory&&(r.initialMemory<a?this.error(105,null,a.toString()):a=r.initialMemory),r.maximumMemory&&(r.maximumMemory<a?this.error(106,null,a.toString()):l=r.maximumMemory),r.sharedMemory&&(o=!0,r.maximumMemory||(this.error(107,null),o=!1),r.hasFeature(32)||(this.error(108,null),o=!1));let u=r.lowMemoryLimit;if(u){let c=i64_new(u&-16);i64_gt(e,c)&&this.error(104,null,i64_to_string(e),i64_to_string(c))}n.setMemory(a,l,s,r.target,r.exportMemory?Cs.Memory:null,C.DefaultMemory,o),r.importMemory&&n.addMemoryImport(C.DefaultMemory,Wi.DefaultNamespace,Wi.Memory,o)}initDefaultTable(){let e=this.options,r=this.module;e.importTable&&(r.addTableImport(C.DefaultTable,Wi.DefaultNamespace,Wi.Table),r.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(901,null)),e.exportTable&&(r.addTableExport(C.DefaultTable,Cs.Table),r.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(902,null));let n=e.tableBase;n||(n=1);let s=this.functionTable,a=new Array(s.length);for(let u=0,c=s.length;u<c;++u)a[u]=s[u].internalName;let l=n+s.length,o=Gt.UNLIMITED_TABLE;e.importTable||e.exportTable||(o=l,e.willOptimize&&r.setPassArgument("directize-initial-contents-immutable","true")),r.addFunctionTable(C.DefaultTable,l,o,a,r.i32(n))}compileModuleExports(e){let r=e.exports;if(r)for(let s=Map_keys(r),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(r.get(o));this.compileModuleExport(o,u)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.compileModuleExports(n[s])}compileModuleExport(e,r,n=""){let s=this.module;switch(r.kind){case 4:{let a=r;if(!a.is(65536)){let l=this.resolver.resolveFunction(a,null);l&&this.compileModuleExport(e,l,n);return}break}case 5:{let a=r;if(!a.hasDecorator(512)){let l=a.signature;if(l.requiredParameters<l.parameterTypes.length&&(a=this.ensureVarargsStub(a),this.runtimeFeatures|=64),this.compileFunction(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addFunctionExport(a.internalName,o),this.hasCustomFunctionExports=!0,l.hasManagedOperands&&this.shadowStack.noteExport(o,l.getManagedOperandIndices()),!this.desiresExportRuntime){let c=l.thisType;if(c&&qi(c)||Oi(l.returnType))this.desiresExportRuntime=!0;else{let f=l.parameterTypes;for(let _=0,h=f.length;_<h;++_)if(qi(f[_])){this.desiresExportRuntime=!0;break}}}a.signature.returnType.kind==15&&this.module.setClosedWorld(!1)}return}}break}case 0:{let a=r;if(!(a.is(8)||a.is(96))&&!this.options.hasFeature(2)){this.warning(103,a.identifierNode.range,"mutable-globals");return}if(this.compileGlobal(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addGlobalExport(r.internalName,o),!this.desiresExportRuntime){let u=a.type;(Oi(u)||!a.is(8)&&qi(u))&&(this.desiresExportRuntime=!0)}a.type.kind==15&&this.module.setClosedWorld(!1)}a.type==p.v128&&this.warning(112,a.typeNode?assert(a.typeNode).range:a.identifierNode.range,"v128");return}break}case 2:{this.compileEnum(r);let a=r.members;if(a){let l=n+e+Sn;for(let o=Map_keys(a),u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=assert(a.get(f));_.is(512)||this.compileModuleExport(f,_,l)}}return}case 3:{let a=r;if(!a.isImmutable&&!this.options.hasFeature(2)){this.error(103,a.identifierNode.range,"mutable-globals");return}if(a.is(8388608)){let l=n+e;s.hasExport(l)||s.addGlobalExport(r.internalName,l);return}break}}this.warning(235,r.identifierNode.range)}compileFileByPath(e,r){let n,s=this.program.filesByName,a;if(s.has(e))n=assert(s.get(e));else if(s.has(a=e+Ge))n=assert(s.get(a));else{this.error(6054,r.range,e);return}this.compileFile(n)}compileFile(e){if(e.is(8388608))return;e.set(8388608);let r=e.startFunction,n=r.signature,s=this.currentBody,a=new Array;this.currentBody=a;let l=this.currentFlow,o=r.flow;this.currentFlow=o;for(let u=e.source.statements,c=0,f=u.length;c<f;++c)this.compileTopLevelStatement(u[c],a);if(this.currentFlow=l,this.currentBody=s,a.length){let u=this.module,c=r.localsByIndex,f=c.length,_=new Array(f);for(let m=0;m<f;++m)_[m]=c[m].type.toRef();let h=u.addFunction(r.internalName,n.paramRefs,n.resultRefs,_,u.flatten(a));r.finalize(u,h),s.push(u.call(r.internalName,null,L.None))}}compileGlobalLazy(e,r){return e.is(8388608)?!e.is(16777216):e.hasAnyDecorator(1536)||e.is(32768)?this.compileGlobal(e):(this.errorRelated(2448,r.range,e.identifierNode.range,e.internalName),!1)}compileGlobal(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let r=this.pendingElements;r.add(e);let n=this.module,s=0,a=e.typeNode,l=e.initializerNode;if(!e.is(4194304))if(a){let m=this.resolver.resolveType(a,null,e.parent);if(!m)return e.set(16777216),r.delete(e),!1;if(m==p.void)return this.error(1110,a.range),e.set(16777216),r.delete(e),!1;e.setType(m),this.program.checkTypeSupported(m,a)}else if(l){let m=this.currentFlow;if(e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,p.auto,20),this.currentFlow=m,this.currentType==p.void)return this.error(2322,l.range,this.currentType.toString(),"<auto>"),e.set(16777216),r.delete(e),!1;e.setType(this.currentType)}else return this.error(1110,e.identifierNode.range.atEnd),e.set(16777216),r.delete(e),!1;if(e.hasDecorator(512)){let m=e.internalName;return Ot.has(m)&&assert(Ot.get(m))(new ps(this,e)),r.delete(e),!0}let o=e.type;!l&&!e.is(16384)&&o.isReference&&!o.isNullableReference&&this.error(238,e.identifierNode.range);let u=o.toRef(),c=e.is(8)||e.is(96),f=e.hasDecorator(64);if(e.is(32768))return c||this.options.hasFeature(2)?(qg(e,e.declaration),this.program.markModuleImport(Zr,hr,e),n.addGlobalImport(e.internalName,Zr,hr,u,!c),r.delete(e),!this.desiresExportRuntime&&qi(o)&&(this.desiresExportRuntime=!0),!0):(this.error(103,e.declaration.range,"mutable-globals"),e.set(16777216),r.delete(e),!1);let _=!1;if(l){if(!s){let m=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,o,21),this.currentFlow=m}if(!n.isConstExpression(s))if(c){let m=n.runExpression(s,1);m?s=m:_=!0}else _=!0;if(_&&$(s)==10){let m=assert(Vn(s));if(!Zp(n.getGlobal(m))){let x=this.program.elementsByName;x.has(m)&&assert(x.get(m)).is(32768)&&(_=!1)}}if(f)if(_)this.warning(206,l.range);else{switch(assert($(s)==14),se(s)){case L.I32:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ne(s),0);break}case L.I64:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ve(s),we(s));break}case L.F32:{e.constantValueKind=2,e.constantFloatValue=Ae(s);break}case L.F64:{e.constantValueKind=2,e.constantFloatValue=Ee(s);break}default:return assert(!1),e.set(16777216),r.delete(e),!1}e.set(33554432)}}else e.is(33554432)?s=this.compileInlineConstant(e,e.type,16):s=this.makeZero(o);let h=e.internalName;if(_){f&&this.error(212,Nt(8,e.decoratorNodes).range,"inline");let m=o;o.isExternalReference&&!o.is(512)&&(e.set(-2147483648),m=o.asNullable()),n.addGlobal(h,m.toRef(),!0,this.makeZero(m)),this.currentBody.push(n.global_set(h,s))}else f||n.addGlobal(h,u,!c,s);return r.delete(e),!0}compileEnum(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let r=this.pendingElements;r.add(e);let n=this.module,s=this.currentParent;this.currentParent=e;let a=null,l=!1,o=e.is(8)||e.hasDecorator(64),u=e.members;if(u)for(let c=Map_values(u),f=0,_=c.length;f<_;++f){let h=unchecked(c[f]);if(h.kind!=3)continue;let m=!1,x=h,g=x.valueNode;x.set(8388608);let T=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow);let I;if(g){if(I=this.compileExpression(g,p.i32,1),$(I)!=14){let E=n.runExpression(I,1);E?I=E:(e.is(8)&&this.error(2474,g.range),m=!0)}}else if(a==null)I=n.i32(0);else if(l&&this.error(1061,x.identifierNode.range.atEnd),o){let E=i64_add(a.constantIntegerValue,i64_new(1));assert(!i64_high(E)),I=n.i32(i64_low(E))}else{I=n.binary(0,n.global_get(a.internalName,L.I32),n.i32(1));let E=n.runExpression(I,1);E?I=E:(e.is(8)&&this.error(2474,h.declaration.range),m=!0)}this.currentFlow=T,m?(n.addGlobal(x.internalName,L.I32,!0,n.i32(0)),this.currentBody.push(this.makeGlobalAssignment(x,I,p.i32,!1)),l=!0):(o?(x.setConstantIntegerValue(i64_new(ne(I)),p.i32),x.is(1048576)&&n.addGlobal(x.internalName,L.I32,!1,I)):n.addGlobal(x.internalName,L.I32,!1,I),x.isImmutable=!0,l=!1),a=x}return this.currentParent=s,r.delete(e),!0}ensureEnumToString(e,r){if(e.toStringFunctionName)return e.toStringFunctionName;if(!this.compileEnum(e))return null;if(e.is(8))return this.errorRelated(2476,r.range,e.identifierNode.range),null;let n=e.members;if(!n)return null;let s=this.module,a=e.hasDecorator(64),l=`${e.internalName}#${C.EnumToString}`;e.toStringFunctionName=l;let o=new Array;for(let u=Map_keys(n),c=Map_values(n),f=1,_=u.length;f<=_;++f){let h=unchecked(u[_-f]),m=unchecked(c[_-f]);if(m.kind!=3)continue;let x=m,g=a?s.i32(i64_low(x.constantIntegerValue)):s.global_get(x.internalName,L.I32),T=s.if(s.binary(15,g,s.local_get(0,L.I32)),s.return(this.ensureStaticString(h)));o.push(T)}return o.push(s.unreachable()),s.addFunction(l,L.I32,L.I32,null,s.block(null,o,L.I32)),l}compileFunction(e,r=!1){if(e.is(16777216))return!1;if(e.is(8388608))return!0;if(!r){if(e.hasDecorator(512))return!0;if(e.hasDecorator(1024))return this.lazyFunctions.add(e),!0}let n=e.prototype.functionTypeNode.parameters,s=n.length;if(s>=2){let h=new Set;h.add(n[0].name.text);for(let m=1;m<s;m++){let x=n[m].name,g=x.text;h.has(g)?this.error(2300,x.range,g):h.add(g)}}e.set(8388608);let a=this.pendingElements;a.add(e);let l=this.currentType,o=this.module,u=e.signature,c=e.prototype.bodyNode,f=e.declaration;assert(f.kind==56||f.kind==59),this.checkSignatureSupported(e.signature,f.signature);let _=0;if(c){if(e.is(32768)&&this.error(1183,e.identifierNode.range),e.hasAnyDecorator(384)){let g=e.decoratorNodes,T;(T=Nt(9,g))&&this.error(212,T.range,"external"),(T=Nt(10,g))&&this.error(212,T.range,"external.js")}let h=this.currentFlow,m=e.flow;this.currentFlow=m;let x=new Array;this.compileFunctionBody(e,x)||x.push(o.unreachable()),this.currentFlow=h,_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,Br(e.getNonParameterLocalTypes()),o.flatten(x,e.signature.returnType.toRef()))}else if(e.is(32768)){if(qg(e,f),this.program.markModuleImport(Zr,hr,e),o.addFunctionImport(e.internalName,Zr,hr,u.paramRefs,u.resultRefs),_=o.getFunction(e.internalName),!this.desiresExportRuntime){let h=u.thisType;if(h&&Oi(h)||qi(u.returnType))this.desiresExportRuntime=!0;else{let m=u.parameterTypes;for(let x=0,g=m.length;x<g;++x)if(Oi(m[x])){this.desiresExportRuntime=!0;break}}}}else if(e.is(128)||e.parent.kind==9)_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,null,o.unreachable());else{if(e.isAny(6144)){let h=e.declaration.name.text,m=assert(e.parent.getMember(h));assert(m.kind==10);let x=m.instance;x&&x.isField&&(_=e.is(2048)?this.makeBuiltinFieldGetter(x):this.makeBuiltinFieldSetter(x),assert(e.is(8388608)))}_||(this.error(2391,e.identifierNode.range),e.set(16777216))}if((e.is(32768)||e.is(2))&&u.hasVectorValueOperands){let m,x=e.prototype.functionTypeNode;if(u.returnType==p.v128)m=x.returnType.range;else{let g=u.getVectorValueOperandIndices()[0];m=x.parameters[g].range}this.warning(112,m,"v128")}return e.finalize(o,_),this.currentType=l,a.delete(e),!0}compileFunctionBody(e,r){let n=this.module,s=assert(e.prototype.bodyNode),a=e.signature.returnType,l=this.currentFlow,o=e.signature.thisType?assert(l.lookupLocal(C.this_)):null,u=r.length,c=e.localsByIndex.length,f=e.nextAnonymousId;e.outerFunction&&!e.closureEnvLocal&&(e.closureEnvLocal=l.addScopedLocal("$closureEnv",this.options.usizeType));let _=e.capturedLocals;if(_&&_.size>0){let m=!1;for(let x=Map_keys(_),g=0,T=x.length;g<T;g++){let I=x[g];if(I.parent==e){let E=l.lookupLocal(I.name);E&&!E.isCaptured&&(E.isCaptured=!0,E.envSlotIndex=I.envSlotIndex,E.envOwner=I.envOwner)}I.envOwner==e&&(m=!0)}m&&!e.envLocal&&(e.envLocal=l.addScopedLocal("$env",this.options.usizeType))}if(s.kind==31)r=this.compileStatements(s.statements,r);else{assert(s.kind==39),assert(e.prototype.arrowKind),assert(!e.isAny(530432));let m=this.compileExpression(s.expression,a,1);l.canOverflow(m,a)||l.set(2),l.isNonnull(m,a)&&l.set(4),r?r.push(m):r=[m],l.is(256)||(l.canOverflow(m,a)||l.set(2),l.isNonnull(m,a)&&l.set(4),l.set(257))}if(e.needsCaptureRecompile){e.needsCaptureRecompile=!1,r.length=u;let m=e.localsByIndex;for(let g=c,T=m.length;g<T;g++)m[g].wasAccessedAsLocal=!1;m.length=c,l.localFlags.length=c,l.unset(25079);let x=l.scopedLocals;if(x){let g=e.signature,T=g.parameterTypes.length,I=g.thisType!=null,E=new Array;for(let k=Map_keys(x),F=0,R=k.length;F<R;F++){let M=k[F],z=assert(x.get(M)),D=z.index>=(I?1:0)&&z.index<T+(I?1:0),W=I&&z.index==0,q=z==e.envLocal||z==e.closureEnvLocal;!D&&!W&&!q&&E.push(M)}for(let k=0,F=E.length;k<F;k++)x.delete(E[k])}if(e.envLocal){let g=l.scopedLocals;g&&g.has("$env")&&g.delete("$env"),e.envLocal=null}if(e.closureEnvLocal){let g=l.scopedLocals;g&&g.has("$closureEnv")&&g.delete("$closureEnv"),e.closureEnvLocal=null}if(_=e.capturedLocals,_)for(let g=Map_keys(_),T=0,I=g.length;T<I;T++)g[T].wasAccessedAsLocal=!1;return e.nextAnonymousId=f,this.compileFunctionBody(e,r)}if(_=e.capturedLocals,e.envLocal&&_&&_.size>0){let m=this.compileClosureEnvironmentAllocation(e);for(let x=r.length-1;x>=u;--x)r[x+1]=r[x];r[u]=m}let h=e.closureEnvLocal;if(h){let m=this.ensureClosureEnvironmentGlobal(),x=this.options.sizeTypeRef,g=n.local_set(h.index,n.global_get(m,x),!1);for(let T=r.length-1;T>=u;--T)r[T+1]=r[T];r[u]=g}if(e.is(524288)){assert(e.is(262144)),o=assert(o);let m=assert(e.parent);assert(m.kind==7);let x=m;if(l.isAny(8256)||!l.is(256)){let g=new Array;g.push(this.makeConditionalAllocation(x,o.index)),this.makeFieldInitializationInConstructor(x,g);for(let T=r.length-1;T>=u;--T)r[T+1]=r[T];r[u]=n.flatten(g,L.None),l.is(16384)&&this.options.pedantic&&this.pedantic(905,e.identifierNode.range)}l.is(16384)&&!x.hasDecorator(32)&&this.error(231,x.identifierNode.range),l.is(256)||(r.push(n.local_get(o.index,o.type.toRef())),l.set(261)),x.base&&!x.prototype.implicitlyExtendsObject&&!l.is(128)&&this.error(2377,e.prototype.declaration.range)}else if(a!=p.void&&!l.is(256))return this.error(2355,e.prototype.functionTypeNode.returnType.range),!1;return!0}makeBuiltinFieldGetter(e){let r=assert(e.getterInstance),n=this.module,s=e.type,a=s.toRef(),l=this.options.sizeTypeRef;r.set(8388608);let o=n.load(s.byteSize,s.isSignedIntegerValue,n.local_get(0,l),a,e.memoryOffset),u=this.currentFlow;return this.currentFlow=r.flow,e.is(16384)&&s.isReference&&!s.isNullableReference&&(o=this.makeRuntimeNonNullCheck(o,s,r.identifierNode)),this.currentFlow=u,n.addFunction(r.internalName,l,a,Br(r.getNonParameterLocalTypes()),o)}makeBuiltinFieldSetter(e){let r=assert(e.setterInstance),n=this.module,s=e.type,a=this.options.sizeTypeRef,l=s.toRef(),o=n.store(s.byteSize,n.local_get(0,a),n.local_get(1,l),l,e.memoryOffset);if(s.isManaged&&this.options.runtime!=3){let u=r.parent;if(assert(u.kind==7),u.type.isManaged){let c=this.program.linkInstance;this.compileFunction(c),o=n.block(null,[o,n.call(c.internalName,[n.local_get(0,a),n.local_get(1,l),n.i32(0)],L.None)],L.None)}}return r.set(8388608),n.addFunction(r.internalName,je([a,l]),L.None,null,o)}addAlignedMemorySegment(e,r=16){assert(Ct(r));let n=i64_align(this.memoryOffset,r),s=new Si(e,n);return this.memorySegments.push(s),this.memoryOffset=i64_add(n,i64_new(e.length)),s}addRuntimeMemorySegment(e){let r=this.program.computeBlockStart64(this.memoryOffset),n=new Si(e,r);return this.memorySegments.push(n),this.memoryOffset=i64_add(r,i64_new(e.length)),n}ensureStaticString(e){let r=this.ensureStaticStringPtr(e);return this.currentType=this.program.stringInstance.type,this.module.usize(r)}ensureStaticStringPtr(e){let r=this.program,n=r.totalOverhead,s=assert(r.stringInstance),a,l=this.stringSegments;if(l.has(e))a=assert(l.get(e));else{let c=e.length,f=s.createBuffer(c<<1);for(let _=0;_<c;++_)Zt(e.charCodeAt(_),f,n+(_<<1));a=this.addRuntimeMemorySegment(f),l.set(e,a)}let o=i64_add(a.offset,i64_new(n)),u=this.staticGcObjectOffsets;if(u.has(i64_high(o)))assert(u.get(i64_high(o))).add(i64_low(o));else{let c=new Set;c.add(i64_low(o)),u.set(i64_high(o),c)}return o}writeStaticBuffer(e,r,n,s){let a=s.length,l=n.byteSize,o=n.toRef();switch(o){case L.I32:{switch(l){case 1:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),_e(ne(c),e,r),r+=1}break}case 2:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),Zt(ne(c),e,r),r+=2}break}case 4:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),me(ne(c),e,r),r+=4}break}default:assert(!1)}break}case L.I64:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),ci(i64_new(ve(c),we(c)),e,r),r+=8}break}case L.F32:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),xr(Ae(c),e,r),r+=4}break}case L.F64:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),Tr(Ee(c),e,r),r+=8}break}case L.V128:{for(let u=0;u<a;++u){let c=s[u];assert(se(c)==o),assert($(c)==14),yp(Kp(c),e,r),r+=16}break}case L.None:break;default:assert(!1)}return r}addStaticBuffer(e,r,n=this.program.arrayBufferInstance.id){let s=this.program,l=s.arrayBufferInstance.createBuffer(r.length*e.byteSize);return this.program.OBJECTInstance.writeField("rtId",n,l,0),this.writeStaticBuffer(l,s.totalOverhead,e,r),this.addRuntimeMemorySegment(l)}addStaticArrayHeader(e,r,n=null){let s=this.program;n||(n=assert(this.resolver.resolveClass(this.program.arrayPrototype,[e])));let a=pi(r.buffer,s.OBJECTInstance.offsetof("rtSize")),l=i32(a/e.byteSize),o=i64_add(r.offset,i64_new(s.totalOverhead)),u=n.createBuffer();return assert(n.writeField("buffer",o,u)),assert(n.writeField("dataStart",o,u)),assert(n.writeField("byteLength",a,u)),assert(n.writeField("length_",l,u)),this.addRuntimeMemorySegment(u)}ensureRuntimeFunction(e){assert(e.is(8388608)&&!e.is(134217728));let r=this.program,n=e.memorySegment;if(!n){this.options.importTable||this.module.ensureFunctionTable(C.DefaultTable);let s=this.functionTable,a=this.options.tableBase;a||(a=1);let l=a+s.length;s.push(e);let o=assert(this.resolver.resolveClass(r.functionPrototype,[e.type])),u=o.createBuffer();assert(o.writeField("_index",l,u)),assert(o.writeField("_env",0,u)),e.memorySegment=n=this.addRuntimeMemorySegment(u)}return i64_add(n.offset,i64_new(r.totalOverhead))}compileTopLevelStatement(e,r){switch(e.kind){case 52:{let n=e.members;for(let s=0,a=n.length;s<a;++s)this.compileTopLevelStatement(n[s],r);break}case 53:{let n=this.program.getElementByDeclaration(e);n&&(assert(n.kind==2),n.hasDecorator(1024)||this.compileEnum(n));break}case 60:{let n=e,s=this.program.getElementByDeclaration(n);if(s){let a=this.currentParent;this.currentParent=s;let l=n.members;for(let o=0,u=l.length;o<u;++o)this.compileTopLevelStatement(l[o],r);this.currentParent=a}break}case 48:{let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=this.program.getElementByDeclaration(n[s]);l&&(assert(l.kind==0),!l.is(32768)&&!l.hasDecorator(1024)&&this.compileGlobal(l))}break}case 55:{let n=this.program.getElementByDeclaration(e);n&&n.kind==0&&(n.hasDecorator(1024)||this.compileGlobal(n));break}case 36:{let n=e,s=n.internalPath;s!=null&&this.compileFileByPath(s,assert(n.path));break}case 37:{this.compileTopLevelStatement(e.declaration,r);break}case 43:{let n=e;this.compileFileByPath(n.internalPath,n.path);break}case 56:case 59:case 58:case 66:case 61:break;default:{let n=this.compileStatement(e);$(n)!=22&&r.push(n);break}}}compileStatement(e){let r=this.module,n;switch(e.kind){case 31:{n=this.compileBlockStatement(e);break}case 32:{n=this.compileBreakStatement(e);break}case 33:{n=this.compileContinueStatement(e);break}case 34:{n=this.compileDoStatement(e);break}case 35:{n=this.compileEmptyStatement(e);break}case 39:{n=this.compileExpressionStatement(e);break}case 40:{n=this.compileForStatement(e);break}case 41:{n=this.compileForOfStatement(e);break}case 42:{n=this.compileIfStatement(e);break}case 44:{n=this.compileReturnStatement(e);break}case 45:{n=this.compileSwitchStatement(e);break}case 46:{n=this.compileThrowStatement(e);break}case 47:{n=this.compileTryStatement(e);break}case 48:{n=this.compileVariableStatement(e),n||(n=r.nop());break}case 49:{n=this.compileVoidStatement(e);break}case 50:{n=this.compileWhileStatement(e);break}case 61:{n=this.compileTypeDeclaration(e);break}case 51:{n=r.nop();break}default:assert(!1),n=r.unreachable()}return this.options.sourceMap&&this.addDebugLocation(n,e.range),n}compileStatements(e,r=null){let n=e.length;r||(r=new Array(n),r.length=0);let s=this.currentFlow;for(let a=0;a<n;++a){let l=this.compileStatement(e[a]);switch($(l)){case 1:if(!qn(l)){for(let o=0,u=Wn(l);o<u;++o)r.push(Kn(l,o));break}default:r.push(l);case 22:}if(s.isAny(272))break}return r}compileBlockStatement(e){let r=e.statements,n=this.currentFlow,s=n.fork();this.currentFlow=s;let a=this.compileStatements(r);return n.inherit(s),this.currentFlow=n,this.module.flatten(a)}compileTypeDeclaration(e){let r=this.currentFlow,n=e.name.text,s=r.lookupScopedTypeAlias(n);if(s)return this.errorRelated(2300,e.range,s.declaration.range,n),this.module.unreachable();let a=new $e(n,r.sourceFunction,e,0);return r.addScopedTypeAlias(n,a),this.module.nop()}compileBreakStatement(e){let r=this.module,n=e.label;if(n)return this.error(100,n.range,"Break label"),r.unreachable();let s=this.currentFlow,a=s.breakLabel;return a==null?(this.error(1105,e.range),r.unreachable()):(s.set(16),r.br(a))}compileContinueStatement(e){let r=this.module,n=e.label;if(n)return this.error(100,n.range,"Continue label"),r.unreachable();let s=this.currentFlow,a=s.continueLabel;return a==null?(this.error(1104,e.range),r.unreachable()):(s.set(288),r.br(a))}compileDoStatement(e){return this.doCompileDoStatement(e)}doCompileDoStatement(e){let r=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork(!0),l=a.pushControlFlowLabel(),o=`do-break|${l}`;a.breakLabel=o;let u=`do-continue|${l}`;a.continueLabel=u;let c=`do-loop|${l}`;this.currentFlow=a;let f=new Array,_=e.body;_.kind==31?this.compileStatements(_.statements,f):f.push(this.compileStatement(_)),a.popControlFlowLabel(l);let h=a.isAny(4128),m=a.isAny(2064),x=!a.isAny(272);if(!x&&!h)f.push(r.unreachable()),n.inherit(a),m||n.set(256);else{let T=this.compileExpression(e.condition,p.bool),I=this.makeIsTrueish(T,this.currentType,e.condition),E=this.evaluateCondition(I);if(E!=2&&(h||x)&&n.resetIfNeedsRecompile(a.forkThen(T),s))return this.currentFlow=n,this.doCompileDoStatement(e);h&&(f[0]=r.block(u,f),f.length=1,a.unset(256)),f.push(r.br(c,I)),n.inherit(a),E==1&&!m&&n.set(256)}this.currentFlow=n;let g=r.loop(c,r.flatten(f));return m&&(g=r.block(o,[g])),n.is(256)&&(g=r.block(null,[g,r.unreachable()])),g}compileEmptyStatement(e){return this.module.nop()}compileExpressionStatement(e){return this.compileExpression(e.expression,p.void,1)}compileForStatement(e){return this.doCompileForStatement(e)}doCompileForStatement(e){let r=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork();this.currentFlow=a;let l=new Array,o=e.initializer;o&&(assert(o.kind==39||o.kind==48),l.push(this.compileStatement(o)));let u,c,f,_=e.condition;if(_){if(u=this.compileExpression(_,p.bool),c=this.makeIsTrueish(u,this.currentType,_),f=this.evaluateCondition(c),f==2)return l.push(r.drop(c)),n.inherit(a),this.currentFlow=n,r.flatten(l)}else u=r.i32(1),c=u,f=1;let h=a.forkThen(u,!0),m=h.pushControlFlowLabel(),x=`for-break${m}`;h.breakLabel=x;let g=`for-continue|${m}`;h.continueLabel=g;let T=`for-loop|${m}`;this.currentFlow=h;let I=new Array,E=e.body;E.kind==31?this.compileStatements(E.statements,I):I.push(this.compileStatement(E)),h.popControlFlowLabel(m),h.breakLabel=null,h.continueLabel=null;let k=!h.isAny(272),F=h.isAny(4128),R=h.isAny(2064);F&&(I[0]=r.block(g,I),I.length=1),f==1?a.inherit(h):a.mergeBranch(h);let M=F||k;if(M){let D=e.incrementor;if(D&&(this.currentFlow=a,I.push(this.compileExpression(D,p.void,9))),I.push(r.br(T)),n.resetIfNeedsRecompile(h.forkThen(u),s))return this.currentFlow=n,this.doCompileForStatement(e)}n.inherit(a),this.currentFlow=n;let z=r.if(c,r.flatten(I));return M&&(z=r.loop(T,z)),R&&(z=r.block(x,[z])),l.push(z),n.is(256)&&l.push(r.unreachable()),r.flatten(l)}compileForOfStatement(e){return this.error(100,e.range,"Iterators"),this.module.unreachable()}compileIfStatement(e){let r=this.module,n=e.ifTrue,s=e.ifFalse,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition);switch(this.evaluateCondition(l)){case 1:return r.block(null,[r.drop(l),this.compileStatement(n)]);case 2:return s?r.block(null,[r.drop(l),this.compileStatement(s)]):r.drop(l)}let u=this.currentFlow,c=new Array,f=u.forkThen(a);this.currentFlow=f,n.kind==31?this.compileStatements(n.statements,c):c.push(this.compileStatement(n)),this.currentFlow=u;let _=u.forkElse(a);if(s){this.currentFlow=_;let h=new Array;return s.kind==31?this.compileStatements(s.statements,h):h.push(this.compileStatement(s)),u.inheritAlternatives(f,_),this.currentFlow=u,r.if(l,r.flatten(c),r.flatten(h))}else return f.isAny(272)?(u.inherit(_),u.mergeSideEffects(f)):u.inheritAlternatives(f,_),this.currentFlow=u,r.if(l,r.flatten(c))}compileReturnStatement(e){let r=this.module,n=0,s=this.currentFlow,a=s.returnType,l=e.value;if(l){let u=1;s.sourceFunction.is(1048576)&&(u|=4),n=this.compileExpression(l,a,u),s.canOverflow(n,a)||s.set(2),s.isNonnull(n,a)&&s.set(4),s.sourceFunction.is(524288)&&l.kind!=25&&s.set(16384)}else if(a!=p.void)return this.error(2322,e.range,"void",a.toString()),this.currentType=a,r.unreachable();s.set(257);let o=s.getTryFinallyContext();if(o){let u=o.tryFinallyPendingActionLocal,c=o.tryFinallyPendingValueLocal,f=assert(o.tryFinallyDispatchLabel),_=new Array;return n&&a!=p.void&&_.push(r.local_set(c,n,a.isManaged)),_.push(r.local_set(u,r.i32(1),!1)),_.push(r.br(f)),r.flatten(_)}if(s.isInline){let u=assert(s.inlineReturnLabel);return n?this.currentType==p.void?r.block(null,[n,r.br(u)]):r.br(u,0,n):r.br(u)}return n?this.currentType==p.void?r.block(null,[n,r.return()]):r.return(n):r.return()}compileSwitchStatement(e){let r=this.module,n=e.cases,s=n.length,a=this.compileExpression(e.condition,p.auto),l=this.currentType;if(!s)return r.drop(a);let o=this.currentFlow,c=o.getTempLocal(l).index,f=new Array(1+s);f[0]=r.local_set(c,a,l.isManaged);let _=1,h=-1,m=o.pushControlFlowLabel();for(let I=0;I<s;++I){let E=n[I];if(E.isDefault){h=I;continue}let k=e.condition,F=r.local_get(c,l.toRef()),R=l,M=E.label,z=this.compileExpression(assert(E.label),l,1),D=this.currentType,W=this.compileCommutativeCompareBinaryExpressionFromParts(76,k,F,R,M,z,D,l,e);f[_++]=r.br(`case${I}|${m}`,W)}f[_]=r.br(h>=0?`case${h}|${m}`:`break|${m}`);let x=r.block(`case0|${m}`,f,L.None),g=null,T=null;for(let I=0;I<s;++I){let k=n[I].statements,F=k.length,R=o.fork(!0,!1);g&&R.mergeBranch(g),this.currentFlow=R;let M=`break|${m}`;R.breakLabel=M;let z=I==s-1,D=z?M:`case${I+1}|${m}`,W=new Array(1+F);W[0]=x;let q=1,ee=!0;for(let te=0;te<F;++te){let j=this.compileStatement(k[te]);if($(j)!=22&&(W[q++]=j),R.isAny(272)){ee=!1;break}}W.length=q,g=ee?R:null;let Y=R.isAny(2064);R.unset(2064),Y||z&&ee?T?T.inheritAlternatives(T,R):T=R:ee||o.mergeSideEffects(R),this.currentFlow=o,x=r.block(D,W,L.None)}return o.popControlFlowLabel(m),h>=0?T?o.inherit(T):o.set(256):T&&o.mergeBranch(T),this.currentFlow=o,x}compileThrowStatement(e){let r=this.module;if(this.currentFlow.set(264),this.options.hasFeature(64)){let o=this.compileExpression(e.value,p.auto),u=this.currentType,c=this.program.errorInstance,f=u.getClass();if(!f||!f.isAssignableTo(c))return this.error(250,e.value.range,u.toString()),r.unreachable();let _=this.ensureExceptionTag();return r.throw(_,[o])}let s=new Array,a=e.value,l=null;if(a.kind==18){let o=a.args;o.length&&(l=o[0])}return s.push(this.makeAbort(l,e)),r.flatten(s)}compileTryStatement(e){let r=this.module,n=this.currentFlow;if(!this.options.hasFeature(64))return this.error(103,e.range,"exception-handling"),r.unreachable();let s=this.ensureExceptionTag(),a=n.pushControlFlowLabel(),l=`try|${a}`,o=n.fork();this.currentFlow=o;let u=new Array;this.compileStatements(e.bodyStatements,u);let c=r.flatten(u),f=o.isAny(256),_=[],h=[],m=null,x=!1,g=e.catchStatements,T=e.catchVariable;if(g){m=n.fork(),this.currentFlow=m;let E=new Array,k=r.pop(this.options.sizeTypeRef);if(T){let F=T.text,R=this.program.lookup(C.Error),M;if(R&&R.kind==6){let D=this.resolver.resolveClass(R,null);M=D?D.type:this.options.usizeType}else M=this.options.usizeType;let z=m.addScopedLocal(F,M);E.push(un(r.ref,z.index,k)),m.setLocalFlag(z.index,8)}else E.push(r.drop(k));this.compileStatements(g,E),_.push(s),h.push(r.flatten(E)),x=m.isAny(256)}let I=e.finallyStatements;if(I){let E=n.returnType,k=n.targetFunction,F=k.addLocal(p.i32),R=E!=p.void?k.addLocal(E):null,M=R?R.index:-1,z=`finally_dispatch|${a}`,D=`try_finally|${a}`;n.popControlFlowLabel(a);let W=n.pushControlFlowLabel();l=`try|${W}`,o=n.fork(),o.tryFinallyPendingActionLocal=F.index,o.tryFinallyPendingValueLocal=M,o.tryFinallyDispatchLabel=z,o.tryFinallyReturnType=E,this.currentFlow=o;let q=new Array;if(this.compileStatements(e.bodyStatements,q),c=r.flatten(q),f=o.isAny(256),_=[],h=[],m=null,x=!1,g){m=n.fork(),m.tryFinallyPendingActionLocal=F.index,m.tryFinallyPendingValueLocal=M,m.tryFinallyDispatchLabel=z,m.tryFinallyReturnType=E,this.currentFlow=m;let tt=new Array,Ms=r.pop(this.options.sizeTypeRef);if(T){let po=T.text,Xi=this.program.lookup(C.Error),Ji;if(Xi&&Xi.kind==6){let zs=this.resolver.resolveClass(Xi,null);Ji=zs?zs.type:this.options.usizeType}else Ji=this.options.usizeType;let Gs=m.addScopedLocal(po,Ji);tt.push(un(r.ref,Gs.index,Ms)),m.setLocalFlag(Gs.index,8)}else tt.push(r.drop(Ms));this.compileStatements(g,tt),_.push(s),h.push(r.flatten(tt)),x=m.isAny(256)}this.currentFlow=n;let ee;h.length>0?ee=r.try(l,c,_,h,null):ee=c;let Y=n.fork();this.currentFlow=Y;let te=new Array;this.compileStatements(I,te);let j=r.flatten(te),re=r.block(null,[j,r.rethrow(D)]),H=r.try(D,ee,[],[re],null),ue=n.fork();this.currentFlow=ue;let be=new Array;this.compileStatements(I,be);let dr=r.flatten(be),vt=ue.isAny(256),Hi=ue.isAny(1);this.currentFlow=n,n.popControlFlowLabel(W);let Q=new Array;Q.push(dr),vt||(E!=p.void&&R?Q.push(r.if(r.binary(15,r.local_get(F.index,L.I32),r.i32(1)),r.return(r.local_get(R.index,E.toRef())))):Q.push(r.if(r.binary(15,r.local_get(F.index,L.I32),r.i32(1)),r.return())));let Qi=r.block(z,[H]);!vt&&(m?f&&x:f)&&Q.push(r.unreachable());let It=new Array(1+Q.length);It[0]=Qi;for(let tt=0;tt<Q.length;tt++)It[1+tt]=Q[tt];let uo=r.block(null,It);return vt?(n.set(256),Hi&&n.set(1)):m?f&&x?n.set(256):n.inheritAlternatives(o,m):n.mergeSideEffects(o),uo}return n.popControlFlowLabel(a),this.currentFlow=n,m&&(f&&x?n.set(256):g?n.inheritAlternatives(o,m):n.inherit(o)),h.length==0?c:r.try(l,c,_,h,null)}compileVariableStatement(e){let r=this.module,n=e.declarations,s=n.length,a=this.currentFlow,l=new Array,o=this.resolver;for(let u=0;u<s;++u){let c=n[u],f=c.name.text,_=null,h=0,m=null;c.is(16384)&&this.warning(239,c.name.range);let x=c.type,g=c.initializer;if(x){if(_=o.resolveType(x,a,a.sourceFunction,pe(a.contextualTypeArguments)),!_)continue;if(this.program.checkTypeSupported(_,x),g){let E=this.pendingElements,k=a.addScopedDummyLocal(f,_,e);E.add(k),h=this.compileExpression(g,_,1),m=this.currentType,E.delete(k),a.freeScopedDummyLocal(f)}}else if(g){let E=this.pendingElements,k=a.addScopedDummyLocal(f,p.auto,e);if(E.add(k),h=this.compileExpression(g,p.auto),m=this.currentType,E.delete(k),a.freeScopedDummyLocal(f),this.currentType==p.void){this.error(2322,c.range,this.currentType.toString(),"<auto>");continue}_=m}else{this.error(1110,c.name.range.atEnd);continue}let T=c.is(8),I=!1;if(T)if(h){let E=r.runExpression(h,1);if(E){h=E;let k=null;switch(se(h)){case L.I32:{k=new Oe(f,-1,_,a.targetFunction),k.setConstantIntegerValue(i64_new(ne(h),0),_);break}case L.I64:{k=new Oe(f,-1,_,a.targetFunction),k.setConstantIntegerValue(i64_new(ve(h),we(h)),_);break}case L.F32:{k=new Oe(f,-1,_,a.targetFunction),k.setConstantFloatValue(Ae(h),_);break}case L.F64:{k=new Oe(f,-1,_,a.targetFunction),k.setConstantFloatValue(Ee(h),_);break}}if(k){let F=a.scopedLocals;if(!F)a.scopedLocals=F=new Map;else if(F.has(f)){let R=assert(F.get(f));return this.errorRelated(2300,c.name.range,R.declaration.name.range,f),this.module.unreachable()}F.set(f,k),I=!0}}}else this.error(1155,c.range);if(!I){let E;if(c.isAny(24)||a.isInline){let R=a.getScopedLocal(f);R?(R.declaration.range.source.isNative?this.error(2300,c.name.range,f):this.errorRelated(2300,c.name.range,R.declaration.name.range,f),E=R):E=a.addScopedLocal(f,_),T&&a.setLocalFlag(E.index,1)}else{let R=a.lookupLocal(f);if(R){this.errorRelated(2300,c.name.range,R.declaration.name.range,f);continue}E=a.targetFunction.addLocal(_,f,c),a.unsetLocalFlag(E.index,-1),T&&a.setLocalFlag(E.index,1)}let k=a.sourceFunction,F=k.capturedLocals;if(F)for(let R=Map_keys(F),M=0,z=R.length;M<z;++M){let D=R[M];if(D.name==f&&D.parent==k){E.isCaptured=!0,E.envSlotIndex=D.envSlotIndex,E.envOwner=D.envOwner;let W=F.get(D);F.delete(D),F.set(E,W);break}}h?l.push(this.makeLocalAssignment(E,h,m||_,!1)):E.type.isShortIntegerValue&&a.setLocalFlag(E.index,2)}}return this.currentType=p.void,l.length==0?0:r.flatten(l)}compileVoidStatement(e){return this.compileExpression(e.expression,p.void,10)}compileWhileStatement(e){return this.doCompileWhileStatement(e)}doCompileWhileStatement(e){let r=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition),o=this.evaluateCondition(l);if(o==2)return r.drop(l);let u=n.forkThen(a,!0),c=u.pushControlFlowLabel(),f=`while-break|${c}`;u.breakLabel=f;let _=`while-continue|${c}`;u.continueLabel=_,this.currentFlow=u;let h=new Array,m=e.body;m.kind==31?this.compileStatements(m.statements,h):h.push(this.compileStatement(m)),h.push(r.br(_)),u.popControlFlowLabel(c);let x=u.isAny(4128),g=u.isAny(2064),T=!u.isAny(272);if((x||T)&&n.resetIfNeedsRecompile(u,s))return this.currentFlow=n,this.doCompileWhileStatement(e);let E=!1;if(o==1)n.inherit(u),g||(E=!0,n.set(256));else{let F=n.forkElse(a);!T&&!g?(n.inherit(F),n.mergeSideEffects(u)):n.inheritAlternatives(u,F)}this.currentFlow=n;let k=[r.loop(_,r.if(l,r.flatten(h)))];return E&&k.push(r.unreachable()),r.block(f,k)}compileInlineConstant(e,r,n){assert(e.is(37748736));let s=e.type;switch(this.currentType=s,s.kind){case 0:return this.module.i32(e.constantValueKind==1?i64_ne(e.constantIntegerValue,i64_zero):0);case 1:case 2:{let a=s.computeSmallIntegerShift(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)<<a>>a:0)}case 6:case 7:{let a=e.type.computeSmallIntegerMask(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)&a:0)}case 3:case 8:return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 5:case 10:if(!e.program.options.isWasm64)return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 4:case 9:return e.constantValueKind==1?this.module.i64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.i64(0);case 12:{if(!(e.hasDecorator(512)&&r==p.f32))return this.module.f64(e.constantFloatValue);this.currentType=p.f32}case 11:return this.module.f32(e.constantFloatValue);default:return assert(!1),this.module.unreachable()}}compileExpression(e,r,n=0){for(;e.kind==21;)e=e.expression;this.currentType=r,r==p.void&&(n|=8);let s;switch(e.kind){case 8:{s=this.compileAssertionExpression(e,r,n);break}case 9:{s=this.compileBinaryExpression(e,r,n);break}case 10:{s=this.compileCallExpression(e,r,n);break}case 12:{s=this.compileCommaExpression(e,r,n);break}case 13:{s=this.compileElementAccessExpression(e,r,n);break}case 15:{s=this.compileFunctionExpression(e,r,n);break}case 7:case 14:case 19:case 25:case 24:case 26:{s=this.compileIdentifierExpression(e,r,n);break}case 16:{s=this.compileInstanceOfExpression(e,r,n);break}case 17:{s=this.compileLiteralExpression(e,r,n);break}case 18:{s=this.compileNewExpression(e,r,n);break}case 22:{s=this.compilePropertyAccessExpression(e,r,n);break}case 23:{s=this.compileTernaryExpression(e,r,n);break}case 28:{s=this.compileUnaryPostfixExpression(e,r,n);break}case 29:{s=this.compileUnaryPrefixExpression(e,r,n);break}case 30:{let o=e;s=o.expr,this.currentType=o.type;break}case 11:{this.error(100,e.range,"Block-scoped class declarations or expressions"),s=this.module.unreachable();break}default:assert(!1),s=this.module.unreachable()}let a=this.currentType,l=(n&4)!=0;return a!=r.nonNullableType&&(n&2?(s=this.convertExpression(s,a,r,!0,e),this.currentType=a=r):n&1&&(s=this.convertExpression(s,a,r,!1,e),this.currentType=a=r)),l&&(s=this.ensureSmallIntegerWrap(s,a)),this.options.sourceMap&&this.addDebugLocation(s,e.range),s}convertExpression(e,r,n,s,a){let l=this.module;if(r.kind==25)return n.kind==25?e:(this.error(2322,a.range,r.toString(),n.toString()),l.unreachable());if(n.kind==25)return l.drop(e);if(r.isReference||n.isReference)return this.currentFlow.isNonnull(e,r)?r=r.nonNullableType:s&&r.isNullableReference&&!n.isNullableReference&&(this.options.noAssert||(e=this.makeRuntimeNonNullCheck(e,r,a)),r=r.nonNullableType),r.isAssignableTo(n)?(assert(n.isExternalReference||r.kind==n.kind),this.currentType=n,e):s&&n.nonNullableType.isAssignableTo(r)?n.isExternalReference?(this.error(100,a.range,"ref.cast"),this.currentType=n,l.unreachable()):(assert(r.kind==n.kind),this.options.noAssert||(e=this.makeRuntimeDowncastCheck(e,r,n,a)),this.currentType=n,e):(this.error(2322,a.range,r.toString(),n.toString()),this.currentType=n,l.unreachable());if(assert(!r.isReference&&!n.isReference),n.kind==r.kind)return this.currentType=n,e;if(!n.isBooleanValue&&(n.isVectorValue||r.isVectorValue))return this.error(2322,a.range,r.toString(),n.toString()),l.unreachable();if(r.isAssignableTo(n)||s||this.error(200,a.range,r.toString(),n.toString()),r.isFloatValue)if(n.isFloatValue)r.kind==11?n.kind==12&&(e=l.unary(43,e)):n.kind==11&&(e=l.unary(44,e));else if(n.isIntegerValue)if(r.kind==11)if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f32,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?56:26,e):e=l.unary(o?52:25,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?57:28,e):e=l.unary(o?53:27,e)}else if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f64,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?58:30,e):e=l.unary(o?54:29,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?59:32,e):e=l.unary(o?55:31,e)}else assert(n.flags==0,"void type expected"),e=l.drop(e);else if(r.isIntegerValue&&n.isFloatValue){e=this.ensureSmallIntegerWrap(e,r);let o;n.kind==11?r.isLongIntegerValue?r.isSignedIntegerValue?o=39:o=41:r.isSignedIntegerValue?o=35:o=37:r.isLongIntegerValue?r.isSignedIntegerValue?o=40:o=42:r.isSignedIntegerValue?o=36:o=38,e=l.unary(o,e)}else r==p.v128&&n.isBooleanValue?e=this.makeIsTrueish(e,p.v128,a):r.isLongIntegerValue?n.isBooleanValue?e=l.binary(41,e,l.i64(0)):n.isLongIntegerValue||(e=l.unary(24,e)):n.isLongIntegerValue?e=l.unary(r.isSignedIntegerValue?22:23,this.ensureSmallIntegerWrap(e,r)):r.isShortIntegerValue?r.size<n.size&&(e=this.ensureSmallIntegerWrap(e,r)):!s&&!this.options.isWasm64&&r.isVaryingIntegerValue&&!n.isVaryingIntegerValue&&this.warning(201,a.range,r.toString(),n.toString());return this.currentType=n,e}compileAssertionExpression(e,r,n){let s=n&-4;switch(e.assertionKind){case 0:case 1:{let a=this.currentFlow,l=this.resolver.resolveType(assert(e.toType),a,a.sourceFunction,pe(a.contextualTypeArguments));return l?this.compileExpression(e.expression,l,s|2):this.module.unreachable()}case 2:{assert(!e.toType);let a=this.compileExpression(e.expression,r.exceptVoid,s),l=this.currentType;return this.currentFlow.isNonnull(a,l)?this.info(210,e.expression.range):this.options.noAssert||(a=this.makeRuntimeNonNullCheck(a,l,e)),this.currentType=l.nonNullableType,a}case 3:return this.error(100,e.range,"Const assertion"),this.module.unreachable();default:assert(!1)}return this.module.unreachable()}compileCommutativeCompareBinaryExpression(e,r){let n=e.left,s=this.compileExpression(n,r),a=this.currentType,l=e.right,o=this.compileExpression(l,a),u=this.currentType;return this.compileCommutativeCompareBinaryExpressionFromParts(e.operator,n,s,a,l,o,u,r,e)}compileCommutativeCompareBinaryExpressionFromParts(e,r,n,s,a,l,o,u,c){let f=this.module,_=Ie(e),h=Re.fromBinaryToken(e),m=s.lookupOverload(h,this.program),x=o.lookupOverload(h,this.program);if(m&&x&&m!=x)return this.error(240,c.range,_,m.internalName,x.internalName),this.currentType=u,f.unreachable();if(m)return this.compileCommutativeBinaryOverload(m,r,n,s,a,l,o,c);if(x)return this.compileCommutativeBinaryOverload(x,a,l,o,r,n,s,c);let T=p.commonType(s,o,u,!1);if(!T)return this.error(2365,c.range,_,s.toString(),o.toString()),this.currentType=u,f.unreachable();switch(T.isFloatValue&&((Ll(f,l)||Ll(f,n))&&this.warning(907,c.range),(Bl(l)||Bl(n))&&this.warning(908,c.range)),n=this.convertExpression(n,s,T,!1,r),s=T,l=this.convertExpression(l,o,T,!1,a),o=T,this.currentType=p.bool,e){case 78:case 76:return this.makeEq(n,l,T,c);case 79:case 77:return this.makeNe(n,l,T,c);default:return assert(!1),f.unreachable()}}compileNonCommutativeCompareBinaryExpression(e,r){let n=this.module,s=e.left,a=e.right,l,o,u,c,f,_=e.operator,h=Ie(_);l=this.compileExpression(s,r),o=this.currentType;let m=Re.fromBinaryToken(_),x=o.lookupOverload(m,this.program);if(x)return this.compileBinaryOverload(x,s,l,o,a,e);if(u=this.compileExpression(a,o),c=this.currentType,f=p.commonType(o,c,r,!0),!f||!f.isNumericValue)return this.error(2365,e.range,h,o.toString(),c.toString()),this.currentType=r,n.unreachable();switch(l=this.convertExpression(l,o,f,!1,s),o=f,u=this.convertExpression(u,c,f,!1,a),c=f,this.currentType=p.bool,_){case 72:return this.makeLt(l,u,f);case 73:return this.makeGt(l,u,f);case 74:return this.makeLe(l,u,f);case 75:return this.makeGe(l,u,f);default:return assert(!1),n.unreachable()}}compileBinaryExpression(e,r,n){let s=this.module,a=e.left,l=e.right,o,u,c,f,_,h,m=!1;switch(e.operator){case 72:case 73:case 74:case 75:return this.compileNonCommutativeCompareBinaryExpression(e,r);case 78:case 76:case 79:case 77:return this.compileCommutativeCompareBinaryExpression(e,r);case 101:return this.compileAssignment(a,l,r);case 102:m=!0;case 81:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(5);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"+",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"+",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeAdd(o,c,_);break}case 103:m=!0;case 82:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(6);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"-",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"-",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeSub(o,c,_);break}case 104:m=!0;case 84:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(7);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"*",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"*",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeMul(o,c,_);break}case 105:m=!0;case 83:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(10);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"**",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"**",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makePow(o,c,_,e);break}case 106:m=!0;case 85:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(8);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"/",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"/",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeDiv(o,c,_);break}case 107:m=!0;case 86:{o=this.compileExpression(a,r),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(9);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isNumericValue)return this.error(2469,e.range,"%",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isNumericValue)return this.error(2365,e.range,"%",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeRem(o,c,_,e);break}case 108:m=!0;case 89:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(14);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,"<<",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,h=this.makeShl(o,c,f);break}case 109:m=!0;case 90:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(15);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>",u.toString()),this.module.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,h=this.makeShr(o,c,f);break}case 110:m=!0;case 91:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(16);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>>",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,h=this.makeShru(o,c,f);break}case 111:m=!0;case 92:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(11);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isIntegerValue)return this.error(2469,e.range,"&",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isIntegerValue)return this.error(2365,e.range,"&",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeAnd(o,c,_);break}case 112:m=!0;case 93:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(12);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isIntegerValue)return this.error(2469,e.range,"|",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isIntegerValue)return this.error(2365,e.range,"|",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeOr(o,c,_);break}case 113:m=!0;case 94:{o=this.compileExpression(a,r.intType),u=this.currentType;let E=u.getClassOrWrapper(this.program);if(E){let k=E.lookupOverload(13);if(k){h=this.compileBinaryOverload(k,a,o,u,l,e);break}}if(m){if(!u.isIntegerValue)return this.error(2469,e.range,"^",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,r),!_||!_.isIntegerValue)return this.error(2365,e.range,"^",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}h=this.makeXor(o,c,_);break}case 97:{let E=this.currentFlow,k=n&4;o=this.compileExpression(a,r.exceptVoid,k),u=this.currentType;let F=E.forkThen(o);if(this.currentFlow=F,r==p.bool||r==p.void){o=this.makeIsTrueish(o,u,a);let R=this.evaluateCondition(o);R==2?h=o:(c=this.compileExpression(l,u,k),f=this.currentType,c=this.makeIsTrueish(c,f,l),R==1?(h=c,E.inherit(F)):(h=s.if(o,c,s.i32(0)),E.mergeBranch(F),E.noteThen(h,F))),this.currentFlow=E,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,k),f=this.currentType,_=p.commonType(u,f,r),!_)return this.error(2365,e.range,"&&",u.toString(),f.toString()),this.currentType=r,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_;let R=s.runExpression(o,1);R&&(o=R),c=this.convertExpression(c,f,_,!1,l),f=_;let M=this.makeIsTrueish(o,this.currentType,a),z=this.evaluateCondition(M);if(z!=0)h=z==1?c:o;else if(h=s.tryCopyTrivialExpression(o))h=s.if(M,c,h);else{let D=E.getTempLocal(u);E.canOverflow(o,u)||E.setLocalFlag(D.index,2),E.isNonnull(o,u)&&E.setLocalFlag(D.index,4),h=s.if(this.makeIsTrueish(s.local_tee(D.index,o,u.isManaged),u,a),c,s.local_get(D.index,u.toRef()))}E.mergeBranch(F),E.noteThen(h,F),this.currentFlow=E,this.currentType=_}break}case 98:{let E=this.currentFlow,k=n&4;o=this.compileExpression(a,r.exceptVoid,k),u=this.currentType;let F=E.forkElse(o);if(this.currentFlow=F,r==p.bool||r==p.void){o=this.makeIsTrueish(o,u,a);let R=this.evaluateCondition(o);R==1?h=o:(c=this.compileExpression(l,u,k),f=this.currentType,c=this.makeIsTrueish(c,f,l),R==2?(h=c,E.inherit(F)):(h=s.if(o,s.i32(1),c),E.mergeBranch(F),E.noteElse(h,F))),this.currentFlow=E,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,k),f=this.currentType,_=p.commonType(u,f,r),!_)return this.error(2365,e.range,"||",u.toString(),f.toString()),this.currentType=r,s.unreachable();let R=u.is(512)&&f.is(512);o=this.convertExpression(o,u,_,!1,a),u=_;let M=s.runExpression(o,1);M&&(o=M),c=this.convertExpression(c,f,_,!1,l),f=_;let z=this.makeIsTrueish(o,this.currentType,a),D=this.evaluateCondition(z);if(D!=0)h=D==1?o:c;else if(h=s.tryCopyTrivialExpression(o))h=s.if(z,h,c);else{let q=E.getTempLocal(u).index;E.canOverflow(o,u)||E.setLocalFlag(q,2),E.isNonnull(o,u)&&E.setLocalFlag(q,4),h=s.if(this.makeIsTrueish(s.local_tee(q,o,u.isManaged),u,a),s.local_get(q,u.toRef()),c)}E.mergeBranch(F),E.noteElse(h,F),this.currentFlow=E,this.currentType=R?_:_.nonNullableType}break}case 29:return this.error(100,e.range,"'in' operator"),this.currentType=p.bool,s.unreachable();default:{assert(!1),h=this.module.unreachable();break}}if(!m)return h;let g=this.resolver,T=g.lookupExpression(a,this.currentFlow);if(!T)return s.unreachable();let I=g.getTypeOfElement(T);return I||(I=p.void),this.currentType.isStrictlyAssignableTo(I)?this.makeAssignment(T,h,this.currentType,l,g.currentThisExpression,g.currentElementExpression,r!=p.void):(this.error(2322,e.range,this.currentType.toString(),I.toString()),s.unreachable())}makeLt(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(17,e,r);case 4:return s.binary(42,e,r);case 5:return s.binary(234,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(18,e,r);case 9:return s.binary(43,e,r);case 10:return s.binary(235,e,r);case 11:return s.binary(59,e,r);case 12:return s.binary(72,e,r)}return assert(!1),s.unreachable()}makeGt(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(21,e,r);case 4:return s.binary(46,e,r);case 5:return s.binary(238,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(22,e,r);case 9:return s.binary(47,e,r);case 10:return s.binary(239,e,r);case 11:return s.binary(61,e,r);case 12:return s.binary(74,e,r)}return assert(!1),s.unreachable()}makeLe(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(19,e,r);case 4:return s.binary(44,e,r);case 5:return s.binary(236,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(20,e,r);case 9:return s.binary(45,e,r);case 10:return s.binary(237,e,r);case 11:return s.binary(60,e,r);case 12:return s.binary(73,e,r)}return assert(!1),s.unreachable()}makeGe(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(23,e,r);case 4:return s.binary(48,e,r);case 5:return s.binary(240,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(24,e,r);case 9:return s.binary(49,e,r);case 10:return s.binary(241,e,r);case 11:return s.binary(62,e,r);case 12:return s.binary(75,e,r)}return assert(!1),s.unreachable()}makeEq(e,r,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:case 8:return a.binary(15,e,r);case 4:case 9:return a.binary(40,e,r);case 5:case 10:return a.binary(232,e,r);case 11:return a.binary(57,e,r);case 12:return a.binary(70,e,r);case 13:return a.unary(70,a.binary(76,e,r));case 17:case 18:case 19:case 20:return a.ref_eq(e,r);case 21:return a.string_eq(e,r);case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeNe(e,r,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:case 8:return a.binary(16,e,r);case 4:case 9:return a.binary(41,e,r);case 5:case 10:return a.binary(233,e,r);case 11:return a.binary(58,e,r);case 12:return a.binary(71,e,r);case 13:return a.unary(67,a.binary(77,e,r));case 17:case 18:case 19:case 20:return a.unary(20,a.ref_eq(e,r));case 21:return a.unary(20,a.string_eq(e,r));case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeAdd(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(0,e,r);case 4:case 9:return s.binary(25,e,r);case 5:case 10:return s.binary(217,e,r);case 11:return s.binary(50,e,r);case 12:return s.binary(63,e,r)}return assert(!1),s.unreachable()}makeSub(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(1,e,r);case 4:case 9:return s.binary(26,e,r);case 5:case 10:return s.binary(218,e,r);case 11:return s.binary(51,e,r);case 12:return s.binary(64,e,r)}return assert(!1),s.unreachable()}makeMul(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(2,e,r);case 4:case 9:return s.binary(27,e,r);case 5:case 10:return s.binary(219,e,r);case 11:return s.binary(52,e,r);case 12:return s.binary(65,e,r)}return assert(!1),s.unreachable()}makePow(e,r,n,s){let a=this.module;switch(n.kind){case 0:return a.select(a.i32(1),a.binary(15,r,a.i32(0)),e);case 1:case 6:case 2:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:case 8:{if(this.options.willOptimize&&$(e)==14&&$(r)==14){let u=ne(e),c=ne(r);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let l=this.i32PowInstance;if(!l){let u=this.program.lookup(C.ipow32);if(!u)return this.error(2304,s.range,"ipow32"),a.unreachable();assert(u.kind==4),this.i32PowInstance=l=this.resolver.resolveFunction(u,null)}if(!l||!this.compileFunction(l))return a.unreachable();let o=this.makeCallDirect(l,[e,r],s);return n.size<32&&(o=this.ensureSmallIntegerWrap(o,n)),o}case 4:case 9:{if(this.options.willOptimize&&$(e)==14&&$(r)==14){let o=i64_new(ve(e),we(e)),u=i64_new(ve(r),we(r)),c=i64_pow(o,u);return this.currentType=n,a.i64(i64_low(c),i64_high(c))}let l=this.i64PowInstance;if(!l){let o=this.program.lookup(C.ipow64);if(!o)return this.error(2304,s.range,"ipow64"),a.unreachable();assert(o.kind==4),this.i64PowInstance=l=this.resolver.resolveFunction(o,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}case 5:case 10:{let l=this.options.isWasm64;if(this.options.willOptimize&&$(e)==14&&$(r)==14)if(l){let u=i64_new(ve(e),we(e)),c=i64_new(ve(r),we(r)),f=i64_pow(u,c);return this.currentType=n,a.i64(i64_low(f),i64_high(f))}else{let u=ne(e),c=ne(r);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let o=l?this.i64PowInstance:this.i32PowInstance;if(!o){let u=this.program.lookup(l?C.ipow64:C.ipow32);if(!u)return this.error(2304,s.range,l?"ipow64":"ipow32"),a.unreachable();assert(u.kind==4),o=this.resolver.resolveFunction(u,null),l?this.i64PowInstance=o:this.i32PowInstance=o}return!o||!this.compileFunction(o)?a.unreachable():this.makeCallDirect(o,[e,r],s)}case 11:{if(this.options.willOptimize&&$(e)==14&&$(r)==14){let o=Ae(e),u=Ae(r);return this.currentType=n,a.f32(f32(_a(o,u)))}let l=this.f32PowInstance;if(!l){let o=this.program.lookup(C.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(C.pow);if(!u)return this.error(2304,s.range,"Mathf.pow"),a.unreachable();assert(u.kind==4),this.f32PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}case 12:{if(this.options.willOptimize&&$(e)==14&&$(r)==14){let o=Ee(e),u=Ee(r);return this.currentType=n,a.f64(_a(o,u))}let l=this.f64PowInstance;if(!l){let o=this.program.lookup(C.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(C.pow);if(!u)return this.error(2304,s.range,"Math.pow"),a.unreachable();assert(u.kind==4),this.f64PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}}return assert(!1),a.unreachable()}makeDiv(e,r,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return s.binary(3,e,r);case 4:return s.binary(28,e,r);case 5:return s.binary(220,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return s.binary(4,e,r);case 9:return s.binary(29,e,r);case 10:return s.binary(221,e,r);case 11:return s.binary(53,e,r);case 12:return s.binary(66,e,r)}return assert(!1),s.unreachable()}makeRem(e,r,n,s){let a=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 3:return a.binary(5,e,r);case 4:return a.binary(30,e,r);case 5:return a.binary(222,e,r);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),r=this.ensureSmallIntegerWrap(r,n);case 8:return a.binary(6,e,r);case 9:return a.binary(31,e,r);case 10:return a.binary(223,e,r);case 11:{let l=this.f32ModInstance;if(!l){let o=this.program.lookup(C.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(C.mod);if(!u)return this.error(2304,s.range,"Mathf.mod"),a.unreachable();assert(u.kind==4),this.f32ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}case 12:{let l=this.f64ModInstance;if(!l){let o=this.program.lookup(C.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(C.mod);if(!u)return this.error(2304,s.range,"Math.mod"),a.unreachable();assert(u.kind==4),this.f64ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,r],s)}}return assert(!1),a.unreachable()}makeShl(e,r,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(10,e,s.binary(7,r,s.i32(n.size-1)));case 3:case 8:return s.binary(10,e,r);case 4:case 9:return s.binary(35,e,r);case 5:case 10:return s.binary(227,e,r)}return assert(!1),s.unreachable()}makeShr(e,r,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:return s.binary(11,this.ensureSmallIntegerWrap(e,n),s.binary(7,r,s.i32(n.size-1)));case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,r,s.i32(n.size-1)));case 3:return s.binary(11,e,r);case 4:return s.binary(36,e,r);case 5:return s.binary(228,e,r);case 8:return s.binary(12,e,r);case 9:return s.binary(37,e,r);case 10:return s.binary(229,e,r)}return assert(!1),s.unreachable()}makeShru(e,r,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,r,s.i32(n.size-1)));case 3:case 8:return s.binary(12,e,r);case 4:case 9:return s.binary(37,e,r);case 5:case 10:return s.binary(229,e,r)}return assert(!1),s.unreachable()}makeAnd(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return s.binary(7,e,r);case 4:case 9:return s.binary(32,e,r);case 5:case 10:return s.binary(224,e,r)}return assert(!1),s.unreachable()}makeOr(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(8,e,r);case 3:case 8:return s.binary(8,e,r);case 4:case 9:return s.binary(33,e,r);case 5:case 10:return s.binary(225,e,r)}return assert(!1),s.unreachable()}makeXor(e,r,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(9,e,r);case 3:case 8:return s.binary(9,e,r);case 4:case 9:return s.binary(34,e,r);case 5:case 10:return s.binary(226,e,r)}return assert(!1),s.unreachable()}compileUnaryOverload(e,r,n,s){return this.makeCallDirect(e,[n],s,!1)}compileBinaryOverload(e,r,n,s,a,l){let o,u=e.signature,c=u.parameterTypes;e.is(262144)?(n=this.convertExpression(n,s,assert(u.thisType),!1,r),o=c[0]):(n=this.convertExpression(n,s,c[0],!1,r),o=c[1]);let f=this.compileExpression(a,o,1);return this.makeCallDirect(e,[n,f],l)}compileCommutativeBinaryOverload(e,r,n,s,a,l,o,u){let c=e.signature,f=c.parameterTypes;return e.is(262144)?(n=this.convertExpression(n,s,assert(c.thisType),!1,r),l=this.convertExpression(l,o,f[0],!1,a)):(n=this.convertExpression(n,s,f[0],!1,r),l=this.convertExpression(l,o,f[1],!1,a)),this.makeCallDirect(e,[n,l],u)}compileAssignment(e,r,n){let a=this.program.resolver,l=this.currentFlow,o=a.lookupExpression(e,l);if(!o)return this.module.unreachable();let u=a.currentThisExpression,c=a.currentElementExpression,f;switch(o.kind){case 0:case 1:{if(o.kind==0){if(!this.compileGlobalLazy(o,e))return this.module.unreachable()}else if(!o.declaredByFlow(l)&&(!o.isCaptured||o.envSlotIndex<0))return this.error(100,e.range,"Closures"),this.module.unreachable();if(this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();f=o.type,o.hasDecorator(2048)&&this.checkUnsafe(e);break}case 10:{let m=o,x=a.resolveProperty(m);if(!x)return this.module.unreachable();o=x}case 11:{let m=o;if(m.isField&&this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();let x=m.setterInstance;if(!x)return this.error(2540,e.range,m.internalName),this.module.unreachable();assert(x.signature.parameterTypes.length==1),f=x.signature.parameterTypes[0],x.hasDecorator(2048)&&this.checkUnsafe(e);break}case 15:{let m=o.parent;assert(m.kind==7);let x=m,g=l.is(32768),T=x.lookupOverload(2,g);if(!T)return x.lookupOverload(1,g)?this.error(2542,e.range,x.internalName):this.error(2329,e.range,x.internalName),this.module.unreachable();let I=T.signature.parameterTypes;assert(I.length==2),f=I[1],T.hasDecorator(2048)&&this.checkUnsafe(e),!g&&this.options.pedantic&&this.pedantic(904,e.range);break}default:return this.error(2540,e.range,o.internalName),this.module.unreachable()}assert(f!=p.void);let _=this.compileExpression(r,f),h=this.currentType;return f.isNullableReference&&this.currentFlow.isNonnull(_,h)&&(f=f.nonNullableType),this.makeAssignment(o,this.convertExpression(_,h,f,!1,r),f,r,u,c,n!=p.void)}makeAssignment(e,r,n,s,a,l,o){let u=this.module,c=this.currentFlow;switch(e.kind){case 1:{let f=e;return c.isLocalFlag(f.index,1,!0)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeLocalAssignment(f,r,n,o)}case 0:{let f=e;return this.compileGlobalLazy(f,s)?e.isAny(72)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeGlobalAssignment(f,r,n,o):u.unreachable()}case 10:{let f=this.resolver.resolveProperty(e);if(!f)return u.unreachable();e=f}case 11:{let f=e;if(f.isField){let h=c.sourceFunction.is(524288);if(f.is(64)){let m=f.initializerNode;if(!h||m)return this.error(2540,s.range,f.internalName),u.unreachable()}a=assert(a),h&&a.kind==25&&c.setThisFieldFlag(f,1)}let _=f.setterInstance;if(!_)return this.error(2540,s.range,e.internalName),u.unreachable();if(assert(_.signature.parameterTypes.length==1),assert(_.signature.returnType==p.void),f.is(262144)){let h=assert(_.signature.thisType),m=this.compileExpression(assert(a),h,33);if(!o)return this.makeCallDirect(_,[m,r],s);let x=c.getTempLocal(n),g=n.toRef(),T=u.block(null,[this.makeCallDirect(_,[m,u.local_tee(x.index,r,n.isManaged,g)],s),u.local_get(x.index,g)],g);return this.currentType=n,T}else{if(!o)return this.makeCallDirect(_,[r],s);let h=c.getTempLocal(n),m=n.toRef(),x=u.block(null,[this.makeCallDirect(_,[u.local_tee(h.index,r,n.isManaged,m)],s),u.local_get(h.index,m)],m);return this.currentType=n,x}}case 15:{let _=e.parent;assert(_.kind==7);let h=_;assert(h.kind==7);let m=c.is(32768),x=h.lookupOverload(1,m);if(!x)return this.error(2329,s.range,h.internalName),u.unreachable();let g=h.lookupOverload(2,m);if(!g)return this.error(2542,s.range,h.internalName),this.currentType=o?x.signature.returnType:p.void,u.unreachable();assert(g.signature.parameterTypes.length==2);let T=h.type,I=this.compileExpression(assert(a),T,33),E=g.signature.parameterTypes[0],k=x.signature.parameterTypes[0];if(!E.equals(k))return this.errorRelated(237,x.identifierAndSignatureRange,g.identifierAndSignatureRange,h.internalName),this.currentType=o?x.signature.returnType:p.void,u.unreachable();let F=this.compileExpression(assert(l),E,1),R=this.currentType;if(o){let M=c.getTempLocal(T),z=c.getTempLocal(R),D=x.signature.returnType;return u.block(null,[this.makeCallDirect(g,[u.local_tee(M.index,I,T.isManaged),u.local_tee(z.index,F,R.isManaged),r],s),this.makeCallDirect(x,[u.local_get(M.index,M.type.toRef()),u.local_get(z.index,z.type.toRef())],s)],D.toRef())}else return this.makeCallDirect(g,[I,F,r],s)}default:this.error(2541,s.range)}return u.unreachable()}makeLocalAssignment(e,r,n,s){let a=this.module,l=this.currentFlow,o=e.type;assert(o!=p.void);let u=e.index;if(e.isCaptured&&e.envSlotIndex>=0){let c=l.sourceFunction;if(!(e.parent==c)||c.envLocal){l.setLocalFlag(u,8),o.isNullableReference&&(!n.isNullableReference||l.isNonnull(r,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),o.isShortIntegerValue&&(l.canOverflow(r,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2));let _=this.compileClosureStore(e,r,n);if(s){let h=this.compileClosureLoad(e,e.declaration);return this.currentType=o,a.block(null,[_,h],o.toRef())}else return this.currentType=p.void,_}}return o.isNullableReference&&(!n.isNullableReference||l.isNonnull(r,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),l.setLocalFlag(u,8),o.isShortIntegerValue&&(l.canOverflow(r,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2)),e.isCaptured||(e.wasAccessedAsLocal=!0),s?(this.currentType=o,a.local_tee(u,r,o.isManaged)):(this.currentType=p.void,a.local_set(u,r,o.isManaged))}makeGlobalAssignment(e,r,n,s){let a=this.module,l=e.type;assert(l!=p.void);let o=l.toRef();return r=this.ensureSmallIntegerWrap(r,l),s?(this.currentType=l,a.block(null,[a.global_set(e.internalName,r),a.global_get(e.internalName,o)],o)):(this.currentType=p.void,a.global_set(e.internalName,r))}compileCallExpression(e,r,n){let s=this.module,a=this.currentFlow;if(e.expression.kind==24){let f=this.currentFlow,_=f.sourceFunction;if(!_.is(524288))return this.error(2337,e.range),s.unreachable();let h=assert(_.parent);assert(h.kind==7);let m=h,x=m.base;if(!x||m.prototype.implicitlyExtendsObject)return this.error(2335,e.expression.range),s.unreachable();let g=assert(f.lookupLocal(C.this_)),T=this.options.sizeTypeRef,I=this.ensureConstructor(x,e);this.checkFieldInitialization(x,e);let E=this.compileCallDirect(I,e.args,e,s.local_get(g.index,T));return f.isAny(8256)?(this.error(17009,e.range),s.unreachable()):(f.set(192),this.currentType=p.void,s.local_set(g.index,E,m.type.isManaged))}let l=this.resolver.lookupExpression(e.expression,a);if(!l)return s.unreachable();let o=this.resolver.currentThisExpression;switch(l.kind){case 4:{let f=l;if(f.hasDecorator(512))return this.compileCallExpressionBuiltin(f,e,r);let _=this.resolver.maybeInferCall(e,f,a);if(!_)return this.module.unreachable();l=_}case 5:{let f=l,_=0;return f.is(262144)&&(_=this.compileExpression(assert(o),assert(f.signature.thisType),33)),this.compileCallDirect(f,e.args,e,_,n)}}let u=this.compileExpression(e.expression,p.auto),c=this.currentType.getSignature();if(c)return this.compileCallIndirect(c,u,e.args,e,0,r==p.void);if(this.error(2349,e.range,this.currentType.toString()),l.kind==10){let f=l.getterPrototype;f&&this.infoRelated(6234,e.range,f.identifierNode.range)}return s.unreachable()}compileCallExpressionLike(e,r,n,s,a,l=0){let o=this._reusableCallExpression;return o?(o.expression=e,o.typeArguments=r,o.args=n,o.range=s):this._reusableCallExpression=o=G.createCallExpression(e,r,n,s),this.compileCallExpression(o,a,l)}compileCallExpressionBuiltin(e,r,n){e.hasDecorator(2048)&&this.checkUnsafe(r);let s=null,a=e.typeParameterNodes,l=r.typeArguments;r.typeArguments&&(e.is(65536)||this.error(2315,r.range,e.internalName),s=this.resolver.resolveTypeArguments(assert(a),l,this.currentFlow,this.currentFlow.sourceFunction.parent,pe(this.currentFlow.contextualTypeArguments),r));let o=r.expression,u=new to(this,e,s,r.args,o.kind==22?o.expression:null,n,r,!1),c;return e.is(262144)?c=`${assert(e.getBoundClassOrInterface()).prototype.internalName}#${e.name}`:c=e.internalName,assert(b.has(c)),assert(b.get(c))(u)}checkCallSignature(e,r,n,s){let a=e.thisType;if(n!=(a!=null))return this.error(2685,s.range),!1;let l=e.hasRest,o=e.requiredParameters,u=e.parameterTypes.length;return r<o?(this.error(o<u?2555:2554,s.range,o.toString(),r.toString()),!1):r>u&&!l?(this.error(2554,s.range,u.toString(),r.toString()),!1):!0}checkUnsafe(e,r=null){this.options.noUnsafe&&!e.range.source.isLibrary&&(r?this.errorRelated(101,e.range,r.range):this.error(101,e.range))}adjustArgumentsForRestParams(e,r,n){if(!r.hasRest)return e;let s=e.length,a=r.parameterTypes.length;if(s<a)return e;let l=e.slice(a-1),o=new le(l[0].range.start,l[l.length-1].range.end);o.source=n.range.source;let u=new Ir(l,o),c=e.slice(0,a-1);return c.push(u),c}compileCallDirect(e,r,n,s=0,a=0){let l=r.length,o=e.signature;if(!this.checkCallSignature(o,l,s!=0,n))return this.currentType=o.returnType,this.module.unreachable();e.hasDecorator(2048)&&this.checkUnsafe(n),r=this.adjustArgumentsForRestParams(r,o,n),l=r.length;let u=this.currentFlow.sourceFunction;if(u.is(524288)&&n.isAccessOnThis){let x=u.parent;assert(x.kind==7),this.checkFieldInitialization(x,n)}if((e.hasDecorator(64)||this.currentFlow.is(131072))&&(!e.is(268435456)||n.isAccessOnSuper)){assert(!e.is(134217728));let x=this.inlineStack;if(x.includes(e))this.warning(217,n.range,e.internalName);else{let g=o.parameterTypes;assert(l<=g.length);let T=new Array(l);for(let E=0;E<l;++E)T[E]=this.compileExpression(r[E],g[E],1);x.push(e);let I=this.makeCallInline(e,T,s,(a&8)!=0);return x.pop(),I}}let f=s?l+1:l,_=new Array(f),h=0;s&&(_[0]=s,h=1);let m=o.parameterTypes;for(let x=0;x<l;++x,++h){let g=m[x],T=this.compileExpression(r[x],g,1);_[h]=T}return assert(h==f),this.makeCallDirect(e,_,n,(a&8)!=0)}makeCallInline(e,r,n=0,s=!1){let a=this.module,l=r?r.length:0,u=e.signature.parameterTypes,c=u.length,f=this.currentFlow,_=zt.createInline(f.targetFunction,e),h=[];if(n){let g=assert(e.parent);assert(g.kind==7);let T=g,I=assert(e.signature.thisType),E=_.addScopedLocal(C.this_,I);h.push(a.local_set(E.index,n,I.isManaged)),_.setLocalFlag(E.index,8);let k=T.base;k&&_.addScopedAlias(C.super_,k.type,E.index)}else assert(!e.signature.thisType);for(let g=0;g<l;++g){let T=r[g],I=u[g],E=_.addScopedLocal(e.getParameterName(g),I);f.canOverflow(T,I)||_.setLocalFlag(E.index,2),_.isNonnull(T,I)&&_.setLocalFlag(E.index,4),h.push(a.local_set(E.index,T,I.isManaged)),_.setLocalFlag(E.index,8)}this.currentFlow=_;let m=e.is(524288);m&&_.set(65536);for(let g=l;g<c;++g){let T=u[g],I=this.compileExpression(assert(e.prototype.functionTypeNode.parameters[g].initializer),T,1),E=_.addScopedLocal(e.getParameterName(g),T);h.push(this.makeLocalAssignment(E,I,T,!1))}if(_.unset(65536),this.compileFunctionBody(e,h),m){let g=e.parent;assert(g.kind==7),this.checkFieldInitializationInFlow(g,_)}let x=_.returnType;return this.currentFlow=f,this.currentType=x,a.block(_.inlineReturnLabel,h,x.toRef())}ensureArgumentsLength(){let e=d.argumentsLength;if(!this.builtinArgumentsLength){let r=this.module;this.builtinArgumentsLength=r.addGlobal(e,L.I32,!0,r.i32(0))}return e}ensureClosureEnvironmentGlobal(){let e="~lib/__closure_env";if(!this.closureEnvironmentGlobal){let r=this.module,n=this.options.sizeTypeRef,s=this.options.isWasm64?r.i64(0):r.i32(0);this.closureEnvironmentGlobal=r.addGlobal(e,n,!0,s)}return e}ensureExceptionTag(){let e="error";if(!this.exceptionTagEnsured){let r=this.module,n=this.options.sizeTypeRef;r.addTag(e,n,L.None),this.exceptionTagEnsured=!0}return e}ensureVarargsStub(e){let r=e.varargsStub;if(r)return r;let n=e.signature,s=n.parameterTypes,a=e.prototype.functionTypeNode.parameters,l=n.returnType,o=e.is(262144),u=n.requiredParameters,c=u,f=s.length,_=f;o&&(++c,++_);let h=assert(_-c),m=new Array(c),x=0,g=new Array,T=this.module,I=n.thisType;I&&(m[0]=T.local_get(0,I.toRef()),x=1);for(let q=0;q<u;++q,++x){let ee=s[q];m[x]=T.local_get(x,ee.toRef())}assert(x==c),r=e.newStub("varargs",f),e.varargsStub=r;let E=this.currentFlow,k=r.flow;e.is(524288)&&k.set(65536),this.currentFlow=k;let F=h+1,R=new Array(F),M=`of${h}`;for(let q=0;q<F;++q)R[q]=`${q}${M}`;let z=this.ensureArgumentsLength(),D=T.block(R[0],[T.block("outOfRange",[T.switch(R,"outOfRange",u?T.binary(1,T.global_get(z,L.I32),T.i32(u)):T.global_get(z,L.I32))]),T.unreachable()]);for(let q=0;q<h;++q,++x){let ee=s[u+q],Y=a[u+q],te=Y.initializer,j;if(Y.parameterKind===2){let re=new Ir([],Y.range.atEnd);j=this.compileArrayLiteral(re,ee,2),j=T.local_set(x,j,ee.isManaged)}else te?(j=this.compileExpression(te,ee,1),j=T.local_set(x,j,ee.isManaged)):(this.error(215,Y.range),j=T.unreachable());D=T.block(R[q+1],[D,j]),m[x]=T.local_get(x,ee.toRef())}assert(x==_),g.push(D),g.push(this.makeCallDirect(e,m,e.declaration.name)),this.currentFlow=E;let W=T.addFunction(r.internalName,r.signature.paramRefs,r.signature.resultRefs,Br(r.getNonParameterLocalTypes()),T.flatten(g,l.toRef()));return r.set(8388608),r.finalize(T,W),r}ensureOverrideStub(e){let r=e.overrideStub;if(r)return r;r=e.newStub("override"),e.overrideStub=r;let n=this.module;return r.ref=n.addFunction(r.internalName,r.signature.paramRefs,r.signature.resultRefs,null,n.unreachable()),this.overrideStubs.add(e),r}finalizeOverrideStub(e){let r=this.ensureOverrideStub(e);if(r.is(8388608))return;assert(e.parent.kind==7||e.parent.kind==9);let n=this.module,a=this.options.usizeType.toRef(),l=e.signature.parameterTypes,o=e.signature.returnType,u=l.length,c=1+l.length,f=new zn(this.module,n.load(4,!1,n.binary(a==L.I64?26:1,n.local_get(0,a),a==L.I64?n.i64(8):n.i32(8)),L.I32)),_=this.resolver.resolveOverrides(e);if(_){let g=new Map;for(let T=0,I=_.length;T<I;++T){let E=_[T];if(!E.is(8388608))continue;let k=E.signature,F=e.signature;if(!k.isAssignableTo(F,!0)){this.error(2322,E.identifierNode.range,k.toString(),F.toString());continue}let R=k.parameterTypes,M=R.length,z=new Array(1+M);z[0]=n.local_get(0,a);for(let j=1;j<=u;++j)z[j]=n.local_get(j,l[j-1].toRef());let D=!1;for(let j=u;j<M;++j)z[1+j]=this.makeZero(R[j]),D=!0;let W=D?this.ensureVarargsStub(E).internalName:E.internalName,q=k.returnType.toRef(),ee=new Array;D&&ee.push(n.global_set(this.ensureArgumentsLength(),n.i32(u))),o==p.void?(ee.push(n.call(W,z,q)),ee.push(n.return())):ee.push(n.return(n.call(W,z,q)));let Y=assert(E.getBoundClassOrInterface());f.addCase(Y.id,ee);let te=Y.extenders;if(te)for(let j=Set_values(te),re=0,H=j.length;re<H;++re){let ue=j[re],be=ue.prototype.instanceMembers;be&&be.has(e.declaration.name.text)||(!g.has(ue)||!assert(g.get(ue)).extends(Y))&&(g.set(ue,Y),f.addOrReplaceCase(ue.id,ee))}}}let h,m=e.getBoundClassOrInterface();if(!e.is(128)&&!(m&&m.kind==9)){let g=new Array(u);g[0]=n.local_get(0,a);for(let T=0,I=l.length;T<I;++T)g[1+T]=n.local_get(1+T,l[T].toRef());h=n.call(e.internalName,g,o.toRef())}else h=n.unreachable();r.ref&&n.removeFunction(r.internalName),r.ref=n.addFunction(r.internalName,r.signature.paramRefs,r.signature.resultRefs,[L.I32],n.block(null,[f.render(c),h],o.toRef())),r.set(8388608)}needToStack(e){let r=this.module.runExpression(e,0);if(r==0)return!0;let n=Wp(r,this.options.isWasm64);if(i64_eq(n,i64_zero))return!1;let s=this.staticGcObjectOffsets;return!(s.has(i64_high(n))&&assert(s.get(i64_high(n))).has(i64_low(n)))}operandsTostack(e,r){if(!this.options.stackSize)return;let n=this.module,s=0,a=e.thisType;if(a){if(a.isManaged){let u=r[0];this.needToStack(u)&&(r[s]=n.tostack(u))}++s}let l=0,o=e.parameterTypes;for(assert(o.length>=r.length-s);s<r.length;){if(o[l].isManaged){let c=r[s];this.needToStack(c)&&(r[s]=n.tostack(c))}++s,++l}}makeCallDirect(e,r,n,s=!1){if(e.hasDecorator(64))if(e.is(268435456))this.warning(228,n.range,e.internalName);else{assert(!e.is(134217728));let g=this.inlineStack;if(g.includes(e))this.warning(217,n.range,e.internalName);else{g.push(e);let T;if(e.is(262144)){let I=assert(r);assert(I.length),T=this.makeCallInline(e,I.slice(1),I[0],s)}else T=this.makeCallInline(e,r,0,s);return g.pop(),T}}let a=this.module,l=r?r.length:0,o=l,c=e.signature.requiredParameters,f=e.signature.parameterTypes,_=f.length,h=_;if(e.is(262144)&&(++c,++h,--o),assert(l>=c),!this.compileFunction(e))return a.unreachable();let m=e.signature.returnType;if(l<h){r||(r=new Array(h),r.length=0);let g=e.prototype.functionTypeNode.parameters;assert(g.length==f.length);let T=!0;for(let I=o;I<_;++I){let E=g[I].initializer;if(E){if(E.compilesToConst){r.push(this.compileExpression(E,f[I],1));continue}let k=this.resolver.lookupExpression(E,e.flow,f[I],1);if(k&&k.kind==0){let F=k;if(this.compileGlobalLazy(F,E)&&F.is(33554432)){r.push(this.compileInlineConstant(F,f[I],1));continue}}}r.push(this.makeZero(f[I])),T=!1}if(!T&&!e.is(2097152)){let I=e;if(e=this.ensureVarargsStub(e),!this.compileFunction(e))return a.unreachable();e.flow.flags=I.flow.flags;let E=m.toRef(),k=r[h-1];assert(!(ki(k,a.ref)&32));let F=f[_-1];r[h-1]=a.block(null,[a.global_set(this.ensureArgumentsLength(),a.i32(o)),k],F.toRef()),this.operandsTostack(e.signature,r);let R=a.call(e.internalName,r,E);return m!=p.void&&s?(R=a.drop(R),this.currentType=p.void):this.currentType=m,R}}e.is(268435456)&&!n.isAccessOnSuper&&(e=this.ensureOverrideStub(e)),r&&this.operandsTostack(e.signature,r);let x=a.call(e.internalName,r,m.toRef());return this.currentType=m,x}compileCallIndirect(e,r,n,s,a=0,l=!1){let o=n.length;if(!this.checkCallSignature(e,o,a!=0,s))return this.module.unreachable();n=this.adjustArgumentsForRestParams(n,e,s),o=n.length;let u=a?o+1:o,c=new Array(u),f=0;a&&(c[0]=a,f=1);let _=e.parameterTypes;for(let h=0;h<o;++h,++f)c[f]=this.compileExpression(n[h],_[h],1);return assert(f==u),this.makeCallIndirect(e,r,s,c,l)}makeCallIndirect(e,r,n,s=null,a=!1){let l=this.module,o=s?s.length:0,u=o,f=e.requiredParameters,_=e.parameterTypes,h=e.returnType,m=_.length,x=m;if(e.thisType&&(++f,++x,--u),assert(o>=f),o<x){s||(s=new Array(x),s.length=0);let M=e.parameterTypes;for(let z=u;z<m;++z)s.push(this.makeZero(M[z]))}let g=(ki(r,l.ref)&32)==0;if(s&&g){for(let M=0;M<o;++M)if(!l.isTrivialExpression(s[M])){g=!1;break}}let T=new Array,I=this.options.sizeTypeRef;if(!g){let M=this.currentFlow.getTempLocal(this.options.usizeType),z=l.local_set(M.index,r,!0);T.push(z),r=l.local_get(M.index,I)}let E=this.ensureArgumentsLength(),k=l.block(null,[l.global_set(E,l.i32(u)),r],I);if(s&&this.operandsTostack(e,s),this.options.hasFeature(65536)){let M=this.ensureClosureEnvironmentGlobal(),z=this.options.usizeType.byteSize,D=this.options.isWasm64?8:4,ee=this.currentFlow.getTempLocal(this.options.usizeType).index,Y=[l.local_set(ee,k,!0),l.global_set(M,l.load(z,!1,l.local_get(ee,I),I,D))],te=l.load(4,!1,l.local_get(ee,I),L.I32),j=l.call_indirect(null,l.block(null,Y.concat([te]),L.I32),s,e.paramRefs,e.resultRefs);return this.currentType=h,T.push(j),l.flatten(T,h.toRef())}let F=l.load(4,!1,k,L.I32),R=l.call_indirect(null,F,s,e.paramRefs,e.resultRefs);return this.currentType=h,T.push(R),l.flatten(T,h.toRef())}compileCommaExpression(e,r,n){let s=e.expressions,a=s.length,l=new Array(a--);for(let o=0;o<a;++o)l[o]=this.compileExpression(s[o],p.void,9);return l[a]=this.compileExpression(s[a],r,n),this.module.flatten(l,this.currentType.toRef())}compileElementAccessExpression(e,r,n){let s=this.module,a=e.expression,l=this.resolver,o=l.lookupExpression(a,this.currentFlow,p.auto,1);if(o&&o.kind==2){let c=this.compileExpression(e.elementExpression,p.i32,1),f=this.ensureEnumToString(o,e);return this.currentType=this.program.stringInstance.type,f==null?s.unreachable():s.call(f,[c],L.I32)}let u=l.resolveExpression(a,this.currentFlow);if(u){let c=u.getClassOrWrapper(this.program);if(c){let f=this.currentFlow.is(32768),_=c.lookupOverload(1,f);if(_){let h=assert(_.signature.thisType),m=this.compileExpression(a,h,1);return!f&&this.options.pedantic&&this.pedantic(904,e.range),this.compileCallDirect(_,[e.elementExpression],e,m,n)}}this.error(2329,e.expression.range,u.toString())}return s.unreachable()}compileFunctionExpression(e,r,n){let s=e.declaration.clone();assert(!s.typeParameters);let a=this.currentFlow,l=a.sourceFunction,o=s.name.text.length>0,u=!o||r!=p.void,c=u?`${o?s.name.text:"anonymous"}|${l.nextAnonymousId++}`:s.name.text,f=Ce(c,l,!1),_=this.program.instancesByName.has(f)?this.program.instancesByName.get(f):null;if(_&&_.kind==5){let F=_;if(F.is(8388608)){let R=this.ensureRuntimeFunction(F),M=F.capturedLocals;return M&&M.size>0?this.compileClosureFunctionCreation(F,l):(this.currentType=F.signature.type,this.options.isWasm64?this.module.i64(i64_low(R),i64_high(R)):this.module.i32(i64_low(R)))}}let h;_&&_.kind==5?h=_.prototype:h=new Xe(c,l,s,0);let m,x=pe(a.contextualTypeArguments),g=this.module,T=r.signatureReference;if(T){let F=h.functionTypeNode,R=F.parameters,M=R.length,z=T.parameterTypes,D=z.length;if(M>D)return this.error(2554,e.range,D.toString(),M.toString()),g.unreachable();for(let re=0;re<M;++re){let H=R[re];if(!ke(H.type)){let ue=this.resolver.resolveType(H.type,a,l.parent,x);if(!ue)return g.unreachable();if(!z[re].isStrictlyAssignableTo(ue))return this.error(2322,H.range,z[re].toString(),ue.toString()),g.unreachable()}}let W=T.returnType;if(!ke(F.returnType)){let re=this.resolver.resolveType(F.returnType,a,l.parent,x);if(!re)return g.unreachable();if(W==p.void?re!=p.void:!re.isStrictlyAssignableTo(W))return this.error(2322,F.returnType.range,re.toString(),W.toString()),g.unreachable()}let q=T.thisType,ee=F.explicitThisType;if(ee){if(!q)return this.error(2332,ee.range),g.unreachable();let re=this.resolver.resolveType(ee,a,l.parent,x);if(!re)return g.unreachable();if(!q.isStrictlyAssignableTo(re))return this.error(2322,ee.range,q.toString(),re.toString()),g.unreachable()}let Y=qe.create(this.program,z,W,q,D);m=new gt(h.name,h,null,Y,x),m.flow.outer=a;let te=this.analyzeCapturedVariables(s,a);if(te.size>0){if(!this.options.hasFeature(65536))return this.error(103,e.range,"closures"),g.unreachable();m.capturedLocals=te,m.outerFunction=l,this.ensureClosureEnvironmentsForCaptures(te,a)}let j=this.compileFunction(m);if(this.currentType=T.type,!j)return g.unreachable()}else{if(m=this.resolver.resolveFunction(h,null,x),!m)return this.module.unreachable();m.flow.outer=a;let F=this.analyzeCapturedVariables(s,a);if(F.size>0){if(!this.options.hasFeature(65536))return this.error(103,e.range,"closures"),g.unreachable();m.capturedLocals=F,m.outerFunction=l,this.ensureClosureEnvironmentsForCaptures(F,a)}let R=this.compileFunction(m);if(this.currentType=m.signature.type,!R)return g.unreachable()}let I=this.ensureRuntimeFunction(m),E=m.capturedLocals;if(E&&E.size>0)return this.compileClosureFunctionCreation(m,l);let k=this.options.isWasm64?g.i64(i64_low(I),i64_high(I)):g.i32(i64_low(I));if(!u){let F=m.name,R=a.getScopedLocal(F);if(R)R.declaration.range.source.isNative?this.error(2300,s.name.range,F):this.errorRelated(2300,s.name.range,R.declaration.name.range,F);else{let M=m.type,z=a.addScopedLocal(m.name,M);a.setLocalFlag(z.index,9),k=g.local_tee(z.index,k,M.isManaged)}}return k}scanNodeForCaptures(e,r,n,s){switch(e.kind){case 7:{let l=e.text;if(n.has(l))break;let o=r.lookupLocal(l);if(o||(o=r.lookupLocalInOuter(l)),o&&!s.has(o)){if(o.isCaptured=!0,o.envOwner||(o.envOwner=o.parent),o.wasAccessedAsLocal){let u=o.parent;u.needsCaptureRecompile=!0}if(o.envSlotIndex>=0)s.set(o,o.envSlotIndex);else{let c=this.options.usizeType.byteSize,f=o.envOwner;if(f&&f.capturedLocals){let m=changetype(f.capturedLocals);for(let x=Map_keys(m),g=0,T=x.length;g<T;++g){let I=x[g];if(I.envOwner==f&&I.envSlotIndex>=0){let E=I.envSlotIndex+I.type.byteSize;E>c&&(c=E)}}}for(let m=Map_keys(s),x=0,g=m.length;x<g;++x){let T=m[x];if(T.envOwner==f&&T.envSlotIndex>=0){let I=T.envSlotIndex+T.type.byteSize;I>c&&(c=I)}}let h=o.type.byteSize;c=c+h-1&~(h-1),o.envSlotIndex=c,s.set(o,o.envSlotIndex)}}break}case 25:{let a=r.lookupLocal(C.this_);if(a||(a=r.lookupLocalInOuter(C.this_)),a&&!s.has(a)){if(a.isCaptured=!0,a.envOwner||(a.envOwner=a.parent),a.wasAccessedAsLocal){let l=a.parent;l.needsCaptureRecompile=!0}if(a.envSlotIndex>=0)s.set(a,a.envSlotIndex);else{let o=this.options.usizeType.byteSize,u=a.envOwner;if(u&&u.capturedLocals){let _=changetype(u.capturedLocals);for(let h=Map_keys(_),m=0,x=h.length;m<x;++m){let g=h[m];if(g.envOwner==u&&g.envSlotIndex>=0){let T=g.envSlotIndex+g.type.byteSize;T>o&&(o=T)}}}for(let _=Map_keys(s),h=0,m=_.length;h<m;++h){let x=_[h];if(x.envOwner==u&&x.envSlotIndex>=0){let g=x.envSlotIndex+x.type.byteSize;g>o&&(o=g)}}let f=a.type.byteSize;o=o+f-1&~(f-1),a.envSlotIndex=o,s.set(a,a.envSlotIndex)}}break}case 15:{let l=e.declaration,o=l.signature.parameters;for(let c=0,f=o.length;c<f;c++){let _=o[c].initializer;_&&this.scanNodeForCaptures(_,r,n,s)}for(let c=0,f=o.length;c<f;c++)n.add(o[c].name.text);let u=l.body;u&&this.scanNodeForCaptures(u,r,n,s);for(let c=0,f=o.length;c<f;c++)n.delete(o[c].name.text);break}case 8:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 9:{let a=e;this.scanNodeForCaptures(a.left,r,n,s),this.scanNodeForCaptures(a.right,r,n,s);break}case 10:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);let l=a.args;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],r,n,s);break}case 12:{let l=e.expressions;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],r,n,s);break}case 17:{let a=e;if(a.literalKind==5){let o=a.elementExpressions;for(let u=0,c=o.length;u<c;u++){let f=o[u];f&&this.scanNodeForCaptures(f,r,n,s)}}else if(a.literalKind==6){let o=a.values;for(let u=0,c=o.length;u<c;u++)this.scanNodeForCaptures(o[u],r,n,s)}else if(a.literalKind==3){let o=a.expressions;for(let u=0,c=o.length;u<c;u++)this.scanNodeForCaptures(o[u],r,n,s)}break}case 13:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s),this.scanNodeForCaptures(a.elementExpression,r,n,s);break}case 18:{let a=e;this.scanNodeForCaptures(a.typeName,r,n,s);let l=a.args;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],r,n,s);break}case 21:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 22:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 23:{let a=e;this.scanNodeForCaptures(a.condition,r,n,s),this.scanNodeForCaptures(a.ifThen,r,n,s),this.scanNodeForCaptures(a.ifElse,r,n,s);break}case 28:{let a=e;this.scanNodeForCaptures(a.operand,r,n,s);break}case 29:{let a=e;this.scanNodeForCaptures(a.operand,r,n,s);break}case 16:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 31:{let l=e.statements;for(let o=0,u=l.length;o<u;o++)this.scanNodeForCaptures(l[o],r,n,s);break}case 34:{let a=e;this.scanNodeForCaptures(a.body,r,n,s),this.scanNodeForCaptures(a.condition,r,n,s);break}case 39:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 40:{let a=e,l=a.initializer,o=a.condition,u=a.incrementor;l&&this.scanNodeForCaptures(l,r,n,s),o&&this.scanNodeForCaptures(o,r,n,s),u&&this.scanNodeForCaptures(u,r,n,s),this.scanNodeForCaptures(a.body,r,n,s);break}case 41:{let a=e;this.scanNodeForCaptures(a.variable,r,n,s),this.scanNodeForCaptures(a.iterable,r,n,s),this.scanNodeForCaptures(a.body,r,n,s);break}case 42:{let a=e;this.scanNodeForCaptures(a.condition,r,n,s),this.scanNodeForCaptures(a.ifTrue,r,n,s);let l=a.ifFalse;l&&this.scanNodeForCaptures(l,r,n,s);break}case 44:{let l=e.value;l&&this.scanNodeForCaptures(l,r,n,s);break}case 45:{let a=e;this.scanNodeForCaptures(a.condition,r,n,s);let l=a.cases;for(let o=0,u=l.length;o<u;o++){let c=l[o],f=c.label;f&&this.scanNodeForCaptures(f,r,n,s);let _=c.statements;for(let h=0,m=_.length;h<m;h++)this.scanNodeForCaptures(_[h],r,n,s)}break}case 46:{let a=e;this.scanNodeForCaptures(a.value,r,n,s);break}case 47:{let a=e,l=a.bodyStatements;for(let c=0,f=l.length;c<f;c++)this.scanNodeForCaptures(l[c],r,n,s);let o=a.catchStatements;if(o)for(let c=0,f=o.length;c<f;c++)this.scanNodeForCaptures(o[c],r,n,s);let u=a.finallyStatements;if(u)for(let c=0,f=u.length;c<f;c++)this.scanNodeForCaptures(u[c],r,n,s);break}case 48:{let l=e.declarations;for(let o=0,u=l.length;o<u;o++){let c=l[o];n.add(c.name.text);let f=c.initializer;f&&this.scanNodeForCaptures(f,r,n,s)}break}case 50:{let a=e;this.scanNodeForCaptures(a.condition,r,n,s),this.scanNodeForCaptures(a.body,r,n,s);break}case 49:{let a=e;this.scanNodeForCaptures(a.expression,r,n,s);break}case 19:case 26:case 14:case 24:case 27:case 32:case 33:case 35:case 20:case 67:case 30:break;case 11:break;case 4:case 1:case 2:case 5:case 6:break;case 0:case 52:case 53:case 54:case 56:case 58:case 60:case 61:case 43:case 36:case 37:case 38:case 51:case 63:case 66:case 55:case 57:case 64:case 59:case 62:case 65:break;default:assert(!1,"scanNodeForCaptures: unhandled node kind: "+e.kind.toString())}}analyzeCapturedVariables(e,r){let n=new Map,s=new Set,a=e.signature.parameters;for(let o=0,u=a.length;o<u;o++){let c=a[o].initializer;c&&this.scanNodeForCaptures(c,r,s,n)}for(let o=0,u=a.length;o<u;o++)s.add(a[o].name.text);let l=e.body;return l&&this.scanNodeForCaptures(l,r,s,n),n}computeEnvironmentSize(e){let r=this.options.usizeType.byteSize,n=r;for(let s=Map_keys(e),a=0,l=s.length;a<l;a++){let o=s[a],u=o.envSlotIndex+o.type.byteSize;u>n&&(n=u)}return n+r-1&~(r-1)}ensureClosureEnvironmentsForCaptures(e,r){let n=new Map;for(let s=Map_keys(e),a=0,l=s.length;a<l;a++){let o=s[a],u=assert(o.envOwner),c=n.has(u)?n.get(u):null;c||(c=new Map,n.set(u,c)),c.set(o,e.get(o))}for(let s=Map_keys(n),a=0,l=s.length;a<l;a++){let o=s[a],u=assert(n.get(o));this.ensureClosureEnvironment(o,u,r)}}ensureClosureEnvironment(e,r,n){if(e.envLocal){let a=e.capturedLocals;if(a)for(let l=Map_keys(r),o=0,u=l.length;o<u;o++){let c=l[o];a.has(c)||a.set(c,r.get(c))}return}let s=this.options.usizeType;e.envLocal=n.addScopedLocal("$env",s),e.capturedLocals=r,this.computeEnvironmentSize(r)}compileClosureFunctionCreation(e,r){let n=this.module,s=this.program,a=this.options,l=a.sizeTypeRef,o=a.usizeType,u=assert(this.resolver.resolveClass(s.functionPrototype,[e.type])),c=u.id,f=u.nextMemoryOffset,_=s.newInstance;assert(_),this.compileFunction(_);let h=n.call(_.internalName,[a.isWasm64?n.i64(f):n.i32(f),n.i32(c)],l),m=this.currentFlow,x=m.getTempLocal(o);m.setLocalFlag(x.index,2);let g,T=r.envLocal,I=r.closureEnvLocal;T?g=n.local_get(T.index,l):I?g=n.local_get(I.index,l):g=a.isWasm64?n.i64(0):n.i32(0);let E=a.tableBase;E||(E=1);let k=E+this.functionTable.indexOf(e),F=u.offsetof("_index"),R=u.offsetof("_env"),M=[n.local_set(x.index,h,!1),n.store(4,n.local_get(x.index,l),n.i32(k),L.I32,F),n.store(o.byteSize,n.local_get(x.index,l),g,l,R),n.local_get(x.index,l)];return this.currentType=e.type,n.block(null,M,l)}getClosureEnvironmentPointer(e){let r=this.module,s=this.currentFlow.sourceFunction,a=this.options.sizeTypeRef,l=e.envOwner,o=s.envLocal;if(l==s&&o)return r.local_get(o.index,a);let u,c=s.closureEnvLocal;if(c)u=r.local_get(c.index,a);else{let h=this.ensureClosureEnvironmentGlobal();u=r.global_get(h,a)}let f=s.outerFunction,_=0;for(;f&&f!=l;)f.envLocal&&_++,f=f.outerFunction;for(let h=0;h<_;h++)u=r.load(this.options.usizeType.byteSize,!1,u,a,0);return u}compileClosureLoad(e,r=null){let n=this.module,s=e.type,a=e.envSlotIndex,l=this.getClosureEnvironmentPointer(e);return this.currentType=s,n.load(s.byteSize,s.is(1),l,s.toRef(),a)}compileClosureStore(e,r,n){let s=this.module,a=e.type,l=e.envSlotIndex,o=this.getClosureEnvironmentPointer(e);return s.store(a.byteSize,o,r,a.toRef(),l)}compileClosureEnvironmentAllocation(e){let r=this.module,n=this.program,s=this.options,a=s.sizeTypeRef,l=s.usizeType,o=assert(e.capturedLocals),u=assert(e.envLocal),c=this.computeEnvironmentSize(o),f=n.allocInstance;assert(f),this.compileFunction(f);let _=r.call(f.internalName,[s.isWasm64?r.i64(c):r.i32(c)],a),h=[];h.push(r.local_set(u.index,_,!1));let m,x=e.closureEnvLocal;x?m=r.local_get(x.index,a):m=s.isWasm64?r.i64(0):r.i32(0),h.push(r.store(l.byteSize,r.local_get(u.index,a),m,a,0));let g=e.signature,T=g.parameterTypes.length,I=g.thisType!=null,E=I?1:0,k=E+T;for(let F=Map_keys(o),R=0,M=F.length;R<M;R++){let z=F[R],D=z.envSlotIndex,W=z.type,q=z.index>=E&&z.index<k,ee=I&&z.index==0;(q||ee)&&h.push(r.store(W.byteSize,r.local_get(u.index,a),r.local_get(z.index,W.toRef()),W.toRef(),D))}return this.currentFlow.setLocalFlag(u.index,8),r.flatten(h,L.None)}maybeCompileEnclosingSource(e){let r=e.range.source.internalPath,n=this.program.filesByName;assert(n.has(r)),assert(n.get(r)).is(8388608)||this.compileFileByPath(r,e)}compileIdentifierExpression(e,r,n){let s=this.module,a=this.currentFlow,l=a.sourceFunction;switch(e.kind){case 19:{let c=this.options;if(r.isReference){let f=r.getClass();if(f)return this.currentType=f.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0);let _=r.getSignature();return _?(this.currentType=_.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0)):this.makeZero(r)}return this.currentType=c.usizeType,this.warning(226,e.range,this.currentType.toString()),c.isWasm64?s.i64(0):s.i32(0)}case 26:return this.currentType=p.bool,s.i32(1);case 14:return this.currentType=p.bool,s.i32(0);case 25:{let c=l.signature.thisType;if(!c&&this.options.hasFeature(65536)){let _=a.lookupLocal(C.this_);if(_||(_=a.lookupLocalInOuter(C.this_)),_&&_.isCaptured&&_.envSlotIndex>=0)return a.set(64),this.currentType=_.type,this.compileClosureLoad(_,e)}if(!c)return this.error(2332,e.range),this.currentType=this.options.usizeType,s.unreachable();if(l.is(524288)&&(a.is(65536)&&this.error(2333,e.range),!(n&32))){let _=l.parent;assert(_.kind==7),this.checkFieldInitialization(_,e)}let f=assert(a.lookupLocal(C.this_));return a.set(64),this.currentType=c,s.local_get(f.index,c.toRef())}case 24:{if(l.is(524288)&&(a.is(65536)?this.error(2336,e.range):a.is(128)||this.error(17011,e.range)),a.isInline){let c=a.lookupLocal(C.this_);if(c){let _=assert(c.type.getClass()).base;if(_)return this.currentType=_.type,s.local_get(c.index,_.type.toRef())}}if(l.is(262144)){let c=assert(l.parent);assert(c.kind==7);let _=c.base;if(_){let h=_.type;return this.currentType=h,s.local_get(0,h.toRef())}}return this.error(2335,e.range),this.currentType=this.options.usizeType,s.unreachable()}}this.maybeCompileEnclosingSource(e);let o=this.currentParent;o||(o=l);let u=this.resolver.lookupIdentifierExpression(e,a,o);if(!u)return this.currentType==p.void&&(this.currentType=p.i32),s.unreachable();switch(u.kind){case 1:{let c=u,f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,r,n);let _=c.index;if(!c.declaredByFlow(a))return c.isCaptured&&c.envSlotIndex>=0?(this.currentType=f,this.compileClosureLoad(c,e)):(this.error(100,e.range,"Closures"),s.unreachable());let h=a.sourceFunction;if(c.isCaptured&&c.envSlotIndex>=0&&h.envLocal)return this.currentType=f,this.compileClosureLoad(c,e);a.isLocalFlag(_,8)||this.error(2454,e.range,c.name),assert(_>=0);let m=a.isLocalFlag(_,4,!1);f.isNullableReference&&m&&(!f.isExternalReference||this.options.hasFeature(1024))?this.currentType=f.nonNullableType:this.currentType=f,c.isCaptured||(c.wasAccessedAsLocal=!0);let x=s.local_get(_,f.toRef());return m&&f.isNullableExternalReference&&this.options.hasFeature(1024)&&(x=s.ref_as_nonnull(x)),x}case 0:{let c=u;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(assert(f!=p.void),c.hasDecorator(512))return this.compileIdentifierExpressionBuiltin(c,e,r);if(c.is(33554432))return this.compileInlineConstant(c,r,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=u;return u.is(8388608)?(this.currentType=p.i32,c.is(33554432)?(assert(c.constantValueKind==1),s.i32(i64_low(c.constantIntegerValue))):s.global_get(c.internalName,L.I32)):(this.error(2651,e.range),this.currentType=p.i32,s.unreachable())}case 4:{let c=u,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null,pe(a.contextualTypeArguments));if(!_||!this.compileFunction(_))return s.unreachable();if(_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),this.currentType=_.type,s.unreachable();if(r.isExternalReference)return this.currentType=p.func,s.ref_func(_.internalName,Qn(_.type));let h=this.ensureRuntimeFunction(_);return this.currentType=_.signature.type,this.options.isWasm64?s.i64(i64_low(h),i64_high(h)):s.i32(i64_low(h))}}return this.error(234,e.range),s.unreachable()}compileIdentifierExpressionBuiltin(e,r,n){e.hasDecorator(2048)&&this.checkUnsafe(r,e.identifierNode);let s=e.internalName;return assert(lt.has(s)),assert(lt.get(s))(new ps(this,e,n,r))}compileInstanceOfExpression(e,r,n){let s=this.currentFlow,a=e.isType;if(a.kind==1){let o=a;if(!(o.isNullable||o.hasTypeArguments)){let u=this.resolver.resolveTypeName(o.name,s,s.sourceFunction,1);if(u&&u.kind==6){let c=u;if(c.is(65536))return this.makeInstanceofClass(e,c)}}}let l=this.resolver.resolveType(e.isType,s,s.sourceFunction,pe(s.contextualTypeArguments));return l?this.makeInstanceofType(e,l):(this.currentType=p.bool,this.module.unreachable())}makeInstanceofType(e,r){let n=this.module,s=this.currentFlow,a=this.compileExpression(e.expression,r),l=this.currentType;if(this.currentType=p.bool,r.isValue)return n.maybeDropCondition(a,n.i32(l==r?1:0));if(l.isValue)return n.maybeDropCondition(a,n.i32(0));let o=l.toRef();if(l.isNullableReference&&!r.isNullableReference){if(l.nonNullableType.isAssignableTo(r))return n.binary(o==L.I64?41:16,a,this.makeZero(l));if(l.nonNullableType.hasSubtypeAssignableTo(r))if(l.isUnmanaged||r.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),r.toString());else{this.options.pedantic&&this.pedantic(903,e.range);let c=s.getTempLocal(l).index;return n.if(n.unary(o==L.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(r.classReference),[n.local_get(c,o)],L.I32))}}else{if(l.isAssignableTo(r))return n.maybeDropCondition(a,n.i32(1));if(l.hasSubtypeAssignableTo(r))if(l.isUnmanaged||r.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),r.toString());else{let c=s.getTempLocal(l).index;return n.if(n.unary(o==L.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(r.classReference),[n.local_get(c,o)],L.I32))}}return n.maybeDropCondition(a,n.i32(0))}prepareInstanceOf(e){let r=`~instanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,r);let s=this.module;return s.addFunction(r,this.options.sizeTypeRef,L.I32,null,s.unreachable()),r}finalizeInstanceOf(e,r){let n=this.program,s=this.module,a=this.options.sizeTypeRef,l=new Array;l.push(s.local_set(1,s.load(4,!1,s.binary(a==L.I64?26:1,s.local_get(0,a),s.i32(n.totalOverhead-n.OBJECTInstance.offsetof("rtId"))),L.I32),!1));let o;if(e.isInterface)o=e.implementers;else{o=new Set,o.add(e);let u=e.extenders;if(u)for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let h=c[f];o.add(h)}}if(o)for(let u=Set_values(o),c=0,f=u.length;c<f;++c){let _=u[c];l.push(s.br("is_instance",s.binary(15,s.local_get(1,L.I32),s.i32(_.id))))}l.push(s.return(s.i32(0))),l[0]=s.block("is_instance",l,L.None),l.length=1,l.push(s.i32(1)),s.removeFunction(r),s.addFunction(r,a,L.I32,[L.I32],s.block(null,l,L.I32))}makeInstanceofClass(e,r){let n=this.module,s=this.compileExpression(e.expression,p.auto),a=this.currentType,l=a.toRef();this.currentType=p.bool;let o=a.getClass();if(o){if(o.extendsPrototype(r))return a.isNullableReference?n.binary(l==L.I64?41:16,s,this.makeZero(a)):n.maybeDropCondition(s,n.i32(1));if(r.extends(o.prototype)){let f=this.currentFlow.getTempLocal(a).index;return n.if(n.unary(l==L.I64?21:20,n.local_tee(f,s,a.isManaged)),n.i32(0),n.call(this.prepareAnyInstanceOf(r),[n.local_get(f,l)],L.I32))}}return n.maybeDropCondition(s,n.i32(0))}prepareAnyInstanceOf(e){let r=`~anyinstanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,r);let s=this.module;return s.addFunction(r,this.options.sizeTypeRef,L.I32,null,s.unreachable()),r}finalizeAnyInstanceOf(e,r){let n=this.module,s=this.options.sizeTypeRef,a=new Array,l=e.instances;if(l){let o=this.program;a.push(n.local_set(1,n.load(4,!1,n.binary(s==L.I64?26:1,n.local_get(0,s),n.i32(o.totalOverhead-o.OBJECTInstance.offsetof("rtId"))),L.I32),!1));let u=new Set;for(let c=Map_values(l),f=0,_=c.length;f<_;++f){let h=c[f];if(h.isInterface){let m=h.implementers;if(m)for(let x=Set_values(m),g=0,T=x.length;g<T;++g){let I=x[g];u.add(I)}}else{u.add(h);let m=h.extenders;if(m)for(let x=Set_values(m),g=0,T=x.length;g<T;++g){let I=x[g];u.add(I)}}}for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let h=c[f];a.push(n.br("is_instance",n.binary(15,n.local_get(1,L.I32),n.i32(h.id))))}}a.push(n.return(n.i32(0))),a[0]=n.block("is_instance",a,L.None),a.length=1,a.push(n.i32(1)),n.removeFunction(r),n.addFunction(r,s,L.I32,[L.I32],n.block(null,a,L.I32))}compileLiteralExpression(e,r,n,s=!1){let a=this.module;switch(e.literalKind){case 5:return assert(!s),this.compileArrayLiteral(e,r,n);case 0:{let l=e.value;return s&&(l=-l),r==p.f32?a.f32(l):(this.currentType=p.f64,a.f64(l))}case 1:{let l=e,o=this.resolver.determineIntegerLiteralType(l,s,r);this.currentType=o;let u=l.value,c=1;switch(s&&(o.isFloatValue?c=-1:u=i64_neg(u)),o.kind){case 5:if(!this.options.isWasm64)return a.i32(i64_low(u));case 4:return a.i64(i64_low(u),i64_high(u));case 10:if(!this.options.isWasm64)return a.i32(i64_low(u));case 9:return a.i64(i64_low(u),i64_high(u));case 11:return a.f32(c*i64_to_f32(u));case 12:return a.f64(c*i64_to_f64(u));default:return a.i32(i64_low(u))}}case 2:return assert(!s),this.compileStringLiteral(e,n);case 3:return assert(!s),this.compileTemplateLiteral(e,n);case 6:return assert(!s),this.compileObjectLiteral(e,r);case 4:return this.error(100,e.range,"Regular expressions"),this.currentType=r,a.unreachable()}return assert(!1),a.unreachable()}compileStringLiteral(e,r){return this.ensureStaticString(e.value)}compileTemplateLiteral(e,r){let n=e.tag,s=e.parts,a=s.length,l=e.expressions,o=l.length;assert(o==a-1);let u=this.module,c=this.program.stringInstance,f=c.type;if(!n){if(a==1)return this.ensureStaticString(s[0]);if(a==2){let Y=l[0],te=s[0].length,j=s[1].length;if(!te&&!j)return this.makeToString(this.compileExpression(Y,f),this.currentType,Y);let re=te!=0;if(re^j!=0){let H,ue,be=this.makeToString(this.compileExpression(Y,f),this.currentType,Y);re?(H=this.ensureStaticString(s[0]),ue=be):(H=be,ue=this.ensureStaticString(s[1]));let dr=assert(c.getMethod("concat"));return this.makeCallDirect(dr,[H,ue],Y)}}if(a==3&&!s[0].length&&!s[1].length&&!s[2].length){let Y=l[0],te=l[1],j=this.makeToString(this.compileExpression(Y,f),this.currentType,Y),re=this.makeToString(this.compileExpression(te,f),this.currentType,te),H=assert(c.getMethod("concat"));return this.makeCallDirect(H,[j,re],e)}let E=new Array(o),k=new Array;s[0].length>0&&k.push(this.ensureStaticString(s[0]));for(let Y=1;Y<a;++Y)E[Y-1]=k.length,k.push(u.usize(0)),s[Y].length>0&&k.push(this.ensureStaticString(s[Y]));let F=assert(this.resolver.resolveClass(this.program.staticArrayPrototype,[f])),R=this.addStaticBuffer(f,k,F.id);this.program.OBJECTInstance.writeField("gcInfo",3,R.buffer,0);let M=i64_add(R.offset,i64_new(this.program.totalOverhead)),z=assert(F.getMethod("join")),D=assert(F.lookupOverload(2,!0)),W=new Array(2*o+1),q=new Array(o),ee=this.currentFlow;for(let Y=0;Y<o;++Y){let te=l[Y],j=ee.getTempLocal(f);q[Y]=j,W[Y]=u.local_set(j.index,this.makeToString(this.compileExpression(te,f),this.currentType,te),!0)}for(let Y=0;Y<o;++Y)W[o+Y]=this.makeCallDirect(D,[u.usize(M),u.i32(E[Y]),u.local_get(q[Y].index,f.toRef())],e);return W[2*o]=this.makeCallDirect(z,[u.usize(M),this.ensureStaticString("")],e),u.flatten(W,f.toRef())}let _=this.program.templateStringsArrayInstance,h=_,m=this.resolver.lookupExpression(n,this.currentFlow,p.auto,1);if(m)switch(m.kind){case 4:{let E=this.resolver.resolveFunction(m,null,new Map,1);if(!E)break;m=E}case 5:{let k=m.signature.parameterTypes;if(k.length){let F=k[0].getClass();F&&!F.extendsPrototype(_.prototype)&&(h=assert(this.resolver.resolveClass(this.program.arrayPrototype,[f])))}break}}let x=e.rawParts;assert(x.length==a);let g=new Array(a);for(let E=0;E<a;++E)g[E]=this.ensureStaticString(s[E]);let T;if(h==_){let E=new Array(a);for(let F=0;F<a;++F)E[F]=this.ensureStaticString(x[F]);T=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,g),h);let k=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,E));h.writeField("raw",i64_add(k.offset,i64_new(this.program.totalOverhead)),T.buffer)}else T=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,g),h);let I=l.slice();return I.unshift(G.createCompiledExpression(u.usize(i64_add(T.offset,i64_new(this.program.totalOverhead))),h.type,fe.native.range)),this.error(100,e.range,"Tagged template literals"),this.compileCallExpressionLike(n,null,I,e.range,f)}compileArrayLiteral(e,r,n){let s=this.module,a=this.currentFlow,l=this.program,o=r.getClass();if(o&&o.extendsPrototype(l.staticArrayPrototype))return this.compileStaticArrayLiteral(e,r,n);let u=this.resolver.lookupExpression(e,a,this.currentType);if(!u)return s.unreachable();assert(u.kind==7);let c=u,f=c.type,_=c.getTypeArgumentsTo(l.arrayPrototype)[0],h=a.getTempLocal(this.options.usizeType),m=e.elementExpressions,x=m.length,g=new Array(x),T=!_.isExternalReference;for(let M=0;M<x;++M){let z=m[M];if(z.kind!=20){let D=this.compileExpression(z,_,1);if(se(D)!=_.toRef())T=!1;else{let W=s.runExpression(D,1);W?D=W:T=!1}g[M]=D}else g[M]=this.makeZero(_)}if(T){let M=l.totalOverhead,z=this.addStaticBuffer(_,g),D=i64_add(z.offset,i64_new(M));if(n&16){let W=this.addStaticArrayHeader(_,z),q=i64_add(W.offset,i64_new(M));return this.currentType=f,l.options.isWasm64?this.module.i64(i64_low(q),i64_high(q)):this.module.i32(i64_low(q))}else return this.makeNewArray(c,x,D,e)}let I=c.lookupOverload(2,!0);if(!I)return this.error(2542,e.range,c.internalName),this.currentType=f,s.unreachable();let E=f.toRef(),k=new Array;k.push(s.local_set(h.index,this.makeNewArray(c,x,i64_new(0),e),f.isManaged));let F=assert(c.getMember("dataStart"));assert(F.kind==10);let R=F.instance;if(!R)return s.unreachable();assert(R.isField&&R.memoryOffset>=0);for(let M=0;M<x;++M)k.push(s.call(I.internalName,[s.local_get(h.index,E),s.i32(M),g[M]],L.None));return k.push(s.local_get(h.index,E)),x&&this.compileFunction(I),this.currentType=f,s.flatten(k,E)}makeNewArray(e,r,n,s){let a=this.program,l=this.module;assert(!e.extendsPrototype(a.staticArrayPrototype));let o=e.getArrayValueType(),u=this.makeCallDirect(a.newArrayInstance,[l.i32(r),a.options.isWasm64?l.i64(o.alignLog2):l.i32(o.alignLog2),l.i32(e.id),a.options.isWasm64?l.i64(i64_low(n),i64_high(n)):l.i32(i64_low(n))],s);return this.currentType=e.type,u}compileStaticArrayLiteral(e,r,n){let s=this.module,a=this.currentFlow,l=this.program,o=assert(r.getClass()),u=o.type,f=assert(o.getTypeArgumentsTo(l.staticArrayPrototype))[0],_=a.getTempLocal(this.options.usizeType),h=e.elementExpressions,m=h.length,x=new Array(m),g=!f.isExternalReference;for(let R=0;R<m;++R){let M=h[R];if(M.kind!=20){let z=this.compileExpression(M,f,1),D=s.runExpression(z,1);D?z=D:g=!1,x[R]=z}else x[R]=this.makeZero(f)}let T=this.options.isWasm64,I=x.length<<f.alignLog2;if(g){let R=this.addStaticBuffer(f,x,o.id),M=i64_add(R.offset,i64_new(l.totalOverhead));if(n&16){let z=this.options.isWasm64?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M));return this.currentType=u,z}else{let z=this.makeCallDirect(l.newBufferInstance,[T?s.i64(I):s.i32(I),s.i32(o.id),T?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M))],e);return this.currentType=u,z}}let E=o.lookupOverload(2,!0);if(!E)return this.error(2542,e.range,o.internalName),this.currentType=u,s.unreachable();let k=u.toRef(),F=new Array;F.push(s.local_set(_.index,this.makeCallDirect(l.newBufferInstance,[T?s.i64(I):s.i32(I),s.i32(o.id)],e),u.isManaged));for(let R=0;R<m;++R)F.push(s.call(E.internalName,[s.local_get(_.index,k),s.i32(R),x[R]],L.None));return F.push(s.local_get(_.index,k)),m&&this.compileFunction(E),this.currentType=u,s.flatten(F,k)}compileObjectLiteral(e,r){let n=this.module,s=r.getClass();if(!s)return this.error(2322,e.range,"<object>",r.toString()),n.unreachable();let a=s.type;if(this.currentType=a.nonNullableType,s.kind==9)return this.error(100,e.range,"Interface hidden classes"),n.unreachable();if(s.is(128))return this.error(2511,e.range),n.unreachable();let l=s.prototype.constructorPrototype;if(l)return this.errorRelated(216,e.range,l.identifierNode.range,a.toString()),n.unreachable();a.isManaged||this.checkUnsafe(e,Nt(6,s.decoratorNodes));let u=e.names,c=u.length,f=e.values,_=s.members,h=!1,m=new Array,g=this.currentFlow.getTempLocal(a),T=a.toRef();assert(c==f.length);let I=new Set;if(_)for(let F=Map_keys(_),R=0,M=F.length;R<M;++R){let z=F[R],D=assert(_.get(z));if(D&&D.kind==10){let W=D.instance;W&&W.isField&&I.add(W)}}let E=new Array;for(let F=0;F<c;++F){let R=u[F].text,M=s.getMember(R);if(!M||M.kind!=10){this.error(2339,u[F].range,R,a.toString()),h=!0;continue}if(M.is(512)){this.error(2341,u[F].range,R,a.toString()),h=!0;continue}if(M.is(1024)){this.error(2445,u[F].range,R,a.toString()),h=!0;continue}let z=this.resolver.resolveProperty(M);if(!z)continue;let D=z.setterInstance;if(!D){this.error(2540,u[F].range,R,a.toString()),h=!0;continue}if(I.delete(z),!z.isField){E.push(z);continue}let W=z.type,q=this.makeCallDirect(D,[n.local_get(g.index,T),this.compileExpression(f[F],W,1)],D.identifierNode,!0);this.currentType!=p.void&&(q=n.drop(q)),m.push(q)}for(let F=0,R=E.length;F<R;++F){let M=E[F],z=assert(M.setterInstance);m.push(this.makeCallDirect(z,[n.local_get(g.index,T),this.compileExpression(f[F],M.type,1)],z.identifierNode))}if(this.currentType=a.nonNullableType,h)return n.unreachable();for(let F=Set_values(I),R=0,M=F.length;R<M;++R){let z=F[R];assert(z.isField);let D=z.type;if(!z.initializerNode){if(D.isReference&&!D.isNullableReference){this.error(2741,e.range,z.name,"<object>",a.toString()),h=!0;continue}switch(D.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{m.push(n.store(D.byteSize,n.local_get(g.index,T),this.makeZero(D),D.toRef(),z.memoryOffset));continue}}this.error(2741,e.range,z.name,"<object>",a.toString()),h=!0}}if(h)return n.unreachable();let k=this.ensureConstructor(s,e);return m.unshift(n.local_set(g.index,this.compileInstantiate(k,[],0,e),a.isManaged)),m.push(n.local_get(g.index,T)),this.currentType=a.nonNullableType,n.flatten(m,T)}compileNewExpression(e,r,n){let s=this.module,a=this.currentFlow,l=this.resolver.resolveTypeName(e.typeName,a,a.sourceFunction);if(!l)return s.unreachable();if(l.kind!=6)return this.error(2351,e.typeName.range),this.module.unreachable();if(l.is(128))return this.error(2511,e.typeName.range),this.module.unreachable();let o=l,u=null,c=e.typeArguments,f;if(!c&&(f=r.classReference)&&f.prototype==o&&f.is(65536)?u=this.resolver.resolveClass(o,f.typeArguments,pe(a.contextualTypeArguments)):u=this.resolver.resolveClassInclTypeArguments(o,c,a,a.sourceFunction.parent,pe(a.contextualTypeArguments),e),!u)return s.unreachable();r==p.void&&(n|=8);let _=this.ensureConstructor(u,e);return _.hasDecorator(64)||this.checkFieldInitialization(u,e),this.compileInstantiate(_,e.args,n,e)}ensureConstructor(e,r){let n=e.constructorInstance;if(n){if(n.is(8388608))return n;n.hasDecorator(64)||this.compileFunction(n)}else{let s=e.base,a=pe(e.contextualTypeArguments);if(s){let E=this.ensureConstructor(s,r);this.checkFieldInitialization(s,r),n=new gt(C.constructor,new Xe(C.constructor,e,E.declaration.clone()),null,qe.create(this.program,E.signature.parameterTypes,e.type,e.type,E.signature.requiredParameters,E.signature.hasRest),a)}else n=new gt(C.constructor,new Xe(C.constructor,e,this.program.makeNativeFunctionDeclaration(C.constructor,786432)),null,qe.create(this.program,[],e.type,e.type),a);n.set(8388608),n.prototype.setResolvedInstance("",n),e.is(1048576)&&n.set(1048576),e.constructorInstance=n;let l=e.members;l||(e.members=l=new Map),l.set(C.constructor,n.prototype);let o=this.currentFlow,u=n.flow;this.currentFlow=u;let c=n.signature,f=this.module,_=this.options.sizeTypeRef,h=new Array;if(h.push(this.makeConditionalAllocation(e,0)),s){let E=c.parameterTypes,k=E.length,F=new Array(1+k);F[0]=f.local_get(0,_);for(let R=1;R<=k;++R)F[R]=f.local_get(R,E[R-1].toRef());h.push(f.local_set(0,this.makeCallDirect(assert(s.constructorInstance),F,r,!1),s.type.isManaged))}this.makeFieldInitializationInConstructor(e,h),h.push(f.local_get(0,_)),this.currentFlow=o;let m=n.localsByIndex,x=new Array,g=1+c.parameterTypes.length,T=m.length;if(T>g)for(let E=g;E<T;++E)x.push(m[E].type.toRef());let I=f.addFunction(n.internalName,c.paramRefs,c.resultRefs,x,f.flatten(h,_));n.finalize(f,I)}return n}checkFieldInitialization(e,r=null){if(e.didCheckFieldInitialization)return;e.didCheckFieldInitialization=!0;let n=assert(e.constructorInstance);this.checkFieldInitializationInFlow(e,n.flow,r)}checkFieldInitializationInFlow(e,r,n=null){let s=e.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=10||u.parent!=e)continue;let c=u.instance;!c||!c.isField||(!c.initializerNode&&!r.isThisFieldFlag(c,1)?c.is(16384)||(n?this.errorRelated(2564,c.declaration.name.range,n.range,c.internalName):this.error(2564,c.declaration.name.range,c.internalName)):c.is(16384)&&(c.type.isReference?this.warning(233,c.identifierNode.range,c.internalName):this.pedantic(906,c.identifierNode.range)))}}compileInstantiate(e,r,n,s){assert(e.is(524288));let a=e.parent;assert(a.kind==7);let l=a;(l.type.isUnmanaged||e.hasDecorator(2048))&&this.checkUnsafe(s);let o=this.compileCallDirect(e,r,s,this.makeZero(this.options.usizeType),n);return se(o)!=L.None&&(this.currentType=l.type),o}compilePropertyAccessExpression(e,r,n){let s=this.module,a=this.currentFlow;this.maybeCompileEnclosingSource(e);let l=this.resolver,o=l.lookupExpression(e,a,r);if(!o)return s.unreachable();let u=l.currentThisExpression;switch(o.hasDecorator(2048)&&this.checkUnsafe(e),o.kind){case 0:{let c=o;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,r,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=o,f=assert(c.parent);assert(f.kind==2);let _=f;return this.compileEnum(_)?(this.currentType=p.i32,c.is(33554432)?(assert(c.constantValueKind==1),this.compileInlineConstant(c,r,n)):(assert(c.type==p.i32),s.global_get(c.internalName,L.I32))):(this.currentType=p.i32,this.module.unreachable())}case 10:{let c=o,f=this.resolver.resolveProperty(c);if(!f)return s.unreachable();o=f}case 11:{let c=o;c.isField&&a.sourceFunction.is(524288)&&assert(u).kind==25&&!a.isThisFieldFlag(c,1)&&!c.is(16384)&&this.errorRelated(2565,e.range,c.identifierNode.range,c.internalName);let f=c.getterInstance;if(!f)return s.unreachable();let _=0;return f.is(262144)&&(_=this.compileExpression(assert(u),assert(f.signature.thisType),33)),this.compileCallDirect(f,[],e,_)}case 4:{let c=o,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null);if(!_||!this.compileFunction(_))return s.unreachable();if(this.currentType=_.type,_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),s.unreachable();let h=this.ensureRuntimeFunction(_);return this.options.isWasm64?s.i64(i64_low(h),i64_high(h)):s.i32(i64_low(h))}}return this.error(234,e.range),this.module.unreachable()}compileTernaryExpression(e,r,n){let s=this.module,a=e.ifThen,l=e.ifElse,o=this.compileExpression(e.condition,p.bool),u=this.makeIsTrueish(o,this.currentType,e.condition),c=this.evaluateCondition(u);if(c==1)return s.maybeDropCondition(u,this.compileExpression(a,r));if(c==2)return s.maybeDropCondition(u,this.compileExpression(l,r));let f=this.currentFlow,_=f.forkThen(o);this.currentFlow=_;let h=this.compileExpression(a,r),m=this.currentType,x=f.forkElse(o);this.currentFlow=x;let g=this.compileExpression(l,r==p.auto?m:r),T=this.currentType;if(r==p.void)m!=p.void&&(h=s.drop(h),m=p.void),T!=p.void&&(g=s.drop(g),T=p.void),this.currentType=p.void;else{let I=p.commonType(m,T,r);if(!I)return this.error(2322,l.range,T.toString(),m.toString()),this.currentType=r,s.unreachable();h=this.convertExpression(h,m,I,!1,a),m=I,g=this.convertExpression(g,T,I,!1,l),T=I,this.currentType=I}return f.inheritAlternatives(_,x),this.currentFlow=f,s.if(u,h,g)}compileUnaryPostfixExpression(e,r,n){let s=this.module,a=this.currentFlow,l=this.compileExpression(e.operand,r.exceptVoid,0),o,u=null;r!=p.void?(u=a.getTempLocal(this.currentType),o=s.local_tee(u.index,l,this.currentType.isManaged)):o=l;let c;switch(e.operator){case 87:{let x=this.currentType.getClassOrWrapper(this.program);if(x){let g=x.lookupOverload(29);if(g){let T=g.is(262144);if(u&&!T&&(o=l,u=null),c=this.compileUnaryOverload(g,e.operand,o,e),T)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(0,o,s.i32(1));break}case 4:case 9:{c=s.binary(25,o,s.i64(1));break}case 5:case 10:{c=s.binary(217,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(50,o,s.f32(1));break}case 12:{c=s.binary(63,o,s.f64(1));break}default:return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable()}break}case 88:{let x=this.currentType.getClassOrWrapper(this.program);if(x){let g=x.lookupOverload(30);if(g){let T=g.is(262144);if(u&&!T&&(o=l,u=null),c=this.compileUnaryOverload(g,e.operand,o,e),T)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(1,o,s.i32(1));break}case 4:case 9:{c=s.binary(26,o,s.i64(1));break}case 5:case 10:{c=s.binary(218,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(51,o,s.f32(1));break}case 12:{c=s.binary(64,o,s.f64(1));break}default:return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable()}break}default:return assert(!1),s.unreachable()}let f=this.resolver,_=f.lookupExpression(e.operand,a);if(!_)return s.unreachable();if(!u)return this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);let h=this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);this.currentType=u.type;let m=u.type.toRef();return s.block(null,[h,s.local_get(u.index,m)],m)}compileUnaryPrefixExpression(e,r,n){let s=this.module,a=!1,l;switch(e.operator){case 81:{l=this.compileExpression(e.operand,r.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(23);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"+",this.currentType.toString()),s.unreachable();break}case 82:{let c=e.operand;if(c.isNumericLiteral){l=this.compileLiteralExpression(c,r,0,!0),this.options.sourceMap&&this.addDebugLocation(l,e.range);break}l=this.compileExpression(e.operand,r.exceptVoid,0);let f=this.currentType.getClassOrWrapper(this.program);if(f){let _=f.lookupOverload(24);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"-",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,s.i32(0),l);break}case 4:case 9:{l=s.binary(26,s.i64(0),l);break}case 5:case 10:{l=s.binary(218,this.makeZero(this.currentType),l);break}case 11:{l=s.unary(6,l);break}case 12:{l=s.unary(7,l);break}default:this.error(2469,e.range,"-",this.currentType.toString()),l=s.unreachable()}break}case 87:{a=!0,l=this.compileExpression(e.operand,r.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(27);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(0,l,this.module.i32(1));break}case 4:case 9:{l=s.binary(25,l,s.i64(1));break}case 5:case 10:{l=s.binary(217,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(50,l,s.f32(1));break}case 12:{l=s.binary(63,l,s.f64(1));break}default:this.error(2469,e.range,"++",this.currentType.toString()),l=s.unreachable()}break}case 88:{a=!0,l=this.compileExpression(e.operand,r.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(28);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,l,s.i32(1));break}case 4:case 9:{l=s.binary(26,l,s.i64(1));break}case 5:case 10:{l=s.binary(218,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(51,l,s.f32(1));break}case 12:{l=s.binary(64,l,s.f64(1));break}default:this.error(2469,e.range,"--",this.currentType.toString()),l=s.unreachable()}break}case 95:{l=this.compileExpression(e.operand,r.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(25);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}l=s.unary(20,this.makeIsTrueish(l,this.currentType,e.operand)),this.currentType=p.bool;break}case 96:{l=this.compileExpression(e.operand,r==p.void?p.i32:r.isFloatValue?p.i64:r,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(26);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"~",this.currentType.toString()),s.unreachable();switch(l=this.convertExpression(l,this.currentType,this.currentType.intType,!1,e.operand),this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(9,l,s.i32(-1));break}case 4:case 9:{l=s.binary(34,l,s.i64(-1,-1));break}case 5:case 10:{l=s.binary(226,l,this.makeNegOne(this.currentType));break}default:this.error(2469,e.range,"~",this.currentType.toString()),l=s.unreachable()}break}case 56:return this.compileTypeof(e,r,n);case 69:return this.error(100,e.range,"Spread operator"),s.unreachable();default:return assert(!1),s.unreachable()}if(!a)return l;let o=this.resolver,u=o.lookupExpression(e.operand,this.currentFlow);return u?this.makeAssignment(u,l,this.currentType,e.operand,o.currentThisExpression,o.currentElementExpression,r!=p.void):s.unreachable()}compileTypeof(e,r,n){let s=e.operand,a=0,l=this.program.stringInstance,o;if(s.kind==19)o="object";else{let u=this.resolver.lookupExpression(s,this.currentFlow,p.auto,1);if(u)switch(u.kind){case 6:case 12:case 2:{o="object";break}case 4:{o="function";break}default:{a=this.compileExpression(s,p.auto);let c=this.currentType;if(a=this.convertExpression(a,c,p.void,!0,s),c.isReference)if(c.getSignature())o="function";else{let _=c.getClass();_?_.prototype==l.prototype?o="string":o="object":o="externref"}else c==p.bool?o="boolean":c.isNumericValue?o="number":o="undefined";break}}else{switch(s.kind){case 7:break;case 22:case 13:if(s=(s.kind==22,s.expression),!this.resolver.resolveExpression(s,this.currentFlow,p.auto,0))return this.currentType=l.type,this.module.unreachable();default:a=this.compileExpression(s,p.auto),a=this.convertExpression(a,this.currentType,p.void,!0,s)}o="undefined"}}return this.currentType=l.type,a?this.module.block(null,[a,this.ensureStaticString(o)],this.options.sizeTypeRef):this.ensureStaticString(o)}ensureSmallIntegerWrap(e,r){let n=this.module,s=this.currentFlow;switch(r.kind){case 0:{s.canOverflow(e,r)&&(e=n.binary(16,e,n.i32(0)));break}case 1:{s.canOverflow(e,r)&&(e=this.options.hasFeature(1)?n.unary(47,e):n.binary(11,n.binary(10,e,n.i32(24)),n.i32(24)));break}case 2:{s.canOverflow(e,r)&&(e=this.options.hasFeature(1)?n.unary(48,e):n.binary(11,n.binary(10,e,n.i32(16)),n.i32(16)));break}case 6:{s.canOverflow(e,r)&&(e=n.binary(7,e,n.i32(255)));break}case 7:{s.canOverflow(e,r)&&(e=n.binary(7,e,n.i32(65535)));break}}return e}addDebugLocation(e,r){let n=this.currentFlow.targetFunction,s=r.source;s.debugInfoIndex<0&&(s.debugInfoIndex=this.module.addDebugInfoFile(s.normalizedPath)),n.debugLocations.set(e,r)}checkSignatureSupported(e,r){let n=!0,s=r.explicitThisType;s&&(this.program.checkTypeSupported(assert(e.thisType),s)||(n=!1));let a=e.parameterTypes,l=r.parameters;for(let o=0,u=a.length;o<u;++o){let c;l.length>o?c=l[o]:c=r,this.program.checkTypeSupported(a[o],c)||(n=!1)}return this.program.checkTypeSupported(e.returnType,r.returnType)||(n=!1),n}evaluateCondition(e){let r=se(e);if(r==L.Unreachable)return 0;assert(r==L.I32);let s=this.module.runExpression(e,0);return s?ne(s)?1:2:0}makeZero(e){let r=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return r.i32(0);case 5:case 10:if(e.size!=64)return r.i32(0);case 4:case 9:return r.i64(0);case 11:return r.f32(0);case 12:return r.f64(0);case 13:return r.v128(vp);case 15:case 14:case 16:case 17:case 18:case 19:case 21:case 22:case 23:case 24:return e.is(512)?r.ref_null(e.toRef()):(assert(!1),r.unreachable());case 20:return e.is(512)?r.ref_null(e.toRef()):r.i31_new(r.i32(0))}}makeOne(e){let r=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return r.i32(1);case 5:case 10:if(e.size!=64)return r.i32(1);case 4:case 9:return r.i64(1);case 11:return r.f32(1);case 12:return r.f64(1);case 20:return r.i31_new(r.i32(1))}}makeNegOne(e){let r=this.module;switch(e.kind){default:assert(!1);case 1:case 2:case 3:case 6:case 7:case 8:return r.i32(-1);case 5:case 10:if(e.size!=64)return r.i32(-1);case 4:case 9:return r.i64(-1,-1);case 11:return r.f32(-1);case 12:return r.f64(-1);case 13:return r.v128(Sp);case 20:return r.i31_new(r.i32(-1))}}makeIsTrueish(e,r,n){let s=this.module;switch(r.kind){case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,r);case 0:case 3:case 8:return e;case 4:case 9:return s.binary(41,e,s.i64(0));case 5:case 10:return r.size==64?s.binary(41,e,s.i64(0)):e;case 11:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(53,s.unary(10,s.unary(8,e))))):s.binary(20,s.binary(1,s.binary(10,s.unary(33,e),s.i32(1)),s.i32(2)),s.i32(4278190078))}case 12:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(55,s.unary(11,s.unary(9,e))))):s.binary(45,s.binary(26,s.binary(35,s.unary(34,e),s.i64(1)),s.i64(2)),s.i64(4294967294,4292870143))}case 13:return s.unary(67,e);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return s.unary(20,s.ref_is_null(e));case 25:default:return this.error(1345,n.range,r.toString()),s.i32(0)}}makeToString(e,r,n){let s=this.module,a=this.program.stringInstance.type;if(r==a)return e;let l=r.getClassOrWrapper(this.program);if(l){let o=l.getMethod("toString");if(o){let u=o.signature;if(!this.checkCallSignature(u,0,!0,n))return this.currentType=a,s.unreachable();if(!r.isStrictlyAssignableTo(assert(u.thisType))){if(!r.is(512))return this.errorRelated(2685,n.range,o.identifierAndSignatureRange),this.currentType=a,s.unreachable();let f=this.currentFlow.getTempLocal(r);return s.if(s.local_tee(f.index,e,r.isManaged),this.makeToString(s.local_get(f.index,r.toRef()),r.nonNullableType,n),this.ensureStaticString("null"))}let c=u.returnType;return c.isStrictlyAssignableTo(a)?this.makeCallDirect(o,[e],n):(this.errorRelated(2322,n.range,o.identifierAndSignatureRange,c.toString(),a.toString()),this.currentType=a,s.unreachable())}}return this.error(2322,n.range,r.toString(),a.toString()),this.currentType=a,s.unreachable()}makeAllocation(e){let r=this.program;assert(e.program==r);let n=this.module,s=this.options;if(this.currentType=e.type,e.hasDecorator(16)){let a=r.allocInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset)],s.sizeTypeRef)}else{let a=r.newInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset),n.i32(e.id)],s.sizeTypeRef)}}makeConditionalAllocation(e,r){let n=this.module,a=e.type.toRef();return assert(a==this.options.sizeTypeRef),n.if(n.unary(a==L.I64?21:20,n.local_get(r,a)),n.local_set(r,this.makeAllocation(e),e.type.isManaged))}makeFieldInitializationInConstructor(e,r=[]){let n=e.members;if(!n)return r;let s=this.module,a=this.currentFlow,l=a.isInline,o=l?a.lookupLocal(C.this_).index:0,u=this.options.sizeTypeRef,c=null;for(let f=Map_values(n),_=0,h=f.length;_<h;++_){let m=unchecked(f[_]);if(m.kind!=10)continue;let x=m.instance;if(!x||!x.isField||x.getBoundClassOrInterface()!=e)continue;assert(!x.isAny(8));let g=x.prototype,T=g.parameterIndex;if(T<0){c||(c=new Array),c.push(x);continue}let E=x.type.toRef();assert(!g.initializerNode);let k=assert(x.setterInstance),F=this.makeCallDirect(k,[s.local_get(o,u),s.local_get(l?a.lookupLocal(x.name).index:1+T,E)],k.identifierNode,!0);this.currentType!=p.void&&(F=s.drop(F)),r.push(F)}if(c)for(let f=0,_=c.length;f<_;++f){let h=unchecked(c[f]),m=h.type,x=h.prototype,g=x.initializerNode;assert(x.parameterIndex<0);let T=assert(h.setterInstance),I=this.makeCallDirect(T,[s.local_get(o,u),g?this.compileExpression(g,m,1):this.makeZero(m)],h.identifierNode,!0);this.currentType!=p.void&&(I=s.drop(I)),r.push(I)}return this.currentType=p.void,r}makeAbort(e,r){let n=this.program,s=n.abortInstance;if(!s||!this.compileFunction(s))return this.module.unreachable();let a=n.stringInstance,l;return e?l=this.compileExpression(e,a.type,1):l=this.makeZero(a.type),this.makeStaticAbort(l,r)}makeStaticAbort(e,r){let n=this.program,s=this.module,a=n.abortInstance;if(!a||!this.compileFunction(a))return s.unreachable();let l=this.ensureStaticString(r.range.source.normalizedPath),o=r.range,u=o.source;return s.block(null,[s.call(a.internalName,[e,l,s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],L.None),s.unreachable()])}makeRuntimeNonNullCheck(e,r,n){let s=this.module,a=this.currentFlow,o=a.getTempLocal(r).index;a.canOverflow(e,r)||a.setLocalFlag(o,2),a.setLocalFlag(o,4);let u=this.makeStaticAbort(this.ensureStaticString("Unexpected 'null' (not assigned or failed cast)"),n);if(r.isExternalReference){let c=s.local_get(o,r.toRef());this.options.hasFeature(1024)&&(c=s.ref_as_nonnull(c)),e=s.if(s.ref_is_null(s.local_tee(o,e,!1)),u,c)}else e=s.if(s.local_tee(o,e,r.isManaged),s.local_get(o,r.toRef()),u);return this.currentType=r.nonNullableType,e}makeRuntimeDowncastCheck(e,r,n,s){assert(n.isReference&&n.nonNullableType.isAssignableTo(r));let a=this.module,l=this.currentFlow,u=l.getTempLocal(r).index,c=this.makeStaticAbort(this.ensureStaticString("invalid downcast"),s);return!n.isNullableReference||l.isNonnull(e,r)?e=a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_tee(u,e,r.isManaged)],L.I32),a.local_get(u,r.toRef()),c):e=a.if(a.unary(20,a.local_tee(u,e,r.isManaged)),a.usize(0),a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_get(u,r.toRef())],L.I32),a.local_get(u,r.toRef()),c)),this.currentType=n,e}};function qg(t,i){Zr=i.range.source.simplePath,hr=Ce(t.name,t.parent,t.is(262144),!0);let e=i.overriddenModuleName;if(e&&(Zr=e),!t.hasDecorator(128))return;let r=t.program,n=assert(Nt(9,i.decorators)),s=n.args;if(s&&s.length>0){let a=s[0];a.isLiteralKind(2)?(hr=a.value,s.length>=2&&(a=s[1],a.isLiteralKind(2)?(Zr=hr,hr=a.value,s.length>2&&r.error(2554,n.range,"2",s.length.toString())):r.error(1141,a.range))):r.error(1141,a.range)}else r.error(2555,n.range,"1","0")}var Ki=class t extends Gi{constructor(e,r,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.seenObjectTypes=new Map;this.deferredTypings=new Array;this.esm=r}static build(e,r=!0){return new t(e,r).build()}visitGlobal(e,r){let n=this.sb,s=r.type,a=this.toTypeScriptType(s,1);O(n,this.indentLevel),n.push("/** "),n.push(r.internalName),n.push(` */
|
|
277
279
|
`),O(n,this.indentLevel),n.push("export "),this.esm&&n.push("declare "),n.push("const "),n.push(e),n.push(`: {
|
|
278
280
|
`),O(n,++this.indentLevel),n.push("/** @type `"),n.push(s.toString()),n.push("` */\n"),O(n,this.indentLevel),n.push("get value(): "),n.push(a),r.is(8)?n.push(`
|
|
279
281
|
`):(n.push(`;
|
|
@@ -311,7 +313,7 @@ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
|
|
|
311
313
|
`),r.push("declare class __Internref"),r.push(e.id.toString()),r.push(` extends Number {
|
|
312
314
|
`);let n=e;do r.push(" private __nominal"),r.push(n.id.toString()),r.push(`: symbol;
|
|
313
315
|
`),n=n.base;while(n);return r.push(`}
|
|
314
|
-
`),r.join("")}};function
|
|
316
|
+
`),r.join("")}};function mI(){return new Ps}function yI(t,i){t.target=i}function gI(t,i){t.runtime=i}function bI(t,i){t.noAssert=i}function xI(t,i){t.exportMemory=i}function TI(t,i){t.importMemory=i}function AI(t,i){t.initialMemory=i}function EI(t,i){t.maximumMemory=i}function vI(t,i){t.sharedMemory=i}function SI(t,i){t.importTable=i}function II(t,i){t.exportTable=i}function RI(t,i){t.sourceMap=i}function FI(t,i){t.uncheckedBehavior=i}function kI(t,i){t.memoryBase=i}function wI(t,i){t.tableBase=i}function CI(t,i,e){let r=t.globalAliases;r||(t.globalAliases=r=new Map),r.set(i,e)}function PI(t,i){let e=t.globalAliases;e&&e.delete(i)}function BI(t,i){t.exportStart=i}function LI(t,i){t.noUnsafe=i}function NI(t,i){t.lowMemoryLimit=i}function MI(t,i){t.exportRuntime=i}var GI=32768;function zI(t,i){t.stackSize=i}function DI(t,i,e,r){t.bundleMajorVersion=i,t.bundleMinorVersion=e,t.bundlePatchVersion=r}var UI=1,VI=2,OI=4,qI=8,WI=16,KI=32,jI=64,HI=128,QI=256,XI=512,JI=1024,ZI=2048,YI=4096,$I=8192,e0=16384,t0=32768,r0=65536,i0=131071,n0=ao;function s0(t,i,e){t.setFeature(i,e)}function a0(t,i,e){t.optimizeLevelHint=i,t.shrinkLevelHint=e}function l0(t,i){t.basenameHint=i}function o0(t,i){t.bindingsHint=i}function u0(t,i){t.pedantic=i}function p0(t,i){t.debugInfo=i}function c0(t){return new ns(t)}function f0(t){return t.diagnosticsOffset<t.diagnostics.length?t.diagnostics[t.diagnosticsOffset++]:null}function _0(t,i){return t.getSource(i)}function h0(t){return t.code}function d0(t){return t.category}function m0(t){return t.message}function y0(t){return t.range}function g0(t){return t.relatedRange}function b0(t){return t.start}function x0(t){return t.end}function T0(t){return t.source}function A0(t){return t.normalizedPath}function E0(t){return t.category==1}function v0(t){return t.category==2}function S0(t){return t.category==3}function I0(t,i,e,r=!1){t.parser.parseFile(i,e,r)}function R0(t){return t.parser.nextFile()}function F0(t,i){return t.parser.getDependee(i)}function k0(t){t.parser.weaveDataMigrations(),t.initialize()}function w0(t){return t.parser.finish(),new Bs(t).compile()}function C0(t,i){return Ki.build(t,i)}function P0(t,i){return Di.build(t,i)}function B0(t){return t.ref}function L0(t){return t.validate()}function N0(t,i,e,r=!1,n=!1){t.optimize(i,e,r,n)}function M0(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function Ls(t,i){if(t==null)return!1;for(let e=0,r=t.length;e<r;++e)if(t[e].decoratorKind==i)return!0;return!1}function G0(t,i){if(t==null)return null;for(let e=0,r=t.length;e<r;++e)if(t[e].decoratorKind==i)return t[e];return null}function rf(t){return t!=null&&t instanceof Lt?t.property.text:null}function lo(t,i){let e=t.names;for(let r=0,n=e.length;r<n;++r)if(e[r].text==i)return t.values[r];return null}function z0(t){let i=t.args;if(i!=null&&i.length>0&&i[0]instanceof Ze){let e=i[0].value.trim();return e.length==0||e=="/"?"":(e.charAt(0)!="/"&&(e="/"+e),e.replace(/\/+$/,""))}return""}function D0(t){let i=t.args;if(i!=null&&i.length>0&&i[0]instanceof _t){let e=rf(lo(i[0],"stream"));if(e!=null)return e}return"JSON"}function U0(t){let i=t.decorators;if(i==null)return null;for(let e=0,r=i.length;e<r;++e)switch(i[e].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return i[e]}return null}function V0(t){switch(t){case 21:return"POST";case 22:return"PUT";case 23:return"DELETE";case 24:return"PATCH";case 25:return"HEAD";case 26:return"OPTIONS";default:return"GET"}}function O0(t,i){let e=i.trim();if(e.length==0&&(e="/"),e.charAt(0)!="/"&&(e="/"+e),e=="/")return t.length>0?t:"/";e=e.replace(/\/+$/,"");let r=t+e;return r.length==0?"/":r}function q0(t){let i=new Array,e=t.split("/");for(let r=0,n=e.length;r<n;++r){let s=e[r];s.length>1&&s.charAt(0)==":"&&i.push(s.substring(1))}return i}function W0(t,i,e,r){let n,s,a=i;if(r.decoratorKind==19){let _=r.args;if(_==null||_.length==0||!(_[0]instanceof _t))return null;let h=_[0],m=rf(lo(h,"method")),x=lo(h,"path");if(m==null||x==null||!(x instanceof Ze))return null;n=m,s=x.value;let g=rf(lo(h,"stream"));g!=null&&(a=g)}else{n=V0(r.decoratorKind);let _=r.args;if(_==null||_.length==0||!(_[0]instanceof Ze))return null;s=_[0].value}let l=O0(t,s),o=null,u=e.signature.parameters;for(let _=0,h=u.length;_<h;++_){let m=Ns(u[_].type);m.type!="RouteContext"&&(o=m.type)}let c=Ns(e.signature.returnType),f=c.type=="Response";return{name:e.name.text,http:n,pattern:l,params:q0(l),stream:a,bodyType:o,returns:c,returnsResponse:f}}function Ns(t){if(t==null||!(t instanceof ce))return{type:"void",array:!1};let i=t,e=i.name.identifier.text,r=i.typeArguments;return e=="Array"&&r!=null&&r.length==1&&r[0]instanceof ce?{type:r[0].name.identifier.text,array:!0}:{type:e,array:!1}}function Xg(t){let i=new Array,e=t.signature.parameters;for(let r=0,n=e.length;r<n;++r){let s=e[r];i.push({name:s.name.text,ref:Ns(s.type),vis:"",ro:!1})}return{name:t.name.text,params:i,returns:Ns(t.signature.returnType)}}function K0(t,i){let e=t.decorators,r=t.members,n=Ls(e,29);if(Ls(e,15)||n){let a=new Array;for(let l=0,o=r.length;l<o;++l){let u=r[l];if(u.kind!=55)continue;let c=u;c.is(32)||a.push({name:c.name.text,ref:Ns(c.type),vis:H0(c),ro:c.is(64)})}i.data.push({name:t.name.text,typeId:M0(t.name.text),fields:a}),n&&(i.userType=t.name.text)}if(Ls(e,17)){let a=new Array;for(let l=0,o=r.length;l<o;++l){let u=r[l];if(u.kind!=59)continue;let c=u;Ls(c.decorators,16)&&a.push(Xg(c))}i.services.push({name:t.name.text,methods:a})}let s=G0(e,18);if(s!=null){let a=z0(s),l=D0(s),o=new Array;for(let u=0,c=r.length;u<c;++u){let f=r[u];if(f.kind!=59)continue;let _=f,h=U0(_);if(h==null)continue;let m=W0(a,l,_,h);m!=null&&o.push(m)}o.length&&i.rest.push({name:t.name.text,key:Jg(t.name.text),routes:o})}}function j0(t){let i={data:[],services:[],remotes:[],rest:[],userType:null},e=t.sources;for(let r=0,n=e.length;r<n;++r){let s=e[r];if(s.isLibrary||s.internalPath.endsWith(".migration"))continue;let a=s.statements;for(let l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind==52)K0(u,i);else if(u.kind==56){let c=u;Ls(c.decorators,16)&&i.remotes.push(Xg(c))}}}return i}function H0(t){return t.is(512)?"private":t.is(1024)?"protected":"public"}function Q0(t){let i=t.vis+" ";return t.ro&&(i+="readonly "),i}function Jg(t){return t.length?t.charAt(0).toLowerCase()+t.substring(1):t}function oo(t,i){switch(t){case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":return"number";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"bigint";case"bool":case"boolean":return"boolean";case"string":return"string";case"Uint8Array":return"Uint8Array";case"void":return"void";default:if(i.has(t))return t;throw new Error("@data: unsupported type '"+t+"' (use a scalar, string, bool, native bignum, Uint8Array, a nested @data class, or T[])")}}function ji(t,i){let e=oo(t.type,i);return t.array?e+"[]":e}function Wg(t,i){let e=new Array;for(let r=0,n=t.length;r<n;++r)e.push(t[r].name+": "+ji(t[r].ref,i));return e.join(", ")}function Zg(t){switch(t){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"Uint8Array":return"Bytes";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function Kg(t,i){let e=Zg(t);return e.length?"w.write"+e+"("+i+");":i+".encodeInto(w);"}function jg(t){let i=Zg(t);return i.length?"r.read"+i+"()":t+".decodeFrom(r)"}function Hg(t,i,e){switch(t){case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":return"Number("+i+" ?? 0)";case"u64":case"i64":return"BigInt("+i+" ?? 0)";case"u128":return"__toilUnlimb("+i+", 2, false)";case"i128":return"__toilUnlimb("+i+", 2, true)";case"u256":return"__toilUnlimb("+i+", 4, false)";case"i256":return"__toilUnlimb("+i+", 4, true)";case"bool":case"boolean":return"Boolean("+i+")";case"string":return"String("+i+' ?? "")';case"Uint8Array":return"Uint8Array.from(Array.isArray("+i+") ? "+i+" : [])";default:if(e.has(t))return t+".fromJSONValue("+i+")";throw new Error("@data: unsupported type '"+t+"'")}}function Qg(t,i,e){switch(t){case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return i+".toString()";case"Uint8Array":return"Array.from("+i+")";default:return e.has(t)?i+".toJSONValue()":i}}function X0(t,i){switch(t){case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":case"Uint8Array":return!0;default:return i.has(t)}}function J0(){let t=`// 64-bit-and-up integers cross the JSON wire as decimal strings (exact through
|
|
315
317
|
`;return t+=`// JSON.parse at any size). Older servers emitted 128/256-bit values as little-endian
|
|
316
318
|
`,t+=`// arrays of 64-bit limbs instead; the array branch revives those.
|
|
317
319
|
`,t+=`function __toilUnlimb(v: any, n: number, signedTop: boolean): bigint {
|
|
@@ -323,21 +325,21 @@ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
|
|
|
323
325
|
`,t+=` }
|
|
324
326
|
`,t+=` return r;
|
|
325
327
|
`,t+=`}
|
|
326
|
-
`,t}function
|
|
327
|
-
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l];r+=" "+
|
|
328
|
+
`,t}function Z0(t,i){if(t.array)return"[]";switch(t.type){case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":return"0";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"0n";case"bool":case"boolean":return"false";case"string":return'""';case"Uint8Array":return"new Uint8Array()";default:if(i.has(t.type))return"new "+t.type+"()";throw new Error("@data: unsupported field type '"+t.type+"'")}}function Y0(t,i){let e=t.typeId.toString(),r="export class "+t.name+` {
|
|
329
|
+
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l];r+=" "+Q0(u)+u.name+": "+ji(u.ref,i)+`;
|
|
328
330
|
`}if(r+=`
|
|
329
331
|
`,t.fields.length==0)r+=` public constructor() {}
|
|
330
332
|
|
|
331
333
|
`;else{r+=` public constructor(
|
|
332
|
-
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l];r+=" "+u.name+": "+ji(u.ref,i)+" = "+
|
|
334
|
+
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l];r+=" "+u.name+": "+ji(u.ref,i)+" = "+Z0(u.ref,i)+`,
|
|
333
335
|
`}r+=` ) {
|
|
334
336
|
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l];r+=" this."+u.name+" = "+u.name+`;
|
|
335
337
|
`}r+=` }
|
|
336
338
|
|
|
337
339
|
`}r+=` public encodeInto(w: DataWriter): void {
|
|
338
340
|
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l],c="this."+u.name;u.ref.array?(r+=" w.writeU32("+c+`.length);
|
|
339
|
-
`,r+=" for (let i = 0, n = "+c+".length; i < n; i++) "+
|
|
340
|
-
`):r+=" "+
|
|
341
|
+
`,r+=" for (let i = 0, n = "+c+".length; i < n; i++) "+Kg(u.ref.type,c+"[i]")+`
|
|
342
|
+
`):r+=" "+Kg(u.ref.type,c)+`
|
|
341
343
|
`}r+=` }
|
|
342
344
|
|
|
343
345
|
`,r+=` public encode(): Uint8Array<ArrayBuffer> {
|
|
@@ -348,9 +350,9 @@ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
|
|
|
348
350
|
`,r+=` }
|
|
349
351
|
|
|
350
352
|
`,r+=" public static decodeFrom(r: DataReader): "+t.name+` {
|
|
351
|
-
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l];if(u.ref.array){let c=
|
|
352
|
-
`,r+=" for (let i = 0, n = r.readU32(); i < n && r.ok; i++) "+u.name+".push("+
|
|
353
|
-
`}else r+=" const "+u.name+" = "+
|
|
353
|
+
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l];if(u.ref.array){let c=oo(u.ref.type,i);r+=" const "+u.name+": "+c+`[] = [];
|
|
354
|
+
`,r+=" for (let i = 0, n = r.readU32(); i < n && r.ok; i++) "+u.name+".push("+jg(u.ref.type)+`);
|
|
355
|
+
`}else r+=" const "+u.name+" = "+jg(u.ref.type)+`;
|
|
354
356
|
`}let n=new Array;for(let l=0,o=t.fields.length;l<o;++l)n.push(t.fields[l].name);r+=" return new "+t.name+"("+n.join(", ")+`);
|
|
355
357
|
`,r+=` }
|
|
356
358
|
|
|
@@ -365,16 +367,16 @@ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
|
|
|
365
367
|
`,r+=` }
|
|
366
368
|
|
|
367
369
|
`,r+=" public static fromJSONValue(v: any): "+t.name+` {
|
|
368
|
-
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l],c="(v ? v."+u.name+" : undefined)";if(u.ref.array){let f=
|
|
369
|
-
`}else r+=" const "+u.name+" = "+
|
|
370
|
+
`;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l],c="(v ? v."+u.name+" : undefined)";if(u.ref.array){let f=oo(u.ref.type,i);r+=" const "+u.name+": "+f+"[] = (Array.isArray("+c+") ? "+c+" : []).map((x: any) => "+Hg(u.ref.type,"x",i)+`);
|
|
371
|
+
`}else r+=" const "+u.name+" = "+Hg(u.ref.type,c,i)+`;
|
|
370
372
|
`}let s=new Array;for(let l=0,o=t.fields.length;l<o;++l)s.push(t.fields[l].name);r+=" return new "+t.name+"("+s.join(", ")+`);
|
|
371
373
|
`,r+=` }
|
|
372
374
|
|
|
373
375
|
`,r+=` public toJSONValue(): any {
|
|
374
|
-
`;let a=new Array;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l],c="this."+u.name,f;u.ref.array?f=
|
|
376
|
+
`;let a=new Array;for(let l=0,o=t.fields.length;l<o;++l){let u=t.fields[l],c="this."+u.name,f;u.ref.array?f=X0(u.ref.type,i)?c+".map((x) => "+Qg(u.ref.type,"x",i)+")":c:f=Qg(u.ref.type,c,i),a.push(u.name+": "+f)}return r+=" return { "+a.join(", ")+` };
|
|
375
377
|
`,r+=` }
|
|
376
378
|
`,r+=`}
|
|
377
|
-
`,r}function
|
|
379
|
+
`,r}function $0(t){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(t)?t:JSON.stringify(t)}function Yg(t,i){let e=new Array;if(t.params.length){let a=new Array;for(let l=0,o=t.params.length;l<o;++l)a.push($0(t.params[l])+": string | number | bigint");e.push("params: { "+a.join("; ")+" }")}t.bodyType!=null&&e.push("body: "+oo(t.bodyType,i)),e.push("query?: Record<string, string | number | bigint>"),e.push("headers?: Record<string, string>");let r="{ "+e.join("; ")+" }",n=t.params.length>0||t.bodyType!=null,s=t.returnsResponse?"Promise<Response>":t.returns.type=="void"?"Promise<void>":"Promise<"+ji(t.returns,i)+">";return{argsParam:(n?"args: ":"args?: ")+r,ret:s}}function e8(t,i){if(t.rest.length==0)return"";let e="// Generated REST fetch client. Reached as `Server.REST.<controller>.<route>(args)`.\n";e+=`function __toilUrl(pattern: string, params?: Record<string, string | number | bigint>, query?: Record<string, string | number | bigint>): string {
|
|
378
380
|
`,e+=` let path = pattern;
|
|
379
381
|
`,e+=` if (params) for (const k in params) path = path.replace(":" + k, encodeURIComponent(String(params[k])));
|
|
380
382
|
`,e+=` if (query) {
|
|
@@ -408,7 +410,7 @@ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
|
|
|
408
410
|
|
|
409
411
|
`),e+=`const __toilRest = {
|
|
410
412
|
`;for(let n=0,s=t.rest.length;n<s;++n){let a=t.rest[n];e+=" "+a.key+`: {
|
|
411
|
-
`;for(let l=0,o=a.routes.length;l<o;++l){let u=a.routes[l],c=
|
|
413
|
+
`;for(let l=0,o=a.routes.length;l<o;++l){let u=a.routes[l],c=Yg(u,i);e+=" async "+u.name+"("+c.argsParam+"): "+c.ret+` {
|
|
412
414
|
`,e+=" const __url = __toilUrl("+JSON.stringify(u.pattern)+", "+(u.params.length?"args.params as any":"undefined")+`, args?.query);
|
|
413
415
|
`;let f=u.bodyType!=null?u.stream=="Binary"?"application/octet-stream":"application/json":"",_="{ ";f.length&&(_+=JSON.stringify("content-type")+": "+JSON.stringify(f)+", "),_+="...(args?.headers ?? {}) }";let h=u.bodyType!=null?u.stream=="Binary"?", body: args.body.encode()":", body: __toilJson(args.body)":"";e+=" const __res = await fetch(__url, { method: "+JSON.stringify(u.http)+", headers: "+_+h+` });
|
|
414
416
|
`,e+=" if (!__res.ok) throw new Error(`Server.REST."+a.key+"."+u.name+" ${__res.status}`);\n",u.returnsResponse?e+=` return __res;
|
|
@@ -422,21 +424,21 @@ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
|
|
|
422
424
|
`}e+=` },
|
|
423
425
|
`}return e+=`};
|
|
424
426
|
`,e+=`if (typeof globalThis !== "undefined") (globalThis as any).__toilRest = __toilRest;
|
|
425
|
-
`,e}function
|
|
427
|
+
`,e}function t8(t,i){let e=`declare global {
|
|
426
428
|
`;e+=` /** The client-callable server surface. Calls ride toiljs RPC (transport TODO). */
|
|
427
429
|
`,e+=` const Server: {
|
|
428
|
-
`;for(let r=0,n=t.remotes.length;r<n;++r){let s=t.remotes[r];e+=" "+s.name+"("+
|
|
429
|
-
`}for(let r=0,n=t.services.length;r<n;++r){let s=t.services[r];e+=" readonly "+
|
|
430
|
-
`;for(let a=0,l=s.methods.length;a<l;++a){let o=s.methods[a];e+=" "+o.name+"("+
|
|
430
|
+
`;for(let r=0,n=t.remotes.length;r<n;++r){let s=t.remotes[r];e+=" "+s.name+"("+Wg(s.params,i)+"): Promise<"+ji(s.returns,i)+`>;
|
|
431
|
+
`}for(let r=0,n=t.services.length;r<n;++r){let s=t.services[r];e+=" readonly "+Jg(s.name)+`: {
|
|
432
|
+
`;for(let a=0,l=s.methods.length;a<l;++a){let o=s.methods[a];e+=" "+o.name+"("+Wg(o.params,i)+"): Promise<"+ji(o.returns,i)+`>;
|
|
431
433
|
`}e+=` };
|
|
432
434
|
`}if(t.rest.length){e+=" /** Generated HTTP fetch client for the `@rest` controllers. */\n",e+=` readonly REST: {
|
|
433
435
|
`;for(let r=0,n=t.rest.length;r<n;++r){let s=t.rest[r];e+=" readonly "+s.key+`: {
|
|
434
|
-
`;for(let a=0,l=s.routes.length;a<l;++a){let o=
|
|
436
|
+
`;for(let a=0,l=s.routes.length;a<l;++a){let o=Yg(s.routes[a],i);e+=" "+s.routes[a].name+"("+o.argsParam+"): "+o.ret+`;
|
|
435
437
|
`}e+=` };
|
|
436
438
|
`}e+=` };
|
|
437
439
|
`}return e+=` };
|
|
438
440
|
`,e+=`}
|
|
439
|
-
`,e}function
|
|
441
|
+
`,e}function r8(t){let i=`// ---- @user session client (reads the readable companion cookie) ----
|
|
440
442
|
`;return i+=`const __TOIL_USER_COOKIE = "__Secure-toil_user";
|
|
441
443
|
|
|
442
444
|
`,i+=`function __toilReadCookie(name: string): string | null {
|
|
@@ -470,20 +472,20 @@ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
|
|
|
470
472
|
`,i+=` if (bytes === null) return null;
|
|
471
473
|
`,i+=" try { return "+t+`.decode(bytes); } catch { return null; }
|
|
472
474
|
`,i+=`}
|
|
473
|
-
`,i}function
|
|
475
|
+
`,i}function n8(t,i){let e=j0(t);if(e.data.length==0&&e.services.length==0&&e.remotes.length==0&&e.rest.length==0)return null;let r=new Set;for(let a=0,l=e.data.length;a<l;++a)r.add(e.data[a].name);let n=`/* eslint-disable */
|
|
474
476
|
`;n+=`// AUTO-GENERATED by toilscript, do not edit.
|
|
475
477
|
`,n+=`// Working @data codec + the typed client-callable Server surface.
|
|
476
478
|
`,n+=`// The Server proxy + transport are provided by toiljs.
|
|
477
479
|
|
|
478
480
|
`,e.data.length&&(n+='import { DataWriter, DataReader } from "'+i+`";
|
|
479
481
|
|
|
480
|
-
`,n+=
|
|
481
|
-
`);for(let a=0,l=e.data.length;a<l;++a)n+=
|
|
482
|
-
`;let s=
|
|
483
|
-
`),e.userType!=null&&(n
|
|
484
|
-
`),n+=
|
|
482
|
+
`,n+=J0(),n+=`
|
|
483
|
+
`);for(let a=0,l=e.data.length;a<l;++a)n+=Y0(e.data[a],r),n+=`
|
|
484
|
+
`;let s=e8(e,r);return s.length&&(n+=s+`
|
|
485
|
+
`),e.userType!=null&&(n+=r8(e.userType)+`
|
|
486
|
+
`),n+=t8(e,r),n+=`
|
|
485
487
|
export {};
|
|
486
|
-
`,n}var
|
|
488
|
+
`,n}var nf=class t{constructor(){this.sb=[];this.indentLevel=0}static build(i){let e=new t;return e.visitNode(i),e.finish()}visitNode(i){switch(i.kind){case 0:{this.visitSource(i);break}case 1:{this.visitNamedTypeNode(i);break}case 2:{this.visitFunctionTypeNode(i);break}case 3:{this.visitTupleTypeNode(i);break}case 5:{this.visitTypeParameter(i);break}case 14:case 19:case 24:case 25:case 26:case 27:case 7:{this.visitIdentifierExpression(i);break}case 8:{this.visitAssertionExpression(i);break}case 9:{this.visitBinaryExpression(i);break}case 10:{this.visitCallExpression(i);break}case 11:{this.visitClassExpression(i);break}case 12:{this.visitCommaExpression(i);break}case 13:{this.visitElementAccessExpression(i);break}case 15:{this.visitFunctionExpression(i);break}case 16:{this.visitInstanceOfExpression(i);break}case 17:{this.visitLiteralExpression(i);break}case 18:{this.visitNewExpression(i);break}case 21:{this.visitParenthesizedExpression(i);break}case 22:{this.visitPropertyAccessExpression(i);break}case 23:{this.visitTernaryExpression(i);break}case 28:{this.visitUnaryPostfixExpression(i);break}case 29:{this.visitUnaryPrefixExpression(i);break}case 31:{this.visitBlockStatement(i);break}case 32:{this.visitBreakStatement(i);break}case 33:{this.visitContinueStatement(i);break}case 34:{this.visitDoStatement(i);break}case 35:{this.visitEmptyStatement(i);break}case 36:{this.visitExportStatement(i);break}case 37:{this.visitExportDefaultStatement(i);break}case 38:{this.visitExportImportStatement(i);break}case 39:{this.visitExpressionStatement(i);break}case 40:{this.visitForStatement(i);break}case 41:{this.visitForOfStatement(i);break}case 42:{this.visitIfStatement(i);break}case 43:{this.visitImportStatement(i);break}case 44:{this.visitReturnStatement(i);break}case 45:{this.visitSwitchStatement(i);break}case 46:{this.visitThrowStatement(i);break}case 47:{this.visitTryStatement(i);break}case 48:{this.visitVariableStatement(i);break}case 50:{this.visitWhileStatement(i);break}case 51:{this.visitModuleDeclaration(i);break}case 52:{this.visitClassDeclaration(i);break}case 53:{this.visitEnumDeclaration(i);break}case 54:{this.visitEnumValueDeclaration(i);break}case 55:{this.visitFieldDeclaration(i);break}case 56:{this.visitFunctionDeclaration(i);break}case 57:{this.visitImportDeclaration(i);break}case 58:{this.visitInterfaceDeclaration(i);break}case 59:{this.visitMethodDeclaration(i);break}case 60:{this.visitNamespaceDeclaration(i);break}case 61:{this.visitTypeDeclaration(i);break}case 62:{this.visitVariableDeclaration(i);break}case 63:{this.serializeDecorator(i);break}case 64:{this.visitExportMember(i);break}case 6:{this.serializeParameter(i);break}case 65:{this.visitSwitchCase(i);break}case 66:{this.visitIndexSignature(i);break}default:assert(!1)}}visitSource(i){let e=i.statements;for(let r=0,n=e.length;r<n;++r)this.visitNodeAndTerminate(e[r])}visitTypeNode(i){switch(i.kind){case 1:{this.visitNamedTypeNode(i);break}case 2:{this.visitFunctionTypeNode(i);break}case 3:{this.visitTupleTypeNode(i);break}default:assert(!1)}}visitTypeName(i){this.visitIdentifierExpression(i.identifier);let e=this.sb,r=i.next;for(;r;)e.push("."),this.visitIdentifierExpression(r.identifier),r=r.next}visitNamedTypeNode(i){this.visitTypeName(i.name);let e=i.typeArguments;if(e){let r=e.length,n=this.sb;if(r){n.push("<"),this.visitTypeNode(e[0]);for(let s=1;s<r;++s)n.push(", "),this.visitTypeNode(e[s]);n.push(">")}i.isNullable&&n.push(" | null")}}visitFunctionTypeNode(i){let e=i.isNullable,r=this.sb;r.push(e?"((":"(");let n=i.explicitThisType;n&&(r.push("this: "),this.visitTypeNode(n));let s=i.parameters,a=s.length;if(a){n&&r.push(", "),this.serializeParameter(s[0]);for(let o=1;o<a;++o)r.push(", "),this.serializeParameter(s[o])}let l=i.returnType;l?(r.push(") => "),this.visitTypeNode(l)):r.push(") => void"),e&&r.push(") | null")}visitTupleTypeNode(i){let e=this.sb;e.push("[");let r=i.elements,n=i.elementNames,s=r.length;if(s){let a=n?n[0]:null;a&&(this.visitIdentifierExpression(a),e.push(": ")),this.visitTypeNode(r[0]);for(let l=1;l<s;++l)e.push(", "),a=n?n[l]:null,a&&(this.visitIdentifierExpression(a),e.push(": ")),this.visitTypeNode(r[l])}e.push("]"),i.isNullable&&e.push(" | null")}visitTypeParameter(i){this.visitIdentifierExpression(i.name);let e=i.extendsType;e&&(this.sb.push(" extends "),this.visitTypeNode(e));let r=i.defaultType;r&&(this.sb.push("="),this.visitTypeNode(r))}visitIdentifierExpression(i){i.isQuoted?this.visitStringLiteral(i.text):this.sb.push(i.text)}visitArrayLiteralExpression(i){let e=this.sb;e.push("[");let r=i.elementExpressions,n=r.length;if(n){let s=r[0];s&&this.visitNode(s);for(let a=1;a<n;++a)s=r[a],e.push(", "),s&&this.visitNode(s)}e.push("]")}visitObjectLiteralExpression(i){let e=this.sb,r=i.names,n=i.values,s=r.length;if(assert(s==n.length),s){e.push(`{
|
|
487
489
|
`),O(e,++this.indentLevel),this.visitNode(r[0]),e.push(": "),this.visitNode(n[0]);for(let a=1;a<s;++a){e.push(`,
|
|
488
490
|
`),O(e,this.indentLevel);let l=r[a],o=n[a];l==o?this.visitNode(l):(this.visitNode(l),e.push(": "),this.visitNode(o))}e.push(`
|
|
489
491
|
`),O(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitAssertionExpression(i){let e=this.sb;switch(i.assertionKind){case 0:{e.push("<"),this.visitTypeNode(assert(i.toType)),e.push(">"),this.visitNode(i.expression);break}case 1:{this.visitNode(i.expression),e.push(" as "),this.visitTypeNode(assert(i.toType));break}case 2:{this.visitNode(i.expression),e.push("!");break}case 3:{this.visitNode(i.expression),e.push(" as const");break}default:assert(!1)}}visitBinaryExpression(i){let e=this.sb;this.visitNode(i.left),e.push(" "),e.push(Ie(i.operator)),e.push(" "),this.visitNode(i.right)}visitCallExpression(i){this.visitNode(i.expression),this.visitArguments(i.typeArguments,i.args)}visitArguments(i,e){let r=this.sb;if(i){let s=i.length;if(s){r.push("<"),this.visitTypeNode(i[0]);for(let a=1;a<s;++a)r.push(", "),this.visitTypeNode(i[a]);r.push(">(")}}else r.push("(");let n=e.length;if(n){this.visitNode(e[0]);for(let s=1;s<n;++s)r.push(", "),this.visitNode(e[s])}r.push(")")}visitClassExpression(i){let e=i.declaration;this.visitClassDeclaration(e)}visitCommaExpression(i){let e=i.expressions,r=assert(e.length);this.visitNode(e[0]);let n=this.sb;for(let s=1;s<r;++s)n.push(","),this.visitNode(e[s])}visitElementAccessExpression(i){let e=this.sb;this.visitNode(i.expression),e.push("["),this.visitNode(i.elementExpression),e.push("]")}visitFunctionExpression(i){let e=i.declaration;e.arrowKind?assert(e.name.text.length==0):e.name.text.length?this.sb.push("function "):this.sb.push("function"),this.visitFunctionCommon(e)}visitLiteralExpression(i){switch(i.literalKind){case 0:{this.visitFloatLiteralExpression(i);break}case 1:{this.visitIntegerLiteralExpression(i);break}case 2:{this.visitStringLiteralExpression(i);break}case 3:{this.visitTemplateLiteralExpression(i);break}case 4:{this.visitRegexpLiteralExpression(i);break}case 5:{this.visitArrayLiteralExpression(i);break}case 6:{this.visitObjectLiteralExpression(i);break}default:{assert(!1);break}}}visitFloatLiteralExpression(i){this.sb.push(i.value.toString())}visitInstanceOfExpression(i){this.visitNode(i.expression),this.sb.push(" instanceof "),this.visitTypeNode(i.isType)}visitIntegerLiteralExpression(i){let e=i.range,r=e.source.text.startsWith("-",e.start);this.sb.push(i64_to_string(i.value,!r))}visitStringLiteral(i){let e=this.sb;e.push('"'),e.push(Te(i,34)),e.push('"')}visitStringLiteralExpression(i){this.visitStringLiteral(i.value)}visitTemplateLiteralExpression(i){let e=this.sb,r=i.tag,n=i.parts,s=i.expressions;r&&this.visitNode(r),e.push("`"),e.push(Te(n[0],96)),assert(n.length==s.length+1);for(let a=0,l=s.length;a<l;++a)e.push("${"),this.visitNode(s[a]),e.push("}"),e.push(Te(n[a+1],96));e.push("`")}visitRegexpLiteralExpression(i){let e=this.sb;e.push("/"),e.push(i.pattern),e.push("/"),e.push(i.patternFlags)}visitNewExpression(i){this.sb.push("new "),this.visitTypeName(i.typeName),this.visitArguments(i.typeArguments,i.args)}visitParenthesizedExpression(i){let e=this.sb;e.push("("),this.visitNode(i.expression),e.push(")")}visitPropertyAccessExpression(i){this.visitNode(i.expression),this.sb.push("."),this.visitIdentifierExpression(i.property)}visitTernaryExpression(i){let e=this.sb;this.visitNode(i.condition),e.push(" ? "),this.visitNode(i.ifThen),e.push(" : "),this.visitNode(i.ifElse)}visitUnaryExpression(i){switch(i.kind){case 28:{this.visitUnaryPostfixExpression(i);break}case 29:{this.visitUnaryPrefixExpression(i);break}default:assert(!1)}}visitUnaryPostfixExpression(i){this.visitNode(i.operand),this.sb.push(Ie(i.operator))}visitUnaryPrefixExpression(i){this.sb.push(Ie(i.operator)),this.visitNode(i.operand)}visitNodeAndTerminate(i){this.visitNode(i);let e=this.sb;if(!e.length||i.kind==48||i.kind==39)e.push(`;
|
|
@@ -513,5 +515,5 @@ export {};
|
|
|
513
515
|
`);let l=i.catchStatements;if(l)for(let o=0,u=l.length;o<u;++o)O(e,r),this.visitNodeAndTerminate(l[o])}let a=i.finallyStatements;if(a){O(e,r-1),e.push(`} finally {
|
|
514
516
|
`);for(let l=0,o=a.length;l<o;++l)O(e,r),this.visitNodeAndTerminate(a[l])}O(e,r-1),e.push("}")}visitTypeDeclaration(i){let e=i.decorators;if(e)for(let s=0,a=e.length;s<a;++s)this.serializeDecorator(e[s]);let r=this.sb;this.serializeExternalModifiers(i),r.push("type "),this.visitIdentifierExpression(i.name);let n=i.typeParameters;if(n){let s=n.length;if(s){r.push("<");for(let a=0;a<s;++a)this.visitTypeParameter(n[a]);r.push(">")}}r.push(" = "),this.visitTypeNode(i.type)}visitModuleDeclaration(i){let e=this.sb;i.flags&4&&e.push("declare "),e.push('module "'),e.push(Te(i.moduleName,34)),e.push('"')}visitVariableDeclaration(i){this.visitIdentifierExpression(i.name);let e=i.type,r=this.sb;i.flags&16384&&r.push("!"),e&&(r.push(": "),this.visitTypeNode(e));let n=i.initializer;n&&(r.push(" = "),this.visitNode(n))}visitVariableStatement(i){let e=i.decorators;if(e)for(let l=0,o=e.length;l<o;++l)this.serializeDecorator(e[l]);let r=this.sb,n=i.declarations,s=assert(n.length),a=n[0];this.serializeExternalModifiers(a),r.push(a.is(8)?"const ":a.is(16)?"let ":"var "),this.visitVariableDeclaration(i.declarations[0]);for(let l=1;l<s;++l)r.push(", "),this.visitVariableDeclaration(i.declarations[l])}visitWhileStatement(i){let e=this.sb;e.push("while ("),this.visitNode(i.condition);let r=i.body;r.isEmpty?e.push(")"):(e.push(") "),this.visitNode(r))}serializeDecorator(i){let e=this.sb;e.push("@"),this.visitNode(i.name);let r=i.args;if(r){e.push("(");let n=r.length;if(n){this.visitNode(r[0]);for(let s=1;s<n;++s)e.push(", "),this.visitNode(r[s])}e.push(`)
|
|
515
517
|
`)}else e.push(`
|
|
516
|
-
`);O(e,this.indentLevel)}serializeParameter(i){let e=this.sb,r=i.parameterKind,n=i.implicitFieldDeclaration;n&&this.serializeAccessModifiers(n),r==2&&e.push("..."),this.visitIdentifierExpression(i.name);let s=i.type,a=i.initializer;s&&(r==1&&!a&&e.push("?"),ke(s)||(e.push(": "),this.visitTypeNode(s))),a&&(e.push(" = "),this.visitNode(a))}serializeExternalModifiers(i){let e=this.sb;i.is(2)?e.push("export "):i.is(1)?e.push("import "):i.is(4)&&e.push("declare ")}serializeAccessModifiers(i){let e=this.sb;i.is(4)&&e.push("declare "),i.is(256)?e.push("public "):i.is(512)?e.push("private "):i.is(1024)&&e.push("protected "),i.is(32)?e.push("static "):i.is(128)&&e.push("abstract "),i.is(64)&&e.push("readonly ")}finish(){let i=this.sb.join("");return this.sb=[],i}};var
|
|
518
|
+
`);O(e,this.indentLevel)}serializeParameter(i){let e=this.sb,r=i.parameterKind,n=i.implicitFieldDeclaration;n&&this.serializeAccessModifiers(n),r==2&&e.push("..."),this.visitIdentifierExpression(i.name);let s=i.type,a=i.initializer;s&&(r==1&&!a&&e.push("?"),ke(s)||(e.push(": "),this.visitTypeNode(s))),a&&(e.push(" = "),this.visitNode(a))}serializeExternalModifiers(i){let e=this.sb;i.is(2)?e.push("export "):i.is(1)?e.push("import "):i.is(4)&&e.push("declare ")}serializeAccessModifiers(i){let e=this.sb;i.is(4)&&e.push("declare "),i.is(256)?e.push("public "):i.is(512)?e.push("private "):i.is(1024)&&e.push("protected "),i.is(32)?e.push("static "):i.is(128)&&e.push("abstract "),i.is(64)&&e.push("readonly ")}finish(){let i=this.sb.join("");return this.sb=[],i}};var jH=sf;export{nf as ASTBuilder,Ir as ArrayLiteralExpression,Ei as ArrowKind,Ra as AssertionExpression,Ti as AssertionKind,Mp as AtomicRMWOp,Fa as BinaryExpression,Cl as BinaryModule,Ii as BinaryOp,Ya as BlockStatement,rg as BrOnOp,$a as BreakStatement,ka as CallExpression,rr as Class,Pn as ClassDeclaration,wa as ClassExpression,us as ClassPrototype,Ca as CommaExpression,Fp as CommentKind,Ia as CommentNode,Ne as CommonFlags,C as CommonNames,Ja as CompiledExpression,Bs as Compiler,ec as ConditionKind,_c as ConstantValueKind,Yc as Constraints,Pa as ConstructorExpression,el as ContinueStatement,GI as DEFAULT_STACK_SIZE,De as DeclarationStatement,ir as DeclaredElement,nr as DecoratorFlags,Ye as DecoratorKind,Sa as DecoratorNode,Aa as DiagnosticCategory,ct as DiagnosticCode,We as DiagnosticEmitter,Ta as DiagnosticMessage,tl as DoStatement,ss as Element,Ba as ElementAccessExpression,mt as ElementKind,rl as EmptyStatement,Yl as Enum,il as EnumDeclaration,$l as EnumValue,nl as EnumValueDeclaration,ol as ExportDefaultStatement,sl as ExportImportStatement,al as ExportMember,Cs as ExportNames,ll as ExportStatement,ye as Expression,wr as ExpressionId,Pl as ExpressionRunnerFlags,ul as ExpressionStatement,Np as ExternalKind,i0 as FEATURES_ALL,n0 as FEATURES_DEFAULT,qI as FEATURE_BULK_MEMORY,r0 as FEATURE_CLOSURES,jI as FEATURE_EXCEPTION_HANDLING,$I as FEATURE_EXTENDED_CONST,JI as FEATURE_GC,ZI as FEATURE_MEMORY64,XI as FEATURE_MULTI_VALUE,VI as FEATURE_MUTABLE_GLOBALS,OI as FEATURE_NONTRAPPING_F2I,QI as FEATURE_REFERENCE_TYPES,YI as FEATURE_RELAXED_SIMD,t0 as FEATURE_SHARED_EVERYTHING,UI as FEATURE_SIGN_EXTENSION,WI as FEATURE_SIMD,e0 as FEATURE_STRINGREF,HI as FEATURE_TAIL_CALLS,KI as FEATURE_THREADS,Ha as FalseExpression,wt as Feature,Lp as FeatureFlags,pl as FieldDeclaration,$p as FieldFlags,ls as File,La as FloatLiteralExpression,zt as Flow,Vl as FlowFlags,fl as ForOfStatement,cl as ForStatement,gt as Function,Bn as FunctionDeclaration,Na as FunctionExpression,Xe as FunctionPrototype,Sr as FunctionTypeNode,ua as GETTER_PREFIX,Cr as Global,ge as HeapTypeRef,Ge as INDEX_SUFFIX,hp as INNER_DELIMITER,_p as INSTANCE_DELIMITER,Ke as IdentifierExpression,wp as IdentifierHandling,_l as IfStatement,hl as ImportDeclaration,Wi as ImportNames,Ln as ImportStatement,Yn as IndexSignature,Za as IndexSignatureNode,Ma as InstanceOfExpression,Bt as IntegerLiteralExpression,$n as Interface,dl as InterfaceDeclaration,eo as InterfacePrototype,Di as JSBuilder,pt as LIBRARY_PREFIX,Oy as LIBRARY_SUBST,ft as LiteralExpression,Yt as LiteralKind,Oe as Local,Xn as LocalFlags,Yy as MemoryOrder,Si as MemorySegment,Rr as MethodDeclaration,Gt as Module,Al as ModuleDeclaration,ce as NamedTypeNode,os as Namespace,ml as NamespaceDeclaration,Ga as NewExpression,G as Node,st as NodeKind,za as NullExpression,_t as ObjectLiteralExpression,Da as OmittedExpression,Re as OperatorKind,Ps as Options,Yx as PARENT_SUBST,rt as PATH_DELIMITER,Gn as PackedType,fc as Parameter,Fr as ParameterKind,bi as ParameterNode,Ua as ParenthesizedExpression,is as Parser,bg as Precedence,ns as Program,Zn as Property,Lt as PropertyAccessExpression,Pi as PropertyPrototype,le as Range,$y as RefAsOp,Va as RegexpLiteralExpression,wl as Relooper,Kl as ReportMode,Jn as Resolver,yl as ReturnStatement,la as Runtime,$c as RuntimeFeatures,pa as SETTER_PREFIX,Gp as SIMDExtractOp,Up as SIMDLoadOp,Vp as SIMDLoadStoreLaneOp,zp as SIMDReplaceOp,Dp as SIMDShiftOp,Op as SIMDTernaryOp,Sn as STATIC_DELIMITER,dp as STUB_DELIMITER,Yp as SideEffects,qe as Signature,fe as Source,Ai as SourceKind,Fl as State,oe as Statement,sg as StringEncodeOp,ag as StringEqOp,Ze as StringLiteralExpression,ng as StringMeasureOp,ig as StringNewOp,qa as SuperExpression,zn as SwitchBuilder,gl as SwitchCase,bl as SwitchStatement,Ki as TSDBuilder,oi as Target,Wa as TemplateLiteralExpression,Oa as TernaryExpression,Ka as ThisExpression,xl as ThrowStatement,vi as Token,kr as Tokenizer,ja as TrueExpression,Tl as TryStatement,Ea as TupleTypeNode,p as Type,Bp as TypeBuilderErrorReason,El as TypeDeclaration,$e as TypeDefinition,yt as TypeFlags,er as TypeKind,gi as TypeName,yi as TypeNode,va as TypeParameterNode,L as TypeRef,Ut as TypedElement,ui as Typeinfo,oa as TypeinfoFlags,Cn as UnaryExpression,Dn as UnaryOp,Qa as UnaryPostfixExpression,Xa as UnaryPrefixExpression,Ol as UncheckedBehavior,vl as VariableDeclaration,xi as VariableLikeDeclarationStatement,Pr as VariableLikeElement,Sl as VariableStatement,Il as VoidStatement,Rl as WhileStatement,eg as WideIntAddSubOp,tg as WideIntMulOp,CI as addGlobalAlias,he as allocPtrArray,P0 as buildJS,n8 as buildServerModule,C0 as buildTSD,w0 as compile,je as createType,jH as default,ao as defaultFeatures,Qy as diagnosticCategoryToColor,Rp as diagnosticCategoryToString,ca as diagnosticCodeToString,Qn as ensureType,qp as expandType,li as featureToString,Nt as findDecorator,Xy as formatDiagnostic,Xy as formatDiagnosticMessage,Qe as getBinaryLeft,Ri as getBinaryOp,Me as getBinaryRight,B0 as getBinaryenModuleRef,Kn as getBlockChildAt,Wn as getBlockChildCount,qn as getBlockName,B2 as getBreakCondition,P2 as getBreakName,Ve as getCallOperandAt,dt as getCallOperandCount,Hn as getCallTarget,Ae as getConstValueF32,Ee as getConstValueF64,ne as getConstValueI32,we as getConstValueI64High,ve as getConstValueI64Low,Wp as getConstValueInteger,Kp as getConstValueV128,Eg as getDefaultParameterName,F0 as getDependee,d0 as getDiagnosticCategory,h0 as getDiagnosticCode,m0 as getDiagnosticMessage,y0 as getDiagnosticRange,g0 as getDiagnosticRelatedRange,N2 as getDropValue,$ as getExpressionId,se as getExpressionType,z2 as getFunctionBody,Jp as getFunctionName,D2 as getFunctionParams,U2 as getFunctionResults,V2 as getFunctionVars,Vn as getGlobalGetName,W2 as getGlobalInit,O2 as getGlobalName,q2 as getGlobalType,zl as getIfCondition,Fi as getIfFalse,jn as getIfTrue,jp as getLoadBytes,v2 as getLoadOffset,S2 as getLoadPtr,ht as getLocalGetIndex,Nl as getLocalSetIndex,Ml as getLocalSetValue,C2 as getLoopBody,w2 as getLoopName,G2 as getMemoryGrowDelta,x0 as getRangeEnd,T0 as getRangeSource,b0 as getRangeStart,M2 as getReturnValue,L2 as getSelectCondition,Xp as getSelectElse,Qp as getSelectThen,ki as getSideEffects,_0 as getSource,A0 as getSourceNormalizedPath,I2 as getStoreBytes,R2 as getStoreOffset,F2 as getStorePtr,k2 as getStoreValue,K2 as getTagName,j2 as getTagParams,H2 as getTagResults,On as getUnaryOp,Gl as getUnaryValue,k0 as initializeProgram,Ll as isConstExpressionNaN,E2 as isConstNaN,Bl as isConstNegZero,at as isConstNonZero,He as isConstZero,as as isDeclaredElement,S0 as isError,Zp as isGlobalMutable,Cp as isIllegalVariableIdentifier,E0 as isInfo,Hp as isLoadSigned,Un as isLocalTee,lg as isNullableType,ke as isTypeOmitted,ql as isTypedElement,v0 as isWarning,Ce as mangleInternalName,Nn as mangleInternalPath,Dl as mustPreserveSideEffects,mI as newOptions,c0 as newProgram,f0 as nextDiagnostic,R0 as nextFile,Ie as operatorTokenToString,N0 as optimize,I0 as parse,Ue as readString,PI as removeGlobalAlias,Ui as runtimeFunctions,Vi as runtimeGlobals,l0 as setBasenameHint,o0 as setBindingsHint,DI as setBundleVersion,p0 as setDebugInfo,xI as setExportMemory,MI as setExportRuntime,BI as setExportStart,II as setExportTable,s0 as setFeature,TI as setImportMemory,SI as setImportTable,AI as setInitialMemory,NI as setLowMemoryLimit,EI as setMaximumMemory,kI as setMemoryBase,bI as setNoAssert,LI as setNoUnsafe,a0 as setOptimizeLevelHints,u0 as setPedantic,gI as setRuntime,vI as setSharedMemory,RI as setSourceMap,zI as setStackSize,wI as setTableBase,yI as setTarget,FI as setUncheckedBehavior,Jy as tokenFromKeyword,Zy as tokenIsAlsoIdentifier,Br as typesToRefs,Wl as typesToString,Ip as util,L0 as validate};
|
|
517
519
|
//# sourceMappingURL=toilscript.js.map
|