rip-lang 3.13.14 → 3.13.15

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.
@@ -1,28 +1,28 @@
1
- (()=>{var{defineProperty:L1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:p2}=Object,d2=Object.prototype.hasOwnProperty;var a1=new WeakMap,r2=($)=>{var W=a1.get($),F;if(W)return W;if(W=L1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")i2($).map((U)=>!d2.call(W,U)&&L1(W,U,{get:()=>$[U],enumerable:!(F=p2($,U))||F.enumerable}));return a1.set($,W),W};var s1=($,W)=>{for(var F in W)L1($,F,{get:W[F],enumerable:!0,configurable:!0,set:(U)=>W[F]=()=>U})};var p3={};s1(p3,{rip:()=>q2,processRipScripts:()=>O2,parser:()=>r,importRip:()=>o,getStdlibCode:()=>A1,getReactiveRuntime:()=>_1,getComponentRuntime:()=>Z1,formatSExpr:()=>l,compileToJS:()=>n,compile:()=>q1,VERSION:()=>H2,Lexer:()=>m,Compiler:()=>Y1,CodeGenerator:()=>C,BUILD_DATE:()=>z2});function u2($){let W=$.prototype;W.rewriteTypes=function(){let F=this.tokens,U=(u,f,Y)=>{let A=[u,f];if(A.pre=0,A.data=null,A.loc=Y?.loc??{r:0,c:0,n:0},A.spaced=!1,A.newLine=!1,A.generated=!0,Y)A.origin=Y;return A};this.scanTokens((u,f,Y)=>{let A=u[0];if(A==="IDENTIFIER"){let _=Y[f+1];if(_&&_[0]==="COMPARE"&&_[1]==="<"&&!_.spaced){let J=Y[f-1]?.[0]==="DEF",X=o2(Y,f+1);if(X){let w=!J&&Y[f+1+X.length]?.[0]==="TYPE_ALIAS";if(J||w){if(!u.data)u.data={};if(u.data.typeParams=$1(X),Y.splice(f+1,X.length),J&&Y[f+1]?.[0]==="("){Y[f+1][0]="CALL_START";let H=1,Z=f+2;while(Z<Y.length&&H>0){if(Y[Z][0]==="("||Y[Z][0]==="CALL_START")H++;if(Y[Z][0]===")"||Y[Z][0]==="CALL_END")H--;if(H===0)Y[Z][0]="CALL_END";Z++}}}}}}if(A==="TYPE_ANNOTATION"){let _=Y[f-1];if(!_)return 1;let J=t1(Y,f+1),X=$1(J),w=_,H="type";if(_[0]==="CALL_END"||_[0]===")"){let D=1,Q=f-2;while(Q>=0&&D>0){let K=Y[Q][0];if(K==="CALL_END"||K===")")D++;if(K==="CALL_START"||K==="(")D--;Q--}if(Q>=0)w=Y[Q];H="returnType"}else if(_[0]==="PARAM_END"){let D=f+1+J.length,Q=Y[D];if(Q&&(Q[0]==="->"||Q[0]==="=>"))w=Q;H="returnType"}else if(_[0]==="IDENTIFIER"&&f>=2&&Y[f-2]?.[0]==="DEF")H="returnType";if(!w.data)w.data={};w.data[H]=X;let Z=1+J.length;return Y.splice(f,Z),0}if(A==="TYPE_ALIAS"){let _=Y[f-1];if(!_)return 1;let J=_[1],X=f>=2&&Y[f-2]?.[0]==="EXPORT",w=X?f-2:f-1,H=Y[f+1],Z=(Q)=>{let K=U("TYPE_DECL",J,_);if(K.data={name:J,typeText:Q,exported:X},_.data?.typeParams)K.data.typeParams=_.data.typeParams;return K};if(H&&H[0]==="IDENTIFIER"&&H[1]==="type"&&Y[f+2]?.[0]==="INDENT"){let Q=V1(Y,f+2);return Y.splice(w,Q-w+1,Z(e1(Y,f+2))),0}if(H&&(H[0]==="TERMINATOR"||H[0]==="INDENT")){let Q=a2(Y,f+1);if(Q)return Y.splice(w,Q.endIdx-w+1,Z(Q.typeText)),0}let D=t1(Y,f+1);return Y.splice(w,f+1+D.length-w,Z($1(D))),0}if(A==="INTERFACE"){let _=f>=1&&Y[f-1]?.[0]==="EXPORT",J=f+1,X=Y[J];if(!X)return 1;let w=X[1],H=null,Z=J+1;if(Y[Z]?.[0]==="EXTENDS")H=Y[Z+1]?.[1],Z=Z+2;if(Y[Z]?.[0]==="INDENT"){let D=e1(Y,Z),Q=V1(Y,Z),K=U("TYPE_DECL",w,X);K.data={name:w,kind:"interface",extends:H,typeText:D,exported:_};let M=_?f-1:f,O=Q-M+1;return Y.splice(M,O,K),0}return 1}return 1})}}function t1($,W){let F=[],U=0;while(W<$.length){let u=$[W],f=u[0],Y=f==="("||f==="["||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&u[1]==="<",A=f===")"||f==="]"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&u[1]===">";if(f==="SHIFT"&&u[1]===">>"&&U>=2){U-=2,F.push(u),W++;continue}if(Y){U++,F.push(u),W++;continue}if(A){if(U>0){U--,F.push(u),W++;continue}break}if(U===0){if(f==="="||f==="REACTIVE_ASSIGN"||f==="COMPUTED_ASSIGN"||f==="READONLY_ASSIGN"||f==="EFFECT"||f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="->"||f===",")break}F.push(u),W++}return F}function $1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let W=$.map((F)=>F[1]).join(" ").replace(/\s+/g," ").trim();return W=W.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),W}function o2($,W){if(W>=$.length)return null;let F=$[W];if(F[0]!=="COMPARE"||F[1]!=="<")return null;let U=[F],u=1,f=W+1;while(f<$.length&&u>0){let Y=$[f];if(U.push(Y),Y[0]==="COMPARE"&&Y[1]==="<")u++;else if(Y[0]==="COMPARE"&&Y[1]===">")u--;f++}return u===0?U:null}function e1($,W){let F=[],U=W+1,u=1;while(U<$.length&&u>0){let f=$[U];if(f[0]==="INDENT"){u++,U++;continue}if(f[0]==="OUTDENT"){if(u--,u===0)break;U++;continue}if(f[0]==="TERMINATOR"){U++;continue}if(u===1&&(f[0]==="PROPERTY"||f[0]==="IDENTIFIER")){let Y=f[1],A=!1,_=!1;if(U++,Y==="readonly"&&($[U]?.[0]==="PROPERTY"||$[U]?.[0]==="IDENTIFIER")){if(_=!0,Y=$[U][1],$[U].data?.predicate)A=!0;U++}if(f.data?.predicate)A=!0;if($[U]?.[1]==="?"&&!$[U]?.spaced)A=!0,U++;if($[U]?.[1]===":"||$[U]?.[0]==="TYPE_ANNOTATION")U++;let J=[],X=0;while(U<$.length){let D=$[U];if(D[0]==="INDENT"){X++,U++;continue}if(D[0]==="OUTDENT"){if(X>0){X--,U++;continue}break}if(D[0]==="TERMINATOR"&&X===0)break;J.push(D),U++}let w=$1(J),H=_?"readonly ":"",Z=A?"?":"";F.push(`${H}${Y}${Z}: ${w}`)}else U++}return"{ "+F.join("; ")+" }"}function V1($,W){let F=0;for(let U=W;U<$.length;U++){if($[U][0]==="INDENT")F++;if($[U][0]==="OUTDENT"){if(F--,F===0)return U}}return $.length-1}function a2($,W){let F=W;if($[F]?.[0]==="TERMINATOR")F++;if($[F]?.[0]!=="INDENT")return null;let U=F;F++;while(F<$.length&&$[F][0]==="TERMINATOR")F++;if(!$[F]||$[F][1]!=="|")return null;let u=[],f=1;F=U+1;while(F<$.length&&f>0){let A=$[F];if(A[0]==="INDENT"){f++,F++;continue}if(A[0]==="OUTDENT"){if(f--,f===0)break;F++;continue}if(A[0]==="TERMINATOR"){F++;continue}if(A[1]==="|"&&f===1){F++;let _=[];while(F<$.length){let J=$[F];if(J[0]==="TERMINATOR"||J[0]==="OUTDENT"||J[1]==="|"&&f===1)break;_.push(J),F++}if(_.length>0)u.push($1(_));continue}F++}if(u.length===0)return null;let Y=V1($,U);return{typeText:u.join(" | "),endIdx:Y}}function h1($,W=null){let F=[],U=0,u=" ",f=()=>u.repeat(U),Y=!1,A=!1,_=!1,J=(Z,D,Q)=>{if(D.startsWith("{ ")&&D.endsWith(" }")){let K=D.slice(2,-2).split("; ").filter((M)=>M.trim());if(K.length>0){F.push(`${f()}${Z}{`),U++;for(let M of K)F.push(`${f()}${M};`);U--,F.push(`${f()}}${Q}`);return}}F.push(`${f()}${Z}${D}${Q}`)},X=(Z,D)=>{let Q=[],K=D,M=Z[K]?.[0];if(M!=="CALL_START"&&M!=="PARAM_START")return{params:Q,endIdx:K};let O=M==="CALL_START"?"CALL_END":"PARAM_END";K++;let q=0;while(K<Z.length&&!(Z[K][0]===O&&q===0)){let z=Z[K];if(z[1]===","&&q===0){K++;continue}if(z[0]==="{"||z[0]==="["||z[0]==="CALL_START"||z[0]==="PARAM_START"||z[0]==="INDEX_START")q++;if(z[0]==="}"||z[0]==="]"||z[0]==="CALL_END"||z[0]==="PARAM_END"||z[0]==="INDEX_END"){q--,K++;continue}if(z[0]==="@"){if(K++,Z[K]?.[0]==="PROPERTY"||Z[K]?.[0]==="IDENTIFIER"){let E=Z[K][1],G=Z[K].data?.type;Q.push(G?`${E}: ${b(G)}`:E),K++}continue}if(z[0]==="SPREAD"||z[1]==="..."){if(K++,Z[K]?.[0]==="IDENTIFIER"){let E=Z[K][1],G=Z[K].data?.type;Q.push(G?`...${E}: ${b(G)}`:`...${E}: any[]`),K++}continue}if(z[0]==="{"){let E="{";K++;let G=1;while(K<Z.length&&G>0){if(Z[K][0]==="{")G++;if(Z[K][0]==="}")G--;if(G>0)E+=Z[K][1]+(Z[K+1]?.[0]==="}"?"":", ");K++}E+="}";let R=Z[K-1]?.data?.type;Q.push(R?`${E}: ${b(R)}`:E);continue}if(z[0]==="IDENTIFIER"){let E=z[1],G=z.data?.type,R=!1;if(Z[K+1]?.[0]==="=")R=!0;if(G)Q.push(`${E}${R?"?":""}: ${b(G)}`);else Q.push(E);if(K++,R){K++;let P=0;while(K<Z.length){let I=Z[K];if(I[0]==="("||I[0]==="["||I[0]==="{")P++;if(I[0]===")"||I[0]==="]"||I[0]==="}")P--;if(P===0&&(I[1]===","||I[0]==="CALL_END"))break;K++}}continue}K++}return{params:Q,endIdx:K}};for(let Z=0;Z<$.length;Z++){let D=$[Z],Q=D[0],K=!1;if(Q==="EXPORT"){if(K=!0,Z++,Z>=$.length)break;if(D=$[Z],Q=D[0],Q==="DEFAULT"){if(Z++,Z>=$.length)break;if(D=$[Z],Q=D[0],Q==="IDENTIFIER")F.push(`${f()}export default ${D[1]};`);continue}}if(Q==="IMPORT"){let M=[],O=Z+1;while(O<$.length&&$[O][0]!=="TERMINATOR")M.push($[O]),O++;let q="import "+M.map((z)=>z[1]).join(" ");q=q.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),F.push(`${f()}${q};`),Z=O;continue}if(Q==="TYPE_DECL"){let M=D.data;if(!M)continue;let O=K||M.exported?"export ":"",q=M.typeParams||"";if(M.kind==="interface"){let z=M.extends?` extends ${M.extends}`:"";J(`${O}interface ${M.name}${q}${z} `,M.typeText||"{}","")}else{let z=b(M.typeText||"");J(`${O}type ${M.name}${q} = `,z,";")}continue}if(Q==="ENUM"){let M=K?"export ":"",O=$[Z+1];if(!O)continue;let q=O[1],z=Z+2;if($[z]?.[0]==="INDENT"){F.push(`${f()}${M}enum ${q} {`),U++,z++;let E=[];while(z<$.length&&$[z][0]!=="OUTDENT"){if($[z][0]==="TERMINATOR"){z++;continue}if($[z][0]==="IDENTIFIER"){let G=$[z][1];if(z++,$[z]?.[1]==="="){z++;let R=$[z]?.[1];E.push(`${G} = ${R}`),z++}else E.push(G)}else z++}for(let G=0;G<E.length;G++){let R=G<E.length-1?",":"";F.push(`${f()}${E[G]}${R}`)}U--,F.push(`${f()}}`)}continue}if(Q==="CLASS"){let M=K?"export ":"",O=$[Z+1];if(!O)continue;let q=O[1],z="",E=Z+2;if($[E]?.[0]==="EXTENDS")z=` extends ${$[E+1]?.[1]||""}`,E+=2;if($[E]?.[0]==="INDENT"){let G=!1,R=E+1;while(R<$.length&&$[R][0]!=="OUTDENT"){if($[R].data?.type||$[R].data?.returnType){G=!0;break}R++}if(G)F.push(`${f()}${M}declare class ${q}${z} {`),Y=!0,U++}continue}if(Q==="DEF"){let M=$[Z+1];if(!M)continue;let O=M[1],q=M.data?.returnType,z=M.data?.typeParams||"",{params:E,endIdx:G}=X($,Z+2);if(q||E.some((R)=>R.includes(":"))){let R=K?"export ":"",P=Y?"":K?"":"declare ",I=q?`: ${b(q)}`:"",B=E.join(", ");if(Y)F.push(`${f()}${O}${z}(${B})${I};`);else F.push(`${f()}${R}${P}function ${O}${z}(${B})${I};`)}continue}if(Q==="{"&&Y){let M=Z+1,O=1;while(M<$.length&&O>0){let q=$[M];if(q[0]==="{"){O++,M++;continue}if(q[0]==="}"){O--,M++;continue}if(q[0]==="TERMINATOR"){M++;continue}if(q[0]==="PROPERTY"&&O===1){let z=q[1],E=q.data?.returnType;if(M++,$[M]?.[1]===":")M++;let G=[];if($[M]?.[0]==="PARAM_START"){let R=X($,M);G=R.params,M=R.endIdx+1}if($[M]?.[0]==="->"||$[M]?.[0]==="=>")M++;if($[M]?.[0]==="INDENT"){let R=1;M++;while(M<$.length&&R>0){if($[M][0]==="INDENT")R++;if($[M][0]==="OUTDENT")R--;M++}}if(E||G.some((R)=>R.includes(":"))){let R=E?`: ${b(E)}`:"",P=G.join(", ");F.push(`${f()}${z}(${P})${R};`)}continue}M++}Z=M-1;continue}if(Q==="INDENT")continue;if(Q==="OUTDENT"){if(Y)U--,F.push(`${f()}}`),Y=!1;continue}if(Q==="IDENTIFIER"&&!Y&&$[Z+1]?.[0]==="="&&($[Z+2]?.[0]==="PARAM_START"||$[Z+2]?.[0]==="(")){let M=D[1],O=Z+2,{params:q}=X($,O),z=O,E=0;while(z<$.length){if($[z][0]==="PARAM_START"||$[z][0]==="(")E++;if($[z][0]==="PARAM_END"||$[z][0]===")")E--;if(E===0&&($[z][0]==="->"||$[z][0]==="=>"))break;z++}let G=$[z]?.data?.returnType;if(G||q.some((R)=>R.includes(":"))){let R=K?"export ":"",P=K?"":"declare ",I=G?`: ${b(G)}`:"",B=q.join(", ");F.push(`${f()}${R}${P}function ${M}(${B})${I};`);continue}}if(Q==="IDENTIFIER"&&D.data?.type){let M=D[1],O=b(D.data.type),q=$[Z+1];if(q){let z=K?"export ":"",E=K?"":"declare ";if(q[0]==="READONLY_ASSIGN")F.push(`${f()}${z}${E}const ${M}: ${O};`);else if(q[0]==="REACTIVE_ASSIGN")A=!0,F.push(`${f()}${z}${E}const ${M}: Signal<${O}>;`);else if(q[0]==="COMPUTED_ASSIGN")_=!0,F.push(`${f()}${z}${E}const ${M}: Computed<${O}>;`);else if(q[0]==="EFFECT")F.push(`${f()}${z}${E}const ${M}: () => void;`);else if(q[0]==="="){let G=Z+2;if($[G]?.[0]==="PARAM_START"){let P=1,I=G+1;while(I<$.length&&P>0){if($[I][0]==="PARAM_START")P++;if($[I][0]==="PARAM_END")P--;I++}G=I}let R=$[G];if(R&&(R[0]==="->"||R[0]==="=>")&&R.data?.returnType){let P=b(R.data.returnType),{params:I}=X($,Z+2),B=I.join(", ");F.push(`${f()}${z}${E}function ${M}(${B}): ${P};`)}else if(Y)F.push(`${f()}${M}: ${O};`);else F.push(`${f()}${z}let ${M}: ${O};`)}else if(Y)F.push(`${f()}${M}: ${O};`)}else if(Y)F.push(`${f()}${M}: ${O};`)}}let w=new Set;if(W){if(j1(W,F,f,U,w),w.size>0)for(let Z=F.length-1;Z>=0;Z--){let D=F[Z].match(/(?:declare |export )*(?:const|let) (\w+)/);if(D&&w.has(D[1]))F.splice(Z,1)}}if(F.length===0)return null;let H=[];if(A)H.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(_)H.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(H.length>0)H.push("");return H.concat(F).join(`
1
+ (()=>{var{defineProperty:L1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:p2}=Object,d2=Object.prototype.hasOwnProperty;var a1=new WeakMap,r2=($)=>{var W=a1.get($),_;if(W)return W;if(W=L1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")i2($).map((U)=>!d2.call(W,U)&&L1(W,U,{get:()=>$[U],enumerable:!(_=p2($,U))||_.enumerable}));return a1.set($,W),W};var s1=($,W)=>{for(var _ in W)L1($,_,{get:W[_],enumerable:!0,configurable:!0,set:(U)=>W[_]=()=>U})};var p3={};s1(p3,{rip:()=>q2,processRipScripts:()=>O2,parser:()=>r,importRip:()=>o,getStdlibCode:()=>Y1,getReactiveRuntime:()=>A1,getComponentRuntime:()=>Z1,formatSExpr:()=>l,compileToJS:()=>n,compile:()=>q1,VERSION:()=>H2,Lexer:()=>m,Compiler:()=>F1,CodeGenerator:()=>C,BUILD_DATE:()=>z2});function u2($){let W=$.prototype;W.rewriteTypes=function(){let _=this.tokens,U=(u,f,F)=>{let Y=[u,f];if(Y.pre=0,Y.data=null,Y.loc=F?.loc??{r:0,c:0,n:0},Y.spaced=!1,Y.newLine=!1,Y.generated=!0,F)Y.origin=F;return Y};this.scanTokens((u,f,F)=>{let Y=u[0];if(Y==="IDENTIFIER"){let A=F[f+1];if(A&&A[0]==="COMPARE"&&A[1]==="<"&&!A.spaced){let X=F[f-1]?.[0]==="DEF",Q=o2(F,f+1);if(Q){let w=!X&&F[f+1+Q.length]?.[0]==="TYPE_ALIAS";if(X||w){if(!u.data)u.data={};if(u.data.typeParams=$1(Q),F.splice(f+1,Q.length),X&&F[f+1]?.[0]==="("){F[f+1][0]="CALL_START";let H=1,Z=f+2;while(Z<F.length&&H>0){if(F[Z][0]==="("||F[Z][0]==="CALL_START")H++;if(F[Z][0]===")"||F[Z][0]==="CALL_END")H--;if(H===0)F[Z][0]="CALL_END";Z++}}}}}}if(Y==="TYPE_ANNOTATION"){let A=F[f-1];if(!A)return 1;let X=t1(F,f+1),Q=$1(X),w=A,H="type";if(A[0]==="CALL_END"||A[0]===")"){let M=1,J=f-2;while(J>=0&&M>0){let K=F[J][0];if(K==="CALL_END"||K===")")M++;if(K==="CALL_START"||K==="(")M--;J--}if(J>=0)w=F[J];H="returnType"}else if(A[0]==="PARAM_END"){let M=f+1+X.length,J=F[M];if(J&&(J[0]==="->"||J[0]==="=>"))w=J;H="returnType"}else if(A[0]==="IDENTIFIER"&&f>=2&&F[f-2]?.[0]==="DEF")H="returnType";if(!w.data)w.data={};w.data[H]=Q;let Z=1+X.length;return F.splice(f,Z),0}if(Y==="TYPE_ALIAS"){let A=F[f-1];if(!A)return 1;let X=A[1],Q=f>=2&&F[f-2]?.[0]==="EXPORT",w=Q?f-2:f-1,H=F[f+1],Z=(J)=>{let K=U("TYPE_DECL",X,A);if(K.data={name:X,typeText:J,exported:Q},A.data?.typeParams)K.data.typeParams=A.data.typeParams;return K};if(H&&H[0]==="IDENTIFIER"&&H[1]==="type"&&F[f+2]?.[0]==="INDENT"){let J=V1(F,f+2);return F.splice(w,J-w+1,Z(e1(F,f+2))),0}if(H&&(H[0]==="TERMINATOR"||H[0]==="INDENT")){let J=a2(F,f+1);if(J)return F.splice(w,J.endIdx-w+1,Z(J.typeText)),0}let M=t1(F,f+1);return F.splice(w,f+1+M.length-w,Z($1(M))),0}if(Y==="INTERFACE"){let A=f>=1&&F[f-1]?.[0]==="EXPORT",X=f+1,Q=F[X];if(!Q)return 1;let w=Q[1],H=null,Z=X+1;if(F[Z]?.[0]==="EXTENDS")H=F[Z+1]?.[1],Z=Z+2;if(F[Z]?.[0]==="INDENT"){let M=e1(F,Z),J=V1(F,Z),K=U("TYPE_DECL",w,Q);K.data={name:w,kind:"interface",extends:H,typeText:M,exported:A};let D=A?f-1:f,O=J-D+1;return F.splice(D,O,K),0}return 1}return 1})}}function t1($,W){let _=[],U=0;while(W<$.length){let u=$[W],f=u[0],F=f==="("||f==="["||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&u[1]==="<",Y=f===")"||f==="]"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&u[1]===">";if(f==="SHIFT"&&u[1]===">>"&&U>=2){U-=2,_.push(u),W++;continue}if(F){U++,_.push(u),W++;continue}if(Y){if(U>0){U--,_.push(u),W++;continue}break}if(U===0){if(f==="="||f==="REACTIVE_ASSIGN"||f==="COMPUTED_ASSIGN"||f==="READONLY_ASSIGN"||f==="EFFECT"||f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="->"||f===",")break}_.push(u),W++}return _}function $1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let W=$.map((_)=>_[1]).join(" ").replace(/\s+/g," ").trim();return W=W.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),W}function o2($,W){if(W>=$.length)return null;let _=$[W];if(_[0]!=="COMPARE"||_[1]!=="<")return null;let U=[_],u=1,f=W+1;while(f<$.length&&u>0){let F=$[f];if(U.push(F),F[0]==="COMPARE"&&F[1]==="<")u++;else if(F[0]==="COMPARE"&&F[1]===">")u--;f++}return u===0?U:null}function e1($,W){let _=[],U=W+1,u=1;while(U<$.length&&u>0){let f=$[U];if(f[0]==="INDENT"){u++,U++;continue}if(f[0]==="OUTDENT"){if(u--,u===0)break;U++;continue}if(f[0]==="TERMINATOR"){U++;continue}if(u===1&&(f[0]==="PROPERTY"||f[0]==="IDENTIFIER")){let F=f[1],Y=!1,A=!1;if(U++,F==="readonly"&&($[U]?.[0]==="PROPERTY"||$[U]?.[0]==="IDENTIFIER")){if(A=!0,F=$[U][1],$[U].data?.predicate)Y=!0;U++}if(f.data?.predicate)Y=!0;if($[U]?.[1]==="?"&&!$[U]?.spaced)Y=!0,U++;if($[U]?.[1]===":"||$[U]?.[0]==="TYPE_ANNOTATION")U++;let X=[],Q=0;while(U<$.length){let M=$[U];if(M[0]==="INDENT"){Q++,U++;continue}if(M[0]==="OUTDENT"){if(Q>0){Q--,U++;continue}break}if(M[0]==="TERMINATOR"&&Q===0)break;X.push(M),U++}let w=$1(X),H=A?"readonly ":"",Z=Y?"?":"";_.push(`${H}${F}${Z}: ${w}`)}else U++}return"{ "+_.join("; ")+" }"}function V1($,W){let _=0;for(let U=W;U<$.length;U++){if($[U][0]==="INDENT")_++;if($[U][0]==="OUTDENT"){if(_--,_===0)return U}}return $.length-1}function a2($,W){let _=W;if($[_]?.[0]==="TERMINATOR")_++;if($[_]?.[0]!=="INDENT")return null;let U=_;_++;while(_<$.length&&$[_][0]==="TERMINATOR")_++;if(!$[_]||$[_][1]!=="|")return null;let u=[],f=1;_=U+1;while(_<$.length&&f>0){let Y=$[_];if(Y[0]==="INDENT"){f++,_++;continue}if(Y[0]==="OUTDENT"){if(f--,f===0)break;_++;continue}if(Y[0]==="TERMINATOR"){_++;continue}if(Y[1]==="|"&&f===1){_++;let A=[];while(_<$.length){let X=$[_];if(X[0]==="TERMINATOR"||X[0]==="OUTDENT"||X[1]==="|"&&f===1)break;A.push(X),_++}if(A.length>0)u.push($1(A));continue}_++}if(u.length===0)return null;let F=V1($,U);return{typeText:u.join(" | "),endIdx:F}}function h1($,W=null){let _=[],U=0,u=" ",f=()=>u.repeat(U),F=!1,Y=!1,A=!1,X=(Z,M,J)=>{if(M.startsWith("{ ")&&M.endsWith(" }")){let K=M.slice(2,-2).split("; ").filter((D)=>D.trim());if(K.length>0){_.push(`${f()}${Z}{`),U++;for(let D of K)_.push(`${f()}${D};`);U--,_.push(`${f()}}${J}`);return}}_.push(`${f()}${Z}${M}${J}`)},Q=(Z,M)=>{let J=[],K=M,D=Z[K]?.[0];if(D!=="CALL_START"&&D!=="PARAM_START")return{params:J,endIdx:K};let O=D==="CALL_START"?"CALL_END":"PARAM_END";K++;let q=0;while(K<Z.length&&!(Z[K][0]===O&&q===0)){let z=Z[K];if(z[1]===","&&q===0){K++;continue}if(z[0]==="{"||z[0]==="["||z[0]==="CALL_START"||z[0]==="PARAM_START"||z[0]==="INDEX_START")q++;if(z[0]==="}"||z[0]==="]"||z[0]==="CALL_END"||z[0]==="PARAM_END"||z[0]==="INDEX_END"){q--,K++;continue}if(z[0]==="@"){if(K++,Z[K]?.[0]==="PROPERTY"||Z[K]?.[0]==="IDENTIFIER"){let E=Z[K][1],P=Z[K].data?.type;J.push(P?`${E}: ${b(P)}`:E),K++}continue}if(z[0]==="SPREAD"||z[1]==="..."){if(K++,Z[K]?.[0]==="IDENTIFIER"){let E=Z[K][1],P=Z[K].data?.type;J.push(P?`...${E}: ${b(P)}`:`...${E}: any[]`),K++}continue}if(z[0]==="{"){let E="{";K++;let P=1;while(K<Z.length&&P>0){if(Z[K][0]==="{")P++;if(Z[K][0]==="}")P--;if(P>0)E+=Z[K][1]+(Z[K+1]?.[0]==="}"?"":", ");K++}E+="}";let R=Z[K-1]?.data?.type;J.push(R?`${E}: ${b(R)}`:E);continue}if(z[0]==="IDENTIFIER"){let E=z[1],P=z.data?.type,R=!1;if(Z[K+1]?.[0]==="=")R=!0;if(P)J.push(`${E}${R?"?":""}: ${b(P)}`);else J.push(E);if(K++,R){K++;let G=0;while(K<Z.length){let I=Z[K];if(I[0]==="("||I[0]==="["||I[0]==="{")G++;if(I[0]===")"||I[0]==="]"||I[0]==="}")G--;if(G===0&&(I[1]===","||I[0]==="CALL_END"))break;K++}}continue}K++}return{params:J,endIdx:K}};for(let Z=0;Z<$.length;Z++){let M=$[Z],J=M[0],K=!1;if(J==="EXPORT"){if(K=!0,Z++,Z>=$.length)break;if(M=$[Z],J=M[0],J==="DEFAULT"){if(Z++,Z>=$.length)break;if(M=$[Z],J=M[0],J==="IDENTIFIER")_.push(`${f()}export default ${M[1]};`);continue}}if(J==="IMPORT"){let D=[],O=Z+1;while(O<$.length&&$[O][0]!=="TERMINATOR")D.push($[O]),O++;let q="import "+D.map((z)=>z[1]).join(" ");q=q.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),_.push(`${f()}${q};`),Z=O;continue}if(J==="TYPE_DECL"){let D=M.data;if(!D)continue;let O=K||D.exported?"export ":"",q=D.typeParams||"";if(D.kind==="interface"){let z=D.extends?` extends ${D.extends}`:"";X(`${O}interface ${D.name}${q}${z} `,D.typeText||"{}","")}else{let z=b(D.typeText||"");X(`${O}type ${D.name}${q} = `,z,";")}continue}if(J==="ENUM"){let D=K?"export ":"",O=$[Z+1];if(!O)continue;let q=O[1],z=Z+2;if($[z]?.[0]==="INDENT"){_.push(`${f()}${D}enum ${q} {`),U++,z++;let E=[];while(z<$.length&&$[z][0]!=="OUTDENT"){if($[z][0]==="TERMINATOR"){z++;continue}if($[z][0]==="IDENTIFIER"){let P=$[z][1];if(z++,$[z]?.[1]==="="){z++;let R=$[z]?.[1];E.push(`${P} = ${R}`),z++}else E.push(P)}else z++}for(let P=0;P<E.length;P++){let R=P<E.length-1?",":"";_.push(`${f()}${E[P]}${R}`)}U--,_.push(`${f()}}`)}continue}if(J==="CLASS"){let D=K?"export ":"",O=$[Z+1];if(!O)continue;let q=O[1],z="",E=Z+2;if($[E]?.[0]==="EXTENDS")z=` extends ${$[E+1]?.[1]||""}`,E+=2;if($[E]?.[0]==="INDENT"){let P=!1,R=E+1;while(R<$.length&&$[R][0]!=="OUTDENT"){if($[R].data?.type||$[R].data?.returnType){P=!0;break}R++}if(P)_.push(`${f()}${D}declare class ${q}${z} {`),F=!0,U++}continue}if(J==="DEF"){let D=$[Z+1];if(!D)continue;let O=D[1],q=D.data?.returnType,z=D.data?.typeParams||"",{params:E,endIdx:P}=Q($,Z+2);if(q||E.some((R)=>R.includes(":"))){let R=K?"export ":"",G=F?"":K?"":"declare ",I=q?`: ${b(q)}`:"",B=E.join(", ");if(F)_.push(`${f()}${O}${z}(${B})${I};`);else _.push(`${f()}${R}${G}function ${O}${z}(${B})${I};`)}continue}if(J==="{"&&F){let D=Z+1,O=1;while(D<$.length&&O>0){let q=$[D];if(q[0]==="{"){O++,D++;continue}if(q[0]==="}"){O--,D++;continue}if(q[0]==="TERMINATOR"){D++;continue}if(q[0]==="PROPERTY"&&O===1){let z=q[1],E=q.data?.returnType;if(D++,$[D]?.[1]===":")D++;let P=[];if($[D]?.[0]==="PARAM_START"){let R=Q($,D);P=R.params,D=R.endIdx+1}if($[D]?.[0]==="->"||$[D]?.[0]==="=>")D++;if($[D]?.[0]==="INDENT"){let R=1;D++;while(D<$.length&&R>0){if($[D][0]==="INDENT")R++;if($[D][0]==="OUTDENT")R--;D++}}if(E||P.some((R)=>R.includes(":"))){let R=E?`: ${b(E)}`:"",G=P.join(", ");_.push(`${f()}${z}(${G})${R};`)}continue}D++}Z=D-1;continue}if(J==="INDENT")continue;if(J==="OUTDENT"){if(F)U--,_.push(`${f()}}`),F=!1;continue}if(J==="IDENTIFIER"&&!F&&$[Z+1]?.[0]==="="&&($[Z+2]?.[0]==="PARAM_START"||$[Z+2]?.[0]==="(")){let D=M[1],O=Z+2,{params:q}=Q($,O),z=O,E=0;while(z<$.length){if($[z][0]==="PARAM_START"||$[z][0]==="(")E++;if($[z][0]==="PARAM_END"||$[z][0]===")")E--;if(E===0&&($[z][0]==="->"||$[z][0]==="=>"))break;z++}let P=$[z]?.data?.returnType;if(P||q.some((R)=>R.includes(":"))){let R=K?"export ":"",G=K?"":"declare ",I=P?`: ${b(P)}`:"",B=q.join(", ");_.push(`${f()}${R}${G}function ${D}(${B})${I};`);continue}}if(J==="IDENTIFIER"&&M.data?.type){let D=M[1],O=b(M.data.type),q=$[Z+1];if(q){let z=K?"export ":"",E=K?"":"declare ";if(q[0]==="READONLY_ASSIGN")_.push(`${f()}${z}${E}const ${D}: ${O};`);else if(q[0]==="REACTIVE_ASSIGN")Y=!0,_.push(`${f()}${z}${E}const ${D}: Signal<${O}>;`);else if(q[0]==="COMPUTED_ASSIGN")A=!0,_.push(`${f()}${z}${E}const ${D}: Computed<${O}>;`);else if(q[0]==="EFFECT")_.push(`${f()}${z}${E}const ${D}: () => void;`);else if(q[0]==="="){let P=Z+2;if($[P]?.[0]==="PARAM_START"){let G=1,I=P+1;while(I<$.length&&G>0){if($[I][0]==="PARAM_START")G++;if($[I][0]==="PARAM_END")G--;I++}P=I}let R=$[P];if(R&&(R[0]==="->"||R[0]==="=>")&&R.data?.returnType){let G=b(R.data.returnType),{params:I}=Q($,Z+2),B=I.join(", ");_.push(`${f()}${z}${E}function ${D}(${B}): ${G};`)}else if(F)_.push(`${f()}${D}: ${O};`);else _.push(`${f()}${z}let ${D}: ${O};`)}else if(F)_.push(`${f()}${D}: ${O};`)}else if(F)_.push(`${f()}${D}: ${O};`)}}let w=new Set;if(W){if(j1(W,_,f,U,w),w.size>0)for(let Z=_.length-1;Z>=0;Z--){let M=_[Z].match(/(?:declare |export )*(?:const|let) (\w+)/);if(M&&w.has(M[1]))_.splice(Z,1)}}if(_.length===0)return null;let H=[];if(Y)H.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(A)H.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(H.length>0)H.push("");return H.concat(_).join(`
2
2
  `)+`
3
- `}function b($){if(!$)return $;return $=$.replace(/::/g,":"),$=$.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),$}function j1($,W,F,U,u){if(!Array.isArray($))return;let f=$[0]?.valueOf?.()??$[0],Y=!1,A=null,_=null;if(f==="export"&&Array.isArray($[1])){Y=!0;let J=$[1];if((J[0]?.valueOf?.()??J[0])==="="&&Array.isArray(J[2])&&(J[2][0]?.valueOf?.()??J[2][0])==="component")A=J[1]?.valueOf?.()??J[1],_=J[2]}else if(f==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")A=$[1]?.valueOf?.()??$[1],_=$[2];if(A&&_){let J=Y?"export ":"",X=_[2],w=Array.isArray(X)&&(X[0]?.valueOf?.()??X[0])==="block"?X.slice(1):X?[X]:[],H=[],Z=!1;for(let D of w){if(!Array.isArray(D))continue;let Q=D[0]?.valueOf?.()??D[0],K,M,O,q,z;if(Q==="state"||Q==="readonly"||Q==="computed"){if(K=D[1],O=Array.isArray(K)&&(K[0]?.valueOf?.()??K[0])==="."&&(K[1]?.valueOf?.()??K[1])==="this",M=O?K[2]?.valueOf?.()??K[2]:K?.valueOf?.()??K,q=O?K[2]?.type:K?.type,z=!0,!O)u.add(M)}else if(Q==="."){if(O=(D[1]?.valueOf?.()??D[1])==="this",M=O?D[2]?.valueOf?.()??D[2]:null,q=O?D[2]?.type:null,z=!1,!O&&M)u.add(M)}else continue;if(!O||!M)continue;let E=q?b(q):"any",G=z?"?":"";if(!z)Z=!0;H.push(` ${M}${G}: ${E};`)}if(W.push(`${J}declare class ${A} {`),H.length>0){let D=Z?"":"?";W.push(` constructor(props${D}: {`);for(let Q of H)W.push(Q);W.push(" });")}W.push("}")}if(f==="program"||f==="block"){for(let J=1;J<$.length;J++)if(Array.isArray($[J]))j1($[J],W,F,U,u)}if(f==="export"&&Array.isArray($[1])&&!_)j1($[1],W,F,U,u)}function f2($,W,F){let[U,u]=W,f=U?.valueOf?.()??U,Y=[];if(Array.isArray(u)){let J=u[0]==="block"?u.slice(1):[u];for(let X of J)if(Array.isArray(X)){if(X[0]?.valueOf?.()==="="){let w=X[1]?.valueOf?.()??X[1],H=X[2]?.valueOf?.()??X[2];Y.push([w,H])}}}if(Y.length===0)return`const ${f} = {}`;let A=Y.map(([J,X])=>`${J}: ${X}`).join(", "),_=Y.map(([J,X])=>`${X}: "${J}"`).join(", ");return`const ${f} = {${A}, ${_}}`}var $2=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),U2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),y1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},W2=new Set(Object.keys(y1)),s2=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),t2=new Set(["break","continue","debugger"]),e2=new Set(["NEW","TYPEOF","DELETE"]),u3=new Set(["IN","OF","INSTANCEOF"]),M1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),K2=new Set([...M1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),D1=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),f3=new Set(["+","-"]),$3=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),U3=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),d=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),k=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),W3={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START"},F2=new Set(["CATCH","THEN","ELSE","FINALLY",...k]),C1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),F3=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),Y2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),Y3=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),U1=new Set(["INDENT","OUTDENT","TERMINATOR"]),A2=new Set([".","?."]),_2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),A3=new Set([...K2,"++","--"]),Z2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),_3=new Set(["*","/","%","//","%%"]),Z3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),Q3=new Set(["<<",">>",">>>"]),X3=new Set(["!","~"]),J3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,K3=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,R3=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,w3=/^[^\n\S]+/,D3=/^(?:\n[^\n\S]*)+/,M3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,H3=/^[-=]>/,z3=/^(?:~[=>]|=!)/,O3=/^(?:'''\\|"""\\|'''|"""|'|")/,q3=/^(?:[^\\']|\\[\s\S])*/,G3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,P3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,E3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,Q2=/\n+([^\n\S]*)(?=\S)/g,I3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,X2=/^\w*/,B3=/^(?!.*(.).*\1)[gimsuy]*$/,N3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,T3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,S3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,L3=/\s+$/,J2=/^\s*(?:,|\??\.(?![.\d]))/,V3=65279;function H1($,W,{pre:F=0,row:U=0,col:u=0,len:f=0,data:Y=null}={}){let A=[$,W];return A.pre=F,A.data=Y,A.loc={r:U,c:u,n:f},A.spaced=F>0,A.newLine=!1,A}function x($,W,F){let U=H1($,W);if(U.generated=!0,F)U.origin=F;return U}function g($,{row:W=0,col:F=0,len:U=1}={}){let u=SyntaxError($);throw u.location={first_line:W,first_column:F,last_column:F+U-1},u}function j3($){if($==null)return NaN;switch($.charAt(1)){case"b":return parseInt($.slice(2).replace(/_/g,""),2);case"o":return parseInt($.slice(2).replace(/_/g,""),8);case"x":return parseInt($.slice(2).replace(/_/g,""),16);default:return parseFloat($.replace(/_/g,""))}}class m{tokenize($,W={}){this.code=$,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=W.row||0,this.col=W.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,$=this.clean($),this.code=$;while(this.pos<$.length){this.chunk=$.slice(this.pos);let F=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(F===0)g(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(F),W.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let F=this.ends[this.ends.length-1];g(`missing ${F.tag}`,{row:this.row,col:this.col})}if(W.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===V3)$=$.slice(1);if($=$.replace(/\r\n?/g,`
3
+ `}function b($){if(!$)return $;return $=$.replace(/::/g,":"),$=$.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),$}function j1($,W,_,U,u){if(!Array.isArray($))return;let f=$[0]?.valueOf?.()??$[0],F=!1,Y=null,A=null;if(f==="export"&&Array.isArray($[1])){F=!0;let X=$[1];if((X[0]?.valueOf?.()??X[0])==="="&&Array.isArray(X[2])&&(X[2][0]?.valueOf?.()??X[2][0])==="component")Y=X[1]?.valueOf?.()??X[1],A=X[2]}else if(f==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")Y=$[1]?.valueOf?.()??$[1],A=$[2];if(Y&&A){let X=F?"export ":"",Q=A[2],w=Array.isArray(Q)&&(Q[0]?.valueOf?.()??Q[0])==="block"?Q.slice(1):Q?[Q]:[],H=[],Z=!1;for(let M of w){if(!Array.isArray(M))continue;let J=M[0]?.valueOf?.()??M[0],K,D,O,q,z;if(J==="state"||J==="readonly"||J==="computed"){if(K=M[1],O=Array.isArray(K)&&(K[0]?.valueOf?.()??K[0])==="."&&(K[1]?.valueOf?.()??K[1])==="this",D=O?K[2]?.valueOf?.()??K[2]:K?.valueOf?.()??K,q=O?K[2]?.type:K?.type,z=!0,!O)u.add(D)}else if(J==="."){if(O=(M[1]?.valueOf?.()??M[1])==="this",D=O?M[2]?.valueOf?.()??M[2]:null,q=O?M[2]?.type:null,z=!1,!O&&D)u.add(D)}else continue;if(!O||!D)continue;let E=q?b(q):"any",P=z?"?":"";if(!z)Z=!0;H.push(` ${D}${P}: ${E};`)}if(W.push(`${X}declare class ${Y} {`),H.length>0){let M=Z?"":"?";W.push(` constructor(props${M}: {`);for(let J of H)W.push(J);W.push(" });")}W.push("}")}if(f==="program"||f==="block"){for(let X=1;X<$.length;X++)if(Array.isArray($[X]))j1($[X],W,_,U,u)}if(f==="export"&&Array.isArray($[1])&&!A)j1($[1],W,_,U,u)}function f2($,W,_){let[U,u]=W,f=U?.valueOf?.()??U,F=[];if(Array.isArray(u)){let X=u[0]==="block"?u.slice(1):[u];for(let Q of X)if(Array.isArray(Q)){if(Q[0]?.valueOf?.()==="="){let w=Q[1]?.valueOf?.()??Q[1],H=Q[2]?.valueOf?.()??Q[2];F.push([w,H])}}}if(F.length===0)return`const ${f} = {}`;let Y=F.map(([X,Q])=>`${X}: ${Q}`).join(", "),A=F.map(([X,Q])=>`${Q}: "${X}"`).join(", ");return`const ${f} = {${Y}, ${A}}`}var $2=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),U2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),y1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},W2=new Set(Object.keys(y1)),s2=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),t2=new Set(["break","continue","debugger"]),e2=new Set(["NEW","TYPEOF","DELETE"]),u3=new Set(["IN","OF","INSTANCEOF"]),D1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),K2=new Set([...D1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),M1=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),f3=new Set(["+","-"]),$3=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),U3=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),d=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),k=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),W3={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START"},_2=new Set(["CATCH","THEN","ELSE","FINALLY",...k]),C1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),_3=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),F2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),F3=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),U1=new Set(["INDENT","OUTDENT","TERMINATOR"]),Y2=new Set([".","?."]),A2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),Y3=new Set([...K2,"++","--"]),Z2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),A3=new Set(["*","/","%","//","%%"]),Z3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),J3=new Set(["<<",">>",">>>"]),Q3=new Set(["!","~"]),X3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,K3=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,R3=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,w3=/^[^\n\S]+/,M3=/^(?:\n[^\n\S]*)+/,D3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,H3=/^[-=]>/,z3=/^(?:~[=>]|=!)/,O3=/^(?:'''\\|"""\\|'''|"""|'|")/,q3=/^(?:[^\\']|\\[\s\S])*/,G3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,P3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,E3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,J2=/\n+([^\n\S]*)(?=\S)/g,I3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,Q2=/^\w*/,B3=/^(?!.*(.).*\1)[gimsuy]*$/,N3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,T3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,S3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,L3=/\s+$/,X2=/^\s*(?:,|\??\.(?![.\d]))/,V3=65279;function H1($,W,{pre:_=0,row:U=0,col:u=0,len:f=0,data:F=null}={}){let Y=[$,W];return Y.pre=_,Y.data=F,Y.loc={r:U,c:u,n:f},Y.spaced=_>0,Y.newLine=!1,Y}function x($,W,_){let U=H1($,W);if(U.generated=!0,_)U.origin=_;return U}function g($,{row:W=0,col:_=0,len:U=1}={}){let u=SyntaxError($);throw u.location={first_line:W,first_column:_,last_column:_+U-1},u}function j3($){if($==null)return NaN;switch($.charAt(1)){case"b":return parseInt($.slice(2).replace(/_/g,""),2);case"o":return parseInt($.slice(2).replace(/_/g,""),8);case"x":return parseInt($.slice(2).replace(/_/g,""),16);default:return parseFloat($.replace(/_/g,""))}}class m{tokenize($,W={}){this.code=$,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=W.row||0,this.col=W.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,$=this.clean($),this.code=$;while(this.pos<$.length){this.chunk=$.slice(this.pos);let _=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(_===0)g(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(_),W.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let _=this.ends[this.ends.length-1];g(`missing ${_.tag}`,{row:this.row,col:this.col})}if(W.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===V3)$=$.slice(1);if($=$.replace(/\r\n?/g,`
4
4
  `),$=$.replace(L3,""),/^[^\n\S]/.test($))$=`
5
- `+$;return $}advance($){let W=this.code.slice(this.pos,this.pos+$);for(let F=0;F<W.length;F++)if(W[F]===`
6
- `)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,W,{len:F,data:U,pre:u}={}){let f=H1($,W,{pre:u??0,row:this.row,col:this.col,len:F??(typeof W==="string"?W.length:0),data:U});return this.tokens.push(f),f}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let $=this.prev();return $?$[0]:void 0}prevVal(){let $=this.prev();return $?$[1]:void 0}identifierToken(){if(z3.test(this.chunk))return 0;let $=J3.exec(this.chunk);if(!$)return 0;let[,W,F]=$,U=W.length,u={},f;if(W==="own"&&this.prevTag()==="FOR")return this.emit("OWN",W,{len:U}),U;if(W==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",W,{len:U}),U;if(W==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let X=this.prevTag();if(X==="DEFAULT"||X==="IMPORT_ALL"||X==="IDENTIFIER")return this.emit("AS",W,{len:U}),U}if((W==="as"||W==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(W==="as!"?"FORASAWAIT":"FORAS","as",{len:U}),U;if(W==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",W,{len:U}),U;let Y;if(W==="do"&&(Y=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Y[1].length+3;let A=this.prev();if(F&&A&&A[0]==="SPACE?")F=null;if(F||A&&(A[0]==="."||A[0]==="?."||!A.spaced&&A[0]==="@")){if(f="PROPERTY",this.inRenderBlock&&A&&A[0]==="."&&!F){let X=this.chunk.slice(U);while(X[0]==="-"&&/^-[a-zA-Z]/.test(X)){let w=/^-([a-zA-Z][\w]*)/.exec(X);if(!w)break;W+="-"+w[1],U+=1+w[1].length,X=this.chunk.slice(U)}}}else f="IDENTIFIER";let _=W.endsWith("!")||W.endsWith("?")?W.slice(0,-1):W;if(f==="IDENTIFIER"&&!W.endsWith("!")&&!W.endsWith("?")&&($2.has(W)||U2.has(W)||W2.has(W))&&!(this.exportSpecifierList&&W2.has(W))){if(y1[W]!==void 0)u.original=W,W=y1[W];f=this.classifyKeyword(W,f,u)}if(f==="IDENTIFIER"&&s2.has(_))g(`reserved word '${_}'`,{row:this.row,col:this.col,len:U});if(f==="PROPERTY"&&A){if(A[0]==="."&&this.tokens.length>1){let X=this.tokens[this.tokens.length-2];if(X[0]==="UNARY"&&X[1]==="new")X[0]="NEW_TARGET";if(X[0]==="IMPORT"&&X[1]==="import")this.seenImport=!1,X[0]="IMPORT_META"}}if(W.length>1&&W.endsWith("!"))u.await=!0,W=W.slice(0,-1);if(W.length>1&&W.endsWith("?"))u.predicate=!0,W=W.slice(0,-1);let J=this.emit(f,W,{len:U,data:Object.keys(u).length?u:null});if(f==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(F)return this.emit(":",":",{len:1}),U+F.length;return U}classifyKeyword($,W,F){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(t2.has($))return"STATEMENT";let U=$.toUpperCase();if(U==="WHEN"&&U1.has(this.prevTag()))return"LEADING_WHEN";if(U==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(U==="UNLESS")return"UNLESS";if(U==="IMPORT")return this.seenImport=!0,"IMPORT";if(U==="EXPORT")return this.seenExport=!0,"EXPORT";if(e2.has(U))return"UNARY";if(u3.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let u=this.tokens.pop();F.invert=u.data?.original||u[1]}return"RELATION"}if($2.has($)||U2.has($))return U;return W}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let W=this.prev();if(W&&(W[0]==="IDENTIFIER"||W[0]==="PROPERTY"))return 0;let F=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(F)return this.emit("IDENTIFIER","div#"+F[1]),F[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let $=M3.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=w3.exec(this.chunk);if(!$&&this.chunk[0]!==`
7
- `)return 0;let W=this.prev();if(W)if($)W.spaced=!0,W.pre=$[0].length;else W.newLine=!0;return $?$[0].length:0}lineToken(){let $=D3.exec(this.chunk);if(!$)return 0;let W=$[0],F=W.length-1-W.lastIndexOf(`
8
- `);if(this.isUnfinished()){if(F<this.indent&&/^\s*,/.test(this.chunk)&&!_2.has(this.prevTag())){if(this.outdentTo(F,W.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return W.length}return W.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(F===this.indent)return this.emitNewline(),W.length;if(F>this.indent){if(!this.tokens.length)return this.indent=F,W.length;let U=F-this.indent;return this.emit("INDENT",U,{len:F}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=F,W.length}return this.outdentTo(F,W.length),W.length}outdentTo($,W=0){if(this.inRenderBlock&&$<=this.renderIndent)this.inRenderBlock=!1;let F=this.indent-$;while(F>0){let U=this.indents[this.indents.length-1];if(!U)F=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",F,{len:W}),F-=U}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
9
- `,{len:0})}isUnfinished(){if(this.inRenderBlock&&J2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let W=this.tokens.length;if(W>=2){let F=this.tokens[W-2][0];if(F==="INDENT"||F==="TERMINATOR"||F==="OUTDENT")return!1}}let $=this.tokens[this.tokens.length-1];if($?.[0]==="COMPARE"&&$[1]===">"){let W=0;for(let F=this.tokens.length-1;F>=0;F--){let U=this.tokens[F];if(U[0]==="COMPARE"&&U[1]===">")W++;else if(U[0]==="COMPARE"&&U[1]==="<")W--;if(W===0&&U[0]==="TYPE_ANNOTATION")return!1;if(U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")break}}return J2.test(this.chunk)||_2.has(this.prevTag())}pair($){let W=this.ends[this.ends.length-1];if(!W||$!==W.tag){if(W?.tag==="OUTDENT"){let F=this.indents[this.indents.length-1];if(F)this.outdentTo(this.indent-F);return this.pair($)}g(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=O3.exec(this.chunk);if(!$)return 0;let W=$[0],F=W.length>1&&W.endsWith("\\"),U=F?W.slice(0,-1):W,u=this.prev();if(u&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))u[0]="FROM";let f;switch(U){case"'":f=q3;break;case'"':f=G3;break;case"'''":f=P3;break;case'"""':f=E3;break}let{tokens:Y,index:A}=this.matchWithInterpolations(f,W,U),_=U.length===3,J=null;if(_)J=this.processHeredocIndent(A,U,Y);return this.mergeInterpolationTokens(Y,{quote:U,indent:J,endOffset:A,raw:F}),A}processHeredocIndent($,W,F){let U=$-W.length,u=U-1;while(u>=0&&this.chunk[u]!==`
10
- `)u--;u++;let f=this.chunk.slice(u,U),Y=/^\s*$/.test(f)?f.length:null,A="";for(let X of F)if(X[0]==="NEOSTRING")A+=X[1];let _=null,J;Q2.lastIndex=0;while(J=Q2.exec(A))if(_===null||J[1].length>0&&J[1].length<_.length)_=J[1];if(Y===null)return _;if(_===null)return" ".repeat(Y);if(Y<=_.length)return" ".repeat(Y);return _}matchWithInterpolations($,W,F,U){if(!F)F=W;if(!U)U=/^[#$]\{/;let u=[],f=W.length;if(this.chunk.slice(0,f)!==W)return null;let Y=this.chunk.slice(f);while(!0){let[A]=$.exec(Y);u.push(["NEOSTRING",A,{offset:f}]),Y=Y.slice(A.length),f+=A.length;let _=U.exec(Y);if(!_)break;let X=_[0].length-1,w=Y.slice(X),H=new m().tokenize(w,{row:this.row,col:this.col+f+X,untilBalanced:!0,rewrite:!1}),Z=H.index+X;if(Y[Z-1]==="}"){let Q=H.tokens[0],K=H.tokens[H.tokens.length-1];Q[0]="INTERPOLATION_START",Q[1]="(",K[0]="INTERPOLATION_END",K[1]=")"}if(H.tokens[1]?.[0]==="TERMINATOR")H.tokens.splice(1,1);let D=H.tokens.length;if(D>2&&H.tokens[D-3]?.[0]==="INDENT"&&H.tokens[D-2]?.[0]==="OUTDENT")H.tokens.splice(D-3,2);u.push(["TOKENS",H.tokens]),Y=Y.slice(Z),f+=Z}if(Y.slice(0,F.length)!==F)g(`missing ${F}`,{row:this.row,col:this.col});return{tokens:u,index:f+F.length}}mergeInterpolationTokens($,{quote:W,indent:F,endOffset:U,raw:u}){if($.length>1)this.emit("STRING_START","(",{len:W?.length||0,data:{quote:W}});for(let f=0;f<$.length;f++){let[Y,A]=$[f];if(Y==="TOKENS")for(let _ of A)this.tokens.push(_);else if(Y==="NEOSTRING"){let _=A;if(F){let J=new RegExp("\\n"+F,"g");_=_.replace(J,`
11
- `)}if(f===0&&W?.length===3)_=_.replace(/^\n/,"");if(f===$.length-1&&W?.length===3)_=_.replace(/\n[^\S\n]*$/,"");if(u)_=_.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${_}"`,{len:A.length,data:{quote:W}})}}if($.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let $=K3.exec(this.chunk);if(!$)return 0;let W=$[0],F=W.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(W))g(`radix prefix in '${W}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(W))g(`decimal literal '${W}' must not be prefixed with '0'`,{...U,len:F});if(/^0\d+/.test(W))g(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:F});let u=j3(W),f=u===1/0?"INFINITY":"NUMBER",Y={parsedValue:u};if(f==="INFINITY")Y.original=W;return this.emit(f,W,{len:F,data:Y}),F}regexToken(){let $=this.matchWithInterpolations(N3,"///");if($){let{tokens:J,index:X}=$,[w]=X2.exec(this.chunk.slice(X)),H=X+w.length;if(J.length===1||!J.some((Z)=>Z[0]==="TOKENS")){let Z=(J[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Z}/${w}`,{len:H,data:{delimiter:"///",heregex:{flags:w}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(J,{quote:"///",endOffset:H-w.length}),w)this.emit(",",",",{len:0}),this.emit("STRING",`"${w}"`,{len:w.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return H}let W=I3.exec(this.chunk);if(!W)return 0;let[F,U,u]=W,f=this.prev();if(f){if(f.spaced&&M1.has(f[0])&&(!u||/^\/=?\s/.test(F)))return 0;if(A3.has(f[0])&&!(f.spaced&&M1.has(f[0])))return 0}if(!u)g("missing / (unclosed regex)",{row:this.row,col:this.col});let Y=F.length,[A]=X2.exec(this.chunk.slice(Y)),_=Y+A.length;if(!B3.test(A))g(`invalid regular expression flags ${A}`,{row:this.row,col:this.col+Y,len:A.length});return this.emit("REGEX",`/${U}/${A}`,{len:_,data:{delimiter:"/"}}),_}jsToken(){if(this.chunk[0]!=="`")return 0;let $=S3.exec(this.chunk)||T3.exec(this.chunk);if(!$)return 0;let W=$[1],F=$[0].length;return this.emit("JS",W,{len:F,data:{here:$[0].startsWith("```")}}),F}literalToken(){let $=R3.exec(this.chunk),W=$?$[0]:this.chunk.charAt(0),F=W,U=this.prev();if(H3.test(W))this.tagParameters();if(W==="="&&U&&U[1]==="."&&!U.spaced){let u=this.tokens,f=u.length-2;while(f>=1&&u[f][0]==="PROPERTY"&&u[f-1]?.[1]===".")f-=2;if(f>=0&&(u[f][0]==="IDENTIFIER"||u[f][0]===")"||u[f][0]==="]")){let Y=u.slice(f,u.length-1);U[0]="=",U[1]="=";for(let A of Y)this.tokens.push(H1(A[0],A[1],{pre:0,row:A[2],col:A[3],len:A[4]}));return this.tokens.push(H1(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||Z2.has(W))){if(W==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",W.length}if(W==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,F="TERMINATOR";else if(W==="|>")F="PIPE";else if(W==="::=")F="TYPE_ALIAS";else if(W==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(W==="::")F="TYPE_ANNOTATION";else if(W==="~=")F="COMPUTED_ASSIGN";else if(W===":=")F="REACTIVE_ASSIGN";else if(W==="<=>")F="BIND";else if(W==="~>")F="EFFECT";else if(W==="=!")F="READONLY_ASSIGN";else if(W==="*"&&(!U||U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let u=this.chunk.slice(1),f=/^@(\s*)=(?!=)/.exec(u);if(f){let A=f[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let _=this.emit("PROPERTY","assign");return _.spaced=!0,this.emit("@","@"),this.emit(",",","),2+A.length+1}let Y=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(u);if(Y){let A=Y[1],_=Y[2],J=A.split("."),X=()=>{this.emit("IDENTIFIER",J[0]);for(let H=1;H<J.length;H++)this.emit(".","."),this.emit("PROPERTY",J[H])};X(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),X(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let w=this.prev();return w.mergeClose=!0,1+A.length+_.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")F="EXPORT_ALL";else if(_3.has(W))F="MATH";else if(Z3.has(W))F="COMPARE";else if(Z2.has(W))F="COMPOUND_ASSIGN";else if(X3.has(W))F="UNARY_MATH";else if(Q3.has(W))F="SHIFT";else if(W==="?"&&U?.spaced)F="SPACE?";else if(W==="!?"&&U&&!U.spaced)F="DEFINED";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))F="?.";else if(U){if(W==="("&&!U.spaced&&M1.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";F="CALL_START"}if(W==="["&&!U.spaced&&K2.has(U[0])){if(F="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:W3[W],origin:[F,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(F,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,W=[];this.tokens[$][0]="PARAM_END";while($-- >0){let F=this.tokens[$];if(F[0]===")")W.push(F);else if(F[0]==="("||F[0]==="CALL_START")if(W.length)W.pop();else if(F[0]==="(")return F[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let W=this.tokens[$??this.tokens.length-1];if(W?.[0]==="DO")W[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,W)=>{if($[0]==="CALL_START")this.detectEnd(W+1,(F)=>F[0]===")"||F[0]==="CALL_END",(F)=>F[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,W)=>{if($[0]==="INDEX_START")this.detectEnd(W+1,(F)=>F[0]==="]"||F[0]==="INDEX_END",(F,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",F[0]="]";else F[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,W=null,F=null,U=(f,Y)=>{return f[1]!==";"&&Y3.has(f[0])&&!(f[0]==="TERMINATOR"&&F2.has(this.tokens[Y+1]?.[0]))&&!(f[0]==="ELSE"&&$!=="THEN")||f[0]==="INDENT"&&!f.generated&&($==="->"||$==="=>")||f[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(Y)&&!this.commaInImplicitObject(Y)||A2.has(f[0])&&(this.tokens[Y-1]?.newLine||this.tokens[Y-1]?.[0]==="OUTDENT")},u=(f,Y)=>{let A=this.tokens[Y-1]?.[0]===","?Y-1:Y;this.tokens.splice(A,0,F)};this.scanTokens((f,Y,A)=>{let[_]=f;if(_==="TERMINATOR"){if(this.tokens[Y+1]?.[0]==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")return A.splice(Y,1,...this.makeIndentation()),1;if(F2.has(this.tokens[Y+1]?.[0]))return A.splice(Y,1),0}if(_==="CATCH")for(let J=1;J<=2;J++){let X=this.tokens[Y+J]?.[0];if(X==="OUTDENT"||X==="TERMINATOR"||X==="FINALLY")return A.splice(Y+J,0,...this.makeIndentation()),2+J}if((_==="->"||_==="=>")&&(this.tokens[Y+1]?.[0]===","||this.tokens[Y+1]?.[0]==="]"))return[W,F]=this.makeIndentation(),A.splice(Y+1,0,W,F),1;if(Y2.has(_)&&this.tokens[Y+1]?.[0]!=="INDENT"&&!(_==="ELSE"&&this.tokens[Y+1]?.[0]==="IF")){if($=_,[W,F]=this.makeIndentation(),_==="THEN")W.fromThen=!0;if(A.splice(Y+1,0,W),this.detectEnd(Y+2,U,u),_==="THEN")A.splice(Y,1);return 1}return 1})}tagPostfixConditionals(){let $=null,W=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!Y2.has(this.tokens[u-1]?.[0])},F=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)$[0]="POST_"+$[0]};this.scanTokens((U,u)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;return $=U,this.detectEnd(u+1,W,F),1})}addImplicitBracesAndParens(){let $=[],W=!1;this.scanTokens((F,U,u)=>{let[f]=F,Y=u[U-1]||[],A=u[U+1]||[],[_]=Y,[J]=A,X=U,w=(R)=>U-X+R,H=()=>$[$.length-1],Z=(R)=>R?.[2]?.ours,D=()=>Z(H())&&H()?.[0]==="(",Q=()=>Z(H())&&H()?.[0]==="{",K=(R)=>{$.push(["(",R,{ours:!0}]),u.splice(R,0,x("CALL_START","("))},M=()=>{$.pop(),u.splice(U,0,x("CALL_END",")")),U+=1},O=(R,P={})=>{$.push(["{",R,{sameLine:!0,startsLine:P.startsLine??!0,ours:!0}]);let I=x("{","{");if(!I.data)I.data={};I.data.generated=!0,u.splice(R,0,I)},q=(R)=>{R=R??U,$.pop(),u.splice(R,0,x("}","}")),U+=1};if((D()||Q())&&F3.has(f))return $.push(["CONTROL",U,{ours:!0}]),w(1);if(f==="INDENT"&&Z(H())){if(_!=="=>"&&_!=="->"&&_!=="["&&_!=="("&&_!==","&&_!=="{"&&_!=="ELSE"&&_!=="=")while(D()||Q()&&_!==":")if(D())M();else q();if(H()?.[2]?.ours&&H()[0]==="CONTROL")$.pop();return $.push([f,U]),w(1)}if(d.has(f))return $.push([f,U]),w(1);if(k.has(f)){while(Z(H()))if(D())M();else if(Q())q();else $.pop();$.pop()}if(C1.has(f)&&F.spaced&&(D1.has(J)||J==="..."&&D1.has(u[U+2]?.[0])||f3.has(J)&&!A.spaced&&!A.newLine)&&!((f==="]"||f==="}")&&(J==="->"||J==="=>")))return K(U+1),w(2);if(C1.has(f)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return K(U+1),$.push(["INDENT",U+2]),w(3);if(f==="SPACE?")W=!0;if(f===":"){if(W)return W=!1,w(1);let R=k.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")R=U-2;let P=R<=0||U1.has(this.tokens[R-1]?.[0])||this.tokens[R-1]?.newLine;if(H()){let[I,B]=H(),N=$[$.length-2];if((I==="{"||I==="INDENT"&&N?.[0]==="{"&&!Z(N))&&(P||this.tokens[R-1]?.[0]===","||this.tokens[R-1]?.[0]==="{"||this.tokens[R]?.[0]==="{"))return w(1)}return O(R,{startsLine:!!P}),w(2)}if(U1.has(f))for(let R=$.length-1;R>=0;R--){if(!Z($[R]))break;if($[R][0]==="{")$[R][2].sameLine=!1}let z=_==="OUTDENT"||Y.newLine,E=f==="||"||f==="&&",G=!1;if(E){let R=U+1,P=u[R]?.[0];if(P==="("||P==="["||P==="{"){for(let I=1;++R<u.length&&I>0;)if(P=u[R][0],P==="("||P==="["||P==="{")I++;else if(P===")"||P==="]"||P==="}")I--}else if(P&&P!=="TERMINATOR"&&P!=="OUTDENT"&&P!==",")R++;G=u[R]?.[0]===","}if($3.has(f)&&!G||A2.has(f)&&z)while(Z(H())){let[R,,{sameLine:P,startsLine:I}]=H();if(D()&&_!==",")M();else if(Q()&&!E&&P&&f!=="TERMINATOR"&&_!==":")q();else if(Q()&&f==="TERMINATOR"&&_!==","&&!(I&&this.looksObjectish(U+1)))q();else if(H()?.[2]?.ours&&H()[0]==="CONTROL"&&u[H()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(U+1)&&Q()&&(J!=="TERMINATOR"||!this.looksObjectish(U+2))){let R=J==="OUTDENT"?1:0;while(Q())q(U+R)}return w(1)})}addImplicitCallCommas(){let $=0,W=0,F=this.tokens;while(W<F.length){let U=F[W][0],u=W>0?F[W-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&U3.has(u))F.splice(W,0,x(",",",")),W++;W++}}scanTokens($){let W=0;while(W<this.tokens.length)W+=$.call(this,this.tokens[W],W,this.tokens)}detectEnd($,W,F,U={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&W.call(this,f,$))return F.call(this,f,$);if(d.has(f[0]))u++;if(k.has(f[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return F.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let W=0;W<$.length;W++){if(!$[W].mergeClose)continue;let F=0;for(let U=W+1;U<$.length;U++){let u=$[U][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")F++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")F--;if(F<0||F===0&&u==="TERMINATOR"){$.splice(U,0,x("CALL_END",")",$[U-1]));break}if(U===$.length-1){$.splice(U+1,0,x("CALL_END",")",$[U]));break}}}}commaInImplicitCall($){let W=0;for(let F=$-1;F>=0;F--){let U=this.tokens[F][0];if(k.has(U)){W++;continue}if(d.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(C1.has(U)&&this.tokens[F].spaced){let u=this.tokens[F+1]?.[0];return D1.has(u)||u==="..."&&D1.has(this.tokens[F+2]?.[0])}}return!1}commaInImplicitObject($){let W=0;for(let F=$-1;F>=0;F--){let U=this.tokens[F][0];if(k.has(U)){W++;continue}if(d.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&F>0&&this.tokens[F-1][0]==="PROPERTY")return this.looksObjectish($+1);if(U1.has(U))return!1}return!1}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(d.has(this.tokens[$]?.[0])){let W=null;if(this.detectEnd($+1,(F)=>k.has(F[0]),(F,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards($,W){let F=new Set(W),U=[];while($>=0){let u=this.tokens[$]?.[0];if(!U.length&&F.has(u))return!0;if(k.has(u))U.push(u);if(d.has(u)&&U.length)U.pop();if(!U.length&&(d.has(u)&&!this.tokens[$]?.generated||U1.has(u)))break;$--}return!1}makeIndentation($){let W=x("INDENT",2),F=x("OUTDENT",2);if($)W.generated=F.generated=!0,W.origin=F.origin=$;else W.explicit=F.explicit=!0;return[W,F]}}u2(m);var h3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,Block:76,READONLY_ASSIGN:77,EFFECT:78,SimpleAssignable:79,Array:80,Object:81,ThisProperty:82,".":83,"?.":84,INDEX_START:85,INDEX_END:86,Slice:87,ES6_OPTIONAL_INDEX:88,"{":89,ObjAssignable:90,":":91,FOR:92,ForVariables:93,FOROF:94,OptComma:95,"}":96,WHEN:97,OWN:98,AssignList:99,AssignObj:100,ObjRestValue:101,SimpleObjAssignable:102,"[":103,"]":104,"@":105,"...":106,ObjSpreadExpr:107,SUPER:108,Arguments:109,DYNAMIC_IMPORT:110,Elisions:111,ArgElisionList:112,OptElisions:113,ArgElision:114,Arg:115,Elision:116,RangeDots:117,"..":118,DEF:119,CALL_START:120,ParamList:121,CALL_END:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,DEFINED:195,"--":196,"++":197,MATH:198,"**":199,SHIFT:200,COMPARE:201,"&":202,"^":203,"|":204,"||":205,"??":206,"&&":207,"!?":208,PIPE:209,RELATION:210,"SPACE?":211,COMPOUND_ASSIGN:212},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",77:"READONLY_ASSIGN",78:"EFFECT",83:".",84:"?.",85:"INDEX_START",86:"INDEX_END",88:"ES6_OPTIONAL_INDEX",89:"{",91:":",92:"FOR",94:"FOROF",96:"}",97:"WHEN",98:"OWN",103:"[",104:"]",105:"@",106:"...",108:"SUPER",110:"DYNAMIC_IMPORT",118:"..",119:"DEF",120:"CALL_START",122:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"DEFINED",196:"--",197:"++",198:"MATH",199:"**",200:"SHIFT",201:"COMPARE",202:"&",203:"^",204:"|",205:"||",206:"??",207:"&&",208:"!?",209:"PIPE",210:"RELATION",211:"SPACE?",212:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,32,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,32,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,55,1,5,48,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,133,105,106,-13,-13,-13,-13,136,137,138,-13,139,-13,-13,-13,-13,-13,-13,-13,134,-13,140,-13,-13,135,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,11,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,141,142,143,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,32,18,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,32,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,148,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,149,-173,-173,150,151,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,160,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,159,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,162,163,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,165,166,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,167,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,173,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,174,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,175,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,176,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,177,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,181,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,182,183,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,184,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,186,185,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,187,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,188,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,10,161,189,2,66,10,161,190,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,194,153,104,155,156,154,99,191,192,83,157,196,193,195,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,197,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,198,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,161,-304,102,103,-304,199,201,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,168,-304,169,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,200,172,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,202,2,66,10,161,203,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,204,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,205,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,206,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,207,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,168,-224,169,90,91,86,88,89,82,-224,69,64,65,208,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,170,171,172,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,209,104,2,55,1,210,104,6,15,19,89,2,1,1,212,211,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,213,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,214,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,168,-221,169,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,170,171,172,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,29,88,1,5,215,219,104,105,106,218,216,217,220,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,10,4,4,178,179,227,228,229,230,222,223,224,225,233,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,226,104,105,106,102,103,53,234,72,73,93,221,83,87,84,85,66,168,169,90,91,86,88,89,82,61,67,62,231,232,172,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,235,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,236,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,237,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,238,87,248,84,85,239,240,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,83,2,24,11,250,251,249,140,2,109,11,252,140,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,55,1,5,51,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,253,254,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,83,255,1,83,256,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,257,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,258,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,259,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,260,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,262,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,261,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,268,100,101,270,104,271,254,105,106,-109,-109,-109,272,263,-109,264,269,273,265,266,267,274,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,275,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,234,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,64,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,56,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,279,105,106,276,277,278,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-5,280,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,281,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,282,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,283,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,284,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,285,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,286,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,287,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,288,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,289,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,292,164,290,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,291,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,295,164,293,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,294,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,298,164,296,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,297,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,299,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,300,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,301,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,302,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,303,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,304,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,308,153,104,155,156,154,99,305,306,83,157,196,307,195,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,309,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,310,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,109,11,311,140,2,57,1,312,254,2,57,1,313,254,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,314,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,319,77,78,79,80,81,100,101,92,104,105,106,315,102,103,317,53,52,72,73,93,316,99,59,83,87,321,84,85,318,320,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,85,322,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,323,42,43,90,91,247,324,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,328,254,2,57,1,329,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,330,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,331,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,333,332,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,334,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,336,335,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,337,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,339,338,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,340,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,342,341,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,343,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,345,344,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,346,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,348,349,-217,-217,-217,347,6,6,60,1,5,50,2,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,49,2,-178,-178,-178,-178,350,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,153,104,-181,-181,-181,155,156,154,99,158,157,-181,-181,351,11,6,60,1,5,1,21,28,2,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,21,28,2,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,21,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,21,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,253,254,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,238,87,248,84,85,239,240,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,32,18,16,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,353,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,352,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,32,18,16,-367,-367,-367,-367,-367,-367,-367,-367,-367,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,32,18,16,-368,-368,-368,-368,-368,-368,-368,-368,-368,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,354,-173,-173,150,151,2,66,10,161,159,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,162,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,165,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,5,15,108,2,1,1,212,168,169,90,91,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,125,126,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,-377,2,81,8,355,99,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,10,54,5,1,23,1,1,3,21,11,11,133,105,106,136,137,138,139,134,140,135,3,83,1,1,141,142,143,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-86,-86,-380,-380,-380,-380,-86,-86,-86,-86,-86,-86,-86,-86,-380,-86,-380,-380,-380,-380,-380,-380,-380,-380,-86,-380,-380,-86,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-86,-86,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,358,356,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,357,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,359,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,66,10,68,161,360,361,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,94,69,2,2,366,365,367,368,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,369,158,157,196,195,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,370,158,157,196,195,3,66,10,88,161,371,372,5,72,22,69,2,2,373,-302,-302,-302,-302,6,72,1,21,69,2,2,-300,374,-300,-300,-300,-300,23,66,26,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,379,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,60,1,5,53,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,161,-308,-308,-86,-86,-86,380,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,3,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,387,99,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,389,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,66,10,44,161,391,390,2,66,10,161,392,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,393,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,30,83,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,76,3,2,-109,268,100,101,408,104,271,254,105,106,407,-109,-109,272,263,404,264,269,273,265,266,267,274,409,405,406,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,411,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,142,413,57,1,5,53,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,20,12,2,11,1,4,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,321,416,320,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,417,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,32,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,424,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,32,-150,-150,-150,-150,-150,6,6,60,1,5,32,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,32,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,3,2,9,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-202,426,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,427,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,428,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,430,254,2,57,1,431,254,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,432,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,433,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,161,-264,-264,436,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,441,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,57,1,45,253,254,442,6,6,60,1,5,19,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,24,-110,-110,-110,-110,-110,11,6,60,1,5,1,10,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,10,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,10,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,24,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,23,1,7,13,3,2,1,2,24,3,446,448,447,270,104,271,254,445,272,99,443,87,444,449,450,86,82,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,279,105,106,452,453,278,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,110,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,-385,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,125,126,-386,-386,-386,-386,-386,-386,-386,-386,-386,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,109,108,110,111,-387,-387,-387,-387,-387,-387,118,-387,120,-387,-387,-387,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,112,-388,-388,-388,-388,-388,118,-388,120,-388,122,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,113,-389,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,114,-390,-390,-390,118,-390,120,-390,122,-390,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,125,126,-391,-391,-391,-391,-391,-391,109,108,110,111,112,113,114,115,-391,-391,118,-391,120,-391,122,-391,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,125,126,-399,-399,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,-399,118,119,120,-399,122,-399,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,-398,120,-398,122,-398,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,127,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,124,125,126,96,97,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,113,114,115,116,117,118,119,120,-402,122,-402,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,125,126,-403,-403,-403,-403,-403,-403,109,108,110,111,112,-403,-403,-403,-403,-403,118,-403,120,-403,-403,-403,23,91,1,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,460,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,463,158,157,196,195,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,464,158,157,196,195,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,86,6,14,11,1,30,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,321,467,320,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,468,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,321,84,85,318,320,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,86,470,1,86,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,472,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,474,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,50,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,42,43,90,91,247,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,480,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,481,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,482,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,483,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,484,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,485,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,486,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,487,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,488,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,3,125,1,1,489,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,153,104,-218,-218,155,156,154,99,-218,158,-218,157,152,-218,490,151,2,6,60,491,492,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,493,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,56,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,494,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,348,349,-217,-217,-217,495,1,67,496,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,125,126,-405,-405,-405,-405,-405,-405,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,497,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,498,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,499,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,500,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,10,161,501,6,55,1,10,10,5,8,502,104,161,504,503,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,505,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,506,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,507,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,508,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,509,1,165,510,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,511,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,153,104,155,156,154,99,158,157,196,512,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,513,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,155,1,1,514,377,378,4,67,78,11,1,515,516,517,378,3,67,78,12,-251,-251,-251,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,519,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,518,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,161,-306,-306,520,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,521,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,2,6,61,523,522,2,6,61,-314,-314,24,6,61,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,524,1,67,525,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,526,-173,-173,150,151,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,1,67,527,3,54,5,1,528,105,106,3,89,89,5,530,529,220,3,54,5,1,531,105,106,1,142,532,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,533,-217,-217,-217,5,6,60,1,5,24,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,535,399,402,6,6,60,1,5,24,85,-333,-333,-333,-333,-333,536,6,6,60,1,5,24,85,-335,-335,-335,-335,-335,537,2,55,1,538,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,539,-339,-339,-339,-339,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,540,-217,-217,-217,5,6,60,1,5,24,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,543,104,407,409,542,406,12,6,60,1,5,1,10,1,1,6,5,24,61,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,544,6,6,60,1,5,24,85,-365,-365,-365,-365,-365,545,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,547,546,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,548,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,549,99,3,54,5,1,550,105,106,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,551,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,552,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,32,-151,-151,-151,-151,-151,2,66,38,554,553,116,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-218,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,244,53,52,72,73,93,99,59,-218,83,-218,87,248,84,85,556,555,245,241,66,-218,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,37,557,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,558,-217,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,559,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,560,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,561,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,562,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,563,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,564,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,6,60,30,567,568,566,23,6,39,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,16,-218,268,100,101,270,104,271,254,105,106,-218,-218,272,570,-218,569,273,265,266,-218,267,274,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,571,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,572,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,573,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,574,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,575,140,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,577,578,579,-128,576,140,9,6,60,1,5,11,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,11,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,11,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,11,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,83,2,24,11,250,251,580,140,2,109,11,581,140,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,56,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,582,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,583,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-62,-62,-62,-62,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,584,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,66,585,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,586,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,587,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,588,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,589,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,590,1,165,591,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,592,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,593,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,594,127,321,467,320,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,595,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,19,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,596,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,597,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,598,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,6,60,56,600,601,599,112,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,9,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-218,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,248,84,85,602,66,-218,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,603,-217,-217,-217,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,604,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,605,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,606,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,609,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,608,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,50,2,-175,-175,-175,-175,-175,-175,11,55,1,24,1,1,7,14,2,1,22,1,153,104,155,156,154,99,158,157,152,610,151,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,611,-173,-173,150,151,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,56,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,612,90,91,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,613,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,125,126,-407,-407,-407,-407,-407,-407,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,614,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,161,615,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,161,616,2,66,10,161,617,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,26,66,10,16,5,51,1,9,1,1,4,28,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,618,127,619,124,125,126,96,97,620,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,621,127,622,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,623,127,624,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,625,127,626,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,627,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,628,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,629,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-303,-303,-303,-303,27,72,20,2,54,1,9,1,1,3,2,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,630,631,517,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,2,66,10,161,632,3,67,78,12,-252,-252,-252,3,66,6,4,161,634,633,24,66,6,20,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,161,-310,-310,635,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,3,1,-316,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-316,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,636,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,23,1,8,18,-217,-217,-217,348,349,-217,-217,637,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,638,6,55,1,10,113,1,2,401,104,400,639,399,402,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,54,5,1,640,105,106,3,6,60,30,642,643,641,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,644,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,645,-217,-217,-217,2,55,1,646,104,2,55,1,647,104,1,142,-338,3,54,5,1,648,105,106,3,6,60,30,650,651,649,10,6,49,1,10,1,29,8,18,60,5,-218,543,104,-218,-218,-218,-218,-218,409,652,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,653,-217,-217,-217,6,6,60,1,5,24,85,-362,-362,-362,-362,-362,544,3,55,1,126,654,104,655,2,55,1,656,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,657,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,658,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,67,659,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,1,138,660,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,661,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,662,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,32,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,244,53,52,72,73,93,99,59,83,-153,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,663,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,554,664,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,665,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,161,666,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,667,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,668,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,268,100,101,270,104,271,254,105,106,272,570,669,273,265,266,267,274,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,268,100,101,270,104,271,254,105,106,-109,-109,-109,272,570,-109,670,269,273,265,266,267,274,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,671,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,672,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,5,19,5,-124,-124,-124,-124,-124,-124,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,673,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,6,60,1,5,11,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,11,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,674,254,2,57,1,675,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,676,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,677,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,11,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,678,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,679,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,680,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,681,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,682,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,683,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,684,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,685,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,686,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,86,687,1,86,688,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,689,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,248,84,85,690,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,42,43,90,91,247,691,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,50,-195,-195,-195,-195,-195,3,6,60,1,600,601,692,1,86,693,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,32,18,16,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,50,2,-176,-176,-176,-176,-176,-176,8,6,60,1,5,23,1,8,18,-217,-217,-217,348,694,-217,-217,-217,2,66,10,161,608,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,695,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,696,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,697,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,698,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,699,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,700,127,701,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,702,127,703,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,66,10,161,704,1,67,705,4,6,61,78,12,706,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,707,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,10,161,708,3,54,5,1,709,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,710,-217,-217,-217,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,1,142,711,4,55,1,124,2,401,104,712,402,6,55,1,10,113,1,2,401,104,400,713,399,402,5,6,60,1,5,24,-329,-329,-329,-329,-329,3,6,60,1,642,643,714,5,6,60,1,5,24,-334,-334,-334,-334,-334,5,6,60,1,5,24,-336,-336,-336,-336,-336,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,715,-340,-340,-340,-340,4,55,1,126,5,543,104,409,716,6,55,1,10,116,3,2,543,104,407,409,717,406,5,6,60,1,5,24,-358,-358,-358,-358,-358,3,6,60,1,650,651,718,5,6,60,1,5,24,-363,-363,-363,-363,-363,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,719,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,720,-217,5,6,60,1,5,32,-147,-147,-147,-147,-147,5,6,60,1,5,32,-148,-148,-148,-148,-148,1,86,721,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,308,153,104,155,156,154,99,722,723,83,157,196,307,195,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,724,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,725,-217,-217,-217,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,726,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,727,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,11,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,11,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,728,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,729,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,65,730,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,731,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,732,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,733,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,734,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,735,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,736,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,737,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,738,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,86,739,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,740,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,491,492,741,25,66,10,16,56,1,9,1,1,4,28,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,742,127,124,125,126,96,97,743,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,744,127,745,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,746,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,747,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,748,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,749,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,750,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,67,751,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,3,67,78,12,-254,-254,-254,24,66,6,20,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,30,642,643,752,3,54,5,1,753,105,106,5,6,60,1,5,24,-330,-330,-330,-330,-330,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,754,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,3,54,5,1,755,105,106,5,6,60,1,5,24,-359,-359,-359,-359,-359,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,756,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,554,757,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,94,69,2,2,758,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,759,158,157,196,195,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,567,568,760,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-119,-119,-119,-119,-119,9,6,60,1,5,11,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,761,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,59,1,2,2,-61,-61,-61,-61,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,762,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,763,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,764,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,765,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,600,601,766,6,6,60,1,5,50,2,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,767,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,768,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,769,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,770,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,142,771,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,3,6,60,1,642,643,772,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,6,60,1,650,651,773,5,6,60,1,5,32,-149,-149,-149,-149,-149,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,774,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,775,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,776,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,777,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,778,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,779,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,780,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,54,5,1,781,105,106,5,6,60,1,5,24,-332,-332,-332,-332,-332,5,6,60,1,5,24,-361,-361,-361,-361,-361,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,784,-288,-288,-288,-288,782,-288,783,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,785,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,1,96,786,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,787,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,29,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,784,-290,-290,-290,-290,788,-290,789,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,784,-289,-289,-289,-289,790,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,791,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,792,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,96,793,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,784,-291,-291,-291,-291,794,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,96,795,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],W=[],F=0,U,u,f,Y;while(F<$.length){U=$[F++],u={},f=0,Y=[];while(U--)f+=$[F++],Y.push(f);for(f of Y)u[f]=$[F++];W.push(u)}return W})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,W,F,U)=>{let u=W,f=W.length-1;switch($){case 1:return["program"];case 2:return["program",...u[f]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 251:case 302:case 314:case 328:case 357:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...u[f-2],u[f]];case 5:case 60:case 157:case 316:return u[f-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365:return u[f];case 47:return"undefined";case 48:return"null";case 57:return["str",...u[f-1]];case 59:case 151:case 155:case 252:return[...u[f-1],u[f]];case 61:case 193:case 197:case 331:case 360:return u[f-2];case 62:return"";case 65:return["regex",u[f-1]];case 66:return["regex-index",u[f-2],u[f]];case 67:return["regex-index",u[f],null];case 68:return["=",u[f-2],u[f]];case 69:return["=",u[f-3],u[f]];case 70:return["=",u[f-4],u[f-1]];case 71:return["state",u[f-2],u[f]];case 72:return["state",u[f-3],u[f]];case 73:return["state",u[f-4],u[f-1]];case 74:case 76:return["computed",u[f-2],u[f]];case 75:return["computed",u[f-3],u[f]];case 77:return["readonly",u[f-2],u[f]];case 78:return["readonly",u[f-3],u[f]];case 79:return["readonly",u[f-4],u[f-1]];case 80:case 82:return["effect",u[f-2],u[f]];case 81:return["effect",u[f-3],u[f]];case 83:case 84:case 85:return["effect",null,u[f]];case 91:case 100:case 138:return[".",u[f-2],u[f]];case 92:case 101:case 139:return["?.",u[f-2],u[f]];case 93:case 95:case 102:case 140:return["[]",u[f-3],u[f-1]];case 94:case 96:case 103:case 141:return["[]",u[f-5],u[f-2]];case 97:return[u[f-1][0],u[f-3],...u[f-1].slice(1)];case 98:return["optindex",u[f-4],u[f-1]];case 99:return["optindex",u[f-6],u[f-2]];case 104:return["object-comprehension",u[f-8],u[f-6],[["for-of",u[f-4],u[f-2],!1]],[]];case 105:return["object-comprehension",u[f-10],u[f-8],[["for-of",u[f-6],u[f-4],!1]],[u[f-2]]];case 106:return["object-comprehension",u[f-9],u[f-7],[["for-of",u[f-4],u[f-2],!0]],[]];case 107:return["object-comprehension",u[f-11],u[f-9],[["for-of",u[f-6],u[f-4],!0]],[u[f-2]]];case 108:return["object",...u[f-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 330:case 359:return[...u[f-3],u[f]];case 113:case 177:case 198:case 332:case 361:return[...u[f-5],...u[f-2]];case 114:return[u[f],u[f],null];case 116:return[u[f-2],u[f],":"];case 117:return[u[f-4],u[f-1],":"];case 118:return[u[f-2],u[f],"="];case 119:return[u[f-4],u[f-1],"="];case 124:return["dynamicKey",u[f-1]];case 125:return["[]","this",u[f-1]];case 127:case 128:case 186:return["...",u[f]];case 134:case 190:return["super",...u[f]];case 135:case 136:case 137:case 188:case 191:return[u[f-1],...u[f]];case 142:return["array"];case 143:return["array",...u[f-1]];case 144:return["array",...u[f-2],...u[f-1]];case 146:return[...u[f-2],...u[f]];case 147:return[...u[f-3],...u[f]];case 148:return[...u[f-2],...u[f-1]];case 149:return[...u[f-5],...u[f-4],...u[f-2],...u[f-1]];case 153:return[...u[f]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[u[f-2],u[f-3],u[f-1]];case 161:case 385:case 387:case 388:case 403:case 405:return[u[f-1],u[f-2],u[f]];case 162:return[u[f],u[f-1],null];case 163:return[u[f-1],null,u[f]];case 164:return[u[f],null,null];case 165:return["def",u[f-4],u[f-2],u[f]];case 166:return["def",u[f-1],[],u[f]];case 167:case 169:return[u[f-1],u[f-3],u[f]];case 168:case 170:return[u[f-1],[],u[f]];case 179:case 301:return["default",u[f-2],u[f]];case 180:return["rest",u[f]];case 181:return["expansion"];case 187:return["tagged-template",u[f-1],u[f]];case 189:return["optcall",u[f-2],...u[f]];case 205:case 206:return"this";case 207:return[".","this",u[f]];case 208:return[".","super",u[f]];case 209:return["[]","super",u[f-1]];case 210:return["[]","super",u[f-2]];case 211:return[".","new",u[f]];case 212:return[".","import",u[f]];case 213:return["block"];case 214:return["block",...u[f-1]];case 215:return u[f-1].length===1?u[f-1][0]:["block",...u[f-1]];case 216:return u[f-2].length===1?u[f-2][0]:["block",...u[f-2]];case 219:return["return",u[f]];case 220:return["return",u[f-1]];case 221:return["return"];case 222:return["throw",u[f]];case 223:return["throw",u[f-1]];case 224:return["yield"];case 225:return["yield",u[f]];case 226:return["yield",u[f-1]];case 227:return["yield-from",u[f]];case 228:return["if",u[f-1],u[f]];case 229:return u[f-4].length===3?["if",u[f-4][1],u[f-4][2],["if",u[f-1],u[f]]]:[...u[f-4],["if",u[f-1],u[f]]];case 230:return["if",["!",u[f-1]],u[f]];case 231:return["if",["!",u[f-3]],u[f-2],u[f]];case 233:return u[f-2].length===3?["if",u[f-2][1],u[f-2][2],u[f]]:[...u[f-2],u[f]];case 235:case 236:return["if",u[f],[u[f-2]]];case 237:return["?:",u[f-4],u[f-6],u[f-1]];case 238:case 239:return["if",["!",u[f]],[u[f-2]]];case 240:return["try",u[f]];case 241:return["try",u[f-1],u[f]];case 242:return["try",u[f-2],u[f]];case 243:return["try",u[f-3],u[f-2],u[f]];case 244:case 245:case 367:case 370:case 372:return[u[f-1],u[f]];case 246:return[null,u[f]];case 247:return["switch",u[f-3],u[f-1],null];case 248:return["switch",u[f-5],u[f-3],u[f-1]];case 249:return["switch",null,u[f-1],null];case 250:return["switch",null,u[f-3],u[f-1]];case 253:return["when",u[f-1],u[f]];case 254:return["when",u[f-2],u[f-1]];case 255:return["while",u[f]];case 256:return["while",u[f-2],u[f]];case 257:return["while",["!",u[f]]];case 258:return["while",["!",u[f-2]],u[f]];case 259:return u[f-1].length===2?[u[f-1][0],u[f-1][1],u[f]]:[u[f-1][0],u[f-1][1],u[f-1][2],u[f]];case 260:case 261:return u[f].length===2?[u[f][0],u[f][1],[u[f-1]]]:[u[f][0],u[f][1],u[f][2],[u[f-1]]];case 263:return["loop",u[f]];case 264:return["loop",[u[f]]];case 265:return["loop-n",u[f-1],u[f]];case 266:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 267:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 268:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 269:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 271:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 272:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 273:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 274:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 275:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 276:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 277:case 279:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 278:case 280:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 281:return["for-in",[],u[f-1],null,null,u[f]];case 282:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 283:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 284:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 286:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 288:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 289:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 290:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 291:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 292:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 293:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 294:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 295:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 296:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 297:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 298:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 299:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[u[f-2],u[f]];case 304:return["class",null,null];case 305:return["class",null,null,u[f]];case 306:return["class",null,u[f]];case 307:return["class",null,u[f-1],u[f]];case 308:return["class",u[f],null];case 309:return["class",u[f-1],null,u[f]];case 310:return["class",u[f-2],u[f]];case 311:return["class",u[f-3],u[f-1],u[f]];case 312:return["enum",u[f-1],u[f]];case 313:return["component",null,["block",...u[f-1]]];case 320:return["render",u[f]];case 321:case 324:return["import","{}",u[f]];case 322:case 323:return["import",u[f-2],u[f]];case 325:return["import",u[f-4],u[f]];case 326:return["import",[u[f-4],u[f-2]],u[f]];case 327:return["import",[u[f-7],u[f-4]],u[f]];case 338:return["*",u[f]];case 339:return["export","{}"];case 340:return["export",u[f-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",u[f]];case 345:return["export",["=",u[f-2],u[f]]];case 346:return["export",["=",u[f-3],u[f]]];case 347:return["export",["=",u[f-4],u[f-1]]];case 352:return["export-default",u[f]];case 353:return["export-default",u[f-1]];case 354:return["export-all",u[f]];case 355:return["export-from","{}",u[f]];case 356:return["export-from",u[f-4],u[f]];case 368:case 369:case 371:case 408:return["do-iife",u[f]];case 373:return["-",u[f]];case 374:return["+",u[f]];case 375:return["?",u[f-1]];case 376:return["defined",u[f-1]];case 377:return["await",u[f]];case 378:return["await",u[f-1]];case 379:return["--",u[f],!1];case 380:return["++",u[f],!1];case 381:return["--",u[f-1],!0];case 382:return["++",u[f-1],!0];case 383:return["+",u[f-2],u[f]];case 384:return["-",u[f-2],u[f]];case 386:return["**",u[f-2],u[f]];case 389:return["&",u[f-2],u[f]];case 390:return["^",u[f-2],u[f]];case 391:return["|",u[f-2],u[f]];case 392:case 393:case 394:case 395:case 396:case 397:return["control",u[f-1],u[f-2],u[f]];case 398:return["&&",u[f-2],u[f]];case 399:return["||",u[f-2],u[f]];case 400:return["??",u[f-2],u[f]];case 401:return["!?",u[f-2],u[f]];case 402:return["|>",u[f-2],u[f]];case 404:return["?:",u[f-4],u[f-2],u[f]];case 406:return[u[f-3],u[f-4],u[f-1]];case 407:return[u[f-2],u[f-3],u[f]]}},parseError($,W){let F,U,u,f,Y,A,_;if(W.recoverable)return this.trace($);else throw u=(W.line||0)+1,F=W.loc?.c||0,_=W.token?` (token: ${W.token})`:"",A=W.text?` near '${W.text}'`:"",f=`line ${u}, column ${F}`,Y=`Parse error at ${f}${_}${A}: ${$}`,U=Error(Y),U.hash=W,U},parse($){let W,F,U,u,f,Y,A,_,J,X,w,H,Z,D,Q,K,M,O,q,z,E,G,R,P,I,B;[z,B,X]=[[0],[null],[]],[Z,I,R,G,K]=[this.parseTable,"",0,0,0],[F,W]=[2,1],_=Object.create(this.lexer),O={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];O.ctx[N]=T}if(_.setInput($,O.ctx),[O.ctx.lexer,O.ctx.parser]=[_,this],_.loc==null)_.loc={};P=_.loc,X.push(P),this.parseError=typeof O.ctx.parseError==="function"?O.ctx.parseError:Object.getPrototypeOf(this).parseError,A=()=>{let N;if(N=_.lex()||W,typeof N!=="number")N=this.symbolIds[N]||N;return N},E=D=q=U=Q=H=Y=w=f=null,M={};while(!0){if(q=z[z.length-1],E==null)E=A();if(U=Z[q]?.[E],U==null){if(u="",!K)f=(()=>{let N=[];for(let T in Z[q]){if(!Object.hasOwn(Z[q],T))continue;if(this.tokenNames[T]&&T>F)N.push(`'${this.tokenNames[T]}'`)}return N})();throw u=(()=>{if(_.showPosition)return`Parse error on line ${R+1}:
12
- ${_.showPosition()}
13
- Expecting ${f.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${R+1}: Unexpected ${E===W?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(u,{text:_.match,token:this.tokenNames[E]||E,line:_.line,loc:P,expected:f})})(),Error(u)}if(U>0)if(z.push(E,U),B.push(_.text),X.push(_.loc),E=null,!D){if([G,I,R,P]=[_.len,_.text,_.line,_.loc],K>0)K--}else[E,D]=[D,null];else if(U<0){if(Y=this.ruleTable[-U*2+1],M.$=B[B.length-Y],J=X[X.length-(Y||1)],M._$={r:J.r,c:J.c},Q=this.ruleActions.call(M,-U,B,X,O.ctx),Q!=null)M.$=Q;if(Array.isArray(M.$))M.$.loc=M._$;if(Y)z.length-=Y*2,B.length-=Y,X.length-=Y;z.push(this.ruleTable[-U*2]),B.push(M.$),X.push(M._$),w=Z[z[z.length-2]][z[z.length-1]],z.push(w)}else if(U===0)return B[B.length-1]}},trace(){},ctx:{}},C3=($={})=>{let W=Object.create(h3);return Object.defineProperty(W,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),W},r=C3();var s3=r.parse.bind(r);var y3=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),W1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),R2=new Set([...y3,...W1]);var w2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]),b3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function v3($){for(let W of $){if(!Array.isArray(W))continue;let F=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(F==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function z1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function b1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function D2($,W,F){let U=F($);if(!/_frag\d+$/.test(U))return null;let u=[],f=new RegExp(`^${U.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let Y of W){let A=F(Y).match(f);if(A)u.push(A[1])}return u.length>0?u:null}function M2($,W){W.prototype.rewriteRender=function(){let U=(Z,D,Q)=>{let K=[Z,D];if(K.pre=0,K.data=null,K.loc=Q?.loc??{r:0,c:0,n:0},K.spaced=!1,K.newLine=!1,K.generated=!0,Q)K.origin=Q;return K},u=!1,f=0,Y=0,A=[],_=(Z)=>{let D=Z.split("#")[0];return R2.has(D)},J=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},X=(Z)=>{return _(Z)||J(Z)},w=(Z,D,Q,K)=>{let M=1,O=D;while(O>=0&&M>0){let q=Z[O][0];if(q===Q)M++;else if(q===K)M--;if(M>0)O--}return O},H=(Z,D)=>{let Q=D;while(Q>0){let K=Z[Q-1][0];if(K==="TERMINATOR"||K==="RENDER")break;if(K==="INDENT"||K==="OUTDENT"){let M=Z[Q][0];if(M==="CALL_END"||M===")"){Q=w(Z,Q-1,M,M==="CALL_END"?"CALL_START":"(");continue}break}if(K==="CALL_END"||K===")"){Q=w(Z,Q-2,K,K==="CALL_END"?"CALL_START":"(");continue}if(K==="INTERPOLATION_END"){Q=w(Z,Q-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(K==="STRING_END"){Q=w(Z,Q-2,"STRING_END","STRING_START");continue}Q--}return Z[Q]&&Z[Q][0]==="IDENTIFIER"&&X(Z[Q][1])};this.scanTokens(function(Z,D,Q){let K=Z[0],M=D<Q.length-1?Q[D+1]:null;if(K==="RENDER")return u=!0,f=Y+1,1;if(K==="INDENT")return Y++,1;if(K==="OUTDENT"){Y--;let O=0;while(A.length>0&&A[A.length-1]>Y){let q=U("CALL_END",")",Z);Q.splice(D+1+O,0,q),A.pop(),O++}if(u&&Y<f)u=!1;return 1+O}if(!u)return 1;if(K==="IDENTIFIER"&&!Z.spaced){let O=[Z[1]],q=D+1;while(q+1<Q.length){let z=Q[q],E=Q[q+1];if(z[0]==="-"&&!z.spaced&&(E[0]==="IDENTIFIER"||E[0]==="PROPERTY")){if(O.push(E[1]),q+=2,E[0]==="PROPERTY")break}else break}if(O.length>1&&q>D+1&&Q[q-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${O.join("-")}"`,Q.splice(D+1,q-D-1),1}if(K==="."){let O=D>0?Q[D-1]:null,q=O?O[0]:null;if(q==="INDENT"||q==="TERMINATOR"){if(M&&M[0]==="PROPERTY"){let z=U("IDENTIFIER","div",Z);return Q.splice(D,0,z),2}if(!M||M[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(K==="IDENTIFIER"||K==="PROPERTY"){let O=Q[D+1],q=Q[D+2];if(O&&O[0]==="#"&&q&&(q[0]==="PROPERTY"||q[0]==="IDENTIFIER")){if(Z[1]=Z[1]+"#"+q[1],q.spaced)Z.spaced=!0;return Q.splice(D+1,2),0}}if(K==="BIND"){let O=D>0?Q[D-1]:null,q=Q[D+1];if(O&&(O[0]==="IDENTIFIER"||O[0]==="PROPERTY")&&q&&q[0]==="IDENTIFIER")return O[1]=`__bind_${O[1]}__`,Z[0]=":",Z[1]=":",1}if(K==="@"){let O=D+1;if(O<Q.length&&Q[O][0]==="PROPERTY"){O++;while(O+1<Q.length&&Q[O][0]==="."&&Q[O+1][0]==="PROPERTY")O+=2;if(O>D+2&&O<Q.length&&Q[O][0]===":"){let q=U("[","[",Z);Q.splice(D,0,q);let z=U("]","]",Q[O+1]);return Q.splice(O+1,0,z),2}}}if(K==="."&&M&&M[0]==="("){let O=D>0?Q[D-1]:null,q=O?O[0]:null,z=q==="INDENT"||q==="TERMINATOR",E=U("PROPERTY","__clsx",Z);M[0]="CALL_START";let G=1;for(let R=D+2;R<Q.length&&G>0;R++)if(Q[R][0]==="("||Q[R][0]==="CALL_START")G++;else if(Q[R][0]===")"){if(G--,G===0)Q[R][0]="CALL_END"}else if(Q[R][0]==="CALL_END")G--;if(z){let R=U("IDENTIFIER","div",Z);return Q.splice(D,0,R),Q.splice(D+2,0,E),3}else if(q===":")return Q[D]=U("IDENTIFIER","__clsx",Z),1;else return Q.splice(D+1,0,E),2}if(M&&M[0]==="INDENT"){if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let O=!1,q=D>0?Q[D-1][0]:null,z=q==="IF"||q==="UNLESS"||q==="WHILE"||q==="UNTIL"||q==="WHEN",E=!1;if(K==="CALL_END"){let G=1;for(let R=D-1;R>=0&&G>0;R--)if(Q[R][0]==="CALL_END")G++;else if(Q[R][0]==="CALL_START"){if(G--,G===0&&R>0&&Q[R-1][0]==="PROPERTY"&&Q[R-1][1]==="__clsx")E=!0}}if(E)O=!0;else if(K==="IDENTIFIER"&&X(Z[1])&&!z)O=!0;else if(K==="PROPERTY"||K==="STRING"||K==="STRING_END"||K==="CALL_END"||K===")")O=H(Q,D);else if(K==="IDENTIFIER"&&D>1&&Q[D-1][0]==="..."){if(H(Q,D)){let G=U(",",",",Z),R=U("->","->",Z);return R.newLine=!0,Q.splice(D+1,0,G,R),3}}if(O){let G=K==="PROPERTY"&&D>0&&(Q[D-1][0]==="."||Q[D-1][0]==="#");if(E){let R=U("CALL_START","(",Z),P=U("->","->",Z);return P.newLine=!0,Q.splice(D+1,0,R,P),A.push(Y+1),3}else if(K==="IDENTIFIER"&&X(Z[1])||G){let R=U("CALL_START","(",Z),P=U("->","->",Z);return P.newLine=!0,Q.splice(D+1,0,R,P),A.push(Y+1),3}else{let R=U(",",",",Z),P=U("->","->",Z);return P.newLine=!0,Q.splice(D+1,0,R,P),3}}}if(K==="IDENTIFIER"&&J(Z[1])&&M&&(M[0]==="OUTDENT"||M[0]==="TERMINATOR"))return Q.splice(D+1,0,U("CALL_START","(",Z),U("CALL_END",")",Z)),3;return 1})};let F=$.prototype;F.localizeVar=function(U){let u=U.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return u=u.replace(/\bthis\b/g,"ctx"),u},F.isHtmlTag=function(U){let u=U.split("#")[0];return R2.has(u.toLowerCase())},F.isComponent=function(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)},F.collectTemplateClasses=function(U){let u=[],f=U;while(this.is(f,".")){let J=f[2];if(typeof J==="string"||J instanceof String)u.unshift(J.valueOf());f=f[1]}let Y=typeof f==="string"?f:f instanceof String?f.valueOf():null;if(Y===null)return{tag:null,classes:u,id:void 0};let[A,_]=Y.split("#");if(!A)A="div";return{tag:A,classes:u,id:_}},F.transformComponentMembers=function(U){if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".","this",U],"value"];if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return[".","this",U];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let u=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(u))return[".",U,"value"];return U}if(U[0]==="."||U[0]==="?.")return[U[0],this.transformComponentMembers(U[1]),U[2]];if(U[0]==="->")return["=>",...U.slice(1).map((u)=>this.transformComponentMembers(u))];if(U[0]==="object")return["object",...U.slice(1).map((u)=>{if(Array.isArray(u)&&u.length>=2){let f=u[0],Y=Array.isArray(f)?this.transformComponentMembers(f):f,A=this.transformComponentMembers(u[1]);return[Y,A,u[2]]}return this.transformComponentMembers(u)})];return U.map((u)=>this.transformComponentMembers(u))},F.generateComponent=function(U,u,f,Y){let[,A]=u;this.usesTemplates=!0,this.usesReactivity=!0;let _=this.is(A,"block")?A.slice(1):[],J=[],X=[],w=[],H=[],Z=[],D=[],Q=null,K=new Set,M=new Set;for(let G of _){if(!Array.isArray(G))continue;let[R]=G;if(R==="state"){let P=z1(G[1]);if(P)J.push({name:P,value:G[2],isPublic:b1(G[1])}),K.add(P),M.add(P)}else if(R==="computed"){let P=z1(G[1]);if(P)X.push({name:P,expr:G[2]}),K.add(P),M.add(P)}else if(R==="readonly"){let P=z1(G[1]);if(P)w.push({name:P,value:G[2],isPublic:b1(G[1])}),K.add(P)}else if(R==="="){let P=z1(G[1]);if(P)if(w2.has(P))Z.push({name:P,value:G[2]});else{let I=G[2];if(Array.isArray(I)&&(I[0]==="->"||I[0]==="=>"))H.push({name:P,func:I}),K.add(P);else J.push({name:P,value:I,isPublic:b1(G[1])}),K.add(P),M.add(P)}}else if(R==="effect")D.push(G);else if(R==="render")Q=G;else if(R==="object")for(let P=1;P<G.length;P++){let I=G[P];if(!Array.isArray(I))continue;let[B,N]=I;if(typeof B==="string"&&w2.has(B))Z.push({name:B,value:N});else if(typeof B==="string")H.push({name:B,func:N}),K.add(B)}}let O=this.componentMembers,q=this.reactiveMembers;this.componentMembers=K,this.reactiveMembers=M;let z=[],E="";z.push("class extends __Component {"),z.push(" _init(props) {");for(let{name:G,value:R,isPublic:P}of w){let I=this.generateInComponent(R,"value");z.push(P?` this.${G} = props.${G} ?? ${I};`:` this.${G} = ${I};`)}for(let{name:G,value:R,isPublic:P}of J){let I=this.generateInComponent(R,"value");z.push(P?` this.${G} = __state(props.${G} ?? ${I});`:` this.${G} = __state(${I});`)}for(let{name:G,expr:R}of X)if(this.is(R,"block")&&R.length>2){let P=this.transformComponentMembers(R),I=this.generateFunctionBody(P);z.push(` this.${G} = __computed(() => ${I});`)}else{let P=this.generateInComponent(R,"value");z.push(` this.${G} = __computed(() => ${P});`)}for(let G of D){let R=G[2],P=this.containsAwait(R)?"async ":"";if(this.is(R,"block")&&R.length>2){let I=this.transformComponentMembers(R),B=this.generateFunctionBody(I,[],!0);z.push(` __effect(${P}() => ${B});`)}else{let I=this.generateInComponent(R,"value");z.push(` __effect(${P}() => { ${I}; });`)}}z.push(" }");for(let{name:G,func:R}of H)if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let[,P,I]=R,B=Array.isArray(P)?P.map((j)=>this.formatParam(j)).join(", "):"",N=this.reactiveMembers?this.transformComponentMembers(I):I,T=this.containsAwait(I),L=this.generateFunctionBody(N,P||[]);z.push(` ${T?"async ":""}${G}(${B}) ${L}`)}for(let{name:G,value:R}of Z)if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let[,,P]=R,I=this.reactiveMembers?this.transformComponentMembers(P):P,B=this.containsAwait(P),N=this.generateFunctionBody(I,[]);z.push(` ${B?"async ":""}${G}() ${N}`)}if(Q){let G=Q[1],R=this.buildRender(G);if(R.blockFactories.length>0)E=R.blockFactories.join(`
5
+ `+$;return $}advance($){let W=this.code.slice(this.pos,this.pos+$);for(let _=0;_<W.length;_++)if(W[_]===`
6
+ `)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,W,{len:_,data:U,pre:u}={}){let f=H1($,W,{pre:u??0,row:this.row,col:this.col,len:_??(typeof W==="string"?W.length:0),data:U});return this.tokens.push(f),f}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let $=this.prev();return $?$[0]:void 0}prevVal(){let $=this.prev();return $?$[1]:void 0}identifierToken(){if(z3.test(this.chunk))return 0;let $=X3.exec(this.chunk);if(!$)return 0;let[,W,_]=$,U=W.length,u={},f;if(W==="own"&&this.prevTag()==="FOR")return this.emit("OWN",W,{len:U}),U;if(W==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",W,{len:U}),U;if(W==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let Q=this.prevTag();if(Q==="DEFAULT"||Q==="IMPORT_ALL"||Q==="IDENTIFIER")return this.emit("AS",W,{len:U}),U}if((W==="as"||W==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(W==="as!"?"FORASAWAIT":"FORAS","as",{len:U}),U;if(W==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",W,{len:U}),U;let F;if(W==="do"&&(F=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),F[1].length+3;let Y=this.prev();if(_&&Y&&Y[0]==="SPACE?")_=null;if(_||Y&&(Y[0]==="."||Y[0]==="?."||!Y.spaced&&Y[0]==="@")){if(f="PROPERTY",this.inRenderBlock&&Y&&Y[0]==="."&&!_){let Q=this.chunk.slice(U);while(Q[0]==="-"&&/^-[a-zA-Z]/.test(Q)){let w=/^-([a-zA-Z][\w]*)/.exec(Q);if(!w)break;W+="-"+w[1],U+=1+w[1].length,Q=this.chunk.slice(U)}}}else f="IDENTIFIER";let A=W.endsWith("!")||W.endsWith("?")?W.slice(0,-1):W;if(f==="IDENTIFIER"&&!W.endsWith("!")&&!W.endsWith("?")&&($2.has(W)||U2.has(W)||W2.has(W))&&!(this.exportSpecifierList&&W2.has(W))){if(y1[W]!==void 0)u.original=W,W=y1[W];f=this.classifyKeyword(W,f,u)}if(f==="IDENTIFIER"&&s2.has(A))g(`reserved word '${A}'`,{row:this.row,col:this.col,len:U});if(f==="PROPERTY"&&Y){if(Y[0]==="."&&this.tokens.length>1){let Q=this.tokens[this.tokens.length-2];if(Q[0]==="UNARY"&&Q[1]==="new")Q[0]="NEW_TARGET";if(Q[0]==="IMPORT"&&Q[1]==="import")this.seenImport=!1,Q[0]="IMPORT_META"}}if(W.length>1&&W.endsWith("!"))u.await=!0,W=W.slice(0,-1);if(W.length>1&&W.endsWith("?"))u.predicate=!0,W=W.slice(0,-1);let X=this.emit(f,W,{len:U,data:Object.keys(u).length?u:null});if(f==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(_)return this.emit(":",":",{len:1}),U+_.length;return U}classifyKeyword($,W,_){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(t2.has($))return"STATEMENT";let U=$.toUpperCase();if(U==="WHEN"&&U1.has(this.prevTag()))return"LEADING_WHEN";if(U==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(U==="UNLESS")return"UNLESS";if(U==="IMPORT")return this.seenImport=!0,"IMPORT";if(U==="EXPORT")return this.seenExport=!0,"EXPORT";if(e2.has(U))return"UNARY";if(u3.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let u=this.tokens.pop();_.invert=u.data?.original||u[1]}return"RELATION"}if($2.has($)||U2.has($))return U;return W}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let W=this.prev();if(W&&(W[0]==="IDENTIFIER"||W[0]==="PROPERTY"))return 0;let _=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(_)return this.emit("IDENTIFIER","div#"+_[1]),_[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let $=D3.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=w3.exec(this.chunk);if(!$&&this.chunk[0]!==`
7
+ `)return 0;let W=this.prev();if(W)if($)W.spaced=!0,W.pre=$[0].length;else W.newLine=!0;return $?$[0].length:0}lineToken(){let $=M3.exec(this.chunk);if(!$)return 0;let W=$[0],_=W.length-1-W.lastIndexOf(`
8
+ `);if(this.isUnfinished()){if(_<this.indent&&/^\s*,/.test(this.chunk)&&!A2.has(this.prevTag())){if(this.outdentTo(_,W.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return W.length}return W.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(_===this.indent)return this.emitNewline(),W.length;if(_>this.indent){if(!this.tokens.length)return this.indent=_,W.length;let U=_-this.indent;return this.emit("INDENT",U,{len:_}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=_,W.length}return this.outdentTo(_,W.length),W.length}outdentTo($,W=0){if(this.inRenderBlock&&$<=this.renderIndent)this.inRenderBlock=!1;let _=this.indent-$;while(_>0){let U=this.indents[this.indents.length-1];if(!U)_=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",_,{len:W}),_-=U}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
9
+ `,{len:0})}isUnfinished(){if(this.inRenderBlock&&X2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let W=this.tokens.length;if(W>=2){let _=this.tokens[W-2][0];if(_==="INDENT"||_==="TERMINATOR"||_==="OUTDENT")return!1}}let $=this.tokens[this.tokens.length-1];if($?.[0]==="COMPARE"&&$[1]===">"){let W=0;for(let _=this.tokens.length-1;_>=0;_--){let U=this.tokens[_];if(U[0]==="COMPARE"&&U[1]===">")W++;else if(U[0]==="COMPARE"&&U[1]==="<")W--;if(W===0&&U[0]==="TYPE_ANNOTATION")return!1;if(U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")break}}return X2.test(this.chunk)||A2.has(this.prevTag())}pair($){let W=this.ends[this.ends.length-1];if(!W||$!==W.tag){if(W?.tag==="OUTDENT"){let _=this.indents[this.indents.length-1];if(_)this.outdentTo(this.indent-_);return this.pair($)}g(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=O3.exec(this.chunk);if(!$)return 0;let W=$[0],_=W.length>1&&W.endsWith("\\"),U=_?W.slice(0,-1):W,u=this.prev();if(u&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))u[0]="FROM";let f;switch(U){case"'":f=q3;break;case'"':f=G3;break;case"'''":f=P3;break;case'"""':f=E3;break}let{tokens:F,index:Y}=this.matchWithInterpolations(f,W,U),A=U.length===3,X=null;if(A)X=this.processHeredocIndent(Y,U,F);return this.mergeInterpolationTokens(F,{quote:U,indent:X,endOffset:Y,raw:_}),Y}processHeredocIndent($,W,_){let U=$-W.length,u=U-1;while(u>=0&&this.chunk[u]!==`
10
+ `)u--;u++;let f=this.chunk.slice(u,U),F=/^\s*$/.test(f)?f.length:null,Y="";for(let Q of _)if(Q[0]==="NEOSTRING")Y+=Q[1];let A=null,X;J2.lastIndex=0;while(X=J2.exec(Y))if(A===null||X[1].length>0&&X[1].length<A.length)A=X[1];if(F===null)return A;if(A===null)return" ".repeat(F);if(F<=A.length)return" ".repeat(F);return A}matchWithInterpolations($,W,_,U){if(!_)_=W;if(!U)U=/^[#$]\{/;let u=[],f=W.length;if(this.chunk.slice(0,f)!==W)return null;let F=this.chunk.slice(f);while(!0){let[Y]=$.exec(F);u.push(["NEOSTRING",Y,{offset:f}]),F=F.slice(Y.length),f+=Y.length;let A=U.exec(F);if(!A)break;let Q=A[0].length-1,w=F.slice(Q),H=new m().tokenize(w,{row:this.row,col:this.col+f+Q,untilBalanced:!0,rewrite:!1}),Z=H.index+Q;if(F[Z-1]==="}"){let J=H.tokens[0],K=H.tokens[H.tokens.length-1];J[0]="INTERPOLATION_START",J[1]="(",K[0]="INTERPOLATION_END",K[1]=")"}if(H.tokens[1]?.[0]==="TERMINATOR")H.tokens.splice(1,1);let M=H.tokens.length;if(M>2&&H.tokens[M-3]?.[0]==="INDENT"&&H.tokens[M-2]?.[0]==="OUTDENT")H.tokens.splice(M-3,2);u.push(["TOKENS",H.tokens]),F=F.slice(Z),f+=Z}if(F.slice(0,_.length)!==_)g(`missing ${_}`,{row:this.row,col:this.col});return{tokens:u,index:f+_.length}}mergeInterpolationTokens($,{quote:W,indent:_,endOffset:U,raw:u}){if($.length>1)this.emit("STRING_START","(",{len:W?.length||0,data:{quote:W}});for(let f=0;f<$.length;f++){let[F,Y]=$[f];if(F==="TOKENS")for(let A of Y)this.tokens.push(A);else if(F==="NEOSTRING"){let A=Y;if(_){let X=new RegExp("\\n"+_,"g");A=A.replace(X,`
11
+ `)}if(f===0&&W?.length===3)A=A.replace(/^\n/,"");if(f===$.length-1&&W?.length===3)A=A.replace(/\n[^\S\n]*$/,"");if(u)A=A.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${A}"`,{len:Y.length,data:{quote:W}})}}if($.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let $=K3.exec(this.chunk);if(!$)return 0;let W=$[0],_=W.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(W))g(`radix prefix in '${W}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(W))g(`decimal literal '${W}' must not be prefixed with '0'`,{...U,len:_});if(/^0\d+/.test(W))g(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:_});let u=j3(W),f=u===1/0?"INFINITY":"NUMBER",F={parsedValue:u};if(f==="INFINITY")F.original=W;return this.emit(f,W,{len:_,data:F}),_}regexToken(){let $=this.matchWithInterpolations(N3,"///");if($){let{tokens:X,index:Q}=$,[w]=Q2.exec(this.chunk.slice(Q)),H=Q+w.length;if(X.length===1||!X.some((Z)=>Z[0]==="TOKENS")){let Z=(X[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${Z}/${w}`,{len:H,data:{delimiter:"///",heregex:{flags:w}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(X,{quote:"///",endOffset:H-w.length}),w)this.emit(",",",",{len:0}),this.emit("STRING",`"${w}"`,{len:w.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return H}let W=I3.exec(this.chunk);if(!W)return 0;let[_,U,u]=W,f=this.prev();if(f){if(f.spaced&&D1.has(f[0])&&(!u||/^\/=?\s/.test(_)))return 0;if(Y3.has(f[0])&&!(f.spaced&&D1.has(f[0])))return 0}if(!u)g("missing / (unclosed regex)",{row:this.row,col:this.col});let F=_.length,[Y]=Q2.exec(this.chunk.slice(F)),A=F+Y.length;if(!B3.test(Y))g(`invalid regular expression flags ${Y}`,{row:this.row,col:this.col+F,len:Y.length});return this.emit("REGEX",`/${U}/${Y}`,{len:A,data:{delimiter:"/"}}),A}jsToken(){if(this.chunk[0]!=="`")return 0;let $=S3.exec(this.chunk)||T3.exec(this.chunk);if(!$)return 0;let W=$[1],_=$[0].length;return this.emit("JS",W,{len:_,data:{here:$[0].startsWith("```")}}),_}literalToken(){let $=R3.exec(this.chunk),W=$?$[0]:this.chunk.charAt(0),_=W,U=this.prev();if(H3.test(W))this.tagParameters();if(W==="="&&U&&U[1]==="."&&!U.spaced){let u=this.tokens,f=u.length-2;while(f>=1&&u[f][0]==="PROPERTY"&&u[f-1]?.[1]===".")f-=2;if(f>=0&&(u[f][0]==="IDENTIFIER"||u[f][0]===")"||u[f][0]==="]")){let F=u.slice(f,u.length-1);U[0]="=",U[1]="=";for(let Y of F)this.tokens.push(H1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(H1(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||Z2.has(W))){if(W==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",W.length}if(W==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,_="TERMINATOR";else if(W==="|>")_="PIPE";else if(W==="::=")_="TYPE_ALIAS";else if(W==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(W==="::")_="TYPE_ANNOTATION";else if(W==="~=")_="COMPUTED_ASSIGN";else if(W===":=")_="REACTIVE_ASSIGN";else if(W==="<=>")_="BIND";else if(W==="~>")_="EFFECT";else if(W==="=!")_="READONLY_ASSIGN";else if(W==="*"&&(!U||U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let u=this.chunk.slice(1),f=/^@(\s*)=(?!=)/.exec(u);if(f){let Y=f[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let A=this.emit("PROPERTY","assign");return A.spaced=!0,this.emit("@","@"),this.emit(",",","),2+Y.length+1}let F=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(u);if(F){let Y=F[1],A=F[2],X=Y.split("."),Q=()=>{this.emit("IDENTIFIER",X[0]);for(let H=1;H<X.length;H++)this.emit(".","."),this.emit("PROPERTY",X[H])};Q(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),Q(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let w=this.prev();return w.mergeClose=!0,1+Y.length+A.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")_="EXPORT_ALL";else if(A3.has(W))_="MATH";else if(Z3.has(W))_="COMPARE";else if(Z2.has(W))_="COMPOUND_ASSIGN";else if(Q3.has(W))_="UNARY_MATH";else if(J3.has(W))_="SHIFT";else if(W==="?"&&U?.spaced)_="SPACE?";else if(W==="!?"&&U&&!U.spaced)_="DEFINED";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))_="?.";else if(U){if(W==="("&&!U.spaced&&D1.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";_="CALL_START"}if(W==="["&&!U.spaced&&K2.has(U[0])){if(_="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:W3[W],origin:[_,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(_,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,W=[];this.tokens[$][0]="PARAM_END";while($-- >0){let _=this.tokens[$];if(_[0]===")")W.push(_);else if(_[0]==="("||_[0]==="CALL_START")if(W.length)W.pop();else if(_[0]==="(")return _[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let W=this.tokens[$??this.tokens.length-1];if(W?.[0]==="DO")W[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,W)=>{if($[0]==="CALL_START")this.detectEnd(W+1,(_)=>_[0]===")"||_[0]==="CALL_END",(_)=>_[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,W)=>{if($[0]==="INDEX_START")this.detectEnd(W+1,(_)=>_[0]==="]"||_[0]==="INDEX_END",(_,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",_[0]="]";else _[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,W=null,_=null,U=(f,F)=>{return f[1]!==";"&&F3.has(f[0])&&!(f[0]==="TERMINATOR"&&_2.has(this.tokens[F+1]?.[0]))&&!(f[0]==="ELSE"&&$!=="THEN")||f[0]==="INDENT"&&!f.generated&&($==="->"||$==="=>")||f[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(F)&&!this.commaInImplicitObject(F)||Y2.has(f[0])&&(this.tokens[F-1]?.newLine||this.tokens[F-1]?.[0]==="OUTDENT")},u=(f,F)=>{let Y=this.tokens[F-1]?.[0]===","?F-1:F;this.tokens.splice(Y,0,_)};this.scanTokens((f,F,Y)=>{let[A]=f;if(A==="TERMINATOR"){if(this.tokens[F+1]?.[0]==="ELSE"&&this.tokens[F-1]?.[0]!=="OUTDENT")return Y.splice(F,1,...this.makeIndentation()),1;if(_2.has(this.tokens[F+1]?.[0]))return Y.splice(F,1),0}if(A==="CATCH")for(let X=1;X<=2;X++){let Q=this.tokens[F+X]?.[0];if(Q==="OUTDENT"||Q==="TERMINATOR"||Q==="FINALLY")return Y.splice(F+X,0,...this.makeIndentation()),2+X}if((A==="->"||A==="=>")&&(this.tokens[F+1]?.[0]===","||this.tokens[F+1]?.[0]==="]"))return[W,_]=this.makeIndentation(),Y.splice(F+1,0,W,_),1;if(F2.has(A)&&this.tokens[F+1]?.[0]!=="INDENT"&&!(A==="ELSE"&&this.tokens[F+1]?.[0]==="IF")){if($=A,[W,_]=this.makeIndentation(),A==="THEN")W.fromThen=!0;if(Y.splice(F+1,0,W),this.detectEnd(F+2,U,u),A==="THEN")Y.splice(F,1);return 1}return 1})}tagPostfixConditionals(){let $=null,W=(U,u)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!F2.has(this.tokens[u-1]?.[0])},_=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)$[0]="POST_"+$[0]};this.scanTokens((U,u)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;return $=U,this.detectEnd(u+1,W,_),1})}addImplicitBracesAndParens(){let $=[],W=!1;this.scanTokens((_,U,u)=>{let[f]=_,F=u[U-1]||[],Y=u[U+1]||[],[A]=F,[X]=Y,Q=U,w=(R)=>U-Q+R,H=()=>$[$.length-1],Z=(R)=>R?.[2]?.ours,M=()=>Z(H())&&H()?.[0]==="(",J=()=>Z(H())&&H()?.[0]==="{",K=(R)=>{$.push(["(",R,{ours:!0}]),u.splice(R,0,x("CALL_START","("))},D=()=>{$.pop(),u.splice(U,0,x("CALL_END",")")),U+=1},O=(R,G={})=>{$.push(["{",R,{sameLine:!0,startsLine:G.startsLine??!0,ours:!0}]);let I=x("{","{");if(!I.data)I.data={};I.data.generated=!0,u.splice(R,0,I)},q=(R)=>{R=R??U,$.pop(),u.splice(R,0,x("}","}")),U+=1};if((M()||J())&&_3.has(f))return $.push(["CONTROL",U,{ours:!0}]),w(1);if(f==="INDENT"&&Z(H())){if(A!=="=>"&&A!=="->"&&A!=="["&&A!=="("&&A!==","&&A!=="{"&&A!=="ELSE"&&A!=="=")while(M()||J()&&A!==":")if(M())D();else q();if(H()?.[2]?.ours&&H()[0]==="CONTROL")$.pop();return $.push([f,U]),w(1)}if(d.has(f))return $.push([f,U]),w(1);if(k.has(f)){while(Z(H()))if(M())D();else if(J())q();else $.pop();$.pop()}if(C1.has(f)&&_.spaced&&(M1.has(X)||X==="..."&&M1.has(u[U+2]?.[0])||f3.has(X)&&!Y.spaced&&!Y.newLine)&&!((f==="]"||f==="}")&&(X==="->"||X==="=>")))return K(U+1),w(2);if(C1.has(f)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return K(U+1),$.push(["INDENT",U+2]),w(3);if(f==="SPACE?")W=!0;if(f===":"){if(W)return W=!1,w(1);let R=k.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")R=U-2;let G=R<=0||U1.has(this.tokens[R-1]?.[0])||this.tokens[R-1]?.newLine;if(H()){let[I,B]=H(),N=$[$.length-2];if((I==="{"||I==="INDENT"&&N?.[0]==="{"&&!Z(N))&&(G||this.tokens[R-1]?.[0]===","||this.tokens[R-1]?.[0]==="{"||this.tokens[R]?.[0]==="{"))return w(1)}return O(R,{startsLine:!!G}),w(2)}if(U1.has(f))for(let R=$.length-1;R>=0;R--){if(!Z($[R]))break;if($[R][0]==="{")$[R][2].sameLine=!1}let z=A==="OUTDENT"||F.newLine,E=f==="||"||f==="&&",P=!1;if(E){let R=U+1,G=u[R]?.[0];if(G==="("||G==="["||G==="{"){for(let I=1;++R<u.length&&I>0;)if(G=u[R][0],G==="("||G==="["||G==="{")I++;else if(G===")"||G==="]"||G==="}")I--}else if(G&&G!=="TERMINATOR"&&G!=="OUTDENT"&&G!==",")R++;P=u[R]?.[0]===","}if($3.has(f)&&!P||Y2.has(f)&&z)while(Z(H())){let[R,,{sameLine:G,startsLine:I}]=H();if(M()&&A!==",")D();else if(J()&&!E&&G&&f!=="TERMINATOR"&&A!==":")q();else if(J()&&f==="TERMINATOR"&&A!==","&&!(I&&this.looksObjectish(U+1)))q();else if(H()?.[2]?.ours&&H()[0]==="CONTROL"&&u[H()[1]]?.[0]==="CLASS"&&f==="TERMINATOR")$.pop();else break}if(f===","&&!this.looksObjectish(U+1)&&J()&&(X!=="TERMINATOR"||!this.looksObjectish(U+2))){let R=X==="OUTDENT"?1:0;while(J())q(U+R)}return w(1)})}addImplicitCallCommas(){let $=0,W=0,_=this.tokens;while(W<_.length){let U=_[W][0],u=W>0?_[W-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&U3.has(u))_.splice(W,0,x(",",",")),W++;W++}}scanTokens($){let W=0;while(W<this.tokens.length)W+=$.call(this,this.tokens[W],W,this.tokens)}detectEnd($,W,_,U={}){let u=0;while($<this.tokens.length){let f=this.tokens[$];if(u===0&&W.call(this,f,$))return _.call(this,f,$);if(d.has(f[0]))u++;if(k.has(f[0]))u--;if(u<0){if(U.returnOnNegativeLevel)return;return _.call(this,f,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let W=0;W<$.length;W++){if(!$[W].mergeClose)continue;let _=0;for(let U=W+1;U<$.length;U++){let u=$[U][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")_++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")_--;if(_<0||_===0&&u==="TERMINATOR"){$.splice(U,0,x("CALL_END",")",$[U-1]));break}if(U===$.length-1){$.splice(U+1,0,x("CALL_END",")",$[U]));break}}}}commaInImplicitCall($){let W=0;for(let _=$-1;_>=0;_--){let U=this.tokens[_][0];if(k.has(U)){W++;continue}if(d.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(C1.has(U)&&this.tokens[_].spaced){let u=this.tokens[_+1]?.[0];return M1.has(u)||u==="..."&&M1.has(this.tokens[_+2]?.[0])}}return!1}commaInImplicitObject($){let W=0;for(let _=$-1;_>=0;_--){let U=this.tokens[_][0];if(k.has(U)){W++;continue}if(d.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&_>0&&this.tokens[_-1][0]==="PROPERTY")return this.looksObjectish($+1);if(U1.has(U))return!1}return!1}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(d.has(this.tokens[$]?.[0])){let W=null;if(this.detectEnd($+1,(_)=>k.has(_[0]),(_,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards($,W){let _=new Set(W),U=[];while($>=0){let u=this.tokens[$]?.[0];if(!U.length&&_.has(u))return!0;if(k.has(u))U.push(u);if(d.has(u)&&U.length)U.pop();if(!U.length&&(d.has(u)&&!this.tokens[$]?.generated||U1.has(u)))break;$--}return!1}makeIndentation($){let W=x("INDENT",2),_=x("OUTDENT",2);if($)W.generated=_.generated=!0,W.origin=_.origin=$;else W.explicit=_.explicit=!0;return[W,_]}}u2(m);var h3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,Block:76,READONLY_ASSIGN:77,EFFECT:78,SimpleAssignable:79,Array:80,Object:81,ThisProperty:82,".":83,"?.":84,INDEX_START:85,INDEX_END:86,Slice:87,ES6_OPTIONAL_INDEX:88,"{":89,ObjAssignable:90,":":91,FOR:92,ForVariables:93,FOROF:94,OptComma:95,"}":96,WHEN:97,OWN:98,AssignList:99,AssignObj:100,ObjRestValue:101,SimpleObjAssignable:102,"[":103,"]":104,"@":105,"...":106,ObjSpreadExpr:107,SUPER:108,Arguments:109,DYNAMIC_IMPORT:110,Elisions:111,ArgElisionList:112,OptElisions:113,ArgElision:114,Arg:115,Elision:116,RangeDots:117,"..":118,DEF:119,CALL_START:120,ParamList:121,CALL_END:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,DEFINED:195,"--":196,"++":197,MATH:198,"**":199,SHIFT:200,COMPARE:201,"&":202,"^":203,"|":204,"||":205,"??":206,"&&":207,"!?":208,PIPE:209,RELATION:210,"SPACE?":211,COMPOUND_ASSIGN:212},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",77:"READONLY_ASSIGN",78:"EFFECT",83:".",84:"?.",85:"INDEX_START",86:"INDEX_END",88:"ES6_OPTIONAL_INDEX",89:"{",91:":",92:"FOR",94:"FOROF",96:"}",97:"WHEN",98:"OWN",103:"[",104:"]",105:"@",106:"...",108:"SUPER",110:"DYNAMIC_IMPORT",118:"..",119:"DEF",120:"CALL_START",122:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"DEFINED",196:"--",197:"++",198:"MATH",199:"**",200:"SHIFT",201:"COMPARE",202:"&",203:"^",204:"|",205:"||",206:"??",207:"&&",208:"!?",209:"PIPE",210:"RELATION",211:"SPACE?",212:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,32,18,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,32,18,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,55,1,5,48,5,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,133,105,106,-13,-13,-13,-13,136,137,138,-13,139,-13,-13,-13,-13,-13,-13,-13,134,-13,140,-13,-13,135,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,11,1,1,1,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,141,142,143,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,32,18,16,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,32,18,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,148,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,149,-173,-173,150,151,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,160,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,159,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,162,163,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,165,166,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,167,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,173,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,174,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,175,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,176,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,177,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,181,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,182,183,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,184,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,186,185,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,187,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,188,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,10,161,189,2,66,10,161,190,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,194,153,104,155,156,154,99,191,192,83,157,196,193,195,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,197,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,198,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,178,179,180,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,161,-304,102,103,-304,199,201,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,168,-304,169,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,200,172,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,202,2,66,10,161,203,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,204,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,205,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,206,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,207,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,168,-224,169,90,91,86,88,89,82,-224,69,64,65,208,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,170,171,172,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,209,104,2,55,1,210,104,6,15,19,89,2,1,1,212,211,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,213,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,214,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,168,-221,169,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,170,171,172,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,29,88,1,5,215,219,104,105,106,218,216,217,220,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,14,2,3,2,9,4,2,1,1,7,1,1,1,32,2,1,10,4,4,178,179,227,228,229,230,222,223,224,225,233,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,226,104,105,106,102,103,53,234,72,73,93,221,83,87,84,85,66,168,169,90,91,86,88,89,82,61,67,62,231,232,172,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,235,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,236,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,237,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,238,87,248,84,85,239,240,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,83,2,24,11,250,251,249,140,2,109,11,252,140,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,55,1,5,51,1,1,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,253,254,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,83,255,1,83,256,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,9,11,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,257,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,258,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,259,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,260,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,262,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,261,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,268,100,101,270,104,271,254,105,106,-109,-109,-109,272,263,-109,264,269,273,265,266,267,274,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,7,14,2,3,2,13,2,1,1,7,1,1,1,53,178,179,180,34,35,36,275,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,234,72,73,93,99,83,87,84,85,168,169,90,91,86,88,89,82,172,64,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,56,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,279,105,106,276,277,278,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-5,280,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,281,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,282,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,283,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,284,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,285,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,286,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,287,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,288,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,289,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,292,164,290,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,291,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,295,164,293,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,294,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,298,164,296,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,297,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,299,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,300,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,301,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,302,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,303,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,304,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,308,153,104,155,156,154,99,305,306,83,157,196,307,195,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,309,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,310,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,109,11,311,140,2,57,1,312,254,2,57,1,313,254,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,314,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,319,77,78,79,80,81,100,101,92,104,105,106,315,102,103,317,53,52,72,73,93,316,99,59,83,87,321,84,85,318,320,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,85,322,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,323,42,43,90,91,247,324,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,328,254,2,57,1,329,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,330,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,331,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,333,332,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,334,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,336,335,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,337,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,339,338,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,340,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,342,341,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,343,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,103,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,345,344,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,346,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,348,349,-217,-217,-217,347,6,6,60,1,5,50,2,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,49,2,-178,-178,-178,-178,350,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,153,104,-181,-181,-181,155,156,154,99,158,157,-181,-181,351,11,6,60,1,5,1,21,28,2,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,21,28,2,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,21,28,2,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,21,28,2,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,253,254,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,238,87,248,84,85,239,240,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,32,18,16,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,353,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,352,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,32,18,16,-367,-367,-367,-367,-367,-367,-367,-367,-367,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,32,18,16,-368,-368,-368,-368,-368,-368,-368,-368,-368,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,354,-173,-173,150,151,2,66,10,161,159,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,162,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,165,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,5,15,108,2,1,1,212,168,169,90,91,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,125,126,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,-377,2,81,8,355,99,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,10,54,5,1,23,1,1,3,21,11,11,133,105,106,136,137,138,139,134,140,135,3,83,1,1,141,142,143,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-86,-86,-380,-380,-380,-380,-86,-86,-86,-86,-86,-86,-86,-86,-380,-86,-380,-380,-380,-380,-380,-380,-380,-380,-86,-380,-380,-86,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-86,-86,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,358,356,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,357,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,359,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,66,10,68,161,360,361,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,94,69,2,2,366,365,367,368,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,369,158,157,196,195,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,370,158,157,196,195,3,66,10,88,161,371,372,5,72,22,69,2,2,373,-302,-302,-302,-302,6,72,1,21,69,2,2,-300,374,-300,-300,-300,-300,23,66,26,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,379,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,60,1,5,53,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,161,-308,-308,-86,-86,-86,380,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,3,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,387,99,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,389,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,66,10,44,161,391,390,2,66,10,161,392,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,393,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,30,83,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,76,3,2,-109,268,100,101,408,104,271,254,105,106,407,-109,-109,272,263,404,264,269,273,265,266,267,274,409,405,406,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,411,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,142,413,57,1,5,53,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,145,146,147,148,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,20,12,2,11,1,4,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,321,416,320,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,417,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,32,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,424,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,32,-150,-150,-150,-150,-150,6,6,60,1,5,32,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,32,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,3,2,9,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-202,426,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,427,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,428,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,430,254,2,57,1,431,254,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,432,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,433,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,161,-264,-264,436,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,441,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,57,1,45,253,254,442,6,6,60,1,5,19,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,24,-110,-110,-110,-110,-110,11,6,60,1,5,1,10,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,10,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,10,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,24,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,23,1,7,13,3,2,1,2,24,3,446,448,447,270,104,271,254,445,272,99,443,87,444,449,450,86,82,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,279,105,106,452,453,278,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,110,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,-385,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,125,126,-386,-386,-386,-386,-386,-386,-386,-386,-386,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,109,108,110,111,-387,-387,-387,-387,-387,-387,118,-387,120,-387,-387,-387,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,112,-388,-388,-388,-388,-388,118,-388,120,-388,122,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,113,-389,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,114,-390,-390,-390,118,-390,120,-390,122,-390,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,125,126,-391,-391,-391,-391,-391,-391,109,108,110,111,112,113,114,115,-391,-391,118,-391,120,-391,122,-391,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,125,126,-399,-399,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,-399,118,119,120,-399,122,-399,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,-398,120,-398,122,-398,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,127,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,124,125,126,96,97,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,113,114,115,116,117,118,119,120,-402,122,-402,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,125,126,-403,-403,-403,-403,-403,-403,109,108,110,111,112,-403,-403,-403,-403,-403,118,-403,120,-403,-403,-403,23,91,1,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,460,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,463,158,157,196,195,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,464,158,157,196,195,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,86,6,14,11,1,30,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,321,467,320,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,468,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,321,84,85,318,320,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,86,470,1,86,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,472,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,9,8,3,3,11,2,3,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,474,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,50,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,42,43,90,91,247,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,480,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,481,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,482,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,483,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,484,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,485,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,486,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,487,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,488,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,3,125,1,1,489,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,153,104,-218,-218,155,156,154,99,-218,158,-218,157,152,-218,490,151,2,6,60,491,492,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,493,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,56,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,494,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,348,349,-217,-217,-217,495,1,67,496,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,125,126,-405,-405,-405,-405,-405,-405,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,497,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,498,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,499,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,500,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,10,161,501,6,55,1,10,10,5,8,502,104,161,504,503,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,505,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,506,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,507,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,508,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,509,1,165,510,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,511,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,153,104,155,156,154,99,158,157,196,512,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,513,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,155,1,1,514,377,378,4,67,78,11,1,515,516,517,378,3,67,78,12,-251,-251,-251,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,519,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,518,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,161,-306,-306,520,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,521,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,2,6,61,523,522,2,6,61,-314,-314,24,6,61,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,524,1,67,525,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,526,-173,-173,150,151,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,1,67,527,3,54,5,1,528,105,106,3,89,89,5,530,529,220,3,54,5,1,531,105,106,1,142,532,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,533,-217,-217,-217,5,6,60,1,5,24,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,535,399,402,6,6,60,1,5,24,85,-333,-333,-333,-333,-333,536,6,6,60,1,5,24,85,-335,-335,-335,-335,-335,537,2,55,1,538,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,539,-339,-339,-339,-339,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,540,-217,-217,-217,5,6,60,1,5,24,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,543,104,407,409,542,406,12,6,60,1,5,1,10,1,1,6,5,24,61,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,544,6,6,60,1,5,24,85,-365,-365,-365,-365,-365,545,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,547,546,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,548,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,549,99,3,54,5,1,550,105,106,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,551,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,552,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,32,-151,-151,-151,-151,-151,2,66,38,554,553,116,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-218,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,244,53,52,72,73,93,99,59,-218,83,-218,87,248,84,85,556,555,245,241,66,-218,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,37,557,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,558,-217,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,559,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,560,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,561,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,562,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,563,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,564,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,6,60,30,567,568,566,23,6,39,8,1,1,1,1,1,1,1,6,1,15,8,6,4,1,1,1,1,1,1,16,-218,268,100,101,270,104,271,254,105,106,-218,-218,272,570,-218,569,273,265,266,-218,267,274,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,571,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,572,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,573,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,574,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,575,140,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,577,578,579,-128,576,140,9,6,60,1,5,11,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,11,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,11,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,11,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,83,2,24,11,250,251,580,140,2,109,11,581,140,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,56,1,5,53,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,582,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,583,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-62,-62,-62,-62,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,584,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,66,585,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,586,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,587,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,588,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,589,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,590,1,165,591,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,592,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,593,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,594,127,321,467,320,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,595,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,19,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,596,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,597,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,598,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,3,6,60,56,600,601,599,112,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,9,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,-218,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,248,84,85,602,66,-218,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,603,-217,-217,-217,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,604,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,605,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,606,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,609,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,161,102,103,608,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,50,2,-175,-175,-175,-175,-175,-175,11,55,1,24,1,1,7,14,2,1,22,1,153,104,155,156,154,99,158,157,152,610,151,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,153,104,-173,-173,-173,155,156,154,99,158,157,152,611,-173,-173,150,151,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,56,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,612,90,91,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,613,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,125,126,-407,-407,-407,-407,-407,-407,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,614,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,161,615,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,161,616,2,66,10,161,617,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,26,66,10,16,5,51,1,9,1,1,4,28,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,618,127,619,124,125,126,96,97,620,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,621,127,622,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,623,127,624,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,625,127,626,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,627,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,628,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,629,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-303,-303,-303,-303,27,72,20,2,54,1,9,1,1,3,2,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,630,631,517,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,2,66,10,161,632,3,67,78,12,-252,-252,-252,3,66,6,4,161,634,633,24,66,6,20,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,161,-310,-310,635,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,3,1,-316,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-316,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,636,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,23,1,8,18,-217,-217,-217,348,349,-217,-217,637,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,638,6,55,1,10,113,1,2,401,104,400,639,399,402,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,54,5,1,640,105,106,3,6,60,30,642,643,641,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,644,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,645,-217,-217,-217,2,55,1,646,104,2,55,1,647,104,1,142,-338,3,54,5,1,648,105,106,3,6,60,30,650,651,649,10,6,49,1,10,1,29,8,18,60,5,-218,543,104,-218,-218,-218,-218,-218,409,652,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,653,-217,-217,-217,6,6,60,1,5,24,85,-362,-362,-362,-362,-362,544,3,55,1,126,654,104,655,2,55,1,656,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,657,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,658,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,67,659,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,1,138,660,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,661,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,243,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,662,242,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,32,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,244,53,52,72,73,93,99,59,83,-153,87,248,84,85,419,418,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,244,53,52,72,73,93,99,59,83,87,248,84,85,425,663,245,241,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,554,664,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,665,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,10,161,666,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,667,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,668,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,268,100,101,270,104,271,254,105,106,272,570,669,273,265,266,267,274,23,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,-109,268,100,101,270,104,271,254,105,106,-109,-109,-109,272,570,-109,670,269,273,265,266,267,274,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,671,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,672,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,5,19,5,-124,-124,-124,-124,-124,-124,23,92,12,44,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,127,673,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,6,60,1,5,11,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,11,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,674,254,2,57,1,675,254,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,676,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,677,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,11,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,678,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,679,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,680,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,681,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,682,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,683,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,684,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,685,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,686,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,86,687,1,86,688,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,689,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,53,1,5,1,1,3,2,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,248,84,85,690,66,42,43,90,91,247,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,327,246,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,326,102,103,53,52,72,73,93,99,59,83,87,248,84,85,325,66,42,43,90,91,247,691,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,50,-195,-195,-195,-195,-195,3,6,60,1,600,601,692,1,86,693,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,32,18,16,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,50,2,-176,-176,-176,-176,-176,-176,8,6,60,1,5,23,1,8,18,-217,-217,-217,348,694,-217,-217,-217,2,66,10,161,608,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,695,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,696,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,697,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,698,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,699,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,700,127,701,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,702,127,703,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,66,10,161,704,1,67,705,4,6,61,78,12,706,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,707,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,10,161,708,3,54,5,1,709,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,710,-217,-217,-217,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,1,142,711,4,55,1,124,2,401,104,712,402,6,55,1,10,113,1,2,401,104,400,713,399,402,5,6,60,1,5,24,-329,-329,-329,-329,-329,3,6,60,1,642,643,714,5,6,60,1,5,24,-334,-334,-334,-334,-334,5,6,60,1,5,24,-336,-336,-336,-336,-336,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,715,-340,-340,-340,-340,4,55,1,126,5,543,104,409,716,6,55,1,10,116,3,2,543,104,407,409,717,406,5,6,60,1,5,24,-358,-358,-358,-358,-358,3,6,60,1,650,651,718,5,6,60,1,5,24,-363,-363,-363,-363,-363,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,719,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,720,-217,5,6,60,1,5,32,-147,-147,-147,-147,-147,5,6,60,1,5,32,-148,-148,-148,-148,-148,1,86,721,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,308,153,104,155,156,154,99,722,723,83,157,196,307,195,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,724,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,725,-217,-217,-217,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,726,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,565,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,727,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,11,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,11,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,86,6,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,728,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,729,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,65,730,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,731,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,732,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,733,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,734,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,735,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,736,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,737,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,738,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,86,739,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,740,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,491,492,741,25,66,10,16,56,1,9,1,1,4,28,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,742,127,124,125,126,96,97,743,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,10,16,5,51,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,744,127,745,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,746,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,747,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,748,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,749,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,750,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,67,751,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,3,67,78,12,-254,-254,-254,24,66,6,20,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,30,642,643,752,3,54,5,1,753,105,106,5,6,60,1,5,24,-330,-330,-330,-330,-330,8,6,60,1,5,23,1,8,18,-217,-217,-217,534,754,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,3,54,5,1,755,105,106,5,6,60,1,5,24,-359,-359,-359,-359,-359,8,6,60,1,5,23,1,8,18,-217,-217,-217,541,756,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,554,757,53,1,5,53,1,5,1,1,5,11,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,94,69,2,2,758,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,153,104,155,156,154,99,759,158,157,196,195,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,567,568,760,27,6,60,1,5,20,4,52,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-119,-119,-119,-119,-119,9,6,60,1,5,11,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,25,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,761,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,59,1,2,2,-61,-61,-61,-61,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,762,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,763,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,764,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,765,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,62,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,600,601,766,6,6,60,1,5,50,2,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,767,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,768,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,769,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,770,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,142,771,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,3,6,60,1,642,643,772,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,6,60,1,650,651,773,5,6,60,1,5,32,-149,-149,-149,-149,-149,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,774,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,94,775,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,776,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,777,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,778,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,779,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,161,780,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,54,5,1,781,105,106,5,6,60,1,5,24,-332,-332,-332,-332,-332,5,6,60,1,5,24,-361,-361,-361,-361,-361,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,784,-288,-288,-288,-288,782,-288,783,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,785,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,9,6,60,1,5,11,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,1,96,786,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,787,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,6,6,60,1,29,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,784,-290,-290,-290,-290,788,-290,789,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,784,-289,-289,-289,-289,790,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,791,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,3,1,792,164,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,168,169,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,170,171,172,46,47,48,50,51,1,96,793,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,784,-291,-291,-291,-291,794,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,96,795,58,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],W=[],_=0,U,u,f,F;while(_<$.length){U=$[_++],u={},f=0,F=[];while(U--)f+=$[_++],F.push(f);for(f of F)u[f]=$[_++];W.push(u)}return W})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:($,W,_,U)=>{let u=W,f=W.length-1;switch($){case 1:return["program"];case 2:return["program",...u[f]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 251:case 302:case 314:case 328:case 357:return[u[f]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...u[f-2],u[f]];case 5:case 60:case 157:case 316:return u[f-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365:return u[f];case 47:return"undefined";case 48:return"null";case 57:return["str",...u[f-1]];case 59:case 151:case 155:case 252:return[...u[f-1],u[f]];case 61:case 193:case 197:case 331:case 360:return u[f-2];case 62:return"";case 65:return["regex",u[f-1]];case 66:return["regex-index",u[f-2],u[f]];case 67:return["regex-index",u[f],null];case 68:return["=",u[f-2],u[f]];case 69:return["=",u[f-3],u[f]];case 70:return["=",u[f-4],u[f-1]];case 71:return["state",u[f-2],u[f]];case 72:return["state",u[f-3],u[f]];case 73:return["state",u[f-4],u[f-1]];case 74:case 76:return["computed",u[f-2],u[f]];case 75:return["computed",u[f-3],u[f]];case 77:return["readonly",u[f-2],u[f]];case 78:return["readonly",u[f-3],u[f]];case 79:return["readonly",u[f-4],u[f-1]];case 80:case 82:return["effect",u[f-2],u[f]];case 81:return["effect",u[f-3],u[f]];case 83:case 84:case 85:return["effect",null,u[f]];case 91:case 100:case 138:return[".",u[f-2],u[f]];case 92:case 101:case 139:return["?.",u[f-2],u[f]];case 93:case 95:case 102:case 140:return["[]",u[f-3],u[f-1]];case 94:case 96:case 103:case 141:return["[]",u[f-5],u[f-2]];case 97:return[u[f-1][0],u[f-3],...u[f-1].slice(1)];case 98:return["optindex",u[f-4],u[f-1]];case 99:return["optindex",u[f-6],u[f-2]];case 104:return["object-comprehension",u[f-8],u[f-6],[["for-of",u[f-4],u[f-2],!1]],[]];case 105:return["object-comprehension",u[f-10],u[f-8],[["for-of",u[f-6],u[f-4],!1]],[u[f-2]]];case 106:return["object-comprehension",u[f-9],u[f-7],[["for-of",u[f-4],u[f-2],!0]],[]];case 107:return["object-comprehension",u[f-11],u[f-9],[["for-of",u[f-6],u[f-4],!0]],[u[f-2]]];case 108:return["object",...u[f-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 330:case 359:return[...u[f-3],u[f]];case 113:case 177:case 198:case 332:case 361:return[...u[f-5],...u[f-2]];case 114:return[u[f],u[f],null];case 116:return[u[f-2],u[f],":"];case 117:return[u[f-4],u[f-1],":"];case 118:return[u[f-2],u[f],"="];case 119:return[u[f-4],u[f-1],"="];case 124:return["dynamicKey",u[f-1]];case 125:return["[]","this",u[f-1]];case 127:case 128:case 186:return["...",u[f]];case 134:case 190:return["super",...u[f]];case 135:case 136:case 137:case 188:case 191:return[u[f-1],...u[f]];case 142:return["array"];case 143:return["array",...u[f-1]];case 144:return["array",...u[f-2],...u[f-1]];case 146:return[...u[f-2],...u[f]];case 147:return[...u[f-3],...u[f]];case 148:return[...u[f-2],...u[f-1]];case 149:return[...u[f-5],...u[f-4],...u[f-2],...u[f-1]];case 153:return[...u[f]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[u[f-2],u[f-3],u[f-1]];case 161:case 385:case 387:case 388:case 403:case 405:return[u[f-1],u[f-2],u[f]];case 162:return[u[f],u[f-1],null];case 163:return[u[f-1],null,u[f]];case 164:return[u[f],null,null];case 165:return["def",u[f-4],u[f-2],u[f]];case 166:return["def",u[f-1],[],u[f]];case 167:case 169:return[u[f-1],u[f-3],u[f]];case 168:case 170:return[u[f-1],[],u[f]];case 179:case 301:return["default",u[f-2],u[f]];case 180:return["rest",u[f]];case 181:return["expansion"];case 187:return["tagged-template",u[f-1],u[f]];case 189:return["optcall",u[f-2],...u[f]];case 205:case 206:return"this";case 207:return[".","this",u[f]];case 208:return[".","super",u[f]];case 209:return["[]","super",u[f-1]];case 210:return["[]","super",u[f-2]];case 211:return[".","new",u[f]];case 212:return[".","import",u[f]];case 213:return["block"];case 214:return["block",...u[f-1]];case 215:return u[f-1].length===1?u[f-1][0]:["block",...u[f-1]];case 216:return u[f-2].length===1?u[f-2][0]:["block",...u[f-2]];case 219:return["return",u[f]];case 220:return["return",u[f-1]];case 221:return["return"];case 222:return["throw",u[f]];case 223:return["throw",u[f-1]];case 224:return["yield"];case 225:return["yield",u[f]];case 226:return["yield",u[f-1]];case 227:return["yield-from",u[f]];case 228:return["if",u[f-1],u[f]];case 229:return u[f-4].length===3?["if",u[f-4][1],u[f-4][2],["if",u[f-1],u[f]]]:[...u[f-4],["if",u[f-1],u[f]]];case 230:return["if",["!",u[f-1]],u[f]];case 231:return["if",["!",u[f-3]],u[f-2],u[f]];case 233:return u[f-2].length===3?["if",u[f-2][1],u[f-2][2],u[f]]:[...u[f-2],u[f]];case 235:case 236:return["if",u[f],[u[f-2]]];case 237:return["?:",u[f-4],u[f-6],u[f-1]];case 238:case 239:return["if",["!",u[f]],[u[f-2]]];case 240:return["try",u[f]];case 241:return["try",u[f-1],u[f]];case 242:return["try",u[f-2],u[f]];case 243:return["try",u[f-3],u[f-2],u[f]];case 244:case 245:case 367:case 370:case 372:return[u[f-1],u[f]];case 246:return[null,u[f]];case 247:return["switch",u[f-3],u[f-1],null];case 248:return["switch",u[f-5],u[f-3],u[f-1]];case 249:return["switch",null,u[f-1],null];case 250:return["switch",null,u[f-3],u[f-1]];case 253:return["when",u[f-1],u[f]];case 254:return["when",u[f-2],u[f-1]];case 255:return["while",u[f]];case 256:return["while",u[f-2],u[f]];case 257:return["while",["!",u[f]]];case 258:return["while",["!",u[f-2]],u[f]];case 259:return u[f-1].length===2?[u[f-1][0],u[f-1][1],u[f]]:[u[f-1][0],u[f-1][1],u[f-1][2],u[f]];case 260:case 261:return u[f].length===2?[u[f][0],u[f][1],[u[f-1]]]:[u[f][0],u[f][1],u[f][2],[u[f-1]]];case 263:return["loop",u[f]];case 264:return["loop",[u[f]]];case 265:return["loop-n",u[f-1],u[f]];case 266:return["for-in",u[f-3],u[f-1],null,null,u[f]];case 267:return["for-in",u[f-5],u[f-3],null,u[f-1],u[f]];case 268:return["for-in",u[f-5],u[f-3],u[f-1],null,u[f]];case 269:return["for-in",u[f-7],u[f-5],u[f-1],u[f-3],u[f]];case 270:return["for-in",u[f-7],u[f-5],u[f-3],u[f-1],u[f]];case 271:return["for-of",u[f-3],u[f-1],!1,null,u[f]];case 272:return["for-of",u[f-5],u[f-3],!1,u[f-1],u[f]];case 273:return["for-of",u[f-3],u[f-1],!0,null,u[f]];case 274:return["for-of",u[f-5],u[f-3],!0,u[f-1],u[f]];case 275:return["for-as",u[f-3],u[f-1],!1,null,u[f]];case 276:return["for-as",u[f-5],u[f-3],!1,u[f-1],u[f]];case 277:case 279:return["for-as",u[f-3],u[f-1],!0,null,u[f]];case 278:case 280:return["for-as",u[f-5],u[f-3],!0,u[f-1],u[f]];case 281:return["for-in",[],u[f-1],null,null,u[f]];case 282:return["for-in",[],u[f-3],u[f-1],null,u[f]];case 283:return["comprehension",u[f-4],[["for-in",u[f-2],u[f],null]],[]];case 284:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],null]],[u[f]]];case 285:return["comprehension",u[f-6],[["for-in",u[f-4],u[f-2],u[f]]],[]];case 286:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f]]],[u[f-2]]];case 287:return["comprehension",u[f-8],[["for-in",u[f-6],u[f-4],u[f-2]]],[u[f]]];case 288:return["comprehension",u[f-4],[["for-of",u[f-2],u[f],!1]],[]];case 289:return["comprehension",u[f-6],[["for-of",u[f-4],u[f-2],!1]],[u[f]]];case 290:return["comprehension",u[f-5],[["for-of",u[f-2],u[f],!0]],[]];case 291:return["comprehension",u[f-7],[["for-of",u[f-4],u[f-2],!0]],[u[f]]];case 292:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!1,null]],[]];case 293:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!1,null]],[u[f]]];case 294:return["comprehension",u[f-5],[["for-as",u[f-2],u[f],!0,null]],[]];case 295:return["comprehension",u[f-7],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 296:return["comprehension",u[f-4],[["for-as",u[f-2],u[f],!0,null]],[]];case 297:return["comprehension",u[f-6],[["for-as",u[f-4],u[f-2],!0,null]],[u[f]]];case 298:return["comprehension",u[f-2],[["for-in",[],u[f],null]],[]];case 299:return["comprehension",u[f-4],[["for-in",[],u[f-2],u[f]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[u[f-2],u[f]];case 304:return["class",null,null];case 305:return["class",null,null,u[f]];case 306:return["class",null,u[f]];case 307:return["class",null,u[f-1],u[f]];case 308:return["class",u[f],null];case 309:return["class",u[f-1],null,u[f]];case 310:return["class",u[f-2],u[f]];case 311:return["class",u[f-3],u[f-1],u[f]];case 312:return["enum",u[f-1],u[f]];case 313:return["component",null,["block",...u[f-1]]];case 320:return["render",u[f]];case 321:case 324:return["import","{}",u[f]];case 322:case 323:return["import",u[f-2],u[f]];case 325:return["import",u[f-4],u[f]];case 326:return["import",[u[f-4],u[f-2]],u[f]];case 327:return["import",[u[f-7],u[f-4]],u[f]];case 338:return["*",u[f]];case 339:return["export","{}"];case 340:return["export",u[f-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",u[f]];case 345:return["export",["=",u[f-2],u[f]]];case 346:return["export",["=",u[f-3],u[f]]];case 347:return["export",["=",u[f-4],u[f-1]]];case 352:return["export-default",u[f]];case 353:return["export-default",u[f-1]];case 354:return["export-all",u[f]];case 355:return["export-from","{}",u[f]];case 356:return["export-from",u[f-4],u[f]];case 368:case 369:case 371:case 408:return["do-iife",u[f]];case 373:return["-",u[f]];case 374:return["+",u[f]];case 375:return["?",u[f-1]];case 376:return["defined",u[f-1]];case 377:return["await",u[f]];case 378:return["await",u[f-1]];case 379:return["--",u[f],!1];case 380:return["++",u[f],!1];case 381:return["--",u[f-1],!0];case 382:return["++",u[f-1],!0];case 383:return["+",u[f-2],u[f]];case 384:return["-",u[f-2],u[f]];case 386:return["**",u[f-2],u[f]];case 389:return["&",u[f-2],u[f]];case 390:return["^",u[f-2],u[f]];case 391:return["|",u[f-2],u[f]];case 392:case 393:case 394:case 395:case 396:case 397:return["control",u[f-1],u[f-2],u[f]];case 398:return["&&",u[f-2],u[f]];case 399:return["||",u[f-2],u[f]];case 400:return["??",u[f-2],u[f]];case 401:return["!?",u[f-2],u[f]];case 402:return["|>",u[f-2],u[f]];case 404:return["?:",u[f-4],u[f-2],u[f]];case 406:return[u[f-3],u[f-4],u[f-1]];case 407:return[u[f-2],u[f-3],u[f]]}},parseError($,W){let _,U,u,f,F,Y,A;if(W.recoverable)return this.trace($);else throw u=(W.line||0)+1,_=W.loc?.c||0,A=W.token?` (token: ${W.token})`:"",Y=W.text?` near '${W.text}'`:"",f=`line ${u}, column ${_}`,F=`Parse error at ${f}${A}${Y}: ${$}`,U=Error(F),U.hash=W,U},parse($){let W,_,U,u,f,F,Y,A,X,Q,w,H,Z,M,J,K,D,O,q,z,E,P,R,G,I,B;[z,B,Q]=[[0],[null],[]],[Z,I,R,P,K]=[this.parseTable,"",0,0,0],[_,W]=[2,1],A=Object.create(this.lexer),O={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];O.ctx[N]=T}if(A.setInput($,O.ctx),[O.ctx.lexer,O.ctx.parser]=[A,this],A.loc==null)A.loc={};G=A.loc,Q.push(G),this.parseError=typeof O.ctx.parseError==="function"?O.ctx.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let N;if(N=A.lex()||W,typeof N!=="number")N=this.symbolIds[N]||N;return N},E=M=q=U=J=H=F=w=f=null,D={};while(!0){if(q=z[z.length-1],E==null)E=Y();if(U=Z[q]?.[E],U==null){if(u="",!K)f=(()=>{let N=[];for(let T in Z[q]){if(!Object.hasOwn(Z[q],T))continue;if(this.tokenNames[T]&&T>_)N.push(`'${this.tokenNames[T]}'`)}return N})();throw u=(()=>{if(A.showPosition)return`Parse error on line ${R+1}:
12
+ ${A.showPosition()}
13
+ Expecting ${f.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${R+1}: Unexpected ${E===W?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(u,{text:A.match,token:this.tokenNames[E]||E,line:A.line,loc:G,expected:f})})(),Error(u)}if(U>0)if(z.push(E,U),B.push(A.text),Q.push(A.loc),E=null,!M){if([P,I,R,G]=[A.len,A.text,A.line,A.loc],K>0)K--}else[E,M]=[M,null];else if(U<0){if(F=this.ruleTable[-U*2+1],D.$=B[B.length-F],X=Q[Q.length-(F||1)],D._$={r:X.r,c:X.c},J=this.ruleActions.call(D,-U,B,Q,O.ctx),J!=null)D.$=J;if(Array.isArray(D.$))D.$.loc=D._$;if(F)z.length-=F*2,B.length-=F,Q.length-=F;z.push(this.ruleTable[-U*2]),B.push(D.$),Q.push(D._$),w=Z[z[z.length-2]][z[z.length-1]],z.push(w)}else if(U===0)return B[B.length-1]}},trace(){},ctx:{}},C3=($={})=>{let W=Object.create(h3);return Object.defineProperty(W,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),W},r=C3();var s3=r.parse.bind(r);var y3=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),W1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),R2=new Set([...y3,...W1]);var w2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]),b3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function v3($){for(let W of $){if(!Array.isArray(W))continue;let _=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(_==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function z1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function b1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function M2($,W,_){let U=_($);if(!/_frag\d+$/.test(U))return null;let u=[],f=new RegExp(`^${U.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let F of W){let Y=_(F).match(f);if(Y)u.push(Y[1])}return u.length>0?u:null}function D2($,W){W.prototype.rewriteRender=function(){let U=(Z,M,J)=>{let K=[Z,M];if(K.pre=0,K.data=null,K.loc=J?.loc??{r:0,c:0,n:0},K.spaced=!1,K.newLine=!1,K.generated=!0,J)K.origin=J;return K},u=!1,f=0,F=0,Y=[],A=(Z)=>{let M=Z.split("#")[0];return R2.has(M)},X=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},Q=(Z)=>{return A(Z)||X(Z)},w=(Z,M,J,K)=>{let D=1,O=M;while(O>=0&&D>0){let q=Z[O][0];if(q===J)D++;else if(q===K)D--;if(D>0)O--}return O},H=(Z,M)=>{let J=M;while(J>0){let K=Z[J-1][0];if(K==="TERMINATOR"||K==="RENDER")break;if(K==="INDENT"||K==="OUTDENT"){let D=Z[J][0];if(D==="CALL_END"||D===")"){J=w(Z,J-1,D,D==="CALL_END"?"CALL_START":"(");continue}break}if(K==="CALL_END"||K===")"){J=w(Z,J-2,K,K==="CALL_END"?"CALL_START":"(");continue}if(K==="INTERPOLATION_END"){J=w(Z,J-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(K==="STRING_END"){J=w(Z,J-2,"STRING_END","STRING_START");continue}J--}return Z[J]&&Z[J][0]==="IDENTIFIER"&&Q(Z[J][1])};this.scanTokens(function(Z,M,J){let K=Z[0],D=M<J.length-1?J[M+1]:null;if(K==="RENDER")return u=!0,f=F+1,1;if(K==="INDENT")return F++,1;if(K==="OUTDENT"){F--;let O=0;while(Y.length>0&&Y[Y.length-1]>F){let q=U("CALL_END",")",Z);J.splice(M+1+O,0,q),Y.pop(),O++}if(u&&F<f)u=!1;return 1+O}if(!u)return 1;if(K==="IDENTIFIER"&&!Z.spaced){let O=[Z[1]],q=M+1;while(q+1<J.length){let z=J[q],E=J[q+1];if(z[0]==="-"&&!z.spaced&&(E[0]==="IDENTIFIER"||E[0]==="PROPERTY")){if(O.push(E[1]),q+=2,E[0]==="PROPERTY")break}else break}if(O.length>1&&q>M+1&&J[q-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${O.join("-")}"`,J.splice(M+1,q-M-1),1}if(K==="."){let O=M>0?J[M-1]:null,q=O?O[0]:null;if(q==="INDENT"||q==="TERMINATOR"){if(D&&D[0]==="PROPERTY"){let z=U("IDENTIFIER","div",Z);return J.splice(M,0,z),2}if(!D||D[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(K==="IDENTIFIER"||K==="PROPERTY"){let O=J[M+1],q=J[M+2];if(O&&O[0]==="#"&&q&&(q[0]==="PROPERTY"||q[0]==="IDENTIFIER")){if(Z[1]=Z[1]+"#"+q[1],q.spaced)Z.spaced=!0;return J.splice(M+1,2),0}}if(K==="BIND"){let O=M>0?J[M-1]:null,q=J[M+1];if(O&&(O[0]==="IDENTIFIER"||O[0]==="PROPERTY")&&q&&q[0]==="IDENTIFIER")return O[1]=`__bind_${O[1]}__`,Z[0]=":",Z[1]=":",1}if(K==="@"){let O=M+1;if(O<J.length&&J[O][0]==="PROPERTY"){O++;while(O+1<J.length&&J[O][0]==="."&&J[O+1][0]==="PROPERTY")O+=2;if(O>M+2&&O<J.length&&J[O][0]===":"){let q=U("[","[",Z);J.splice(M,0,q);let z=U("]","]",J[O+1]);return J.splice(O+1,0,z),2}}}if(K==="."&&D&&D[0]==="("){let O=M>0?J[M-1]:null,q=O?O[0]:null,z=q==="INDENT"||q==="TERMINATOR",E=U("PROPERTY","__clsx",Z);D[0]="CALL_START";let P=1;for(let R=M+2;R<J.length&&P>0;R++)if(J[R][0]==="("||J[R][0]==="CALL_START")P++;else if(J[R][0]===")"){if(P--,P===0)J[R][0]="CALL_END"}else if(J[R][0]==="CALL_END")P--;if(z){let R=U("IDENTIFIER","div",Z);return J.splice(M,0,R),J.splice(M+2,0,E),3}else if(q===":")return J[M]=U("IDENTIFIER","__clsx",Z),1;else return J.splice(M+1,0,E),2}if(D&&D[0]==="INDENT"){if(K==="->"||K==="=>"||K==="CALL_START"||K==="(")return 1;let O=!1,q=M>0?J[M-1][0]:null,z=q==="IF"||q==="UNLESS"||q==="WHILE"||q==="UNTIL"||q==="WHEN",E=!1;if(K==="CALL_END"){let P=1;for(let R=M-1;R>=0&&P>0;R--)if(J[R][0]==="CALL_END")P++;else if(J[R][0]==="CALL_START"){if(P--,P===0&&R>0&&J[R-1][0]==="PROPERTY"&&J[R-1][1]==="__clsx")E=!0}}if(E)O=!0;else if(K==="IDENTIFIER"&&Q(Z[1])&&!z)O=!0;else if(K==="PROPERTY"||K==="STRING"||K==="STRING_END"||K==="CALL_END"||K===")")O=H(J,M);else if(K==="IDENTIFIER"&&M>1&&J[M-1][0]==="..."){if(H(J,M)){let P=U(",",",",Z),R=U("->","->",Z);return R.newLine=!0,J.splice(M+1,0,P,R),3}}if(O){let P=K==="PROPERTY"&&M>0&&(J[M-1][0]==="."||J[M-1][0]==="#");if(E){let R=U("CALL_START","(",Z),G=U("->","->",Z);return G.newLine=!0,J.splice(M+1,0,R,G),Y.push(F+1),3}else if(K==="IDENTIFIER"&&Q(Z[1])||P){let R=U("CALL_START","(",Z),G=U("->","->",Z);return G.newLine=!0,J.splice(M+1,0,R,G),Y.push(F+1),3}else{let R=U(",",",",Z),G=U("->","->",Z);return G.newLine=!0,J.splice(M+1,0,R,G),3}}}if(K==="IDENTIFIER"&&X(Z[1])&&D&&(D[0]==="OUTDENT"||D[0]==="TERMINATOR"))return J.splice(M+1,0,U("CALL_START","(",Z),U("CALL_END",")",Z)),3;return 1})};let _=$.prototype;_.localizeVar=function(U){let u=U.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return u=u.replace(/\bthis\b/g,"ctx"),u},_.isHtmlTag=function(U){let u=U.split("#")[0];return R2.has(u.toLowerCase())},_.isComponent=function(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)},_.collectTemplateClasses=function(U){let u=[],f=U;while(this.is(f,".")){let X=f[2];if(typeof X==="string"||X instanceof String)u.unshift(X.valueOf());f=f[1]}let F=typeof f==="string"?f:f instanceof String?f.valueOf():null;if(F===null)return{tag:null,classes:u,id:void 0};let[Y,A]=F.split("#");if(!Y)Y="div";return{tag:Y,classes:u,id:A}},_.transformComponentMembers=function(U){if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".","this",U],"value"];if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return[".","this",U];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let u=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(u))return[".",U,"value"];return U}if(U[0]==="."||U[0]==="?.")return[U[0],this.transformComponentMembers(U[1]),U[2]];if(U[0]==="->")return["=>",...U.slice(1).map((u)=>this.transformComponentMembers(u))];if(U[0]==="object")return["object",...U.slice(1).map((u)=>{if(Array.isArray(u)&&u.length>=2){let f=u[0],F=Array.isArray(f)?this.transformComponentMembers(f):f,Y=this.transformComponentMembers(u[1]);return[F,Y,u[2]]}return this.transformComponentMembers(u)})];return U.map((u)=>this.transformComponentMembers(u))},_.generateComponent=function(U,u,f,F){let[,Y]=u;this.usesTemplates=!0,this.usesReactivity=!0;let A=this.is(Y,"block")?Y.slice(1):[],X=[],Q=[],w=[],H=[],Z=[],M=[],J=null,K=new Set,D=new Set;for(let P of A){if(!Array.isArray(P))continue;let[R]=P;if(R==="state"){let G=z1(P[1]);if(G)X.push({name:G,value:P[2],isPublic:b1(P[1])}),K.add(G),D.add(G)}else if(R==="computed"){let G=z1(P[1]);if(G)Q.push({name:G,expr:P[2]}),K.add(G),D.add(G)}else if(R==="readonly"){let G=z1(P[1]);if(G)w.push({name:G,value:P[2],isPublic:b1(P[1])}),K.add(G)}else if(R==="="){let G=z1(P[1]);if(G)if(w2.has(G))Z.push({name:G,value:P[2]});else{let I=P[2];if(Array.isArray(I)&&(I[0]==="->"||I[0]==="=>"))H.push({name:G,func:I}),K.add(G);else X.push({name:G,value:I,isPublic:b1(P[1])}),K.add(G),D.add(G)}}else if(R==="effect")M.push(P);else if(R==="render")J=P;else if(R==="object")for(let G=1;G<P.length;G++){let I=P[G];if(!Array.isArray(I))continue;let[B,N]=I;if(typeof B==="string"&&w2.has(B))Z.push({name:B,value:N});else if(typeof B==="string")H.push({name:B,func:N}),K.add(B)}}let O=this.componentMembers,q=this.reactiveMembers;this.componentMembers=K,this.reactiveMembers=D;let z=[],E="";z.push("class extends __Component {"),z.push(" _init(props) {");for(let{name:P,value:R,isPublic:G}of w){let I=this.generateInComponent(R,"value");z.push(G?` this.${P} = props.${P} ?? ${I};`:` this.${P} = ${I};`)}for(let{name:P,value:R,isPublic:G}of X){let I=this.generateInComponent(R,"value");z.push(G?` this.${P} = __state(props.${P} ?? ${I});`:` this.${P} = __state(${I});`)}for(let{name:P,expr:R}of Q)if(this.is(R,"block")&&R.length>2){let G=this.transformComponentMembers(R),I=this.generateFunctionBody(G);z.push(` this.${P} = __computed(() => ${I});`)}else{let G=this.generateInComponent(R,"value");z.push(` this.${P} = __computed(() => ${G});`)}for(let P of M){let R=P[2],G=this.containsAwait(R)?"async ":"";if(this.is(R,"block")&&R.length>2){let I=this.transformComponentMembers(R),B=this.generateFunctionBody(I,[],!0);z.push(` __effect(${G}() => ${B});`)}else{let I=this.generateInComponent(R,"value");z.push(` __effect(${G}() => { ${I}; });`)}}z.push(" }");for(let{name:P,func:R}of H)if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let[,G,I]=R,B=Array.isArray(G)?G.map((j)=>this.formatParam(j)).join(", "):"",N=this.reactiveMembers?this.transformComponentMembers(I):I,T=this.containsAwait(I),L=this.generateFunctionBody(N,G||[]);z.push(` ${T?"async ":""}${P}(${B}) ${L}`)}for(let{name:P,value:R}of Z)if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let[,,G]=R,I=this.reactiveMembers?this.transformComponentMembers(G):G,B=this.containsAwait(G),N=this.generateFunctionBody(I,[]);z.push(` ${B?"async ":""}${P}() ${N}`)}if(J){let P=J[1],R=this.buildRender(P);if(R.blockFactories.length>0)E=R.blockFactories.join(`
14
14
 
15
15
  `)+`
16
16
 
17
- `;z.push(" _create() {");for(let P of R.createLines)z.push(` ${P}`);if(z.push(` return ${R.rootVar};`),z.push(" }"),R.setupLines.length>0){z.push(" _setup() {");for(let P of R.setupLines)z.push(` ${P}`);z.push(" }")}}if(z.push("}"),this.componentMembers=O,this.reactiveMembers=q,E)return`(() => {
17
+ `;z.push(" _create() {");for(let G of R.createLines)z.push(` ${G}`);if(z.push(` return ${R.rootVar};`),z.push(" }"),R.setupLines.length>0){z.push(" _setup() {");for(let G of R.setupLines)z.push(` ${G}`);z.push(" }")}}if(z.push("}"),this.componentMembers=O,this.reactiveMembers=q,E)return`(() => {
18
18
  ${E}return ${z.join(`
19
19
  `)};
20
20
  })()`;return z.join(`
21
- `)},F.generateInComponent=function(U,u){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`this.${U}.value`;if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return`this.${U}`;if(Array.isArray(U)&&this.reactiveMembers){let f=this.transformComponentMembers(U);return this.generate(f,u)}return this.generate(U,u)},F.generateRender=function(U,u,f,Y){throw Error("render blocks can only be used inside a component")},F.buildRender=function(U){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[];let u=this.is(U,"block")?U.slice(1):[U],f;if(u.length===0)f="null";else if(u.length===1)f=this.generateNode(u[0]);else{f=this.newElementVar("frag"),this._createLines.push(`${f} = document.createDocumentFragment();`);for(let Y of u){let A=this.generateNode(Y);this._createLines.push(`${f}.appendChild(${A});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:f}},F.newBlockVar=function(){return`create_block_${this._blockCount++}`},F.newElementVar=function(U="el"){return`this._${U}${this._elementCount++}`},F.newTextVar=function(){return`this._t${this._textCount++}`},F.generateNode=function(U){if(typeof U==="string"||U instanceof String){let J=U.valueOf();if(J.startsWith('"')||J.startsWith("'")||J.startsWith("`")){let D=this.newTextVar();return this._createLines.push(`${D} = document.createTextNode(${J});`),D}if(this.reactiveMembers&&this.reactiveMembers.has(J)){let D=this.newTextVar();return this._createLines.push(`${D} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${D}.data = this.${J}.value; });`),D}let[X,w]=J.split("#"),H=this.newElementVar(),Z=X||"div";if(W1.has(Z)||this._svgDepth>0)this._createLines.push(`${H} = document.createElementNS('http://www.w3.org/2000/svg', '${Z}');`);else this._createLines.push(`${H} = document.createElement('${Z}');`);if(w)this._createLines.push(`${H}.id = '${w}';`);return H}if(!Array.isArray(U)){let J=this.newElementVar("c");return this._createLines.push(`${J} = document.createComment('unknown');`),J}let[u,...f]=U,Y=typeof u==="string"?u:u instanceof String?u.valueOf():null;if(Y&&this.isComponent(Y))return this.generateChildComponent(Y,f);if(Y&&this.isHtmlTag(Y)){let[J,X]=Y.split("#");return this.generateTag(J||"div",[],f,X)}if(Y==="."){let[,J,X]=U;if(J==="this"&&typeof X==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(X)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${M}.data = this.${X}.value; });`),M}let K=this.newElementVar("slot");return this._createLines.push(`${K} = this.${X} instanceof Node ? this.${X} : (this.${X} != null ? document.createTextNode(String(this.${X})) : document.createComment(''));`),K}let{tag:w,classes:H,id:Z}=this.collectTemplateClasses(U);if(w&&this.isHtmlTag(w))return this.generateTag(w,H,[],Z);let D=this.newTextVar(),Q=this.generateInComponent(U,"value");return this._createLines.push(`${D} = document.createTextNode(String(${Q}));`),D}if(Array.isArray(u)){if(Array.isArray(u[0])&&u[0][0]==="."&&(u[0][2]==="__clsx"||u[0][2]instanceof String&&u[0][2].valueOf()==="__clsx")){let H=typeof u[0][1]==="string"?u[0][1]:u[0][1].valueOf(),Z=u.slice(1);return this.generateDynamicTag(H,Z,f)}let{tag:J,classes:X,id:w}=this.collectTemplateClasses(u);if(J&&this.isHtmlTag(J)){if(X.length===1&&X[0]==="__clsx")return this.generateDynamicTag(J,f,[]);return this.generateTag(J,X,f,w)}}if(Y==="->"||Y==="=>")return this.generateTemplateBlock(f[1]);if(Y==="if")return this.generateConditional(U);if(Y==="for"||Y==="for-in"||Y==="for-of"||Y==="for-as")return this.generateTemplateLoop(U);let A=this.newTextVar(),_=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._createLines.push(`${A} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${A}.data = ${_}; });`);else this._createLines.push(`${A} = document.createTextNode(String(${_}));`);return A},F.appendChildren=function(U,u){for(let f of u)if(this.is(f,"->")||this.is(f,"=>")){let Y=f[2];if(this.is(Y,"block"))for(let A of Y.slice(1))if(this.is(A,"object"))this.generateAttributes(U,A);else{let _=this.generateNode(A);this._createLines.push(`${U}.appendChild(${_});`)}else if(Y){let A=this.generateNode(Y);this._createLines.push(`${U}.appendChild(${A});`)}}else if(this.is(f,"object"))this.generateAttributes(U,f);else if(typeof f==="string"||f instanceof String){let Y=this.newTextVar(),A=f.valueOf();if(A.startsWith('"')||A.startsWith("'")||A.startsWith("`"))this._createLines.push(`${Y} = document.createTextNode(${A});`);else if(this.reactiveMembers&&this.reactiveMembers.has(A))this._createLines.push(`${Y} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Y}.data = this.${A}.value; });`);else if(this.componentMembers&&this.componentMembers.has(A))this._createLines.push(`${Y} = document.createTextNode(String(this.${A}));`);else this._createLines.push(`${Y} = document.createTextNode(${this.generateInComponent(f,"value")});`);this._createLines.push(`${U}.appendChild(${Y});`)}else if(f){let Y=this.generateNode(f);this._createLines.push(`${U}.appendChild(${Y});`)}},F.generateTag=function(U,u,f,Y){let A=this.newElementVar(),_=W1.has(U)||this._svgDepth>0;if(_)this._createLines.push(`${A} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${A} = document.createElement('${U}');`);if(Y)this._createLines.push(`${A}.id = '${Y}';`);let J=this._pendingClassArgs,X=this._pendingClassEl;if(u.length>0)this._pendingClassArgs=[`'${u.join(" ")}'`],this._pendingClassEl=A;if(U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(A,f),U==="svg")this._svgDepth--;if(u.length>0){if(this._pendingClassArgs.length===1)if(_)this._createLines.push(`${A}.setAttribute('class', '${u.join(" ")}');`);else this._createLines.push(`${A}.className = '${u.join(" ")}';`);else{let w=this._pendingClassArgs.join(", ");if(_)this._setupLines.push(`__effect(() => { ${A}.setAttribute('class', __clsx(${w})); });`);else this._setupLines.push(`__effect(() => { ${A}.className = __clsx(${w}); });`)}this._pendingClassArgs=J,this._pendingClassEl=X}return A},F.generateDynamicTag=function(U,u,f){let Y=this.newElementVar();if(W1.has(U)||this._svgDepth>0)this._createLines.push(`${Y} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${Y} = document.createElement('${U}');`);let A=u.map((X)=>this.generateInComponent(X,"value")),_=this._pendingClassArgs,J=this._pendingClassEl;if(this._pendingClassArgs=A,this._pendingClassEl=Y,U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Y,f),U==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let X=this._pendingClassArgs.join(", ");if(W1.has(U)||this._svgDepth>0)this._setupLines.push(`__effect(() => { ${Y}.setAttribute('class', __clsx(${X})); });`);else this._setupLines.push(`__effect(() => { ${Y}.className = __clsx(${X}); });`)}return this._pendingClassArgs=_,this._pendingClassEl=J,Y},F.generateAttributes=function(U,u){let f=v3(u.slice(1));for(let Y=1;Y<u.length;Y++){let[A,_]=u[Y];if(this.is(A,".")&&A[1]==="this"){let J=A[2];if(typeof _==="string"&&this.componentMembers?.has(_))this._createLines.push(`${U}.addEventListener('${J}', (e) => __batch(() => this.${_}(e)));`);else{let X=this.generateInComponent(_,"value");this._createLines.push(`${U}.addEventListener('${J}', (e) => __batch(() => (${X})(e)));`)}continue}if(typeof A==="string"){if(A.startsWith('"')&&A.endsWith('"'))A=A.slice(1,-1);if(A==="class"||A==="className"){let X=this.generateInComponent(_,"value");if(this._pendingClassArgs&&this._pendingClassEl===U)this._pendingClassArgs.push(X);else if(this.hasReactiveDeps(_))if(this._svgDepth>0)this._setupLines.push(`__effect(() => { ${U}.setAttribute('class', __clsx(${X})); });`);else this._setupLines.push(`__effect(() => { ${U}.className = __clsx(${X}); });`);else if(this._svgDepth>0)this._createLines.push(`${U}.setAttribute('class', ${X});`);else this._createLines.push(`${U}.className = ${X};`);continue}if(A==="ref"){let X=String(_).replace(/^["']|["']$/g,"");this._createLines.push(`this.${X} = ${U};`);continue}if(A.startsWith("__bind_")&&A.endsWith("__")){let X=A.slice(7,-2),w=this.generateInComponent(_,"value"),H,Z;if(X==="checked")H="change",Z="e.target.checked";else H="input",Z=f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${U}.${X} = ${w}; });`);let D=`${w} = ${Z}`,Q=!this.isSimpleAssignable(_)&&this.findRootReactiveMember(_);if(Q)D+=`; this.${Q}.touch?.()`;this._createLines.push(`${U}.addEventListener('${H}', (e) => { ${D}; });`);continue}let J=this.generateInComponent(_,"value");if((A==="value"||A==="checked")&&this.hasReactiveDeps(_)){this._setupLines.push(`__effect(() => { ${U}.${A} = ${J}; });`);let X=!this.isSimpleAssignable(_)&&this.findRootReactiveMember(_);if(this.isSimpleAssignable(_)||X){let w=A==="checked"?"change":"input",Z=`${J} = ${A==="checked"?"e.target.checked":f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(X)Z+=`; this.${X}.touch?.()`;this._createLines.push(`${U}.addEventListener('${w}', (e) => { ${Z}; });`)}continue}if(A==="innerHTML"||A==="textContent"||A==="innerText")if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.${A} = ${J}; });`);else this._createLines.push(`${U}.${A} = ${J};`);else if(b3.has(A))if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.toggleAttribute('${A}', !!${J}); });`);else this._createLines.push(`if (${J}) ${U}.setAttribute('${A}', '');`);else if(this.hasReactiveDeps(_))this._setupLines.push(`__effect(() => { ${U}.setAttribute('${A}', ${J}); });`);else this._createLines.push(`${U}.setAttribute('${A}', ${J});`)}}},F.generateTemplateBlock=function(U){if(!Array.isArray(U)||U[0]!=="block")return this.generateNode(U);let u=U.slice(1);if(u.length===0){let Y=this.newElementVar("empty");return this._createLines.push(`${Y} = document.createComment('');`),Y}if(u.length===1)return this.generateNode(u[0]);let f=this.newElementVar("frag");this._createLines.push(`${f} = document.createDocumentFragment();`);for(let Y of u){let A=this.generateNode(Y);this._createLines.push(`${f}.appendChild(${A});`)}return f},F.generateConditional=function(U){let[,u,f,Y]=U,A=this.newElementVar("anchor");this._createLines.push(`${A} = document.createComment('if');`);let _=this.generateInComponent(u,"value"),J=this._loopVarStack.map((D)=>`${D.itemVar}, ${D.indexVar}`).join(", "),X=J?`, ${J}`:"",w=this.newBlockVar();this.generateConditionBranch(w,f);let H=null;if(Y)H=this.newBlockVar(),this.generateConditionBranch(H,Y);let Z=[];if(Z.push(`// Conditional: ${w}${H?" / "+H:""}`),Z.push("{"),Z.push(` const anchor = ${A};`),Z.push(" let currentBlock = null;"),Z.push(" let showing = null;"),Z.push(" __effect(() => {"),Z.push(` const show = !!(${_});`),Z.push(` const want = show ? 'then' : ${Y?"'else'":"null"};`),Z.push(" if (want === showing) return;"),Z.push(""),Z.push(" if (currentBlock) {"),Z.push(" currentBlock.d(true);"),Z.push(" currentBlock = null;"),Z.push(" }"),Z.push(" showing = want;"),Z.push(""),Z.push(" if (want === 'then') {"),Z.push(` currentBlock = ${w}(this${X});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${X});`),Z.push(" }"),Y)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${H}(this${X});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${X});`),Z.push(" }");return Z.push(" });"),Z.push("}"),this._setupLines.push(Z.join(`
22
- `)),A},F.generateConditionBranch=function(U,u){let f=this._createLines,Y=this._setupLines;this._createLines=[],this._setupLines=[];let A=this.generateTemplateBlock(u),_=this._createLines,J=this._setupLines;this._createLines=f,this._setupLines=Y;let X=(M)=>this.localizeVar(M),w=this._loopVarStack.map((M)=>`${M.itemVar}, ${M.indexVar}`).join(", "),H=w?`, ${w}`:"",Z=[];Z.push(`function ${U}(ctx${H}) {`);let D=new Set;for(let M of _){let O=M.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(O)D.add(O[1])}if(D.size>0)Z.push(` let ${[...D].join(", ")};`);let Q=J.length>0;if(Q)Z.push(" let disposers = [];");Z.push(" return {"),Z.push(" c() {");for(let M of _)Z.push(` ${X(M)}`);if(Z.push(" },"),Z.push(" m(target, anchor) {"),Z.push(` target.insertBefore(${X(A)}, anchor);`),Z.push(" },"),Z.push(` p(ctx${H}) {`),Q){Z.push(" disposers.forEach(d => d());"),Z.push(" disposers = [];");for(let M of J){let q=X(M).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");Z.push(` ${q}`)}}if(Z.push(" },"),Z.push(" d(detaching) {"),Q)Z.push(" disposers.forEach(d => d());");let K=D2(A,_,X);if(K)for(let M of K)Z.push(` if (detaching && ${M}) ${M}.remove();`);else Z.push(` if (detaching && ${X(A)}) ${X(A)}.remove();`);Z.push(" }"),Z.push(" };"),Z.push("}"),this._blockFactories.push(Z.join(`
23
- `))},F.generateTemplateLoop=function(U){let[u,f,Y,A,_,J]=U,X=this.newBlockVar(),w=this.newElementVar("anchor");this._createLines.push(`${w} = document.createComment('for');`);let H=Array.isArray(f)?f:[f],Z=H[0],D=H[1]||"i",Q=this.generateInComponent(Y,"value"),K=Z;if(this.is(J,"block")&&J.length>1){let T=J[1];if(Array.isArray(T))for(let L of T){if(this.is(L,"object"))for(let j=1;j<L.length;j++){let[v,K1]=L[j];if(v==="key"){K=this.generate(K1,"value");break}}if(K!==Z)break}}let M=this._createLines,O=this._setupLines;this._createLines=[],this._setupLines=[],this._loopVarStack.push({itemVar:Z,indexVar:D});let q=this.generateTemplateBlock(J);this._loopVarStack.pop();let z=this._createLines,E=this._setupLines;this._createLines=M,this._setupLines=O;let G=(T)=>this.localizeVar(T),R=[];R.push(`function ${X}(ctx, ${Z}, ${D}) {`);let P=new Set;for(let T of z){let L=T.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(L)P.add(L[1])}if(P.size>0)R.push(` let ${[...P].join(", ")};`);let I=E.length>0;if(I)R.push(" let disposers = [];");R.push(" return {"),R.push(" c() {");for(let T of z)R.push(` ${G(T)}`);R.push(" },");let B=D2(q,z,G);if(R.push(" m(target, anchor) {"),B)for(let T of B)R.push(` if (target) target.insertBefore(${T}, anchor);`);else R.push(` if (target) target.insertBefore(${G(q)}, anchor);`);if(R.push(" },"),R.push(` p(ctx, ${Z}, ${D}) {`),I){R.push(" disposers.forEach(d => d());"),R.push(" disposers = [];");for(let T of E){let j=G(T).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");R.push(` ${j}`)}}if(R.push(" },"),R.push(" d(detaching) {"),I)R.push(" disposers.forEach(d => d());");if(B)for(let T of B)R.push(` if (detaching && ${T}) ${T}.remove();`);else R.push(` if (detaching && ${G(q)}) ${G(q)}.remove();`);R.push(" }"),R.push(" };"),R.push("}"),this._blockFactories.push(R.join(`
24
- `));let N=[];return N.push(`// Loop: ${X}`),N.push("{"),N.push(` const __anchor = ${w};`),N.push(" const __map = new Map();"),N.push(" __effect(() => {"),N.push(` const __items = ${Q};`),N.push(" const __parent = __anchor.parentNode;"),N.push(" const __newMap = new Map();"),N.push(""),N.push(` for (let ${D} = 0; ${D} < __items.length; ${D}++) {`),N.push(` const ${Z} = __items[${D}];`),N.push(` const __key = ${K};`),N.push(" let __block = __map.get(__key);"),N.push(" if (!__block) {"),N.push(` __block = ${X}(this, ${Z}, ${D});`),N.push(" __block.c();"),N.push(" }"),N.push(" __block.m(__parent, __anchor);"),N.push(` __block.p(this, ${Z}, ${D});`),N.push(" __newMap.set(__key, __block);"),N.push(" }"),N.push(""),N.push(" for (const [__k, __b] of __map) {"),N.push(" if (!__newMap.has(__k)) __b.d(true);"),N.push(" }"),N.push(""),N.push(" __map.clear();"),N.push(" for (const [__k, __v] of __newMap) __map.set(__k, __v);"),N.push(" });"),N.push("}"),this._setupLines.push(N.join(`
25
- `)),w},F.generateChildComponent=function(U,u){let f=this.newElementVar("inst"),Y=this.newElementVar("el"),{propsCode:A,reactiveProps:_,childrenSetupLines:J}=this.buildComponentProps(u);this._createLines.push(`${f} = new ${U}(${A});`),this._createLines.push(`${Y} = ${f}._create();`),this._createLines.push(`(this._children || (this._children = [])).push(${f});`),this._setupLines.push(`if (${f}._setup) ${f}._setup();`),this._setupLines.push(`if (${f}.mounted) ${f}.mounted();`);for(let{key:X,valueCode:w}of _)this._setupLines.push(`__effect(() => { if (${f}.${X}) ${f}.${X}.value = ${w}; });`);for(let X of J)this._setupLines.push(X);return Y},F.buildComponentProps=function(U){let u=[],f=[],Y=null,A=[];for(let J of U)if(this.is(J,"object"))for(let X=1;X<J.length;X++){let[w,H]=J[X];if(typeof w==="string")if(this.reactiveMembers&&(typeof H==="string"&&this.reactiveMembers.has(H)||Array.isArray(H)&&H[0]==="."&&H[1]==="this"&&typeof H[2]==="string"&&this.reactiveMembers.has(H[2]))){let D=typeof H==="string"?H:H[2];u.push(`${w}: this.${D}`)}else{let D=this.generateInComponent(H,"value");if(u.push(`${w}: ${D}`),this.hasReactiveDeps(H))f.push({key:w,valueCode:D})}}else if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let X=J[2];if(X){if(this.is(X,"block")){let w=[];for(let H of X.slice(1))if(this.is(H,"object"))for(let Z=1;Z<H.length;Z++){let[D,Q]=H[Z];if(typeof D==="string")if(this.reactiveMembers&&(typeof Q==="string"&&this.reactiveMembers.has(Q)||Array.isArray(Q)&&Q[0]==="."&&Q[1]==="this"&&typeof Q[2]==="string"&&this.reactiveMembers.has(Q[2]))){let M=typeof Q==="string"?Q:Q[2];u.push(`${D}: this.${M}`)}else{let M=this.generateInComponent(Q,"value");if(u.push(`${D}: ${M}`),this.hasReactiveDeps(Q))f.push({key:D,valueCode:M})}}else w.push(H);X=w.length>0?["block",...w]:null}if(X){let w=this._createLines,H=this._setupLines;this._createLines=[],this._setupLines=[],Y=this.generateTemplateBlock(X);let Z=this._createLines,D=this._setupLines;this._createLines=w,this._setupLines=H;for(let Q of Z)this._createLines.push(Q);A.push(...D),u.push(`children: ${Y}`)}}}return{propsCode:u.length>0?`{ ${u.join(", ")} }`:"{}",reactiveProps:f,childrenSetupLines:A}},F.hasReactiveDeps=function(U){if(typeof U==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U));if(!Array.isArray(U))return!1;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U[2]));if(U[0]==="."&&this._rootsAtThis(U[1]))return!0;for(let u of U)if(this.hasReactiveDeps(u))return!0;return!1},F.isSimpleAssignable=function(U){if(typeof U==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U));if(Array.isArray(U)&&U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U[2]));return!1},F.findRootReactiveMember=function(U){if(typeof U==="string")return this.reactiveMembers?.has(U)?U:null;if(!Array.isArray(U))return null;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return this.reactiveMembers?.has(U[2])?U[2]:null;if(U[0]==="."||U[0]==="[]")return this.findRootReactiveMember(U[1]);return null},F._rootsAtThis=function(U){if(typeof U==="string")return U==="this";if(!Array.isArray(U)||U[0]!==".")return!1;return this._rootsAtThis(U[1])},F.getComponentRuntime=function(){return`
21
+ `)},_.generateInComponent=function(U,u){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`this.${U}.value`;if(typeof U==="string"&&this.componentMembers&&this.componentMembers.has(U))return`this.${U}`;if(Array.isArray(U)&&this.reactiveMembers){let f=this.transformComponentMembers(U);return this.generate(f,u)}return this.generate(U,u)},_.generateRender=function(U,u,f,F){throw Error("render blocks can only be used inside a component")},_.buildRender=function(U){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[];let u=this.is(U,"block")?U.slice(1):[U],f;if(u.length===0)f="null";else if(u.length===1)f=this.generateNode(u[0]);else{f=this.newElementVar("frag"),this._createLines.push(`${f} = document.createDocumentFragment();`);for(let F of u){let Y=this.generateNode(F);this._createLines.push(`${f}.appendChild(${Y});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:f}},_.newBlockVar=function(){return`create_block_${this._blockCount++}`},_.newElementVar=function(U="el"){return`this._${U}${this._elementCount++}`},_.newTextVar=function(){return`this._t${this._textCount++}`},_.generateNode=function(U){if(typeof U==="string"||U instanceof String){let X=U.valueOf();if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`")){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode(${X});`),M}if(this.reactiveMembers&&this.reactiveMembers.has(X)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${M}.data = this.${X}.value; });`),M}let[Q,w]=X.split("#"),H=this.newElementVar(),Z=Q||"div";if(W1.has(Z)||this._svgDepth>0)this._createLines.push(`${H} = document.createElementNS('http://www.w3.org/2000/svg', '${Z}');`);else this._createLines.push(`${H} = document.createElement('${Z}');`);if(w)this._createLines.push(`${H}.id = '${w}';`);return H}if(!Array.isArray(U)){let X=this.newElementVar("c");return this._createLines.push(`${X} = document.createComment('unknown');`),X}let[u,...f]=U,F=typeof u==="string"?u:u instanceof String?u.valueOf():null;if(F&&this.isComponent(F))return this.generateChildComponent(F,f);if(F&&this.isHtmlTag(F)){let[X,Q]=F.split("#");return this.generateTag(X||"div",[],f,Q)}if(F==="."){let[,X,Q]=U;if(X==="this"&&typeof Q==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(Q)){let D=this.newTextVar();return this._createLines.push(`${D} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${D}.data = this.${Q}.value; });`),D}let K=this.newElementVar("slot");return this._createLines.push(`${K} = this.${Q} instanceof Node ? this.${Q} : (this.${Q} != null ? document.createTextNode(String(this.${Q})) : document.createComment(''));`),K}let{tag:w,classes:H,id:Z}=this.collectTemplateClasses(U);if(w&&this.isHtmlTag(w))return this.generateTag(w,H,[],Z);let M=this.newTextVar(),J=this.generateInComponent(U,"value");return this._createLines.push(`${M} = document.createTextNode(String(${J}));`),M}if(Array.isArray(u)){if(Array.isArray(u[0])&&u[0][0]==="."&&(u[0][2]==="__clsx"||u[0][2]instanceof String&&u[0][2].valueOf()==="__clsx")){let H=typeof u[0][1]==="string"?u[0][1]:u[0][1].valueOf(),Z=u.slice(1);return this.generateDynamicTag(H,Z,f)}let{tag:X,classes:Q,id:w}=this.collectTemplateClasses(u);if(X&&this.isHtmlTag(X)){if(Q.length===1&&Q[0]==="__clsx")return this.generateDynamicTag(X,f,[]);return this.generateTag(X,Q,f,w)}}if(F==="->"||F==="=>")return this.generateTemplateBlock(f[1]);if(F==="if")return this.generateConditional(U);if(F==="for"||F==="for-in"||F==="for-of"||F==="for-as")return this.generateTemplateLoop(U);let Y=this.newTextVar(),A=this.generateInComponent(U,"value");if(this.hasReactiveDeps(U))this._createLines.push(`${Y} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Y}.data = ${A}; });`);else this._createLines.push(`${Y} = document.createTextNode(String(${A}));`);return Y},_.appendChildren=function(U,u){for(let f of u)if(this.is(f,"->")||this.is(f,"=>")){let F=f[2];if(this.is(F,"block"))for(let Y of F.slice(1))if(this.is(Y,"object"))this.generateAttributes(U,Y);else{let A=this.generateNode(Y);this._createLines.push(`${U}.appendChild(${A});`)}else if(F){let Y=this.generateNode(F);this._createLines.push(`${U}.appendChild(${Y});`)}}else if(this.is(f,"object"))this.generateAttributes(U,f);else if(typeof f==="string"||f instanceof String){let F=this.newTextVar(),Y=f.valueOf();if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`"))this._createLines.push(`${F} = document.createTextNode(${Y});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Y))this._createLines.push(`${F} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${F}.data = this.${Y}.value; });`);else if(this.componentMembers&&this.componentMembers.has(Y))this._createLines.push(`${F} = document.createTextNode(String(this.${Y}));`);else this._createLines.push(`${F} = document.createTextNode(${this.generateInComponent(f,"value")});`);this._createLines.push(`${U}.appendChild(${F});`)}else if(f){let F=this.generateNode(f);this._createLines.push(`${U}.appendChild(${F});`)}},_.generateTag=function(U,u,f,F){let Y=this.newElementVar(),A=W1.has(U)||this._svgDepth>0;if(A)this._createLines.push(`${Y} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${Y} = document.createElement('${U}');`);if(F)this._createLines.push(`${Y}.id = '${F}';`);let X=this._pendingClassArgs,Q=this._pendingClassEl;if(u.length>0)this._pendingClassArgs=[`'${u.join(" ")}'`],this._pendingClassEl=Y;if(U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Y,f),U==="svg")this._svgDepth--;if(u.length>0){if(this._pendingClassArgs.length===1)if(A)this._createLines.push(`${Y}.setAttribute('class', '${u.join(" ")}');`);else this._createLines.push(`${Y}.className = '${u.join(" ")}';`);else{let w=this._pendingClassArgs.join(", ");if(A)this._setupLines.push(`__effect(() => { ${Y}.setAttribute('class', __clsx(${w})); });`);else this._setupLines.push(`__effect(() => { ${Y}.className = __clsx(${w}); });`)}this._pendingClassArgs=X,this._pendingClassEl=Q}return Y},_.generateDynamicTag=function(U,u,f){let F=this.newElementVar();if(W1.has(U)||this._svgDepth>0)this._createLines.push(`${F} = document.createElementNS('http://www.w3.org/2000/svg', '${U}');`);else this._createLines.push(`${F} = document.createElement('${U}');`);let Y=u.map((Q)=>this.generateInComponent(Q,"value")),A=this._pendingClassArgs,X=this._pendingClassEl;if(this._pendingClassArgs=Y,this._pendingClassEl=F,U==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(F,f),U==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let Q=this._pendingClassArgs.join(", ");if(W1.has(U)||this._svgDepth>0)this._setupLines.push(`__effect(() => { ${F}.setAttribute('class', __clsx(${Q})); });`);else this._setupLines.push(`__effect(() => { ${F}.className = __clsx(${Q}); });`)}return this._pendingClassArgs=A,this._pendingClassEl=X,F},_.generateAttributes=function(U,u){let f=v3(u.slice(1));for(let F=1;F<u.length;F++){let[Y,A]=u[F];if(this.is(Y,".")&&Y[1]==="this"){let X=Y[2];if(typeof A==="string"&&this.componentMembers?.has(A))this._createLines.push(`${U}.addEventListener('${X}', (e) => __batch(() => this.${A}(e)));`);else{let Q=this.generateInComponent(A,"value");this._createLines.push(`${U}.addEventListener('${X}', (e) => __batch(() => (${Q})(e)));`)}continue}if(typeof Y==="string"){if(Y.startsWith('"')&&Y.endsWith('"'))Y=Y.slice(1,-1);if(Y==="class"||Y==="className"){let Q=this.generateInComponent(A,"value");if(this._pendingClassArgs&&this._pendingClassEl===U)this._pendingClassArgs.push(Q);else if(this.hasReactiveDeps(A))if(this._svgDepth>0)this._setupLines.push(`__effect(() => { ${U}.setAttribute('class', __clsx(${Q})); });`);else this._setupLines.push(`__effect(() => { ${U}.className = __clsx(${Q}); });`);else if(this._svgDepth>0)this._createLines.push(`${U}.setAttribute('class', ${Q});`);else this._createLines.push(`${U}.className = ${Q};`);continue}if(Y==="ref"){let Q=String(A).replace(/^["']|["']$/g,"");this._createLines.push(`this.${Q} = ${U};`);continue}if(Y.startsWith("__bind_")&&Y.endsWith("__")){let Q=Y.slice(7,-2),w=this.generateInComponent(A,"value"),H,Z;if(Q==="checked")H="change",Z="e.target.checked";else H="input",Z=f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${U}.${Q} = ${w}; });`);let M=`${w} = ${Z}`,J=!this.isSimpleAssignable(A)&&this.findRootReactiveMember(A);if(J)M+=`; this.${J}.touch?.()`;this._createLines.push(`${U}.addEventListener('${H}', (e) => { ${M}; });`);continue}let X=this.generateInComponent(A,"value");if((Y==="value"||Y==="checked")&&this.hasReactiveDeps(A)){this._setupLines.push(`__effect(() => { ${U}.${Y} = ${X}; });`);let Q=!this.isSimpleAssignable(A)&&this.findRootReactiveMember(A);if(this.isSimpleAssignable(A)||Q){let w=Y==="checked"?"change":"input",Z=`${X} = ${Y==="checked"?"e.target.checked":f==="number"||f==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(Q)Z+=`; this.${Q}.touch?.()`;this._createLines.push(`${U}.addEventListener('${w}', (e) => { ${Z}; });`)}continue}if(Y==="innerHTML"||Y==="textContent"||Y==="innerText")if(this.hasReactiveDeps(A))this._setupLines.push(`__effect(() => { ${U}.${Y} = ${X}; });`);else this._createLines.push(`${U}.${Y} = ${X};`);else if(b3.has(Y))if(this.hasReactiveDeps(A))this._setupLines.push(`__effect(() => { ${U}.toggleAttribute('${Y}', !!${X}); });`);else this._createLines.push(`if (${X}) ${U}.setAttribute('${Y}', '');`);else if(this.hasReactiveDeps(A))this._setupLines.push(`__effect(() => { ${U}.setAttribute('${Y}', ${X}); });`);else this._createLines.push(`${U}.setAttribute('${Y}', ${X});`)}}},_.generateTemplateBlock=function(U){if(!Array.isArray(U)||U[0]!=="block")return this.generateNode(U);let u=U.slice(1);if(u.length===0){let F=this.newElementVar("empty");return this._createLines.push(`${F} = document.createComment('');`),F}if(u.length===1)return this.generateNode(u[0]);let f=this.newElementVar("frag");this._createLines.push(`${f} = document.createDocumentFragment();`);for(let F of u){let Y=this.generateNode(F);this._createLines.push(`${f}.appendChild(${Y});`)}return f},_.generateConditional=function(U){let[,u,f,F]=U,Y=this.newElementVar("anchor");this._createLines.push(`${Y} = document.createComment('if');`);let A=this.generateInComponent(u,"value"),X=this._loopVarStack.map((M)=>`${M.itemVar}, ${M.indexVar}`).join(", "),Q=X?`, ${X}`:"",w=this.newBlockVar();this.generateConditionBranch(w,f);let H=null;if(F)H=this.newBlockVar(),this.generateConditionBranch(H,F);let Z=[];if(Z.push(`// Conditional: ${w}${H?" / "+H:""}`),Z.push("{"),Z.push(` const anchor = ${Y};`),Z.push(" let currentBlock = null;"),Z.push(" let showing = null;"),Z.push(" __effect(() => {"),Z.push(` const show = !!(${A});`),Z.push(` const want = show ? 'then' : ${F?"'else'":"null"};`),Z.push(" if (want === showing) return;"),Z.push(""),Z.push(" if (currentBlock) {"),Z.push(" currentBlock.d(true);"),Z.push(" currentBlock = null;"),Z.push(" }"),Z.push(" showing = want;"),Z.push(""),Z.push(" if (want === 'then') {"),Z.push(` currentBlock = ${w}(this${Q});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${Q});`),Z.push(" }"),F)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${H}(this${Q});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(this${Q});`),Z.push(" }");return Z.push(" });"),Z.push("}"),this._setupLines.push(Z.join(`
22
+ `)),Y},_.generateConditionBranch=function(U,u){let f=this._createLines,F=this._setupLines;this._createLines=[],this._setupLines=[];let Y=this.generateTemplateBlock(u),A=this._createLines,X=this._setupLines;this._createLines=f,this._setupLines=F;let Q=(D)=>this.localizeVar(D),w=this._loopVarStack.map((D)=>`${D.itemVar}, ${D.indexVar}`).join(", "),H=w?`, ${w}`:"",Z=[];Z.push(`function ${U}(ctx${H}) {`);let M=new Set;for(let D of A){let O=D.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(O)M.add(O[1])}if(M.size>0)Z.push(` let ${[...M].join(", ")};`);let J=X.length>0;if(J)Z.push(" let disposers = [];");Z.push(" return {"),Z.push(" c() {");for(let D of A)Z.push(` ${Q(D)}`);if(Z.push(" },"),Z.push(" m(target, anchor) {"),Z.push(` target.insertBefore(${Q(Y)}, anchor);`),Z.push(" },"),Z.push(` p(ctx${H}) {`),J){Z.push(" disposers.forEach(d => d());"),Z.push(" disposers = [];");for(let D of X){let q=Q(D).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");Z.push(` ${q}`)}}if(Z.push(" },"),Z.push(" d(detaching) {"),J)Z.push(" disposers.forEach(d => d());");let K=M2(Y,A,Q);if(K)for(let D of K)Z.push(` if (detaching && ${D}) ${D}.remove();`);else Z.push(` if (detaching && ${Q(Y)}) ${Q(Y)}.remove();`);Z.push(" }"),Z.push(" };"),Z.push("}"),this._blockFactories.push(Z.join(`
23
+ `))},_.generateTemplateLoop=function(U){let[u,f,F,Y,A,X]=U,Q=this.newBlockVar(),w=this.newElementVar("anchor");this._createLines.push(`${w} = document.createComment('for');`);let H=Array.isArray(f)?f:[f],Z=H[0],M=H[1]||"i",J=this.generateInComponent(F,"value"),K=Z;if(this.is(X,"block")&&X.length>1){let T=X[1];if(Array.isArray(T))for(let L of T){if(this.is(L,"object"))for(let j=1;j<L.length;j++){let[v,K1]=L[j];if(v==="key"){K=this.generate(K1,"value");break}}if(K!==Z)break}}let D=this._createLines,O=this._setupLines;this._createLines=[],this._setupLines=[],this._loopVarStack.push({itemVar:Z,indexVar:M});let q=this.generateTemplateBlock(X);this._loopVarStack.pop();let z=this._createLines,E=this._setupLines;this._createLines=D,this._setupLines=O;let P=(T)=>this.localizeVar(T),R=[];R.push(`function ${Q}(ctx, ${Z}, ${M}) {`);let G=new Set;for(let T of z){let L=T.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(L)G.add(L[1])}if(G.size>0)R.push(` let ${[...G].join(", ")};`);let I=E.length>0;if(I)R.push(" let disposers = [];");R.push(" return {"),R.push(" c() {");for(let T of z)R.push(` ${P(T)}`);R.push(" },");let B=M2(q,z,P);if(R.push(" m(target, anchor) {"),B)for(let T of B)R.push(` if (target) target.insertBefore(${T}, anchor);`);else R.push(` if (target) target.insertBefore(${P(q)}, anchor);`);if(R.push(" },"),R.push(` p(ctx, ${Z}, ${M}) {`),I){R.push(" disposers.forEach(d => d());"),R.push(" disposers = [];");for(let T of E){let j=P(T).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");R.push(` ${j}`)}}if(R.push(" },"),R.push(" d(detaching) {"),I)R.push(" disposers.forEach(d => d());");if(B)for(let T of B)R.push(` if (detaching && ${T}) ${T}.remove();`);else R.push(` if (detaching && ${P(q)}) ${P(q)}.remove();`);R.push(" }"),R.push(" };"),R.push("}"),this._blockFactories.push(R.join(`
24
+ `));let N=[];return N.push(`// Loop: ${Q}`),N.push("{"),N.push(` const __anchor = ${w};`),N.push(" const __map = new Map();"),N.push(" __effect(() => {"),N.push(` const __items = ${J};`),N.push(" const __parent = __anchor.parentNode;"),N.push(" const __newMap = new Map();"),N.push(""),N.push(` for (let ${M} = 0; ${M} < __items.length; ${M}++) {`),N.push(` const ${Z} = __items[${M}];`),N.push(` const __key = ${K};`),N.push(" let __block = __map.get(__key);"),N.push(" if (!__block) {"),N.push(` __block = ${Q}(this, ${Z}, ${M});`),N.push(" __block.c();"),N.push(" }"),N.push(" __block.m(__parent, __anchor);"),N.push(` __block.p(this, ${Z}, ${M});`),N.push(" __newMap.set(__key, __block);"),N.push(" }"),N.push(""),N.push(" for (const [__k, __b] of __map) {"),N.push(" if (!__newMap.has(__k)) __b.d(true);"),N.push(" }"),N.push(""),N.push(" __map.clear();"),N.push(" for (const [__k, __v] of __newMap) __map.set(__k, __v);"),N.push(" });"),N.push("}"),this._setupLines.push(N.join(`
25
+ `)),w},_.generateChildComponent=function(U,u){let f=this.newElementVar("inst"),F=this.newElementVar("el"),{propsCode:Y,reactiveProps:A,childrenSetupLines:X}=this.buildComponentProps(u);this._createLines.push(`${f} = new ${U}(${Y});`),this._createLines.push(`${F} = ${f}._create();`),this._createLines.push(`(this._children || (this._children = [])).push(${f});`),this._setupLines.push(`if (${f}._setup) ${f}._setup();`),this._setupLines.push(`if (${f}.mounted) ${f}.mounted();`);for(let{key:Q,valueCode:w}of A)this._setupLines.push(`__effect(() => { if (${f}.${Q}) ${f}.${Q}.value = ${w}; });`);for(let Q of X)this._setupLines.push(Q);return F},_.buildComponentProps=function(U){let u=[],f=[],F=null,Y=[];for(let X of U)if(this.is(X,"object"))for(let Q=1;Q<X.length;Q++){let[w,H]=X[Q];if(typeof w==="string")if(this.reactiveMembers&&(typeof H==="string"&&this.reactiveMembers.has(H)||Array.isArray(H)&&H[0]==="."&&H[1]==="this"&&typeof H[2]==="string"&&this.reactiveMembers.has(H[2]))){let M=typeof H==="string"?H:H[2];u.push(`${w}: this.${M}`)}else{let M=this.generateInComponent(H,"value");if(u.push(`${w}: ${M}`),this.hasReactiveDeps(H))f.push({key:w,valueCode:M})}}else if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Q=X[2];if(Q){if(this.is(Q,"block")){let w=[];for(let H of Q.slice(1))if(this.is(H,"object"))for(let Z=1;Z<H.length;Z++){let[M,J]=H[Z];if(typeof M==="string")if(this.reactiveMembers&&(typeof J==="string"&&this.reactiveMembers.has(J)||Array.isArray(J)&&J[0]==="."&&J[1]==="this"&&typeof J[2]==="string"&&this.reactiveMembers.has(J[2]))){let D=typeof J==="string"?J:J[2];u.push(`${M}: this.${D}`)}else{let D=this.generateInComponent(J,"value");if(u.push(`${M}: ${D}`),this.hasReactiveDeps(J))f.push({key:M,valueCode:D})}}else w.push(H);Q=w.length>0?["block",...w]:null}if(Q){let w=this._createLines,H=this._setupLines;this._createLines=[],this._setupLines=[],F=this.generateTemplateBlock(Q);let Z=this._createLines,M=this._setupLines;this._createLines=w,this._setupLines=H;for(let J of Z)this._createLines.push(J);Y.push(...M),u.push(`children: ${F}`)}}}return{propsCode:u.length>0?`{ ${u.join(", ")} }`:"{}",reactiveProps:f,childrenSetupLines:Y}},_.hasReactiveDeps=function(U){if(typeof U==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U));if(!Array.isArray(U))return!1;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U[2]));if(U[0]==="."&&this._rootsAtThis(U[1]))return!0;for(let u of U)if(this.hasReactiveDeps(u))return!0;return!1},_.isSimpleAssignable=function(U){if(typeof U==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U));if(Array.isArray(U)&&U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(U[2]));return!1},_.findRootReactiveMember=function(U){if(typeof U==="string")return this.reactiveMembers?.has(U)?U:null;if(!Array.isArray(U))return null;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return this.reactiveMembers?.has(U[2])?U[2]:null;if(U[0]==="."||U[0]==="[]")return this.findRootReactiveMember(U[1]);return null},_._rootsAtThis=function(U){if(typeof U==="string")return U==="this";if(!Array.isArray(U)||U[0]!==".")return!1;return this._rootsAtThis(U[1])},_.getComponentRuntime=function(){return`
26
26
  // ============================================================================
27
27
  // Rip Component Runtime
28
28
  // ============================================================================
@@ -106,25 +106,25 @@ if (typeof globalThis !== 'undefined') {
106
106
  globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component };
107
107
  }
108
108
 
109
- `}}function e($){let W="",F=$<0?-$<<1|1:$<<1;do{let U=F&31;if(F>>>=5,F>0)U|=32;W+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[U]}while(F>0);return W}class v1{constructor($,W,F=null){this.file=$,this.source=W,this.sourceContent=F,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine($){while(this.lines.length<=$)this.lines.push([])}addName($){if(this.nameIndex.has($))return this.nameIndex.get($);let W=this.names.length;return this.names.push($),this.nameIndex.set($,W),W}addMapping($,W,F,U,u){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(F==null){this.lines[$].push(e(W-this.prevGenCol)),this.prevGenCol=W;return}this.mappings.push({genLine:$,genCol:W,origLine:F,origCol:U});let f=e(W-this.prevGenCol);if(this.prevGenCol=W,f+=e(0),f+=e(F-this.prevOrigLine),this.prevOrigLine=F,f+=e(U-this.prevOrigCol),this.prevOrigCol=U,u!=null){let Y=this.addName(u);f+=e(Y-this.prevNameIdx),this.prevNameIdx=Y}this.lines[$].push(f)}toReverseMap(){let $=new Map;for(let W of this.mappings)if(!$.has(W.origLine))$.set(W.origLine,{genLine:W.genLine,genCol:W.genCol});return $}toJSON(){let $=this.lines.map((F)=>F.join(",")).join(";"),W={version:3,file:this.file,sources:[this.source],names:this.names,mappings:$};if(this.sourceContent!=null)W.sourcesContent=[this.sourceContent];return JSON.stringify(W)}}var V=($,W)=>$ instanceof String?$[W]:void 0,S=($)=>$ instanceof String?$.valueOf():$,c3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function O1($){if(!Array.isArray($)||$.length===0)return!1;let W=$[0]?.valueOf?.()??$[0];if(c3.has(W))return!0;return $.length<=4&&!$.some(Array.isArray)}function F1($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let W=String($);if(W[0]==="/"&&W.indexOf(`
110
- `)>=0){let F=W.match(/\/([gimsuvy]*)$/),U=F?F[1]:"",u=W.slice(1);return u=U?u.slice(0,-U.length-1):u.slice(0,-1),`"/${u.split(`
111
- `).map((A)=>A.replace(/#.*$/,"").trim()).join("")}/${U}"`}return W}function l($,W=0,F=!1){if(!Array.isArray($))return F1($);if(F&&$[0]==="program"){let J=$[1],w=[Array.isArray(J)?"(program":"(program "+F1(J)],H=Array.isArray(J)?1:2;for(let Z=H;Z<$.length;Z++){let D=l($[Z],2,!1);w.push(D[0]==="("?" "+D:D)}return w.push(")"),w.join(`
112
- `)}let U=$[0];if(O1($)&&$.slice(1).every((J)=>!Array.isArray(J)||O1(J))){let X=`(${$.map((w)=>Array.isArray(w)?l(w,0,!1):F1(w)).join(" ")})`;if(!X.includes(`
113
- `))return" ".repeat(W)+X}let f=" ".repeat(W),Y;if(Array.isArray(U)){if(Y=l(U,0,!1),Y.includes(`
114
- `))Y=Y.split(`
115
- `).map((X,w)=>w===0?X:" ".repeat(W+2)+X).join(`
116
- `)}else Y=F1(U);let A=[`${f}(${Y}`],_=U==="block";for(let J=1;J<$.length;J++){let X=$[J];if(!Array.isArray(X))A[A.length-1]+=" "+F1(X);else{let w=O1(X)&&X.every((H)=>!Array.isArray(H)||O1(H));if(!_&&w){let H=l(X,0,!1);if(!H.includes(`
117
- `)){A[A.length-1]+=" "+H;continue}}A.push(l(X,W+2,!1))}}return A[A.length-1]+=")",A.join(`
109
+ `}}function e($){let W="",_=$<0?-$<<1|1:$<<1;do{let U=_&31;if(_>>>=5,_>0)U|=32;W+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[U]}while(_>0);return W}class v1{constructor($,W,_=null){this.file=$,this.source=W,this.sourceContent=_,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine($){while(this.lines.length<=$)this.lines.push([])}addName($){if(this.nameIndex.has($))return this.nameIndex.get($);let W=this.names.length;return this.names.push($),this.nameIndex.set($,W),W}addMapping($,W,_,U,u){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(_==null){this.lines[$].push(e(W-this.prevGenCol)),this.prevGenCol=W;return}this.mappings.push({genLine:$,genCol:W,origLine:_,origCol:U});let f=e(W-this.prevGenCol);if(this.prevGenCol=W,f+=e(0),f+=e(_-this.prevOrigLine),this.prevOrigLine=_,f+=e(U-this.prevOrigCol),this.prevOrigCol=U,u!=null){let F=this.addName(u);f+=e(F-this.prevNameIdx),this.prevNameIdx=F}this.lines[$].push(f)}toReverseMap(){let $=new Map;for(let W of this.mappings)if(!$.has(W.origLine))$.set(W.origLine,{genLine:W.genLine,genCol:W.genCol});return $}toJSON(){let $=this.lines.map((_)=>_.join(",")).join(";"),W={version:3,file:this.file,sources:[this.source],names:this.names,mappings:$};if(this.sourceContent!=null)W.sourcesContent=[this.sourceContent];return JSON.stringify(W)}}var V=($,W)=>$ instanceof String?$[W]:void 0,S=($)=>$ instanceof String?$.valueOf():$,c3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function O1($){if(!Array.isArray($)||$.length===0)return!1;let W=$[0]?.valueOf?.()??$[0];if(c3.has(W))return!0;return $.length<=4&&!$.some(Array.isArray)}function _1($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let W=String($);if(W[0]==="/"&&W.indexOf(`
110
+ `)>=0){let _=W.match(/\/([gimsuvy]*)$/),U=_?_[1]:"",u=W.slice(1);return u=U?u.slice(0,-U.length-1):u.slice(0,-1),`"/${u.split(`
111
+ `).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${U}"`}return W}function l($,W=0,_=!1){if(!Array.isArray($))return _1($);if(_&&$[0]==="program"){let X=$[1],w=[Array.isArray(X)?"(program":"(program "+_1(X)],H=Array.isArray(X)?1:2;for(let Z=H;Z<$.length;Z++){let M=l($[Z],2,!1);w.push(M[0]==="("?" "+M:M)}return w.push(")"),w.join(`
112
+ `)}let U=$[0];if(O1($)&&$.slice(1).every((X)=>!Array.isArray(X)||O1(X))){let Q=`(${$.map((w)=>Array.isArray(w)?l(w,0,!1):_1(w)).join(" ")})`;if(!Q.includes(`
113
+ `))return" ".repeat(W)+Q}let f=" ".repeat(W),F;if(Array.isArray(U)){if(F=l(U,0,!1),F.includes(`
114
+ `))F=F.split(`
115
+ `).map((Q,w)=>w===0?Q:" ".repeat(W+2)+Q).join(`
116
+ `)}else F=_1(U);let Y=[`${f}(${F}`],A=U==="block";for(let X=1;X<$.length;X++){let Q=$[X];if(!Array.isArray(Q))Y[Y.length-1]+=" "+_1(Q);else{let w=O1(Q)&&Q.every((H)=>!Array.isArray(H)||O1(H));if(!A&&w){let H=l(Q,0,!1);if(!H.includes(`
117
+ `)){Y[Y.length-1]+=" "+H;continue}}Y.push(l(Q,W+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
118
118
  `)}class C{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","%%=":"generateModuloAssign","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak",continue:"generateContinue","?":"generateExistential",defined:"generateDefined","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor($={}){if(this.options=$,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=$.dataSection,this.sourceMap=$.sourceMap||null,$.reactiveVars)this.reactiveVars=new Set($.reactiveVars)}compile($){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables($);let W=this.generate($);if(this.sourceMap)this.buildMappings();return W}buildMappings(){if(!this._stmtEntries)return;let $=this._preambleLines;for(let W of this._stmtEntries){if(W.loc)this.sourceMap.addMapping($,0,W.loc.r,W.loc.c);$+=W.code.split(`
119
- `).length}}collectProgramVariables($){if(!Array.isArray($))return;let[W,...F]=$;if(W=S(W),Array.isArray(W)){$.forEach((U)=>this.collectProgramVariables(U));return}if(W==="export"||W==="export-default"||W==="export-all"||W==="export-from")return;if(W==="state"||W==="computed"){let[U]=F,u=S(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(W==="readonly")return;if(W==="component")return;if(C.ASSIGNMENT_OPS.has(W)){let[U,u]=F;if(typeof U==="string"||U instanceof String){let f=S(U);if(!this.reactiveVars?.has(f))this.programVars.add(f)}else if(this.is(U,"array"))this.collectVarsFromArray(U,this.programVars);else if(this.is(U,"object"))this.collectVarsFromObject(U,this.programVars);this.collectProgramVariables(u);return}if(W==="def"||W==="->"||W==="=>"||W==="effect")return;if(W==="if"){let[U,u,f]=F;if(this.collectProgramVariables(U),this.collectProgramVariables(u),f)this.collectProgramVariables(f);return}if(W==="try"){if(this.collectProgramVariables(F[0]),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[U,u]=F[1];if(U&&this.is(U,"object"))U.slice(1).forEach((f)=>{if(Array.isArray(f)&&f.length===2&&typeof f[1]==="string")this.programVars.add(f[1])});else if(U&&this.is(U,"array"))U.slice(1).forEach((f)=>{if(typeof f==="string")this.programVars.add(f)});this.collectProgramVariables(u)}if(F.length===3)this.collectProgramVariables(F[2]);else if(F.length===2&&(!Array.isArray(F[1])||F[1][0]==="block"))this.collectProgramVariables(F[1]);return}F.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables($){let W=new Set,F=(U)=>{if(!Array.isArray(U))return;let[u,...f]=U;if(u=S(u),Array.isArray(u)){U.forEach((Y)=>F(Y));return}if(C.ASSIGNMENT_OPS.has(u)){let[Y,A]=f;if(typeof Y==="string")W.add(Y);else if(this.is(Y,"array"))this.collectVarsFromArray(Y,W);else if(this.is(Y,"object"))this.collectVarsFromObject(Y,W);F(A);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(F(f[0]),f.length>=2&&Array.isArray(f[1])&&f[1].length===2&&f[1][0]!=="block"){let[Y,A]=f[1];if(Y&&this.is(Y,"object"))Y.slice(1).forEach((_)=>{if(Array.isArray(_)&&_.length===2&&typeof _[1]==="string")W.add(_[1])});else if(Y&&this.is(Y,"array"))Y.slice(1).forEach((_)=>{if(typeof _==="string")W.add(_)});F(A)}if(f.length===3)F(f[2]);else if(f.length===2&&(!Array.isArray(f[1])||f[1][0]==="block"))F(f[1]);return}f.forEach((Y)=>F(Y))};return F($),W}generate($,W="statement"){if($ instanceof String){if(V($,"await")===!0)return`await ${S($)}()`;if(V($,"predicate"))return`(${S($)} != null)`;if(V($,"delimiter")==="///"&&V($,"heregex")){let A=S($),_=A.match(/^\/(.*)\/([gimsuvy]*)$/s);if(_){let[,J,X]=_;return`/${this.processHeregex(J)}/${X}`}return A}let Y=V($,"quote");if(Y){let A=S($);if(Y==='"""'||Y==="'''"){let J=this.extractStringContent($);return J=J.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${J}\``}if(A[0]===Y)return A;let _=A.slice(1,-1);return`${Y}${_}${Y}`}$=S($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let Y=$.slice(1,-1);if(Y.includes(`
120
- `))return`\`${Y.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let A=Y.includes("'")&&!Y.includes('"')?'"':"'",_=Y.replace(new RegExp(A,"g"),`\\${A}`);return`${A}${_}${A}`}if(this.reactiveVars?.has($)&&!this.suppressReactiveUnwrap)return`${$}.value`;return $}if(typeof $==="number")return String($);if($===null||$===void 0)return"null";if(!Array.isArray($))throw Error(`Invalid s-expression: ${JSON.stringify($)}`);let[F,...U]=$,u=V(F,"await");F=S(F);let f=C.GENERATORS[F];if(f)return this[f](F,U,W,$);if(typeof F==="string"&&!F.startsWith('"')&&!F.startsWith("'")){if(C.NUMBER_START_RE.test(F))return F;if(F==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let X=U.map((w)=>this.unwrap(this.generate(w,"value"))).join(", ");return`super.${this.currentMethodName}(${X})`}if(W==="statement"&&U.length===1){let X=this.findPostfixConditional(U[0]);if(X){let w=this.rebuildWithoutConditional(X),H=this.generate(F,"value"),Z=this.generate(X.condition,"value"),D=this.generate(w,"value"),Q=`${H}(${D})`;return`if (${Z}) ${Q}`}}let Y=u===!0,A=this.generate(F,"value"),_=U.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),J=`${A}(${_})`;return Y?`await ${J}`:J}if(Array.isArray(F)&&typeof F[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(F[0]))return`(${$.map((_)=>this.generate(_,"value")).join(", ")})`}if(Array.isArray(F)){if(F[0]==="."&&(F[2]==="new"||S(F[2])==="new")){let X=F[1],w=this.generate(X,"value"),H=U.map((D)=>this.unwrap(this.generate(D,"value"))).join(", ");return`new ${Array.isArray(X)?`(${w})`:w}(${H})`}if(W==="statement"&&U.length===1){let X=this.findPostfixConditional(U[0]);if(X){let w=this.rebuildWithoutConditional(X),H=this.generate(F,"value"),Z=this.generate(X.condition,"value"),D=this.generate(w,"value"),Q=`${H}(${D})`;return`if (${Z}) ${Q}`}}let Y=!1,A;if(F[0]==="."&&V(F[2],"await")===!0){Y=!0;let[X,w]=F.slice(1),H=this.generate(X,"value");A=`${C.NUMBER_LITERAL_RE.test(H)||(this.is(X,"object")||this.is(X,"await")||this.is(X,"yield"))?`(${H})`:H}.${S(w)}`}else A=this.generate(F,"value");let _=U.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),J=`${A}(${_})`;return Y?`await ${J}`:J}throw Error(`Unknown s-expression type: ${F}`)}generateProgram($,W,F,U){let u="",f=[],Y=[],A=[];for(let Q of W){if(!Array.isArray(Q)){A.push(Q);continue}let K=Q[0];if(K==="import")f.push(Q);else if(K==="export"||K==="export-default"||K==="export-all"||K==="export-from")Y.push(Q);else A.push(Q)}let _=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],J=A.map((Q,K)=>{let M=A.length===1&&f.length===0&&Y.length===0,O=this.is(Q,"object"),q=O&&Q.length===2&&Array.isArray(Q[1])&&Array.isArray(Q[1][1])&&Q[1][1][0]==="comprehension",z=this.is(Q,"comprehension")||this.is(Q,"object-comprehension")||this.is(Q,"do-iife"),E=this.programVars.size===0,G=M&&O&&E&&!z&&!q,P=K===A.length-1&&z,I;if(G)I=`(${this.generate(Q,"value")})`;else if(P)I=this.generate(Q,"value");else I=this.generate(Q,"statement");if(I&&!I.endsWith(";")){let N=Array.isArray(Q)?Q[0]:null;if(!_.includes(N)||!I.endsWith("}"))I+=";"}let B=Array.isArray(Q)?Q.loc:null;return{code:I,loc:B}}),X=J.map((Q)=>Q.code).join(`
121
- `),w=!1;if(f.length>0)u+=f.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement"))).join(`
122
- `),w=!0;if(this.programVars.size>0){let Q=Array.from(this.programVars).sort().join(", ");if(w)u+=`
123
- `;u+=`let ${Q};
119
+ `).length}}collectProgramVariables($){if(!Array.isArray($))return;let[W,..._]=$;if(W=S(W),Array.isArray(W)){$.forEach((U)=>this.collectProgramVariables(U));return}if(W==="export"||W==="export-default"||W==="export-all"||W==="export-from")return;if(W==="state"||W==="computed"){let[U]=_,u=S(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(W==="readonly")return;if(W==="component")return;if(C.ASSIGNMENT_OPS.has(W)){let[U,u]=_;if(typeof U==="string"||U instanceof String){let f=S(U);if(!this.reactiveVars?.has(f))this.programVars.add(f)}else if(this.is(U,"array"))this.collectVarsFromArray(U,this.programVars);else if(this.is(U,"object"))this.collectVarsFromObject(U,this.programVars);this.collectProgramVariables(u);return}if(W==="def"||W==="->"||W==="=>"||W==="effect")return;if(W==="if"){let[U,u,f]=_;if(this.collectProgramVariables(U),this.collectProgramVariables(u),f)this.collectProgramVariables(f);return}if(W==="try"){if(this.collectProgramVariables(_[0]),_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[U,u]=_[1];if(U&&this.is(U,"object"))U.slice(1).forEach((f)=>{if(Array.isArray(f)&&f.length===2&&typeof f[1]==="string")this.programVars.add(f[1])});else if(U&&this.is(U,"array"))U.slice(1).forEach((f)=>{if(typeof f==="string")this.programVars.add(f)});this.collectProgramVariables(u)}if(_.length===3)this.collectProgramVariables(_[2]);else if(_.length===2&&(!Array.isArray(_[1])||_[1][0]==="block"))this.collectProgramVariables(_[1]);return}_.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables($){let W=new Set,_=(U)=>{if(!Array.isArray(U))return;let[u,...f]=U;if(u=S(u),Array.isArray(u)){U.forEach((F)=>_(F));return}if(C.ASSIGNMENT_OPS.has(u)){let[F,Y]=f;if(typeof F==="string")W.add(F);else if(this.is(F,"array"))this.collectVarsFromArray(F,W);else if(this.is(F,"object"))this.collectVarsFromObject(F,W);_(Y);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(_(f[0]),f.length>=2&&Array.isArray(f[1])&&f[1].length===2&&f[1][0]!=="block"){let[F,Y]=f[1];if(F&&this.is(F,"object"))F.slice(1).forEach((A)=>{if(Array.isArray(A)&&A.length===2&&typeof A[1]==="string")W.add(A[1])});else if(F&&this.is(F,"array"))F.slice(1).forEach((A)=>{if(typeof A==="string")W.add(A)});_(Y)}if(f.length===3)_(f[2]);else if(f.length===2&&(!Array.isArray(f[1])||f[1][0]==="block"))_(f[1]);return}f.forEach((F)=>_(F))};return _($),W}generate($,W="statement"){if($ instanceof String){if(V($,"await")===!0)return`await ${S($)}()`;if(V($,"predicate"))return`(${S($)} != null)`;if(V($,"delimiter")==="///"&&V($,"heregex")){let Y=S($),A=Y.match(/^\/(.*)\/([gimsuvy]*)$/s);if(A){let[,X,Q]=A;return`/${this.processHeregex(X)}/${Q}`}return Y}let F=V($,"quote");if(F){let Y=S($);if(F==='"""'||F==="'''"){let X=this.extractStringContent($);return X=X.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${X}\``}if(Y[0]===F)return Y;let A=Y.slice(1,-1);return`${F}${A}${F}`}$=S($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let F=$.slice(1,-1);if(F.includes(`
120
+ `))return`\`${F.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=F.includes("'")&&!F.includes('"')?'"':"'",A=F.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${A}${Y}`}if(this.reactiveVars?.has($)&&!this.suppressReactiveUnwrap)return`${$}.value`;return $}if(typeof $==="number")return String($);if($===null||$===void 0)return"null";if(!Array.isArray($))throw Error(`Invalid s-expression: ${JSON.stringify($)}`);let[_,...U]=$,u=V(_,"await");_=S(_);let f=C.GENERATORS[_];if(f)return this[f](_,U,W,$);if(typeof _==="string"&&!_.startsWith('"')&&!_.startsWith("'")){if(C.NUMBER_START_RE.test(_))return _;if(_==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let Q=U.map((w)=>this.unwrap(this.generate(w,"value"))).join(", ");return`super.${this.currentMethodName}(${Q})`}if(W==="statement"&&U.length===1){let Q=this.findPostfixConditional(U[0]);if(Q){let w=this.rebuildWithoutConditional(Q),H=this.generate(_,"value"),Z=this.generate(Q.condition,"value"),M=this.generate(w,"value"),J=`${H}(${M})`;return`if (${Z}) ${J}`}}let F=u===!0,Y=this.generate(_,"value"),A=U.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", "),X=`${Y}(${A})`;return F?`await ${X}`:X}if(Array.isArray(_)&&typeof _[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(_[0]))return`(${$.map((A)=>this.generate(A,"value")).join(", ")})`}if(Array.isArray(_)){if(_[0]==="."&&(_[2]==="new"||S(_[2])==="new")){let Q=_[1],w=this.generate(Q,"value"),H=U.map((M)=>this.unwrap(this.generate(M,"value"))).join(", ");return`new ${Array.isArray(Q)?`(${w})`:w}(${H})`}if(W==="statement"&&U.length===1){let Q=this.findPostfixConditional(U[0]);if(Q){let w=this.rebuildWithoutConditional(Q),H=this.generate(_,"value"),Z=this.generate(Q.condition,"value"),M=this.generate(w,"value"),J=`${H}(${M})`;return`if (${Z}) ${J}`}}let F=!1,Y;if(_[0]==="."&&V(_[2],"await")===!0){F=!0;let[Q,w]=_.slice(1),H=this.generate(Q,"value");Y=`${C.NUMBER_LITERAL_RE.test(H)||(this.is(Q,"object")||this.is(Q,"await")||this.is(Q,"yield"))?`(${H})`:H}.${S(w)}`}else Y=this.generate(_,"value");let A=U.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", "),X=`${Y}(${A})`;return F?`await ${X}`:X}throw Error(`Unknown s-expression type: ${_}`)}generateProgram($,W,_,U){let u="",f=[],F=[],Y=[];for(let J of W){if(!Array.isArray(J)){Y.push(J);continue}let K=J[0];if(K==="import")f.push(J);else if(K==="export"||K==="export-default"||K==="export-all"||K==="export-from")F.push(J);else Y.push(J)}let A=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],X=Y.map((J,K)=>{let D=Y.length===1&&f.length===0&&F.length===0,O=this.is(J,"object"),q=O&&J.length===2&&Array.isArray(J[1])&&Array.isArray(J[1][1])&&J[1][1][0]==="comprehension",z=this.is(J,"comprehension")||this.is(J,"object-comprehension")||this.is(J,"do-iife"),E=this.programVars.size===0,P=D&&O&&E&&!z&&!q,G=K===Y.length-1&&z,I;if(P)I=`(${this.generate(J,"value")})`;else if(G)I=this.generate(J,"value");else I=this.generate(J,"statement");if(I&&!I.endsWith(";")){let N=Array.isArray(J)?J[0]:null;if(!A.includes(N)||!I.endsWith("}"))I+=";"}let B=Array.isArray(J)?J.loc:null;return{code:I,loc:B}}),Q=X.map((J)=>J.code).join(`
121
+ `),w=!1;if(f.length>0)u+=f.map((J)=>this.addSemicolon(J,this.generate(J,"statement"))).join(`
122
+ `),w=!0;if(this.programVars.size>0){let J=Array.from(this.programVars).sort().join(", ");if(w)u+=`
123
+ `;u+=`let ${J};
124
124
  `,w=!0}let H=this.options.skipPreamble,Z=this.options.skipRuntimes;if(!H){if(w)u+=`
125
- `;u+=A1(),w=!0;let Q=Z?"var":"const";if(this.helpers.has("slice"))u+=`${Q} slice = [].slice;
126
- `,w=!0;if(this.helpers.has("modulo"))u+=`${Q} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
127
- `,w=!0;if(this.helpers.has("toMatchable"))u+=`${Q} toMatchable = (v, allowNewlines) => {
125
+ `;u+=Y1(),w=!0;let J=Z?"var":"const";if(this.helpers.has("slice"))u+=`${J} slice = [].slice;
126
+ `,w=!0;if(this.helpers.has("modulo"))u+=`${J} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
127
+ `,w=!0;if(this.helpers.has("toMatchable"))u+=`${J} toMatchable = (v, allowNewlines) => {
128
128
  `,u+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
129
129
  `,u+=` if (v == null) return "";
130
130
  `,u+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
@@ -138,8 +138,8 @@ if (typeof globalThis !== 'undefined') {
138
138
  `,u+=` }
139
139
  `,u+=` return "";
140
140
  `,u+=`};
141
- `,w=!0}let D="";if(Y.length>0)D=`
142
- `+Y.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement"))).join(`
141
+ `,w=!0}let M="";if(F.length>0)M=`
142
+ `+F.map((J)=>this.addSemicolon(J,this.generate(J,"statement"))).join(`
143
143
  `);if(this.usesReactivity&&!H){if(Z)u+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
144
144
  `;else if(typeof globalThis<"u"&&globalThis.__rip)u+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
145
145
  `;else u+=this.getReactiveRuntime();w=!0}if(this.usesTemplates&&!H){if(Z)u+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component } = globalThis.__ripComponent;
@@ -147,146 +147,146 @@ if (typeof globalThis !== 'undefined') {
147
147
  `;else u+=this.getComponentRuntime();w=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!H)u+=`var DATA;
148
148
  _setDataSection();
149
149
  `,w=!0;if(w&&u.length>0)u+=`
150
- `;if(this._stmtEntries=J,this._preambleLines=u.length===0?0:u.split(`
151
- `).length-1,u+=X,u+=D,this.dataSection!==null&&this.dataSection!==void 0)u+=`
150
+ `;if(this._stmtEntries=X,this._preambleLines=u.length===0?0:u.split(`
151
+ `).length-1,u+=Q,u+=M,this.dataSection!==null&&this.dataSection!==void 0)u+=`
152
152
 
153
153
  function _setDataSection() {
154
154
  DATA = ${JSON.stringify(this.dataSection)};
155
- }`;return u}generateBinaryOp($,W,F,U){if(($==="+"||$==="-")&&W.length===1)return`(${$}${this.generate(W[0],"value")})`;let[u,f]=W;if($==="*"){let A=u?.valueOf?.()??u;if(typeof A==="string"&&/^["']/.test(A))return`${this.generate(u,"value")}.repeat(${this.generate(f,"value")})`}let Y=new Set(["<",">","<=",">="]);if(Y.has($)&&Array.isArray(u)){let A=u[0]?.valueOf?.()??u[0];if(Y.has(A)){let _=this.generate(u[1],"value"),J=this.generate(u[2],"value"),X=this.generate(f,"value");return`((${_} ${A} ${J}) && (${J} ${$} ${X}))`}}if($==="!?"){let A=this.generate(u,"value"),_=this.generate(f,"value");return`(${A} !== undefined ? ${A} : ${_})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,W){let[F,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(F,"value")}, ${this.generate(U,"value")})`}generateModuloAssign($,W){let[F,U]=W;this.helpers.add("modulo");let u=this.generate(F,"value"),f=this.generate(U,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,W){let[F,U]=W;return`Math.floor(${this.generate(F,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,W){let[F,U]=W,u=this.generate(F,"value"),f=this.generate(U,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,W,F,U){let[u,f]=W,Y=$==="?="?"??=":$,A=this.is(f,"->")||this.is(f,"=>")||this.is(f,"def");if(u instanceof String&&V(u,"await")!==void 0&&!A){let Q=V(u,"await")===!0?"!":"&";throw Error(`Cannot use ${Q} sigil in variable declaration '${S(u)}'.`)}if(u instanceof String&&V(u,"await")===!0&&A)this.nextFunctionIsVoid=!0;let _=this.is(u,"array",0),J=this.is(u,"object",0);if(_||J){let Q=this.generate(f,"value");return J&&F==="statement"?`(${Q})`:Q}if(Array.isArray(f)&&Y==="="&&f[0]==="control"){let[,Q,K,M]=f,O=S(Q),q=M[0]==="return",z=this.generate(u,"value"),E=this.generate(K,"value"),G=M.length>1?M[1]:null,R=q?G?`return ${this.generate(G,"value")}`:"return":G?`throw ${this.generate(G,"value")}`:"throw new Error()";if(F==="value"){if(O==="??")return`(() => { const __v = ${E}; if (__v == null) ${R}; return (${z} = __v); })()`;if(O==="||")return`(() => { const __v = ${E}; if (!__v) ${R}; return (${z} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${R}; return (${z} = __v); })()`}if(O==="??")return`if ((${z} = ${E}) == null) ${R}`;if(O==="||")return`if (!(${z} = ${E})) ${R}`;return`if ((${z} = ${E})) ${R}`}if(this.is(u,"array")){let Q=u.slice(1).findIndex((K)=>this.is(K,"...")||K==="...");if(Q!==-1&&Q<u.length-2){let K=u.slice(1),M=K.slice(Q+1),O=M.length;if(O>0){let q=this.generate(f,"value"),E=K.slice(0,Q).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),G=M.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),K.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let R=K[Q],P=this.is(R,"...")?R[1]:null,I=[];if(E)I.push(`[${E}] = ${q}`);if(P)I.push(`[...${P}] = ${q}.slice(${Q}, -${O})`);return I.push(`[${G}] = slice.call(${q}, -${O})`),I.join(", ")}}}if(F==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[Q,K,M]=f;if(this.is(M,"if")&&M.length===3){let[,O,q]=M,z=Array.isArray(q)&&q.length===1?q[0]:q,E=[Q,K,z],G=this.generate(u,"value"),R=this.generate(O,"value"),P=this.generate(E,"value");return`if (${R}) ${G} = ${P}`}}if(F==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[Q,K,M]=f,O=Array.isArray(M)&&M.length===1&&(!Array.isArray(M[0])||M[0][0]!=="block");if(Q==="if"&&O){let q=Array.isArray(M)&&M.length===1?M[0]:M,z=this.generate(u,"value"),E=this.unwrapLogical(this.generate(K,"value")),G=this.generate(q,"value");return`if (${E}) ${z} = ${G}`}}let X;if(u instanceof String&&V(u,"await")!==void 0)X=S(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))X=`${u}.value`;else X=this.generate(u,"value");let w=this.generate(f,"value");if(!this.is(f,"object"))w=this.unwrap(w);let Z=F==="value",D=F==="statement"&&this.is(u,"object");if(Z||D)return`(${X} ${Y} ${w})`;return`${X} ${Y} ${w}`}generatePropertyAccess($,W,F,U){let[u,f]=W;if(this._atParamMap&&u==="this"){let J=this._atParamMap.get(S(f));if(J)return J}let Y=this.generate(u,"value"),_=C.NUMBER_LITERAL_RE.test(Y)||Y.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${Y})`:Y;if(V(f,"await")===!0)return`await ${_}.${S(f)}()`;if(V(f,"predicate"))return`(${_}.${S(f)} != null)`;return`${_}.${S(f)}`}generateOptionalProperty($,W){let[F,U]=W;return`${this.generate(F,"value")}?.${U}`}generateRegexIndex($,W){let[F,U,u]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(F,"value"),Y=this.generate(U,"value"),A=u!==null?this.generate(u,"value"):"0",_=Y.includes("/m")?", true":"";return`(_ = toMatchable(${f}${_}).match(${Y})) && _[${A}]`}generateIndexAccess($,W){let[F,U]=W;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",f=this.generate(F,"value"),[Y,A]=U.slice(1);if(Y===null&&A===null)return`${f}.slice()`;if(Y===null){if(u&&this.is(A,"-",1)&&(S(A[1])??A[1])==1)return`${f}.slice(0)`;let X=this.generate(A,"value");return u?`${f}.slice(0, +${X} + 1 || 9e9)`:`${f}.slice(0, ${X})`}if(A===null)return`${f}.slice(${this.generate(Y,"value")})`;let _=this.generate(Y,"value");if(u&&this.is(A,"-",1)&&(S(A[1])??A[1])==1)return`${f}.slice(${_})`;let J=this.generate(A,"value");return u?`${f}.slice(${_}, +${J} + 1 || 9e9)`:`${f}.slice(${_}, ${J})`}if(this.is(U,"-",1)){let u=S(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(F,"value")}.at(-${u})`}return`${this.generate(F,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,W){let[F,U]=W;if(this.is(U,"-",1)){let u=S(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(F,"value")}?.at(-${u})`}return`${this.generate(F,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,W){let[F,...U]=W;return`${this.generate(F,"value")}?.(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,W,F,U){let[u,f,Y]=W,A=V(u,"await")===!0,_=S(u),J=this.generateParamList(f),X=this.generateFunctionBody(Y,f,A),w=this.containsAwait(Y),H=this.containsYield(Y);return`${w?"async ":""}function${H?"*":""} ${_}(${J}) ${X}`}generateThinArrow($,W,F,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let A=this.generateParamList(u),_=this.generateFunctionBody(f,u,Y),J=this.containsAwait(f),X=this.containsYield(f),w=`${J?"async ":""}function${X?"*":""}(${A}) ${_}`;return F==="value"?`(${w})`:w}generateFatArrow($,W,F,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let A=this.generateParamList(u),J=u.length===1&&typeof u[0]==="string"&&!A.includes("=")&&!A.includes("...")&&!A.includes("[")&&!A.includes("{")?A:`(${A})`,w=this.containsAwait(f)?"async ":"";if(!Y){if(this.is(f,"block")&&f.length===2){let Z=f[1];if(!Array.isArray(Z)||Z[0]!=="return"){let D=this.generate(Z,"value");if(D[0]==="{")D=`(${D})`;return`${w}${J} => ${D}`}}if(!Array.isArray(f)||f[0]!=="block"){let Z=this.generate(f,"value");if(Z[0]==="{")Z=`(${Z})`;return`${w}${J} => ${Z}`}}let H=this.generateFunctionBody(f,u,Y);return`${w}${J} => ${H}`}generateReturn($,W,F,U){if(W.length===0)return"return";let[u]=W;if(this.sideEffectOnly)return"return";if(this.is(u,"if")){let[,f,Y,...A]=u;if(A.length===0){let _=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(f,"value")}) return ${this.generate(_,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,f,Y]=u[1],A=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(f,"value")}) return ${this.generate(["new",A],"value")}`}return`return ${this.generate(u,"value")}`}generateState($,W){let[F,U]=W;this.usesReactivity=!0;let u=S(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(U,"value")})`}generateComputed($,W){let[F,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=S(F)??F;if(this.reactiveVars.add(u),this.is(U,"block")&&U.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(U)})`;return`const ${u} = __computed(() => ${this.generate(U,"value")})`}generateReadonly($,W){let[F,U]=W;return`const ${S(F)??F} = ${this.generate(U,"value")}`}generateEffect($,W){let[F,U]=W;this.usesReactivity=!0;let u;if(this.is(U,"block"))u=this.generateFunctionBody(U);else if(this.is(U,"->")||this.is(U,"=>")){let Y=this.generate(U,"value");if(F)return`const ${S(F)??this.generate(F,"value")} = __effect(${Y})`;return`__effect(${Y})`}else u=`{ ${this.generate(U,"value")}; }`;let f=`__effect(() => ${u})`;if(F)return`const ${S(F)??this.generate(F,"value")} = ${f}`;return f}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,W){return`(${this.generate(W[0],"value")} != null)`}generateDefined($,W){return`(${this.generate(W[0],"value")} !== undefined)`}generateTernary($,W,F){let[U,u,f]=W;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let A=this.generate(u[1],"value"),_=this.generate(u[2],"value"),J=this.generate(f,"value");return`${A} = (${this.unwrap(this.generate(U,"value"))} ? ${_} : ${J})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,W){let[F,U]=W,u=this.generate(F,"value");if(Array.isArray(U)&&U.length>1){let f=U[0];if(Array.isArray(f)||typeof f==="string"&&/^[a-zA-Z_$]/.test(f)){let A=this.generate(f,"value"),_=U.slice(1).map((J)=>this.generate(J,"value"));return`${A}(${u}, ${_.join(", ")})`}}return`${this.generate(U,"value")}(${u})`}generateLoop($,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN($,W){let[F,U]=W;return`for (let it = 0; it < ${this.generate(F,"value")}; it++) ${this.generateLoopBody(U)}`}generateAwait($,W){return`await ${this.generate(W[0],"value")}`}generateYield($,W){return W.length===0?"yield":`yield ${this.generate(W[0],"value")}`}generateYieldFrom($,W){return`yield* ${this.generate(W[0],"value")}`}generateIf($,W,F,U){let[u,f,...Y]=W;return F==="value"?this.generateIfAsExpression(u,f,Y):this.generateIfAsStatement(u,f,Y)}generateForIn($,W,F,U){let[u,f,Y,A,_]=W;if(F==="value"&&this.comprehensionDepth===0){let K=["for-in",u,f,Y];return this.generate(["comprehension",_,[K],A?[A]:[]],F)}let J=Array.isArray(u)?u:[u],X=J.length===0,[w,H]=X?["_i",null]:J,Z=this.is(w,"array")||this.is(w,"object")?this.generateDestructuringPattern(w):w;if(Y&&Y!==null){let K=this.generate(f,"value"),M=H||"_i",O=this.generate(Y,"value"),q=this.is(Y,"-",1),z=q&&(Y[1]==="1"||Y[1]===1||S(Y[1])==="1"),E=!q&&(Y==="1"||Y===1||S(Y)==="1"),G;if(z)G=`for (let ${M} = ${K}.length - 1; ${M} >= 0; ${M}--) `;else if(E)G=`for (let ${M} = 0; ${M} < ${K}.length; ${M}++) `;else if(q)G=`for (let ${M} = ${K}.length - 1; ${M} >= 0; ${M} += ${O}) `;else G=`for (let ${M} = 0; ${M} < ${K}.length; ${M} += ${O}) `;if(this.is(_,"block")){let R=_.slice(1);this.indentLevel++;let P=[];if(!X)P.push(`const ${Z} = ${K}[${M}];`);if(A)P.push(`if (${this.generate(A,"value")}) {`),this.indentLevel++,P.push(...this.formatStatements(R)),this.indentLevel--,P.push(this.indent()+"}");else P.push(...R.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,G+`{
156
- ${P.map((I)=>this.indent()+I).join(`
155
+ }`;return u}generateBinaryOp($,W,_,U){if(($==="+"||$==="-")&&W.length===1)return`(${$}${this.generate(W[0],"value")})`;let[u,f]=W;if($==="*"){let Y=u?.valueOf?.()??u;if(typeof Y==="string"&&/^["']/.test(Y))return`${this.generate(u,"value")}.repeat(${this.generate(f,"value")})`}let F=new Set(["<",">","<=",">="]);if(F.has($)&&Array.isArray(u)){let Y=u[0]?.valueOf?.()??u[0];if(F.has(Y)){let A=this.generate(u[1],"value"),X=this.generate(u[2],"value"),Q=this.generate(f,"value");return`((${A} ${Y} ${X}) && (${X} ${$} ${Q}))`}}if($==="!?"){let Y=this.generate(u,"value"),A=this.generate(f,"value");return`(${Y} !== undefined ? ${Y} : ${A})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(u,"value")} ${$} ${this.generate(f,"value")})`}generateModulo($,W){let[_,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(_,"value")}, ${this.generate(U,"value")})`}generateModuloAssign($,W){let[_,U]=W;this.helpers.add("modulo");let u=this.generate(_,"value"),f=this.generate(U,"value");return`${u} = modulo(${u}, ${f})`}generateFloorDiv($,W){let[_,U]=W;return`Math.floor(${this.generate(_,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,W){let[_,U]=W,u=this.generate(_,"value"),f=this.generate(U,"value");return`${u} = Math.floor(${u} / ${f})`}generateAssignment($,W,_,U){let[u,f]=W,F=$==="?="?"??=":$,Y=this.is(f,"->")||this.is(f,"=>")||this.is(f,"def");if(u instanceof String&&V(u,"await")!==void 0&&!Y){let J=V(u,"await")===!0?"!":"&";throw Error(`Cannot use ${J} sigil in variable declaration '${S(u)}'.`)}if(u instanceof String&&V(u,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let A=this.is(u,"array",0),X=this.is(u,"object",0);if(A||X){let J=this.generate(f,"value");return X&&_==="statement"?`(${J})`:J}if(Array.isArray(f)&&F==="="&&f[0]==="control"){let[,J,K,D]=f,O=S(J),q=D[0]==="return",z=this.generate(u,"value"),E=this.generate(K,"value"),P=D.length>1?D[1]:null,R=q?P?`return ${this.generate(P,"value")}`:"return":P?`throw ${this.generate(P,"value")}`:"throw new Error()";if(_==="value"){if(O==="??")return`(() => { const __v = ${E}; if (__v == null) ${R}; return (${z} = __v); })()`;if(O==="||")return`(() => { const __v = ${E}; if (!__v) ${R}; return (${z} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${R}; return (${z} = __v); })()`}if(O==="??")return`if ((${z} = ${E}) == null) ${R}`;if(O==="||")return`if (!(${z} = ${E})) ${R}`;return`if ((${z} = ${E})) ${R}`}if(this.is(u,"array")){let J=u.slice(1).findIndex((K)=>this.is(K,"...")||K==="...");if(J!==-1&&J<u.length-2){let K=u.slice(1),D=K.slice(J+1),O=D.length;if(O>0){let q=this.generate(f,"value"),E=K.slice(0,J).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),P=D.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),K.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])});let R=K[J],G=this.is(R,"...")?R[1]:null,I=[];if(E)I.push(`[${E}] = ${q}`);if(G)I.push(`[...${G}] = ${q}.slice(${J}, -${O})`);return I.push(`[${P}] = slice.call(${q}, -${O})`),I.join(", ")}}}if(_==="statement"&&$==="="&&Array.isArray(f)&&(f[0]==="||"||f[0]==="&&")&&f.length===3){let[J,K,D]=f;if(this.is(D,"if")&&D.length===3){let[,O,q]=D,z=Array.isArray(q)&&q.length===1?q[0]:q,E=[J,K,z],P=this.generate(u,"value"),R=this.generate(O,"value"),G=this.generate(E,"value");return`if (${R}) ${P} = ${G}`}}if(_==="statement"&&$==="="&&Array.isArray(f)&&f.length===3){let[J,K,D]=f,O=Array.isArray(D)&&D.length===1&&(!Array.isArray(D[0])||D[0][0]!=="block");if(J==="if"&&O){let q=Array.isArray(D)&&D.length===1?D[0]:D,z=this.generate(u,"value"),E=this.unwrapLogical(this.generate(K,"value")),P=this.generate(q,"value");return`if (${E}) ${z} = ${P}`}}let Q;if(u instanceof String&&V(u,"await")!==void 0)Q=S(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))Q=`${u}.value`;else Q=this.generate(u,"value");let w=this.generate(f,"value");if(!this.is(f,"object"))w=this.unwrap(w);let Z=_==="value",M=_==="statement"&&this.is(u,"object");if(Z||M)return`(${Q} ${F} ${w})`;return`${Q} ${F} ${w}`}generatePropertyAccess($,W,_,U){let[u,f]=W;if(this._atParamMap&&u==="this"){let X=this._atParamMap.get(S(f));if(X)return X}let F=this.generate(u,"value"),A=C.NUMBER_LITERAL_RE.test(F)||F.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${F})`:F;if(V(f,"await")===!0)return`await ${A}.${S(f)}()`;if(V(f,"predicate"))return`(${A}.${S(f)} != null)`;return`${A}.${S(f)}`}generateOptionalProperty($,W){let[_,U]=W;return`${this.generate(_,"value")}?.${U}`}generateRegexIndex($,W){let[_,U,u]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(_,"value"),F=this.generate(U,"value"),Y=u!==null?this.generate(u,"value"):"0",A=F.includes("/m")?", true":"";return`(_ = toMatchable(${f}${A}).match(${F})) && _[${Y}]`}generateIndexAccess($,W){let[_,U]=W;if(this.is(U,"..")||this.is(U,"...")){let u=U[0]==="..",f=this.generate(_,"value"),[F,Y]=U.slice(1);if(F===null&&Y===null)return`${f}.slice()`;if(F===null){if(u&&this.is(Y,"-",1)&&(S(Y[1])??Y[1])==1)return`${f}.slice(0)`;let Q=this.generate(Y,"value");return u?`${f}.slice(0, +${Q} + 1 || 9e9)`:`${f}.slice(0, ${Q})`}if(Y===null)return`${f}.slice(${this.generate(F,"value")})`;let A=this.generate(F,"value");if(u&&this.is(Y,"-",1)&&(S(Y[1])??Y[1])==1)return`${f}.slice(${A})`;let X=this.generate(Y,"value");return u?`${f}.slice(${A}, +${X} + 1 || 9e9)`:`${f}.slice(${A}, ${X})`}if(this.is(U,"-",1)){let u=S(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(_,"value")}.at(-${u})`}return`${this.generate(_,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,W){let[_,U]=W;if(this.is(U,"-",1)){let u=S(U[1])??U[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.generate(_,"value")}?.at(-${u})`}return`${this.generate(_,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,W){let[_,...U]=W;return`${this.generate(_,"value")}?.(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateDef($,W,_,U){let[u,f,F]=W,Y=V(u,"await")===!0,A=S(u),X=this.generateParamList(f),Q=this.generateFunctionBody(F,f,Y),w=this.containsAwait(F),H=this.containsYield(F);return`${w?"async ":""}function${H?"*":""} ${A}(${X}) ${Q}`}generateThinArrow($,W,_,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(u),A=this.generateFunctionBody(f,u,F),X=this.containsAwait(f),Q=this.containsYield(f),w=`${X?"async ":""}function${Q?"*":""}(${Y}) ${A}`;return _==="value"?`(${w})`:w}generateFatArrow($,W,_,U){let[u,f]=W;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(f))u=["it"];let F=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(u),X=u.length===1&&typeof u[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,w=this.containsAwait(f)?"async ":"";if(!F){if(this.is(f,"block")&&f.length===2){let Z=f[1];if(!Array.isArray(Z)||Z[0]!=="return"){let M=this.generate(Z,"value");if(M[0]==="{")M=`(${M})`;return`${w}${X} => ${M}`}}if(!Array.isArray(f)||f[0]!=="block"){let Z=this.generate(f,"value");if(Z[0]==="{")Z=`(${Z})`;return`${w}${X} => ${Z}`}}let H=this.generateFunctionBody(f,u,F);return`${w}${X} => ${H}`}generateReturn($,W,_,U){if(W.length===0)return"return";let[u]=W;if(this.sideEffectOnly)return"return";if(this.is(u,"if")){let[,f,F,...Y]=u;if(Y.length===0){let A=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate(f,"value")}) return ${this.generate(A,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,f,F]=u[1],Y=Array.isArray(F)&&F.length===1?F[0]:F;return`if (${this.generate(f,"value")}) return ${this.generate(["new",Y],"value")}`}return`return ${this.generate(u,"value")}`}generateState($,W){let[_,U]=W;this.usesReactivity=!0;let u=S(_)??_;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.generate(U,"value")})`}generateComputed($,W){let[_,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=S(_)??_;if(this.reactiveVars.add(u),this.is(U,"block")&&U.length>2)return`const ${u} = __computed(() => ${this.generateFunctionBody(U)})`;return`const ${u} = __computed(() => ${this.generate(U,"value")})`}generateReadonly($,W){let[_,U]=W;return`const ${S(_)??_} = ${this.generate(U,"value")}`}generateEffect($,W){let[_,U]=W;this.usesReactivity=!0;let u;if(this.is(U,"block"))u=this.generateFunctionBody(U);else if(this.is(U,"->")||this.is(U,"=>")){let F=this.generate(U,"value");if(_)return`const ${S(_)??this.generate(_,"value")} = __effect(${F})`;return`__effect(${F})`}else u=`{ ${this.generate(U,"value")}; }`;let f=`__effect(() => ${u})`;if(_)return`const ${S(_)??this.generate(_,"value")} = ${f}`;return f}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,W){return`(${this.generate(W[0],"value")} != null)`}generateDefined($,W){return`(${this.generate(W[0],"value")} !== undefined)`}generateTernary($,W,_){let[U,u,f]=W;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let Y=this.generate(u[1],"value"),A=this.generate(u[2],"value"),X=this.generate(f,"value");return`${Y} = (${this.unwrap(this.generate(U,"value"))} ? ${A} : ${X})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(u,"value")} : ${this.generate(f,"value")})`}generatePipe($,W){let[_,U]=W,u=this.generate(_,"value");if(Array.isArray(U)&&U.length>1){let f=U[0];if(Array.isArray(f)||typeof f==="string"&&/^[a-zA-Z_$]/.test(f)){let Y=this.generate(f,"value"),A=U.slice(1).map((X)=>this.generate(X,"value"));return`${Y}(${u}, ${A.join(", ")})`}}return`${this.generate(U,"value")}(${u})`}generateLoop($,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN($,W){let[_,U]=W;return`for (let it = 0; it < ${this.generate(_,"value")}; it++) ${this.generateLoopBody(U)}`}generateAwait($,W){return`await ${this.generate(W[0],"value")}`}generateYield($,W){return W.length===0?"yield":`yield ${this.generate(W[0],"value")}`}generateYieldFrom($,W){return`yield* ${this.generate(W[0],"value")}`}generateIf($,W,_,U){let[u,f,...F]=W;return _==="value"?this.generateIfAsExpression(u,f,F):this.generateIfAsStatement(u,f,F)}generateForIn($,W,_,U){let[u,f,F,Y,A]=W;if(_==="value"&&this.comprehensionDepth===0){let K=["for-in",u,f,F];return this.generate(["comprehension",A,[K],Y?[Y]:[]],_)}let X=Array.isArray(u)?u:[u],Q=X.length===0,[w,H]=Q?["_i",null]:X,Z=this.is(w,"array")||this.is(w,"object")?this.generateDestructuringPattern(w):w;if(F&&F!==null){let K=this.generate(f,"value"),D=H||"_i",O=this.generate(F,"value"),q=this.is(F,"-",1),z=q&&(F[1]==="1"||F[1]===1||S(F[1])==="1"),E=!q&&(F==="1"||F===1||S(F)==="1"),P;if(z)P=`for (let ${D} = ${K}.length - 1; ${D} >= 0; ${D}--) `;else if(E)P=`for (let ${D} = 0; ${D} < ${K}.length; ${D}++) `;else if(q)P=`for (let ${D} = ${K}.length - 1; ${D} >= 0; ${D} += ${O}) `;else P=`for (let ${D} = 0; ${D} < ${K}.length; ${D} += ${O}) `;if(this.is(A,"block")){let R=A.slice(1);this.indentLevel++;let G=[];if(!Q)G.push(`const ${Z} = ${K}[${D}];`);if(Y)G.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,G.push(...this.formatStatements(R)),this.indentLevel--,G.push(this.indent()+"}");else G.push(...R.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,P+`{
156
+ ${G.map((I)=>this.indent()+I).join(`
157
157
  `)}
158
- ${this.indent()}}`}if(X)return A?G+`{ if (${this.generate(A,"value")}) ${this.generate(_,"statement")}; }`:G+`{ ${this.generate(_,"statement")}; }`;return A?G+`{ const ${Z} = ${K}[${M}]; if (${this.generate(A,"value")}) ${this.generate(_,"statement")}; }`:G+`{ const ${Z} = ${K}[${M}]; ${this.generate(_,"statement")}; }`}if(H){let K=this.generate(f,"value"),M=`for (let ${H} = 0; ${H} < ${K}.length; ${H}++) `;if(this.is(_,"block")){if(M+=`{
159
- `,this.indentLevel++,M+=this.indent()+`const ${Z} = ${K}[${H}];
160
- `,A)M+=this.indent()+`if (${this.unwrap(this.generate(A,"value"))}) {
161
- `,this.indentLevel++,M+=this.formatStatements(_.slice(1)).join(`
158
+ ${this.indent()}}`}if(Q)return Y?P+`{ if (${this.generate(Y,"value")}) ${this.generate(A,"statement")}; }`:P+`{ ${this.generate(A,"statement")}; }`;return Y?P+`{ const ${Z} = ${K}[${D}]; if (${this.generate(Y,"value")}) ${this.generate(A,"statement")}; }`:P+`{ const ${Z} = ${K}[${D}]; ${this.generate(A,"statement")}; }`}if(H){let K=this.generate(f,"value"),D=`for (let ${H} = 0; ${H} < ${K}.length; ${H}++) `;if(this.is(A,"block")){if(D+=`{
159
+ `,this.indentLevel++,D+=this.indent()+`const ${Z} = ${K}[${H}];
160
+ `,Y)D+=this.indent()+`if (${this.unwrap(this.generate(Y,"value"))}) {
161
+ `,this.indentLevel++,D+=this.formatStatements(A.slice(1)).join(`
162
162
  `)+`
163
- `,this.indentLevel--,M+=this.indent()+`}
164
- `;else M+=this.formatStatements(_.slice(1)).join(`
163
+ `,this.indentLevel--,D+=this.indent()+`}
164
+ `;else D+=this.formatStatements(A.slice(1)).join(`
165
165
  `)+`
166
- `;this.indentLevel--,M+=this.indent()+"}"}else M+=A?`{ const ${Z} = ${K}[${H}]; if (${this.unwrap(this.generate(A,"value"))}) ${this.generate(_,"statement")}; }`:`{ const ${Z} = ${K}[${H}]; ${this.generate(_,"statement")}; }`;return M}let D=Array.isArray(f)&&f[0];if(D instanceof String)D=S(D);if(D===".."||D==="..."){let K=D==="...",[M,O]=f.slice(1),q=(z)=>typeof z==="number"||typeof z==="string"&&!z.includes("(")||z instanceof String&&!S(z).includes("(")||this.is(z,".");if(q(M)&&q(O)){let z=this.generate(M,"value"),E=this.generate(O,"value"),G=K?"<":"<=",R=Y?`${Z} += ${this.generate(Y,"value")}`:`${Z}++`,P=`for (let ${Z} = ${z}; ${Z} ${G} ${E}; ${R}) `;return P+=A?this.generateLoopBodyWithGuard(_,A):this.generateLoopBody(_),P}}let Q=`for (const ${Z} of ${this.generate(f,"value")}) `;return Q+=A?this.generateLoopBodyWithGuard(_,A):this.generateLoopBody(_),Q}generateForOf($,W,F,U){let[u,f,Y,A,_]=W;if(F==="value"&&this.comprehensionDepth===0){let Z=["for-of",u,f,Y];return this.generate(["comprehension",_,[Z],A?[A]:[]],F)}let[J,X]=Array.isArray(u)?u:[u],w=this.generate(f,"value"),H=`for (const ${J} in ${w}) `;if(Y&&!X&&!A){if(this.is(_,"block")){this.indentLevel++;let Z=[`if (!Object.hasOwn(${w}, ${J})) continue;`,..._.slice(1).map((D)=>this.addSemicolon(D,this.generate(D,"statement")))];return this.indentLevel--,H+`{
167
- ${Z.map((D)=>this.indent()+D).join(`
166
+ `;this.indentLevel--,D+=this.indent()+"}"}else D+=Y?`{ const ${Z} = ${K}[${H}]; if (${this.unwrap(this.generate(Y,"value"))}) ${this.generate(A,"statement")}; }`:`{ const ${Z} = ${K}[${H}]; ${this.generate(A,"statement")}; }`;return D}let M=Array.isArray(f)&&f[0];if(M instanceof String)M=S(M);if(M===".."||M==="..."){let K=M==="...",[D,O]=f.slice(1),q=(z)=>typeof z==="number"||typeof z==="string"&&!z.includes("(")||z instanceof String&&!S(z).includes("(")||this.is(z,".");if(q(D)&&q(O)){let z=this.generate(D,"value"),E=this.generate(O,"value"),P=K?"<":"<=",R=F?`${Z} += ${this.generate(F,"value")}`:`${Z}++`,G=`for (let ${Z} = ${z}; ${Z} ${P} ${E}; ${R}) `;return G+=Y?this.generateLoopBodyWithGuard(A,Y):this.generateLoopBody(A),G}}let J=`for (const ${Z} of ${this.generate(f,"value")}) `;return J+=Y?this.generateLoopBodyWithGuard(A,Y):this.generateLoopBody(A),J}generateForOf($,W,_,U){let[u,f,F,Y,A]=W;if(_==="value"&&this.comprehensionDepth===0){let Z=["for-of",u,f,F];return this.generate(["comprehension",A,[Z],Y?[Y]:[]],_)}let[X,Q]=Array.isArray(u)?u:[u],w=this.generate(f,"value"),H=`for (const ${X} in ${w}) `;if(F&&!Q&&!Y){if(this.is(A,"block")){this.indentLevel++;let Z=[`if (!Object.hasOwn(${w}, ${X})) continue;`,...A.slice(1).map((M)=>this.addSemicolon(M,this.generate(M,"statement")))];return this.indentLevel--,H+`{
167
+ ${Z.map((M)=>this.indent()+M).join(`
168
168
  `)}
169
- ${this.indent()}}`}return H+`{ if (!Object.hasOwn(${w}, ${J})) continue; ${this.generate(_,"statement")}; }`}if(X){if(this.is(_,"block")){let D=_.slice(1);this.indentLevel++;let Q=[];if(Y)Q.push(`if (!Object.hasOwn(${w}, ${J})) continue;`);if(Q.push(`const ${X} = ${w}[${J}];`),A)Q.push(`if (${this.generate(A,"value")}) {`),this.indentLevel++,Q.push(...D.map((K)=>this.addSemicolon(K,this.generate(K,"statement")))),this.indentLevel--,Q.push(this.indent()+"}");else Q.push(...D.map((K)=>this.addSemicolon(K,this.generate(K,"statement"))));return this.indentLevel--,H+`{
170
- ${Q.map((K)=>this.indent()+K).join(`
169
+ ${this.indent()}}`}return H+`{ if (!Object.hasOwn(${w}, ${X})) continue; ${this.generate(A,"statement")}; }`}if(Q){if(this.is(A,"block")){let M=A.slice(1);this.indentLevel++;let J=[];if(F)J.push(`if (!Object.hasOwn(${w}, ${X})) continue;`);if(J.push(`const ${Q} = ${w}[${X}];`),Y)J.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,J.push(...M.map((K)=>this.addSemicolon(K,this.generate(K,"statement")))),this.indentLevel--,J.push(this.indent()+"}");else J.push(...M.map((K)=>this.addSemicolon(K,this.generate(K,"statement"))));return this.indentLevel--,H+`{
170
+ ${J.map((K)=>this.indent()+K).join(`
171
171
  `)}
172
- ${this.indent()}}`}let Z="";if(Y)Z+=`if (!Object.hasOwn(${w}, ${J})) continue; `;if(Z+=`const ${X} = ${w}[${J}]; `,A)Z+=`if (${this.generate(A,"value")}) `;return Z+=`${this.generate(_,"statement")};`,H+`{ ${Z} }`}return H+=A?this.generateLoopBodyWithGuard(_,A):this.generateLoopBody(_),H}generateForAs($,W,F,U){let u=Array.isArray(W[0])?W[0]:[W[0]],[f]=u,Y=W[1],A=W[2],_=W[3],J=W[4],X=!1,w=[];if(this.is(f,"array")){let K=f.slice(1),M=K.findIndex((O)=>this.is(O,"...")||O==="...");if(M!==-1&&M<K.length-1){X=!0;let O=K.slice(M+1),q=O.length,z=K.slice(0,M),E=K[M],G=this.is(E,"...")?E[1]:"_rest",R=z.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),P=R?`${R}, ...${G}`:`...${G}`,I=O.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");w.push(`[${P}] = _item`),w.push(`[${I}] = ${G}.splice(-${q})`),this.helpers.add("slice"),K.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])})}}let H=this.generate(Y,"value"),Z=A?"await ":"",D;if(X)D="_item";else if(this.is(f,"array")||this.is(f,"object"))D=this.generateDestructuringPattern(f);else D=f;let Q=`for ${Z}(const ${D} of ${H}) `;if(X&&w.length>0){let K=this.unwrapBlock(J),M=this.withIndent(()=>[...w.map((O)=>this.indent()+O+";"),...this.formatStatements(K)]);Q+=`{
173
- ${M.join(`
172
+ ${this.indent()}}`}let Z="";if(F)Z+=`if (!Object.hasOwn(${w}, ${X})) continue; `;if(Z+=`const ${Q} = ${w}[${X}]; `,Y)Z+=`if (${this.generate(Y,"value")}) `;return Z+=`${this.generate(A,"statement")};`,H+`{ ${Z} }`}return H+=Y?this.generateLoopBodyWithGuard(A,Y):this.generateLoopBody(A),H}generateForAs($,W,_,U){let u=Array.isArray(W[0])?W[0]:[W[0]],[f]=u,F=W[1],Y=W[2],A=W[3],X=W[4],Q=!1,w=[];if(this.is(f,"array")){let K=f.slice(1),D=K.findIndex((O)=>this.is(O,"...")||O==="...");if(D!==-1&&D<K.length-1){Q=!0;let O=K.slice(D+1),q=O.length,z=K.slice(0,D),E=K[D],P=this.is(E,"...")?E[1]:"_rest",R=z.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),G=R?`${R}, ...${P}`:`...${P}`,I=O.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");w.push(`[${G}] = _item`),w.push(`[${I}] = ${P}.splice(-${q})`),this.helpers.add("slice"),K.forEach((B)=>{if(B===","||B==="...")return;if(typeof B==="string")this.programVars.add(B);else if(this.is(B,"...")&&typeof B[1]==="string")this.programVars.add(B[1])})}}let H=this.generate(F,"value"),Z=Y?"await ":"",M;if(Q)M="_item";else if(this.is(f,"array")||this.is(f,"object"))M=this.generateDestructuringPattern(f);else M=f;let J=`for ${Z}(const ${M} of ${H}) `;if(Q&&w.length>0){let K=this.unwrapBlock(X),D=this.withIndent(()=>[...w.map((O)=>this.indent()+O+";"),...this.formatStatements(K)]);J+=`{
173
+ ${D.join(`
174
174
  `)}
175
- ${this.indent()}}`}else Q+=_?this.generateLoopBodyWithGuard(J,_):this.generateLoopBody(J);return Q}generateWhile($,W){let F=W[0],U=W.length===3?W[1]:null,u=W[W.length-1];return`while (${this.unwrap(this.generate(F,"value"))}) `+(U?this.generateLoopBodyWithGuard(u,U):this.generateLoopBody(u))}generateRange($,W){if($==="..."){if(W.length===1)return`...${this.generate(W[0],"value")}`;let[Y,A]=W,_=this.generate(Y,"value"),J=this.generate(A,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${_}, ${J})`}let[F,U]=W,u=this.generate(F,"value"),f=this.generate(U,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${u}, ${f})`}generateNot($,W){let[F]=W;if(typeof F==="string"||F instanceof String)return`!${this.generate(F,"value")}`;if(Array.isArray(F)){if([".","?.","[]","optindex","optcall"].includes(F[0]))return`!${this.generate(F,"value")}`}let U=this.generate(F,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot($,W){return`(~${this.generate(W[0],"value")})`}generateIncDec($,W){let[F,U]=W,u=this.generate(F,"value");return U?`(${u}${$})`:`(${$}${u})`}generateTypeof($,W){return`typeof ${this.generate(W[0],"value")}`}generateDelete($,W){return`(delete ${this.generate(W[0],"value")})`}generateInstanceof($,W,F,U){let[u,f]=W,Y=V(U[0],"invert"),A=`(${this.generate(u,"value")} instanceof ${this.generate(f,"value")})`;return Y?`(!${A})`:A}generateIn($,W,F,U){let[u,f]=W,Y=this.generate(u,"value"),A=V(U[0],"invert");if(this.is(f,"object")){let X=`(${Y} in ${this.generate(f,"value")})`;return A?`(!${X})`:X}let _=this.generate(f,"value"),J=`(Array.isArray(${_}) || typeof ${_} === 'string' ? ${_}.includes(${Y}) : (${Y} in ${_}))`;return A?`(!${J})`:J}generateOf($,W,F,U){let[u,f]=W,Y=this.generate(u,"value"),A=this.generate(f,"value"),_=V(U[0],"invert"),J=`(${Y} in ${A})`;return _?`(!${J})`:J}generateRegexMatch($,W){let[F,U]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(U,"value"),f=u.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(F,"value")}${f}).match(${u}))`}generateNew($,W){let[F]=W;if(this.is(F,".")||this.is(F,"?.")){let[U,u,f]=F;if(Array.isArray(u)&&!u[0].startsWith)return`(${this.generate(["new",u],"value")}).${f}`;return`new ${this.generate(u,"value")}.${f}`}if(Array.isArray(F)){let[U,...u]=F;return`new ${this.generate(U,"value")}(${u.map((f)=>this.unwrap(this.generate(f,"value"))).join(", ")})`}return`new ${this.generate(F,"value")}()`}generateLogicalAnd($,W,F,U){let u=this.flattenBinaryChain(U).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map((f)=>this.generate(f,"value")).join(" && ")})`}generateLogicalOr($,W,F,U){let u=this.flattenBinaryChain(U).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map((f)=>this.generate(f,"value")).join(" || ")})`}generateArray($,W){let F=W.length>0&&W[W.length-1]===",",U=W.map((u)=>{if(u===",")return"";if(u==="...")return"";if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;return this.generate(u,"value")}).join(", ");return F?`[${U},]`:`[${U}]`}generateObject($,W,F){if(W.length===1&&Array.isArray(W[0])&&Array.isArray(W[0][1])&&W[0][1][0]==="comprehension"){let[u,f]=W[0],[,Y,A,_]=f;return this.generate(["object-comprehension",u,Y,A,_],F)}return`{${W.map((u)=>{if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;let[f,Y,A]=u,_;if(this.is(f,"dynamicKey"))_=`[${this.generate(f[1],"value")}]`;else if(this.is(f,"str"))_=`[${this.generate(f,"value")}]`;else this.suppressReactiveUnwrap=!0,_=this.generate(f,"value"),this.suppressReactiveUnwrap=!1;let J=this.generate(Y,"value");if(A==="=")return`${_} = ${J}`;if(A===":")return`${_}: ${J}`;if(_===J&&!Array.isArray(f))return _;return`${_}: ${J}`}).join(", ")}}`}generateBlock($,W,F){if(F==="statement")return`{
175
+ ${this.indent()}}`}else J+=A?this.generateLoopBodyWithGuard(X,A):this.generateLoopBody(X);return J}generateWhile($,W){let _=W[0],U=W.length===3?W[1]:null,u=W[W.length-1];return`while (${this.unwrap(this.generate(_,"value"))}) `+(U?this.generateLoopBodyWithGuard(u,U):this.generateLoopBody(u))}generateRange($,W){if($==="..."){if(W.length===1)return`...${this.generate(W[0],"value")}`;let[F,Y]=W,A=this.generate(F,"value"),X=this.generate(Y,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${X})`}let[_,U]=W,u=this.generate(_,"value"),f=this.generate(U,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${u}, ${f})`}generateNot($,W){let[_]=W;if(typeof _==="string"||_ instanceof String)return`!${this.generate(_,"value")}`;if(Array.isArray(_)){if([".","?.","[]","optindex","optcall"].includes(_[0]))return`!${this.generate(_,"value")}`}let U=this.generate(_,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot($,W){return`(~${this.generate(W[0],"value")})`}generateIncDec($,W){let[_,U]=W,u=this.generate(_,"value");return U?`(${u}${$})`:`(${$}${u})`}generateTypeof($,W){return`typeof ${this.generate(W[0],"value")}`}generateDelete($,W){return`(delete ${this.generate(W[0],"value")})`}generateInstanceof($,W,_,U){let[u,f]=W,F=V(U[0],"invert"),Y=`(${this.generate(u,"value")} instanceof ${this.generate(f,"value")})`;return F?`(!${Y})`:Y}generateIn($,W,_,U){let[u,f]=W,F=this.generate(u,"value"),Y=V(U[0],"invert");if(this.is(f,"object")){let Q=`(${F} in ${this.generate(f,"value")})`;return Y?`(!${Q})`:Q}let A=this.generate(f,"value"),X=`(Array.isArray(${A}) || typeof ${A} === 'string' ? ${A}.includes(${F}) : (${F} in ${A}))`;return Y?`(!${X})`:X}generateOf($,W,_,U){let[u,f]=W,F=this.generate(u,"value"),Y=this.generate(f,"value"),A=V(U[0],"invert"),X=`(${F} in ${Y})`;return A?`(!${X})`:X}generateRegexMatch($,W){let[_,U]=W;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(U,"value"),f=u.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(_,"value")}${f}).match(${u}))`}generateNew($,W){let[_]=W;if(this.is(_,".")||this.is(_,"?.")){let[U,u,f]=_;if(Array.isArray(u)&&!u[0].startsWith)return`(${this.generate(["new",u],"value")}).${f}`;return`new ${this.generate(u,"value")}.${f}`}if(Array.isArray(_)){let[U,...u]=_;return`new ${this.generate(U,"value")}(${u.map((f)=>this.unwrap(this.generate(f,"value"))).join(", ")})`}return`new ${this.generate(_,"value")}()`}generateLogicalAnd($,W,_,U){let u=this.flattenBinaryChain(U).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map((f)=>this.generate(f,"value")).join(" && ")})`}generateLogicalOr($,W,_,U){let u=this.flattenBinaryChain(U).slice(1);if(u.length===0)return"true";if(u.length===1)return this.generate(u[0],"value");return`(${u.map((f)=>this.generate(f,"value")).join(" || ")})`}generateArray($,W){let _=W.length>0&&W[W.length-1]===",",U=W.map((u)=>{if(u===",")return"";if(u==="...")return"";if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;return this.generate(u,"value")}).join(", ");return _?`[${U},]`:`[${U}]`}generateObject($,W,_){if(W.length===1&&Array.isArray(W[0])&&Array.isArray(W[0][1])&&W[0][1][0]==="comprehension"){let[u,f]=W[0],[,F,Y,A]=f;return this.generate(["object-comprehension",u,F,Y,A],_)}return`{${W.map((u)=>{if(this.is(u,"..."))return`...${this.generate(u[1],"value")}`;let[f,F,Y]=u,A;if(this.is(f,"dynamicKey"))A=`[${this.generate(f[1],"value")}]`;else if(this.is(f,"str"))A=`[${this.generate(f,"value")}]`;else this.suppressReactiveUnwrap=!0,A=this.generate(f,"value"),this.suppressReactiveUnwrap=!1;let X=this.generate(F,"value");if(Y==="=")return`${A} = ${X}`;if(Y===":")return`${A}: ${X}`;if(A===X&&!Array.isArray(f))return A;return`${A}: ${X}`}).join(", ")}}`}generateBlock($,W,_){if(_==="statement")return`{
176
176
  ${this.withIndent(()=>this.formatStatements(W)).join(`
177
177
  `)}
178
- ${this.indent()}}`;if(W.length===0)return"undefined";if(W.length===1)return this.generate(W[0],F);let U=W[W.length-1];if(Array.isArray(U)&&["break","continue","return","throw"].includes(U[0])){let f=W.map((Y)=>this.addSemicolon(Y,this.generate(Y,"statement")));return`{
179
- ${this.withIndent(()=>f.map((Y)=>this.indent()+Y).join(`
178
+ ${this.indent()}}`;if(W.length===0)return"undefined";if(W.length===1)return this.generate(W[0],_);let U=W[W.length-1];if(Array.isArray(U)&&["break","continue","return","throw"].includes(U[0])){let f=W.map((F)=>this.addSemicolon(F,this.generate(F,"statement")));return`{
179
+ ${this.withIndent(()=>f.map((F)=>this.indent()+F).join(`
180
180
  `))}
181
- ${this.indent()}}`}return`(${W.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,W,F){let U=F==="value",u="try ",f=W[0];if(u+=U&&this.is(f,"block")?this.generateBlockWithReturns(f):this.generate(f,"statement"),W.length>=2&&Array.isArray(W[1])&&W[1].length===2&&W[1][0]!=="block"){let[Y,A]=W[1];if(u+=" catch",Y&&(this.is(Y,"object")||this.is(Y,"array"))){u+=" (error)";let _=`(${this.generate(Y,"value")} = error)`;A=this.is(A,"block")?["block",_,...A.slice(1)]:["block",_,A]}else if(Y)u+=` (${Y})`;u+=" "+(U&&this.is(A,"block")?this.generateBlockWithReturns(A):this.generate(A,"statement"))}else if(W.length===2)u+=" finally "+this.generate(W[1],"statement");if(W.length===3)u+=" finally "+this.generate(W[2],"statement");if(W.length===1)u+=" catch {}";if(U)return`(${this.containsAwait(W[0])||W[1]&&this.containsAwait(W[1])?"async ":""}() => { ${u} })()`;return u}generateThrow($,W,F){let[U]=W;if(Array.isArray(U)){let f=U,Y=null;if(U[0]==="new"&&Array.isArray(U[1])&&U[1][0]==="if")Y="new",f=U[1];else if(U[0]==="if")f=U;if(f[0]==="if"){let[,A,_]=f,J=Array.isArray(_)&&_.length===1?_[0]:_;U=Y==="new"?["new",J]:J;let X=this.generate(A,"value"),w=`throw ${this.generate(U,"value")}`;return`if (${X}) {
181
+ ${this.indent()}}`}return`(${W.map((f)=>this.generate(f,"value")).join(", ")})`}generateTry($,W,_){let U=_==="value",u="try ",f=W[0];if(u+=U&&this.is(f,"block")?this.generateBlockWithReturns(f):this.generate(f,"statement"),W.length>=2&&Array.isArray(W[1])&&W[1].length===2&&W[1][0]!=="block"){let[F,Y]=W[1];if(u+=" catch",F&&(this.is(F,"object")||this.is(F,"array"))){u+=" (error)";let A=`(${this.generate(F,"value")} = error)`;Y=this.is(Y,"block")?["block",A,...Y.slice(1)]:["block",A,Y]}else if(F)u+=` (${F})`;u+=" "+(U&&this.is(Y,"block")?this.generateBlockWithReturns(Y):this.generate(Y,"statement"))}else if(W.length===2)u+=" finally "+this.generate(W[1],"statement");if(W.length===3)u+=" finally "+this.generate(W[2],"statement");if(W.length===1)u+=" catch {}";if(U)return`(${this.containsAwait(W[0])||W[1]&&this.containsAwait(W[1])?"async ":""}() => { ${u} })()`;return u}generateThrow($,W,_){let[U]=W;if(Array.isArray(U)){let f=U,F=null;if(U[0]==="new"&&Array.isArray(U[1])&&U[1][0]==="if")F="new",f=U[1];else if(U[0]==="if")f=U;if(f[0]==="if"){let[,Y,A]=f,X=Array.isArray(A)&&A.length===1?A[0]:A;U=F==="new"?["new",X]:X;let Q=this.generate(Y,"value"),w=`throw ${this.generate(U,"value")}`;return`if (${Q}) {
182
182
  ${this.indent()} ${w};
183
- ${this.indent()}}`}}let u=`throw ${this.generate(U,"value")}`;return F==="value"?`(() => { ${u}; })()`:u}generateControl($,W,F){let[U,u,f]=W,Y=S(U),A=f[0]==="return",_=this.generate(u,"value"),J=f.length>1?f[1]:null,X=A?J?`return ${this.generate(J,"value")}`:"return":J?`throw ${this.generate(J,"value")}`:"throw new Error()",w=this.wrapForCondition(_);if(F==="value"){if(Y==="??")return`(() => { const __v = ${_}; if (__v == null) ${X}; return __v; })()`;if(Y==="||")return`(() => { const __v = ${_}; if (!__v) ${X}; return __v; })()`;return`(() => { const __v = ${_}; if (__v) ${X}; return __v; })()`}if(Y==="??")return`if (${w} == null) ${X}`;if(Y==="||")return`if (!${w}) ${X}`;return`if (${w}) ${X}`}generateSwitch($,W,F){let[U,u,f]=W;if(U===null)return this.generateSwitchAsIfChain(u,f,F);let Y=`switch (${this.generate(U,"value")}) {
184
- `;this.indentLevel++;for(let A of u){let[,_,J]=A;for(let X of _){let w=S(X)??X,H;if(Array.isArray(w))H=this.generate(w,"value");else if(typeof w==="string"&&(w.startsWith('"')||w.startsWith("'")))H=`'${w.slice(1,-1)}'`;else H=this.generate(w,"value");Y+=this.indent()+`case ${H}:
185
- `}this.indentLevel++,Y+=this.generateSwitchCaseBody(J,F),this.indentLevel--}if(f)Y+=this.indent()+`default:
186
- `,this.indentLevel++,Y+=this.generateSwitchCaseBody(f,F),this.indentLevel--;if(this.indentLevel--,Y+=this.indent()+"}",F==="value")return`(${u.some((_)=>this.containsAwait(_[2]))||f&&this.containsAwait(f)?"async ":""}() => { ${Y} })()`;return Y}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,W,F){let U=Array.isArray($)?$:[$],u=U.length===0,[f,Y]=u?["_i",null]:U,A=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;if(F&&F!==null){let _=Array.isArray(W)&&W[0];if(_ instanceof String)_=S(_);if(_===".."||_==="..."){let O=_==="...",[q,z]=W.slice(1),E=this.generate(q,"value"),G=this.generate(z,"value"),R=this.generate(F,"value");return{header:`for (let ${A} = ${E}; ${A} ${O?"<":"<="} ${G}; ${A} += ${R})`,setup:null}}let X=this.generate(W,"value"),w=Y||"_i",H=this.generate(F,"value"),Z=this.is(F,"-",1),D=Z&&(F[1]==="1"||F[1]===1||S(F[1])==="1"),Q=!Z&&(F==="1"||F===1||S(F)==="1"),K=D?`${w}--`:Q?`${w}++`:`${w} += ${H}`;return{header:Z?`for (let ${w} = ${X}.length - 1; ${w} >= 0; ${K})`:`for (let ${w} = 0; ${w} < ${X}.length; ${K})`,setup:u?null:`const ${A} = ${X}[${w}];`}}if(Y){let _=this.generate(W,"value");return{header:`for (let ${Y} = 0; ${Y} < ${_}.length; ${Y}++)`,setup:`const ${A} = ${_}[${Y}];`}}return{header:`for (const ${A} of ${this.generate(W,"value")})`,setup:null}}_forOfHeader($,W,F){let U=Array.isArray($)?$:[$],[u,f]=U,Y=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u,A=this.generate(W,"value");return{header:`for (const ${Y} in ${A})`,own:F,vv:f,oc:A,kvp:Y}}_forAsHeader($,W,F){let U=Array.isArray($)?$:[$],[u]=U,f=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;return{header:`for ${F?"await ":""}(const ${f} of ${this.generate(W,"value")})`}}generateComprehension($,W,F){let[U,u,f]=W;if(F==="statement")return this.generateComprehensionAsLoop(U,u,f);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(U,u,f,this.comprehensionTarget);let A=`(${this.containsAwait(U)?"async ":""}() => {
187
- `;this.indentLevel++,this.comprehensionDepth++,A+=this.indent()+`const result = [];
188
- `;for(let X of u){let[w,H,Z,D]=X;if(w==="for-in"){let{header:Q,setup:K}=this._forInHeader(H,Z,D);if(A+=this.indent()+Q+` {
189
- `,this.indentLevel++,K)A+=this.indent()+K+`
190
- `}else if(w==="for-of"){let{header:Q,own:K,vv:M,oc:O,kvp:q}=this._forOfHeader(H,Z,D);if(A+=this.indent()+Q+` {
191
- `,this.indentLevel++,K)A+=this.indent()+`if (!Object.hasOwn(${O}, ${q})) continue;
192
- `;if(M)A+=this.indent()+`const ${M} = ${O}[${q}];
193
- `}else if(w==="for-as"){let{header:Q}=this._forAsHeader(H,Z,X[3]);A+=this.indent()+Q+` {
194
- `,this.indentLevel++}}for(let X of f)A+=this.indent()+`if (${this.generate(X,"value")}) {
195
- `,this.indentLevel++;let _=(X)=>{if(typeof X==="string"&&(X==="break"||X==="continue"))return!0;if(!Array.isArray(X))return!1;if(["break","continue","return","throw"].includes(X[0]))return!0;if(X[0]==="if")return X.slice(1).some(_);return X.some(_)},J=["for-in","for-of","for-as","while","loop"];if(this.is(U,"block"))for(let X=0;X<U.length-1;X++){let w=U[X+1];if(X!==U.length-2||_(w))A+=this.indent()+this.generate(w,"statement")+`;
196
- `;else if(Array.isArray(w)&&J.includes(w[0]))A+=this.indent()+this.generate(w,"statement")+`;
197
- `;else A+=this.indent()+`result.push(${this.generate(w,"value")});
198
- `}else if(_(U))A+=this.indent()+this.generate(U,"statement")+`;
199
- `;else if(Array.isArray(U)&&J.includes(U[0]))A+=this.indent()+this.generate(U,"statement")+`;
200
- `;else A+=this.indent()+`result.push(${this.generate(U,"value")});
201
- `;for(let X=0;X<f.length;X++)this.indentLevel--,A+=this.indent()+`}
202
- `;for(let X=0;X<u.length;X++)this.indentLevel--,A+=this.indent()+`}
203
- `;return A+=this.indent()+`return result;
204
- `,this.indentLevel--,this.comprehensionDepth--,A+=this.indent()+"})()",A}generateObjectComprehension($,W,F){let[U,u,f,Y]=W,A=`(() => {
205
- `;this.indentLevel++,A+=this.indent()+`const result = {};
206
- `;for(let _ of f){let[J,X,w,H]=_;if(J==="for-of"){let[Z,D]=X,Q=this.generate(w,"value");if(A+=this.indent()+`for (const ${Z} in ${Q}) {
207
- `,this.indentLevel++,H)A+=this.indent()+`if (!Object.hasOwn(${Q}, ${Z})) continue;
208
- `;if(D)A+=this.indent()+`const ${D} = ${Q}[${Z}];
209
- `}}for(let _ of Y)A+=this.indent()+`if (${this.generate(_,"value")}) {
210
- `,this.indentLevel++;A+=this.indent()+`result[${this.generate(U,"value")}] = ${this.generate(u,"value")};
211
- `;for(let _=0;_<Y.length;_++)this.indentLevel--,A+=this.indent()+`}
212
- `;for(let _=0;_<f.length;_++)this.indentLevel--,A+=this.indent()+`}
213
- `;return A+=this.indent()+`return result;
214
- `,this.indentLevel--,A+=this.indent()+"})()",A}generateClass($,W,F){let[U,u,...f]=W,Y=U?`class ${U}`:"class";if(u)Y+=` extends ${this.generate(u,"value")}`;if(Y+=` {
215
- `,f.length>0&&Array.isArray(f[0])){let A=f[0];if(A[0]==="block"){let _=A.slice(1),J=_.length>0&&Array.isArray(_[0])&&_[0][0]==="object";if(J&&_.length===1){let X=_[0].slice(1);this.indentLevel++;let w=[];for(let[H,Z]of X){let D=this.is(H,".")&&H[1]==="this",Q=this.is(H,"computed"),K=this.extractMemberName(H);if(this.is(Z,"=>")&&!D&&!Q&&K!=="constructor")w.push(K)}for(let[H,Z]of X){let D=this.is(H,".")&&H[1]==="this",Q=this.is(H,"computed"),K=this.extractMemberName(H);if(this.is(Z,"->")||this.is(Z,"=>")){let[,M,O]=Z,q=this.containsAwait(O),z=this.containsYield(O),E=M,G=[];if(K==="constructor"){let I=!!u,B=I?new Map:null;E=M.map((N)=>{if(this.is(N,".")&&N[1]==="this"){let T=N[2],L=I?`_${T}`:T;if(G.push(`this.${T} = ${L}`),I)B.set(T,L);return L}if(this.is(N,"default")&&this.is(N[1],".")&&N[1][1]==="this"){let T=N[1][2],L=I?`_${T}`:T;if(G.push(`this.${T} = ${L}`),I)B.set(T,L);return["default",L,N[2]]}return N});for(let N of w)G.unshift(`this.${N} = this.${N}.bind(this)`);if(B?.size>0)this._atParamMap=B}let R=this.generateParamList(E),P=(D?"static ":"")+(q?"async ":"")+(z?"*":"");if(Y+=this.indent()+`${P}${K}(${R}) `,!Q)this.currentMethodName=K;Y+=this.generateMethodBody(O,G,K==="constructor",E),this._atParamMap=null,this.currentMethodName=null,Y+=`
216
- `}else if(D)Y+=this.indent()+`static ${K} = ${this.generate(Z,"value")};
217
- `;else Y+=this.indent()+`${K} = ${this.generate(Z,"value")};
218
- `}this.indentLevel--}else if(J){let X=_[0].slice(1),w=_.slice(1);this.indentLevel++;for(let[H,Z]of X){let D=this.is(H,".")&&H[1]==="this",Q=this.extractMemberName(H);if(this.is(Z,"->")||this.is(Z,"=>")){let[,K,M]=Z,O=this.generateParamList(K),q=(D?"static ":"")+(this.containsAwait(M)?"async ":"")+(this.containsYield(M)?"*":"");Y+=this.indent()+`${q}${Q}(${O}) `,this.currentMethodName=Q,Y+=this.generateMethodBody(M,[],Q==="constructor",K),this.currentMethodName=null,Y+=`
219
- `}else if(D)Y+=this.indent()+`static ${Q} = ${this.generate(Z,"value")};
220
- `;else Y+=this.indent()+`${Q} = ${this.generate(Z,"value")};
221
- `}for(let H of w)if(this.is(H,"class")){let[,Z,D,...Q]=H;if(this.is(Z,".")&&Z[1]==="this")Y+=this.indent()+`static ${Z[2]} = ${this.generate(["class",null,D,...Q],"value")};
222
- `}else Y+=this.indent()+this.generate(H,"statement")+`;
223
- `;this.indentLevel--}else{this.indentLevel++;for(let X of _)if(this.is(X,"=")&&Array.isArray(X[1])&&X[1][0]==="."&&X[1][1]==="this")Y+=this.indent()+`static ${X[1][2]} = ${this.generate(X[2],"value")};
224
- `;else Y+=this.indent()+this.generate(X,"statement")+`;
225
- `;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper($,W){if(W.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let F=W.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${F})`;return`super(${F})`}generateImport($,W,F,U){if(W.length===1){let A=`import(${this.generate(W[0],"value")})`;if(V(U[0],"await")===!0)return`(await ${A})`;return A}let[u,f]=W,Y=this.addJsExtensionAndAssertions(f);if(typeof u==="string")return`import ${u} from ${Y}`;if(Array.isArray(u)){if(u[0]==="*"&&u.length===2)return`import * as ${u[1]} from ${Y}`;if(typeof u[0]==="string"&&Array.isArray(u[1])){let _=u[0],J=u[1];if(J[0]==="*"&&J.length===2)return`import ${_}, * as ${J[1]} from ${Y}`;let X=(Array.isArray(J)?J:[J]).map((w)=>Array.isArray(w)&&w.length===2?`${w[0]} as ${w[1]}`:w).join(", ");return`import ${_}, { ${X} } from ${Y}`}return`import { ${u.map((_)=>Array.isArray(_)&&_.length===2?`${_[0]} as ${_[1]}`:_).join(", ")} } from ${Y}`}return`import ${this.generate(u,"value")} from ${Y}`}generateExport($,W){let[F]=W;if(this.options.skipExports){if(Array.isArray(F)&&F.every((U)=>typeof U==="string"))return"";if(this.is(F,"="))return`const ${F[1]} = ${this.generate(F[2],"value")}`;return this.generate(F,"statement")}if(Array.isArray(F)&&F.every((U)=>typeof U==="string"))return`export { ${F.join(", ")} }`;if(this.is(F,"="))return`export const ${F[1]} = ${this.generate(F[2],"value")}`;return`export ${this.generate(F,"statement")}`}generateExportDefault($,W){let[F]=W;if(this.options.skipExports){if(this.is(F,"="))return`const ${F[1]} = ${this.generate(F[2],"value")}`;return this.generate(F,"statement")}if(this.is(F,"="))return`const ${F[1]} = ${this.generate(F[2],"value")};
226
- export default ${F[1]}`;return`export default ${this.generate(F,"statement")}`}generateExportAll($,W){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(W[0])}`}generateExportFrom($,W){if(this.options.skipExports)return"";let[F,U]=W,u=this.addJsExtensionAndAssertions(U);if(Array.isArray(F))return`export { ${F.map((Y)=>Array.isArray(Y)&&Y.length===2?`${Y[0]} as ${Y[1]}`:Y).join(", ")} } from ${u}`;return`export ${F} from ${u}`}generateDoIIFE($,W){return`(${this.generate(W[0],"statement")})()`}generateRegex($,W){return W.length===0?$:this.generate(W[0],"value")}generateTaggedTemplate($,W){let[F,U]=W,u=this.generate(F,"value"),f=this.generate(U,"value");if(f.startsWith("`"))return`${u}${f}`;if(f.startsWith('"')||f.startsWith("'"))return`${u}\`${f.slice(1,-1)}\``;return`${u}\`${f}\``}generateString($,W){let F="`";for(let U of W)if(U instanceof String)F+=this.extractStringContent(U);else if(typeof U==="string")if(U.startsWith('"')||U.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",U);F+=U.slice(1,-1)}else F+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let u=U[0];F+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=U.length===1&&Array.isArray(U[0])?U[0]:U;F+="${"+this.generate(u,"value")+"}"}return F+"`"}findPostfixConditional($){if(!Array.isArray($))return null;let W=$[0];if(W==="if"&&$.length===3)return{type:W,condition:$[1],value:$[2]};if(W==="+"||W==="-"||W==="*"||W==="/")for(let F=1;F<$.length;F++){let U=this.findPostfixConditional($[F]);if(U)return U.parentOp=W,U.operandIndex=F,U.otherOperands=$.slice(1).filter((u,f)=>f!==F-1),U}return null}rebuildWithoutConditional($){let W=Array.isArray($.value)&&$.value.length===1?$.value[0]:$.value;if($.parentOp)return[$.parentOp,...$.otherOperands,W];return W}generateDestructuringPattern($){return this.formatParam($)}generateParamList($){let W=$.findIndex((U)=>this.is(U,"expansion"));if(W!==-1){let U=$.slice(0,W),u=$.slice(W+1),f=U.map((Y)=>this.formatParam(Y)).join(", ");return this.expansionAfterParams=u,f?`${f}, ..._rest`:"..._rest"}let F=$.findIndex((U)=>this.is(U,"rest"));if(F!==-1&&F<$.length-1){let U=$.slice(0,F),u=$[F],f=$.slice(F+1),Y=U.map((A)=>this.formatParam(A));return this.restMiddleParam={restName:u[1],afterParams:f,beforeCount:U.length},Y.length>0?`${Y.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((U)=>this.formatParam(U)).join(", ")}formatParam($){if(typeof $==="string")return $;if($ instanceof String)return $.valueOf();if(this.is($,"rest"))return`...${$[1]}`;if(this.is($,"default"))return`${$[1]} = ${this.generate($[2],"value")}`;if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"array"))return`[${$.slice(1).map((F)=>{if(F===",")return"";if(F==="...")return"";if(this.is(F,"..."))return`...${F[1]}`;if(this.is(F,"=")&&typeof F[1]==="string")return`${F[1]} = ${this.generate(F[2],"value")}`;if(typeof F==="string")return F;return this.formatParam(F)}).join(", ")}]`;if(this.is($,"object"))return`{${$.slice(1).map((F)=>{if(this.is(F,"..."))return`...${F[1]}`;if(this.is(F,"default"))return`${F[1]} = ${this.generate(F[2],"value")}`;let[U,u]=F;if(U===u)return U;return`${U}: ${u}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,W=[],F={}){let{sideEffectOnly:U=!1,autoAssignments:u=[],isConstructor:f=!1,hasExpansionParams:Y=!1}=F,A=this.sideEffectOnly;this.sideEffectOnly=U;let _=new Set,J=(Q)=>{if(typeof Q==="string")_.add(Q);else if(Array.isArray(Q)){if(Q[0]==="rest"||Q[0]==="..."){if(typeof Q[1]==="string")_.add(Q[1])}else if(Q[0]==="default"){if(typeof Q[1]==="string")_.add(Q[1])}else if(Q[0]==="array"||Q[0]==="object")this.collectVarsFromArray(Q,_)}};if(Array.isArray(W))W.forEach(J);let X=this.collectFunctionVariables($),w=new Set([...X].filter((Q)=>!this.programVars.has(Q)&&!this.reactiveVars?.has(Q)&&!_.has(Q)&&!this.scopeStack.some((K)=>K.has(Q)))),H=["return","throw","break","continue"],Z=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...w,..._])),this.is($,"block")){let Q=this.unwrapBlock($);if(Y&&this.expansionAfterParams?.length>0)Q=[...this.expansionAfterParams.map((z,E)=>{return`const ${typeof z==="string"?z:JSON.stringify(z)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...Q],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:q,afterParams:z}=this.restMiddleParam,E=z.length,G=[];if(z.forEach((R,P)=>{let I=typeof R==="string"?R:this.is(R,"default")?R[1]:JSON.stringify(R);G.push(`const ${I} = ${q}[${q}.length - ${E-P}]`)}),E>0)G.push(`${q} = ${q}.slice(0, -${E})`);Q=[...G,...Q],this.restMiddleParam=null}this.indentLevel++;let K=`{
183
+ ${this.indent()}}`}}let u=`throw ${this.generate(U,"value")}`;return _==="value"?`(() => { ${u}; })()`:u}generateControl($,W,_){let[U,u,f]=W,F=S(U),Y=f[0]==="return",A=this.generate(u,"value"),X=f.length>1?f[1]:null,Q=Y?X?`return ${this.generate(X,"value")}`:"return":X?`throw ${this.generate(X,"value")}`:"throw new Error()",w=this.wrapForCondition(A);if(_==="value"){if(F==="??")return`(() => { const __v = ${A}; if (__v == null) ${Q}; return __v; })()`;if(F==="||")return`(() => { const __v = ${A}; if (!__v) ${Q}; return __v; })()`;return`(() => { const __v = ${A}; if (__v) ${Q}; return __v; })()`}if(F==="??")return`if (${w} == null) ${Q}`;if(F==="||")return`if (!${w}) ${Q}`;return`if (${w}) ${Q}`}generateSwitch($,W,_){let[U,u,f]=W;if(U===null)return this.generateSwitchAsIfChain(u,f,_);let F=`switch (${this.generate(U,"value")}) {
184
+ `;this.indentLevel++;for(let Y of u){let[,A,X]=Y;for(let Q of A){let w=S(Q)??Q,H;if(Array.isArray(w))H=this.generate(w,"value");else if(typeof w==="string"&&(w.startsWith('"')||w.startsWith("'")))H=`'${w.slice(1,-1)}'`;else H=this.generate(w,"value");F+=this.indent()+`case ${H}:
185
+ `}this.indentLevel++,F+=this.generateSwitchCaseBody(X,_),this.indentLevel--}if(f)F+=this.indent()+`default:
186
+ `,this.indentLevel++,F+=this.generateSwitchCaseBody(f,_),this.indentLevel--;if(this.indentLevel--,F+=this.indent()+"}",_==="value")return`(${u.some((A)=>this.containsAwait(A[2]))||f&&this.containsAwait(f)?"async ":""}() => { ${F} })()`;return F}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,W,_){let U=Array.isArray($)?$:[$],u=U.length===0,[f,F]=u?["_i",null]:U,Y=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;if(_&&_!==null){let A=Array.isArray(W)&&W[0];if(A instanceof String)A=S(A);if(A===".."||A==="..."){let O=A==="...",[q,z]=W.slice(1),E=this.generate(q,"value"),P=this.generate(z,"value"),R=this.generate(_,"value");return{header:`for (let ${Y} = ${E}; ${Y} ${O?"<":"<="} ${P}; ${Y} += ${R})`,setup:null}}let Q=this.generate(W,"value"),w=F||"_i",H=this.generate(_,"value"),Z=this.is(_,"-",1),M=Z&&(_[1]==="1"||_[1]===1||S(_[1])==="1"),J=!Z&&(_==="1"||_===1||S(_)==="1"),K=M?`${w}--`:J?`${w}++`:`${w} += ${H}`;return{header:Z?`for (let ${w} = ${Q}.length - 1; ${w} >= 0; ${K})`:`for (let ${w} = 0; ${w} < ${Q}.length; ${K})`,setup:u?null:`const ${Y} = ${Q}[${w}];`}}if(F){let A=this.generate(W,"value");return{header:`for (let ${F} = 0; ${F} < ${A}.length; ${F}++)`,setup:`const ${Y} = ${A}[${F}];`}}return{header:`for (const ${Y} of ${this.generate(W,"value")})`,setup:null}}_forOfHeader($,W,_){let U=Array.isArray($)?$:[$],[u,f]=U,F=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u,Y=this.generate(W,"value");return{header:`for (const ${F} in ${Y})`,own:_,vv:f,oc:Y,kvp:F}}_forAsHeader($,W,_){let U=Array.isArray($)?$:[$],[u]=U,f=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;return{header:`for ${_?"await ":""}(const ${f} of ${this.generate(W,"value")})`}}generateComprehension($,W,_){let[U,u,f]=W;if(_==="statement")return this.generateComprehensionAsLoop(U,u,f);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(U,u,f,this.comprehensionTarget);let Y=`(${this.containsAwait(U)?"async ":""}() => {
187
+ `;this.indentLevel++,this.comprehensionDepth++,Y+=this.indent()+`const result = [];
188
+ `;for(let Q of u){let[w,H,Z,M]=Q;if(w==="for-in"){let{header:J,setup:K}=this._forInHeader(H,Z,M);if(Y+=this.indent()+J+` {
189
+ `,this.indentLevel++,K)Y+=this.indent()+K+`
190
+ `}else if(w==="for-of"){let{header:J,own:K,vv:D,oc:O,kvp:q}=this._forOfHeader(H,Z,M);if(Y+=this.indent()+J+` {
191
+ `,this.indentLevel++,K)Y+=this.indent()+`if (!Object.hasOwn(${O}, ${q})) continue;
192
+ `;if(D)Y+=this.indent()+`const ${D} = ${O}[${q}];
193
+ `}else if(w==="for-as"){let{header:J}=this._forAsHeader(H,Z,Q[3]);Y+=this.indent()+J+` {
194
+ `,this.indentLevel++}}for(let Q of f)Y+=this.indent()+`if (${this.generate(Q,"value")}) {
195
+ `,this.indentLevel++;let A=(Q)=>{if(typeof Q==="string"&&(Q==="break"||Q==="continue"))return!0;if(!Array.isArray(Q))return!1;if(["break","continue","return","throw"].includes(Q[0]))return!0;if(Q[0]==="if")return Q.slice(1).some(A);return Q.some(A)},X=["for-in","for-of","for-as","while","loop"];if(this.is(U,"block"))for(let Q=0;Q<U.length-1;Q++){let w=U[Q+1];if(Q!==U.length-2||A(w))Y+=this.indent()+this.generate(w,"statement")+`;
196
+ `;else if(Array.isArray(w)&&X.includes(w[0]))Y+=this.indent()+this.generate(w,"statement")+`;
197
+ `;else Y+=this.indent()+`result.push(${this.generate(w,"value")});
198
+ `}else if(A(U))Y+=this.indent()+this.generate(U,"statement")+`;
199
+ `;else if(Array.isArray(U)&&X.includes(U[0]))Y+=this.indent()+this.generate(U,"statement")+`;
200
+ `;else Y+=this.indent()+`result.push(${this.generate(U,"value")});
201
+ `;for(let Q=0;Q<f.length;Q++)this.indentLevel--,Y+=this.indent()+`}
202
+ `;for(let Q=0;Q<u.length;Q++)this.indentLevel--,Y+=this.indent()+`}
203
+ `;return Y+=this.indent()+`return result;
204
+ `,this.indentLevel--,this.comprehensionDepth--,Y+=this.indent()+"})()",Y}generateObjectComprehension($,W,_){let[U,u,f,F]=W,Y=`(() => {
205
+ `;this.indentLevel++,Y+=this.indent()+`const result = {};
206
+ `;for(let A of f){let[X,Q,w,H]=A;if(X==="for-of"){let[Z,M]=Q,J=this.generate(w,"value");if(Y+=this.indent()+`for (const ${Z} in ${J}) {
207
+ `,this.indentLevel++,H)Y+=this.indent()+`if (!Object.hasOwn(${J}, ${Z})) continue;
208
+ `;if(M)Y+=this.indent()+`const ${M} = ${J}[${Z}];
209
+ `}}for(let A of F)Y+=this.indent()+`if (${this.generate(A,"value")}) {
210
+ `,this.indentLevel++;Y+=this.indent()+`result[${this.generate(U,"value")}] = ${this.generate(u,"value")};
211
+ `;for(let A=0;A<F.length;A++)this.indentLevel--,Y+=this.indent()+`}
212
+ `;for(let A=0;A<f.length;A++)this.indentLevel--,Y+=this.indent()+`}
213
+ `;return Y+=this.indent()+`return result;
214
+ `,this.indentLevel--,Y+=this.indent()+"})()",Y}generateClass($,W,_){let[U,u,...f]=W,F=U?`class ${U}`:"class";if(u)F+=` extends ${this.generate(u,"value")}`;if(F+=` {
215
+ `,f.length>0&&Array.isArray(f[0])){let Y=f[0];if(Y[0]==="block"){let A=Y.slice(1),X=A.length>0&&Array.isArray(A[0])&&A[0][0]==="object";if(X&&A.length===1){let Q=A[0].slice(1);this.indentLevel++;let w=[];for(let[H,Z]of Q){let M=this.is(H,".")&&H[1]==="this",J=this.is(H,"computed"),K=this.extractMemberName(H);if(this.is(Z,"=>")&&!M&&!J&&K!=="constructor")w.push(K)}for(let[H,Z]of Q){let M=this.is(H,".")&&H[1]==="this",J=this.is(H,"computed"),K=this.extractMemberName(H);if(this.is(Z,"->")||this.is(Z,"=>")){let[,D,O]=Z,q=this.containsAwait(O),z=this.containsYield(O),E=D,P=[];if(K==="constructor"){let I=!!u,B=I?new Map:null;E=D.map((N)=>{if(this.is(N,".")&&N[1]==="this"){let T=N[2],L=I?`_${T}`:T;if(P.push(`this.${T} = ${L}`),I)B.set(T,L);return L}if(this.is(N,"default")&&this.is(N[1],".")&&N[1][1]==="this"){let T=N[1][2],L=I?`_${T}`:T;if(P.push(`this.${T} = ${L}`),I)B.set(T,L);return["default",L,N[2]]}return N});for(let N of w)P.unshift(`this.${N} = this.${N}.bind(this)`);if(B?.size>0)this._atParamMap=B}let R=this.generateParamList(E),G=(M?"static ":"")+(q?"async ":"")+(z?"*":"");if(F+=this.indent()+`${G}${K}(${R}) `,!J)this.currentMethodName=K;F+=this.generateMethodBody(O,P,K==="constructor",E),this._atParamMap=null,this.currentMethodName=null,F+=`
216
+ `}else if(M)F+=this.indent()+`static ${K} = ${this.generate(Z,"value")};
217
+ `;else F+=this.indent()+`${K} = ${this.generate(Z,"value")};
218
+ `}this.indentLevel--}else if(X){let Q=A[0].slice(1),w=A.slice(1);this.indentLevel++;for(let[H,Z]of Q){let M=this.is(H,".")&&H[1]==="this",J=this.extractMemberName(H);if(this.is(Z,"->")||this.is(Z,"=>")){let[,K,D]=Z,O=this.generateParamList(K),q=(M?"static ":"")+(this.containsAwait(D)?"async ":"")+(this.containsYield(D)?"*":"");F+=this.indent()+`${q}${J}(${O}) `,this.currentMethodName=J,F+=this.generateMethodBody(D,[],J==="constructor",K),this.currentMethodName=null,F+=`
219
+ `}else if(M)F+=this.indent()+`static ${J} = ${this.generate(Z,"value")};
220
+ `;else F+=this.indent()+`${J} = ${this.generate(Z,"value")};
221
+ `}for(let H of w)if(this.is(H,"class")){let[,Z,M,...J]=H;if(this.is(Z,".")&&Z[1]==="this")F+=this.indent()+`static ${Z[2]} = ${this.generate(["class",null,M,...J],"value")};
222
+ `}else F+=this.indent()+this.generate(H,"statement")+`;
223
+ `;this.indentLevel--}else{this.indentLevel++;for(let Q of A)if(this.is(Q,"=")&&Array.isArray(Q[1])&&Q[1][0]==="."&&Q[1][1]==="this")F+=this.indent()+`static ${Q[1][2]} = ${this.generate(Q[2],"value")};
224
+ `;else F+=this.indent()+this.generate(Q,"statement")+`;
225
+ `;this.indentLevel--}}}return F+=this.indent()+"}",F}generateSuper($,W){if(W.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let _=W.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${_})`;return`super(${_})`}generateImport($,W,_,U){if(W.length===1){let Y=`import(${this.generate(W[0],"value")})`;if(V(U[0],"await")===!0)return`(await ${Y})`;return Y}let[u,f]=W,F=this.addJsExtensionAndAssertions(f);if(typeof u==="string")return`import ${u} from ${F}`;if(Array.isArray(u)){if(u[0]==="*"&&u.length===2)return`import * as ${u[1]} from ${F}`;if(typeof u[0]==="string"&&Array.isArray(u[1])){let A=u[0],X=u[1];if(X[0]==="*"&&X.length===2)return`import ${A}, * as ${X[1]} from ${F}`;let Q=(Array.isArray(X)?X:[X]).map((w)=>Array.isArray(w)&&w.length===2?`${w[0]} as ${w[1]}`:w).join(", ");return`import ${A}, { ${Q} } from ${F}`}return`import { ${u.map((A)=>Array.isArray(A)&&A.length===2?`${A[0]} as ${A[1]}`:A).join(", ")} } from ${F}`}return`import ${this.generate(u,"value")} from ${F}`}generateExport($,W){let[_]=W;if(this.options.skipExports){if(Array.isArray(_)&&_.every((U)=>typeof U==="string"))return"";if(this.is(_,"="))return`const ${_[1]} = ${this.generate(_[2],"value")}`;return this.generate(_,"statement")}if(Array.isArray(_)&&_.every((U)=>typeof U==="string"))return`export { ${_.join(", ")} }`;if(this.is(_,"="))return`export const ${_[1]} = ${this.generate(_[2],"value")}`;return`export ${this.generate(_,"statement")}`}generateExportDefault($,W){let[_]=W;if(this.options.skipExports){if(this.is(_,"="))return`const ${_[1]} = ${this.generate(_[2],"value")}`;return this.generate(_,"statement")}if(this.is(_,"="))return`const ${_[1]} = ${this.generate(_[2],"value")};
226
+ export default ${_[1]}`;return`export default ${this.generate(_,"statement")}`}generateExportAll($,W){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(W[0])}`}generateExportFrom($,W){if(this.options.skipExports)return"";let[_,U]=W,u=this.addJsExtensionAndAssertions(U);if(Array.isArray(_))return`export { ${_.map((F)=>Array.isArray(F)&&F.length===2?`${F[0]} as ${F[1]}`:F).join(", ")} } from ${u}`;return`export ${_} from ${u}`}generateDoIIFE($,W){return`(${this.generate(W[0],"statement")})()`}generateRegex($,W){return W.length===0?$:this.generate(W[0],"value")}generateTaggedTemplate($,W){let[_,U]=W,u=this.generate(_,"value"),f=this.generate(U,"value");if(f.startsWith("`"))return`${u}${f}`;if(f.startsWith('"')||f.startsWith("'"))return`${u}\`${f.slice(1,-1)}\``;return`${u}\`${f}\``}generateString($,W){let _="`";for(let U of W)if(U instanceof String)_+=this.extractStringContent(U);else if(typeof U==="string")if(U.startsWith('"')||U.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",U);_+=U.slice(1,-1)}else _+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let u=U[0];_+=/^[\d"']/.test(u)?"${"+this.generate(u,"value")+"}":"${"+u+"}"}else{let u=U.length===1&&Array.isArray(U[0])?U[0]:U;_+="${"+this.generate(u,"value")+"}"}return _+"`"}findPostfixConditional($){if(!Array.isArray($))return null;let W=$[0];if(W==="if"&&$.length===3)return{type:W,condition:$[1],value:$[2]};if(W==="+"||W==="-"||W==="*"||W==="/")for(let _=1;_<$.length;_++){let U=this.findPostfixConditional($[_]);if(U)return U.parentOp=W,U.operandIndex=_,U.otherOperands=$.slice(1).filter((u,f)=>f!==_-1),U}return null}rebuildWithoutConditional($){let W=Array.isArray($.value)&&$.value.length===1?$.value[0]:$.value;if($.parentOp)return[$.parentOp,...$.otherOperands,W];return W}generateDestructuringPattern($){return this.formatParam($)}generateParamList($){let W=$.findIndex((U)=>this.is(U,"expansion"));if(W!==-1){let U=$.slice(0,W),u=$.slice(W+1),f=U.map((F)=>this.formatParam(F)).join(", ");return this.expansionAfterParams=u,f?`${f}, ..._rest`:"..._rest"}let _=$.findIndex((U)=>this.is(U,"rest"));if(_!==-1&&_<$.length-1){let U=$.slice(0,_),u=$[_],f=$.slice(_+1),F=U.map((Y)=>this.formatParam(Y));return this.restMiddleParam={restName:u[1],afterParams:f,beforeCount:U.length},F.length>0?`${F.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((U)=>this.formatParam(U)).join(", ")}formatParam($){if(typeof $==="string")return $;if($ instanceof String)return $.valueOf();if(this.is($,"rest"))return`...${$[1]}`;if(this.is($,"default"))return`${$[1]} = ${this.generate($[2],"value")}`;if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"array"))return`[${$.slice(1).map((_)=>{if(_===",")return"";if(_==="...")return"";if(this.is(_,"..."))return`...${_[1]}`;if(this.is(_,"=")&&typeof _[1]==="string")return`${_[1]} = ${this.generate(_[2],"value")}`;if(typeof _==="string")return _;return this.formatParam(_)}).join(", ")}]`;if(this.is($,"object"))return`{${$.slice(1).map((_)=>{if(this.is(_,"..."))return`...${_[1]}`;if(this.is(_,"default"))return`${_[1]} = ${this.generate(_[2],"value")}`;let[U,u]=_;if(U===u)return U;return`${U}: ${u}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,W=[],_={}){let{sideEffectOnly:U=!1,autoAssignments:u=[],isConstructor:f=!1,hasExpansionParams:F=!1}=_,Y=this.sideEffectOnly;this.sideEffectOnly=U;let A=new Set,X=(J)=>{if(typeof J==="string")A.add(J);else if(Array.isArray(J)){if(J[0]==="rest"||J[0]==="..."){if(typeof J[1]==="string")A.add(J[1])}else if(J[0]==="default"){if(typeof J[1]==="string")A.add(J[1])}else if(J[0]==="array"||J[0]==="object")this.collectVarsFromArray(J,A)}};if(Array.isArray(W))W.forEach(X);let Q=this.collectFunctionVariables($),w=new Set([...Q].filter((J)=>!this.programVars.has(J)&&!this.reactiveVars?.has(J)&&!A.has(J)&&!this.scopeStack.some((K)=>K.has(J)))),H=["return","throw","break","continue"],Z=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...w,...A])),this.is($,"block")){let J=this.unwrapBlock($);if(F&&this.expansionAfterParams?.length>0)J=[...this.expansionAfterParams.map((z,E)=>{return`const ${typeof z==="string"?z:JSON.stringify(z)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...J],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:q,afterParams:z}=this.restMiddleParam,E=z.length,P=[];if(z.forEach((R,G)=>{let I=typeof R==="string"?R:this.is(R,"default")?R[1]:JSON.stringify(R);P.push(`const ${I} = ${q}[${q}.length - ${E-G}]`)}),E>0)P.push(`${q} = ${q}.slice(0, -${E})`);J=[...P,...J],this.restMiddleParam=null}this.indentLevel++;let K=`{
227
227
  `;if(w.size>0)K+=this.indent()+`let ${Array.from(w).sort().join(", ")};
228
- `;let M=u.length>0&&Q.length>0&&Array.isArray(Q[0])&&Q[0][0]==="super",O=(q)=>{q.forEach((z,E)=>{let G=E===q.length-1,R=Array.isArray(z)?z[0]:null;if(!G&&R==="comprehension"){let[,N,T,L]=z;K+=this.indent()+this.generateComprehensionAsLoop(N,T,L)+`
229
- `;return}if(!f&&!U&&G&&R==="if"){let[N,T,...L]=z.slice(1),j=(v)=>this.is(v,"block")&&v.length>2;if(j(T)||L.some(j)){K+=this.generateIfElseWithEarlyReturns(z);return}}if(!f&&!U&&G&&R==="="){let[N,T]=z.slice(1);if(typeof N==="string"&&Array.isArray(T)){let L=T[0];if(L==="comprehension"||L==="for-in"){this.comprehensionTarget=N,K+=this.generate(T,"value"),this.comprehensionTarget=null,K+=this.indent()+`return ${N};
230
- `;return}}}let P=!f&&!U&&G&&!H.includes(R)&&!Z.includes(R)&&!this.hasExplicitControlFlow(z),I=P?"value":"statement",B=this.generate(z,I);if(P)K+=this.indent()+"return "+B+`;
228
+ `;let D=u.length>0&&J.length>0&&Array.isArray(J[0])&&J[0][0]==="super",O=(q)=>{q.forEach((z,E)=>{let P=E===q.length-1,R=Array.isArray(z)?z[0]:null;if(!P&&R==="comprehension"){let[,N,T,L]=z;K+=this.indent()+this.generateComprehensionAsLoop(N,T,L)+`
229
+ `;return}if(!f&&!U&&P&&R==="if"){let[N,T,...L]=z.slice(1),j=(v)=>this.is(v,"block")&&v.length>2;if(j(T)||L.some(j)){K+=this.generateIfElseWithEarlyReturns(z);return}}if(!f&&!U&&P&&R==="="){let[N,T]=z.slice(1);if(typeof N==="string"&&Array.isArray(T)){let L=T[0];if(L==="comprehension"||L==="for-in"){this.comprehensionTarget=N,K+=this.generate(T,"value"),this.comprehensionTarget=null,K+=this.indent()+`return ${N};
230
+ `;return}}}let G=!f&&!U&&P&&!H.includes(R)&&!Z.includes(R)&&!this.hasExplicitControlFlow(z),I=G?"value":"statement",B=this.generate(z,I);if(G)K+=this.indent()+"return "+B+`;
231
231
  `;else K+=this.indent()+this.addSemicolon(z,B)+`
232
- `})};if(M){if(Q.length===1&&!f)K+=this.indent()+"return "+this.generate(Q[0],"value")+`;
233
- `;else K+=this.indent()+this.generate(Q[0],"statement")+`;
232
+ `})};if(D){if(J.length===1&&!f)K+=this.indent()+"return "+this.generate(J[0],"value")+`;
233
+ `;else K+=this.indent()+this.generate(J[0],"statement")+`;
234
234
  `;for(let z of u)K+=this.indent()+z+`;
235
- `;O(Q.slice(1))}else{for(let q of u)K+=this.indent()+q+`;
236
- `;O(Q)}if(U&&Q.length>0){let q=Array.isArray(Q[Q.length-1])?Q[Q.length-1][0]:null;if(!H.includes(q))K+=this.indent()+`return;
237
- `}return this.indentLevel--,K+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=A,K}this.sideEffectOnly=A;let D;if(f&&u.length>0){let Q=Array.isArray($)&&$[0]==="super",K=this.generate($,"statement"),M=u.map((O)=>`${O};`).join(" ");D=Q?`{ ${K}; ${M} }`:`{ ${M} ${K}; }`}else if(f||this.hasExplicitControlFlow($))D=`{ ${this.generate($,"statement")}; }`;else if(Array.isArray($)&&(H.includes($[0])||Z.includes($[0])))D=`{ ${this.generate($,"statement")}; }`;else if(U)D=`{ ${this.generate($,"statement")}; return; }`;else D=`{ return ${this.generate($,"value")}; }`;return this.scopeStack.pop(),D}generateFunctionBody($,W=[],F=!1){return this.generateBodyWithReturns($,W,{sideEffectOnly:F,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,W=[],F=!1,U=[]){return this.generateBodyWithReturns($,U,{autoAssignments:W,isConstructor:F})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let W=this.unwrapBlock($);return`{
238
- ${this.withIndent(()=>W.map((U,u)=>{let f=u===W.length-1,Y=Array.isArray(U)?U[0]:null,A=f&&!["return","throw","break","continue"].includes(Y),_=this.generate(U,A?"value":"statement");return A?this.indent()+"return "+_+";":this.indent()+_+";"})).join(`
235
+ `;O(J.slice(1))}else{for(let q of u)K+=this.indent()+q+`;
236
+ `;O(J)}if(U&&J.length>0){let q=Array.isArray(J[J.length-1])?J[J.length-1][0]:null;if(!H.includes(q))K+=this.indent()+`return;
237
+ `}return this.indentLevel--,K+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=Y,K}this.sideEffectOnly=Y;let M;if(f&&u.length>0){let J=Array.isArray($)&&$[0]==="super",K=this.generate($,"statement"),D=u.map((O)=>`${O};`).join(" ");M=J?`{ ${K}; ${D} }`:`{ ${D} ${K}; }`}else if(f||this.hasExplicitControlFlow($))M=`{ ${this.generate($,"statement")}; }`;else if(Array.isArray($)&&(H.includes($[0])||Z.includes($[0])))M=`{ ${this.generate($,"statement")}; }`;else if(U)M=`{ ${this.generate($,"statement")}; return; }`;else M=`{ return ${this.generate($,"value")}; }`;return this.scopeStack.pop(),M}generateFunctionBody($,W=[],_=!1){return this.generateBodyWithReturns($,W,{sideEffectOnly:_,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,W=[],_=!1,U=[]){return this.generateBodyWithReturns($,U,{autoAssignments:W,isConstructor:_})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let W=this.unwrapBlock($);return`{
238
+ ${this.withIndent(()=>W.map((U,u)=>{let f=u===W.length-1,F=Array.isArray(U)?U[0]:null,Y=f&&!["return","throw","break","continue"].includes(F),A=this.generate(U,Y?"value":"statement");return Y?this.indent()+"return "+A+";":this.indent()+A+";"})).join(`
239
239
  `)}
240
240
  ${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let W=$[0]==="block"?$.slice(1):$;return`{
241
- ${this.withIndent(()=>W.map((U)=>{if(this.is(U,"comprehension")){let[,u,f,Y]=U;return this.indent()+this.generateComprehensionAsLoop(u,f,Y)}return this.indent()+this.addSemicolon(U,this.generate(U,"statement"))})).join(`
241
+ ${this.withIndent(()=>W.map((U)=>{if(this.is(U,"comprehension")){let[,u,f,F]=U;return this.indent()+this.generateComprehensionAsLoop(u,f,F)}return this.indent()+this.addSemicolon(U,this.generate(U,"statement"))})).join(`
242
242
  `)}
243
- ${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,W){let F=this.unwrap(this.generate(W,"value"));if(!Array.isArray($))return`{ if (${F}) ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$,u=this.withIndent(()=>this.indent()),f=`if (${F}) {
244
- `,Y=this.withIndent(()=>{this.indentLevel++;let _=this.formatStatements(U);return this.indentLevel--,_}),A=this.withIndent(()=>this.indent()+"}");return`{
245
- ${u}${f}${Y.join(`
243
+ ${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,W){let _=this.unwrap(this.generate(W,"value"));if(!Array.isArray($))return`{ if (${_}) ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$,u=this.withIndent(()=>this.indent()),f=`if (${_}) {
244
+ `,F=this.withIndent(()=>{this.indentLevel++;let A=this.formatStatements(U);return this.indentLevel--,A}),Y=this.withIndent(()=>this.indent()+"}");return`{
245
+ ${u}${f}${F.join(`
246
246
  `)}
247
- ${A}
248
- ${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,W,F,U){let u="";u+=this.indent()+`${U} = [];
249
- `;let f=this.is($,"block")&&$.length===2?$[1]:$;if(W.length===1){let[Y,A,_,J]=W[0];if(Y==="for-in"){let{header:X,setup:w}=this._forInHeader(A,_,J);if(u+=this.indent()+X+` {
247
+ ${Y}
248
+ ${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,W,_,U){let u="";u+=this.indent()+`${U} = [];
249
+ `;let f=this.is($,"block")&&$.length===2?$[1]:$;if(W.length===1){let[F,Y,A,X]=W[0];if(F==="for-in"){let{header:Q,setup:w}=this._forInHeader(Y,A,X);if(u+=this.indent()+Q+` {
250
250
  `,this.indentLevel++,w)u+=this.indent()+w+`
251
- `;if(F&&F.length>0)u+=this.indent()+`if (${F.map((H)=>this.generate(H,"value")).join(" && ")}) {
251
+ `;if(_&&_.length>0)u+=this.indent()+`if (${_.map((H)=>this.generate(H,"value")).join(" && ")}) {
252
252
  `,this.indentLevel++;if(u+=this.indent()+`${U}.push(${this.unwrap(this.generate(f,"value"))});
253
- `,F&&F.length>0)this.indentLevel--,u+=this.indent()+`}
253
+ `,_&&_.length>0)this.indentLevel--,u+=this.indent()+`}
254
254
  `;return this.indentLevel--,u+=this.indent()+`}
255
255
  `,u}}return this.indent()+`${U} = (() => { /* complex comprehension */ })();
256
- `}generateComprehensionAsLoop($,W,F){let U="",u=F?.length?F.map((Y)=>this.generate(Y,"value")).join(" && "):null,f=()=>{if(u)U+=this.indent()+`if (${u}) {
256
+ `}generateComprehensionAsLoop($,W,_){let U="",u=_?.length?_.map((F)=>this.generate(F,"value")).join(" && "):null,f=()=>{if(u)U+=this.indent()+`if (${u}) {
257
257
  `,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
258
258
  `,this.indentLevel--,U+=this.indent()+`}
259
259
  `;else U+=this.indent()+this.generate($,"statement")+`;
260
- `};if(W.length===1){let[Y,A,_,J]=W[0];if(Y==="for-in"){let{header:X,setup:w}=this._forInHeader(A,_,J);if(U+=X+` {
260
+ `};if(W.length===1){let[F,Y,A,X]=W[0];if(F==="for-in"){let{header:Q,setup:w}=this._forInHeader(Y,A,X);if(U+=Q+` {
261
261
  `,this.indentLevel++,w)U+=this.indent()+w+`
262
- `;return f(),this.indentLevel--,U+=this.indent()+"}",U}if(Y==="for-as"){let{header:X}=this._forAsHeader(A,_,J);return U+=X+` {
263
- `,this.indentLevel++,f(),this.indentLevel--,U+=this.indent()+"}",U}if(Y==="for-of"){let{header:X,own:w,vv:H,oc:Z,kvp:D}=this._forOfHeader(A,_,J);if(U+=X+` {
264
- `,this.indentLevel++,w)U+=this.indent()+`if (!Object.hasOwn(${Z}, ${D})) continue;
265
- `;if(H)U+=this.indent()+`const ${H} = ${Z}[${D}];
266
- `;return f(),this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",$,W,F],"value")}generateIfElseWithEarlyReturns($){let[W,F,U,...u]=$,f="",Y=this.generate(F,"value");f+=this.indent()+`if (${Y}) {
267
- `,f+=this.withIndent(()=>this.generateBranchWithReturn(U)),f+=this.indent()+"}";for(let A of u)if(f+=" else ",this.is(A,"if")){let[,_,J,...X]=A;f+=`if (${this.generate(_,"value")}) {
268
- `,f+=this.withIndent(()=>this.generateBranchWithReturn(J)),f+=this.indent()+"}";for(let w of X)f+=` else {
262
+ `;return f(),this.indentLevel--,U+=this.indent()+"}",U}if(F==="for-as"){let{header:Q}=this._forAsHeader(Y,A,X);return U+=Q+` {
263
+ `,this.indentLevel++,f(),this.indentLevel--,U+=this.indent()+"}",U}if(F==="for-of"){let{header:Q,own:w,vv:H,oc:Z,kvp:M}=this._forOfHeader(Y,A,X);if(U+=Q+` {
264
+ `,this.indentLevel++,w)U+=this.indent()+`if (!Object.hasOwn(${Z}, ${M})) continue;
265
+ `;if(H)U+=this.indent()+`const ${H} = ${Z}[${M}];
266
+ `;return f(),this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",$,W,_],"value")}generateIfElseWithEarlyReturns($){let[W,_,U,...u]=$,f="",F=this.generate(_,"value");f+=this.indent()+`if (${F}) {
267
+ `,f+=this.withIndent(()=>this.generateBranchWithReturn(U)),f+=this.indent()+"}";for(let Y of u)if(f+=" else ",this.is(Y,"if")){let[,A,X,...Q]=Y;f+=`if (${this.generate(A,"value")}) {
268
+ `,f+=this.withIndent(()=>this.generateBranchWithReturn(X)),f+=this.indent()+"}";for(let w of Q)f+=` else {
269
269
  `,f+=this.withIndent(()=>this.generateBranchWithReturn(w)),f+=this.indent()+"}"}else f+=`{
270
- `,f+=this.withIndent(()=>this.generateBranchWithReturn(A)),f+=this.indent()+"}";return f}generateBranchWithReturn($){let W=this.unwrapBlock($),F="";for(let U=0;U<W.length;U++){let u=U===W.length-1,f=W[U],Y=Array.isArray(f)?f[0]:null;if(u&&!(Y==="return"||Y==="throw"||Y==="break"||Y==="continue"))F+=this.indent()+`return ${this.generate(f,"value")};
271
- `;else F+=this.indent()+this.generate(f,"statement")+`;
272
- `}return F}generateIfAsExpression($,W,F){if(this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||F.some((A)=>this.is(A,"block")&&A.length>2||this.hasStatementInBranch(A)||this.hasNestedMultiStatement(A))){let A=this.containsAwait($)||this.containsAwait(W)||F.some((J)=>this.containsAwait(J)),_=`${A?"await ":""}(${A?"async ":""}() => { `;_+=`if (${this.generate($,"value")}) `,_+=this.generateBlockWithReturns(W);for(let J of F)if(_+=" else ",this.is(J,"if")){let[X,w,H,...Z]=J;_+=`if (${this.generate(w,"value")}) `,_+=this.generateBlockWithReturns(H);for(let D of Z)if(_+=" else ",this.is(D,"if")){let[Q,K,M,...O]=D;_+=`if (${this.generate(K,"value")}) `,_+=this.generateBlockWithReturns(M),F.push(...O)}else _+=this.generateBlockWithReturns(D)}else _+=this.generateBlockWithReturns(J);return _+" })()"}let u=this.extractExpression(this.unwrapIfBranch(W)),f=this.buildTernaryChain(F),Y=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))Y=`(${Y})`;return`(${Y} ? ${u} : ${f})`}generateIfAsStatement($,W,F){let U=`if (${this.unwrap(this.generate($,"value"))}) `;U+=this.generate(this.unwrapIfBranch(W),"statement");for(let u of F)U+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return U}generateSwitchCaseBody($,W){let F="";if(this.hasExplicitControlFlow($))for(let u of this.unwrapBlock($))F+=this.indent()+this.generate(u,"statement")+`;
273
- `;else if(W==="value")if(this.is($,"block")&&$.length>2){let u=$.slice(1);for(let f=0;f<u.length;f++)if(f===u.length-1)F+=this.indent()+`return ${this.generate(u[f],"value")};
274
- `;else F+=this.indent()+this.generate(u[f],"statement")+`;
275
- `}else F+=this.indent()+`return ${this.extractExpression($)};
276
- `;else{if(this.is($,"block")&&$.length>1)for(let u of $.slice(1))F+=this.indent()+this.generate(u,"statement")+`;
277
- `;else F+=this.indent()+this.generate($,"statement")+`;
278
- `;F+=this.indent()+`break;
279
- `}return F}generateSwitchAsIfChain($,W,F){let U="";for(let u=0;u<$.length;u++){let[,f,Y]=$[u],A=Array.isArray(f)?f[0]:f;if(U+=(u===0?"":" else ")+`if (${this.generate(A,"value")}) {
280
- `,this.indentLevel++,F==="value")U+=this.indent()+`return ${this.extractExpression(Y)};
281
- `;else for(let _ of this.unwrapBlock(Y))U+=this.indent()+this.generate(_,"statement")+`;
270
+ `,f+=this.withIndent(()=>this.generateBranchWithReturn(Y)),f+=this.indent()+"}";return f}generateBranchWithReturn($){let W=this.unwrapBlock($),_="";for(let U=0;U<W.length;U++){let u=U===W.length-1,f=W[U],F=Array.isArray(f)?f[0]:null;if(u&&!(F==="return"||F==="throw"||F==="break"||F==="continue"))_+=this.indent()+`return ${this.generate(f,"value")};
271
+ `;else _+=this.indent()+this.generate(f,"statement")+`;
272
+ `}return _}generateIfAsExpression($,W,_){if(this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||_.some((Y)=>this.is(Y,"block")&&Y.length>2||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait($)||this.containsAwait(W)||_.some((X)=>this.containsAwait(X)),A=`${Y?"await ":""}(${Y?"async ":""}() => { `;A+=`if (${this.generate($,"value")}) `,A+=this.generateBlockWithReturns(W);for(let X of _)if(A+=" else ",this.is(X,"if")){let[Q,w,H,...Z]=X;A+=`if (${this.generate(w,"value")}) `,A+=this.generateBlockWithReturns(H);for(let M of Z)if(A+=" else ",this.is(M,"if")){let[J,K,D,...O]=M;A+=`if (${this.generate(K,"value")}) `,A+=this.generateBlockWithReturns(D),_.push(...O)}else A+=this.generateBlockWithReturns(M)}else A+=this.generateBlockWithReturns(X);return A+" })()"}let u=this.extractExpression(this.unwrapIfBranch(W)),f=this.buildTernaryChain(_),F=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))F=`(${F})`;return`(${F} ? ${u} : ${f})`}generateIfAsStatement($,W,_){let U=`if (${this.unwrap(this.generate($,"value"))}) `;U+=this.generate(this.unwrapIfBranch(W),"statement");for(let u of _)U+=" else "+this.generate(this.unwrapIfBranch(u),"statement");return U}generateSwitchCaseBody($,W){let _="";if(this.hasExplicitControlFlow($))for(let u of this.unwrapBlock($))_+=this.indent()+this.generate(u,"statement")+`;
273
+ `;else if(W==="value")if(this.is($,"block")&&$.length>2){let u=$.slice(1);for(let f=0;f<u.length;f++)if(f===u.length-1)_+=this.indent()+`return ${this.generate(u[f],"value")};
274
+ `;else _+=this.indent()+this.generate(u[f],"statement")+`;
275
+ `}else _+=this.indent()+`return ${this.extractExpression($)};
276
+ `;else{if(this.is($,"block")&&$.length>1)for(let u of $.slice(1))_+=this.indent()+this.generate(u,"statement")+`;
277
+ `;else _+=this.indent()+this.generate($,"statement")+`;
278
+ `;_+=this.indent()+`break;
279
+ `}return _}generateSwitchAsIfChain($,W,_){let U="";for(let u=0;u<$.length;u++){let[,f,F]=$[u],Y=Array.isArray(f)?f[0]:f;if(U+=(u===0?"":" else ")+`if (${this.generate(Y,"value")}) {
280
+ `,this.indentLevel++,_==="value")U+=this.indent()+`return ${this.extractExpression(F)};
281
+ `;else for(let A of this.unwrapBlock(F))U+=this.indent()+this.generate(A,"statement")+`;
282
282
  `;this.indentLevel--,U+=this.indent()+"}"}if(W){if(U+=` else {
283
- `,this.indentLevel++,F==="value")U+=this.indent()+`return ${this.extractExpression(W)};
283
+ `,this.indentLevel++,_==="value")U+=this.indent()+`return ${this.extractExpression(W)};
284
284
  `;else for(let u of this.unwrapBlock(W))U+=this.indent()+this.generate(u,"statement")+`;
285
- `;this.indentLevel--,U+=this.indent()+"}"}return F==="value"?`(() => { ${U} })()`:U}extractExpression($){let W=this.unwrapBlock($);return W.length>0?this.generate(W[W.length-1],"value"):"undefined"}unwrapBlock($){if(!Array.isArray($))return[$];if($[0]==="block")return $.slice(1);if(Array.isArray($[0]))return $;return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,W){if(!W||W.endsWith(";"))return!1;if(!W.endsWith("}"))return!0;let F=Array.isArray($)?$[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(F)}addSemicolon($,W){return W+(this.needsSemicolon($,W)?";":"")}formatStatements($,W="statement"){return $.map((F)=>this.indent()+this.addSemicolon(F,this.generate(F,W)))}wrapForCondition($){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($))return $;if($.startsWith("(")&&$.endsWith(")"))return $;return`(${$})`}hasExplicitControlFlow($){if(!Array.isArray($))return!1;let W=$[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return $.slice(1).some((F)=>Array.isArray(F)&&["return","throw","break","continue"].includes(F[0]));if(W==="switch"){let[,,F]=$;return F?.some((U)=>{return this.unwrapBlock(U[2]).some((f)=>Array.isArray(f)&&["return","throw","break","continue"].includes(f[0]))})}if(W==="if"){let[,,F,U]=$;return this.branchHasControlFlow(F)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let W=this.unwrapBlock($);if(W.length===0)return!1;let F=W[W.length-1];return Array.isArray(F)&&["return","throw","break","continue"].includes(F[0])}withIndent($){this.indentLevel++;let W=$();return this.indentLevel--,W}is($,W,F){if(!Array.isArray($))return null;if((S($[0])??$[0])!==W)return null;let U=$.slice(1);if(F!=null&&U.length!==F)return null;return U}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let W=0,F=0,U=!0,u=!1;for(let f=0;f<$.length;f++){if($[f]==="(")W++;if($[f]===")")W--;if($[f]==="["||$[f]==="{")F++;if($[f]==="]"||$[f]==="}")F--;if($[f]===","&&W===1&&F===0)u=!0;if(W===0&&f<$.length-1){U=!1;break}}if(u)U=!1;if(U)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let W=0,F=1/0;for(let U=1;U<$.length-1;U++){if($[U]==="(")W++;if($[U]===")")W--;F=Math.min(F,W)}if(F>=0)$=$.slice(1,-1);else break}return $}unwrapIfBranch($){if(Array.isArray($)&&$.length===1&&(!Array.isArray($[0])||$[0][0]!=="block"))return $[0];return $}flattenBinaryChain($){if(!Array.isArray($)||$.length<3)return $;let[W,...F]=$;if(W!=="&&"&&W!=="||")return $;let U=[],u=(f)=>{if(Array.isArray(f)&&f[0]===W)for(let Y=1;Y<f.length;Y++)u(f[Y]);else U.push(f)};for(let f of F)u(f);return[W,...U]}hasStatementInBranch($){if(!Array.isArray($))return!1;let W=$[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return $.slice(1).some((F)=>this.hasStatementInBranch(F));return!1}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[W,F,U,...u]=$;return this.is(U,"block")&&U.length>2||u.some((f)=>this.hasNestedMultiStatement(f))}return!1}buildTernaryChain($){if($.length===0)return"undefined";if($.length===1)return this.extractExpression(this.unwrapIfBranch($[0]));let W=$[0];if(this.is(W,"if")){let[F,U,u,...f]=W,Y=this.extractExpression(this.unwrapIfBranch(u)),A=this.buildTernaryChain([...f,...$.slice(1)]);return`(${this.generate(U,"value")} ? ${Y} : ${A})`}return this.extractExpression(this.unwrapIfBranch(W))}collectVarsFromArray($,W){$.slice(1).forEach((F)=>{if(F===","||F==="...")return;if(typeof F==="string"){W.add(F);return}if(Array.isArray(F)){if(F[0]==="..."&&typeof F[1]==="string")W.add(F[1]);else if(F[0]==="array")this.collectVarsFromArray(F,W);else if(F[0]==="object")this.collectVarsFromObject(F,W)}})}collectVarsFromObject($,W){$.slice(1).forEach((F)=>{if(!Array.isArray(F))return;if(F[0]==="..."&&typeof F[1]==="string"){W.add(F[1]);return}if(F.length>=2){let[U,u,f]=F;if(f==="="){if(typeof U==="string")W.add(U)}else if(typeof u==="string")W.add(u);else if(Array.isArray(u)){if(u[0]==="array")this.collectVarsFromArray(u,W);else if(u[0]==="object")this.collectVarsFromObject(u,W)}}})}extractStringContent($){let W=S($).slice(1,-1),F=V($,"indent");if(F)W=W.replace(new RegExp(`\\n${F}`,"g"),`
285
+ `;this.indentLevel--,U+=this.indent()+"}"}return _==="value"?`(() => { ${U} })()`:U}extractExpression($){let W=this.unwrapBlock($);return W.length>0?this.generate(W[W.length-1],"value"):"undefined"}unwrapBlock($){if(!Array.isArray($))return[$];if($[0]==="block")return $.slice(1);if(Array.isArray($[0]))return $;return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,W){if(!W||W.endsWith(";"))return!1;if(!W.endsWith("}"))return!0;let _=Array.isArray($)?$[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(_)}addSemicolon($,W){return W+(this.needsSemicolon($,W)?";":"")}formatStatements($,W="statement"){return $.map((_)=>this.indent()+this.addSemicolon(_,this.generate(_,W)))}wrapForCondition($){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($))return $;if($.startsWith("(")&&$.endsWith(")"))return $;return`(${$})`}hasExplicitControlFlow($){if(!Array.isArray($))return!1;let W=$[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return $.slice(1).some((_)=>Array.isArray(_)&&["return","throw","break","continue"].includes(_[0]));if(W==="switch"){let[,,_]=$;return _?.some((U)=>{return this.unwrapBlock(U[2]).some((f)=>Array.isArray(f)&&["return","throw","break","continue"].includes(f[0]))})}if(W==="if"){let[,,_,U]=$;return this.branchHasControlFlow(_)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let W=this.unwrapBlock($);if(W.length===0)return!1;let _=W[W.length-1];return Array.isArray(_)&&["return","throw","break","continue"].includes(_[0])}withIndent($){this.indentLevel++;let W=$();return this.indentLevel--,W}is($,W,_){if(!Array.isArray($))return null;if((S($[0])??$[0])!==W)return null;let U=$.slice(1);if(_!=null&&U.length!==_)return null;return U}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let W=0,_=0,U=!0,u=!1;for(let f=0;f<$.length;f++){if($[f]==="(")W++;if($[f]===")")W--;if($[f]==="["||$[f]==="{")_++;if($[f]==="]"||$[f]==="}")_--;if($[f]===","&&W===1&&_===0)u=!0;if(W===0&&f<$.length-1){U=!1;break}}if(u)U=!1;if(U)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let W=0,_=1/0;for(let U=1;U<$.length-1;U++){if($[U]==="(")W++;if($[U]===")")W--;_=Math.min(_,W)}if(_>=0)$=$.slice(1,-1);else break}return $}unwrapIfBranch($){if(Array.isArray($)&&$.length===1&&(!Array.isArray($[0])||$[0][0]!=="block"))return $[0];return $}flattenBinaryChain($){if(!Array.isArray($)||$.length<3)return $;let[W,..._]=$;if(W!=="&&"&&W!=="||")return $;let U=[],u=(f)=>{if(Array.isArray(f)&&f[0]===W)for(let F=1;F<f.length;F++)u(f[F]);else U.push(f)};for(let f of _)u(f);return[W,...U]}hasStatementInBranch($){if(!Array.isArray($))return!1;let W=$[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return $.slice(1).some((_)=>this.hasStatementInBranch(_));return!1}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[W,_,U,...u]=$;return this.is(U,"block")&&U.length>2||u.some((f)=>this.hasNestedMultiStatement(f))}return!1}buildTernaryChain($){if($.length===0)return"undefined";if($.length===1)return this.extractExpression(this.unwrapIfBranch($[0]));let W=$[0];if(this.is(W,"if")){let[_,U,u,...f]=W,F=this.extractExpression(this.unwrapIfBranch(u)),Y=this.buildTernaryChain([...f,...$.slice(1)]);return`(${this.generate(U,"value")} ? ${F} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(W))}collectVarsFromArray($,W){$.slice(1).forEach((_)=>{if(_===","||_==="...")return;if(typeof _==="string"){W.add(_);return}if(Array.isArray(_)){if(_[0]==="..."&&typeof _[1]==="string")W.add(_[1]);else if(_[0]==="array")this.collectVarsFromArray(_,W);else if(_[0]==="object")this.collectVarsFromObject(_,W)}})}collectVarsFromObject($,W){$.slice(1).forEach((_)=>{if(!Array.isArray(_))return;if(_[0]==="..."&&typeof _[1]==="string"){W.add(_[1]);return}if(_.length>=2){let[U,u,f]=_;if(f==="="){if(typeof U==="string")W.add(U)}else if(typeof u==="string")W.add(u);else if(Array.isArray(u)){if(u[0]==="array")this.collectVarsFromArray(u,W);else if(u[0]==="object")this.collectVarsFromObject(u,W)}}})}extractStringContent($){let W=S($).slice(1,-1),_=V($,"indent");if(_)W=W.replace(new RegExp(`\\n${_}`,"g"),`
286
286
  `);if(V($,"initialChunk")&&W.startsWith(`
287
287
  `))W=W.slice(1);if(V($,"finalChunk")&&W.endsWith(`
288
- `))W=W.slice(0,-1);return W}processHeregex($){let W="",F=!1,U=0,u=()=>{let f=0,Y=U-1;while(Y>=0&&$[Y]==="\\")f++,Y--;return f%2===1};while(U<$.length){let f=$[U];if(f==="["&&!u()){F=!0,W+=f,U++;continue}if(f==="]"&&F&&!u()){F=!1,W+=f,U++;continue}if(F){W+=f,U++;continue}if(/\s/.test(f)){U++;continue}if(f==="#"){if(u()){W+=f,U++;continue}let Y=U-1;while(Y>=0&&$[Y]==="\\")Y--;if(Y<U-1){W+=f,U++;continue}while(U<$.length&&$[U]!==`
289
- `)U++;continue}W+=f,U++}return W}addJsExtensionAndAssertions($){if($ instanceof String)$=S($);if(typeof $!=="string")return $;let F=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,U=F.startsWith("./")||F.startsWith("../"),u=F,f="";if(U){let Y=F.lastIndexOf("/"),A=Y>=0?F.substring(Y+1):F;if(A.includes(".")){if(A.endsWith(".json"))f=" with { type: 'json' }"}else u=F+".js"}return`'${u}'`+f}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&S($)==="it")return!0;if(typeof $!=="object")return!1;if(this.is($,"def")||this.is($,"->")||this.is($,"=>"))return!1;if(Array.isArray($))return $.some((W)=>this.containsIt(W));return!1}containsAwait($){if(!$)return!1;if($ instanceof String&&V($,"await")===!0)return!0;if(typeof $!=="object")return!1;if(this.is($,"await"))return!0;if(this.is($,"for-as")&&$[3]===!0)return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((W)=>this.containsAwait(W));return!1}containsYield($){if(!$)return!1;if(typeof $!=="object")return!1;if(this.is($,"yield")||this.is($,"yield-from"))return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((W)=>this.containsYield(W));return!1}extractMemberName($){if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"computed"))return`[${this.generate($[1],"value")}]`;return $}getReactiveRuntime(){return`// ============================================================================
288
+ `))W=W.slice(0,-1);return W}processHeregex($){let W="",_=!1,U=0,u=()=>{let f=0,F=U-1;while(F>=0&&$[F]==="\\")f++,F--;return f%2===1};while(U<$.length){let f=$[U];if(f==="["&&!u()){_=!0,W+=f,U++;continue}if(f==="]"&&_&&!u()){_=!1,W+=f,U++;continue}if(_){W+=f,U++;continue}if(/\s/.test(f)){U++;continue}if(f==="#"){if(u()){W+=f,U++;continue}let F=U-1;while(F>=0&&$[F]==="\\")F--;if(F<U-1){W+=f,U++;continue}while(U<$.length&&$[U]!==`
289
+ `)U++;continue}W+=f,U++}return W}addJsExtensionAndAssertions($){if($ instanceof String)$=S($);if(typeof $!=="string")return $;let _=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,U=_.startsWith("./")||_.startsWith("../"),u=_,f="";if(U){let F=_.lastIndexOf("/"),Y=F>=0?_.substring(F+1):_;if(Y.includes(".")){if(Y.endsWith(".json"))f=" with { type: 'json' }"}else u=_+".js"}return`'${u}'`+f}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&S($)==="it")return!0;if(typeof $!=="object")return!1;if(this.is($,"def")||this.is($,"->")||this.is($,"=>"))return!1;if(Array.isArray($))return $.some((W)=>this.containsIt(W));return!1}containsAwait($){if(!$)return!1;if($ instanceof String&&V($,"await")===!0)return!0;if(typeof $!=="object")return!1;if(this.is($,"await"))return!0;if(this.is($,"for-as")&&$[3]===!0)return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((W)=>this.containsAwait(W));return!1}containsYield($){if(!$)return!1;if(typeof $!=="object")return!1;if(this.is($,"yield")||this.is($,"yield-from"))return!0;if(this.is($,"def")||this.is($,"->")||this.is($,"=>")||this.is($,"class"))return!1;if(Array.isArray($))return $.some((W)=>this.containsYield(W));return!1}extractMemberName($){if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"computed"))return`[${this.generate($[1],"value")}]`;return $}getReactiveRuntime(){return`// ============================================================================
290
290
  // Rip Reactive Runtime
291
291
  // A minimal, fine-grained reactivity system
292
292
  //
@@ -515,13 +515,13 @@ if (typeof globalThis !== 'undefined') {
515
515
  }
516
516
 
517
517
  // === End Reactive Runtime ===
518
- `}}class Y1{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($,W){if(W)this.options={...this.options,...W};let F=null,U=$.split(`
519
- `),u=U.findIndex((Q)=>Q==="__DATA__");if(u!==-1){let Q=U.slice(u+1);F=Q.length>0?Q.join(`
518
+ `}}class F1{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($,W){if(W)this.options={...this.options,...W};let _=null,U=$.split(`
519
+ `),u=U.findIndex((J)=>J==="__DATA__");if(u!==-1){let J=U.slice(u+1);_=J.length>0?J.join(`
520
520
  `)+`
521
521
  `:"",$=U.slice(0,u).join(`
522
- `)}let Y=new m().tokenize($);if(this.options.showTokens)Y.forEach((Q)=>console.log(`${Q[0].padEnd(12)} ${JSON.stringify(Q[1])}`)),console.log();let A=null,_=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)_=[...Y];Y=Y.filter((Q)=>Q[0]!=="TYPE_DECL");while(Y.length>0&&Y[0][0]==="TERMINATOR")Y.shift();if(Y.every((Q)=>Q[0]==="TERMINATOR")){if(_)A=h1(_,["program"]);return{tokens:Y,sexpr:["program"],code:"",dts:A,data:F,reactiveVars:{}}}r.lexer={tokens:Y,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let Q=this.tokens[this.pos++],K=Q[1];if(Q.data)K=new String(K),Object.assign(K,Q.data);return this.text=K,this.loc=Q.loc,Q[0]}};let J;try{J=r.parse($)}catch(Q){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw Q}if(this.options.showSExpr)console.log(l(J,0,!0)),console.log();let X=null;if(this.options.sourceMap){let Q=(this.options.filename||"output")+".js",K=this.options.filename||"input.rip";X=new v1(Q,K,$)}let w=new C({dataSection:F,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,reactiveVars:this.options.reactiveVars,sourceMap:X}),H=w.compile(J),Z=X?X.toJSON():null,D=X?X.toReverseMap():null;if(Z&&this.options.sourceMap==="inline"){let Q=typeof Buffer<"u"?Buffer.from(Z).toString("base64"):btoa(Z);H+=`
523
- //# sourceMappingURL=data:application/json;base64,${Q}`}else if(Z&&this.options.filename)H+=`
524
- //# sourceMappingURL=${this.options.filename}.js.map`;if(_)A=h1(_,J);return{tokens:Y,sexpr:J,code:H,dts:A,map:Z,reverseMap:D,data:F,reactiveVars:w.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}M2(C,m);C.prototype.generateEnum=f2;function q1($,W={}){return new Y1(W).compile($)}function n($,W={}){return new Y1(W).compileToJS($)}function A1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
522
+ `)}let F=new m().tokenize($);if(this.options.showTokens)F.forEach((J)=>console.log(`${J[0].padEnd(12)} ${JSON.stringify(J[1])}`)),console.log();let Y=null,A=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)A=[...F];F=F.filter((J)=>J[0]!=="TYPE_DECL");while(F.length>0&&F[0][0]==="TERMINATOR")F.shift();if(F.every((J)=>J[0]==="TERMINATOR")){if(A)Y=h1(A,["program"]);return{tokens:F,sexpr:["program"],code:"",dts:Y,data:_,reactiveVars:{}}}r.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let J=this.tokens[this.pos++],K=J[1];if(J.data)K=new String(K),Object.assign(K,J.data);return this.text=K,this.loc=J.loc,J[0]}};let X;try{X=r.parse($)}catch(J){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw J}if(this.options.showSExpr)console.log(l(X,0,!0)),console.log();let Q=null;if(this.options.sourceMap){let J=(this.options.filename||"output")+".js",K=this.options.filename||"input.rip";Q=new v1(J,K,$)}let w=new C({dataSection:_,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,reactiveVars:this.options.reactiveVars,sourceMap:Q}),H=w.compile(X),Z=Q?Q.toJSON():null,M=Q?Q.toReverseMap():null;if(Z&&this.options.sourceMap==="inline"){let J=typeof Buffer<"u"?Buffer.from(Z).toString("base64"):btoa(Z);H+=`
523
+ //# sourceMappingURL=data:application/json;base64,${J}`}else if(Z&&this.options.filename)H+=`
524
+ //# sourceMappingURL=${this.options.filename}.js.map`;if(A)Y=h1(A,X);return{tokens:F,sexpr:X,code:H,dts:Y,map:Z,reverseMap:M,data:_,reactiveVars:w.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}D2(C,m);C.prototype.generateEnum=f2;function q1($,W={}){return new F1(W).compile($)}function n($,W={}){return new F1(W).compileToJS($)}function Y1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
525
525
  globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
526
526
  globalThis.exit ??= (code) => process.exit(code || 0);
527
527
  globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
@@ -534,12 +534,12 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
534
534
  globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
535
535
  globalThis.warn ??= console.warn;
536
536
  globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
537
- `}function _1(){return new C({}).getReactiveRuntime()}function Z1(){return new C({}).getComponentRuntime()}var H2="3.13.13",z2="2026-02-25@05:34:54GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(_1())();if(!globalThis.__ripComponent)Function(Z1())()}var g3=($)=>{let W=$.match(/^[ \t]*(?=\S)/gm),F=Math.min(...(W||[]).map((U)=>U.length));return $.replace(RegExp(`^[ ]{${F}}`,"gm"),"").trim()};async function O2(){let $=[],W=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),F=W?.getAttribute("data-src");if(F){for(let u of F.trim().split(/\s+/))if(u)$.push({url:u})}for(let u of document.querySelectorAll('script[type="text/rip"]'))if(u.src)$.push({url:u.src});else{let f=g3(u.textContent);if(f)$.push({code:f})}if($.length>0){await Promise.all($.map(async(Y)=>{if(!Y.url)return;try{let A=await fetch(Y.url);if(!A.ok){console.error(`Rip: failed to fetch ${Y.url} (${A.status})`);return}Y.code=await A.text()}catch(A){console.error(`Rip: failed to fetch ${Y.url}:`,A.message)}}));let u={skipRuntimes:!0,skipExports:!0},f=[];for(let Y of $){if(!Y.code)continue;try{f.push(n(Y.code,u))}catch(A){console.error("Rip compile error:",A.message)}}if(f.length>0){let Y=f.join(`
538
- `),A=W?.getAttribute("data-mount");if(A){let _=W.getAttribute("data-target")||"body";Y+=`
539
- ${A}.mount(${JSON.stringify(_)});`}try{await(0,eval)(`(async()=>{
540
- ${Y}
541
- })()`)}catch(_){console.error("Rip runtime error:",_)}}}let U=document.querySelector("script[data-launch]");if(U&&!globalThis.__ripLaunched){let u=o.modules?.["app.rip"];if(u?.launch){let f=U.getAttribute("data-launch")||"",Y=U.getAttribute("data-hash"),A=U.getAttribute("data-persist"),_={hash:Y!=="false"};if(f)_.bundleUrl=f;if(A!=null)_.persist=A==="local"?"local":!0;await u.launch("",_)}}}async function o($){for(let[Y,A]of Object.entries(o.modules))if($.includes(Y))return A;let W=await fetch($).then((Y)=>{if(!Y.ok)throw Error(`importRip: ${$} (${Y.status})`);return Y.text()}),F=n(W),U=`// ${$}
542
- `,u=new Blob([U+F],{type:"application/javascript"});return await import(URL.createObjectURL(u))}o.modules={};function q2($){try{let W=$.replace(/^/gm," "),U=n(`do ->
543
- ${W}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(U);if(u&&typeof u.then==="function")return u.then((f)=>{if(f!==void 0)globalThis._=f;return f});if(u!==void 0)globalThis._=u;return u}catch(W){console.error("Rip compilation error:",W.message);return}}if(typeof globalThis<"u")globalThis.rip=q2,globalThis.importRip=o,globalThis.compileToJS=n,globalThis.__ripExports={compile:q1,compileToJS:n,formatSExpr:l,getStdlibCode:A1,VERSION:H2,BUILD_DATE:z2,getReactiveRuntime:_1,getComponentRuntime:Z1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise(($)=>{let W=()=>O2().then($);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(W));else queueMicrotask(W)});var I1={};s1(I1,{throttle:()=>m3,stash:()=>c2,setContext:()=>C2,raw:()=>g2,launch:()=>i3,isStash:()=>l3,hold:()=>n3,hasContext:()=>V2,getContext:()=>S2,delay:()=>l2,debounce:()=>k3,createRouter:()=>k2,createResource:()=>x3,createRenderer:()=>m2,createComponents:()=>x2});var G2,x1,u1,i,E1,P2,a,h,c1,X1,J1,k1,E2,I2,G1,P1,B2,N2,T2,g1,l1,S2,L2,m1,V2,Q1,n1,j2,h2,C2,y2,b2,i1,v2;globalThis.abort??=($)=>{if($)console.error($);process.exit(1)};globalThis.assert??=($,W)=>{if(!$)throw Error(W||"Assertion failed")};globalThis.exit??=($)=>process.exit($||0);globalThis.kind??=($)=>$!=null?($.constructor?.name||Object.prototype.toString.call($).slice(8,-1)).toLowerCase():String($);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=($)=>{return console.log(JSON.stringify($,null,2)),$};globalThis.raise??=($,W)=>{throw W!==void 0?new $(W):Error($)};globalThis.rand??=($,W)=>W!==void 0?($>W&&([$,W]=[W,$]),Math.floor(Math.random()*(W-$+1)+$)):$?Math.floor(Math.random()*$):Math.random();globalThis.sleep??=($)=>new Promise((W)=>setTimeout(W,$));globalThis.todo??=($)=>{throw Error($||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...$)=>$[0].map((W,F)=>$.map((U)=>U[F]));({__state:h,__effect:a,__batch:P2}=globalThis.__rip);({setContext:C2,getContext:S2,hasContext:V2}=globalThis.__ripComponent||{});E1=Symbol("stash");i=Symbol("signals");u1=Symbol("raw");x1=new WeakMap;c1=0;k1=h(0);m1=function($,W){let F;if(!$[i])Object.defineProperty($,i,{value:new Map,enumerable:!1});if(F=$[i].get(W),!F)F=h($[W]),$[i].set(W,F);return F};Q1=function($){return m1($,Symbol.for("keys"))};v2=function($){let W;if(!($!=null&&typeof $==="object"))return $;if($[E1])return $;if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Promise)return $;if(W=x1.get($),W)return W;return n1($)};n1=function($){let W,F;return F=null,W={get:function(U,u){let f,Y;if(u===E1)return!0;if(u===u1)return U;if(typeof u==="symbol")return Reflect.get(U,u);if(u==="length"&&Array.isArray(U))return Q1(U).value,U.length;if(u==="get")return function(A){return y2(F,A)};if(u==="set")return function(A,_){return b2(F,A,_)};if(f=m1(U,u),Y=f.value,Y!=null&&typeof Y==="object")return v2(Y);return Y},set:function(U,u,f){let Y,A;if(Y=U[u],A=f?.[u1]?f[u1]:f,A===Y)return!0;if(U[u]=A,U[i]?.has(u))U[i].get(u).value=A;if(Y===void 0&&A!==void 0)Q1(U).value=++c1;return k1.value++,!0},deleteProperty:function(U,u){let f;if(delete U[u],f=U[i]?.get(u),f)f.value=void 0;return Q1(U).value=++c1,!0},ownKeys:function(U){return Q1(U).value,Reflect.ownKeys(U)}},F=new Proxy($,W),x1.set($,F),F};G2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;i1=function($){let W,F,U,u,f;U=("."+$).split(G2),U.shift(),f=[],F=0;while(F<U.length){if(u=U[F],W=u[0],W==="."||W==="/")f.push(u.slice(1));else if(W==="[")if(u[1]==='"'||u[1]==="'")f.push(u.slice(2,-2));else f.push(+u.slice(1,-1));F+=2}return f};y2=function($,W){let F,U;U=i1(W),F=$;for(let u of U){if(F==null)return;F=F[u]}return F};b2=function($,W,F){let U,u;u=i1(W),U=$;for(let f=0;f<u.length;f++){let Y=u[f];if(f===u.length-1)U[Y]=F;else{if(U[Y]==null)U[Y]={};U=U[Y]}}return F};J1=function($){return typeof $==="function"?$:function(){return $.value}};X1=function($,W){let F;return F={read:function(){return $.read()}},Object.defineProperty(F,"value",{get:function(){return $.value},set:function(U){return W.value=U}}),F};T2=function($){let W;if(W=$.replace(/\.rip$/,""),W=W.replace(/\[\.\.\.(\w+)\]/g,"*$1"),W=W.replace(/\[(\w+)\]/g,":$1"),W==="index")return"/";return W=W.replace(/\/index$/,""),"/"+W};h2=function($){let W,F;return W=[],F=$.replace(/\*(\w+)/g,function(U,u){return W.push(u),"(.+)"}).replace(/:(\w+)/g,function(U,u){return W.push(u),"([^/]+)"}),{regex:new RegExp("^"+F+"$"),names:W}};j2=function($,W){let F,U;for(let u of W)if(F=$.match(u.regex.regex),F){U={};for(let f=0;f<u.regex.names.length;f++){let Y=u.regex.names[f];U[Y]=decodeURIComponent(F[f+1])}return{route:u,params:U}}return null};G1=function($,W="components"){let F,U,u,f,Y,A,_,J,X;_=[],u=new Map,F=$.listAll(W);for(let w of F){if(A=w.slice(W.length+1),!A.endsWith(".rip"))continue;if(f=A.split("/").pop(),f==="_layout.rip"){U=A==="_layout.rip"?"":A.slice(0,-12),u.set(U,w);continue}if(f.startsWith("_"))continue;if(J=A.split("/"),J.length>1&&J.some(function(H,Z){return Z<J.length-1&&H.startsWith("_")}))continue;X=T2(A),Y=h2(X),_.push({pattern:X,regex:Y,file:w,rel:A})}return _.sort(function(w,H){let Z,D,Q,K;if(D=(w.pattern.match(/:/g)||[]).length,K=(H.pattern.match(/:/g)||[]).length,Z=w.pattern.includes("*")?1:0,Q=H.pattern.includes("*")?1:0,Z!==Q)return Z-Q;if(D!==K)return D-K;return w.pattern.localeCompare(H.pattern)}),{routes:_,layouts:u}};L2=function($,W,F){let U,u,f,Y;if(U=[],f=$.slice(W.length+1),Y=f.split("/"),u="",F.has(""))U.push(F.get(""));for(let A=0;A<Y.length;A++){let _=Y[A];if(A===Y.length-1)break;if(u=u?u+"/"+_:_,F.has(u))U.push(F.get(u))}return U};E2=function($,W){if($.length!==W.length)return!1;for(let F=0;F<$.length;F++)if($[F]!==W[F])return!1;return!0};l1=function($){for(let W in $){let F=$[W];if(typeof F==="function"&&(F.prototype?.mount||F.prototype?._create))return F}return typeof $.default==="function"?$.default:void 0};g1=function($){let W;W={};for(let F in $){let U=$[F];if(typeof U==="function"&&(U.prototype?.mount||U.prototype?._create))W[F]=U}return W};N2=function($){let W;return W=$.split("/").pop().replace(/\.rip$/,""),W.replace(/(^|[-_])([a-z])/g,function(F,U,u){return u.toUpperCase()})};I2=function($,W="components"){let F,U,u;U={};for(let f of $.listAll(W)){if(!f.endsWith(".rip"))continue;if(F=f.split("/").pop(),F.startsWith("_"))continue;if(u=N2(f),U[u])console.warn(`[Rip] Component name collision: ${u} (${U[u]} vs ${f})`);U[u]=f}return U};P1=async function($,W,F=null,U=null,u=null){let f,Y,A,_,J,X,w,H,Z,D,Q,K;if(F&&U){if(Y=F.getCompiled(U),Y)return Y}if(w=W($),u){D={};for(let M in u.map){let O=u.map[M];if(O!==U&&w.includes(`new ${M}(`)){if(!u.classes[M]){if(_=F.read(O),_){A=await P1(_,W,F,O,u),J=g1(A);for(let q in J){let z=J[q];u.classes[q]=z}}}if(u.classes[M])D[M]=!0}}if(Z=Object.keys(D),Z.length>0)Q=`const {${Z.join(", ")}} = globalThis['${u.key}'];
544
- `,w=Q+w}if(X=U?`// ${U}
545
- `:"",f=new Blob([X+w],{type:"application/javascript"}),K=URL.createObjectURL(f),H=await import(K),u){J=g1(H);for(let M in J){let O=J[M];u.classes[M]=O}}if(F&&U)F.setCompiled(U,H);return H};B2=function($){let W,F,U;return U=1000,F=30000,W=function(){let u;return u=new EventSource($),u.addEventListener("connected",function(){return U=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let f of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(f.href),$.searchParams.set("_t",Date.now()),f.href=$.toString()}),u.onerror=function(){return u.close(),setTimeout(W,U),U=Math.min(U*2,F)}},W()};var c2=function($={}){return n1($)},g2=function($){return $?.[u1]?$[u1]:$},l3=function($){return $?.[E1]===!0},x3=function($,W={}){let F,U,u,f,Y;if(F=h(W.initial||null),u=h(!1),U=h(null),f=async function(){let A;return u.value=!0,U.value=null,(async()=>{try{return A=await $(),F.value=A}catch(_){return U.value=_}finally{u.value=!1}})()},Y={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(Y,"data",{get:function(){return F.value}}),Object.defineProperty(Y,"loading",{get:function(){return u.value}}),Object.defineProperty(Y,"error",{get:function(){return U.value}}),!W.lazy)f();return Y},l2=function($,W){let F,U;return F=J1(W),U=h(!!F()),a(function(){let u;if(F())return u=setTimeout(function(){return U.value=!0},$),function(){return clearTimeout(u)};else return U.value=!1}),typeof W!=="function"?X1(U,W):U},k3=function($,W){let F,U;return F=J1(W),U=h(F()),a(function(){let u,f;return f=F(),u=setTimeout(function(){return U.value=f},$),function(){return clearTimeout(u)}}),typeof W!=="function"?X1(U,W):U},m3=function($,W){let F,U,u;return F=J1(W),u=h(F()),U=0,a(function(){let f,Y,A,_;if(_=F(),f=Date.now(),Y=$-(f-U),Y<=0)return u.value=_,U=f;else return A=setTimeout(function(){return u.value=F(),U=Date.now()},Y),function(){return clearTimeout(A)}}),typeof W!=="function"?X1(u,W):u},n3=function($,W){let F,U;return F=J1(W),U=h(!!F()),a(function(){let u;if(F())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},$),function(){return clearTimeout(u)}}),typeof W!=="function"?X1(U,W):U},x2=function(){let $,W,F,U;return W=new Map,U=[],$=new Map,F=function(u,f){for(let Y of U)Y(u,f)},{read:function(u){return W.get(u)},write:function(u,f){let Y;return Y=!W.has(u),W.set(u,f),$.delete(u),F(Y?"create":"change",u)},del:function(u){return W.delete(u),$.delete(u),F("delete",u)},exists:function(u){return W.has(u)},size:function(){return W.size},list:function(u=""){let f,Y,A;A=[],f=u?u+"/":"";for(let[_]of W)if(_.startsWith(f)){if(Y=_.slice(f.length),Y.includes("/"))continue;A.push(_)}return A},listAll:function(u=""){let f,Y;Y=[],f=u?u+"/":"";for(let[A]of W)if(A.startsWith(f))Y.push(A);return Y},load:function(u){for(let f in u){let Y=u[f];W.set(f,Y)}},watch:function(u){return U.push(u),function(){return U.splice(U.indexOf(u),1)}},getCompiled:function(u){return $.get(u)},setCompiled:function(u,f){return $.set(u,f)}}},k2=function($,W={}){let F,U,u,f,Y,A,_,J,X,w,H,Z,D,Q,K,M,O,q,z,E,G;if(O=W.root||"components",X=W.base||"",w=W.hash||!1,D=W.onError||null,z=function(R){return X&&R.startsWith(X)?R.slice(X.length)||"/":R},J=function(R){return X?X+R:R},K=function(){let R;if(w){if(R=location.hash.slice(1),!R)return"/";return R[0]==="/"?R:"/"+R}else return location.pathname+location.search+location.hash},G=function(R){return w?R==="/"?location.pathname:"#"+R.slice(1):J(R)},Y=h(z(w?K():location.pathname)),f=h({}),_=h(null),U=h([]),A=h({}),F=h(""),u=l2(100,h(!1)),E=G1($,O),H=new Set,$.watch(function(R,P){if(!P.startsWith(O+"/"))return;return E=G1($,O)}),M=function(R){let P,I,B,N,T;if(N=R.split("?")[0].split("#")[0],I=z(N),I=I[0]==="/"?I:"/"+I,B=R.split("?")[1]?.split("#")[0]||"",P=R.includes("#")?R.split("#")[1]:"",T=j2(I,E.routes),T){P2(function(){return Y.value=I,f.value=T.params,_.value=T.route,U.value=L2(T.route.file,O,E.layouts),A.value=Object.fromEntries(new URLSearchParams(B)),F.value=P});for(let L of H)L(q.current);return!0}if(D)D({status:404,path:I});return!1},Q=function(){return M(K())},typeof window<"u")window.addEventListener("popstate",Q);if(Z=function(R){let P,I,B;if(R.button!==0||R.metaKey||R.ctrlKey||R.shiftKey||R.altKey)return;I=R.target;while(I&&I.tagName!=="A")I=I.parentElement;if(!I?.href)return;if(B=new URL(I.href,location.origin),B.origin!==location.origin)return;if(I.target==="_blank"||I.hasAttribute("data-external"))return;return R.preventDefault(),P=w&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,q.push(P)},typeof document<"u")document.addEventListener("click",Z);return q={push:function(R){return M(R)?history.pushState(null,"",G(Y.read())):void 0},replace:function(R){return M(R)?history.replaceState(null,"",G(Y.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(R){return H.add(R),function(){return H.delete(R)}},rebuild:function(){return E=G1($,O)},routes:void 0,init:function(){return M(K()),q},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",Q);if(typeof document<"u")document.removeEventListener("click",Z);return H.clear()}},Object.defineProperty(q,"current",{get:function(){return{path:Y.value,params:f.value,route:_.value,layouts:U.value,query:A.value,hash:F.value}}}),Object.defineProperty(q,"path",{get:function(){return Y.value}}),Object.defineProperty(q,"params",{get:function(){return f.value}}),Object.defineProperty(q,"route",{get:function(){return _.value}}),Object.defineProperty(q,"layouts",{get:function(){return U.value}}),Object.defineProperty(q,"query",{get:function(){return A.value}}),Object.defineProperty(q,"hash",{get:function(){return F.value}}),Object.defineProperty(q,"navigating",{get:function(){return u.value},set:function(R){return u.value=R}}),Object.defineProperty(q,"routes",{get:function(){return E.routes}}),q},m2=function($={}){let W,F,U,u,f,Y,A,_,J,X,w,H,Z,D,Q,K,M,O,q,z,E,G;if({router:z,app:W,components:f,resolver:q,compile:U,target:E,onError:M}=$,Y=typeof E==="string"?document.querySelector(E):E||document.getElementById("app"),!Y)Y=document.createElement("div"),Y.id="app",document.body.appendChild(Y);return Y.style.opacity="0",A=null,X=null,J=null,_=[],Z=[],Q=Y,H=0,w=null,u=new Map,D=$.cacheSize||10,F=function(){let R,P;if(A&&X){if(A.beforeUnmount)A.beforeUnmount();if(u.set(X,A),u.size>D){if(P=u.keys().next().value,R=u.get(P),R.unmounted)R.unmounted();u.delete(P)}return A=null,X=null}},G=function(){F();for(let R=Z.length-1;R>=0;R--){let P=Z[R];if(P.beforeUnmount)P.beforeUnmount();if(P.unmounted)P.unmounted();P._target?.remove()}return Z=[],Q=Y},f.watch(function(R,P){let I;if(u.has(P)){if(I=u.get(P),I.unmounted)I.unmounted();return u.delete(P)}}),K=async function(R){let P,I,B,N,T,L,j,v,K1,B1,f1,p1,p,d1,R1,s,w1,N1,y,r1,T1,t;if({route:y,params:s,layouts:v,query:N1}=R,!y)return;if(y.file===X&&JSON.stringify(s)===JSON.stringify(J))return;return J=s,N=++H,z.navigating=!0,(async()=>{try{if(T1=f.read(y.file),!T1){if(M)M({status:404,message:`File not found: ${y.file}`});z.navigating=!1;return}if(p1=await P1(T1,U,f,y.file,q),N!==H){z.navigating=!1;return}if(P=l1(p1),!P){if(M)M({status:500,message:`No component found in ${y.file}`});z.navigating=!1;return}if(f1=!E2(v,_),d1=A?._target,f1)G();else F();if(p=f1?Y:Q,f1&&v.length>0){Y.innerHTML="",p=Y;for(let c of v){if(B1=f.read(c),!B1)continue;if(K1=await P1(B1,U,f,c,q),N!==H){z.navigating=!1;return}if(I=l1(K1),!I)continue;if(L=new I({app:W,params:s,router:z}),L.beforeMount)L.beforeMount();t=document.createElement("div"),t.setAttribute("data-layout",c),p.appendChild(t),L.mount(t),Z.push(L),r1=t.querySelector("#content")||t,p=r1}_=[...v],Q=p}else if(f1)Y.innerHTML="",_=[],Q=Y;if(B=u.get(y.file),B)u.delete(y.file),p.appendChild(B._target),A=B,X=y.file;else{if(R1=document.createElement("div"),R1.setAttribute("data-component",y.file),p.appendChild(R1),j=new P({app:W,params:s,query:N1,router:z}),j.beforeMount)j.beforeMount();if(j.mount(R1),A=j,X=y.file,j.load)await j.load(s,N1)}return d1?.remove(),z.navigating=!1,Y.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return Y.style.transition="opacity 150ms ease-in",Y.style.opacity="1"})}):void 0}catch(c){if(z.navigating=!1,Y.style.opacity="1",console.error(`Renderer: error mounting ${y.file}:`,c),M)M({status:500,message:c.message,error:c});T=!1;for(let S1=Z.length-1;S1>=0;S1--){let o1=Z[S1];if(o1.onError)try{o1.onError(c),T=!0;break}catch(n2){console.error("Renderer: error boundary failed:",n2)}}return(()=>{if(!T)return w1=document.createElement("pre"),w1.style.cssText="color:red;padding:1em",w1.textContent=c.stack||c.message,Y.innerHTML="",Y.appendChild(w1)})()}})()},O={start:function(){return w=a(function(){let R;return R=z.current,R.route?K(R):void 0}),z.init(),O},stop:function(){if(G(),w)w(),w=null;return Y.innerHTML=""},remount:function(){let R;return R=z.current,R.route?K(R):void 0},cache:u},O},i3=async function($="",W={}){let F,U,u,f,Y,A,_,J,X,w,H,Z,D,Q,K,M,O,q;if(globalThis.__ripLaunched=!0,typeof $==="object")W=$,$="";if($=$.replace(/\/+$/,""),q=W.target||"#app",J=W.compile||null,H=W.persist||!1,w=W.hash||!1,!J)J=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(q))X=document.createElement("div"),X.id=q.replace(/^#/,""),document.body.prepend(X);if(W.bundle)A=W.bundle;else if(W.bundleUrl){if(D=await fetch(W.bundleUrl,{cache:"no-cache"}),!D.ok)throw Error(`launch: ${W.bundleUrl} (${D.status})`);A=await D.json()}else throw Error("launch: no bundle or bundleUrl provided");if(f=c2({components:{},routes:{},data:{}}),A.data)f.data=A.data;if(A.routes)f.routes=A.routes;if(H&&typeof sessionStorage<"u"){u=`__rip_${$}`,U=H==="local"?localStorage:sessionStorage;try{if(M=U.getItem(u),M){O=JSON.parse(M);for(let z in O){let E=O[z];f.data[z]=E}}}catch{}F=function(){return(()=>{try{return U.setItem(u,JSON.stringify(g2(f.data)))}catch{return null}})()},a(function(){let z;return k1.value,z=setTimeout(F,2000),function(){return clearTimeout(z)}}),window.addEventListener("beforeunload",F)}if(Y=x2(),A.components)Y.load(A.components);if(_=`__rip_${$.replace(/\//g,"_")||"app"}`,Q={map:I2(Y),classes:{},key:_},typeof globalThis<"u")globalThis[_]=Q.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(K=k2(Y,{root:"components",base:$,hash:w,onError:function(z){return console.error(`[Rip] Error ${z.status}: ${z.message||z.path}`)}}),Z=m2({router:K,app:f,components:Y,resolver:Q,compile:J,target:q,onError:function(z){return console.error(`[Rip] ${z.message}`,z.error)}}),Z.start(),A.data?.watch)B2(`${$}/watch`);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:Y,router:K,renderer:Z,cache:Z.cache,version:"0.3.0"};return{app:f,components:Y,router:K,renderer:Z}};o.modules["app.rip"]=I1;for(let[$,W]of Object.entries(I1))if(typeof W==="function")globalThis[$]=W;})();
537
+ `}function A1(){return new C({}).getReactiveRuntime()}function Z1(){return new C({}).getComponentRuntime()}var H2="3.13.15",z2="2026-02-25@06:33:14GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(A1())();if(!globalThis.__ripComponent)Function(Z1())()}var g3=($)=>{let W=$.match(/^[ \t]*(?=\S)/gm),_=Math.min(...(W||[]).map((U)=>U.length));return $.replace(RegExp(`^[ ]{${_}}`,"gm"),"").trim()};async function O2(){let $=[],W=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),_=W?.getAttribute("data-src");if(_){for(let u of _.trim().split(/\s+/))if(u)$.push({url:u})}for(let u of document.querySelectorAll('script[type="text/rip"]'))if(u.src)$.push({url:u.src});else{let f=g3(u.textContent);if(f)$.push({code:f})}if($.length>0){await Promise.all($.map(async(F)=>{if(!F.url)return;try{let Y=await fetch(F.url);if(!Y.ok){console.error(`Rip: failed to fetch ${F.url} (${Y.status})`);return}F.code=await Y.text()}catch(Y){console.error(`Rip: failed to fetch ${F.url}:`,Y.message)}}));let u={skipRuntimes:!0,skipExports:!0},f=[];for(let F of $){if(!F.code)continue;try{f.push(n(F.code,u))}catch(Y){console.error("Rip compile error:",Y.message)}}if(f.length>0){let F=f.join(`
538
+ `),Y=W?.getAttribute("data-mount");if(Y){let A=W.getAttribute("data-target")||"body";F+=`
539
+ ${Y}.mount(${JSON.stringify(A)});`}try{await(0,eval)(`(async()=>{
540
+ ${F}
541
+ })()`)}catch(A){console.error("Rip runtime error:",A)}}}let U=document.querySelector("script[data-launch]");if(U&&!globalThis.__ripLaunched){let u=o.modules?.["app.rip"];if(u?.launch){let f=U.getAttribute("data-launch")||"",F=U.getAttribute("data-hash"),Y=U.getAttribute("data-persist"),A={hash:F!=="false"};if(f)A.bundleUrl=f;if(Y!=null)A.persist=Y==="local"?"local":!0;await u.launch("",A)}}}async function o($){for(let[F,Y]of Object.entries(o.modules))if($.includes(F))return Y;let W=await fetch($).then((F)=>{if(!F.ok)throw Error(`importRip: ${$} (${F.status})`);return F.text()}),_=n(W),U=`// ${$}
542
+ `,u=new Blob([U+_],{type:"application/javascript"});return await import(URL.createObjectURL(u))}o.modules={};function q2($){try{let W=$.replace(/^/gm," "),U=n(`do ->
543
+ ${W}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(U);if(u&&typeof u.then==="function")return u.then((f)=>{if(f!==void 0)globalThis._=f;return f});if(u!==void 0)globalThis._=u;return u}catch(W){console.error("Rip compilation error:",W.message);return}}if(typeof globalThis<"u")globalThis.rip=q2,globalThis.importRip=o,globalThis.compileToJS=n,globalThis.__ripExports={compile:q1,compileToJS:n,formatSExpr:l,getStdlibCode:Y1,VERSION:H2,BUILD_DATE:z2,getReactiveRuntime:A1,getComponentRuntime:Z1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise(($)=>{let W=()=>O2().then($);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(W));else queueMicrotask(W)});var I1={};s1(I1,{throttle:()=>m3,stash:()=>c2,setContext:()=>C2,raw:()=>g2,launch:()=>i3,isStash:()=>l3,hold:()=>n3,hasContext:()=>V2,getContext:()=>S2,delay:()=>l2,debounce:()=>k3,createRouter:()=>k2,createResource:()=>x3,createRenderer:()=>m2,createComponents:()=>x2});var G2,x1,u1,i,E1,P2,a,h,c1,Q1,X1,k1,E2,I2,G1,P1,B2,N2,T2,g1,l1,S2,L2,m1,V2,J1,n1,j2,h2,C2,y2,b2,i1,v2;globalThis.abort??=($)=>{if($)console.error($);process.exit(1)};globalThis.assert??=($,W)=>{if(!$)throw Error(W||"Assertion failed")};globalThis.exit??=($)=>process.exit($||0);globalThis.kind??=($)=>$!=null?($.constructor?.name||Object.prototype.toString.call($).slice(8,-1)).toLowerCase():String($);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=($)=>{return console.log(JSON.stringify($,null,2)),$};globalThis.raise??=($,W)=>{throw W!==void 0?new $(W):Error($)};globalThis.rand??=($,W)=>W!==void 0?($>W&&([$,W]=[W,$]),Math.floor(Math.random()*(W-$+1)+$)):$?Math.floor(Math.random()*$):Math.random();globalThis.sleep??=($)=>new Promise((W)=>setTimeout(W,$));globalThis.todo??=($)=>{throw Error($||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...$)=>$[0].map((W,_)=>$.map((U)=>U[_]));({__state:h,__effect:a,__batch:P2}=globalThis.__rip);({setContext:C2,getContext:S2,hasContext:V2}=globalThis.__ripComponent||{});E1=Symbol("stash");i=Symbol("signals");u1=Symbol("raw");x1=new WeakMap;c1=0;k1=h(0);m1=function($,W){let _;if(!$[i])Object.defineProperty($,i,{value:new Map,enumerable:!1});if(_=$[i].get(W),!_)_=h($[W]),$[i].set(W,_);return _};J1=function($){return m1($,Symbol.for("keys"))};v2=function($){let W;if(!($!=null&&typeof $==="object"))return $;if($[E1])return $;if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Promise)return $;if(W=x1.get($),W)return W;return n1($)};n1=function($){let W,_;return _=null,W={get:function(U,u){let f,F;if(u===E1)return!0;if(u===u1)return U;if(typeof u==="symbol")return Reflect.get(U,u);if(u==="length"&&Array.isArray(U))return J1(U).value,U.length;if(u==="get")return function(Y){return y2(_,Y)};if(u==="set")return function(Y,A){return b2(_,Y,A)};if(f=m1(U,u),F=f.value,F!=null&&typeof F==="object")return v2(F);return F},set:function(U,u,f){let F,Y;if(F=U[u],Y=f?.[u1]?f[u1]:f,Y===F)return!0;if(U[u]=Y,U[i]?.has(u))U[i].get(u).value=Y;if(F===void 0&&Y!==void 0)J1(U).value=++c1;return k1.value++,!0},deleteProperty:function(U,u){let f;if(delete U[u],f=U[i]?.get(u),f)f.value=void 0;return J1(U).value=++c1,!0},ownKeys:function(U){return J1(U).value,Reflect.ownKeys(U)}},_=new Proxy($,W),x1.set($,_),_};G2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;i1=function($){let W,_,U,u,f;U=("."+$).split(G2),U.shift(),f=[],_=0;while(_<U.length){if(u=U[_],W=u[0],W==="."||W==="/")f.push(u.slice(1));else if(W==="[")if(u[1]==='"'||u[1]==="'")f.push(u.slice(2,-2));else f.push(+u.slice(1,-1));_+=2}return f};y2=function($,W){let _,U;U=i1(W),_=$;for(let u of U){if(_==null)return;_=_[u]}return _};b2=function($,W,_){let U,u;u=i1(W),U=$;for(let f=0;f<u.length;f++){let F=u[f];if(f===u.length-1)U[F]=_;else{if(U[F]==null)U[F]={};U=U[F]}}return _};X1=function($){return typeof $==="function"?$:function(){return $.value}};Q1=function($,W){let _;return _={read:function(){return $.read()}},Object.defineProperty(_,"value",{get:function(){return $.value},set:function(U){return W.value=U}}),_};T2=function($){let W;if(W=$.replace(/\.rip$/,""),W=W.replace(/\[\.\.\.(\w+)\]/g,"*$1"),W=W.replace(/\[(\w+)\]/g,":$1"),W==="index")return"/";return W=W.replace(/\/index$/,""),"/"+W};h2=function($){let W,_;return W=[],_=$.replace(/\*(\w+)/g,function(U,u){return W.push(u),"(.+)"}).replace(/:(\w+)/g,function(U,u){return W.push(u),"([^/]+)"}),{regex:new RegExp("^"+_+"$"),names:W}};j2=function($,W){let _,U;for(let u of W)if(_=$.match(u.regex.regex),_){U={};for(let f=0;f<u.regex.names.length;f++){let F=u.regex.names[f];U[F]=decodeURIComponent(_[f+1])}return{route:u,params:U}}return null};G1=function($,W="components"){let _,U,u,f,F,Y,A,X,Q;A=[],u=new Map,_=$.listAll(W);for(let w of _){if(Y=w.slice(W.length+1),!Y.endsWith(".rip"))continue;if(f=Y.split("/").pop(),f==="_layout.rip"){U=Y==="_layout.rip"?"":Y.slice(0,-12),u.set(U,w);continue}if(f.startsWith("_"))continue;if(X=Y.split("/"),X.length>1&&X.some(function(H,Z){return Z<X.length-1&&H.startsWith("_")}))continue;Q=T2(Y),F=h2(Q),A.push({pattern:Q,regex:F,file:w,rel:Y})}return A.sort(function(w,H){let Z,M,J,K;if(M=(w.pattern.match(/:/g)||[]).length,K=(H.pattern.match(/:/g)||[]).length,Z=w.pattern.includes("*")?1:0,J=H.pattern.includes("*")?1:0,Z!==J)return Z-J;if(M!==K)return M-K;return w.pattern.localeCompare(H.pattern)}),{routes:A,layouts:u}};L2=function($,W,_){let U,u,f,F;if(U=[],f=$.slice(W.length+1),F=f.split("/"),u="",_.has(""))U.push(_.get(""));for(let Y=0;Y<F.length;Y++){let A=F[Y];if(Y===F.length-1)break;if(u=u?u+"/"+A:A,_.has(u))U.push(_.get(u))}return U};E2=function($,W){if($.length!==W.length)return!1;for(let _=0;_<$.length;_++)if($[_]!==W[_])return!1;return!0};l1=function($){for(let W in $){let _=$[W];if(typeof _==="function"&&(_.prototype?.mount||_.prototype?._create))return _}return typeof $.default==="function"?$.default:void 0};g1=function($){let W;W={};for(let _ in $){let U=$[_];if(typeof U==="function"&&(U.prototype?.mount||U.prototype?._create))W[_]=U}return W};N2=function($){let W;return W=$.split("/").pop().replace(/\.rip$/,""),W.replace(/(^|[-_])([a-z])/g,function(_,U,u){return u.toUpperCase()})};I2=function($,W="components"){let _,U,u;U={};for(let f of $.listAll(W)){if(!f.endsWith(".rip"))continue;if(_=f.split("/").pop(),_.startsWith("_"))continue;if(u=N2(f),U[u])console.warn(`[Rip] Component name collision: ${u} (${U[u]} vs ${f})`);U[u]=f}return U};P1=async function($,W,_=null,U=null,u=null){let f,F,Y,A,X,Q,w,H,Z,M,J,K;if(_&&U){if(F=_.getCompiled(U),F)return F}if(w=W($),u){M={};for(let D in u.map){let O=u.map[D];if(O!==U&&w.includes(`new ${D}(`)){if(!u.classes[D]){if(A=_.read(O),A){Y=await P1(A,W,_,O,u),X=g1(Y);for(let q in X){let z=X[q];u.classes[q]=z}}}if(u.classes[D])M[D]=!0}}if(Z=Object.keys(M),Z.length>0)J=`const {${Z.join(", ")}} = globalThis['${u.key}'];
544
+ `,w=J+w}if(Q=U?`// ${U}
545
+ `:"",f=new Blob([Q+w],{type:"application/javascript"}),K=URL.createObjectURL(f),H=await import(K),u){X=g1(H);for(let D in X){let O=X[D];u.classes[D]=O}}if(_&&U)_.setCompiled(U,H);return H};B2=function($){let W,_,U;return U=1000,_=30000,W=function(){let u;return u=new EventSource($),u.addEventListener("connected",function(){return U=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){for(let f of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(f.href),$.searchParams.set("_t",Date.now()),f.href=$.toString()}),u.onerror=function(){return u.close(),setTimeout(W,U),U=Math.min(U*2,_)}},W()};var c2=function($={}){return n1($)},g2=function($){return $?.[u1]?$[u1]:$},l3=function($){return $?.[E1]===!0},x3=function($,W={}){let _,U,u,f,F;if(_=h(W.initial||null),u=h(!1),U=h(null),f=async function(){let Y;return u.value=!0,U.value=null,(async()=>{try{return Y=await $(),_.value=Y}catch(A){return U.value=A}finally{u.value=!1}})()},F={data:void 0,loading:void 0,error:void 0,refetch:f},Object.defineProperty(F,"data",{get:function(){return _.value}}),Object.defineProperty(F,"loading",{get:function(){return u.value}}),Object.defineProperty(F,"error",{get:function(){return U.value}}),!W.lazy)f();return F},l2=function($,W){let _,U;return _=X1(W),U=h(!!_()),a(function(){let u;if(_())return u=setTimeout(function(){return U.value=!0},$),function(){return clearTimeout(u)};else return U.value=!1}),typeof W!=="function"?Q1(U,W):U},k3=function($,W){let _,U;return _=X1(W),U=h(_()),a(function(){let u,f;return f=_(),u=setTimeout(function(){return U.value=f},$),function(){return clearTimeout(u)}}),typeof W!=="function"?Q1(U,W):U},m3=function($,W){let _,U,u;return _=X1(W),u=h(_()),U=0,a(function(){let f,F,Y,A;if(A=_(),f=Date.now(),F=$-(f-U),F<=0)return u.value=A,U=f;else return Y=setTimeout(function(){return u.value=_(),U=Date.now()},F),function(){return clearTimeout(Y)}}),typeof W!=="function"?Q1(u,W):u},n3=function($,W){let _,U;return _=X1(W),U=h(!!_()),a(function(){let u;if(_())return U.value=!0;else return u=setTimeout(function(){return U.value=!1},$),function(){return clearTimeout(u)}}),typeof W!=="function"?Q1(U,W):U},x2=function(){let $,W,_,U;return W=new Map,U=[],$=new Map,_=function(u,f){for(let F of U)F(u,f)},{read:function(u){return W.get(u)},write:function(u,f){let F;return F=!W.has(u),W.set(u,f),$.delete(u),_(F?"create":"change",u)},del:function(u){return W.delete(u),$.delete(u),_("delete",u)},exists:function(u){return W.has(u)},size:function(){return W.size},list:function(u=""){let f,F,Y;Y=[],f=u?u+"/":"";for(let[A]of W)if(A.startsWith(f)){if(F=A.slice(f.length),F.includes("/"))continue;Y.push(A)}return Y},listAll:function(u=""){let f,F;F=[],f=u?u+"/":"";for(let[Y]of W)if(Y.startsWith(f))F.push(Y);return F},load:function(u){for(let f in u){let F=u[f];W.set(f,F)}},watch:function(u){return U.push(u),function(){return U.splice(U.indexOf(u),1)}},getCompiled:function(u){return $.get(u)},setCompiled:function(u,f){return $.set(u,f)}}},k2=function($,W={}){let _,U,u,f,F,Y,A,X,Q,w,H,Z,M,J,K,D,O,q,z,E,P;if(O=W.root||"components",Q=W.base||"",w=W.hash||!1,M=W.onError||null,z=function(R){return Q&&R.startsWith(Q)?R.slice(Q.length)||"/":R},X=function(R){return Q?Q+R:R},K=function(){let R;if(w){if(R=location.hash.slice(1),!R)return"/";return R[0]==="/"?R:"/"+R}else return location.pathname+location.search+location.hash},P=function(R){return w?R==="/"?location.pathname:"#"+R.slice(1):X(R)},F=h(z(w?K():location.pathname)),f=h({}),A=h(null),U=h([]),Y=h({}),_=h(""),u=l2(100,h(!1)),E=G1($,O),H=new Set,$.watch(function(R,G){if(!G.startsWith(O+"/"))return;return E=G1($,O)}),D=function(R){let G,I,B,N,T;if(N=R.split("?")[0].split("#")[0],I=z(N),I=I[0]==="/"?I:"/"+I,B=R.split("?")[1]?.split("#")[0]||"",G=R.includes("#")?R.split("#")[1]:"",T=j2(I,E.routes),T){P2(function(){return F.value=I,f.value=T.params,A.value=T.route,U.value=L2(T.route.file,O,E.layouts),Y.value=Object.fromEntries(new URLSearchParams(B)),_.value=G});for(let L of H)L(q.current);return!0}if(M)M({status:404,path:I});return!1},J=function(){return D(K())},typeof window<"u")window.addEventListener("popstate",J);if(Z=function(R){let G,I,B;if(R.button!==0||R.metaKey||R.ctrlKey||R.shiftKey||R.altKey)return;I=R.target;while(I&&I.tagName!=="A")I=I.parentElement;if(!I?.href)return;if(B=new URL(I.href,location.origin),B.origin!==location.origin)return;if(I.target==="_blank"||I.hasAttribute("data-external"))return;return R.preventDefault(),G=w&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,q.push(G)},typeof document<"u")document.addEventListener("click",Z);return q={push:function(R){return D(R)?history.pushState(null,"",P(F.read())):void 0},replace:function(R){return D(R)?history.replaceState(null,"",P(F.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(R){return H.add(R),function(){return H.delete(R)}},rebuild:function(){return E=G1($,O)},routes:void 0,init:function(){return D(K()),q},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",J);if(typeof document<"u")document.removeEventListener("click",Z);return H.clear()}},Object.defineProperty(q,"current",{get:function(){return{path:F.value,params:f.value,route:A.value,layouts:U.value,query:Y.value,hash:_.value}}}),Object.defineProperty(q,"path",{get:function(){return F.value}}),Object.defineProperty(q,"params",{get:function(){return f.value}}),Object.defineProperty(q,"route",{get:function(){return A.value}}),Object.defineProperty(q,"layouts",{get:function(){return U.value}}),Object.defineProperty(q,"query",{get:function(){return Y.value}}),Object.defineProperty(q,"hash",{get:function(){return _.value}}),Object.defineProperty(q,"navigating",{get:function(){return u.value},set:function(R){return u.value=R}}),Object.defineProperty(q,"routes",{get:function(){return E.routes}}),q},m2=function($={}){let W,_,U,u,f,F,Y,A,X,Q,w,H,Z,M,J,K,D,O,q,z,E,P;if({router:z,app:W,components:f,resolver:q,compile:U,target:E,onError:D}=$,F=typeof E==="string"?document.querySelector(E):E||document.getElementById("app"),!F)F=document.createElement("div"),F.id="app",document.body.appendChild(F);return F.style.opacity="0",Y=null,Q=null,X=null,A=[],Z=[],J=F,H=0,w=null,u=new Map,M=$.cacheSize||10,_=function(){let R,G;if(Y&&Q){if(Y.beforeUnmount)Y.beforeUnmount();if(u.set(Q,Y),u.size>M){if(G=u.keys().next().value,R=u.get(G),R.unmounted)R.unmounted();u.delete(G)}return Y=null,Q=null}},P=function(){_();for(let R=Z.length-1;R>=0;R--){let G=Z[R];if(G.beforeUnmount)G.beforeUnmount();if(G.unmounted)G.unmounted();G._target?.remove()}return Z=[],J=F},f.watch(function(R,G){let I;if(u.has(G)){if(I=u.get(G),I.unmounted)I.unmounted();return u.delete(G)}}),K=async function(R){let G,I,B,N,T,L,j,v,K1,B1,f1,p1,p,d1,R1,s,w1,N1,y,r1,T1,t;if({route:y,params:s,layouts:v,query:N1}=R,!y)return;if(y.file===Q&&JSON.stringify(s)===JSON.stringify(X))return;return X=s,N=++H,z.navigating=!0,(async()=>{try{if(T1=f.read(y.file),!T1){if(D)D({status:404,message:`File not found: ${y.file}`});z.navigating=!1;return}if(p1=await P1(T1,U,f,y.file,q),N!==H){z.navigating=!1;return}if(G=l1(p1),!G){if(D)D({status:500,message:`No component found in ${y.file}`});z.navigating=!1;return}if(f1=!E2(v,A),d1=Y?._target,f1)P();else _();if(p=f1?F:J,f1&&v.length>0){F.innerHTML="",p=F;for(let c of v){if(B1=f.read(c),!B1)continue;if(K1=await P1(B1,U,f,c,q),N!==H){z.navigating=!1;return}if(I=l1(K1),!I)continue;if(L=new I({app:W,params:s,router:z}),L.beforeMount)L.beforeMount();t=document.createElement("div"),t.setAttribute("data-layout",c),p.appendChild(t),L.mount(t),Z.push(L),r1=t.querySelector("#content")||t,p=r1}A=[...v],J=p}else if(f1)F.innerHTML="",A=[],J=F;if(B=u.get(y.file),B)u.delete(y.file),p.appendChild(B._target),Y=B,Q=y.file;else{if(R1=document.createElement("div"),R1.setAttribute("data-component",y.file),p.appendChild(R1),j=new G({app:W,params:s,query:N1,router:z}),j.beforeMount)j.beforeMount();if(j.mount(R1),Y=j,Q=y.file,j.load)await j.load(s,N1)}return d1?.remove(),z.navigating=!1,F.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return F.style.transition="opacity 150ms ease-in",F.style.opacity="1"})}):void 0}catch(c){if(z.navigating=!1,F.style.opacity="1",console.error(`Renderer: error mounting ${y.file}:`,c),D)D({status:500,message:c.message,error:c});T=!1;for(let S1=Z.length-1;S1>=0;S1--){let o1=Z[S1];if(o1.onError)try{o1.onError(c),T=!0;break}catch(n2){console.error("Renderer: error boundary failed:",n2)}}return(()=>{if(!T)return w1=document.createElement("pre"),w1.style.cssText="color:red;padding:1em",w1.textContent=c.stack||c.message,F.innerHTML="",F.appendChild(w1)})()}})()},O={start:function(){return w=a(function(){let R;return R=z.current,R.route?K(R):void 0}),z.init(),O},stop:function(){if(P(),w)w(),w=null;return F.innerHTML=""},remount:function(){let R;return R=z.current,R.route?K(R):void 0},cache:u},O},i3=async function($="",W={}){let _,U,u,f,F,Y,A,X,Q,w,H,Z,M,J,K,D,O,q,z,E,P,R;if(globalThis.__ripLaunched=!0,typeof $==="object")W=$,$="";if($=$.replace(/\/+$/,""),R=W.target||"#app",Q=W.compile||null,K=W.persist||!1,M=W.hash||!1,!Q)Q=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(R))w=document.createElement("div"),w.id=R.replace(/^#/,""),document.body.prepend(w);if(W.bundle)Y=W.bundle;else if(W.bundleUrl){if(J={},Z=`__rip_etag_${W.bundleUrl}`,A=sessionStorage.getItem(Z),A)J["If-None-Match"]=A;if(O=await fetch(W.bundleUrl,{headers:J}),O.status===304)Y=JSON.parse(sessionStorage.getItem(`${Z}_data`));else if(O.ok){if(Y=await O.json(),H=O.headers.get("etag"),H)sessionStorage.setItem(Z,H),sessionStorage.setItem(`${Z}_data`,JSON.stringify(Y))}else throw Error(`launch: ${W.bundleUrl} (${O.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(f=c2({components:{},routes:{},data:{}}),Y.data)f.data=Y.data;if(Y.routes)f.routes=Y.routes;if(K&&typeof sessionStorage<"u"){u=`__rip_${$}`,U=K==="local"?localStorage:sessionStorage;try{if(E=U.getItem(u),E){P=JSON.parse(E);for(let G in P){let I=P[G];f.data[G]=I}}}catch{}_=function(){return(()=>{try{return U.setItem(u,JSON.stringify(g2(f.data)))}catch{return null}})()},a(function(){let G;return k1.value,G=setTimeout(_,2000),function(){return clearTimeout(G)}}),window.addEventListener("beforeunload",_)}if(F=x2(),Y.components)F.load(Y.components);if(X=`__rip_${$.replace(/\//g,"_")||"app"}`,q={map:I2(F),classes:{},key:X},typeof globalThis<"u")globalThis[X]=q.classes;if(f.data.title&&typeof document<"u")document.title=f.data.title;if(z=k2(F,{root:"components",base:$,hash:M,onError:function(G){return console.error(`[Rip] Error ${G.status}: ${G.message||G.path}`)}}),D=m2({router:z,app:f,components:F,resolver:q,compile:Q,target:R,onError:function(G){return console.error(`[Rip] ${G.message}`,G.error)}}),D.start(),Y.data?.watch)B2(`${$}/watch`);if(typeof window<"u")window.app=f,window.__RIP__={app:f,components:F,router:z,renderer:D,cache:D.cache,version:"0.3.0"};return{app:f,components:F,router:z,renderer:D}};o.modules["app.rip"]=I1;for(let[$,W]of Object.entries(I1))if(typeof W==="function")globalThis[$]=W;})();