rip-lang 3.13.52 → 3.13.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/docs/dist/rip.js +137 -89
- package/docs/dist/rip.min.js +162 -162
- package/docs/dist/rip.min.js.br +0 -0
- package/package.json +1 -1
- package/src/compiler.js +2 -0
- package/src/components.js +38 -3
- package/src/grammar/grammar.rip +3 -1
- package/src/lexer.js +1 -1
- package/src/parser.js +60 -58
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
(()=>{var{defineProperty:V1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:n2}=Object,p2=Object.prototype.hasOwnProperty;var s1=new WeakMap,d2=($)=>{var U=s1.get($),W;if(U)return U;if(U=V1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")i2($).map((F)=>!p2.call(U,F)&&V1(U,F,{get:()=>$[F],enumerable:!(W=n2($,F))||W.enumerable}));return s1.set($,U),U};var t1=($,U)=>{for(var W in U)V1($,W,{get:U[W],enumerable:!0,configurable:!0,set:(F)=>U[W]=()=>F})};var n3={};t1(n3,{rip:()=>q2,processRipScripts:()=>H2,parser:()=>s,importRip:()=>t,getStdlibCode:()=>w1,getReactiveRuntime:()=>J1,getComponentRuntime:()=>Q1,formatSExpr:()=>k,compileToJS:()=>r,compile:()=>I1,VERSION:()=>D2,Lexer:()=>d,Compiler:()=>R1,CodeGenerator:()=>b,BUILD_DATE:()=>M2});function f2($){let U=$.prototype;U.rewriteTypes=function(){let W=this.tokens,F=(f,u,Y)=>{let A=[f,u];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((f,u,Y)=>{let A=f[0];if(A==="IDENTIFIER"){let _=Y[u+1];if(_&&_[0]==="COMPARE"&&_[1]==="<"&&!_.spaced){let R=Y[u-1]?.[0]==="DEF",w=r2(Y,u+1);if(w){let z=!R&&Y[u+1+w.length]?.[0]==="TYPE_ALIAS";if(R||z){if(!f.data)f.data={};if(f.data.typeParams=Y1(w),Y.splice(u+1,w.length),R&&Y[u+1]?.[0]==="("){Y[u+1][0]="CALL_START";let X=1,K=u+2;while(K<Y.length&&X>0){if(Y[K][0]==="("||Y[K][0]==="CALL_START")X++;if(Y[K][0]===")"||Y[K][0]==="CALL_END")X--;if(X===0)Y[K][0]="CALL_END";K++}}}}}}if(A==="TYPE_ANNOTATION"){let _=Y[u-1];if(!_)return 1;let R=e1(Y,u+1),w=Y1(R),z=_,X="type";if(_[0]==="CALL_END"||_[0]===")"){let D=1,Z=u-2;while(Z>=0&&D>0){let J=Y[Z][0];if(J==="CALL_END"||J===")")D++;if(J==="CALL_START"||J==="(")D--;Z--}if(Z>=0)z=Y[Z];X="returnType"}else if(_[0]==="PARAM_END"){let D=u+1+R.length,Z=Y[D];if(Z&&(Z[0]==="->"||Z[0]==="=>"))z=Z;X="returnType"}else if(_[0]==="IDENTIFIER"&&u>=2&&Y[u-2]?.[0]==="DEF")X="returnType";if(!z.data)z.data={};z.data[X]=w;let K=1+R.length;return Y.splice(u,K),0}if(A==="TYPE_ALIAS"){let _=Y[u-1];if(!_)return 1;let R=_[1],w=u>=2&&Y[u-2]?.[0]==="EXPORT",z=w?u-2:u-1,X=Y[u+1],K=(Z)=>{let J=F("TYPE_DECL",R,_);if(J.data={name:R,typeText:Z,exported:w},_.data?.typeParams)J.data.typeParams=_.data.typeParams;return J};if(X&&X[0]==="IDENTIFIER"&&X[1]==="type"&&Y[u+2]?.[0]==="INDENT"){let Z=j1(Y,u+2);return Y.splice(z,Z-z+1,K(u2(Y,u+2))),0}if(X&&(X[0]==="TERMINATOR"||X[0]==="INDENT")){let Z=o2(Y,u+1);if(Z)return Y.splice(z,Z.endIdx-z+1,K(Z.typeText)),0}let D=e1(Y,u+1);return Y.splice(z,u+1+D.length-z,K(Y1(D))),0}if(A==="INTERFACE"){let _=u>=1&&Y[u-1]?.[0]==="EXPORT",R=u+1,w=Y[R];if(!w)return 1;let z=w[1],X=null,K=R+1;if(Y[K]?.[0]==="EXTENDS")X=Y[K+1]?.[1],K=K+2;if(Y[K]?.[0]==="INDENT"){let D=u2(Y,K),Z=j1(Y,K),J=F("TYPE_DECL",z,w);J.data={name:z,kind:"interface",extends:X,typeText:D,exported:_};let Q=_?u-1:u,H=Z-Q+1;return Y.splice(Q,H,J),0}return 1}return 1})}}function e1($,U){let W=[],F=0;while(U<$.length){let f=$[U],u=f[0],Y=u==="("||u==="["||u==="CALL_START"||u==="PARAM_START"||u==="INDEX_START"||u==="COMPARE"&&f[1]==="<",A=u===")"||u==="]"||u==="CALL_END"||u==="PARAM_END"||u==="INDEX_END"||u==="COMPARE"&&f[1]===">";if(u==="SHIFT"&&f[1]===">>"&&F>=2){F-=2,W.push(f),U++;continue}if(Y){F++,W.push(f),U++;continue}if(A){if(F>0){F--,W.push(f),U++;continue}break}if(F===0){if(u==="="||u==="REACTIVE_ASSIGN"||u==="COMPUTED_ASSIGN"||u==="READONLY_ASSIGN"||u==="EFFECT"||u==="TERMINATOR"||u==="INDENT"||u==="OUTDENT"||u==="->"||u===",")break}W.push(f),U++}return W}function Y1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let U=$.map((W)=>W[1]).join(" ").replace(/\s+/g," ").trim();return U=U.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,": "),U}function r2($,U){if(U>=$.length)return null;let W=$[U];if(W[0]!=="COMPARE"||W[1]!=="<")return null;let F=[W],f=1,u=U+1;while(u<$.length&&f>0){let Y=$[u];if(F.push(Y),Y[0]==="COMPARE"&&Y[1]==="<")f++;else if(Y[0]==="COMPARE"&&Y[1]===">")f--;u++}return f===0?F:null}function u2($,U){let W=[],F=U+1,f=1;while(F<$.length&&f>0){let u=$[F];if(u[0]==="INDENT"){f++,F++;continue}if(u[0]==="OUTDENT"){if(f--,f===0)break;F++;continue}if(u[0]==="TERMINATOR"){F++;continue}if(f===1&&(u[0]==="PROPERTY"||u[0]==="IDENTIFIER")){let Y=u[1],A=!1,_=!1;if(F++,Y==="readonly"&&($[F]?.[0]==="PROPERTY"||$[F]?.[0]==="IDENTIFIER")){if(_=!0,Y=$[F][1],$[F].data?.predicate)A=!0;F++}if(u.data?.predicate)A=!0;if($[F]?.[1]==="?"&&!$[F]?.spaced)A=!0,F++;if($[F]?.[1]===":"||$[F]?.[0]==="TYPE_ANNOTATION")F++;let R=[],w=0;while(F<$.length){let D=$[F];if(D[0]==="INDENT"){w++,F++;continue}if(D[0]==="OUTDENT"){if(w>0){w--,F++;continue}break}if(D[0]==="TERMINATOR"&&w===0)break;R.push(D),F++}let z=Y1(R),X=_?"readonly ":"",K=A?"?":"";W.push(`${X}${Y}${K}: ${z}`)}else F++}return"{ "+W.join("; ")+" }"}function j1($,U){let W=0;for(let F=U;F<$.length;F++){if($[F][0]==="INDENT")W++;if($[F][0]==="OUTDENT"){if(W--,W===0)return F}}return $.length-1}function o2($,U){let W=U;if($[W]?.[0]==="TERMINATOR")W++;if($[W]?.[0]!=="INDENT")return null;let F=W;W++;while(W<$.length&&$[W][0]==="TERMINATOR")W++;if(!$[W]||$[W][1]!=="|")return null;let f=[],u=1;W=F+1;while(W<$.length&&u>0){let A=$[W];if(A[0]==="INDENT"){u++,W++;continue}if(A[0]==="OUTDENT"){if(u--,u===0)break;W++;continue}if(A[0]==="TERMINATOR"){W++;continue}if(A[1]==="|"&&u===1){W++;let _=[];while(W<$.length){let R=$[W];if(R[0]==="TERMINATOR"||R[0]==="OUTDENT"||R[1]==="|"&&u===1)break;_.push(R),W++}if(_.length>0)f.push(Y1(_));continue}W++}if(f.length===0)return null;let Y=j1($,F);return{typeText:f.join(" | "),endIdx:Y}}function y1($,U=null){let W=[],F=0,f=" ",u=()=>f.repeat(F),Y=!1,A=!1,_=!1,R=(K,D,Z)=>{if(D.startsWith("{ ")&&D.endsWith(" }")){let J=D.slice(2,-2).split("; ").filter((Q)=>Q.trim());if(J.length>0){W.push(`${u()}${K}{`),F++;for(let Q of J)W.push(`${u()}${Q};`);F--,W.push(`${u()}}${Z}`);return}}W.push(`${u()}${K}${D}${Z}`)},w=(K,D)=>{let Z=[],J=D,Q=K[J]?.[0];if(Q!=="CALL_START"&&Q!=="PARAM_START")return{params:Z,endIdx:J};let H=Q==="CALL_START"?"CALL_END":"PARAM_END";J++;let O=0;while(J<K.length&&!(K[J][0]===H&&O===0)){let M=K[J];if(M[1]===","&&O===0){J++;continue}if(M[0]==="{"||M[0]==="["||M[0]==="CALL_START"||M[0]==="PARAM_START"||M[0]==="INDEX_START")O++;if(M[0]==="}"||M[0]==="]"||M[0]==="CALL_END"||M[0]==="PARAM_END"||M[0]==="INDEX_END"){O--,J++;continue}if(M[0]==="@"){if(J++,K[J]?.[0]==="PROPERTY"||K[J]?.[0]==="IDENTIFIER"){let G=K[J][1],B=K[J].data?.type;Z.push(B?`${G}: ${v(B)}`:G),J++}continue}if(M[0]==="SPREAD"||M[1]==="..."){if(J++,K[J]?.[0]==="IDENTIFIER"){let G=K[J][1],B=K[J].data?.type;Z.push(B?`...${G}: ${v(B)}`:`...${G}: any[]`),J++}continue}if(M[0]==="{"){let G="{";J++;let B=1;while(J<K.length&&B>0){if(K[J][0]==="{")B++;if(K[J][0]==="}")B--;if(B>0)G+=K[J][1]+(K[J+1]?.[0]==="}"?"":", ");J++}G+="}";let q=K[J-1]?.data?.type;Z.push(q?`${G}: ${v(q)}`:G);continue}if(M[0]==="IDENTIFIER"){let G=M[1],B=M.data?.type,q=!1;if(K[J+1]?.[0]==="=")q=!0;if(B)Z.push(`${G}${q?"?":""}: ${v(B)}`);else Z.push(G);if(J++,q){J++;let P=0;while(J<K.length){let E=K[J];if(E[0]==="("||E[0]==="["||E[0]==="{")P++;if(E[0]===")"||E[0]==="]"||E[0]==="}")P--;if(P===0&&(E[1]===","||E[0]==="CALL_END"))break;J++}}continue}J++}return{params:Z,endIdx:J}};for(let K=0;K<$.length;K++){let D=$[K],Z=D[0],J=!1;if(Z==="EXPORT"){if(J=!0,K++,K>=$.length)break;if(D=$[K],Z=D[0],Z==="DEFAULT"){if(K++,K>=$.length)break;if(D=$[K],Z=D[0],Z==="IDENTIFIER")W.push(`${u()}export default ${D[1]};`);continue}}if(Z==="IMPORT"){let Q=[],H=K+1;while(H<$.length&&$[H][0]!=="TERMINATOR")Q.push($[H]),H++;let O="import "+Q.map((M)=>M[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),W.push(`${u()}${O};`),K=H;continue}if(Z==="TYPE_DECL"){let Q=D.data;if(!Q)continue;let H=J||Q.exported?"export ":"",O=Q.typeParams||"";if(Q.kind==="interface"){let M=Q.extends?` extends ${Q.extends}`:"";R(`${H}interface ${Q.name}${O}${M} `,Q.typeText||"{}","")}else{let M=v(Q.typeText||"");R(`${H}type ${Q.name}${O} = `,M,";")}continue}if(Z==="ENUM"){let Q=J?"export ":"",H=$[K+1];if(!H)continue;let O=H[1],M=K+2;if($[M]?.[0]==="INDENT"){W.push(`${u()}${Q}enum ${O} {`),F++,M++;let G=[];while(M<$.length&&$[M][0]!=="OUTDENT"){if($[M][0]==="TERMINATOR"){M++;continue}if($[M][0]==="IDENTIFIER"){let B=$[M][1];if(M++,$[M]?.[1]==="="){M++;let q=$[M]?.[1];G.push(`${B} = ${q}`),M++}else G.push(B)}else M++}for(let B=0;B<G.length;B++){let q=B<G.length-1?",":"";W.push(`${u()}${G[B]}${q}`)}F--,W.push(`${u()}}`)}continue}if(Z==="CLASS"){let Q=J?"export ":"",H=$[K+1];if(!H)continue;let O=H[1],M="",G=K+2;if($[G]?.[0]==="EXTENDS")M=` extends ${$[G+1]?.[1]||""}`,G+=2;if($[G]?.[0]==="INDENT"){let B=!1,q=G+1;while(q<$.length&&$[q][0]!=="OUTDENT"){if($[q].data?.type||$[q].data?.returnType){B=!0;break}q++}if(B)W.push(`${u()}${Q}declare class ${O}${M} {`),Y=!0,F++}continue}if(Z==="DEF"){let Q=$[K+1];if(!Q)continue;let H=Q[1],O=Q.data?.returnType,M=Q.data?.typeParams||"",{params:G,endIdx:B}=w($,K+2);if(O||G.some((q)=>q.includes(":"))){let q=J?"export ":"",P=Y?"":J?"":"declare ",E=O?`: ${v(O)}`:"",I=G.join(", ");if(Y)W.push(`${u()}${H}${M}(${I})${E};`);else W.push(`${u()}${q}${P}function ${H}${M}(${I})${E};`)}continue}if(Z==="{"&&Y){let Q=K+1,H=1;while(Q<$.length&&H>0){let O=$[Q];if(O[0]==="{"){H++,Q++;continue}if(O[0]==="}"){H--,Q++;continue}if(O[0]==="TERMINATOR"){Q++;continue}if(O[0]==="PROPERTY"&&H===1){let M=O[1],G=O.data?.returnType;if(Q++,$[Q]?.[1]===":")Q++;let B=[];if($[Q]?.[0]==="PARAM_START"){let q=w($,Q);B=q.params,Q=q.endIdx+1}if($[Q]?.[0]==="->"||$[Q]?.[0]==="=>")Q++;if($[Q]?.[0]==="INDENT"){let q=1;Q++;while(Q<$.length&&q>0){if($[Q][0]==="INDENT")q++;if($[Q][0]==="OUTDENT")q--;Q++}}if(G||B.some((q)=>q.includes(":"))){let q=G?`: ${v(G)}`:"",P=B.join(", ");W.push(`${u()}${M}(${P})${q};`)}continue}Q++}K=Q-1;continue}if(Z==="INDENT")continue;if(Z==="OUTDENT"){if(Y)F--,W.push(`${u()}}`),Y=!1;continue}if(Z==="IDENTIFIER"&&!Y&&$[K+1]?.[0]==="="&&($[K+2]?.[0]==="PARAM_START"||$[K+2]?.[0]==="(")){let Q=D[1],H=K+2,{params:O}=w($,H),M=H,G=0;while(M<$.length){if($[M][0]==="PARAM_START"||$[M][0]==="(")G++;if($[M][0]==="PARAM_END"||$[M][0]===")")G--;if(G===0&&($[M][0]==="->"||$[M][0]==="=>"))break;M++}let B=$[M]?.data?.returnType;if(B||O.some((q)=>q.includes(":"))){let q=J?"export ":"",P=J?"":"declare ",E=B?`: ${v(B)}`:"",I=O.join(", ");W.push(`${u()}${q}${P}function ${Q}(${I})${E};`);continue}}if(Z==="IDENTIFIER"&&D.data?.type){let Q=D[1],H=v(D.data.type),O=$[K+1];if(O){let M=J?"export ":"",G=J?"":"declare ";if(O[0]==="READONLY_ASSIGN")W.push(`${u()}${M}${G}const ${Q}: ${H};`);else if(O[0]==="REACTIVE_ASSIGN")A=!0,W.push(`${u()}${M}${G}const ${Q}: Signal<${H}>;`);else if(O[0]==="COMPUTED_ASSIGN")_=!0,W.push(`${u()}${M}${G}const ${Q}: Computed<${H}>;`);else if(O[0]==="EFFECT")W.push(`${u()}${M}${G}const ${Q}: () => void;`);else if(O[0]==="="){let B=K+2;if($[B]?.[0]==="PARAM_START"){let P=1,E=B+1;while(E<$.length&&P>0){if($[E][0]==="PARAM_START")P++;if($[E][0]==="PARAM_END")P--;E++}B=E}let q=$[B];if(q&&(q[0]==="->"||q[0]==="=>")&&q.data?.returnType){let P=v(q.data.returnType),{params:E}=w($,K+2),I=E.join(", ");W.push(`${u()}${M}${G}function ${Q}(${I}): ${P};`)}else if(Y)W.push(`${u()}${Q}: ${H};`);else W.push(`${u()}${M}let ${Q}: ${H};`)}else if(Y)W.push(`${u()}${Q}: ${H};`)}else if(Y)W.push(`${u()}${Q}: ${H};`)}}let z=new Set;if(U){if(C1(U,W,u,F,z),z.size>0)for(let K=W.length-1;K>=0;K--){let D=W[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(D&&z.has(D[1]))W.splice(K,1)}}if(W.length===0)return null;let X=[];if(A)X.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(_)X.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(X.length>0)X.push("");return X.concat(W).join(`
|
|
1
|
+
(()=>{var{defineProperty:j1,getOwnPropertyNames:i2,getOwnPropertyDescriptor:n2}=Object,p2=Object.prototype.hasOwnProperty;function d2($){return this[$]}var r2=($)=>{var U=(s1??=new WeakMap).get($),F;if(U)return U;if(U=j1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var W of i2($))if(!p2.call(U,W))j1(U,W,{get:d2.bind($,W),enumerable:!(F=n2($,W))||F.enumerable})}return s1.set($,U),U},s1;var o2=($)=>$;function a2($,U){this[$]=o2.bind(null,U)}var t1=($,U)=>{for(var F in U)j1($,F,{get:U[F],enumerable:!0,configurable:!0,set:a2.bind(U,F)})};var r3={};t1(r3,{rip:()=>q2,processRipScripts:()=>H2,parser:()=>t,importRip:()=>e,getStdlibCode:()=>J1,getReactiveRuntime:()=>Q1,getComponentRuntime:()=>X1,formatSExpr:()=>n,compileToJS:()=>o,compile:()=>I1,VERSION:()=>D2,Lexer:()=>r,Compiler:()=>w1,CodeGenerator:()=>g,BUILD_DATE:()=>M2});function f2($){let U=$.prototype;U.rewriteTypes=function(){let F=this.tokens,W=(f,u,A)=>{let Y=[f,u];if(Y.pre=0,Y.data=null,Y.loc=A?.loc??{r:0,c:0,n:0},Y.spaced=!1,Y.newLine=!1,Y.generated=!0,A)Y.origin=A;return Y};this.scanTokens((f,u,A)=>{let Y=f[0];if(Y==="IDENTIFIER"){let _=A[u+1];if(_&&_[0]==="COMPARE"&&_[1]==="<"&&!_.spaced){let Z=A[u-1]?.[0]==="DEF",w=s2(A,u+1);if(w){let z=!Z&&A[u+1+w.length]?.[0]==="TYPE_ALIAS";if(Z||z){if(!f.data)f.data={};if(f.data.typeParams=Y1(w),A.splice(u+1,w.length),Z&&A[u+1]?.[0]==="("){A[u+1][0]="CALL_START";let X=1,K=u+2;while(K<A.length&&X>0){if(A[K][0]==="("||A[K][0]==="CALL_START")X++;if(A[K][0]===")"||A[K][0]==="CALL_END")X--;if(X===0)A[K][0]="CALL_END";K++}}}}}}if(Y==="TYPE_ANNOTATION"){let _=A[u-1];if(!_)return 1;let Z=e1(A,u+1),w=Y1(Z),z=_,X="type";if(_[0]==="CALL_END"||_[0]===")"){let D=1,R=u-2;while(R>=0&&D>0){let J=A[R][0];if(J==="CALL_END"||J===")")D++;if(J==="CALL_START"||J==="(")D--;R--}if(R>=0)z=A[R];X="returnType"}else if(_[0]==="PARAM_END"){let D=u+1+Z.length,R=A[D];if(R&&(R[0]==="->"||R[0]==="=>"))z=R;X="returnType"}else if(_[0]==="IDENTIFIER"&&u>=2&&A[u-2]?.[0]==="DEF")X="returnType";if(!z.data)z.data={};z.data[X]=w;let K=1+Z.length;return A.splice(u,K),0}if(Y==="TYPE_ALIAS"){let _=A[u-1];if(!_)return 1;let Z=_[1],w=u>=2&&A[u-2]?.[0]==="EXPORT",z=w?u-2:u-1,X=A[u+1],K=(R)=>{let J=W("TYPE_DECL",Z,_);if(J.data={name:Z,typeText:R,exported:w},_.data?.typeParams)J.data.typeParams=_.data.typeParams;return J};if(X&&X[0]==="IDENTIFIER"&&X[1]==="type"&&A[u+2]?.[0]==="INDENT"){let R=V1(A,u+2);return A.splice(z,R-z+1,K(u2(A,u+2))),0}if(X&&(X[0]==="TERMINATOR"||X[0]==="INDENT")){let R=t2(A,u+1);if(R)return A.splice(z,R.endIdx-z+1,K(R.typeText)),0}let D=e1(A,u+1);return A.splice(z,u+1+D.length-z,K(Y1(D))),0}if(Y==="INTERFACE"){let _=u>=1&&A[u-1]?.[0]==="EXPORT",Z=u+1,w=A[Z];if(!w)return 1;let z=w[1],X=null,K=Z+1;if(A[K]?.[0]==="EXTENDS")X=A[K+1]?.[1],K=K+2;if(A[K]?.[0]==="INDENT"){let D=u2(A,K),R=V1(A,K),J=W("TYPE_DECL",z,w);J.data={name:z,kind:"interface",extends:X,typeText:D,exported:_};let Q=_?u-1:u,q=R-Q+1;return A.splice(Q,q,J),0}return 1}return 1})}}function e1($,U){let F=[],W=0;while(U<$.length){let f=$[U],u=f[0],A=u==="("||u==="["||u==="CALL_START"||u==="PARAM_START"||u==="INDEX_START"||u==="COMPARE"&&f[1]==="<",Y=u===")"||u==="]"||u==="CALL_END"||u==="PARAM_END"||u==="INDEX_END"||u==="COMPARE"&&f[1]===">";if(u==="SHIFT"&&f[1]===">>"&&W>=2){W-=2,F.push(f),U++;continue}if(A){W++,F.push(f),U++;continue}if(Y){if(W>0){W--,F.push(f),U++;continue}break}if(W===0){if(u==="="||u==="REACTIVE_ASSIGN"||u==="COMPUTED_ASSIGN"||u==="READONLY_ASSIGN"||u==="EFFECT"||u==="TERMINATOR"||u==="INDENT"||u==="OUTDENT"||u==="->"||u===",")break}F.push(f),U++}return F}function Y1($){if($.length===0)return"";if($[0]?.[0]==="=>")$.unshift(["","()"]);let U=$.map((F)=>F[1]).join(" ").replace(/\s+/g," ").trim();return U=U.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,": "),U}function s2($,U){if(U>=$.length)return null;let F=$[U];if(F[0]!=="COMPARE"||F[1]!=="<")return null;let W=[F],f=1,u=U+1;while(u<$.length&&f>0){let A=$[u];if(W.push(A),A[0]==="COMPARE"&&A[1]==="<")f++;else if(A[0]==="COMPARE"&&A[1]===">")f--;u++}return f===0?W:null}function u2($,U){let F=[],W=U+1,f=1;while(W<$.length&&f>0){let u=$[W];if(u[0]==="INDENT"){f++,W++;continue}if(u[0]==="OUTDENT"){if(f--,f===0)break;W++;continue}if(u[0]==="TERMINATOR"){W++;continue}if(f===1&&(u[0]==="PROPERTY"||u[0]==="IDENTIFIER")){let A=u[1],Y=!1,_=!1;if(W++,A==="readonly"&&($[W]?.[0]==="PROPERTY"||$[W]?.[0]==="IDENTIFIER")){if(_=!0,A=$[W][1],$[W].data?.predicate)Y=!0;W++}if(u.data?.predicate)Y=!0;if($[W]?.[1]==="?"&&!$[W]?.spaced)Y=!0,W++;if($[W]?.[1]===":"||$[W]?.[0]==="TYPE_ANNOTATION")W++;let Z=[],w=0;while(W<$.length){let D=$[W];if(D[0]==="INDENT"){w++,W++;continue}if(D[0]==="OUTDENT"){if(w>0){w--,W++;continue}break}if(D[0]==="TERMINATOR"&&w===0)break;Z.push(D),W++}let z=Y1(Z),X=_?"readonly ":"",K=Y?"?":"";F.push(`${X}${A}${K}: ${z}`)}else W++}return"{ "+F.join("; ")+" }"}function V1($,U){let F=0;for(let W=U;W<$.length;W++){if($[W][0]==="INDENT")F++;if($[W][0]==="OUTDENT"){if(F--,F===0)return W}}return $.length-1}function t2($,U){let F=U;if($[F]?.[0]==="TERMINATOR")F++;if($[F]?.[0]!=="INDENT")return null;let W=F;F++;while(F<$.length&&$[F][0]==="TERMINATOR")F++;if(!$[F]||$[F][1]!=="|")return null;let f=[],u=1;F=W+1;while(F<$.length&&u>0){let Y=$[F];if(Y[0]==="INDENT"){u++,F++;continue}if(Y[0]==="OUTDENT"){if(u--,u===0)break;F++;continue}if(Y[0]==="TERMINATOR"){F++;continue}if(Y[1]==="|"&&u===1){F++;let _=[];while(F<$.length){let Z=$[F];if(Z[0]==="TERMINATOR"||Z[0]==="OUTDENT"||Z[1]==="|"&&u===1)break;_.push(Z),F++}if(_.length>0)f.push(Y1(_));continue}F++}if(f.length===0)return null;let A=V1($,W);return{typeText:f.join(" | "),endIdx:A}}function y1($,U=null){let F=[],W=0,f=" ",u=()=>f.repeat(W),A=!1,Y=!1,_=!1,Z=(K,D,R)=>{if(D.startsWith("{ ")&&D.endsWith(" }")){let J=D.slice(2,-2).split("; ").filter((Q)=>Q.trim());if(J.length>0){F.push(`${u()}${K}{`),W++;for(let Q of J)F.push(`${u()}${Q};`);W--,F.push(`${u()}}${R}`);return}}F.push(`${u()}${K}${D}${R}`)},w=(K,D)=>{let R=[],J=D,Q=K[J]?.[0];if(Q!=="CALL_START"&&Q!=="PARAM_START")return{params:R,endIdx:J};let q=Q==="CALL_START"?"CALL_END":"PARAM_END";J++;let O=0;while(J<K.length&&!(K[J][0]===q&&O===0)){let M=K[J];if(M[1]===","&&O===0){J++;continue}if(M[0]==="{"||M[0]==="["||M[0]==="CALL_START"||M[0]==="PARAM_START"||M[0]==="INDEX_START")O++;if(M[0]==="}"||M[0]==="]"||M[0]==="CALL_END"||M[0]==="PARAM_END"||M[0]==="INDEX_END"){O--,J++;continue}if(M[0]==="@"){if(J++,K[J]?.[0]==="PROPERTY"||K[J]?.[0]==="IDENTIFIER"){let G=K[J][1],I=K[J].data?.type;R.push(I?`${G}: ${x(I)}`:G),J++}continue}if(M[0]==="SPREAD"||M[1]==="..."){if(J++,K[J]?.[0]==="IDENTIFIER"){let G=K[J][1],I=K[J].data?.type;R.push(I?`...${G}: ${x(I)}`:`...${G}: any[]`),J++}continue}if(M[0]==="{"){let G="{";J++;let I=1;while(J<K.length&&I>0){if(K[J][0]==="{")I++;if(K[J][0]==="}")I--;if(I>0)G+=K[J][1]+(K[J+1]?.[0]==="}"?"":", ");J++}G+="}";let H=K[J-1]?.data?.type;R.push(H?`${G}: ${x(H)}`:G);continue}if(M[0]==="IDENTIFIER"){let G=M[1],I=M.data?.type,H=!1;if(K[J+1]?.[0]==="=")H=!0;if(I)R.push(`${G}${H?"?":""}: ${x(I)}`);else R.push(G);if(J++,H){J++;let P=0;while(J<K.length){let E=K[J];if(E[0]==="("||E[0]==="["||E[0]==="{")P++;if(E[0]===")"||E[0]==="]"||E[0]==="}")P--;if(P===0&&(E[1]===","||E[0]==="CALL_END"))break;J++}}continue}J++}return{params:R,endIdx:J}};for(let K=0;K<$.length;K++){let D=$[K],R=D[0],J=!1;if(R==="EXPORT"){if(J=!0,K++,K>=$.length)break;if(D=$[K],R=D[0],R==="DEFAULT"){if(K++,K>=$.length)break;if(D=$[K],R=D[0],R==="IDENTIFIER")F.push(`${u()}export default ${D[1]};`);continue}}if(R==="IMPORT"){let Q=[],q=K+1;while(q<$.length&&$[q][0]!=="TERMINATOR")Q.push($[q]),q++;let O="import "+Q.map((M)=>M[1]).join(" ");O=O.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),F.push(`${u()}${O};`),K=q;continue}if(R==="TYPE_DECL"){let Q=D.data;if(!Q)continue;let q=J||Q.exported?"export ":"",O=Q.typeParams||"";if(Q.kind==="interface"){let M=Q.extends?` extends ${Q.extends}`:"";Z(`${q}interface ${Q.name}${O}${M} `,Q.typeText||"{}","")}else{let M=x(Q.typeText||"");Z(`${q}type ${Q.name}${O} = `,M,";")}continue}if(R==="ENUM"){let Q=J?"export ":"",q=$[K+1];if(!q)continue;let O=q[1],M=K+2;if($[M]?.[0]==="INDENT"){F.push(`${u()}${Q}enum ${O} {`),W++,M++;let G=[];while(M<$.length&&$[M][0]!=="OUTDENT"){if($[M][0]==="TERMINATOR"){M++;continue}if($[M][0]==="IDENTIFIER"){let I=$[M][1];if(M++,$[M]?.[1]==="="){M++;let H=$[M]?.[1];G.push(`${I} = ${H}`),M++}else G.push(I)}else M++}for(let I=0;I<G.length;I++){let H=I<G.length-1?",":"";F.push(`${u()}${G[I]}${H}`)}W--,F.push(`${u()}}`)}continue}if(R==="CLASS"){let Q=J?"export ":"",q=$[K+1];if(!q)continue;let O=q[1],M="",G=K+2;if($[G]?.[0]==="EXTENDS")M=` extends ${$[G+1]?.[1]||""}`,G+=2;if($[G]?.[0]==="INDENT"){let I=!1,H=G+1;while(H<$.length&&$[H][0]!=="OUTDENT"){if($[H].data?.type||$[H].data?.returnType){I=!0;break}H++}if(I)F.push(`${u()}${Q}declare class ${O}${M} {`),A=!0,W++}continue}if(R==="DEF"){let Q=$[K+1];if(!Q)continue;let q=Q[1],O=Q.data?.returnType,M=Q.data?.typeParams||"",{params:G,endIdx:I}=w($,K+2);if(O||G.some((H)=>H.includes(":"))){let H=J?"export ":"",P=A?"":J?"":"declare ",E=O?`: ${x(O)}`:"",B=G.join(", ");if(A)F.push(`${u()}${q}${M}(${B})${E};`);else F.push(`${u()}${H}${P}function ${q}${M}(${B})${E};`)}continue}if(R==="{"&&A){let Q=K+1,q=1;while(Q<$.length&&q>0){let O=$[Q];if(O[0]==="{"){q++,Q++;continue}if(O[0]==="}"){q--,Q++;continue}if(O[0]==="TERMINATOR"){Q++;continue}if(O[0]==="PROPERTY"&&q===1){let M=O[1],G=O.data?.returnType;if(Q++,$[Q]?.[1]===":")Q++;let I=[];if($[Q]?.[0]==="PARAM_START"){let H=w($,Q);I=H.params,Q=H.endIdx+1}if($[Q]?.[0]==="->"||$[Q]?.[0]==="=>")Q++;if($[Q]?.[0]==="INDENT"){let H=1;Q++;while(Q<$.length&&H>0){if($[Q][0]==="INDENT")H++;if($[Q][0]==="OUTDENT")H--;Q++}}if(G||I.some((H)=>H.includes(":"))){let H=G?`: ${x(G)}`:"",P=I.join(", ");F.push(`${u()}${M}(${P})${H};`)}continue}Q++}K=Q-1;continue}if(R==="INDENT")continue;if(R==="OUTDENT"){if(A)W--,F.push(`${u()}}`),A=!1;continue}if(R==="IDENTIFIER"&&!A&&$[K+1]?.[0]==="="&&($[K+2]?.[0]==="PARAM_START"||$[K+2]?.[0]==="(")){let Q=D[1],q=K+2,{params:O}=w($,q),M=q,G=0;while(M<$.length){if($[M][0]==="PARAM_START"||$[M][0]==="(")G++;if($[M][0]==="PARAM_END"||$[M][0]===")")G--;if(G===0&&($[M][0]==="->"||$[M][0]==="=>"))break;M++}let I=$[M]?.data?.returnType;if(I||O.some((H)=>H.includes(":"))){let H=J?"export ":"",P=J?"":"declare ",E=I?`: ${x(I)}`:"",B=O.join(", ");F.push(`${u()}${H}${P}function ${Q}(${B})${E};`);continue}}if(R==="IDENTIFIER"&&D.data?.type){let Q=D[1],q=x(D.data.type),O=$[K+1];if(O){let M=J?"export ":"",G=J?"":"declare ";if(O[0]==="READONLY_ASSIGN")F.push(`${u()}${M}${G}const ${Q}: ${q};`);else if(O[0]==="REACTIVE_ASSIGN")Y=!0,F.push(`${u()}${M}${G}const ${Q}: Signal<${q}>;`);else if(O[0]==="COMPUTED_ASSIGN")_=!0,F.push(`${u()}${M}${G}const ${Q}: Computed<${q}>;`);else if(O[0]==="EFFECT")F.push(`${u()}${M}${G}const ${Q}: () => void;`);else if(O[0]==="="){let I=K+2;if($[I]?.[0]==="PARAM_START"){let P=1,E=I+1;while(E<$.length&&P>0){if($[E][0]==="PARAM_START")P++;if($[E][0]==="PARAM_END")P--;E++}I=E}let H=$[I];if(H&&(H[0]==="->"||H[0]==="=>")&&H.data?.returnType){let P=x(H.data.returnType),{params:E}=w($,K+2),B=E.join(", ");F.push(`${u()}${M}${G}function ${Q}(${B}): ${P};`)}else if(A)F.push(`${u()}${Q}: ${q};`);else F.push(`${u()}${M}let ${Q}: ${q};`)}else if(A)F.push(`${u()}${Q}: ${q};`)}else if(A)F.push(`${u()}${Q}: ${q};`)}}let z=new Set;if(U){if(C1(U,F,u,W,z),z.size>0)for(let K=F.length-1;K>=0;K--){let D=F[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(D&&z.has(D[1]))F.splice(K,1)}}if(F.length===0)return null;let X=[];if(Y)X.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(_)X.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(X.length>0)X.push("");return X.concat(F).join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`}function
|
|
4
|
-
`),$=$.replace(
|
|
5
|
-
`+$;return $}advance($){let U=this.code.slice(this.pos,this.pos+$);for(let
|
|
6
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,U,{len:
|
|
7
|
-
`)return 0;let U=this.prev();if(U)if($)U.spaced=!0,U.pre=$[0].length;else U.newLine=!0;return $?$[0].length:0}lineToken(){let $=
|
|
8
|
-
`);if(this.isUnfinished()){if(
|
|
9
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Q2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let U=this.tokens.length;if(U>=2){let
|
|
10
|
-
`)f--;f++;let u=this.chunk.slice(f,
|
|
11
|
-
`)}if(u===0&&U?.length===3)_=_.replace(/^\n/,"");if(u===$.length-1&&U?.length===3)_=_.replace(/\n[^\S\n]*$/,"");if(f)_=_.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${_}"`,{len:A.length,data:{quote:U}})}}if($.length>1)this.emit("STRING_END",")",{len:U?.length||0});return F}numberToken(){let $=J3.exec(this.chunk);if(!$)return 0;let U=$[0],W=U.length,F={row:this.row,col:this.col};if(/^0[BOX]/.test(U))x(`radix prefix in '${U}' must be lowercase`,{...F,col:F.col+1});if(/^0\d*[89]/.test(U))x(`decimal literal '${U}' must not be prefixed with '0'`,{...F,len:W});if(/^0\d+/.test(U))x(`octal literal '${U}' must be prefixed with '0o'`,{...F,len:W});let f=h3(U),u=f===1/0?"INFINITY":"NUMBER",Y={parsedValue:f};if(u==="INFINITY")Y.original=U;return this.emit(u,U,{len:W,data:Y}),W}regexToken(){let $=this.matchWithInterpolations(B3,"///");if($){let{tokens:R,index:w}=$,[z]=J2.exec(this.chunk.slice(w)),X=w+z.length;if(R.length===1||!R.some((K)=>K[0]==="TOKENS")){let K=(R[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${z}`,{len:X,data:{delimiter:"///",heregex:{flags:z}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(R,{quote:"///",endOffset:X-z.length}),z)this.emit(",",",",{len:0}),this.emit("STRING",`"${z}"`,{len:z.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return X}let U=I3.exec(this.chunk);if(!U)return 0;let[W,F,f]=U,u=this.prev();if(u){if(u.spaced&&q1.has(u[0])&&(!f||/^\/=?\s/.test(W)))return 0;if(Y3.has(u[0])&&!(u.spaced&&q1.has(u[0])))return 0}if(!f)x("missing / (unclosed regex)",{row:this.row,col:this.col});let Y=W.length,[A]=J2.exec(this.chunk.slice(Y)),_=Y+A.length;if(!E3.test(A))x(`invalid regular expression flags ${A}`,{row:this.row,col:this.col+Y,len:A.length});return this.emit("REGEX",`/${F}/${A}`,{len:_,data:{delimiter:"/"}}),_}jsToken(){if(this.chunk[0]!=="`")return 0;let $=T3.exec(this.chunk)||N3.exec(this.chunk);if(!$)return 0;let U=$[1],W=$[0].length;return this.emit("JS",U,{len:W,data:{here:$[0].startsWith("```")}}),W}literalToken(){let $=Q3.exec(this.chunk),U=$?$[0]:this.chunk.charAt(0),W=U,F=this.prev();if(D3.test(U))this.tagParameters();if(U==="="&&F&&F[1]==="."&&!F.spaced){let f=this.tokens,u=f.length-2;while(u>=1&&f[u][0]==="PROPERTY"&&f[u-1]?.[1]===".")u-=2;if(u>=0&&(f[u][0]==="IDENTIFIER"||f[u][0]===")"||f[u][0]==="]")){let Y=f.slice(u,f.length-1);F[0]="=",F[1]="=";for(let A of Y)this.tokens.push(O1(A[0],A[1],{pre:0,row:A[2],col:A[3],len:A[4]}));return this.tokens.push(O1(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(F&&(U==="="||R2.has(U))){if(U==="="&&(F[1]==="||"||F[1]==="&&"||F[1]==="??")&&!F.spaced)return F[0]="COMPOUND_ASSIGN",F[1]+="=",U.length}if(U==="("&&F?.[0]==="IMPORT")F[0]="DYNAMIC_IMPORT";if(U==="{"&&this.seenImport)this.importSpecifierList=!0;if(U==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(U==="{"&&F?.[0]==="EXPORT")this.exportSpecifierList=!0;if(U==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(U===";")this.seenFor=this.seenImport=this.seenExport=!1,W="TERMINATOR";else if(U==="|>")W="PIPE";else if(U==="::=")W="TYPE_ALIAS";else if(U==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(U==="::")W="TYPE_ANNOTATION";else if(U==="~=")W="COMPUTED_ASSIGN";else if(U===":=")W="REACTIVE_ASSIGN";else if(U==="<=>")W="BIND";else if(U==="~>")W="EFFECT";else if(U==="=!")W="READONLY_ASSIGN";else if(U==="*"&&(!F||F[0]==="TERMINATOR"||F[0]==="INDENT"||F[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let f=this.chunk.slice(1),u=/^@(\s*)=(?!=)/.exec(f);if(u){let A=u[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(f);if(Y){let A=Y[1],_=Y[2],R=A.split("."),w=()=>{this.emit("IDENTIFIER",R[0]);for(let X=1;X<R.length;X++)this.emit(".","."),this.emit("PROPERTY",R[X])};w(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),w(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+A.length+_.length+1}}else if(U==="*"&&F?.[0]==="EXPORT")W="EXPORT_ALL";else if(A3.has(U))W="MATH";else if(_3.has(U))W="COMPARE";else if(R2.has(U))W="COMPOUND_ASSIGN";else if(R3.has(U))W="UNARY_MATH";else if(Z3.has(U))W="SHIFT";else if(U==="?"&&F?.spaced)W="TERNARY";else if(U==="!?"&&F&&!F.spaced)W="DEFINED";else if(U==="?!"&&F&&!F.spaced)W="PRESENCE";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))W="?.";else if(F){if(U==="("&&!F.spaced&&q1.has(F[0])){if(F[0]==="?.")F[0]="ES6_OPTIONAL_CALL";W="CALL_START"}if(U==="["&&!F.spaced&&X2.has(F[0])){if(W="INDEX_START",F[0]==="?.")F[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:U3[U],origin:[W,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(W,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,U=[];this.tokens[$][0]="PARAM_END";while($-- >0){let W=this.tokens[$];if(W[0]===")")U.push(W);else if(W[0]==="("||W[0]==="CALL_START")if(U.length)U.pop();else if(W[0]==="(")return W[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let U=this.tokens[$??this.tokens.length-1];if(U?.[0]==="DO")U[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(($,U)=>{if($[0]==="CALL_START")this.detectEnd(U+1,(W)=>W[0]===")"||W[0]==="CALL_END",(W)=>W[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,U)=>{if($[0]==="INDEX_START")this.detectEnd(U+1,(W)=>W[0]==="]"||W[0]==="INDEX_END",(W,F)=>{if(this.tokens[F+1]?.[0]===":")$[0]="[",W[0]="]";else W[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,U=null,W=null,F=(u,Y)=>{return u[1]!==";"&&F3.has(u[0])&&!(u[0]==="TERMINATOR"&&Y2.has(this.tokens[Y+1]?.[0]))&&!(u[0]==="ELSE"&&$!=="THEN")||u[0]==="INDENT"&&!u.generated&&($==="->"||$==="=>")||u[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(Y)&&!this.commaInImplicitObject(Y)||_2.has(u[0])&&(this.tokens[Y-1]?.newLine||this.tokens[Y-1]?.[0]==="OUTDENT")},f=(u,Y)=>{let A=this.tokens[Y-1]?.[0]===","?Y-1:Y;this.tokens.splice(A,0,W)};this.scanTokens((u,Y,A)=>{let[_]=u;if(_==="TERMINATOR"){if(this.tokens[Y+1]?.[0]==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")return A.splice(Y,1,...this.makeIndentation()),1;if(Y2.has(this.tokens[Y+1]?.[0]))return A.splice(Y,1),0}if(_==="CATCH")for(let R=1;R<=2;R++){let w=this.tokens[Y+R]?.[0];if(w==="OUTDENT"||w==="TERMINATOR"||w==="FINALLY")return A.splice(Y+R,0,...this.makeIndentation()),2+R}if((_==="->"||_==="=>")&&(this.tokens[Y+1]?.[0]===","||this.tokens[Y+1]?.[0]==="]"))return[U,W]=this.makeIndentation(),A.splice(Y+1,0,U,W),1;if(A2.has(_)&&this.tokens[Y+1]?.[0]!=="INDENT"&&!(_==="ELSE"&&this.tokens[Y+1]?.[0]==="IF")&&!(_==="ELSE"&&this.tokens[Y-1]?.[0]!=="OUTDENT")){if($=_,[U,W]=this.makeIndentation(),_==="THEN")U.fromThen=!0;if(A.splice(Y+1,0,U),this.detectEnd(Y+2,F,f),_==="THEN")A.splice(Y,1);return 1}return 1})}tagPostfixConditionals(){let $=null,U=(F,f)=>{return F[0]==="TERMINATOR"||F[0]==="INDENT"&&!A2.has(this.tokens[f-1]?.[0])},W=(F)=>{if(F[0]!=="INDENT"||F.generated&&!F.fromThen)$[0]="POST_"+$[0]};this.scanTokens((F,f)=>{if(F[0]!=="IF"&&F[0]!=="UNLESS")return 1;if(this.tokens[f-1]?.[0]==="INTERPOLATION_START")return 1;return $=F,this.detectEnd(f+1,U,W),1})}addImplicitBracesAndParens(){let $=[],U=!1;this.scanTokens((W,F,f)=>{let[u]=W,Y=f[F-1]||[],A=f[F+1]||[],[_]=Y,[R]=A,w=F,z=(q)=>F-w+q,X=()=>$[$.length-1],K=(q)=>q?.[2]?.ours,D=()=>K(X())&&X()?.[0]==="(",Z=()=>K(X())&&X()?.[0]==="{",J=(q)=>{$.push(["(",q,{ours:!0}]),f.splice(q,0,i("CALL_START","("))},Q=()=>{$.pop(),f.splice(F,0,i("CALL_END",")")),F+=1},H=(q,P={})=>{$.push(["{",q,{sameLine:!0,startsLine:P.startsLine??!0,ours:!0}]);let E=i("{","{");if(!E.data)E.data={};E.data.generated=!0,f.splice(q,0,E)},O=(q)=>{q=q??F,$.pop(),f.splice(q,0,i("}","}")),F+=1};if((D()||Z())&&W3.has(u))return $.push(["CONTROL",F,{ours:!0}]),z(1);if(u==="INDENT"&&K(X())){if(_!=="=>"&&_!=="->"&&_!=="["&&_!=="("&&_!==","&&_!=="{"&&_!=="ELSE"&&_!=="=")while(D()||Z()&&_!==":")if(D())Q();else O();if(X()?.[2]?.ours&&X()[0]==="CONTROL")$.pop();return $.push([u,F]),z(1)}if(a.has(u))return $.push([u,F]),z(1);if(p.has(u)){while(K(X()))if(D())Q();else if(Z())O();else $.pop();$.pop()}if(b1.has(u)&&W.spaced&&(H1.has(R)||R==="..."&&H1.has(f[F+2]?.[0])||u3.has(R)&&!A.spaced&&!A.newLine)&&!((u==="]"||u==="}")&&(R==="->"||R==="=>")))return J(F+1),z(2);if(b1.has(u)&&this.tokens[F+1]?.[0]==="INDENT"&&this.looksObjectish(F+2)&&!this.findTagsBackwards(F,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return J(F+1),$.push(["INDENT",F+2]),z(3);if(u==="TERNARY")U=!0;if(u===":"){if(U)return U=!1,z(1);let q=p.has(this.tokens[F-1]?.[0])?$[$.length-1]?.[1]??F-1:F-1;if(this.tokens[F-2]?.[0]==="@")q=F-2;let P=q<=0||A1.has(this.tokens[q-1]?.[0])||this.tokens[q-1]?.newLine;if(X()){let[E,I]=X(),N=$[$.length-2];if((E==="{"||E==="INDENT"&&N?.[0]==="{"&&!K(N))&&(P||this.tokens[q-1]?.[0]===","||this.tokens[q-1]?.[0]==="{"||this.tokens[q]?.[0]==="{"))return z(1)}return H(q,{startsLine:!!P}),z(2)}if(A1.has(u))for(let q=$.length-1;q>=0;q--){if(!K($[q]))break;if($[q][0]==="{")$[q][2].sameLine=!1}let M=_==="OUTDENT"||Y.newLine,G=u==="||"||u==="&&",B=!1;if(G){let q=F+1,P=f[q]?.[0];if(P==="("||P==="["||P==="{"){for(let E=1;++q<f.length&&E>0;)if(P=f[q][0],P==="("||P==="["||P==="{")E++;else if(P===")"||P==="]"||P==="}")E--}else if(P&&P!=="TERMINATOR"&&P!=="OUTDENT"&&P!==",")q++;B=f[q]?.[0]===","}if(f3.has(u)&&!B||_2.has(u)&&M)while(K(X())){let[q,,{sameLine:P,startsLine:E}]=X();if(D()&&_!==",")Q();else if(Z()&&!G&&P&&u!=="TERMINATOR"&&_!==":")O();else if(Z()&&u==="TERMINATOR"&&_!==","&&!(E&&this.looksObjectish(F+1)))O();else if(X()?.[2]?.ours&&X()[0]==="CONTROL"&&f[X()[1]]?.[0]==="CLASS"&&u==="TERMINATOR")$.pop();else break}if(u===","&&!this.looksObjectish(F+1)&&Z()&&(R!=="TERMINATOR"||!this.looksObjectish(F+2))){let q=R==="OUTDENT"?1:0;while(Z())O(F+q)}return z(1)})}addImplicitCallCommas(){let $=0,U=0,W=this.tokens;while(U<W.length){let F=W[U][0],f=U>0?W[U-1][0]:null;if(F==="CALL_START"||F==="(")$++;if(F==="CALL_END"||F===")")$--;if($>0&&(F==="->"||F==="=>")&&$3.has(f))W.splice(U,0,i(",",",")),U++;U++}}scanTokens($){let U=0;while(U<this.tokens.length)U+=$.call(this,this.tokens[U],U,this.tokens)}detectEnd($,U,W,F={}){let f=0;while($<this.tokens.length){let u=this.tokens[$];if(f===0&&U.call(this,u,$))return W.call(this,u,$);if(a.has(u[0]))f++;if(p.has(u[0]))f--;if(f<0){if(F.returnOnNegativeLevel)return;return W.call(this,u,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let U=0;U<$.length;U++){if(!$[U].mergeClose)continue;let W=0;for(let F=U+1;F<$.length;F++){let f=$[F][0];if(f==="("||f==="["||f==="{"||f==="CALL_START"||f==="INDEX_START"||f==="INDENT")W++;if(f===")"||f==="]"||f==="}"||f==="CALL_END"||f==="INDEX_END"||f==="OUTDENT")W--;if(W<0||W===0&&f==="TERMINATOR"){$.splice(F,0,i("CALL_END",")",$[F-1]));break}if(F===$.length-1){$.splice(F+1,0,i("CALL_END",")",$[F]));break}}}}commaInImplicitCall($){let U=0;for(let W=$-1;W>=0;W--){let F=this.tokens[W][0];if(p.has(F)){U++;continue}if(a.has(F)){if(F==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(b1.has(F)&&this.tokens[W].spaced){let f=this.tokens[W+1]?.[0];return H1.has(f)||f==="..."&&H1.has(this.tokens[W+2]?.[0])}}return!1}commaInImplicitObject($){let U=0;for(let W=$-1;W>=0;W--){let F=this.tokens[W][0];if(p.has(F)){U++;continue}if(a.has(F)){if(U--,U<0)return!1;continue}if(U>0)continue;if(F===":"&&W>0&&this.tokens[W-1][0]==="PROPERTY")return this.looksObjectish($+1);if(A1.has(F))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(a.has(this.tokens[$]?.[0])){let U=null;if(this.detectEnd($+1,(W)=>p.has(W[0]),(W,F)=>U=F),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards($,U){let W=new Set(U),F=[];while($>=0){let f=this.tokens[$]?.[0];if(!F.length&&W.has(f))return!0;if(p.has(f))F.push(f);if(a.has(f)&&F.length)F.pop();if(!F.length&&(a.has(f)&&!this.tokens[$]?.generated||A1.has(f)))break;$--}return!1}makeIndentation($){let U=i("INDENT",2),W=i("OUTDENT",2);if($)U.generated=W.generated=!0,U.origin=W.origin=$;else U.explicit=W.explicit=!0;return[U,W]}}f2(d);var V3={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,PRESENCE:196,"--":197,"++":198,MATH:199,"**":200,SHIFT:201,COMPARE:202,"&":203,"^":204,"|":205,"||":206,"??":207,"&&":208,"!?":209,PIPE:210,RELATION:211,TERNARY:212,COMPOUND_ASSIGN:213},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:"PRESENCE",197:"--",198:"++",199:"MATH",200:"**",201:"SHIFT",202:"COMPARE",203:"&",204:"^",205:"|",206:"||",207:"??",208:"&&",209:"!?",210:"PIPE",211:"RELATION",212:"TERNARY",213:"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,4,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,6,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,56,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,134,105,106,-13,-13,-13,-13,137,138,139,-13,140,-13,-13,-13,-13,-13,-13,-13,135,-13,141,-13,-13,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,133,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,142,143,144,-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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,6,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,59,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,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,149,-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,54,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,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,-36,54,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,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,-37,54,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,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,-38,54,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,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,-39,54,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,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,-40,54,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,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,-41,54,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,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,-42,54,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,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,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,150,-173,-173,151,152,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,4,1,161,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,162,102,103,160,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,4,1,163,164,165,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,4,1,166,167,165,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,4,1,168,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,174,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,175,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,176,165,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,177,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,178,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,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,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,182,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,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,25,1,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,-86,183,184,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,185,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,4,1,187,186,165,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,188,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,189,-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,6,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,162,190,2,66,10,162,191,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,6,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,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,195,154,104,156,157,155,99,192,193,83,158,197,194,196,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,4,1,198,165,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,199,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-305,162,-305,102,103,-305,200,202,72,73,93,-305,99,-305,-305,-305,-305,-305,83,-305,87,-305,84,85,-305,-305,169,-305,170,90,91,86,88,89,82,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,201,173,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,1,66,203,2,66,10,162,204,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,4,1,205,165,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,206,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,207,165,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,208,-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,169,-224,170,90,91,86,88,89,82,-224,69,64,65,209,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,171,172,173,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,210,104,2,55,1,211,104,6,15,19,89,2,1,1,213,212,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,214,165,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,215,-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,169,-221,170,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,171,172,173,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,216,220,104,105,106,219,217,218,221,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,179,180,228,229,230,231,223,224,225,226,234,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,227,104,105,106,102,103,53,235,72,73,93,222,83,87,84,85,66,169,170,90,91,86,88,89,82,61,67,62,232,233,173,59,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,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,-87,59,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,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,-88,54,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,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,-44,54,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,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,-45,54,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,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,-46,54,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,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,-47,54,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,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,-48,54,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,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,-49,54,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,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,-50,54,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,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,-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,4,1,236,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,237,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,4,1,238,247,165,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,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,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,251,252,250,141,2,109,11,253,141,54,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,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,-205,56,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,254,255,-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,-206,1,83,256,1,83,257,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,4,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,4,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,63,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,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,-89,63,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,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,-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,4,1,258,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,259,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,260,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,261,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,263,165,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,262,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,264,-109,265,270,274,266,267,268,275,54,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,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,-52,54,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,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,54,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,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,-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,179,180,181,34,35,36,276,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,235,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,65,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,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,-54,57,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,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,-56,6,54,5,1,1,2,1,280,105,106,277,278,279,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,4,1,-5,281,-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,4,1,282,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,283,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,284,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,285,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,286,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,287,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,288,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,289,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,290,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,293,165,291,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,292,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,296,165,294,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,295,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,299,165,297,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,298,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,300,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,301,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,302,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,303,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,304,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,305,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,309,154,104,156,157,155,99,306,307,83,158,197,308,196,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,4,1,310,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,311,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,6,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,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,6,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,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,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,6,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,55,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,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,-187,55,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,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,-188,2,109,11,312,141,2,57,1,313,255,2,57,1,314,255,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,4,1,315,165,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,320,77,78,79,80,81,100,101,92,104,105,106,316,102,103,318,53,52,72,73,93,317,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,85,323,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,4,1,328,247,165,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,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,324,42,43,90,91,248,325,86,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,329,255,2,57,1,330,255,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,4,1,331,165,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,332,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,334,333,165,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,335,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,337,336,165,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,338,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,340,339,165,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,341,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,343,342,165,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,344,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,346,345,165,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,347,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,348,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,351,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,154,104,-181,-181,-181,156,157,155,99,159,158,-181,-181,352,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,254,255,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,4,1,328,247,165,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,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,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,54,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,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,-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,4,1,354,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,353,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,6,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,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,6,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,-372,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,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,6,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,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,355,-173,-173,151,152,2,66,10,162,160,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,4,1,163,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,166,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,5,15,108,2,1,1,213,169,170,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,6,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,6,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,125,126,-375,-375,-375,-375,-375,-375,-375,-375,-375,111,-375,-375,-375,-375,-375,-375,118,-375,120,-375,-375,-375,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,125,126,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,118,-379,120,-379,-379,-379,2,81,8,356,99,59,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-86,-86,-381,-381,-381,-381,-86,-86,-86,-86,-86,-86,-86,-86,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-86,-381,-381,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-86,-86,-86,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,10,54,5,1,23,1,1,3,21,11,11,134,105,106,137,138,139,140,135,141,136,3,83,1,1,142,143,144,54,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,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,-35,59,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-86,-86,-382,-382,-382,-382,-86,-86,-86,-86,-86,-86,-86,-86,-382,-86,-382,-382,-382,-382,-382,-382,-382,-382,-86,-382,-382,-86,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-86,-86,-86,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,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,6,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,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,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,6,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,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,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,4,1,359,357,165,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,358,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,4,1,360,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,162,361,362,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,6,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,363,364,365,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,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,6,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,4,94,69,2,2,367,366,368,369,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,370,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,371,159,158,197,196,3,66,10,88,162,372,373,5,72,22,69,2,2,374,-303,-303,-303,-303,6,72,1,21,69,2,2,-301,375,-301,-301,-301,-301,23,66,26,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,376,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,377,378,379,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,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,4,1,380,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,61,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-86,-86,-309,162,-309,-309,-86,-86,-86,381,-86,-86,-86,-86,-86,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-86,-309,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,382,-309,-309,-86,-86,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,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,4,1,385,386,387,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,383,384,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,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,6,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,388,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,6,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,389,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,4,1,390,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,66,10,44,162,392,391,2,66,10,162,393,9,1,5,59,1,1,5,32,18,16,-370,-370,-370,-370,-370,-370,-370,-370,-370,54,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,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,6,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,394,99,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,2,72,70,396,395,1,142,397,7,55,1,10,30,83,1,2,402,104,401,398,399,400,403,2,72,70,-338,-338,1,181,404,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,269,100,101,409,104,272,255,105,106,408,-109,-109,273,264,405,265,270,274,266,267,268,275,410,406,407,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,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,63,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,1,-89,-89,-89,-89,-89,-89,-89,-89,411,-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,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,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,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,4,1,412,165,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,413,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,142,414,58,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,146,147,148,149,-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,59,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,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,-86,2,6,132,107,415,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,4,1,416,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,322,417,321,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,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,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,-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,4,1,328,247,165,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,245,53,52,72,73,93,99,59,83,418,87,249,84,85,420,419,66,42,43,90,91,248,86,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,422,423,-217,-217,421,-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,4,1,424,-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,4,1,328,247,165,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,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,426,425,243,246,242,66,42,43,90,91,248,86,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,4,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,4,1,-202,427,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,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,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,-190,2,57,1,428,255,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,4,1,429,165,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,430,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,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,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,-191,63,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,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,-207,63,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,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,-55,2,57,1,431,255,2,57,1,432,255,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,433,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,434,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,127,-256,-256,435,-256,-256,-256,-256,-256,-256,-256,-256,125,126,96,97,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,127,-258,-258,436,-258,-258,-258,-258,-258,-258,-258,-258,125,126,96,97,-258,-258,-258,-258,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,162,-265,-265,437,-265,-265,127,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,125,126,96,97,-265,-265,-265,-265,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,438,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,440,439,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,441,-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,4,1,442,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,57,1,45,254,255,443,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,447,449,448,271,104,272,255,446,273,99,444,87,445,450,451,86,82,55,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,452,-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,6,54,5,1,2,1,1,280,105,106,453,454,279,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,4,1,455,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,457,456,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,6,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,110,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,6,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,110,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,6,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,-387,-387,-387,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,6,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,-388,-388,-388,111,-388,-388,-388,-388,-388,-388,118,-388,120,-388,-388,-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,6,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,-389,-389,-389,-389,-389,-389,118,-389,120,-389,-389,-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,6,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,-390,-390,-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,6,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,-391,-391,-391,-391,118,-391,120,-391,122,-391,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,6,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,125,126,-392,-392,-392,-392,-392,-392,109,108,110,111,112,113,114,-392,-392,-392,118,-392,120,-392,122,-392,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,6,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,125,126,-393,-393,-393,-393,-393,-393,109,108,110,111,112,113,114,115,-393,-393,118,-393,120,-393,122,-393,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,6,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,6,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,125,126,-401,-401,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,-401,118,119,120,-401,122,-401,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,6,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,6,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,127,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,124,125,126,96,97,-402,-402,-402,-402,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,6,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,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,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,6,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,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,125,126,-400,-400,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,-400,118,-400,120,-400,122,-400,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,127,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,124,125,126,96,97,-403,-403,-403,-403,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,6,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,-404,122,-404,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,6,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,-405,-405,-405,-405,-405,118,-405,120,-405,-405,-405,23,91,1,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,458,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,6,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,459,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,127,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,124,125,126,96,97,-240,-240,-240,-240,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,461,460,462,463,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,464,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,465,159,158,197,196,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,6,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,-299,-299,-299,-299,466,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,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,6,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,6,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,55,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,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,-189,63,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,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,-91,63,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,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,-92,26,86,6,14,11,1,30,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,467,127,322,468,321,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,4,1,469,165,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,470,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,86,471,1,86,472,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,4,1,473,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,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,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,474,-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,-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,4,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,4,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,4,1,475,165,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,476,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,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,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,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,478,477,-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,4,1,328,247,165,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,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,479,86,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,6,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,63,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,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,-100,63,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,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,-101,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,480,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,4,1,481,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,4,1,482,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,483,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,4,1,484,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,485,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,4,1,486,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,6,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,4,1,487,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,488,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,4,1,489,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,490,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,154,104,-218,-218,156,157,155,99,-218,159,-218,158,153,-218,491,152,2,6,60,492,493,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,4,1,494,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,57,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,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,-213,2,6,61,107,495,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,496,1,67,497,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,6,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,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,4,1,498,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,499,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,6,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,4,1,500,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,501,-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,162,502,6,55,1,10,10,5,8,503,104,162,505,504,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,4,1,506,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,507,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,508,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,509,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,510,1,165,511,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,6,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,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,4,1,512,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,154,104,156,157,155,99,159,158,197,513,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,4,1,514,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,155,1,1,515,378,379,4,67,78,11,1,516,517,518,379,3,67,78,12,-252,-252,-252,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,4,1,520,165,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,169,170,90,91,519,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,162,-307,-307,521,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,125,126,-307,-307,-307,-307,-307,-307,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,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,4,1,522,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,2,6,61,524,523,2,6,61,-315,-315,24,6,61,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,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,-319,-319,7,6,61,81,1,9,1,1,-320,-320,128,129,130,96,97,1,67,525,1,67,526,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,6,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,154,104,-173,-173,-173,156,157,155,99,159,158,153,527,-173,-173,151,152,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,6,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,6,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,1,67,528,3,54,5,1,529,105,106,3,89,89,5,531,530,221,3,54,5,1,532,105,106,1,142,533,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,534,-217,-217,-217,5,6,60,1,5,24,-329,-329,-329,-329,-329,6,55,1,10,113,1,2,402,104,401,536,400,403,6,6,60,1,5,24,85,-334,-334,-334,-334,-334,537,6,6,60,1,5,24,85,-336,-336,-336,-336,-336,538,2,55,1,539,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,540,-340,-340,-340,-340,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,541,-217,-217,-217,5,6,60,1,5,24,-358,-358,-358,-358,-358,6,55,1,10,116,3,2,544,104,408,410,543,407,12,6,60,1,5,1,10,1,1,6,5,24,61,-363,-363,-363,-363,-120,-120,-120,-120,-120,-363,-120,545,6,6,60,1,5,24,85,-366,-366,-366,-366,-366,546,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,4,1,548,547,165,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,549,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,127,-353,-353,-353,-353,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,550,99,3,54,5,1,551,105,106,54,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,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,-215,2,6,61,107,552,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,4,1,553,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,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,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,-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,4,1,424,-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,555,554,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,4,1,-218,328,247,165,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,245,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,557,556,246,242,66,-218,42,43,90,91,248,86,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,558,-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,4,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,422,423,-217,-217,559,-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,4,1,328,247,165,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,245,53,52,72,73,93,99,59,83,87,249,84,85,420,419,66,42,43,90,91,248,86,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,6,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,54,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,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,-208,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,560,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,4,1,561,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,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,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,-211,54,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,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,-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,6,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,6,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,562,-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,4,1,563,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,564,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,4,1,565,165,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,566,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,30,568,569,567,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,269,100,101,271,104,272,255,105,106,-218,-218,273,571,-218,570,274,266,267,-218,268,275,-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,4,1,572,165,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,573,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,574,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,4,1,575,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,576,141,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,578,579,580,-128,577,141,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,251,252,581,141,2,109,11,582,141,54,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,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,-65,57,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,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,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,583,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,4,1,584,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,4,1,585,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,587,165,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,586,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,588,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,589,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,590,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,591,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,592,1,165,593,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,4,1,594,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,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,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,-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,4,1,595,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,596,127,322,468,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,597,63,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,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,-95,63,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,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,-97,24,67,19,6,56,1,9,1,1,32,1,6,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,4,1,598,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,599,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,4,1,600,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,56,602,603,601,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,4,1,-218,328,247,165,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,249,84,85,604,66,-218,42,43,90,91,248,86,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,478,605,-217,-217,-217,63,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,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,-102,23,67,25,56,1,9,1,1,32,1,6,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,6,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,6,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,6,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,608,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,6,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,6,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,609,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,6,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,4,1,611,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,162,102,103,610,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,154,104,156,157,155,99,159,158,153,612,152,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,613,-173,-173,151,152,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,6,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,57,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,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,-214,3,125,1,1,614,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,615,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,125,126,-409,-409,-409,-409,-409,-409,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,616,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,162,617,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,6,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,2,66,10,162,618,2,66,10,162,619,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,6,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,-247,26,66,10,16,5,51,1,9,1,1,4,28,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,620,127,621,124,125,126,96,97,622,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,625,127,626,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,627,127,628,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,4,1,629,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,630,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,631,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,-304,-304,-304,-304,27,72,20,2,54,1,9,1,1,3,2,2,25,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,127,-302,124,125,126,96,97,-302,-302,-302,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,632,633,518,379,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,6,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,2,66,10,162,634,3,67,78,12,-253,-253,-253,3,66,6,4,162,636,635,24,66,6,20,56,1,9,1,1,32,1,6,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,162,-311,-311,637,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,125,126,-311,-311,-311,-311,-311,-311,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,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,4,1,-317,385,386,387,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,-317,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,638,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,6,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,6,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,349,350,-217,-217,639,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,6,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,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,1,142,640,6,55,1,10,113,1,2,402,104,401,641,400,403,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,3,54,5,1,642,105,106,3,6,60,30,644,645,643,10,6,49,1,10,1,29,8,18,58,2,-218,402,104,-218,-218,-218,-218,-218,646,403,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,647,-217,-217,-217,2,55,1,648,104,2,55,1,649,104,1,142,-339,3,54,5,1,650,105,106,3,6,60,30,652,653,651,10,6,49,1,10,1,29,8,18,60,5,-218,544,104,-218,-218,-218,-218,-218,410,654,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,655,-217,-217,-217,6,6,60,1,5,24,85,-363,-363,-363,-363,-363,545,3,55,1,126,656,104,657,2,55,1,658,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,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,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,4,1,659,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,660,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,661,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,1,138,662,23,92,12,44,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,663,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,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,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,-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,4,1,328,247,165,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,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,426,664,243,246,242,66,42,43,90,91,248,86,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,4,1,328,247,165,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,245,53,52,72,73,93,99,59,83,-153,87,249,84,85,420,419,66,42,43,90,91,248,86,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,4,1,328,247,165,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,245,53,52,72,73,93,99,59,83,87,249,84,85,426,665,246,242,66,42,43,90,91,248,86,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,555,666,54,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,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,-209,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,667,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,162,668,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,125,126,-257,-257,-257,-257,-257,-257,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,6,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,125,126,-259,-259,-259,-259,-259,-259,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,669,-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,4,1,670,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,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,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,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,269,100,101,271,104,272,255,105,106,273,571,671,274,266,267,268,275,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,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,571,-109,672,270,274,266,267,268,275,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,673,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,6,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,4,1,674,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,675,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,676,255,2,57,1,677,255,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,4,1,678,165,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,679,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,680,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,6,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,125,126,-406,-406,-406,-406,-406,-406,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,4,1,681,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,-238,125,126,96,97,-238,-238,-238,-238,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,682,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,683,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,684,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,685,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,686,-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,4,1,687,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,688,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,125,126,-300,-300,-300,-300,-300,-300,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,6,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,689,1,86,690,23,86,6,56,1,9,1,1,32,1,6,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,63,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,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,-98,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,691,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,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,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,-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,4,1,328,247,165,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,249,84,85,692,66,42,43,90,91,248,86,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,4,1,328,247,165,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,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,693,86,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,602,603,694,1,86,695,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,6,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,6,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,6,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,54,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,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,-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,349,696,-217,-217,-217,2,66,10,162,610,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,6,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,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,6,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,6,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,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,6,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,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,6,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,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,6,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,4,1,697,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,698,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,4,1,699,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,4,1,700,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,4,1,701,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,702,127,703,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,704,127,705,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,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,6,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,2,66,10,162,706,1,67,707,4,6,61,78,12,708,-254,-254,-254,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,4,1,709,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,2,6,61,-316,-316,2,66,10,162,710,3,54,5,1,711,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,712,-217,-217,-217,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,1,142,713,4,55,1,124,2,402,104,714,403,6,55,1,10,113,1,2,402,104,401,715,400,403,5,6,60,1,5,24,-330,-330,-330,-330,-330,3,6,60,1,644,645,716,5,6,60,1,5,24,-335,-335,-335,-335,-335,5,6,60,1,5,24,-337,-337,-337,-337,-337,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,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,717,-341,-341,-341,-341,4,55,1,126,5,544,104,410,718,6,55,1,10,116,3,2,544,104,408,410,719,407,5,6,60,1,5,24,-359,-359,-359,-359,-359,3,6,60,1,652,653,720,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-365,-365,-365,-365,-365,5,6,60,1,5,24,-367,-367,-367,-367,-367,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,127,-347,-347,-347,-347,125,126,-347,-347,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,721,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,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,54,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,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,-216,54,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,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,-160,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,422,423,-217,-217,722,-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,723,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,6,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,309,154,104,156,157,155,99,724,725,83,158,197,308,196,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,726,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,440,727,-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,4,1,728,165,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,566,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,729,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,730,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,4,1,731,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,65,732,23,67,25,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,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,4,1,734,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,735,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,736,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,737,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,738,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,739,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,740,-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,63,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,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,-94,63,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,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,-96,1,86,741,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,478,742,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,63,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,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,-103,3,6,60,1,492,493,743,25,66,10,16,56,1,9,1,1,4,28,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,744,127,124,125,126,96,97,745,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,746,127,747,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,748,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,749,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,750,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,6,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,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,4,1,751,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,4,1,752,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,753,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,3,67,78,12,-255,-255,-255,24,66,6,20,56,1,9,1,1,32,1,6,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,6,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,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,3,6,60,30,644,645,754,3,54,5,1,755,105,106,5,6,60,1,5,24,-331,-331,-331,-331,-331,8,6,60,1,5,23,1,8,18,-217,-217,-217,535,756,-217,-217,-217,5,6,60,1,5,24,-332,-332,-332,-332,-332,3,54,5,1,757,105,106,5,6,60,1,5,24,-360,-360,-360,-360,-360,8,6,60,1,5,23,1,8,18,-217,-217,-217,542,758,-217,-217,-217,5,6,60,1,5,24,-361,-361,-361,-361,-361,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,2,66,1,555,759,54,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,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,-210,4,94,69,2,2,760,460,462,463,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,761,159,158,197,196,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,568,569,762,27,6,60,1,5,20,4,52,1,9,1,1,32,1,6,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,763,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,6,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,764,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,765,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-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,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,6,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,125,126,-298,-298,-298,-298,-298,-298,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,4,1,766,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,767,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,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,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,-99,3,6,60,1,602,603,768,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,6,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,4,1,769,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,4,1,770,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,6,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,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,6,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,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,771,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,772,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,6,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,1,142,773,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,1,644,645,774,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,3,6,60,1,652,653,775,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,4,1,776,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,777,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,778,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,4,1,779,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,4,1,780,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-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,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,781,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,782,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,6,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,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,6,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,3,54,5,1,783,105,106,5,6,60,1,5,24,-333,-333,-333,-333,-333,5,6,60,1,5,24,-362,-362,-362,-362,-362,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,786,-289,-289,-289,-289,784,-289,785,-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,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,4,1,787,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,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,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-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,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,6,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,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,6,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,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,96,788,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,4,1,789,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,786,-291,-291,-291,-291,790,-291,791,-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,59,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,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,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,786,-290,-290,-290,-290,792,-290,-290,-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,1,96,793,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,4,1,794,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,96,795,59,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,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,-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,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,786,-292,-292,-292,-292,796,-292,-292,-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,59,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,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,-105,1,96,797,59,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,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,-107],U=[],W=0,F,f,u,Y;while(W<$.length){F=$[W++],f={},u=0,Y=[];while(F--)u+=$[W++],Y.push(u);for(u of Y)f[u]=$[W++];U.push(f)}return U})(),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,5,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,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:($,U,W,F)=>{let f=U,u=U.length-1;switch($){case 1:return["program"];case 2:return["program",...f[u]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 252:case 303:case 315:case 329:case 358:return[f[u]];case 4:case 111:case 175:case 195:case 204:case 316:case 330:case 359:return[...f[u-2],f[u]];case 5:case 60:case 157:case 317:return f[u-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 263:case 301:case 318:case 319:case 320:case 334:case 336:case 338:case 363:case 366:return f[u];case 47:return"undefined";case 48:return"null";case 57:return["str",...f[u-1]];case 59:case 151:case 155:case 253:return[...f[u-1],f[u]];case 61:case 193:case 197:case 332:case 361:return f[u-2];case 62:return"";case 65:return["regex",f[u-1]];case 66:return["regex-index",f[u-2],f[u]];case 67:return["regex-index",f[u],null];case 68:return["=",f[u-2],f[u]];case 69:return["=",f[u-3],f[u]];case 70:return["=",f[u-4],f[u-1]];case 71:return["state",f[u-2],f[u]];case 72:return["state",f[u-3],f[u]];case 73:return["state",f[u-4],f[u-1]];case 74:case 76:return["computed",f[u-2],f[u]];case 75:return["computed",f[u-3],f[u]];case 77:return["readonly",f[u-2],f[u]];case 78:return["readonly",f[u-3],f[u]];case 79:return["readonly",f[u-4],f[u-1]];case 80:case 82:return["effect",f[u-2],f[u]];case 81:return["effect",f[u-3],f[u]];case 83:case 84:case 85:return["effect",null,f[u]];case 91:case 100:case 138:return[".",f[u-2],f[u]];case 92:case 101:case 139:return["?.",f[u-2],f[u]];case 93:case 95:case 102:case 140:return["[]",f[u-3],f[u-1]];case 94:case 96:case 103:case 141:return["[]",f[u-5],f[u-2]];case 97:return[f[u-1][0],f[u-3],...f[u-1].slice(1)];case 98:return["optindex",f[u-4],f[u-1]];case 99:return["optindex",f[u-6],f[u-2]];case 104:return["object-comprehension",f[u-8],f[u-6],[["for-of",f[u-4],f[u-2],!1]],[]];case 105:return["object-comprehension",f[u-10],f[u-8],[["for-of",f[u-6],f[u-4],!1]],[f[u-2]]];case 106:return["object-comprehension",f[u-9],f[u-7],[["for-of",f[u-4],f[u-2],!0]],[]];case 107:return["object-comprehension",f[u-11],f[u-9],[["for-of",f[u-6],f[u-4],!0]],[f[u-2]]];case 108:return["object",...f[u-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 331:case 360:return[...f[u-3],f[u]];case 113:case 177:case 198:case 333:case 362:return[...f[u-5],...f[u-2]];case 114:return[f[u],f[u],null];case 116:return[f[u-2],f[u],":"];case 117:return[f[u-4],f[u-1],":"];case 118:return[f[u-2],f[u],"="];case 119:return[f[u-4],f[u-1],"="];case 124:return["dynamicKey",f[u-1]];case 125:return["[]","this",f[u-1]];case 127:case 128:case 186:return["...",f[u]];case 134:case 190:return["super",...f[u]];case 135:case 136:case 137:case 188:case 191:return[f[u-1],...f[u]];case 142:return["array"];case 143:return["array",...f[u-1]];case 144:return["array",...f[u-2],...f[u-1]];case 146:return[...f[u-2],...f[u]];case 147:return[...f[u-3],...f[u]];case 148:return[...f[u-2],...f[u-1]];case 149:return[...f[u-5],...f[u-4],...f[u-2],...f[u-1]];case 153:return[...f[u]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[f[u-2],f[u-3],f[u-1]];case 161:case 387:case 389:case 390:case 405:case 407:return[f[u-1],f[u-2],f[u]];case 162:return[f[u],f[u-1],null];case 163:return[f[u-1],null,f[u]];case 164:return[f[u],null,null];case 165:return["def",f[u-4],f[u-2],f[u]];case 166:return["def",f[u-1],[],f[u]];case 167:case 169:return[f[u-1],f[u-3],f[u]];case 168:case 170:return[f[u-1],[],f[u]];case 179:case 302:return["default",f[u-2],f[u]];case 180:return["rest",f[u]];case 181:return["expansion"];case 187:return["tagged-template",f[u-1],f[u]];case 189:return["optcall",f[u-2],...f[u]];case 205:case 206:return"this";case 207:return[".","this",f[u]];case 208:return[".","super",f[u]];case 209:return["[]","super",f[u-1]];case 210:return["[]","super",f[u-2]];case 211:return[".","new",f[u]];case 212:return[".","import",f[u]];case 213:return["block"];case 214:return["block",...f[u-1]];case 215:return f[u-1].length===1?f[u-1][0]:["block",...f[u-1]];case 216:return f[u-2].length===1?f[u-2][0]:["block",...f[u-2]];case 219:return["return",f[u]];case 220:return["return",f[u-1]];case 221:return["return"];case 222:return["throw",f[u]];case 223:return["throw",f[u-1]];case 224:return["yield"];case 225:return["yield",f[u]];case 226:return["yield",f[u-1]];case 227:return["yield-from",f[u]];case 228:return["if",f[u-1],f[u]];case 229:return f[u-4].length===3?["if",f[u-4][1],f[u-4][2],["if",f[u-1],f[u]]]:[...f[u-4],["if",f[u-1],f[u]]];case 230:return["if",["!",f[u-1]],f[u]];case 231:return["if",["!",f[u-3]],f[u-2],f[u]];case 233:return f[u-2].length===3?["if",f[u-2][1],f[u-2][2],f[u]]:[...f[u-2],f[u]];case 235:case 236:return["if",f[u],[f[u-2]]];case 237:return["?:",f[u-4],f[u-6],f[u-1]];case 238:return["?:",f[u-2],f[u-4],f[u]];case 239:case 240:return["if",["!",f[u]],[f[u-2]]];case 241:return["try",f[u]];case 242:return["try",f[u-1],f[u]];case 243:return["try",f[u-2],f[u]];case 244:return["try",f[u-3],f[u-2],f[u]];case 245:case 246:case 368:case 371:case 373:return[f[u-1],f[u]];case 247:return[null,f[u]];case 248:return["switch",f[u-3],f[u-1],null];case 249:return["switch",f[u-5],f[u-3],f[u-1]];case 250:return["switch",null,f[u-1],null];case 251:return["switch",null,f[u-3],f[u-1]];case 254:return["when",f[u-1],f[u]];case 255:return["when",f[u-2],f[u-1]];case 256:return["while",f[u]];case 257:return["while",f[u-2],f[u]];case 258:return["while",["!",f[u]]];case 259:return["while",["!",f[u-2]],f[u]];case 260:return f[u-1].length===2?[f[u-1][0],f[u-1][1],f[u]]:[f[u-1][0],f[u-1][1],f[u-1][2],f[u]];case 261:case 262:return f[u].length===2?[f[u][0],f[u][1],[f[u-1]]]:[f[u][0],f[u][1],f[u][2],[f[u-1]]];case 264:return["loop",f[u]];case 265:return["loop",[f[u]]];case 266:return["loop-n",f[u-1],f[u]];case 267:return["for-in",f[u-3],f[u-1],null,null,f[u]];case 268:return["for-in",f[u-5],f[u-3],null,f[u-1],f[u]];case 269:return["for-in",f[u-5],f[u-3],f[u-1],null,f[u]];case 270:return["for-in",f[u-7],f[u-5],f[u-1],f[u-3],f[u]];case 271:return["for-in",f[u-7],f[u-5],f[u-3],f[u-1],f[u]];case 272:return["for-of",f[u-3],f[u-1],!1,null,f[u]];case 273:return["for-of",f[u-5],f[u-3],!1,f[u-1],f[u]];case 274:return["for-of",f[u-3],f[u-1],!0,null,f[u]];case 275:return["for-of",f[u-5],f[u-3],!0,f[u-1],f[u]];case 276:return["for-as",f[u-3],f[u-1],!1,null,f[u]];case 277:return["for-as",f[u-5],f[u-3],!1,f[u-1],f[u]];case 278:case 280:return["for-as",f[u-3],f[u-1],!0,null,f[u]];case 279:case 281:return["for-as",f[u-5],f[u-3],!0,f[u-1],f[u]];case 282:return["for-in",[],f[u-1],null,null,f[u]];case 283:return["for-in",[],f[u-3],f[u-1],null,f[u]];case 284:return["comprehension",f[u-4],[["for-in",f[u-2],f[u],null]],[]];case 285:return["comprehension",f[u-6],[["for-in",f[u-4],f[u-2],null]],[f[u]]];case 286:return["comprehension",f[u-6],[["for-in",f[u-4],f[u-2],f[u]]],[]];case 287:return["comprehension",f[u-8],[["for-in",f[u-6],f[u-4],f[u]]],[f[u-2]]];case 288:return["comprehension",f[u-8],[["for-in",f[u-6],f[u-4],f[u-2]]],[f[u]]];case 289:return["comprehension",f[u-4],[["for-of",f[u-2],f[u],!1]],[]];case 290:return["comprehension",f[u-6],[["for-of",f[u-4],f[u-2],!1]],[f[u]]];case 291:return["comprehension",f[u-5],[["for-of",f[u-2],f[u],!0]],[]];case 292:return["comprehension",f[u-7],[["for-of",f[u-4],f[u-2],!0]],[f[u]]];case 293:return["comprehension",f[u-4],[["for-as",f[u-2],f[u],!1,null]],[]];case 294:return["comprehension",f[u-6],[["for-as",f[u-4],f[u-2],!1,null]],[f[u]]];case 295:return["comprehension",f[u-5],[["for-as",f[u-2],f[u],!0,null]],[]];case 296:return["comprehension",f[u-7],[["for-as",f[u-4],f[u-2],!0,null]],[f[u]]];case 297:return["comprehension",f[u-4],[["for-as",f[u-2],f[u],!0,null]],[]];case 298:return["comprehension",f[u-6],[["for-as",f[u-4],f[u-2],!0,null]],[f[u]]];case 299:return["comprehension",f[u-2],[["for-in",[],f[u],null]],[]];case 300:return["comprehension",f[u-4],[["for-in",[],f[u-2],f[u]]],[]];case 304:case 335:case 337:case 364:case 365:case 367:return[f[u-2],f[u]];case 305:return["class",null,null];case 306:return["class",null,null,f[u]];case 307:return["class",null,f[u]];case 308:return["class",null,f[u-1],f[u]];case 309:return["class",f[u],null];case 310:return["class",f[u-1],null,f[u]];case 311:return["class",f[u-2],f[u]];case 312:return["class",f[u-3],f[u-1],f[u]];case 313:return["enum",f[u-1],f[u]];case 314:return["component",null,["block",...f[u-1]]];case 321:return["render",f[u]];case 322:case 325:return["import","{}",f[u]];case 323:case 324:return["import",f[u-2],f[u]];case 326:return["import",f[u-4],f[u]];case 327:return["import",[f[u-4],f[u-2]],f[u]];case 328:return["import",[f[u-7],f[u-4]],f[u]];case 339:return["*",f[u]];case 340:return["export","{}"];case 341:return["export",f[u-2]];case 342:case 343:case 344:case 345:case 349:case 350:case 351:case 352:return["export",f[u]];case 346:return["export",["=",f[u-2],f[u]]];case 347:return["export",["=",f[u-3],f[u]]];case 348:return["export",["=",f[u-4],f[u-1]]];case 353:return["export-default",f[u]];case 354:return["export-default",f[u-1]];case 355:return["export-all",f[u]];case 356:return["export-from","{}",f[u]];case 357:return["export-from",f[u-4],f[u]];case 369:case 370:case 372:case 410:return["do-iife",f[u]];case 374:return["-",f[u]];case 375:return["+",f[u]];case 376:return["?",f[u-1]];case 377:return["defined",f[u-1]];case 378:return["presence",f[u-1]];case 379:return["await",f[u]];case 380:return["await",f[u-1]];case 381:return["--",f[u],!1];case 382:return["++",f[u],!1];case 383:return["--",f[u-1],!0];case 384:return["++",f[u-1],!0];case 385:return["+",f[u-2],f[u]];case 386:return["-",f[u-2],f[u]];case 388:return["**",f[u-2],f[u]];case 391:return["&",f[u-2],f[u]];case 392:return["^",f[u-2],f[u]];case 393:return["|",f[u-2],f[u]];case 394:case 395:case 396:case 397:case 398:case 399:return["control",f[u-1],f[u-2],f[u]];case 400:return["&&",f[u-2],f[u]];case 401:return["||",f[u-2],f[u]];case 402:return["??",f[u-2],f[u]];case 403:return["!?",f[u-2],f[u]];case 404:return["|>",f[u-2],f[u]];case 406:return["?:",f[u-4],f[u-2],f[u]];case 408:return[f[u-3],f[u-4],f[u-1]];case 409:return[f[u-2],f[u-3],f[u]]}},parseError($,U){let W,F,f,u,Y,A,_;if(U.recoverable)return this.trace($);else throw f=(U.line||0)+1,W=U.loc?.c||0,_=U.token?` (token: ${U.token})`:"",A=U.text?` near '${U.text}'`:"",u=`line ${f}, column ${W}`,Y=`Parse error at ${u}${_}${A}: ${$}`,F=Error(Y),F.hash=U,F},parse($){let U,W,F,f,u,Y,A,_,R,w,z,X,K,D,Z,J,Q,H,O,M,G,B,q,P,E,I;[M,I,w]=[[0],[null],[]],[K,E,q,B,J]=[this.parseTable,"",0,0,0],[W,U]=[2,1],_=Object.create(this.lexer),H={ctx:{}};for(let N in this.ctx){if(!Object.hasOwn(this.ctx,N))continue;let T=this.ctx[N];H.ctx[N]=T}if(_.setInput($,H.ctx),[H.ctx.lexer,H.ctx.parser]=[_,this],_.loc==null)_.loc={};P=_.loc,w.push(P),this.parseError=typeof H.ctx.parseError==="function"?H.ctx.parseError:Object.getPrototypeOf(this).parseError,A=()=>{let N;if(N=_.lex()||U,typeof N!=="number")N=this.symbolIds[N]||N;return N},G=D=O=F=Z=X=Y=z=u=null,Q={};while(!0){if(O=M[M.length-1],G==null)G=A();if(F=K[O]?.[G],F==null){if(f="",!J)u=(()=>{let N=[];for(let T in K[O]){if(!Object.hasOwn(K[O],T))continue;if(this.tokenNames[T]&&T>W)N.push(`'${this.tokenNames[T]}'`)}return N})();throw f=(()=>{if(_.showPosition)return`Parse error on line ${q+1}:
|
|
3
|
+
`}function x($){if(!$)return $;return $=$.replace(/::/g,":"),$=$.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),$=$.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),$}function C1($,U,F,W,f){if(!Array.isArray($))return;let u=$[0]?.valueOf?.()??$[0],A=!1,Y=null,_=null;if(u==="export"&&Array.isArray($[1])){A=!0;let Z=$[1];if((Z[0]?.valueOf?.()??Z[0])==="="&&Array.isArray(Z[2])&&(Z[2][0]?.valueOf?.()??Z[2][0])==="component")Y=Z[1]?.valueOf?.()??Z[1],_=Z[2]}else if(u==="="&&Array.isArray($[2])&&($[2][0]?.valueOf?.()??$[2][0])==="component")Y=$[1]?.valueOf?.()??$[1],_=$[2];if(Y&&_){let Z=A?"export ":"",w=_[2],z=Array.isArray(w)&&(w[0]?.valueOf?.()??w[0])==="block"?w.slice(1):w?[w]:[],X=[],K=!1;for(let D of z){if(!Array.isArray(D))continue;let R=D[0]?.valueOf?.()??D[0],J,Q,q,O,M;if(R==="state"||R==="readonly"||R==="computed"){if(J=D[1],q=Array.isArray(J)&&(J[0]?.valueOf?.()??J[0])==="."&&(J[1]?.valueOf?.()??J[1])==="this",Q=q?J[2]?.valueOf?.()??J[2]:J?.valueOf?.()??J,O=q?J[2]?.type:J?.type,M=!0,!q)f.add(Q)}else if(R==="."){if(q=(D[1]?.valueOf?.()??D[1])==="this",Q=q?D[2]?.valueOf?.()??D[2]:null,O=q?D[2]?.type:null,M=!1,!q&&Q)f.add(Q)}else continue;if(!q||!Q)continue;let G=O?x(O):"any",I=M?"?":"";if(!M)K=!0;X.push(` ${Q}${I}: ${G};`)}if(U.push(`${Z}declare class ${Y} {`),X.length>0){let D=K?"":"?";U.push(` constructor(props${D}: {`);for(let R of X)U.push(R);U.push(" });")}U.push("}")}if(u==="program"||u==="block"){for(let Z=1;Z<$.length;Z++)if(Array.isArray($[Z]))C1($[Z],U,F,W,f)}if(u==="export"&&Array.isArray($[1])&&!_)C1($[1],U,F,W,f)}function $2($,U,F){let[W,f]=U,u=W?.valueOf?.()??W,A=[];if(Array.isArray(f)){let Z=f[0]==="block"?f.slice(1):[f];for(let w of Z)if(Array.isArray(w)){if(w[0]?.valueOf?.()==="="){let z=w[1]?.valueOf?.()??w[1],X=w[2]?.valueOf?.()??w[2];A.push([z,X])}}}if(A.length===0)return`const ${u} = {}`;let Y=A.map(([Z,w])=>`${Z}: ${w}`).join(", "),_=A.map(([Z,w])=>`${w}: "${Z}"`).join(", ");return`const ${u} = {${Y}, ${_}}`}var U2=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"]),F2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","offer","accept","enum","interface"]),c1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},W2=new Set(Object.keys(c1)),e2=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),u3=new Set(["break","continue","debugger"]),f3=new Set(["NEW","TYPEOF","DELETE"]),$3=new Set(["IN","OF","INSTANCEOF"]),O1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),X2=new Set([...O1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),q1=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","@","->","=>","[","(","{","--","++"]),U3=new Set(["+","-"]),F3=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),W3=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),s=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),d=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),A3={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},A2=new Set(["CATCH","THEN","ELSE","FINALLY",...d]),b1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),Y3=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),Y2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),_3=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),_1=new Set(["INDENT","OUTDENT","TERMINATOR"]),_2=new Set([".","?."]),R2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),R3=new Set([...X2,"++","--"]),Z2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),Z3=new Set(["*","/","%","//","%%"]),w3=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),J3=new Set(["<<",">>",">>>"]),Q3=new Set(["!","~"]),X3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!(?!\?)|[?](?![.?![(]))?)([^\n\S]*:(?![=:]))?/,z3=/^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,K3=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,D3=/^[^\n\S]+/,M3=/^(?:\n[^\n\S]*)+/,H3=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,q3=/^[-=]>/,O3=/^(?:~[=>]|=!)/,G3=/^(?:'''\\|"""\\|'''|"""|'|")/,P3=/^(?:[^\\']|\\[\s\S])*/,I3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,E3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,B3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,w2=/\n+([^\n\S]*)(?=\S)/g,N3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,J2=/^\w*/,T3=/^(?!.*(.).*\1)[gimsuy]*$/,L3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,S3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,h3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,j3=/\s+$/,Q2=/^\s*(?:,|\??\.(?![.\d]))/,V3=65279;function G1($,U,{pre:F=0,row:W=0,col:f=0,len:u=0,data:A=null}={}){let Y=[$,U];return Y.pre=F,Y.data=A,Y.loc={r:W,c:f,n:u},Y.spaced=F>0,Y.newLine=!1,Y}function p($,U,F){let W=G1($,U);if(W.generated=!0,F)W.origin=F;return W}function i($,{row:U=0,col:F=0,len:W=1}={}){let f=SyntaxError($);throw f.location={first_line:U,first_column:F,last_column:F+W-1},f}function C3($){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 r{tokenize($,U={}){this.code=$,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=U.row||0,this.col=U.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)i(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(F),U.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];i(`missing ${F.tag}`,{row:this.row,col:this.col})}if(U.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===V3)$=$.slice(1);if($=$.replace(/\r\n?/g,`
|
|
4
|
+
`),$=$.replace(j3,""),/^[^\n\S]/.test($))$=`
|
|
5
|
+
`+$;return $}advance($){let U=this.code.slice(this.pos,this.pos+$);for(let F=0;F<U.length;F++)if(U[F]===`
|
|
6
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,U,{len:F,data:W,pre:f}={}){let u=G1($,U,{pre:f??0,row:this.row,col:this.col,len:F??(typeof U==="string"?U.length:0),data:W});return this.tokens.push(u),u}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(O3.test(this.chunk))return 0;let $=X3.exec(this.chunk);if(!$)return 0;let[,U,F]=$,W=U.length,f={},u;if(U==="own"&&this.prevTag()==="FOR")return this.emit("OWN",U,{len:W}),W;if(U==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",U,{len:W}),W;if(U==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let w=this.prevTag();if(w==="DEFAULT"||w==="IMPORT_ALL"||w==="IDENTIFIER")return this.emit("AS",U,{len:W}),W}if((U==="as"||U==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(U==="as!"?"FORASAWAIT":"FORAS","as",{len:W}),W;if(U==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",U,{len:W}),W;let A;if(U==="do"&&(A=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),A[1].length+3;let Y=this.prev();if(F&&Y&&Y[0]==="TERNARY")F=null;if(F||Y&&(Y[0]==="."||Y[0]==="?."||!Y.spaced&&Y[0]==="@")){if(u="PROPERTY",this.inRenderBlock&&Y&&Y[0]==="."&&!F){let w=this.chunk.slice(W);while(w[0]==="-"&&/^-[a-zA-Z]/.test(w)){let z=/^-([a-zA-Z][\w]*)/.exec(w);if(!z)break;U+="-"+z[1],W+=1+z[1].length,w=this.chunk.slice(W)}}}else u="IDENTIFIER";let _=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if(u==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(U2.has(U)||F2.has(U)||W2.has(U))&&!(this.exportSpecifierList&&W2.has(U))){if(c1[U]!==void 0)f.original=U,U=c1[U];u=this.classifyKeyword(U,u,f)}if(u==="IDENTIFIER"&&e2.has(_))i(`reserved word '${_}'`,{row:this.row,col:this.col,len:W});if(u==="PROPERTY"&&Y){if(Y[0]==="."&&this.tokens.length>1){let w=this.tokens[this.tokens.length-2];if(w[0]==="UNARY"&&w[1]==="new")w[0]="NEW_TARGET";if(w[0]==="IMPORT"&&w[1]==="import")this.seenImport=!1,w[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))f.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))f.predicate=!0,U=U.slice(0,-1);let Z=this.emit(u,U,{len:W,data:Object.keys(f).length?f:null});if(u==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(F)return this.emit(":",":",{len:1}),W+F.length;return W}classifyKeyword($,U,F){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(u3.has($))return"STATEMENT";let W=$.toUpperCase();if(W==="WHEN"&&_1.has(this.prevTag()))return"LEADING_WHEN";if(W==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(W==="UNLESS")return"UNLESS";if(W==="IMPORT")return this.seenImport=!0,"IMPORT";if(W==="EXPORT")return this.seenExport=!0,"EXPORT";if(f3.has(W))return"UNARY";if($3.has(W)){if(W!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+W;if(this.prevVal()==="!"){let f=this.tokens.pop();F.invert=f.data?.original||f[1]}return"RELATION"}if(U2.has($)||F2.has($))return W;return U}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let U=this.prev();if(U&&(U[0]==="IDENTIFIER"||U[0]==="PROPERTY"))return 0;let F=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(F)return this.emit("IDENTIFIER",F[1]==="content"?"slot":"div#"+F[1]),F[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let $=H3.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=D3.exec(this.chunk);if(!$&&this.chunk[0]!==`
|
|
7
|
+
`)return 0;let U=this.prev();if(U)if($)U.spaced=!0,U.pre=$[0].length;else U.newLine=!0;return $?$[0].length:0}lineToken(){let $=M3.exec(this.chunk);if(!$)return 0;let U=$[0],F=U.length-1-U.lastIndexOf(`
|
|
8
|
+
`);if(this.isUnfinished()){if(F<this.indent&&/^\s*,/.test(this.chunk)&&!R2.has(this.prevTag())){if(this.outdentTo(F,U.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return U.length}return U.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(),U.length;if(F>this.indent){if(!this.tokens.length)return this.indent=F,U.length;let W=F-this.indent;return this.emit("INDENT",W,{len:F}),this.indents.push(W),this.ends.push({tag:"OUTDENT"}),this.indent=F,U.length}return this.outdentTo(F,U.length),U.length}outdentTo($,U=0){if(this.inRenderBlock&&$<=this.renderIndent)this.inRenderBlock=!1;let F=this.indent-$;while(F>0){let W=this.indents[this.indents.length-1];if(!W)F=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",F,{len:U}),F-=W}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
9
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&Q2.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let U=this.tokens.length;if(U>=2){let F=this.tokens[U-2][0];if(F==="INDENT"||F==="TERMINATOR"||F==="OUTDENT")return!1}}let $=this.tokens[this.tokens.length-1];if($?.[0]==="COMPARE"&&$[1]===">"){let U=0;for(let F=this.tokens.length-1;F>=0;F--){let W=this.tokens[F];if(W[0]==="COMPARE"&&W[1]===">")U++;else if(W[0]==="COMPARE"&&W[1]==="<")U--;if(U===0&&W[0]==="TYPE_ANNOTATION")return!1;if(W[0]==="TERMINATOR"||W[0]==="INDENT"||W[0]==="OUTDENT")break}}return Q2.test(this.chunk)||R2.has(this.prevTag())}pair($){let U=this.ends[this.ends.length-1];if(!U||$!==U.tag){if(U?.tag==="OUTDENT"){let F=this.indents[this.indents.length-1];if(F)this.outdentTo(this.indent-F);return this.pair($)}i(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=G3.exec(this.chunk);if(!$)return 0;let U=$[0],F=U.length>1&&U.endsWith("\\"),W=F?U.slice(0,-1):U,f=this.prev();if(f&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))f[0]="FROM";let u;switch(W){case"'":u=P3;break;case'"':u=I3;break;case"'''":u=E3;break;case'"""':u=B3;break}let{tokens:A,index:Y}=this.matchWithInterpolations(u,U,W),_=W.length===3,Z=null;if(_)Z=this.processHeredocIndent(Y,W,A);return this.mergeInterpolationTokens(A,{quote:W,indent:Z,endOffset:Y,raw:F}),Y}processHeredocIndent($,U,F){let W=$-U.length,f=W-1;while(f>=0&&this.chunk[f]!==`
|
|
10
|
+
`)f--;f++;let u=this.chunk.slice(f,W),A=/^\s*$/.test(u)?u.length:null,Y="";for(let w of F)if(w[0]==="NEOSTRING")Y+=w[1];let _=null,Z;w2.lastIndex=0;while(Z=w2.exec(Y))if(_===null||Z[1].length>0&&Z[1].length<_.length)_=Z[1];if(A===null)return _;if(_===null)return" ".repeat(A);if(A<=_.length)return" ".repeat(A);return _}matchWithInterpolations($,U,F,W){if(!F)F=U;if(!W)W=/^[#$]\{/;let f=[],u=U.length;if(this.chunk.slice(0,u)!==U)return null;let A=this.chunk.slice(u);while(!0){let[Y]=$.exec(A);f.push(["NEOSTRING",Y,{offset:u}]),A=A.slice(Y.length),u+=Y.length;let _=W.exec(A);if(!_)break;let w=_[0].length-1,z=A.slice(w),X=new r().tokenize(z,{row:this.row,col:this.col+u+w,untilBalanced:!0,rewrite:!1}),K=X.index+w;if(A[K-1]==="}"){let R=X.tokens[0],J=X.tokens[X.tokens.length-1];R[0]="INTERPOLATION_START",R[1]="(",J[0]="INTERPOLATION_END",J[1]=")"}if(X.tokens[1]?.[0]==="TERMINATOR")X.tokens.splice(1,1);let D=X.tokens.length;if(D>2&&X.tokens[D-3]?.[0]==="INDENT"&&X.tokens[D-2]?.[0]==="OUTDENT")X.tokens.splice(D-3,2);f.push(["TOKENS",X.tokens]),A=A.slice(K),u+=K}if(A.slice(0,F.length)!==F)i(`missing ${F}`,{row:this.row,col:this.col});return{tokens:f,index:u+F.length}}mergeInterpolationTokens($,{quote:U,indent:F,endOffset:W,raw:f}){if($.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let u=0;u<$.length;u++){let[A,Y]=$[u];if(A==="TOKENS")for(let _ of Y)this.tokens.push(_);else if(A==="NEOSTRING"){let _=Y;if(F){let Z=new RegExp("\\n"+F,"g");_=_.replace(Z,`
|
|
11
|
+
`)}if(u===0&&U?.length===3)_=_.replace(/^\n/,"");if(u===$.length-1&&U?.length===3)_=_.replace(/\n[^\S\n]*$/,"");if(f)_=_.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${_}"`,{len:Y.length,data:{quote:U}})}}if($.length>1)this.emit("STRING_END",")",{len:U?.length||0});return W}numberToken(){let $=z3.exec(this.chunk);if(!$)return 0;let U=$[0],F=U.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(U))i(`radix prefix in '${U}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(U))i(`decimal literal '${U}' must not be prefixed with '0'`,{...W,len:F});if(/^0\d+/.test(U))i(`octal literal '${U}' must be prefixed with '0o'`,{...W,len:F});let f=C3(U),u=f===1/0?"INFINITY":"NUMBER",A={parsedValue:f};if(u==="INFINITY")A.original=U;return this.emit(u,U,{len:F,data:A}),F}regexToken(){let $=this.matchWithInterpolations(L3,"///");if($){let{tokens:Z,index:w}=$,[z]=J2.exec(this.chunk.slice(w)),X=w+z.length;if(Z.length===1||!Z.some((K)=>K[0]==="TOKENS")){let K=(Z[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${z}`,{len:X,data:{delimiter:"///",heregex:{flags:z}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Z,{quote:"///",endOffset:X-z.length}),z)this.emit(",",",",{len:0}),this.emit("STRING",`"${z}"`,{len:z.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return X}let U=N3.exec(this.chunk);if(!U)return 0;let[F,W,f]=U,u=this.prev();if(u){if(u.spaced&&O1.has(u[0])&&(!f||/^\/=?\s/.test(F)))return 0;if(R3.has(u[0])&&!(u.spaced&&O1.has(u[0])))return 0}if(!f)i("missing / (unclosed regex)",{row:this.row,col:this.col});let A=F.length,[Y]=J2.exec(this.chunk.slice(A)),_=A+Y.length;if(!T3.test(Y))i(`invalid regular expression flags ${Y}`,{row:this.row,col:this.col+A,len:Y.length});return this.emit("REGEX",`/${W}/${Y}`,{len:_,data:{delimiter:"/"}}),_}jsToken(){if(this.chunk[0]!=="`")return 0;let $=h3.exec(this.chunk)||S3.exec(this.chunk);if(!$)return 0;let U=$[1],F=$[0].length;return this.emit("JS",U,{len:F,data:{here:$[0].startsWith("```")}}),F}literalToken(){let $=K3.exec(this.chunk),U=$?$[0]:this.chunk.charAt(0),F=U,W=this.prev();if(q3.test(U))this.tagParameters();if(U==="="&&W&&W[1]==="."&&!W.spaced){let f=this.tokens,u=f.length-2;while(u>=1&&f[u][0]==="PROPERTY"&&f[u-1]?.[1]===".")u-=2;if(u>=0&&(f[u][0]==="IDENTIFIER"||f[u][0]===")"||f[u][0]==="]")){let A=f.slice(u,f.length-1);W[0]="=",W[1]="=";for(let Y of A)this.tokens.push(G1(Y[0],Y[1],{pre:0,row:Y[2],col:Y[3],len:Y[4]}));return this.tokens.push(G1(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(W&&(U==="="||Z2.has(U))){if(U==="="&&(W[1]==="||"||W[1]==="&&"||W[1]==="??")&&!W.spaced)return W[0]="COMPOUND_ASSIGN",W[1]+="=",U.length}if(U==="("&&W?.[0]==="IMPORT")W[0]="DYNAMIC_IMPORT";if(U==="{"&&this.seenImport)this.importSpecifierList=!0;if(U==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(U==="{"&&W?.[0]==="EXPORT")this.exportSpecifierList=!0;if(U==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(U===";")this.seenFor=this.seenImport=this.seenExport=!1,F="TERMINATOR";else if(U==="|>")F="PIPE";else if(U==="::=")F="TYPE_ALIAS";else if(U==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(U==="::")F="TYPE_ANNOTATION";else if(U==="~=")F="COMPUTED_ASSIGN";else if(U===":=")F="REACTIVE_ASSIGN";else if(U==="<=>")F="BIND";else if(U==="~>")F="EFFECT";else if(U==="=!")F="READONLY_ASSIGN";else if(U==="*"&&(!W||W[0]==="TERMINATOR"||W[0]==="INDENT"||W[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let f=this.chunk.slice(1),u=/^@(\s*)=(?!=)/.exec(f);if(u){let Y=u[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let _=this.emit("PROPERTY","assign");return _.spaced=!0,this.emit("@","@"),this.emit(",",","),2+Y.length+1}let A=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(f);if(A){let Y=A[1],_=A[2],Z=Y.split("."),w=()=>{this.emit("IDENTIFIER",Z[0]);for(let X=1;X<Z.length;X++)this.emit(".","."),this.emit("PROPERTY",Z[X])};w(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),w(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+Y.length+_.length+1}}else if(U==="*"&&W?.[0]==="EXPORT")F="EXPORT_ALL";else if(Z3.has(U))F="MATH";else if(w3.has(U))F="COMPARE";else if(Z2.has(U))F="COMPOUND_ASSIGN";else if(Q3.has(U))F="UNARY_MATH";else if(J3.has(U))F="SHIFT";else if(U==="?"&&W?.spaced)F="TERNARY";else if(U==="!?"&&W&&!W.spaced)F="DEFINED";else if(U==="?!"&&W&&!W.spaced)F="PRESENCE";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))F="?.";else if(W){if(U==="("&&!W.spaced&&O1.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";F="CALL_START"}if(U==="["&&!W.spaced&&X2.has(W[0])){if(F="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:A3[U],origin:[F,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(F,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,U=[];this.tokens[$][0]="PARAM_END";while($-- >0){let F=this.tokens[$];if(F[0]===")")U.push(F);else if(F[0]==="("||F[0]==="CALL_START")if(U.length)U.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 U=this.tokens[$??this.tokens.length-1];if(U?.[0]==="DO")U[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(($,U)=>{if($[0]==="CALL_START")this.detectEnd(U+1,(F)=>F[0]===")"||F[0]==="CALL_END",(F)=>F[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,U)=>{if($[0]==="INDEX_START")this.detectEnd(U+1,(F)=>F[0]==="]"||F[0]==="INDEX_END",(F,W)=>{if(this.tokens[W+1]?.[0]===":")$[0]="[",F[0]="]";else F[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,U=null,F=null,W=(u,A)=>{return u[1]!==";"&&_3.has(u[0])&&!(u[0]==="TERMINATOR"&&A2.has(this.tokens[A+1]?.[0]))&&!(u[0]==="ELSE"&&$!=="THEN")||u[0]==="INDENT"&&!u.generated&&($==="->"||$==="=>")||u[0]===","&&($==="->"||$==="=>")&&!this.commaInImplicitCall(A)&&!this.commaInImplicitObject(A)||_2.has(u[0])&&(this.tokens[A-1]?.newLine||this.tokens[A-1]?.[0]==="OUTDENT")},f=(u,A)=>{let Y=this.tokens[A-1]?.[0]===","?A-1:A;this.tokens.splice(Y,0,F)};this.scanTokens((u,A,Y)=>{let[_]=u;if(_==="TERMINATOR"){if(this.tokens[A+1]?.[0]==="ELSE"&&this.tokens[A-1]?.[0]!=="OUTDENT")return Y.splice(A,1,...this.makeIndentation()),1;if(A2.has(this.tokens[A+1]?.[0]))return Y.splice(A,1),0}if(_==="CATCH")for(let Z=1;Z<=2;Z++){let w=this.tokens[A+Z]?.[0];if(w==="OUTDENT"||w==="TERMINATOR"||w==="FINALLY")return Y.splice(A+Z,0,...this.makeIndentation()),2+Z}if((_==="->"||_==="=>")&&(this.tokens[A+1]?.[0]===","||this.tokens[A+1]?.[0]==="]"))return[U,F]=this.makeIndentation(),Y.splice(A+1,0,U,F),1;if(Y2.has(_)&&this.tokens[A+1]?.[0]!=="INDENT"&&!(_==="ELSE"&&this.tokens[A+1]?.[0]==="IF")&&!(_==="ELSE"&&this.tokens[A-1]?.[0]!=="OUTDENT")){if($=_,[U,F]=this.makeIndentation(),_==="THEN")U.fromThen=!0;if(Y.splice(A+1,0,U),this.detectEnd(A+2,W,f),_==="THEN")Y.splice(A,1);return 1}return 1})}tagPostfixConditionals(){let $=null,U=(W,f)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!Y2.has(this.tokens[f-1]?.[0])},F=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)$[0]="POST_"+$[0]};this.scanTokens((W,f)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;if(this.tokens[f-1]?.[0]==="INTERPOLATION_START")return 1;return $=W,this.detectEnd(f+1,U,F),1})}addImplicitBracesAndParens(){let $=[],U=!1;this.scanTokens((F,W,f)=>{let[u]=F,A=f[W-1]||[],Y=f[W+1]||[],[_]=A,[Z]=Y,w=W,z=(H)=>W-w+H,X=()=>$[$.length-1],K=(H)=>H?.[2]?.ours,D=()=>K(X())&&X()?.[0]==="(",R=()=>K(X())&&X()?.[0]==="{",J=(H)=>{$.push(["(",H,{ours:!0}]),f.splice(H,0,p("CALL_START","("))},Q=()=>{$.pop(),f.splice(W,0,p("CALL_END",")")),W+=1},q=(H,P={})=>{$.push(["{",H,{sameLine:!0,startsLine:P.startsLine??!0,ours:!0}]);let E=p("{","{");if(!E.data)E.data={};E.data.generated=!0,f.splice(H,0,E)},O=(H)=>{H=H??W,$.pop(),f.splice(H,0,p("}","}")),W+=1};if((D()||R())&&Y3.has(u))return $.push(["CONTROL",W,{ours:!0}]),z(1);if(u==="INDENT"&&K(X())){if(_!=="=>"&&_!=="->"&&_!=="["&&_!=="("&&_!==","&&_!=="{"&&_!=="ELSE"&&_!=="=")while(D()||R()&&_!==":")if(D())Q();else O();if(X()?.[2]?.ours&&X()[0]==="CONTROL")$.pop();return $.push([u,W]),z(1)}if(s.has(u))return $.push([u,W]),z(1);if(d.has(u)){while(K(X()))if(D())Q();else if(R())O();else $.pop();$.pop()}if(b1.has(u)&&F.spaced&&(q1.has(Z)||Z==="..."&&q1.has(f[W+2]?.[0])||U3.has(Z)&&!Y.spaced&&!Y.newLine)&&!((u==="]"||u==="}")&&(Z==="->"||Z==="=>")))return J(W+1),z(2);if(b1.has(u)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return J(W+1),$.push(["INDENT",W+2]),z(3);if(u==="TERNARY")U=!0;if(u===":"){if(U)return U=!1,z(1);let H=d.has(this.tokens[W-1]?.[0])?$[$.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")H=W-2;let P=H<=0||_1.has(this.tokens[H-1]?.[0])||this.tokens[H-1]?.newLine;if(X()){let[E,B]=X(),S=$[$.length-2];if((E==="{"||E==="INDENT"&&S?.[0]==="{"&&!K(S))&&(P||this.tokens[H-1]?.[0]===","||this.tokens[H-1]?.[0]==="{"||this.tokens[H]?.[0]==="{"))return z(1)}return q(H,{startsLine:!!P}),z(2)}if(_1.has(u))for(let H=$.length-1;H>=0;H--){if(!K($[H]))break;if($[H][0]==="{")$[H][2].sameLine=!1}let M=_==="OUTDENT"||A.newLine,G=u==="||"||u==="&&",I=!1;if(G){let H=W+1,P=f[H]?.[0];if(P==="("||P==="["||P==="{"){for(let E=1;++H<f.length&&E>0;)if(P=f[H][0],P==="("||P==="["||P==="{")E++;else if(P===")"||P==="]"||P==="}")E--}else if(P&&P!=="TERMINATOR"&&P!=="OUTDENT"&&P!==",")H++;I=f[H]?.[0]===","}if(F3.has(u)&&!I||_2.has(u)&&M)while(K(X())){let[H,,{sameLine:P,startsLine:E}]=X();if(D()&&_!==",")Q();else if(R()&&!G&&P&&u!=="TERMINATOR"&&_!==":")O();else if(R()&&u==="TERMINATOR"&&_!==","&&!(E&&this.looksObjectish(W+1)))O();else if(X()?.[2]?.ours&&X()[0]==="CONTROL"&&f[X()[1]]?.[0]==="CLASS"&&u==="TERMINATOR")$.pop();else break}if(u===","&&!this.looksObjectish(W+1)&&R()&&(Z!=="TERMINATOR"||!this.looksObjectish(W+2))){let H=Z==="OUTDENT"?1:0;while(R())O(W+H)}return z(1)})}addImplicitCallCommas(){let $=0,U=0,F=this.tokens;while(U<F.length){let W=F[U][0],f=U>0?F[U-1][0]:null;if(W==="CALL_START"||W==="(")$++;if(W==="CALL_END"||W===")")$--;if($>0&&(W==="->"||W==="=>")&&W3.has(f))F.splice(U,0,p(",",",")),U++;U++}}scanTokens($){let U=0;while(U<this.tokens.length)U+=$.call(this,this.tokens[U],U,this.tokens)}detectEnd($,U,F,W={}){let f=0;while($<this.tokens.length){let u=this.tokens[$];if(f===0&&U.call(this,u,$))return F.call(this,u,$);if(s.has(u[0]))f++;if(d.has(u[0]))f--;if(f<0){if(W.returnOnNegativeLevel)return;return F.call(this,u,$)}$++}}closeMergeAssignments(){let $=this.tokens;for(let U=0;U<$.length;U++){if(!$[U].mergeClose)continue;let F=0;for(let W=U+1;W<$.length;W++){let f=$[W][0];if(f==="("||f==="["||f==="{"||f==="CALL_START"||f==="INDEX_START"||f==="INDENT")F++;if(f===")"||f==="]"||f==="}"||f==="CALL_END"||f==="INDEX_END"||f==="OUTDENT")F--;if(F<0||F===0&&f==="TERMINATOR"){$.splice(W,0,p("CALL_END",")",$[W-1]));break}if(W===$.length-1){$.splice(W+1,0,p("CALL_END",")",$[W]));break}}}}commaInImplicitCall($){let U=0;for(let F=$-1;F>=0;F--){let W=this.tokens[F][0];if(d.has(W)){U++;continue}if(s.has(W)){if(W==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(b1.has(W)&&this.tokens[F].spaced){let f=this.tokens[F+1]?.[0];return q1.has(f)||f==="..."&&q1.has(this.tokens[F+2]?.[0])}}return!1}commaInImplicitObject($){let U=0;for(let F=$-1;F>=0;F--){let W=this.tokens[F][0];if(d.has(W)){U++;continue}if(s.has(W)){if(U--,U<0)return!1;continue}if(U>0)continue;if(W===":"&&F>0&&this.tokens[F-1][0]==="PROPERTY")return this.looksObjectish($+1);if(_1.has(W))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(s.has(this.tokens[$]?.[0])){let U=null;if(this.detectEnd($+1,(F)=>d.has(F[0]),(F,W)=>U=W),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards($,U){let F=new Set(U),W=[];while($>=0){let f=this.tokens[$]?.[0];if(!W.length&&F.has(f))return!0;if(d.has(f))W.push(f);if(s.has(f)&&W.length)W.pop();if(!W.length&&(s.has(f)&&!this.tokens[$]?.generated||_1.has(f)))break;$--}return!1}makeIndentation($){let U=p("INDENT",2),F=p("OUTDENT",2);if($)U.generated=F.generated=!0,U.origin=F.origin=$;else U.explicit=F.explicit=!0;return[U,F]}}f2(r);var y3={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,OFFER:175,ACCEPT:176,RENDER:177,IMPORT:178,ImportDefaultSpecifier:179,ImportNamespaceSpecifier:180,ImportSpecifierList:181,ImportSpecifier:182,AS:183,DEFAULT:184,IMPORT_ALL:185,EXPORT:186,ExportSpecifierList:187,EXPORT_ALL:188,ExportSpecifier:189,UNARY:190,DO:191,DO_IIFE:192,UNARY_MATH:193,"-":194,"+":195,"?":196,DEFINED:197,PRESENCE:198,"--":199,"++":200,MATH:201,"**":202,SHIFT:203,COMPARE:204,"&":205,"^":206,"|":207,"||":208,"??":209,"&&":210,"!?":211,PIPE:212,RELATION:213,TERNARY:214,COMPOUND_ASSIGN:215},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:"OFFER",176:"ACCEPT",177:"RENDER",178:"IMPORT",183:"AS",184:"DEFAULT",185:"IMPORT_ALL",186:"EXPORT",188:"EXPORT_ALL",190:"UNARY",191:"DO",192:"DO_IIFE",193:"UNARY_MATH",194:"-",195:"+",196:"?",197:"DEFINED",198:"PRESENCE",199:"--",200:"++",201:"MATH",202:"**",203:"SHIFT",204:"COMPARE",205:"&",206:"^",207:"|",208:"||",209:"??",210:"&&",211:"!?",212:"PIPE",213:"RELATION",214:"TERNARY",215:"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,5,1,8,4,1,1,1,1,1,4,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,34,1,6,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,56,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,134,105,106,-13,-13,-13,-13,137,138,139,-13,140,-13,-13,-13,-13,-13,-13,-13,135,-13,141,-13,-13,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,132,133,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,142,143,144,-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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,27,1,6,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,59,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,27,1,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,149,-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,54,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,27,1,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,-36,54,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,27,1,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,-37,54,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,27,1,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,-38,54,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,27,1,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,-39,54,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,27,1,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,-40,54,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,27,1,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,-41,54,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,27,1,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,-42,54,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,27,1,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,-43,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,150,-173,-173,151,152,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,5,1,8,4,1,1,1,1,1,4,1,161,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,162,102,103,160,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,5,1,8,4,1,1,1,1,1,4,1,163,164,165,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,5,1,8,4,1,1,1,1,1,4,1,166,167,165,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,5,1,8,4,1,1,1,1,1,4,1,168,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,174,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,175,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,176,165,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,177,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,55,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,178,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,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,55,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,182,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,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,27,1,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,-86,183,184,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,185,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,5,1,8,4,1,1,1,1,1,4,1,187,186,165,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,188,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,189,-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,27,1,6,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,162,190,2,66,10,162,191,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,27,1,6,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,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,195,154,104,156,157,155,99,192,193,83,158,197,194,196,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,5,1,8,4,1,1,1,1,1,4,1,198,165,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,199,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,22,2,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,179,180,181,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-305,162,-305,102,103,-305,200,202,72,73,93,-305,99,-305,-305,-305,-305,-305,83,-305,87,-305,84,85,-305,-305,169,-305,170,90,91,86,88,89,82,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,201,173,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,1,66,203,2,66,10,162,204,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,5,1,8,4,1,1,1,1,1,4,1,205,165,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,206,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,207,165,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,208,-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,169,-224,170,90,91,86,88,89,82,-224,69,64,65,209,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,171,172,173,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,210,104,2,55,1,211,104,6,15,19,89,2,1,1,213,212,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,5,1,8,4,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,214,165,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,215,-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,169,-221,170,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,171,172,173,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,90,1,5,216,220,104,105,106,219,217,218,221,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,12,4,4,179,180,228,229,230,231,223,224,225,226,234,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,227,104,105,106,102,103,53,235,72,73,93,222,83,87,84,85,66,169,170,90,91,86,88,89,82,61,67,62,232,233,173,59,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,27,1,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,-87,59,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,27,1,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,-88,54,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,27,1,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,-44,54,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,27,1,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,-45,54,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,27,1,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,-46,54,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,27,1,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,-47,54,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,27,1,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,-48,54,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,27,1,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,-49,54,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,27,1,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,-50,54,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,27,1,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,-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,5,1,8,4,1,1,1,1,1,4,1,236,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,237,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,5,1,8,4,1,1,1,1,1,4,1,238,247,165,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,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,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,251,252,250,141,2,109,11,253,141,54,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,27,1,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,-205,56,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,254,255,-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,-206,1,83,256,1,83,257,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,5,1,8,4,1,1,1,1,1,4,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,5,1,8,4,1,1,1,1,1,4,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,63,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,24,1,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,-89,63,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,24,1,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,-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,5,1,8,4,1,1,1,1,1,4,1,258,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,259,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,260,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,261,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,263,165,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,262,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,264,-109,265,270,274,266,267,268,275,54,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,27,1,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,-52,54,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,27,1,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,54,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,27,1,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,-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,55,179,180,181,34,35,36,276,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,235,72,73,93,99,83,87,84,85,169,170,90,91,86,88,89,82,173,65,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,13,11,1,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,-54,57,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,27,1,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,-56,6,54,5,1,1,2,1,280,105,106,277,278,279,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,5,1,8,4,1,1,1,1,1,4,1,-5,281,-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,5,1,8,4,1,1,1,1,1,4,1,282,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,283,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,284,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,285,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,286,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,287,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,288,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,289,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,290,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,293,165,291,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,292,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,296,165,294,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,295,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,299,165,297,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,298,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,300,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,301,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,302,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,303,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,304,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,305,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,309,154,104,156,157,155,99,306,307,83,158,197,308,196,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,5,1,8,4,1,1,1,1,1,4,1,310,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,311,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,27,1,6,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,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,55,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,27,1,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,-187,55,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,27,1,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,-188,2,109,11,312,141,2,57,1,313,255,2,57,1,314,255,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,5,1,8,4,1,1,1,1,1,4,1,315,165,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,320,77,78,79,80,81,100,101,92,104,105,106,316,102,103,318,53,52,72,73,93,317,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,85,323,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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,324,42,43,90,91,248,325,86,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,329,255,2,57,1,330,255,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,5,1,8,4,1,1,1,1,1,4,1,331,165,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,332,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,334,333,165,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,335,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,337,336,165,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,338,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,340,339,165,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,341,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,343,342,165,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,344,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,346,345,165,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,347,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,348,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,351,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,154,104,-181,-181,-181,156,157,155,99,159,158,-181,-181,352,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,254,255,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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,244,102,103,245,53,52,72,73,93,99,59,83,239,87,249,84,85,240,241,243,246,242,66,42,43,90,91,248,86,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,54,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,27,1,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,-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,5,1,8,4,1,1,1,1,1,4,1,354,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,353,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,27,1,6,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,-373,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,9,1,5,59,1,1,5,32,18,16,-370,-370,-370,-370,-370,-370,-370,-370,-370,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,27,1,6,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,-374,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,9,1,5,59,1,1,5,32,18,16,-371,-371,-371,-371,-371,-371,-371,-371,-371,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,27,1,6,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,125,126,-375,-375,-375,-375,-375,-375,-375,-375,-375,111,-375,-375,-375,-375,-375,-375,118,-375,120,-375,-375,-375,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,355,-173,-173,151,152,2,66,10,162,160,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,5,1,8,4,1,1,1,1,1,4,1,163,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,166,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,5,15,108,2,1,1,213,169,170,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,27,1,6,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,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,111,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,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,27,1,6,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,111,-377,-377,-377,-377,-377,-377,118,-377,120,-377,-377,-377,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,27,1,6,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,125,126,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,118,-381,120,-381,-381,-381,2,81,8,356,99,59,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-86,-86,-383,-383,-383,-383,-86,-86,-86,-86,-86,-86,-86,-86,-383,-86,-383,-383,-383,-383,-383,-383,-383,-383,-86,-383,-383,-86,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-86,-86,-86,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,10,54,5,1,23,1,1,3,21,11,11,134,105,106,137,138,139,140,135,141,136,3,83,1,1,142,143,144,54,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,27,1,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,-35,59,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-86,-86,-384,-384,-384,-384,-86,-86,-86,-86,-86,-86,-86,-86,-384,-86,-384,-384,-384,-384,-384,-384,-384,-384,-86,-384,-384,-86,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-86,-86,-86,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,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,27,1,6,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,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,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,27,1,6,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,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,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,5,1,8,4,1,1,1,1,1,4,1,359,357,165,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,358,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,360,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,162,361,362,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,27,1,6,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,363,364,365,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,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,27,1,6,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,4,94,69,2,2,367,366,368,369,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,370,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,371,159,158,197,196,3,66,10,88,162,372,373,5,72,22,69,2,2,374,-303,-303,-303,-303,6,72,1,21,69,2,2,-301,375,-301,-301,-301,-301,23,66,26,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,376,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,377,378,379,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,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,5,1,8,4,1,1,1,1,1,4,1,380,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,61,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,24,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-86,-86,-309,162,-309,-309,-86,-86,-86,381,-86,-86,-86,-86,-86,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-86,-309,-309,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,382,-309,-309,-86,-86,-86,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,107,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,1,1,8,4,1,1,1,1,1,4,1,385,386,387,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,383,384,388,389,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,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,27,1,6,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,390,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,27,1,6,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,391,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,5,1,8,4,1,1,1,1,1,4,1,392,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,66,10,44,162,394,393,2,66,10,162,395,9,1,5,59,1,1,5,32,18,16,-372,-372,-372,-372,-372,-372,-372,-372,-372,54,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,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,27,1,6,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,396,99,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,2,72,70,398,397,1,142,399,7,55,1,10,30,85,1,2,404,104,403,400,401,402,405,2,72,70,-340,-340,1,183,406,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,78,3,2,-109,269,100,101,411,104,272,255,105,106,410,-109,-109,273,264,407,265,270,274,266,267,268,275,412,408,409,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,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,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,63,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,24,1,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,413,-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,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,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,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,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,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,5,1,8,4,1,1,1,1,1,4,1,414,165,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,415,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,142,416,58,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,27,1,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,146,147,148,149,-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,59,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,27,1,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,-86,2,6,132,107,417,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,5,1,8,4,1,1,1,1,1,4,1,418,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,322,419,321,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,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,27,1,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,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,245,53,52,72,73,93,99,59,83,420,87,249,84,85,422,421,66,42,43,90,91,248,86,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,424,425,-217,-217,423,-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,5,1,8,4,1,1,1,1,1,4,1,426,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,428,427,243,246,242,66,42,43,90,91,248,86,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,5,1,8,4,1,1,1,1,1,4,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,5,1,8,4,1,1,1,1,1,4,1,-202,429,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,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,27,1,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,-190,2,57,1,430,255,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,5,1,8,4,1,1,1,1,1,4,1,431,165,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,432,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,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,27,1,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,-191,63,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,24,1,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,-207,63,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,24,1,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,-55,2,57,1,433,255,2,57,1,434,255,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,435,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,436,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,127,-256,-256,437,-256,-256,-256,-256,-256,-256,-256,-256,125,126,96,97,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,127,-258,-258,438,-258,-258,-258,-258,-258,-258,-258,-258,125,126,96,97,-258,-258,-258,-258,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,162,-265,-265,439,-265,-265,127,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,125,126,96,97,-265,-265,-265,-265,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,440,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,442,441,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,443,-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,5,1,8,4,1,1,1,1,1,4,1,444,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,57,1,45,254,255,445,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,449,451,450,271,104,272,255,448,273,99,446,87,447,452,453,86,82,55,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,454,-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,6,54,5,1,2,1,1,280,105,106,455,456,279,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,5,1,8,4,1,1,1,1,1,4,1,457,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,459,458,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,27,1,6,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,-387,-387,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,27,1,6,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,-388,-388,110,111,-388,-388,-388,-388,-388,-388,118,-388,120,-388,-388,-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,27,1,6,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,-389,-389,-389,111,-389,-389,-389,-389,-389,-389,118,-389,120,-389,-389,-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,27,1,6,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,-390,-390,-390,111,-390,-390,-390,-390,-390,-390,118,-390,120,-390,-390,-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,27,1,6,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,-391,-391,-391,-391,-391,-391,118,-391,120,-391,-391,-391,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,27,1,6,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,125,126,-392,-392,-392,-392,-392,-392,109,108,110,111,112,-392,-392,-392,-392,-392,118,-392,120,-392,122,-392,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,27,1,6,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,125,126,-393,-393,-393,-393,-393,-393,109,108,110,111,112,113,-393,-393,-393,-393,118,-393,120,-393,122,-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,27,1,6,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,125,126,-394,-394,-394,-394,-394,-394,109,108,110,111,112,113,114,-394,-394,-394,118,-394,120,-394,122,-394,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,27,1,6,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,125,126,-395,-395,-395,-395,-395,-395,109,108,110,111,112,113,114,115,-395,-395,118,-395,120,-395,122,-395,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,27,1,6,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,27,1,6,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,27,1,6,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,113,114,115,116,-403,118,119,120,-403,122,-403,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,27,1,6,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,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,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,27,1,6,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,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,127,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,124,125,126,96,97,-404,-404,-404,-404,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,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,27,1,6,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,-402,118,-402,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,127,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,124,125,126,96,97,-405,-405,-405,-405,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,27,1,6,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,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,-406,122,-406,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,27,1,6,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,-407,-407,-407,-407,-407,118,-407,120,-407,-407,-407,23,91,1,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,460,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,27,1,6,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,461,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,127,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,124,125,126,96,97,-240,-240,-240,-240,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,463,462,464,465,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,466,159,158,197,196,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,467,159,158,197,196,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,27,1,6,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,-299,-299,-299,-299,468,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,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,27,1,6,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,27,1,6,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,55,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,27,1,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,-189,63,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,24,1,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,-91,63,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,24,1,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,-92,26,86,6,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,469,127,322,470,321,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,5,1,8,4,1,1,1,1,1,4,1,471,165,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,472,99,59,83,87,322,84,85,319,321,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,86,473,1,86,474,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,5,1,8,4,1,1,1,1,1,4,1,475,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,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,27,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,476,-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,-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,5,1,8,4,1,1,1,1,1,4,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,5,1,8,4,1,1,1,1,1,4,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,5,1,8,4,1,1,1,1,1,4,1,477,165,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,478,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,55,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,27,1,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,-192,8,6,60,1,5,23,1,8,18,-217,-217,-217,480,479,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,481,86,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,34,1,6,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,63,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,24,1,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,-100,63,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,24,1,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,-101,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,482,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,5,1,8,4,1,1,1,1,1,4,1,483,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,484,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,485,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,486,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,487,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,488,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,489,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,490,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,491,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,492,90,91,17,6,49,1,10,1,13,1,1,7,7,7,1,1,1,16,6,1,-218,154,104,-218,-218,156,157,155,99,-218,159,-218,158,153,-218,493,152,2,6,60,494,495,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,5,1,8,4,1,1,1,1,1,4,1,496,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,57,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,27,1,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,-213,2,6,61,107,497,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,349,350,-217,-217,-217,498,1,67,499,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,125,126,-409,-409,-409,-409,-409,-409,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,5,1,8,4,1,1,1,1,1,4,1,500,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,501,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,502,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,503,-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,162,504,6,55,1,10,10,5,8,505,104,162,507,506,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,5,1,8,4,1,1,1,1,1,4,1,508,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,509,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,510,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,511,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,512,1,165,513,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,27,1,6,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,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,5,1,8,4,1,1,1,1,1,4,1,514,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,154,104,156,157,155,99,159,158,197,515,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,5,1,8,4,1,1,1,1,1,4,1,516,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,155,1,1,517,378,379,4,67,78,11,1,518,519,520,379,3,67,78,12,-252,-252,-252,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,5,1,8,4,1,1,1,1,1,4,1,522,165,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,169,170,90,91,521,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,162,-307,-307,523,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,125,126,-307,-307,-307,-307,-307,-307,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,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,5,1,8,4,1,1,1,1,1,4,1,524,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,2,6,61,526,525,2,6,61,-315,-315,24,6,61,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,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,-319,-319,7,6,61,81,1,9,1,1,-320,-320,128,129,130,96,97,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,5,1,8,4,1,1,1,1,1,4,1,527,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,56,528,1,67,529,1,67,530,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,27,1,6,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,154,104,-173,-173,-173,156,157,155,99,159,158,153,531,-173,-173,151,152,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,27,1,6,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,27,1,6,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,1,67,532,3,54,5,1,533,105,106,3,89,91,5,535,534,221,3,54,5,1,536,105,106,1,142,537,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,538,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,6,55,1,10,115,1,2,404,104,403,540,402,405,6,6,60,1,5,24,87,-336,-336,-336,-336,-336,541,6,6,60,1,5,24,87,-338,-338,-338,-338,-338,542,2,55,1,543,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,544,-342,-342,-342,-342,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,545,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,6,55,1,10,118,3,2,548,104,410,412,547,409,12,6,60,1,5,1,10,1,1,6,5,24,63,-365,-365,-365,-365,-120,-120,-120,-120,-120,-365,-120,549,6,6,60,1,5,24,87,-368,-368,-368,-368,-368,550,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,5,1,8,4,1,1,1,1,1,4,1,552,551,165,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,553,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,127,-355,-355,-355,-355,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,554,99,3,54,5,1,555,105,106,54,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,27,1,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,-215,2,6,61,107,556,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,5,1,8,4,1,1,1,1,1,4,1,557,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,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,27,1,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,-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,5,1,8,4,1,1,1,1,1,4,1,426,-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,559,558,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,5,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,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,245,53,52,72,73,93,99,59,-218,83,-218,87,249,84,85,561,560,246,242,66,-218,42,43,90,91,248,86,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,562,-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,5,1,8,4,1,1,1,1,1,4,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,424,425,-217,-217,563,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,245,53,52,72,73,93,99,59,83,87,249,84,85,422,421,66,42,43,90,91,248,86,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,34,1,6,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,54,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,27,1,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,-208,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,564,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,5,1,8,4,1,1,1,1,1,4,1,565,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,54,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,27,1,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,-211,54,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,27,1,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,-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,27,1,6,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,27,1,6,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,566,-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,5,1,8,4,1,1,1,1,1,4,1,567,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,568,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,5,1,8,4,1,1,1,1,1,4,1,569,165,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,570,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,30,572,573,571,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,269,100,101,271,104,272,255,105,106,-218,-218,273,575,-218,574,274,266,267,-218,268,275,-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,5,1,8,4,1,1,1,1,1,4,1,576,165,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,577,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,92,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,578,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,5,1,8,4,1,1,1,1,1,4,1,579,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,580,141,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,582,583,584,-128,581,141,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,251,252,585,141,2,109,11,586,141,54,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,27,1,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,-65,57,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,27,1,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,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,587,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,5,1,8,4,1,1,1,1,1,4,1,588,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,5,1,8,4,1,1,1,1,1,4,1,589,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,591,165,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,590,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,592,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,593,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,594,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,595,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,596,1,165,597,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,5,1,8,4,1,1,1,1,1,4,1,598,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,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,24,1,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,-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,5,1,8,4,1,1,1,1,1,4,1,599,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,600,127,322,470,321,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,601,63,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,24,1,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,-95,63,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,24,1,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,-97,24,67,19,6,56,1,9,1,1,34,1,6,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,5,1,8,4,1,1,1,1,1,4,1,602,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,86,6,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,603,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,5,1,8,4,1,1,1,1,1,4,1,604,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,3,6,60,56,606,607,605,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,5,1,8,4,1,1,1,1,1,4,1,-218,328,247,165,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,249,84,85,608,66,-218,42,43,90,91,248,86,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,480,609,-217,-217,-217,63,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,24,1,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,-102,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,610,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,27,1,6,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,611,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,27,1,6,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,612,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,27,1,6,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,27,1,6,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,34,1,6,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,615,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,162,102,103,614,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,154,104,156,157,155,99,159,158,153,616,152,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,154,104,-173,-173,-173,156,157,155,99,159,158,153,617,-173,-173,151,152,28,6,60,1,5,20,30,2,24,1,9,1,1,34,1,6,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,57,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,27,1,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,-214,3,125,1,1,618,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,27,1,6,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,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,619,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,125,126,-411,-411,-411,-411,-411,-411,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,620,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,162,621,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,27,1,6,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,2,66,10,162,622,2,66,10,162,623,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,27,1,6,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,-247,26,66,10,16,5,51,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,624,127,625,124,125,126,96,97,626,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,627,127,628,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,629,127,630,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,631,127,632,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,5,1,8,4,1,1,1,1,1,4,1,633,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,634,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,635,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,-304,-304,-304,-304,27,72,20,2,54,1,9,1,1,3,2,2,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,127,-302,124,125,126,96,97,-302,-302,-302,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,636,637,520,379,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,27,1,6,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,2,66,10,162,638,3,67,78,12,-253,-253,-253,3,66,6,4,162,640,639,24,66,6,20,56,1,9,1,1,34,1,6,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,162,-311,-311,641,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,125,126,-311,-311,-311,-311,-311,-311,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,108,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,1,1,8,4,1,1,1,1,1,4,1,-317,385,386,387,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,-317,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,642,388,389,63,70,71,44,45,68,46,47,48,50,51,24,6,61,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,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,-322,-322,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,27,1,6,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,27,1,6,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,349,350,-217,-217,643,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,27,1,6,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,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,1,142,644,6,55,1,10,115,1,2,404,104,403,645,402,405,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,54,5,1,646,105,106,3,6,60,30,648,649,647,10,6,49,1,10,1,29,8,18,60,2,-218,404,104,-218,-218,-218,-218,-218,650,405,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,651,-217,-217,-217,2,55,1,652,104,2,55,1,653,104,1,142,-341,3,54,5,1,654,105,106,3,6,60,30,656,657,655,10,6,49,1,10,1,29,8,18,62,5,-218,548,104,-218,-218,-218,-218,-218,412,658,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,659,-217,-217,-217,6,6,60,1,5,24,87,-365,-365,-365,-365,-365,549,3,55,1,128,660,104,661,2,55,1,662,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,-348,127,-348,-348,-348,-348,125,126,-348,-348,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,5,1,8,4,1,1,1,1,1,4,1,663,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,664,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,665,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,1,138,666,23,92,12,44,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,667,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,59,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,27,1,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,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,244,102,103,245,53,52,72,73,93,99,59,83,87,249,84,85,428,668,243,246,242,66,42,43,90,91,248,86,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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,245,53,52,72,73,93,99,59,83,-153,87,249,84,85,422,421,66,42,43,90,91,248,86,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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,245,53,52,72,73,93,99,59,83,87,249,84,85,428,669,246,242,66,42,43,90,91,248,86,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,559,670,54,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,27,1,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,-209,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,671,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,162,672,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,125,126,-257,-257,-257,-257,-257,-257,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,27,1,6,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,125,126,-259,-259,-259,-259,-259,-259,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,673,-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,5,1,8,4,1,1,1,1,1,4,1,674,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,59,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,27,1,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,-108,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,269,100,101,271,104,272,255,105,106,273,575,675,274,266,267,268,275,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,269,100,101,271,104,272,255,105,106,-109,-109,-109,273,575,-109,676,270,274,266,267,268,275,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,677,-114,27,6,60,1,5,20,4,52,1,9,1,1,34,1,6,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,5,1,8,4,1,1,1,1,1,4,1,678,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,127,679,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,680,255,2,57,1,681,255,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,5,1,8,4,1,1,1,1,1,4,1,682,165,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,683,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,684,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,27,1,6,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,125,126,-408,-408,-408,-408,-408,-408,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,5,1,8,4,1,1,1,1,1,4,1,685,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,-238,125,126,96,97,-238,-238,-238,-238,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,686,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,687,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,688,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,689,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,690,-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,5,1,8,4,1,1,1,1,1,4,1,691,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,692,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,125,126,-300,-300,-300,-300,-300,-300,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,34,1,6,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,693,1,86,694,23,86,6,56,1,9,1,1,34,1,6,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,63,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,24,1,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,-98,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,695,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,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,27,1,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,-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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,249,84,85,696,66,42,43,90,91,248,86,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,5,1,8,4,1,1,1,1,1,4,1,328,247,165,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,327,102,103,53,52,72,73,93,99,59,83,87,249,84,85,326,66,42,43,90,91,248,697,86,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,606,607,698,1,86,699,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,27,1,6,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,27,1,6,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,27,1,6,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,54,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,27,1,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,-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,349,700,-217,-217,-217,2,66,10,162,614,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,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,27,1,6,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,27,1,6,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,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,27,1,6,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,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,27,1,6,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,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,701,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,702,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,5,1,8,4,1,1,1,1,1,4,1,703,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,5,1,8,4,1,1,1,1,1,4,1,704,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,5,1,8,4,1,1,1,1,1,4,1,705,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,706,127,707,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,708,127,709,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,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,27,1,6,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,2,66,10,162,710,1,67,711,4,6,61,78,12,712,-254,-254,-254,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,5,1,8,4,1,1,1,1,1,4,1,713,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,2,6,61,-316,-316,2,66,10,162,714,3,54,5,1,715,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,716,-217,-217,-217,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,142,717,4,55,1,126,2,404,104,718,405,6,55,1,10,115,1,2,404,104,403,719,402,405,5,6,60,1,5,24,-332,-332,-332,-332,-332,3,6,60,1,648,649,720,5,6,60,1,5,24,-337,-337,-337,-337,-337,5,6,60,1,5,24,-339,-339,-339,-339,-339,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,721,-343,-343,-343,-343,4,55,1,128,5,548,104,412,722,6,55,1,10,118,3,2,548,104,410,412,723,409,5,6,60,1,5,24,-361,-361,-361,-361,-361,3,6,60,1,656,657,724,5,6,60,1,5,24,-366,-366,-366,-366,-366,5,6,60,1,5,24,-367,-367,-367,-367,-367,5,6,60,1,5,24,-369,-369,-369,-369,-369,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,-349,127,-349,-349,-349,-349,125,126,-349,-349,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,725,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,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,54,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,27,1,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,-216,54,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,27,1,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,-160,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,424,425,-217,-217,726,-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,727,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,27,1,6,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,309,154,104,156,157,155,99,728,729,83,158,197,308,196,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,730,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,442,731,-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,5,1,8,4,1,1,1,1,1,4,1,732,165,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,570,102,103,53,52,72,73,93,99,59,83,87,84,85,66,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,733,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,734,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,5,1,8,4,1,1,1,1,1,4,1,735,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,65,736,23,67,25,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,737,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,5,1,8,4,1,1,1,1,1,4,1,738,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,739,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,740,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,741,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,742,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,743,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,744,-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,63,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,24,1,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,-94,63,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,24,1,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,-96,1,86,745,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,480,746,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,63,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,24,1,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,-103,3,6,60,1,494,495,747,25,66,10,16,56,1,9,1,1,4,30,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,748,127,124,125,126,96,97,749,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,750,127,751,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,752,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,753,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,754,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,27,1,6,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,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,5,1,8,4,1,1,1,1,1,4,1,755,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,5,1,8,4,1,1,1,1,1,4,1,756,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,67,757,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,3,67,78,12,-255,-255,-255,24,66,6,20,56,1,9,1,1,34,1,6,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,27,1,6,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,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,3,6,60,30,648,649,758,3,54,5,1,759,105,106,5,6,60,1,5,24,-333,-333,-333,-333,-333,8,6,60,1,5,23,1,8,18,-217,-217,-217,539,760,-217,-217,-217,5,6,60,1,5,24,-334,-334,-334,-334,-334,3,54,5,1,761,105,106,5,6,60,1,5,24,-362,-362,-362,-362,-362,8,6,60,1,5,23,1,8,18,-217,-217,-217,546,762,-217,-217,-217,5,6,60,1,5,24,-363,-363,-363,-363,-363,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,2,66,1,559,763,54,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,27,1,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,-210,4,94,69,2,2,764,462,464,465,11,55,1,24,1,1,7,4,10,2,24,39,154,104,156,157,155,99,765,159,158,197,196,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,572,573,766,27,6,60,1,5,20,4,52,1,9,1,1,34,1,6,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,767,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,27,1,6,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,768,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,769,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-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,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,27,1,6,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,125,126,-298,-298,-298,-298,-298,-298,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,5,1,8,4,1,1,1,1,1,4,1,770,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,771,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,63,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,24,1,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,-99,3,6,60,1,606,607,772,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,27,1,6,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,5,1,8,4,1,1,1,1,1,4,1,773,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,5,1,8,4,1,1,1,1,1,4,1,774,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,27,1,6,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,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,27,1,6,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,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,775,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,776,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,27,1,6,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,1,142,777,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,3,6,60,1,648,649,778,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,3,6,60,1,656,657,779,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,5,1,8,4,1,1,1,1,1,4,1,780,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,94,781,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,782,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,5,1,8,4,1,1,1,1,1,4,1,783,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,5,1,8,4,1,1,1,1,1,4,1,784,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-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,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,785,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,34,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,162,786,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,27,1,6,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,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,27,1,6,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,3,54,5,1,787,105,106,5,6,60,1,5,24,-335,-335,-335,-335,-335,5,6,60,1,5,24,-364,-364,-364,-364,-364,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,790,-289,-289,-289,-289,788,-289,789,-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,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,5,1,8,4,1,1,1,1,1,4,1,791,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,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,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-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,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,27,1,6,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,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,27,1,6,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,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,1,96,792,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,5,1,8,4,1,1,1,1,1,4,1,793,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,790,-291,-291,-291,-291,794,-291,795,-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,59,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,27,1,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,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,790,-290,-290,-290,-290,796,-290,-290,-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,1,96,797,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,5,1,8,4,1,1,1,1,1,4,1,798,165,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,169,170,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,171,172,173,46,47,48,50,51,1,96,799,59,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,27,1,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,-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,27,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,790,-292,-292,-292,-292,800,-292,-292,-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,59,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,27,1,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,-105,1,96,801,59,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,27,1,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,-107],U=[],F=0,W,f,u,A;while(F<$.length){W=$[F++],f={},u=0,A=[];while(W--)u+=$[F++],A.push(u);for(u of A)f[u]=$[F++];U.push(f)}return U})(),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,5,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,174,2,174,2,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,181,1,181,3,181,4,181,4,181,6,182,1,182,3,182,1,182,3,179,1,180,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,187,1,187,3,187,4,187,4,187,6,189,1,189,3,189,3,189,1,189,3,35,2,35,2,35,2,16,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:($,U,F,W)=>{let f=U,u=U.length-1;switch($){case 1:return["program"];case 2:return["program",...f[u]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 252:case 303:case 315:case 331:case 360:return[f[u]];case 4:case 111:case 175:case 195:case 204:case 316:case 332:case 361:return[...f[u-2],f[u]];case 5:case 60:case 157:case 317:return f[u-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 263:case 301:case 318:case 319:case 320:case 336:case 338:case 340:case 365:case 368:return f[u];case 47:return"undefined";case 48:return"null";case 57:return["str",...f[u-1]];case 59:case 151:case 155:case 253:return[...f[u-1],f[u]];case 61:case 193:case 197:case 334:case 363:return f[u-2];case 62:return"";case 65:return["regex",f[u-1]];case 66:return["regex-index",f[u-2],f[u]];case 67:return["regex-index",f[u],null];case 68:return["=",f[u-2],f[u]];case 69:return["=",f[u-3],f[u]];case 70:return["=",f[u-4],f[u-1]];case 71:return["state",f[u-2],f[u]];case 72:return["state",f[u-3],f[u]];case 73:return["state",f[u-4],f[u-1]];case 74:case 76:return["computed",f[u-2],f[u]];case 75:return["computed",f[u-3],f[u]];case 77:return["readonly",f[u-2],f[u]];case 78:return["readonly",f[u-3],f[u]];case 79:return["readonly",f[u-4],f[u-1]];case 80:case 82:return["effect",f[u-2],f[u]];case 81:return["effect",f[u-3],f[u]];case 83:case 84:case 85:return["effect",null,f[u]];case 91:case 100:case 138:return[".",f[u-2],f[u]];case 92:case 101:case 139:return["?.",f[u-2],f[u]];case 93:case 95:case 102:case 140:return["[]",f[u-3],f[u-1]];case 94:case 96:case 103:case 141:return["[]",f[u-5],f[u-2]];case 97:return[f[u-1][0],f[u-3],...f[u-1].slice(1)];case 98:return["optindex",f[u-4],f[u-1]];case 99:return["optindex",f[u-6],f[u-2]];case 104:return["object-comprehension",f[u-8],f[u-6],[["for-of",f[u-4],f[u-2],!1]],[]];case 105:return["object-comprehension",f[u-10],f[u-8],[["for-of",f[u-6],f[u-4],!1]],[f[u-2]]];case 106:return["object-comprehension",f[u-9],f[u-7],[["for-of",f[u-4],f[u-2],!0]],[]];case 107:return["object-comprehension",f[u-11],f[u-9],[["for-of",f[u-6],f[u-4],!0]],[f[u-2]]];case 108:return["object",...f[u-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 333:case 362:return[...f[u-3],f[u]];case 113:case 177:case 198:case 335:case 364:return[...f[u-5],...f[u-2]];case 114:return[f[u],f[u],null];case 116:return[f[u-2],f[u],":"];case 117:return[f[u-4],f[u-1],":"];case 118:return[f[u-2],f[u],"="];case 119:return[f[u-4],f[u-1],"="];case 124:return["dynamicKey",f[u-1]];case 125:return["[]","this",f[u-1]];case 127:case 128:case 186:return["...",f[u]];case 134:case 190:return["super",...f[u]];case 135:case 136:case 137:case 188:case 191:return[f[u-1],...f[u]];case 142:return["array"];case 143:return["array",...f[u-1]];case 144:return["array",...f[u-2],...f[u-1]];case 146:return[...f[u-2],...f[u]];case 147:return[...f[u-3],...f[u]];case 148:return[...f[u-2],...f[u-1]];case 149:return[...f[u-5],...f[u-4],...f[u-2],...f[u-1]];case 153:return[...f[u]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[f[u-2],f[u-3],f[u-1]];case 161:case 389:case 391:case 392:case 407:case 409:return[f[u-1],f[u-2],f[u]];case 162:return[f[u],f[u-1],null];case 163:return[f[u-1],null,f[u]];case 164:return[f[u],null,null];case 165:return["def",f[u-4],f[u-2],f[u]];case 166:return["def",f[u-1],[],f[u]];case 167:case 169:return[f[u-1],f[u-3],f[u]];case 168:case 170:return[f[u-1],[],f[u]];case 179:case 302:return["default",f[u-2],f[u]];case 180:return["rest",f[u]];case 181:return["expansion"];case 187:return["tagged-template",f[u-1],f[u]];case 189:return["optcall",f[u-2],...f[u]];case 205:case 206:return"this";case 207:return[".","this",f[u]];case 208:return[".","super",f[u]];case 209:return["[]","super",f[u-1]];case 210:return["[]","super",f[u-2]];case 211:return[".","new",f[u]];case 212:return[".","import",f[u]];case 213:return["block"];case 214:return["block",...f[u-1]];case 215:return f[u-1].length===1?f[u-1][0]:["block",...f[u-1]];case 216:return f[u-2].length===1?f[u-2][0]:["block",...f[u-2]];case 219:return["return",f[u]];case 220:return["return",f[u-1]];case 221:return["return"];case 222:return["throw",f[u]];case 223:return["throw",f[u-1]];case 224:return["yield"];case 225:return["yield",f[u]];case 226:return["yield",f[u-1]];case 227:return["yield-from",f[u]];case 228:return["if",f[u-1],f[u]];case 229:return f[u-4].length===3?["if",f[u-4][1],f[u-4][2],["if",f[u-1],f[u]]]:[...f[u-4],["if",f[u-1],f[u]]];case 230:return["if",["!",f[u-1]],f[u]];case 231:return["if",["!",f[u-3]],f[u-2],f[u]];case 233:return f[u-2].length===3?["if",f[u-2][1],f[u-2][2],f[u]]:[...f[u-2],f[u]];case 235:case 236:return["if",f[u],[f[u-2]]];case 237:return["?:",f[u-4],f[u-6],f[u-1]];case 238:return["?:",f[u-2],f[u-4],f[u]];case 239:case 240:return["if",["!",f[u]],[f[u-2]]];case 241:return["try",f[u]];case 242:return["try",f[u-1],f[u]];case 243:return["try",f[u-2],f[u]];case 244:return["try",f[u-3],f[u-2],f[u]];case 245:case 246:case 370:case 373:case 375:return[f[u-1],f[u]];case 247:return[null,f[u]];case 248:return["switch",f[u-3],f[u-1],null];case 249:return["switch",f[u-5],f[u-3],f[u-1]];case 250:return["switch",null,f[u-1],null];case 251:return["switch",null,f[u-3],f[u-1]];case 254:return["when",f[u-1],f[u]];case 255:return["when",f[u-2],f[u-1]];case 256:return["while",f[u]];case 257:return["while",f[u-2],f[u]];case 258:return["while",["!",f[u]]];case 259:return["while",["!",f[u-2]],f[u]];case 260:return f[u-1].length===2?[f[u-1][0],f[u-1][1],f[u]]:[f[u-1][0],f[u-1][1],f[u-1][2],f[u]];case 261:case 262:return f[u].length===2?[f[u][0],f[u][1],[f[u-1]]]:[f[u][0],f[u][1],f[u][2],[f[u-1]]];case 264:return["loop",f[u]];case 265:return["loop",[f[u]]];case 266:return["loop-n",f[u-1],f[u]];case 267:return["for-in",f[u-3],f[u-1],null,null,f[u]];case 268:return["for-in",f[u-5],f[u-3],null,f[u-1],f[u]];case 269:return["for-in",f[u-5],f[u-3],f[u-1],null,f[u]];case 270:return["for-in",f[u-7],f[u-5],f[u-1],f[u-3],f[u]];case 271:return["for-in",f[u-7],f[u-5],f[u-3],f[u-1],f[u]];case 272:return["for-of",f[u-3],f[u-1],!1,null,f[u]];case 273:return["for-of",f[u-5],f[u-3],!1,f[u-1],f[u]];case 274:return["for-of",f[u-3],f[u-1],!0,null,f[u]];case 275:return["for-of",f[u-5],f[u-3],!0,f[u-1],f[u]];case 276:return["for-as",f[u-3],f[u-1],!1,null,f[u]];case 277:return["for-as",f[u-5],f[u-3],!1,f[u-1],f[u]];case 278:case 280:return["for-as",f[u-3],f[u-1],!0,null,f[u]];case 279:case 281:return["for-as",f[u-5],f[u-3],!0,f[u-1],f[u]];case 282:return["for-in",[],f[u-1],null,null,f[u]];case 283:return["for-in",[],f[u-3],f[u-1],null,f[u]];case 284:return["comprehension",f[u-4],[["for-in",f[u-2],f[u],null]],[]];case 285:return["comprehension",f[u-6],[["for-in",f[u-4],f[u-2],null]],[f[u]]];case 286:return["comprehension",f[u-6],[["for-in",f[u-4],f[u-2],f[u]]],[]];case 287:return["comprehension",f[u-8],[["for-in",f[u-6],f[u-4],f[u]]],[f[u-2]]];case 288:return["comprehension",f[u-8],[["for-in",f[u-6],f[u-4],f[u-2]]],[f[u]]];case 289:return["comprehension",f[u-4],[["for-of",f[u-2],f[u],!1]],[]];case 290:return["comprehension",f[u-6],[["for-of",f[u-4],f[u-2],!1]],[f[u]]];case 291:return["comprehension",f[u-5],[["for-of",f[u-2],f[u],!0]],[]];case 292:return["comprehension",f[u-7],[["for-of",f[u-4],f[u-2],!0]],[f[u]]];case 293:return["comprehension",f[u-4],[["for-as",f[u-2],f[u],!1,null]],[]];case 294:return["comprehension",f[u-6],[["for-as",f[u-4],f[u-2],!1,null]],[f[u]]];case 295:return["comprehension",f[u-5],[["for-as",f[u-2],f[u],!0,null]],[]];case 296:return["comprehension",f[u-7],[["for-as",f[u-4],f[u-2],!0,null]],[f[u]]];case 297:return["comprehension",f[u-4],[["for-as",f[u-2],f[u],!0,null]],[]];case 298:return["comprehension",f[u-6],[["for-as",f[u-4],f[u-2],!0,null]],[f[u]]];case 299:return["comprehension",f[u-2],[["for-in",[],f[u],null]],[]];case 300:return["comprehension",f[u-4],[["for-in",[],f[u-2],f[u]]],[]];case 304:case 337:case 339:case 366:case 367:case 369:return[f[u-2],f[u]];case 305:return["class",null,null];case 306:return["class",null,null,f[u]];case 307:return["class",null,f[u]];case 308:return["class",null,f[u-1],f[u]];case 309:return["class",f[u],null];case 310:return["class",f[u-1],null,f[u]];case 311:return["class",f[u-2],f[u]];case 312:return["class",f[u-3],f[u-1],f[u]];case 313:return["enum",f[u-1],f[u]];case 314:return["component",null,["block",...f[u-1]]];case 321:return["offer",f[u]];case 322:return["accept",f[u]];case 323:return["render",f[u]];case 324:case 327:return["import","{}",f[u]];case 325:case 326:return["import",f[u-2],f[u]];case 328:return["import",f[u-4],f[u]];case 329:return["import",[f[u-4],f[u-2]],f[u]];case 330:return["import",[f[u-7],f[u-4]],f[u]];case 341:return["*",f[u]];case 342:return["export","{}"];case 343:return["export",f[u-2]];case 344:case 345:case 346:case 347:case 351:case 352:case 353:case 354:return["export",f[u]];case 348:return["export",["=",f[u-2],f[u]]];case 349:return["export",["=",f[u-3],f[u]]];case 350:return["export",["=",f[u-4],f[u-1]]];case 355:return["export-default",f[u]];case 356:return["export-default",f[u-1]];case 357:return["export-all",f[u]];case 358:return["export-from","{}",f[u]];case 359:return["export-from",f[u-4],f[u]];case 371:case 372:case 374:case 412:return["do-iife",f[u]];case 376:return["-",f[u]];case 377:return["+",f[u]];case 378:return["?",f[u-1]];case 379:return["defined",f[u-1]];case 380:return["presence",f[u-1]];case 381:return["await",f[u]];case 382:return["await",f[u-1]];case 383:return["--",f[u],!1];case 384:return["++",f[u],!1];case 385:return["--",f[u-1],!0];case 386:return["++",f[u-1],!0];case 387:return["+",f[u-2],f[u]];case 388:return["-",f[u-2],f[u]];case 390:return["**",f[u-2],f[u]];case 393:return["&",f[u-2],f[u]];case 394:return["^",f[u-2],f[u]];case 395:return["|",f[u-2],f[u]];case 396:case 397:case 398:case 399:case 400:case 401:return["control",f[u-1],f[u-2],f[u]];case 402:return["&&",f[u-2],f[u]];case 403:return["||",f[u-2],f[u]];case 404:return["??",f[u-2],f[u]];case 405:return["!?",f[u-2],f[u]];case 406:return["|>",f[u-2],f[u]];case 408:return["?:",f[u-4],f[u-2],f[u]];case 410:return[f[u-3],f[u-4],f[u-1]];case 411:return[f[u-2],f[u-3],f[u]]}},parseError($,U){let F,W,f,u,A,Y,_;if(U.recoverable)return this.trace($);else throw f=(U.line||0)+1,F=U.loc?.c||0,_=U.token?` (token: ${U.token})`:"",Y=U.text?` near '${U.text}'`:"",u=`line ${f}, column ${F}`,A=`Parse error at ${u}${_}${Y}: ${$}`,W=Error(A),W.hash=U,W},parse($){let U,F,W,f,u,A,Y,_,Z,w,z,X,K,D,R,J,Q,q,O,M,G,I,H,P,E,B;[M,B,w]=[[0],[null],[]],[K,E,H,I,J]=[this.parseTable,"",0,0,0],[F,U]=[2,1],_=Object.create(this.lexer),q={ctx:{}};for(let S in this.ctx){if(!Object.hasOwn(this.ctx,S))continue;let N=this.ctx[S];q.ctx[S]=N}if(_.setInput($,q.ctx),[q.ctx.lexer,q.ctx.parser]=[_,this],_.loc==null)_.loc={};P=_.loc,w.push(P),this.parseError=typeof q.ctx.parseError==="function"?q.ctx.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let S;if(S=_.lex()||U,typeof S!=="number")S=this.symbolIds[S]||S;return S},G=D=O=W=R=X=A=z=u=null,Q={};while(!0){if(O=M[M.length-1],G==null)G=Y();if(W=K[O]?.[G],W==null){if(f="",!J)u=(()=>{let S=[];for(let N in K[O]){if(!Object.hasOwn(K[O],N))continue;if(this.tokenNames[N]&&N>F)S.push(`'${this.tokenNames[N]}'`)}return S})();throw f=(()=>{if(_.showPosition)return`Parse error on line ${H+1}:
|
|
12
12
|
${_.showPosition()}
|
|
13
|
-
Expecting ${u.join(", ")}, got '${this.tokenNames[G]||G}'`;else return`Parse error on line ${q+1}: Unexpected ${G===U?"end of input":`'${this.tokenNames[G]||G}'`}`,this.parseError(f,{text:_.match,token:this.tokenNames[G]||G,line:_.line,loc:P,expected:u})})(),Error(f)}if(F>0)if(M.push(G,F),I.push(_.text),w.push(_.loc),G=null,!D){if([B,E,q,P]=[_.len,_.text,_.line,_.loc],J>0)J--}else[G,D]=[D,null];else if(F<0){if(Y=this.ruleTable[-F*2+1],Q.$=I[I.length-Y],R=w[w.length-(Y||1)],Q._$={r:R.r,c:R.c},Z=this.ruleActions.call(Q,-F,I,w,H.ctx),Z!=null)Q.$=Z;if(Array.isArray(Q.$))Q.$.loc=Q._$;if(Y)M.length-=Y*2,I.length-=Y,w.length-=Y;M.push(this.ruleTable[-F*2]),I.push(Q.$),w.push(Q._$),z=K[M[M.length-2]][M[M.length-1]],M.push(z)}else if(F===0)return I[I.length-1]}},trace(){},ctx:{}},j3=($={})=>{let U=Object.create(V3);return Object.defineProperty(U,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),U},s=j3();var a3=s.parse.bind(s);var C3=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"]),_1=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"]),z2=new Set([...C3,..._1]);var g1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),y3=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function b3($){for(let U of $){if(!Array.isArray(U))continue;let W=U[0]instanceof String?U[0].valueOf():U[0],F=U[1]instanceof String?U[1].valueOf():U[1];if(W==="type"&&typeof F==="string")return F.replace(/^["']|["']$/g,"")}return null}function G1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function v1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function K2($,U){U.prototype.rewriteRender=function(){let u=(Z,J,Q)=>{let H=[Z,J];if(H.pre=0,H.data=null,H.loc=Q?.loc??{r:0,c:0,n:0},H.spaced=!1,H.newLine=!1,H.generated=!0,Q)H.origin=Q;return H},Y=!1,A=0,_=0,R=[],w=(Z)=>{let J=Z.split("#")[0];return z2.has(J)},z=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},X=(Z)=>{return w(Z)||z(Z)},K=(Z,J,Q,H)=>{let O=1,M=J;while(M>=0&&O>0){let G=Z[M][0];if(G===Q)O++;else if(G===H)O--;if(O>0)M--}return M},D=(Z,J)=>{let Q=J;while(Q>0){let H=Z[Q-1][0];if(H==="TERMINATOR"||H==="RENDER")break;if(H==="INDENT"||H==="OUTDENT"){let O=Z[Q][0];if(O==="CALL_END"||O===")"){Q=K(Z,Q-1,O,O==="CALL_END"?"CALL_START":"(");continue}break}if(H==="CALL_END"||H===")"){Q=K(Z,Q-2,H,H==="CALL_END"?"CALL_START":"(");continue}if(H==="INTERPOLATION_END"){Q=K(Z,Q-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(H==="STRING_END"){Q=K(Z,Q-2,"STRING_END","STRING_START");continue}Q--}return Z[Q]&&Z[Q][0]==="IDENTIFIER"&&X(Z[Q][1])};this.scanTokens(function(Z,J,Q){let H=Z[0],O=J<Q.length-1?Q[J+1]:null;if(H==="RENDER")return Y=!0,A=_+1,1;if(H==="INDENT")return _++,1;if(H==="OUTDENT"){_--;let M=0;while(R.length>0&&R[R.length-1]>_){let G=u("CALL_END",")",Z);Q.splice(J+1+M,0,G),R.pop(),M++}if(Y&&_<A)Y=!1;return 1+M}if(!Y)return 1;if(H==="UNARY_MATH"&&Z[1]==="~"&&O&&O[0]==="IDENTIFIER"){Z[0]="PROPERTY",Z[1]="__transition__";let M=u(":",":",Z),G=u("STRING",`"${O[1]}"`,O);return Q.splice(J+1,1,M,G),1}if(H==="IDENTIFIER"&&!Z.spaced){let M=[Z[1]],G=J+1;while(G+1<Q.length){let B=Q[G],q=Q[G+1];if(B[0]==="-"&&!B.spaced&&(q[0]==="IDENTIFIER"||q[0]==="PROPERTY")){if(M.push(q[1]),G+=2,q[0]==="PROPERTY")break}else break}if(M.length>1&&G>J+1&&Q[G-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${M.join("-")}"`,Q.splice(J+1,G-J-1),1}if(H==="."){let M=J>0?Q[J-1]:null,G=M?M[0]:null;if(G==="INDENT"||G==="TERMINATOR"){if(O&&O[0]==="PROPERTY"){let B=J+2<Q.length?Q[J+2]:null;if(!B||B[0]!==":"){let q=u("IDENTIFIER","div",Z);return Q.splice(J,0,q),2}}if(!O||O[0]!=="(")return Z[0]="IDENTIFIER",Z[1]="div",0}}if(H==="IDENTIFIER"||H==="PROPERTY"){let M=Q[J+1],G=Q[J+2];if(M&&M[0]==="#"&&G&&(G[0]==="PROPERTY"||G[0]==="IDENTIFIER")){if(Z[1]=Z[1]+"#"+G[1],G.spaced)Z.spaced=!0;return Q.splice(J+1,2),0}}if(H==="BIND"){let M=J>0?Q[J-1]:null,G=Q[J+1];if(M&&(M[0]==="IDENTIFIER"||M[0]==="PROPERTY")&&G&&G[0]==="IDENTIFIER")return M[1]=`__bind_${M[1]}__`,Z[0]=":",Z[1]=":",1}if(H==="@"){let M=J+1;if(M<Q.length&&Q[M][0]==="PROPERTY"){M++;while(M+1<Q.length&&Q[M][0]==="."&&Q[M+1][0]==="PROPERTY")M+=2;if(M>J+2&&M<Q.length&&Q[M][0]===":"){let G=u("[","[",Z);Q.splice(J,0,G);let B=u("]","]",Q[M+1]);return Q.splice(M+1,0,B),2}}}if(H==="."&&O&&O[0]==="("){let M=J>0?Q[J-1]:null,G=M?M[0]:null,B=G==="INDENT"||G==="TERMINATOR",q=u("PROPERTY","__clsx",Z);O[0]="CALL_START";let P=1;for(let E=J+2;E<Q.length&&P>0;E++)if(Q[E][0]==="("||Q[E][0]==="CALL_START")P++;else if(Q[E][0]===")"){if(P--,P===0)Q[E][0]="CALL_END"}else if(Q[E][0]==="CALL_END")P--;if(B){let E=u("IDENTIFIER","div",Z);return Q.splice(J,0,E),Q.splice(J+2,0,q),3}else if(G===":")return Q[J]=u("IDENTIFIER","__clsx",Z),1;else return Q.splice(J+1,0,q),2}if(O&&O[0]==="INDENT"){if(O.fromThen)return 1;if(H==="->"||H==="=>"||H==="CALL_START"||H==="(")return 1;let M=!1,G=J>0?Q[J-1][0]:null,B=G==="IF"||G==="UNLESS"||G==="WHILE"||G==="UNTIL"||G==="WHEN",q=!1;if(H==="CALL_END"){let P=1;for(let E=J-1;E>=0&&P>0;E--)if(Q[E][0]==="CALL_END")P++;else if(Q[E][0]==="CALL_START"){if(P--,P===0&&E>0&&Q[E-1][0]==="PROPERTY"&&Q[E-1][1]==="__clsx")q=!0}}if(q)M=!0;else if(H==="IDENTIFIER"&&X(Z[1])&&!B)M=!0;else if(H==="IDENTIFIER"&&!B)M=D(Q,J);else if(H==="PROPERTY"||H==="STRING"||H==="STRING_END"||H==="NUMBER"||H==="BOOL"||H==="CALL_END"||H===")"||H==="PRESENCE")M=D(Q,J);if(M){let P=H==="PROPERTY"&&J>0&&(Q[J-1][0]==="."||Q[J-1][0]==="#");if(q||H==="IDENTIFIER"&&X(Z[1])||P){let I=u("CALL_START","(",Z),N=u("->","->",Z);return N.newLine=!0,Q.splice(J+1,0,I,N),R.push(_+1),3}else{let I=u(",",",",Z),N=u("->","->",Z);return N.newLine=!0,Q.splice(J+1,0,I,N),3}}}if(H==="IDENTIFIER"&&z(Z[1])&&O&&(O[0]==="OUTDENT"||O[0]==="TERMINATOR"))return Q.splice(J+1,0,u("CALL_START","(",Z),u("CALL_END",")",Z)),3;return 1})};let W=$.prototype;W.isHtmlTag=function(u){let Y=u.split("#")[0];return z2.has(Y.toLowerCase())},W.isComponent=function(u){if(!u||typeof u!=="string")return!1;return/^[A-Z]/.test(u)},W.collectTemplateClasses=function(u){let Y=[],A=u;while(this.is(A,".")){let z=A[2];if(typeof z==="string"||z instanceof String)Y.unshift(z.valueOf());A=A[1]}let _=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(_===null)return{tag:null,classes:Y,id:void 0};let[R,w]=_.split("#");if(!R)R="div";return{tag:R,classes:Y,id:w}};let F=(u)=>typeof u==="string"?u:u instanceof String?u.valueOf():null,f=(u,Y)=>{if(!(u instanceof String))return Y;let A=new String(Y);if(u.predicate)A.predicate=!0;if(u.await)A.await=!0;return A.predicate||A.await?A:Y};W.transformComponentMembers=function(u){let Y=this._self;if(!Array.isArray(u)){let A=F(u);if(A&&this.reactiveMembers&&this.reactiveMembers.has(A))return[".",[".",Y,A],f(u,"value")];if(A&&this.componentMembers&&this.componentMembers.has(A))return[".",Y,f(u,A)];return u}if(u[0]==="."&&u[1]==="this"&&F(u[2])!=null){let A=u[2],_=F(A);if(this.reactiveMembers&&this.reactiveMembers.has(_))return[".",[".",Y,_],f(A,"value")];return this._factoryMode?[".",Y,A]:u}if(u[0]==="."||u[0]==="?.")return[u[0],this.transformComponentMembers(u[1]),u[2]];if(u[0]==="->")return["=>",...u.slice(1).map((A)=>this.transformComponentMembers(A))];if(u[0]==="object")return["object",...u.slice(1).map((A)=>{if(Array.isArray(A)&&A.length>=2){let _=A[0],R=Array.isArray(_)?this.transformComponentMembers(_):_,w=this.transformComponentMembers(A[1]);return[R,w,A[2]]}return this.transformComponentMembers(A)})];return u.map((A)=>this.transformComponentMembers(A))},W.generateComponent=function(u,Y,A,_){let[,R]=Y;this.usesTemplates=!0,this.usesReactivity=!0;let w=this.is(R,"block")?R.slice(1):[],z=[],X=[],K=[],D=[],Z=[],J=[],Q=null,H=new Set,O=new Set;for(let I of w){if(!Array.isArray(I))continue;let[N]=I;if(N==="state"){let T=G1(I[1]);if(T)z.push({name:T,value:I[2],isPublic:v1(I[1])}),H.add(T),O.add(T)}else if(N==="computed"){let T=G1(I[1]);if(T)X.push({name:T,expr:I[2]}),H.add(T),O.add(T)}else if(N==="readonly"){let T=G1(I[1]);if(T)K.push({name:T,value:I[2],isPublic:v1(I[1])}),H.add(T)}else if(N==="="){let T=G1(I[1]);if(T)if(g1.has(T))Z.push({name:T,value:I[2]});else{let L=I[2];if(Array.isArray(L)&&(L[0]==="->"||L[0]==="=>"))D.push({name:T,func:L}),H.add(T);else z.push({name:T,value:L,isPublic:v1(I[1])}),H.add(T),O.add(T)}}else if(N==="effect")J.push(I);else if(N==="render")Q=I;else if(N==="object")for(let T=1;T<I.length;T++){let L=I[T];if(!Array.isArray(L))continue;let[h,V]=L;if(typeof h==="string"&&g1.has(h))Z.push({name:h,value:V});else if(typeof h==="string")D.push({name:h,func:V}),H.add(h)}}let M=new Map;for(let{name:I}of D)if(/^on[A-Z]/.test(I)&&!g1.has(I))M.set(I[2].toLowerCase()+I.slice(3),I);let G=this.componentMembers,B=this.reactiveMembers,q=this._autoEventHandlers;this.componentMembers=H,this.reactiveMembers=O,this._autoEventHandlers=M.size>0?M:null;let P=[],E="";P.push("class extends __Component {"),P.push(" _init(props) {");for(let{name:I,value:N,isPublic:T}of K){let L=this.generateInComponent(N,"value");P.push(T?` this.${I} = props.${I} ?? ${L};`:` this.${I} = ${L};`)}for(let{name:I,value:N,isPublic:T}of z){let L=this.generateInComponent(N,"value");P.push(T?` this.${I} = __state(props.__bind_${I}__ ?? props.${I} ?? ${L});`:` this.${I} = __state(${L});`)}for(let{name:I,expr:N}of X)if(this.is(N,"block")){let T=this.transformComponentMembers(N),L=this.generateFunctionBody(T);P.push(` this.${I} = __computed(() => ${L});`)}else{let T=this.generateInComponent(N,"value");P.push(` this.${I} = __computed(() => ${T});`)}for(let I of J){let N=I[2],T=this.containsAwait(N)?"async ":"";if(this.is(N,"block")){let L=this.transformComponentMembers(N),h=this.generateFunctionBody(L,[],!0);P.push(` __effect(${T}() => ${h});`)}else{let L=this.generateInComponent(N,"value");P.push(` __effect(${T}() => { ${L}; });`)}}P.push(" }");for(let{name:I,func:N}of D)if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>")){let[,T,L]=N,h=Array.isArray(T)?T.map((y)=>this.formatParam(y)).join(", "):"",V=this.reactiveMembers?this.transformComponentMembers(L):L,n=this.containsAwait(L),m=this.generateFunctionBody(V,T||[]);P.push(` ${n?"async ":""}${I}(${h}) ${m}`)}for(let{name:I,value:N}of Z)if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>")){let[,T,L]=N,h=Array.isArray(T)?T.map((y)=>this.formatParam(y)).join(", "):"",V=this.reactiveMembers?this.transformComponentMembers(L):L,n=this.containsAwait(L),m=this.generateFunctionBody(V,T||[]);P.push(` ${n?"async ":""}${I}(${h}) ${m}`)}if(Q){let I=Q[1],N=this.buildRender(I);if(N.blockFactories.length>0)E=N.blockFactories.join(`
|
|
13
|
+
Expecting ${u.join(", ")}, got '${this.tokenNames[G]||G}'`;else return`Parse error on line ${H+1}: Unexpected ${G===U?"end of input":`'${this.tokenNames[G]||G}'`}`,this.parseError(f,{text:_.match,token:this.tokenNames[G]||G,line:_.line,loc:P,expected:u})})(),Error(f)}if(W>0)if(M.push(G,W),B.push(_.text),w.push(_.loc),G=null,!D){if([I,E,H,P]=[_.len,_.text,_.line,_.loc],J>0)J--}else[G,D]=[D,null];else if(W<0){if(A=this.ruleTable[-W*2+1],Q.$=B[B.length-A],Z=w[w.length-(A||1)],Q._$={r:Z.r,c:Z.c},R=this.ruleActions.call(Q,-W,B,w,q.ctx),R!=null)Q.$=R;if(Array.isArray(Q.$))Q.$.loc=Q._$;if(A)M.length-=A*2,B.length-=A,w.length-=A;M.push(this.ruleTable[-W*2]),B.push(Q.$),w.push(Q._$),z=K[M[M.length-2]][M[M.length-1]],M.push(z)}else if(W===0)return B[B.length-1]}},trace(){},ctx:{}},b3=($={})=>{let U=Object.create(y3);return Object.defineProperty(U,"ctx",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),U},t=b3();var e3=t.parse.bind(t);var c3=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"]),R1=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"]),z2=new Set([...c3,...R1]);var g1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),g3=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 U of $){if(!Array.isArray(U))continue;let F=U[0]instanceof String?U[0].valueOf():U[0],W=U[1]instanceof String?U[1].valueOf():U[1];if(F==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function F1($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="."&&$[1]==="this"&&typeof $[2]==="string")return $[2];return null}function v1($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}function K2($,U){U.prototype.rewriteRender=function(){let u=(R,J,Q)=>{let q=[R,J];if(q.pre=0,q.data=null,q.loc=Q?.loc??{r:0,c:0,n:0},q.spaced=!1,q.newLine=!1,q.generated=!0,Q)q.origin=Q;return q},A=!1,Y=0,_=0,Z=[],w=(R)=>{let J=R.split("#")[0];return z2.has(J)},z=(R)=>{if(!R||typeof R!=="string")return!1;return/^[A-Z]/.test(R)},X=(R)=>{return w(R)||z(R)},K=(R,J,Q,q)=>{let O=1,M=J;while(M>=0&&O>0){let G=R[M][0];if(G===Q)O++;else if(G===q)O--;if(O>0)M--}return M},D=(R,J)=>{let Q=J;while(Q>0){let q=R[Q-1][0];if(q==="TERMINATOR"||q==="RENDER")break;if(q==="INDENT"||q==="OUTDENT"){let O=R[Q][0];if(O==="CALL_END"||O===")"){Q=K(R,Q-1,O,O==="CALL_END"?"CALL_START":"(");continue}break}if(q==="CALL_END"||q===")"){Q=K(R,Q-2,q,q==="CALL_END"?"CALL_START":"(");continue}if(q==="INTERPOLATION_END"){Q=K(R,Q-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(q==="STRING_END"){Q=K(R,Q-2,"STRING_END","STRING_START");continue}Q--}return R[Q]&&R[Q][0]==="IDENTIFIER"&&X(R[Q][1])};this.scanTokens(function(R,J,Q){let q=R[0],O=J<Q.length-1?Q[J+1]:null;if(q==="RENDER")return A=!0,Y=_+1,1;if(q==="INDENT")return _++,1;if(q==="OUTDENT"){_--;let M=0;while(Z.length>0&&Z[Z.length-1]>_){let G=u("CALL_END",")",R);Q.splice(J+1+M,0,G),Z.pop(),M++}if(A&&_<Y)A=!1;return 1+M}if(!A)return 1;if(q==="UNARY_MATH"&&R[1]==="~"&&O&&O[0]==="IDENTIFIER"){R[0]="PROPERTY",R[1]="__transition__";let M=u(":",":",R),G=u("STRING",`"${O[1]}"`,O);return Q.splice(J+1,1,M,G),1}if(q==="IDENTIFIER"&&!R.spaced){let M=[R[1]],G=J+1;while(G+1<Q.length){let I=Q[G],H=Q[G+1];if(I[0]==="-"&&!I.spaced&&(H[0]==="IDENTIFIER"||H[0]==="PROPERTY")){if(M.push(H[1]),G+=2,H[0]==="PROPERTY")break}else break}if(M.length>1&&G>J+1&&Q[G-1][0]==="PROPERTY")return R[0]="STRING",R[1]=`"${M.join("-")}"`,Q.splice(J+1,G-J-1),1}if(q==="."){let M=J>0?Q[J-1]:null,G=M?M[0]:null;if(G==="INDENT"||G==="TERMINATOR"){if(O&&O[0]==="PROPERTY"){let I=J+2<Q.length?Q[J+2]:null;if(!I||I[0]!==":"){let H=u("IDENTIFIER","div",R);return Q.splice(J,0,H),2}}if(!O||O[0]!=="(")return R[0]="IDENTIFIER",R[1]="div",0}}if(q==="IDENTIFIER"||q==="PROPERTY"){let M=Q[J+1],G=Q[J+2];if(M&&M[0]==="#"&&G&&(G[0]==="PROPERTY"||G[0]==="IDENTIFIER")){if(R[1]=R[1]+"#"+G[1],G.spaced)R.spaced=!0;return Q.splice(J+1,2),0}}if(q==="BIND"){let M=J>0?Q[J-1]:null,G=Q[J+1];if(M&&(M[0]==="IDENTIFIER"||M[0]==="PROPERTY")&&G&&G[0]==="IDENTIFIER")return M[1]=`__bind_${M[1]}__`,R[0]=":",R[1]=":",1}if(q==="@"){let M=J+1;if(M<Q.length&&Q[M][0]==="PROPERTY"){M++;while(M+1<Q.length&&Q[M][0]==="."&&Q[M+1][0]==="PROPERTY")M+=2;if(M>J+2&&M<Q.length&&Q[M][0]===":"){let G=u("[","[",R);Q.splice(J,0,G);let I=u("]","]",Q[M+1]);return Q.splice(M+1,0,I),2}}}if(q==="."&&O&&O[0]==="("){let M=J>0?Q[J-1]:null,G=M?M[0]:null,I=G==="INDENT"||G==="TERMINATOR",H=u("PROPERTY","__clsx",R);O[0]="CALL_START";let P=1;for(let E=J+2;E<Q.length&&P>0;E++)if(Q[E][0]==="("||Q[E][0]==="CALL_START")P++;else if(Q[E][0]===")"){if(P--,P===0)Q[E][0]="CALL_END"}else if(Q[E][0]==="CALL_END")P--;if(I){let E=u("IDENTIFIER","div",R);return Q.splice(J,0,E),Q.splice(J+2,0,H),3}else if(G===":")return Q[J]=u("IDENTIFIER","__clsx",R),1;else return Q.splice(J+1,0,H),2}if(O&&O[0]==="INDENT"){if(O.fromThen)return 1;if(q==="->"||q==="=>"||q==="CALL_START"||q==="(")return 1;let M=!1,G=J>0?Q[J-1][0]:null,I=G==="IF"||G==="UNLESS"||G==="WHILE"||G==="UNTIL"||G==="WHEN",H=!1;if(q==="CALL_END"){let P=1;for(let E=J-1;E>=0&&P>0;E--)if(Q[E][0]==="CALL_END")P++;else if(Q[E][0]==="CALL_START"){if(P--,P===0&&E>0&&Q[E-1][0]==="PROPERTY"&&Q[E-1][1]==="__clsx")H=!0}}if(H)M=!0;else if(q==="IDENTIFIER"&&X(R[1])&&!I)M=!0;else if(q==="IDENTIFIER"&&!I)M=D(Q,J);else if(q==="PROPERTY"||q==="STRING"||q==="STRING_END"||q==="NUMBER"||q==="BOOL"||q==="CALL_END"||q===")"||q==="PRESENCE")M=D(Q,J);if(M){let P=q==="PROPERTY"&&J>0&&(Q[J-1][0]==="."||Q[J-1][0]==="#");if(H||q==="IDENTIFIER"&&X(R[1])||P){let B=u("CALL_START","(",R),S=u("->","->",R);return S.newLine=!0,Q.splice(J+1,0,B,S),Z.push(_+1),3}else{let B=u(",",",",R),S=u("->","->",R);return S.newLine=!0,Q.splice(J+1,0,B,S),3}}}if(q==="IDENTIFIER"&&z(R[1])&&O&&(O[0]==="OUTDENT"||O[0]==="TERMINATOR"))return Q.splice(J+1,0,u("CALL_START","(",R),u("CALL_END",")",R)),3;return 1})};let F=$.prototype;F.isHtmlTag=function(u){let A=u.split("#")[0];return z2.has(A.toLowerCase())},F.isComponent=function(u){if(!u||typeof u!=="string")return!1;return/^[A-Z]/.test(u)},F.collectTemplateClasses=function(u){let A=[],Y=u;while(this.is(Y,".")){let z=Y[2];if(typeof z==="string"||z instanceof String)A.unshift(z.valueOf());Y=Y[1]}let _=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(_===null)return{tag:null,classes:A,id:void 0};let[Z,w]=_.split("#");if(!Z)Z="div";return{tag:Z,classes:A,id:w}};let W=(u)=>typeof u==="string"?u:u instanceof String?u.valueOf():null,f=(u,A)=>{if(!(u instanceof String))return A;let Y=new String(A);if(u.predicate)Y.predicate=!0;if(u.await)Y.await=!0;return Y.predicate||Y.await?Y:A};F.transformComponentMembers=function(u){let A=this._self;if(!Array.isArray(u)){let Y=W(u);if(Y&&this.reactiveMembers&&this.reactiveMembers.has(Y))return[".",[".",A,Y],f(u,"value")];if(Y&&this.componentMembers&&this.componentMembers.has(Y))return[".",A,f(u,Y)];return u}if(u[0]==="."&&u[1]==="this"&&W(u[2])!=null){let Y=u[2],_=W(Y);if(this.reactiveMembers&&this.reactiveMembers.has(_))return[".",[".",A,_],f(Y,"value")];return this._factoryMode?[".",A,Y]:u}if(u[0]==="."||u[0]==="?.")return[u[0],this.transformComponentMembers(u[1]),u[2]];if(u[0]==="->")return["=>",...u.slice(1).map((Y)=>this.transformComponentMembers(Y))];if(u[0]==="object")return["object",...u.slice(1).map((Y)=>{if(Array.isArray(Y)&&Y.length>=2){let _=Y[0],Z=Array.isArray(_)?this.transformComponentMembers(_):_,w=this.transformComponentMembers(Y[1]);return[Z,w,Y[2]]}return this.transformComponentMembers(Y)})];return u.map((Y)=>this.transformComponentMembers(Y))},F.generateComponent=function(u,A,Y,_){let[,Z]=A;this.usesTemplates=!0,this.usesReactivity=!0;let w=this.is(Z,"block")?Z.slice(1):[],z=[],X=[],K=[],D=[],R=[],J=[],Q=[],q=[],O=null,M=new Set,G=new Set;for(let N of w){if(!Array.isArray(N))continue;let[L]=N;if(L==="offer"){if(N=N[1],!Array.isArray(N))continue;L=N[0];let T=F1(N[1]);if(T)Q.push(T)}if(L==="accept"){let T=typeof N[1]==="string"?N[1]:F1(N[1]);if(T)q.push(T),M.add(T),G.add(T)}else if(L==="state"){let T=F1(N[1]);if(T)z.push({name:T,value:N[2],isPublic:v1(N[1])}),M.add(T),G.add(T)}else if(L==="computed"){let T=F1(N[1]);if(T)X.push({name:T,expr:N[2]}),M.add(T),G.add(T)}else if(L==="readonly"){let T=F1(N[1]);if(T)K.push({name:T,value:N[2],isPublic:v1(N[1])}),M.add(T)}else if(L==="="){let T=F1(N[1]);if(T)if(g1.has(T))R.push({name:T,value:N[2]});else{let h=N[2];if(Array.isArray(h)&&(h[0]==="->"||h[0]==="=>"))D.push({name:T,func:h}),M.add(T);else z.push({name:T,value:h,isPublic:v1(N[1])}),M.add(T),G.add(T)}}else if(L==="effect")J.push(N);else if(L==="render")O=N;else if(L==="object")for(let T=1;T<N.length;T++){let h=N[T];if(!Array.isArray(h))continue;let[C,l]=h;if(typeof C==="string"&&g1.has(C))R.push({name:C,value:l});else if(typeof C==="string")D.push({name:C,func:l}),M.add(C)}}let I=new Map;for(let{name:N}of D)if(/^on[A-Z]/.test(N)&&!g1.has(N))I.set(N[2].toLowerCase()+N.slice(3),N);let H=this.componentMembers,P=this.reactiveMembers,E=this._autoEventHandlers;this.componentMembers=M,this.reactiveMembers=G,this._autoEventHandlers=I.size>0?I:null;let B=[],S="";B.push("class extends __Component {"),B.push(" _init(props) {");for(let{name:N,value:L,isPublic:T}of K){let h=this.generateInComponent(L,"value");B.push(T?` this.${N} = props.${N} ?? ${h};`:` this.${N} = ${h};`)}for(let N of q)B.push(` this.${N} = getContext('${N}');`);for(let{name:N,value:L,isPublic:T}of z){let h=this.generateInComponent(L,"value");B.push(T?` this.${N} = __state(props.__bind_${N}__ ?? props.${N} ?? ${h});`:` this.${N} = __state(${h});`)}for(let{name:N,expr:L}of X)if(this.is(L,"block")){let T=this.transformComponentMembers(L),h=this.generateFunctionBody(T);B.push(` this.${N} = __computed(() => ${h});`)}else{let T=this.generateInComponent(L,"value");B.push(` this.${N} = __computed(() => ${T});`)}for(let N of Q)B.push(` setContext('${N}', this.${N});`);for(let N of J){let L=N[2],T=this.containsAwait(L)?"async ":"";if(this.is(L,"block")){let h=this.transformComponentMembers(L),C=this.generateFunctionBody(h,[],!0);B.push(` __effect(${T}() => ${C});`)}else{let h=this.generateInComponent(L,"value");B.push(` __effect(${T}() => { ${h}; });`)}}B.push(" }");for(let{name:N,func:L}of D)if(Array.isArray(L)&&(L[0]==="->"||L[0]==="=>")){let[,T,h]=L,C=Array.isArray(T)?T.map((c)=>this.formatParam(c)).join(", "):"",l=this.reactiveMembers?this.transformComponentMembers(h):h,b=this.containsAwait(h),k=this.generateFunctionBody(l,T||[]);B.push(` ${b?"async ":""}${N}(${C}) ${k}`)}for(let{name:N,value:L}of R)if(Array.isArray(L)&&(L[0]==="->"||L[0]==="=>")){let[,T,h]=L,C=Array.isArray(T)?T.map((c)=>this.formatParam(c)).join(", "):"",l=this.reactiveMembers?this.transformComponentMembers(h):h,b=this.containsAwait(h),k=this.generateFunctionBody(l,T||[]);B.push(` ${b?"async ":""}${N}(${C}) ${k}`)}if(O){let N=O[1],L=this.buildRender(N);if(L.blockFactories.length>0)S=L.blockFactories.join(`
|
|
14
14
|
|
|
15
15
|
`)+`
|
|
16
16
|
|
|
17
|
-
`;
|
|
18
|
-
${
|
|
17
|
+
`;B.push(" _create() {");for(let T of L.createLines)B.push(` ${T}`);if(B.push(` return ${L.rootVar};`),B.push(" }"),L.setupLines.length>0){B.push(" _setup() {");for(let T of L.setupLines)B.push(` ${T}`);B.push(" }")}}if(B.push("}"),this.componentMembers=H,this.reactiveMembers=P,this._autoEventHandlers=E,S)return`(() => {
|
|
18
|
+
${S}return ${B.join(`
|
|
19
19
|
`)};
|
|
20
|
-
})()`;return
|
|
21
|
-
`)},W.generateInComponent=function(u,Y){if(typeof u==="string"&&this.reactiveMembers&&this.reactiveMembers.has(u))return`${this._self}.${u}.value`;if(typeof u==="string"&&this.componentMembers&&this.componentMembers.has(u))return`${this._self}.${u}`;if(Array.isArray(u)&&this.reactiveMembers){let A=this.transformComponentMembers(u);return this.generate(A,Y)}return this.generate(u,Y)},W.generateRender=function(u,Y,A,_){throw Error("render blocks can only be used inside a component")},W.buildRender=function(u){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null;let Y=this.is(u,"block")?u.slice(1):[u],A;if(Y.length===0)A="null";else if(Y.length===1)this._pendingAutoWire=!!this._autoEventHandlers,A=this.generateNode(Y[0]),this._pendingAutoWire=!1;else{A=this.newElementVar("frag"),this._createLines.push(`${A} = document.createDocumentFragment();`);let _=[];for(let R of Y){let w=this.generateNode(R);this._createLines.push(`${A}.appendChild(${w});`),_.push(w)}this._fragChildren.set(A,_)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:A}},W.newBlockVar=function(){return`create_block_${this._blockCount++}`},W.newElementVar=function(u="el"){let Y=`_${u}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(Y);return this._factoryMode?Y:`this.${Y}`},W.newTextVar=function(){let u=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(u);return this._factoryMode?u:`this.${u}`},Object.defineProperty(W,"_self",{get(){return this._factoryMode?"ctx":"this"}}),W._pushEffect=function(u){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${u} }));`);else this._setupLines.push(`__effect(() => { ${u} });`)},W.generateNode=function(u){if(typeof u==="string"||u instanceof String){let z=u.valueOf();if(z.startsWith('"')||z.startsWith("'")||z.startsWith("`")){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode(${z});`),J}if(this.reactiveMembers&&this.reactiveMembers.has(z)){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode('');`),this._pushEffect(`${J}.data = ${this._self}.${z}.value;`),J}if(z==="slot"&&this.componentMembers){let J=this._self,Q=this.newElementVar("slot");return this._createLines.push(`${Q} = ${J}.children instanceof Node ? ${J}.children : (${J}.children != null ? document.createTextNode(String(${J}.children)) : document.createComment(''));`),Q}let[X,K]=z.split("#"),D=this.newElementVar(),Z=X||"div";if(_1.has(Z)||this._svgDepth>0)this._createLines.push(`${D} = document.createElementNS('http://www.w3.org/2000/svg', '${Z}');`);else this._createLines.push(`${D} = document.createElement('${Z}');`);if(K)this._createLines.push(`${D}.id = '${K}';`);return D}if(!Array.isArray(u)){let z=this.newElementVar("c");return this._createLines.push(`${z} = document.createComment('unknown');`),z}let[Y,...A]=u,_=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():null;if(_&&this.isComponent(_))return this.generateChildComponent(_,A);if(_==="slot"&&this.componentMembers){let z=this._self,X=this.newElementVar("slot");return this._createLines.push(`${X} = ${z}.children instanceof Node ? ${z}.children : (${z}.children != null ? document.createTextNode(String(${z}.children)) : document.createComment(''));`),X}if(_&&this.isHtmlTag(_)){let[z,X]=_.split("#");return this.generateTag(z||"div",[],A,X)}if(_==="."){let[,z,X]=u;if(z==="this"&&typeof X==="string"){let H=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(X)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._pushEffect(`${M}.data = ${H}.${X}.value;`),M}let O=this.newElementVar("slot");return this._createLines.push(`${O} = ${H}.${X} instanceof Node ? ${H}.${X} : (${H}.${X} != null ? document.createTextNode(String(${H}.${X})) : document.createComment(''));`),O}let{tag:K,classes:D,id:Z}=this.collectTemplateClasses(u);if(K&&this.isHtmlTag(K))return this.generateTag(K,D,[],Z);let J=this.newTextVar(),Q=this.generateInComponent(u,"value");return this._createLines.push(`${J} = document.createTextNode(String(${Q}));`),J}if(Array.isArray(Y)){if(Array.isArray(Y[0])&&Y[0][0]==="."&&(Y[0][2]==="__clsx"||Y[0][2]instanceof String&&Y[0][2].valueOf()==="__clsx")){let D=typeof Y[0][1]==="string"?Y[0][1]:Y[0][1].valueOf(),Z=Y.slice(1);return this.generateDynamicTag(D,Z,A)}let{tag:z,classes:X,id:K}=this.collectTemplateClasses(Y);if(z&&this.isHtmlTag(z)){if(X.length===1&&X[0]==="__clsx")return this.generateDynamicTag(z,A,[]);return this.generateTag(z,X,A,K)}}if(_==="->"||_==="=>")return this.generateTemplateBlock(A[1]);if(_==="if")return this.generateConditional(u);if(_==="for"||_==="for-in"||_==="for-of"||_==="for-as")return this.generateTemplateLoop(u);let R=this.newTextVar(),w=this.generateInComponent(u,"value");if(this.hasReactiveDeps(u))this._createLines.push(`${R} = document.createTextNode('');`),this._pushEffect(`${R}.data = ${w};`);else this._createLines.push(`${R} = document.createTextNode(String(${w}));`);return R},W.appendChildren=function(u,Y){for(let A of Y)if(this.is(A,"->")||this.is(A,"=>")){let _=A[2];if(this.is(_,"block"))for(let R of _.slice(1))if(this.is(R,"object"))this.generateAttributes(u,R);else{let w=this.generateNode(R);this._createLines.push(`${u}.appendChild(${w});`)}else if(_){let R=this.generateNode(_);this._createLines.push(`${u}.appendChild(${R});`)}}else if(this.is(A,"object"))this.generateAttributes(u,A);else if(typeof A==="string"||A instanceof String){let _=A.valueOf(),R=_.split(/[#.]/)[0];if(this.isHtmlTag(R||"div")||this.isComponent(R)){let w=this.generateNode(A);this._createLines.push(`${u}.appendChild(${w});`)}else{let w=this.newTextVar();if(_.startsWith('"')||_.startsWith("'")||_.startsWith("`"))this._createLines.push(`${w} = document.createTextNode(${_});`);else if(this.reactiveMembers&&this.reactiveMembers.has(_))this._createLines.push(`${w} = document.createTextNode('');`),this._pushEffect(`${w}.data = ${this._self}.${_}.value;`);else if(this.componentMembers&&this.componentMembers.has(_))this._createLines.push(`${w} = document.createTextNode(String(${this._self}.${_}));`);else this._createLines.push(`${w} = document.createTextNode(${this.generateInComponent(A,"value")});`);this._createLines.push(`${u}.appendChild(${w});`)}}else if(A){let _=this.generateNode(A);this._createLines.push(`${u}.appendChild(${_});`)}},W._claimAutoWire=function(u){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=u,this._autoWireExplicit=new Set,!0},W._emitAutoWire=function(u,Y){if(!Y)return;for(let[A,_]of this._autoEventHandlers)if(!this._autoWireExplicit.has(A))this._createLines.push(`${u}.addEventListener('${A}', (e) => __batch(() => ${this._self}.${_}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},W.generateTag=function(u,Y,A,_){let R=this.newElementVar(),w=_1.has(u)||this._svgDepth>0;if(w)this._createLines.push(`${R} = document.createElementNS('http://www.w3.org/2000/svg', '${u}');`);else this._createLines.push(`${R} = document.createElement('${u}');`);if(_)this._createLines.push(`${R}.id = '${_}';`);let z=this._claimAutoWire(R),X=this._pendingClassArgs,K=this._pendingClassEl;if(Y.length>0)this._pendingClassArgs=[`'${Y.join(" ")}'`],this._pendingClassEl=R;if(u==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(R,A),u==="svg")this._svgDepth--;if(Y.length>0){if(this._pendingClassArgs.length===1)if(w)this._createLines.push(`${R}.setAttribute('class', '${Y.join(" ")}');`);else this._createLines.push(`${R}.className = '${Y.join(" ")}';`);else{let D=this._pendingClassArgs.join(", ");if(w)this._pushEffect(`${R}.setAttribute('class', __clsx(${D}));`);else this._pushEffect(`${R}.className = __clsx(${D});`)}this._pendingClassArgs=X,this._pendingClassEl=K}return this._emitAutoWire(R,z),R},W.generateDynamicTag=function(u,Y,A){let _=this.newElementVar();if(_1.has(u)||this._svgDepth>0)this._createLines.push(`${_} = document.createElementNS('http://www.w3.org/2000/svg', '${u}');`);else this._createLines.push(`${_} = document.createElement('${u}');`);let R=this._claimAutoWire(_),w=Y.map((K)=>this.generateInComponent(K,"value")),z=this._pendingClassArgs,X=this._pendingClassEl;if(this._pendingClassArgs=w,this._pendingClassEl=_,u==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(_,A),u==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let K=this._pendingClassArgs.join(", ");if(_1.has(u)||this._svgDepth>0)this._pushEffect(`${_}.setAttribute('class', __clsx(${K}));`);else this._pushEffect(`${_}.className = __clsx(${K});`)}return this._pendingClassArgs=z,this._pendingClassEl=X,this._emitAutoWire(_,R),_},W.generateAttributes=function(u,Y){let A=b3(Y.slice(1));for(let _=1;_<Y.length;_++){let[R,w]=Y[_];if(this.is(R,".")&&R[1]==="this"){let z=R[2];if(this._autoWireExplicit&&this._autoWireEl===u)this._autoWireExplicit.add(z);if(typeof w==="string"&&this.componentMembers?.has(w))this._createLines.push(`${u}.addEventListener('${z}', (e) => __batch(() => ${this._self}.${w}(e)));`);else{let X=this.generateInComponent(w,"value");this._createLines.push(`${u}.addEventListener('${z}', (e) => __batch(() => (${X})(e)));`)}continue}if(typeof R==="string"){if(R.startsWith('"')&&R.endsWith('"'))R=R.slice(1,-1);if(R==="class"||R==="className"){let X=this.generateInComponent(w,"value");if(this._pendingClassArgs&&this._pendingClassEl===u)this._pendingClassArgs.push(X);else if(this.hasReactiveDeps(w))if(this._svgDepth>0)this._pushEffect(`${u}.setAttribute('class', __clsx(${X}));`);else this._pushEffect(`${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(R==="__transition__"){let X=String(w).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${X}";`);continue}if(R==="ref"){let X=String(w).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${X} = ${u};`);continue}if(R.startsWith("__bind_")&&R.endsWith("__")){let X=R.slice(7,-2),K=this.generateInComponent(w,"value"),D,Z;if(X==="checked")D="change",Z="e.target.checked";else D="input",Z=A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${u}.${X} = ${K};`);let J=`${K} = ${Z}`,Q=!this.isSimpleAssignable(w)&&this.findRootReactiveMember(w);if(Q)J+=`; ${this._self}.${Q}.touch?.()`;this._createLines.push(`${u}.addEventListener('${D}', (e) => { ${J}; });`);continue}let z=this.generateInComponent(w,"value");if((R==="value"||R==="checked")&&this.hasReactiveDeps(w)){this._pushEffect(`${u}.${R} = ${z};`);let X=!this.isSimpleAssignable(w)&&this.findRootReactiveMember(w);if(this.isSimpleAssignable(w)||X){let K=R==="checked"?"change":"input",Z=`${z} = ${R==="checked"?"e.target.checked":A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(X)Z+=`; ${this._self}.${X}.touch?.()`;this._createLines.push(`${u}.addEventListener('${K}', (e) => { ${Z}; });`)}continue}if(R==="innerHTML"||R==="textContent"||R==="innerText")if(this.hasReactiveDeps(w))this._pushEffect(`${u}.${R} = ${z};`);else this._createLines.push(`${u}.${R} = ${z};`);else if(y3.has(R))if(this.hasReactiveDeps(w))this._pushEffect(`${u}.toggleAttribute('${R}', !!${z});`);else this._createLines.push(`if (${z}) ${u}.setAttribute('${R}', '');`);else if(this.hasReactiveDeps(w))if(Array.isArray(w)&&w[0]==="presence")this._pushEffect(`{ const __v = ${z}; __v == null ? ${u}.removeAttribute('${R}') : ${u}.setAttribute('${R}', __v); }`);else this._pushEffect(`${u}.setAttribute('${R}', ${z});`);else this._createLines.push(`${u}.setAttribute('${R}', ${z});`)}}},W.generateTemplateBlock=function(u){if(!Array.isArray(u)||u[0]!=="block")return this.generateNode(u);let Y=u.slice(1);if(Y.length===0){let R=this.newElementVar("empty");return this._createLines.push(`${R} = document.createComment('');`),R}if(Y.length===1)return this.generateNode(Y[0]);let A=this.newElementVar("frag");this._createLines.push(`${A} = document.createDocumentFragment();`);let _=[];for(let R of Y){let w=this.generateNode(R);this._createLines.push(`${A}.appendChild(${w});`),_.push(w)}return this._fragChildren.set(A,_),A},W.generateConditional=function(u){this._pendingAutoWire=!1;let[,Y,A,_]=u,R=this.newElementVar("anchor");this._createLines.push(`${R} = document.createComment('if');`);let w=this.generateInComponent(Y,"value"),z=this._loopVarStack.map((H)=>`${H.itemVar}, ${H.indexVar}`).join(", "),X=z?`, ${z}`:"",K=this.newBlockVar();this.generateConditionBranch(K,A);let D=null;if(_)D=this.newBlockVar(),this.generateConditionBranch(D,_);let Z=[];Z.push(`// Conditional: ${K}${D?" / "+D:""}`),Z.push("{"),Z.push(` const anchor = ${R};`),Z.push(" let currentBlock = null;"),Z.push(" let showing = null;");let J=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",Q=this._factoryMode?"}));":"});";if(Z.push(` ${J}`),Z.push(` const show = !!(${w});`),Z.push(` const want = show ? 'then' : ${_?"'else'":"null"};`),Z.push(" if (want === showing) return;"),Z.push(""),Z.push(" if (currentBlock) {"),Z.push(" const leaving = currentBlock;"),Z.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),Z.push(" else { leaving.d(true); }"),Z.push(" currentBlock = null;"),Z.push(" }"),Z.push(" showing = want;"),Z.push(""),Z.push(" if (want === 'then') {"),Z.push(` currentBlock = ${K}(${this._self}${X});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${X});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }"),_)Z.push(" if (want === 'else') {"),Z.push(` currentBlock = ${D}(${this._self}${X});`),Z.push(" currentBlock.c();"),Z.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),Z.push(` currentBlock.p(${this._self}${X});`),Z.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),Z.push(" }");return Z.push(` ${Q}`),Z.push("}"),this._setupLines.push(Z.join(`
|
|
22
|
-
`)),
|
|
23
|
-
`))},
|
|
24
|
-
`)),K},
|
|
20
|
+
})()`;return B.join(`
|
|
21
|
+
`)},F.generateInComponent=function(u,A){if(typeof u==="string"&&this.reactiveMembers&&this.reactiveMembers.has(u))return`${this._self}.${u}.value`;if(typeof u==="string"&&this.componentMembers&&this.componentMembers.has(u))return`${this._self}.${u}`;if(Array.isArray(u)&&this.reactiveMembers){let Y=this.transformComponentMembers(u);return this.generate(Y,A)}return this.generate(u,A)},F.generateRender=function(u,A,Y,_){throw Error("render blocks can only be used inside a component")},F.generateOffer=function(u,A,Y,_){throw Error("offer can only be used inside a component")},F.generateAccept=function(u,A,Y,_){throw Error("accept 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=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null;let A=this.is(u,"block")?u.slice(1):[u],Y;if(A.length===0)Y="null";else if(A.length===1)this._pendingAutoWire=!!this._autoEventHandlers,Y=this.generateNode(A[0]),this._pendingAutoWire=!1;else{Y=this.newElementVar("frag"),this._createLines.push(`${Y} = document.createDocumentFragment();`);let _=[];for(let Z of A){let w=this.generateNode(Z);this._createLines.push(`${Y}.appendChild(${w});`),_.push(w)}this._fragChildren.set(Y,_)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:Y}},F.newBlockVar=function(){return`create_block_${this._blockCount++}`},F.newElementVar=function(u="el"){let A=`_${u}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(A);return this._factoryMode?A:`this.${A}`},F.newTextVar=function(){let u=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(u);return this._factoryMode?u:`this.${u}`},Object.defineProperty(F,"_self",{get(){return this._factoryMode?"ctx":"this"}}),F._pushEffect=function(u){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${u} }));`);else this._setupLines.push(`__effect(() => { ${u} });`)},F.generateNode=function(u){if(typeof u==="string"||u instanceof String){let z=u.valueOf();if(z.startsWith('"')||z.startsWith("'")||z.startsWith("`")){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode(${z});`),J}if(this.reactiveMembers&&this.reactiveMembers.has(z)){let J=this.newTextVar();return this._createLines.push(`${J} = document.createTextNode('');`),this._pushEffect(`${J}.data = ${this._self}.${z}.value;`),J}if(z==="slot"&&this.componentMembers){let J=this._self,Q=this.newElementVar("slot");return this._createLines.push(`${Q} = ${J}.children instanceof Node ? ${J}.children : (${J}.children != null ? document.createTextNode(String(${J}.children)) : document.createComment(''));`),Q}let[X,K]=z.split("#"),D=this.newElementVar(),R=X||"div";if(R1.has(R)||this._svgDepth>0)this._createLines.push(`${D} = document.createElementNS('http://www.w3.org/2000/svg', '${R}');`);else this._createLines.push(`${D} = document.createElement('${R}');`);if(K)this._createLines.push(`${D}.id = '${K}';`);return D}if(!Array.isArray(u)){let z=this.newElementVar("c");return this._createLines.push(`${z} = document.createComment('unknown');`),z}let[A,...Y]=u,_=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(_&&this.isComponent(_))return this.generateChildComponent(_,Y);if(_==="slot"&&this.componentMembers){let z=this._self,X=this.newElementVar("slot");return this._createLines.push(`${X} = ${z}.children instanceof Node ? ${z}.children : (${z}.children != null ? document.createTextNode(String(${z}.children)) : document.createComment(''));`),X}if(_&&this.isHtmlTag(_)){let[z,X]=_.split("#");return this.generateTag(z||"div",[],Y,X)}if(_==="."){let[,z,X]=u;if(z==="this"&&typeof X==="string"){let q=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(X)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._pushEffect(`${M}.data = ${q}.${X}.value;`),M}let O=this.newElementVar("slot");return this._createLines.push(`${O} = ${q}.${X} instanceof Node ? ${q}.${X} : (${q}.${X} != null ? document.createTextNode(String(${q}.${X})) : document.createComment(''));`),O}let{tag:K,classes:D,id:R}=this.collectTemplateClasses(u);if(K&&this.isHtmlTag(K))return this.generateTag(K,D,[],R);let J=this.newTextVar(),Q=this.generateInComponent(u,"value");return this._createLines.push(`${J} = document.createTextNode(String(${Q}));`),J}if(Array.isArray(A)){if(Array.isArray(A[0])&&A[0][0]==="."&&(A[0][2]==="__clsx"||A[0][2]instanceof String&&A[0][2].valueOf()==="__clsx")){let D=typeof A[0][1]==="string"?A[0][1]:A[0][1].valueOf(),R=A.slice(1);return this.generateDynamicTag(D,R,Y)}let{tag:z,classes:X,id:K}=this.collectTemplateClasses(A);if(z&&this.isHtmlTag(z)){if(X.length===1&&X[0]==="__clsx")return this.generateDynamicTag(z,Y,[]);return this.generateTag(z,X,Y,K)}}if(_==="->"||_==="=>")return this.generateTemplateBlock(Y[1]);if(_==="if")return this.generateConditional(u);if(_==="for"||_==="for-in"||_==="for-of"||_==="for-as")return this.generateTemplateLoop(u);let Z=this.newTextVar(),w=this.generateInComponent(u,"value");if(this.hasReactiveDeps(u))this._createLines.push(`${Z} = document.createTextNode('');`),this._pushEffect(`${Z}.data = ${w};`);else this._createLines.push(`${Z} = document.createTextNode(String(${w}));`);return Z},F.appendChildren=function(u,A){for(let Y of A)if(this.is(Y,"->")||this.is(Y,"=>")){let _=Y[2];if(this.is(_,"block"))for(let Z of _.slice(1))if(this.is(Z,"object"))this.generateAttributes(u,Z);else{let w=this.generateNode(Z);this._createLines.push(`${u}.appendChild(${w});`)}else if(_){let Z=this.generateNode(_);this._createLines.push(`${u}.appendChild(${Z});`)}}else if(this.is(Y,"object"))this.generateAttributes(u,Y);else if(typeof Y==="string"||Y instanceof String){let _=Y.valueOf(),Z=_.split(/[#.]/)[0];if(this.isHtmlTag(Z||"div")||this.isComponent(Z)){let w=this.generateNode(Y);this._createLines.push(`${u}.appendChild(${w});`)}else{let w=this.newTextVar();if(_.startsWith('"')||_.startsWith("'")||_.startsWith("`"))this._createLines.push(`${w} = document.createTextNode(${_});`);else if(this.reactiveMembers&&this.reactiveMembers.has(_))this._createLines.push(`${w} = document.createTextNode('');`),this._pushEffect(`${w}.data = ${this._self}.${_}.value;`);else if(this.componentMembers&&this.componentMembers.has(_))this._createLines.push(`${w} = document.createTextNode(String(${this._self}.${_}));`);else this._createLines.push(`${w} = document.createTextNode(${this.generateInComponent(Y,"value")});`);this._createLines.push(`${u}.appendChild(${w});`)}}else if(Y){let _=this.generateNode(Y);this._createLines.push(`${u}.appendChild(${_});`)}},F._claimAutoWire=function(u){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=u,this._autoWireExplicit=new Set,!0},F._emitAutoWire=function(u,A){if(!A)return;for(let[Y,_]of this._autoEventHandlers)if(!this._autoWireExplicit.has(Y))this._createLines.push(`${u}.addEventListener('${Y}', (e) => __batch(() => ${this._self}.${_}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},F.generateTag=function(u,A,Y,_){let Z=this.newElementVar(),w=R1.has(u)||this._svgDepth>0;if(w)this._createLines.push(`${Z} = document.createElementNS('http://www.w3.org/2000/svg', '${u}');`);else this._createLines.push(`${Z} = document.createElement('${u}');`);if(_)this._createLines.push(`${Z}.id = '${_}';`);let z=this._claimAutoWire(Z),X=this._pendingClassArgs,K=this._pendingClassEl;if(A.length>0)this._pendingClassArgs=[`'${A.join(" ")}'`],this._pendingClassEl=Z;if(u==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(Z,Y),u==="svg")this._svgDepth--;if(A.length>0){if(this._pendingClassArgs.length===1)if(w)this._createLines.push(`${Z}.setAttribute('class', '${A.join(" ")}');`);else this._createLines.push(`${Z}.className = '${A.join(" ")}';`);else{let D=this._pendingClassArgs.join(", ");if(w)this._pushEffect(`${Z}.setAttribute('class', __clsx(${D}));`);else this._pushEffect(`${Z}.className = __clsx(${D});`)}this._pendingClassArgs=X,this._pendingClassEl=K}return this._emitAutoWire(Z,z),Z},F.generateDynamicTag=function(u,A,Y){let _=this.newElementVar();if(R1.has(u)||this._svgDepth>0)this._createLines.push(`${_} = document.createElementNS('http://www.w3.org/2000/svg', '${u}');`);else this._createLines.push(`${_} = document.createElement('${u}');`);let Z=this._claimAutoWire(_),w=A.map((K)=>this.generateInComponent(K,"value")),z=this._pendingClassArgs,X=this._pendingClassEl;if(this._pendingClassArgs=w,this._pendingClassEl=_,u==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(_,Y),u==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let K=this._pendingClassArgs.join(", ");if(R1.has(u)||this._svgDepth>0)this._pushEffect(`${_}.setAttribute('class', __clsx(${K}));`);else this._pushEffect(`${_}.className = __clsx(${K});`)}return this._pendingClassArgs=z,this._pendingClassEl=X,this._emitAutoWire(_,Z),_},F.generateAttributes=function(u,A){let Y=v3(A.slice(1));for(let _=1;_<A.length;_++){let[Z,w]=A[_];if(this.is(Z,".")&&Z[1]==="this"){let z=Z[2];if(this._autoWireExplicit&&this._autoWireEl===u)this._autoWireExplicit.add(z);if(typeof w==="string"&&this.componentMembers?.has(w))this._createLines.push(`${u}.addEventListener('${z}', (e) => __batch(() => ${this._self}.${w}(e)));`);else{let X=this.generateInComponent(w,"value");this._createLines.push(`${u}.addEventListener('${z}', (e) => __batch(() => (${X})(e)));`)}continue}if(typeof Z==="string"){if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(Z==="class"||Z==="className"){let X=this.generateInComponent(w,"value");if(this._pendingClassArgs&&this._pendingClassEl===u)this._pendingClassArgs.push(X);else if(this.hasReactiveDeps(w))if(this._svgDepth>0)this._pushEffect(`${u}.setAttribute('class', __clsx(${X}));`);else this._pushEffect(`${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(Z==="__transition__"){let X=String(w).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${X}";`);continue}if(Z==="ref"){let X=String(w).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${X} = ${u};`);continue}if(Z.startsWith("__bind_")&&Z.endsWith("__")){let X=Z.slice(7,-2),K=this.generateInComponent(w,"value"),D,R;if(X==="checked")D="change",R="e.target.checked";else D="input",R=Y==="number"||Y==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${u}.${X} = ${K};`);let J=`${K} = ${R}`,Q=!this.isSimpleAssignable(w)&&this.findRootReactiveMember(w);if(Q)J+=`; ${this._self}.${Q}.touch?.()`;this._createLines.push(`${u}.addEventListener('${D}', (e) => { ${J}; });`);continue}let z=this.generateInComponent(w,"value");if((Z==="value"||Z==="checked")&&this.hasReactiveDeps(w)){this._pushEffect(`${u}.${Z} = ${z};`);let X=!this.isSimpleAssignable(w)&&this.findRootReactiveMember(w);if(this.isSimpleAssignable(w)||X){let K=Z==="checked"?"change":"input",R=`${z} = ${Z==="checked"?"e.target.checked":Y==="number"||Y==="range"?"e.target.valueAsNumber":"e.target.value"}`;if(X)R+=`; ${this._self}.${X}.touch?.()`;this._createLines.push(`${u}.addEventListener('${K}', (e) => { ${R}; });`)}continue}if(Z==="innerHTML"||Z==="textContent"||Z==="innerText")if(this.hasReactiveDeps(w))this._pushEffect(`${u}.${Z} = ${z};`);else this._createLines.push(`${u}.${Z} = ${z};`);else if(g3.has(Z))if(this.hasReactiveDeps(w))this._pushEffect(`${u}.toggleAttribute('${Z}', !!${z});`);else this._createLines.push(`if (${z}) ${u}.setAttribute('${Z}', '');`);else if(this.hasReactiveDeps(w))if(Array.isArray(w)&&w[0]==="presence")this._pushEffect(`{ const __v = ${z}; __v == null ? ${u}.removeAttribute('${Z}') : ${u}.setAttribute('${Z}', __v); }`);else this._pushEffect(`${u}.setAttribute('${Z}', ${z});`);else this._createLines.push(`${u}.setAttribute('${Z}', ${z});`)}}},F.generateTemplateBlock=function(u){if(!Array.isArray(u)||u[0]!=="block")return this.generateNode(u);let A=u.slice(1);if(A.length===0){let Z=this.newElementVar("empty");return this._createLines.push(`${Z} = document.createComment('');`),Z}if(A.length===1)return this.generateNode(A[0]);let Y=this.newElementVar("frag");this._createLines.push(`${Y} = document.createDocumentFragment();`);let _=[];for(let Z of A){let w=this.generateNode(Z);this._createLines.push(`${Y}.appendChild(${w});`),_.push(w)}return this._fragChildren.set(Y,_),Y},F.generateConditional=function(u){this._pendingAutoWire=!1;let[,A,Y,_]=u,Z=this.newElementVar("anchor");this._createLines.push(`${Z} = document.createComment('if');`);let w=this.generateInComponent(A,"value"),z=this._loopVarStack.map((q)=>`${q.itemVar}, ${q.indexVar}`).join(", "),X=z?`, ${z}`:"",K=this.newBlockVar();this.generateConditionBranch(K,Y);let D=null;if(_)D=this.newBlockVar(),this.generateConditionBranch(D,_);let R=[];R.push(`// Conditional: ${K}${D?" / "+D:""}`),R.push("{"),R.push(` const anchor = ${Z};`),R.push(" let currentBlock = null;"),R.push(" let showing = null;");let J=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",Q=this._factoryMode?"}));":"});";if(R.push(` ${J}`),R.push(` const show = !!(${w});`),R.push(` const want = show ? 'then' : ${_?"'else'":"null"};`),R.push(" if (want === showing) return;"),R.push(""),R.push(" if (currentBlock) {"),R.push(" const leaving = currentBlock;"),R.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),R.push(" else { leaving.d(true); }"),R.push(" currentBlock = null;"),R.push(" }"),R.push(" showing = want;"),R.push(""),R.push(" if (want === 'then') {"),R.push(` currentBlock = ${K}(${this._self}${X});`),R.push(" currentBlock.c();"),R.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),R.push(` currentBlock.p(${this._self}${X});`),R.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),R.push(" }"),_)R.push(" if (want === 'else') {"),R.push(` currentBlock = ${D}(${this._self}${X});`),R.push(" currentBlock.c();"),R.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),R.push(` currentBlock.p(${this._self}${X});`),R.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),R.push(" }");return R.push(` ${Q}`),R.push("}"),this._setupLines.push(R.join(`
|
|
22
|
+
`)),Z},F.generateConditionBranch=function(u,A){let Y=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let _=this.generateTemplateBlock(A),Z=this._createLines,w=this._setupLines,z=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=Y;let X=this._loopVarStack.map((D)=>`${D.itemVar}, ${D.indexVar}`).join(", "),K=X?`, ${X}`:"";this.emitBlockFactory(u,`ctx${K}`,_,Z,w,z)},F.emitBlockFactory=function(u,A,Y,_,Z,w,z){let X=[];if(X.push(`function ${u}(${A}) {`),w.size>0)X.push(` let ${[...w].join(", ")};`);let K=Z.length>0;if(K)X.push(" let disposers = [];");if(X.push(" return {"),z)X.push(" _s: true,");let D=this._fragChildren.get(Y),R=D?D[0]:Y;X.push(" c() {");for(let J of _)X.push(` ${J}`);if(X.push(` this._first = ${R};`),X.push(" },"),X.push(" m(target, anchor) {"),D)for(let J of D)X.push(` if (target) target.insertBefore(${J}, anchor);`);else X.push(` if (target) target.insertBefore(${Y}, anchor);`);if(X.push(" },"),X.push(` p(${A}) {`),K){X.push(" disposers.forEach(d => d());"),X.push(" disposers = [];");for(let J of Z)X.push(` ${J}`)}if(X.push(" },"),X.push(" d(detaching) {"),K)X.push(" disposers.forEach(d => d());");if(D)for(let J of D)X.push(` if (detaching && ${J}) ${J}.remove();`);else X.push(` if (detaching && ${Y}) ${Y}.remove();`);X.push(" }"),X.push(" };"),X.push("}"),this._blockFactories.push(X.join(`
|
|
23
|
+
`))},F.generateTemplateLoop=function(u){this._pendingAutoWire=!1;let[A,Y,_,Z,w,z]=u,X=this.newBlockVar(),K=this.newElementVar("anchor");this._createLines.push(`${K} = document.createComment('for');`);let D=Array.isArray(Y)?Y:[Y],R=D[0],J=D[1]||"i",Q=this.generateInComponent(_,"value"),q=R;if(this.is(z,"block")&&z.length>1){let b=z[1];if(Array.isArray(b))for(let k of b){if(this.is(k,"object"))for(let c=1;c<k.length;c++){let[M1,f1]=k[c];if(M1==="key"){q=this.generate(f1,"value");break}}if(q!==R)break}}let O=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set;let M=this._loopVarStack.map((b)=>`${b.itemVar}, ${b.indexVar}`).join(", "),G=M?`, ${M}`:"";this._loopVarStack.push({itemVar:R,indexVar:J});let I=this.generateTemplateBlock(z);this._loopVarStack.pop();let H=this._createLines,P=this._setupLines,E=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars]=O;let B=P.length===0,S=`ctx, ${R}, ${J}${G}`;this.emitBlockFactory(X,S,I,H,P,E,B);let L=q!==R?`(${R}, ${J}) => ${q}`:"null",T=M?`, ${M}`:"",h=[];h.push(`// Loop: ${X}`),h.push("{"),h.push(" const __s = { blocks: [], keys: [] };");let C=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",l=this._factoryMode?"}));":"});";return h.push(` ${C}`),h.push(` __reconcile(${K}, __s, ${Q}, ${this._self}, ${X}, ${L}${T});`),h.push(` ${l}`),h.push("}"),this._setupLines.push(h.join(`
|
|
24
|
+
`)),K},F.generateChildComponent=function(u,A){this._pendingAutoWire=!1;let Y=this.newElementVar("inst"),_=this.newElementVar("el"),{propsCode:Z,reactiveProps:w,eventBindings:z,childrenSetupLines:X}=this.buildComponentProps(A),K=this._self;this._createLines.push(`${Y} = new ${u}(${Z});`),this._createLines.push(`${_} = ${Y}._root = ${Y}._create();`),this._createLines.push(`(${K}._children || (${K}._children = [])).push(${Y});`);for(let{event:D,value:R}of z){let J=this.generateInComponent(R,"value");this._createLines.push(`${_}.addEventListener('${D}', (e) => __batch(() => (${J})(e)));`)}this._setupLines.push(`try { if (${Y}._setup) ${Y}._setup(); if (${Y}.mounted) ${Y}.mounted(); } catch (__e) { __handleComponentError(__e, ${Y}); }`);for(let{key:D,valueCode:R}of w)this._pushEffect(`if (${Y}.${D}) ${Y}.${D}.value = ${R};`);for(let D of X)this._setupLines.push(D);return _},F.buildComponentProps=function(u){let A=[],Y=[],_=[],Z=null,w=[],z=(D,R)=>{if(D.startsWith("@")){_.push({event:D.slice(1).split(".")[0],value:R});return}if(this.reactiveMembers&&(typeof R==="string"&&this.reactiveMembers.has(R)||Array.isArray(R)&&R[0]==="."&&R[1]==="this"&&typeof R[2]==="string"&&this.reactiveMembers.has(R[2]))){let Q=typeof R==="string"?R:R[2];A.push(`${D}: ${this._self}.${Q}`)}else{let Q=this.generateInComponent(R,"value");if(A.push(`${D}: ${Q}`),this.hasReactiveDeps(R))Y.push({key:D,valueCode:Q})}},X=(D)=>{for(let R=1;R<D.length;R++){let[J,Q]=D[R];if(typeof J==="string")z(J,Q);else if(Array.isArray(J)&&J[0]==="."&&J[1]==="this"&&typeof J[2]==="string")_.push({event:J[2],value:Q})}};for(let D of u)if(this.is(D,"object"))X(D);else if(Array.isArray(D)&&(D[0]==="->"||D[0]==="=>")){let R=D[2];if(R){if(this.is(R,"block")){let J=[];for(let Q of R.slice(1))if(this.is(Q,"object"))X(Q);else J.push(Q);R=J.length>0?["block",...J]:null}if(R){let J=this._createLines,Q=this._setupLines;this._createLines=[],this._setupLines=[],Z=this.generateTemplateBlock(R);let q=this._createLines,O=this._setupLines;this._createLines=J,this._setupLines=Q;for(let M of q)this._createLines.push(M);w.push(...O),A.push(`children: ${Z}`)}}}return{propsCode:A.length>0?`{ ${A.join(", ")} }`:"{}",reactiveProps:Y,eventBindings:_,childrenSetupLines:w}},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 A of u)if(this.hasReactiveDeps(A))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`
|
|
25
25
|
// ============================================================================
|
|
26
26
|
// Rip Component Runtime
|
|
27
27
|
// ============================================================================
|
|
@@ -292,25 +292,25 @@ if (typeof globalThis !== 'undefined') {
|
|
|
292
292
|
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
`}}function W1($){let U="",
|
|
296
|
-
`)>=0){let
|
|
297
|
-
`).map((
|
|
298
|
-
`)}let
|
|
299
|
-
`))return" ".repeat(U)+w}let u=" ".repeat(U),
|
|
300
|
-
`))
|
|
295
|
+
`}}function W1($){let U="",F=$<0?-$<<1|1:$<<1;do{let W=F&31;if(F>>>=5,F>0)W|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[W]}while(F>0);return U}class l1{constructor($,U,F=null){this.file=$,this.source=U,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 U=this.names.length;return this.names.push($),this.nameIndex.set($,U),U}addMapping($,U,F,W,f){if(this.ensureLine($),this.currentLine!==$)this.prevGenCol=0,this.currentLine=$;if(F==null){this.lines[$].push(W1(U-this.prevGenCol)),this.prevGenCol=U;return}this.mappings.push({genLine:$,genCol:U,origLine:F,origCol:W});let u=W1(U-this.prevGenCol);if(this.prevGenCol=U,u+=W1(0),u+=W1(F-this.prevOrigLine),this.prevOrigLine=F,u+=W1(W-this.prevOrigCol),this.prevOrigCol=W,f!=null){let A=this.addName(f);u+=W1(A-this.prevNameIdx),this.prevNameIdx=A}this.lines[$].push(u)}toReverseMap(){let $=new Map;for(let U of this.mappings)if(!$.has(U.origLine))$.set(U.origLine,{genLine:U.genLine,genCol:U.genCol});return $}toJSON(){let $=this.lines.map((F)=>F.join(",")).join(";"),U={version:3,file:this.file,sources:[this.source],names:this.names,mappings:$};if(this.sourceContent!=null)U.sourcesContent=[this.sourceContent];return JSON.stringify(U)}}var V=($,U)=>$ instanceof String?$[U]:void 0,j=($)=>$ instanceof String?$.valueOf():$,l3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function P1($){if(!Array.isArray($)||$.length===0)return!1;let U=$[0]?.valueOf?.()??$[0];if(l3.has(U))return!0;return $.length<=4&&!$.some(Array.isArray)}function Z1($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let U=String($);if(U[0]==="/"&&U.indexOf(`
|
|
296
|
+
`)>=0){let F=U.match(/\/([gimsuvy]*)$/),W=F?F[1]:"",f=U.slice(1);return f=W?f.slice(0,-W.length-1):f.slice(0,-1),`"/${f.split(`
|
|
297
|
+
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${W}"`}return U}function n($,U=0,F=!1){if(!Array.isArray($))return Z1($);if(F&&$[0]==="program"){let Z=$[1],z=[Array.isArray(Z)?"(program":"(program "+Z1(Z)],X=Array.isArray(Z)?1:2;for(let K=X;K<$.length;K++){let D=n($[K],2,!1);z.push(D[0]==="("?" "+D:D)}return z.push(")"),z.join(`
|
|
298
|
+
`)}let W=$[0];if(P1($)&&$.slice(1).every((Z)=>!Array.isArray(Z)||P1(Z))){let w=`(${$.map((z)=>Array.isArray(z)?n(z,0,!1):Z1(z)).join(" ")})`;if(!w.includes(`
|
|
299
|
+
`))return" ".repeat(U)+w}let u=" ".repeat(U),A;if(Array.isArray(W)){if(A=n(W,0,!1),A.includes(`
|
|
300
|
+
`))A=A.split(`
|
|
301
301
|
`).map((w,z)=>z===0?w:" ".repeat(U+2)+w).join(`
|
|
302
|
-
`)}else
|
|
303
|
-
`)){
|
|
304
|
-
`)}class
|
|
305
|
-
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[U,...
|
|
306
|
-
`))return`\`${
|
|
307
|
-
`),z=!1;if(u.length>0)f+=u.map((
|
|
308
|
-
`),z=!0;if(this.programVars.size>0){let
|
|
309
|
-
`;f+=`let ${
|
|
302
|
+
`)}else A=Z1(W);let Y=[`${u}(${A}`],_=W==="block";for(let Z=1;Z<$.length;Z++){let w=$[Z];if(!Array.isArray(w))Y[Y.length-1]+=" "+Z1(w);else{let z=P1(w)&&w.every((X)=>!Array.isArray(X)||P1(X));if(!_&&z){let X=n(w,0,!1);if(!X.includes(`
|
|
303
|
+
`)){Y[Y.length-1]+=" "+X;continue}}Y.push(n(w,U+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
|
|
304
|
+
`)}class g{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",presence:"generatePresence","?:":"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",offer:"generateOffer",accept:"generateAccept",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 U=this.generate($);if(this.sourceMap)this.buildMappings();return U}buildMappings(){if(!this._stmtEntries)return;let $=this._preambleLines;for(let U of this._stmtEntries){if(U.loc)this.sourceMap.addMapping($,0,U.loc.r,U.loc.c);$+=U.code.split(`
|
|
305
|
+
`).length}}collectProgramVariables($){if(!Array.isArray($))return;let[U,...F]=$;if(U=j(U),Array.isArray(U)){$.forEach((W)=>this.collectProgramVariables(W));return}if(U==="export"||U==="export-default"||U==="export-all"||U==="export-from")return;if(U==="state"||U==="computed"){let[W]=F,f=j(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(f);return}if(U==="readonly")return;if(U==="component")return;if(g.ASSIGNMENT_OPS.has(U)){let[W,f]=F;if(typeof W==="string"||W instanceof String){let u=j(W);if(!this.reactiveVars?.has(u))this.programVars.add(u)}else if(this.is(W,"array"))this.collectVarsFromArray(W,this.programVars);else if(this.is(W,"object"))this.collectVarsFromObject(W,this.programVars);this.collectProgramVariables(f);return}if(U==="def"||U==="->"||U==="=>"||U==="effect")return;if(U==="if"){let[W,f,u]=F;if(this.collectProgramVariables(W),this.collectProgramVariables(f),u)this.collectProgramVariables(u);return}if(U==="try"){if(this.collectProgramVariables(F[0]),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[W,f]=F[1];if(W&&this.is(W,"object"))W.slice(1).forEach((u)=>{if(Array.isArray(u)&&u.length===2&&typeof u[1]==="string")this.programVars.add(u[1])});else if(W&&this.is(W,"array"))W.slice(1).forEach((u)=>{if(typeof u==="string")this.programVars.add(u)});this.collectProgramVariables(f)}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((W)=>this.collectProgramVariables(W))}collectFunctionVariables($){let U=new Set,F=(W)=>{if(!Array.isArray(W))return;let[f,...u]=W;if(f=j(f),Array.isArray(f)){W.forEach((A)=>F(A));return}if(g.ASSIGNMENT_OPS.has(f)){let[A,Y]=u;if(typeof A==="string")U.add(A);else if(this.is(A,"array"))this.collectVarsFromArray(A,U);else if(this.is(A,"object"))this.collectVarsFromObject(A,U);F(Y);return}if(f==="def"||f==="->"||f==="=>"||f==="effect")return;if(f==="try"){if(F(u[0]),u.length>=2&&Array.isArray(u[1])&&u[1].length===2&&u[1][0]!=="block"){let[A,Y]=u[1];if(A&&this.is(A,"object"))A.slice(1).forEach((_)=>{if(Array.isArray(_)&&_.length===2&&typeof _[1]==="string")U.add(_[1])});else if(A&&this.is(A,"array"))A.slice(1).forEach((_)=>{if(typeof _==="string")U.add(_)});F(Y)}if(u.length===3)F(u[2]);else if(u.length===2&&(!Array.isArray(u[1])||u[1][0]==="block"))F(u[1]);return}u.forEach((A)=>F(A))};return F($),U}generate($,U="statement"){if($ instanceof String){if(V($,"await")===!0)return`await ${j($)}()`;if(V($,"predicate"))return`(${j($)} != null)`;if(V($,"delimiter")==="///"&&V($,"heregex")){let Y=j($),_=Y.match(/^\/(.*)\/([gimsuvy]*)$/s);if(_){let[,Z,w]=_;return`/${this.processHeregex(Z)}/${w}`}return Y}let A=V($,"quote");if(A){let Y=j($);if(A==='"""'||A==="'''"){let Z=this.extractStringContent($);return Z=Z.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${Z}\``}if(Y[0]===A)return Y;let _=Y.slice(1,-1);return`${A}${_}${A}`}$=j($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let A=$.slice(1,-1);if(A.includes(`
|
|
306
|
+
`))return`\`${A.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=A.includes("'")&&!A.includes('"')?'"':"'",_=A.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${_}${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[F,...W]=$,f=V(F,"await");F=j(F);let u=g.GENERATORS[F];if(u)return this[u](F,W,U,$);if(typeof F==="string"&&!F.startsWith('"')&&!F.startsWith("'")){if(g.NUMBER_START_RE.test(F))return F;if(F==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let w=W.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`super.${this.currentMethodName}(${w})`}if(U==="statement"&&W.length===1){let w=this.findPostfixConditional(W[0]);if(w){let z=this.rebuildWithoutConditional(w),X=this.generate(F,"value"),K=this.generate(w.condition,"value"),D=this.generate(z,"value"),R=`${X}(${D})`;return`if (${K}) ${R}`}}let A=f===!0,Y=this.generate(F,"value"),_=W.map((w)=>this.unwrap(this.generate(w,"value"))).join(", "),Z=`${Y}(${_})`;return A?`await ${Z}`:Z}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"||j(F[2])==="new")){let w=F[1],z=this.generate(w,"value"),X=W.map((D)=>this.unwrap(this.generate(D,"value"))).join(", ");return`new ${Array.isArray(w)?`(${z})`:z}(${X})`}if(U==="statement"&&W.length===1){let w=this.findPostfixConditional(W[0]);if(w){let z=this.rebuildWithoutConditional(w),X=this.generate(F,"value"),K=this.generate(w.condition,"value"),D=this.generate(z,"value"),R=`${X}(${D})`;return`if (${K}) ${R}`}}let A=!1,Y;if(F[0]==="."&&V(F[2],"await")===!0){A=!0;let[w,z]=F.slice(1),X=this.generate(w,"value");Y=`${g.NUMBER_LITERAL_RE.test(X)||(this.is(w,"object")||this.is(w,"await")||this.is(w,"yield"))?`(${X})`:X}.${j(z)}`}else Y=this.generate(F,"value");let _=W.map((w)=>this.unwrap(this.generate(w,"value"))).join(", "),Z=`${Y}(${_})`;return A?`await ${Z}`:Z}throw Error(`Unknown s-expression type: ${F}`)}generateProgram($,U,F,W){let f="",u=[],A=[],Y=[];for(let R of U){if(!Array.isArray(R)){Y.push(R);continue}let J=R[0];if(J==="import")u.push(R);else if(J==="export"||J==="export-default"||J==="export-all"||J==="export-from")A.push(R);else Y.push(R)}let _=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],Z=Y.map((R,J)=>{let Q=Y.length===1&&u.length===0&&A.length===0,q=this.is(R,"object"),O=q&&R.length===2&&Array.isArray(R[1])&&Array.isArray(R[1][1])&&R[1][1][0]==="comprehension",M=this.is(R,"comprehension")||this.is(R,"object-comprehension")||this.is(R,"do-iife"),G=this.programVars.size===0,I=Q&&q&&G&&!M&&!O,P=J===Y.length-1&&M,E;if(I)E=`(${this.generate(R,"value")})`;else if(P)E=this.generate(R,"value");else E=this.generate(R,"statement");if(E&&!E.endsWith(";")){let S=Array.isArray(R)?R[0]:null;if(!_.includes(S)||!E.endsWith("}"))E+=";"}let B=Array.isArray(R)?R.loc:null;return{code:E,loc:B}}),w=Z.map((R)=>R.code).join(`
|
|
307
|
+
`),z=!1;if(u.length>0)f+=u.map((R)=>this.addSemicolon(R,this.generate(R,"statement"))).join(`
|
|
308
|
+
`),z=!0;if(this.programVars.size>0){let R=Array.from(this.programVars).sort().join(", ");if(z)f+=`
|
|
309
|
+
`;f+=`let ${R};
|
|
310
310
|
`,z=!0}let X=this.options.skipPreamble,K=this.options.skipRuntimes;if(!X){if(z)f+=`
|
|
311
|
-
`;f+=
|
|
312
|
-
`,z=!0;if(this.helpers.has("modulo"))f+=`${
|
|
313
|
-
`,z=!0;if(this.helpers.has("toMatchable"))f+=`${
|
|
311
|
+
`;f+=J1(),z=!0;let R=K?"var":"const";if(this.helpers.has("slice"))f+=`${R} slice = [].slice;
|
|
312
|
+
`,z=!0;if(this.helpers.has("modulo"))f+=`${R} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
313
|
+
`,z=!0;if(this.helpers.has("toMatchable"))f+=`${R} toMatchable = (v, allowNewlines) => {
|
|
314
314
|
`,f+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
315
315
|
`,f+=` if (v == null) return "";
|
|
316
316
|
`,f+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
@@ -324,8 +324,8 @@ if (typeof globalThis !== 'undefined') {
|
|
|
324
324
|
`,f+=` }
|
|
325
325
|
`,f+=` return "";
|
|
326
326
|
`,f+=`};
|
|
327
|
-
`,z=!0}let D="";if(
|
|
328
|
-
`+
|
|
327
|
+
`,z=!0}let D="";if(A.length>0)D=`
|
|
328
|
+
`+A.map((R)=>this.addSemicolon(R,this.generate(R,"statement"))).join(`
|
|
329
329
|
`);if(this.usesReactivity&&!X){if(K)f+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
330
330
|
`;else if(typeof globalThis<"u"&&globalThis.__rip)f+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
331
331
|
`;else f+=this.getReactiveRuntime();z=!0}if(this.usesTemplates&&!X){if(K)f+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
@@ -333,146 +333,146 @@ if (typeof globalThis !== 'undefined') {
|
|
|
333
333
|
`;else f+=this.getComponentRuntime();z=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!X)f+=`var DATA;
|
|
334
334
|
_setDataSection();
|
|
335
335
|
`,z=!0;if(z&&f.length>0)f+=`
|
|
336
|
-
`;if(this._stmtEntries=
|
|
336
|
+
`;if(this._stmtEntries=Z,this._preambleLines=f.length===0?0:f.split(`
|
|
337
337
|
`).length-1,f+=w,f+=D,this.dataSection!==null&&this.dataSection!==void 0)f+=`
|
|
338
338
|
|
|
339
339
|
function _setDataSection() {
|
|
340
340
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
341
|
-
}`;return f}generateBinaryOp($,U,W,F){if(($==="+"||$==="-")&&U.length===1)return`(${$}${this.generate(U[0],"value")})`;let[f,u]=U;if($==="*"){let A=f?.valueOf?.()??f;if(typeof A==="string"&&/^["']/.test(A))return`${this.generate(f,"value")}.repeat(${this.generate(u,"value")})`}let Y=new Set(["<",">","<=",">="]);if(Y.has($)&&Array.isArray(f)){let A=f[0]?.valueOf?.()??f[0];if(Y.has(A)){let _=this.generate(f[1],"value"),R=this.generate(f[2],"value"),w=this.generate(u,"value");return`((${_} ${A} ${R}) && (${R} ${$} ${w}))`}}if($==="!?"){let A=this.generate(f,"value"),_=this.generate(u,"value");return`(${A} !== undefined ? ${A} : ${_})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(f,"value")} ${$} ${this.generate(u,"value")})`}generateModulo($,U){let[W,F]=U;return this.helpers.add("modulo"),`modulo(${this.generate(W,"value")}, ${this.generate(F,"value")})`}generateModuloAssign($,U){let[W,F]=U;this.helpers.add("modulo");let f=this.generate(W,"value"),u=this.generate(F,"value");return`${f} = modulo(${f}, ${u})`}generateFloorDiv($,U){let[W,F]=U;return`Math.floor(${this.generate(W,"value")} / ${this.generate(F,"value")})`}generateFloorDivAssign($,U){let[W,F]=U,f=this.generate(W,"value"),u=this.generate(F,"value");return`${f} = Math.floor(${f} / ${u})`}generateAssignment($,U,W,F){let[f,u]=U,Y=$==="?="?"??=":$,A=this.is(u,"->")||this.is(u,"=>")||this.is(u,"def");if(f instanceof String&&j(f,"await")!==void 0&&!A){let Z=j(f,"await")===!0?"!":"&";throw Error(`Cannot use ${Z} sigil in variable declaration '${S(f)}'.`)}if(f instanceof String&&j(f,"await")===!0&&A)this.nextFunctionIsVoid=!0;let _=this.is(f,"array",0),R=this.is(f,"object",0);if(_||R){let Z=this.generate(u,"value");return R&&W==="statement"?`(${Z})`:Z}if(Array.isArray(u)&&Y==="="&&u[0]==="control"){let[,Z,J,Q]=u,H=S(Z),O=Q[0]==="return",M=this.generate(f,"value"),G=this.generate(J,"value"),B=Q.length>1?Q[1]:null,q=O?B?`return ${this.generate(B,"value")}`:"return":B?`throw ${this.generate(B,"value")}`:"throw new Error()";if(W==="value"){if(H==="??")return`(() => { const __v = ${G}; if (__v == null) ${q}; return (${M} = __v); })()`;if(H==="||")return`(() => { const __v = ${G}; if (!__v) ${q}; return (${M} = __v); })()`;return`(() => { const __v = ${G}; if (__v) ${q}; return (${M} = __v); })()`}if(H==="??")return`if ((${M} = ${G}) == null) ${q}`;if(H==="||")return`if (!(${M} = ${G})) ${q}`;return`if ((${M} = ${G})) ${q}`}if(this.is(f,"array")){let Z=f.slice(1).findIndex((J)=>this.is(J,"...")||J==="...");if(Z!==-1&&Z<f.length-2){let J=f.slice(1),Q=J.slice(Z+1),H=Q.length;if(H>0){let O=this.generate(u,"value"),G=J.slice(0,Z).map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", "),B=Q.map((I)=>I===","?"":typeof I==="string"?I:this.generate(I,"value")).join(", ");this.helpers.add("slice"),J.forEach((I)=>{if(I===","||I==="...")return;if(typeof I==="string")this.programVars.add(I);else if(this.is(I,"...")&&typeof I[1]==="string")this.programVars.add(I[1])});let q=J[Z],P=this.is(q,"...")?q[1]:null,E=[];if(G)E.push(`[${G}] = ${O}`);if(P)E.push(`[...${P}] = ${O}.slice(${Z}, -${H})`);return E.push(`[${B}] = slice.call(${O}, -${H})`),E.join(", ")}}}if(W==="statement"&&$==="="&&Array.isArray(u)&&(u[0]==="||"||u[0]==="&&")&&u.length===3){let[Z,J,Q]=u;if(this.is(Q,"if")&&Q.length===3){let[,H,O]=Q,M=Array.isArray(O)&&O.length===1?O[0]:O,G=[Z,J,M],B=this.generate(f,"value"),q=this.generate(H,"value"),P=this.generate(G,"value");return`if (${q}) ${B} = ${P}`}}if(W==="statement"&&$==="="&&Array.isArray(u)&&u.length===3){let[Z,J,Q]=u,H=Array.isArray(Q)&&Q.length===1&&(!Array.isArray(Q[0])||Q[0][0]!=="block");if(Z==="if"&&H){let O=Array.isArray(Q)&&Q.length===1?Q[0]:Q,M=this.generate(f,"value"),G=this.unwrapLogical(this.generate(J,"value")),B=this.generate(O,"value");return`if (${G}) ${M} = ${B}`}}let w;if(f instanceof String&&j(f,"await")!==void 0)w=S(f);else if(typeof f==="string"&&this.reactiveVars?.has(f))w=`${f}.value`;else w=this.generate(f,"value");let z=this.generate(u,"value");if(!this.is(u,"object"))z=this.unwrap(z);let K=W==="value",D=W==="statement"&&this.is(f,"object");if(K||D)return`(${w} ${Y} ${z})`;return`${w} ${Y} ${z}`}generatePropertyAccess($,U,W,F){let[f,u]=U;if(this._atParamMap&&f==="this"){let R=this._atParamMap.get(S(u));if(R)return R}let Y=this.generate(f,"value"),_=b.NUMBER_LITERAL_RE.test(Y)||Y.startsWith("await ")||(this.is(f,"object")||this.is(f,"yield"))?`(${Y})`:Y;if(j(u,"await")===!0)return`await ${_}.${S(u)}()`;if(j(u,"predicate"))return`(${_}.${S(u)} != null)`;return`${_}.${S(u)}`}generateOptionalProperty($,U){let[W,F]=U;return`${this.generate(W,"value")}?.${F}`}generateRegexIndex($,U){let[W,F,f]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(W,"value"),Y=this.generate(F,"value"),A=f!==null?this.generate(f,"value"):"0",_=Y.includes("/m")?", true":"";return`(_ = toMatchable(${u}${_}).match(${Y})) && _[${A}]`}generateIndexAccess($,U){let[W,F]=U;if(this.is(F,"..")||this.is(F,"...")){let f=F[0]==="..",u=this.generate(W,"value"),[Y,A]=F.slice(1),_=(X)=>{if(X===null)return null;let K=S(X)??X;if(typeof K==="number")return K;if(typeof K==="string"&&/^\d+$/.test(K))return+K;if(Array.isArray(X)&&X[0]==="-"&&X.length===2){let D=S(X[1])??X[1];if(typeof D==="number")return-D;if(typeof D==="string"&&/^\d+$/.test(D))return-D}return null},R=(X,K,D)=>{let Z=_(D);if(Z!==null&&Z!==-1)return`${u}.slice(${X}, ${Z+1})`;return`${u}.slice(${X}, +${K} + 1 || 9e9)`};if(Y===null&&A===null)return`${u}.slice()`;if(Y===null){if(f&&this.is(A,"-",1)&&(S(A[1])??A[1])==1)return`${u}.slice(0)`;let X=this.generate(A,"value");return f?R("0",X,A):`${u}.slice(0, ${X})`}if(A===null)return`${u}.slice(${this.generate(Y,"value")})`;let w=this.generate(Y,"value");if(f&&this.is(A,"-",1)&&(S(A[1])??A[1])==1)return`${u}.slice(${w})`;let z=this.generate(A,"value");return f?R(w,z,A):`${u}.slice(${w}, ${z})`}if(this.is(F,"-",1)){let f=S(F[1])??F[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.generate(W,"value")}.at(-${f})`}return`${this.generate(W,"value")}[${this.unwrap(this.generate(F,"value"))}]`}generateOptIndex($,U){let[W,F]=U;if(this.is(F,"-",1)){let f=S(F[1])??F[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.generate(W,"value")}?.at(-${f})`}return`${this.generate(W,"value")}?.[${this.generate(F,"value")}]`}generateOptCall($,U){let[W,...F]=U;return`${this.generate(W,"value")}?.(${F.map((f)=>this.generate(f,"value")).join(", ")})`}generateDef($,U,W,F){let[f,u,Y]=U,A=j(f,"await")===!0,_=S(f),R=this.generateParamList(u),w=this.generateFunctionBody(Y,u,A),z=this.containsAwait(Y),X=this.containsYield(Y);return`${z?"async ":""}function${X?"*":""} ${_}(${R}) ${w}`}generateThinArrow($,U,W,F){let[f,u]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt(u))f=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let A=this.generateParamList(f),_=this.generateFunctionBody(u,f,Y),R=this.containsAwait(u),w=this.containsYield(u),z=`${R?"async ":""}function${w?"*":""}(${A}) ${_}`;return W==="value"?`(${z})`:z}generateFatArrow($,U,W,F){let[f,u]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt(u))f=["it"];let Y=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let A=this.generateParamList(f),R=f.length===1&&typeof f[0]==="string"&&!A.includes("=")&&!A.includes("...")&&!A.includes("[")&&!A.includes("{")?A:`(${A})`,z=this.containsAwait(u)?"async ":"";if(!Y){if(this.is(u,"block")&&u.length===2){let K=u[1];if(!Array.isArray(K)||K[0]!=="return"){let D=this.generate(K,"value");if(D[0]==="{")D=`(${D})`;return`${z}${R} => ${D}`}}if(!Array.isArray(u)||u[0]!=="block"){let K=this.generate(u,"value");if(K[0]==="{")K=`(${K})`;return`${z}${R} => ${K}`}}let X=this.generateFunctionBody(u,f,Y);return`${z}${R} => ${X}`}generateReturn($,U,W,F){if(U.length===0)return"return";let[f]=U;if(this.sideEffectOnly)return"return";if(this.is(f,"if")){let[,u,Y,...A]=f;if(A.length===0){let _=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(u,"value")}) return ${this.generate(_,"value")}`}}if(this.is(f,"new")&&Array.isArray(f[1])&&f[1][0]==="if"){let[,u,Y]=f[1],A=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (${this.generate(u,"value")}) return ${this.generate(["new",A],"value")}`}return`return ${this.generate(f,"value")}`}generateState($,U){let[W,F]=U;this.usesReactivity=!0;let f=S(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(f),`const ${f} = __state(${this.generate(F,"value")})`}generateComputed($,U){let[W,F]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let f=S(W)??W;if(this.reactiveVars.add(f),this.is(F,"block")&&F.length>2)return`const ${f} = __computed(() => ${this.generateFunctionBody(F)})`;return`const ${f} = __computed(() => ${this.generate(F,"value")})`}generateReadonly($,U){let[W,F]=U;return`const ${S(W)??W} = ${this.generate(F,"value")}`}generateEffect($,U){let[W,F]=U;this.usesReactivity=!0;let f;if(this.is(F,"block"))f=this.generateFunctionBody(F);else if(this.is(F,"->")||this.is(F,"=>")){let Y=this.generate(F,"value");if(W)return`const ${S(W)??this.generate(W,"value")} = __effect(${Y})`;return`__effect(${Y})`}else f=`{ ${this.generate(F,"value")}; }`;let u=`__effect(() => ${f})`;if(W)return`const ${S(W)??this.generate(W,"value")} = ${u}`;return u}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,U){return`(${this.generate(U[0],"value")} != null)`}generateDefined($,U){return`(${this.generate(U[0],"value")} !== undefined)`}generatePresence($,U){return`(${this.generate(U[0],"value")} ? true : undefined)`}generateTernary($,U,W){let[F,f,u]=U;if((f?.[0]?.valueOf?.()??f?.[0])==="="&&Array.isArray(f)){let A=this.generate(f[1],"value"),_=this.generate(f[2],"value"),R=this.generate(u,"value");return`${A} = (${this.unwrap(this.generate(F,"value"))} ? ${_} : ${R})`}return`(${this.unwrap(this.generate(F,"value"))} ? ${this.generate(f,"value")} : ${this.generate(u,"value")})`}generatePipe($,U){let[W,F]=U,f=this.generate(W,"value");if(Array.isArray(F)&&F.length>1){let u=F[0];if(Array.isArray(u)||typeof u==="string"&&/^[a-zA-Z_$]/.test(u)){let A=this.generate(u,"value"),_=F.slice(1).map((R)=>this.generate(R,"value"));return`${A}(${f}, ${_.join(", ")})`}}return`${this.generate(F,"value")}(${f})`}generateLoop($,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN($,U){let[W,F]=U;return`for (let it = 0; it < ${this.generate(W,"value")}; it++) ${this.generateLoopBody(F)}`}generateAwait($,U){return`await ${this.generate(U[0],"value")}`}generateYield($,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom($,U){return`yield* ${this.generate(U[0],"value")}`}generateIf($,U,W,F){let[f,u,...Y]=U;return W==="value"?this.generateIfAsExpression(f,u,Y):this.generateIfAsStatement(f,u,Y)}generateForIn($,U,W,F){let[f,u,Y,A,_]=U;if(W==="value"&&this.comprehensionDepth===0){let J=["for-in",f,u,Y];return this.generate(["comprehension",_,[J],A?[A]:[]],W)}let R=Array.isArray(f)?f:[f],w=R.length===0,[z,X]=w?["_i",null]:R,K=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(Y&&Y!==null){let J=this.generate(u,"value"),Q=X||"_i",H=this.generate(Y,"value"),O=this.is(Y,"-",1),M=O&&(Y[1]==="1"||Y[1]===1||S(Y[1])==="1"),G=!O&&(Y==="1"||Y===1||S(Y)==="1"),B;if(M)B=`for (let ${Q} = ${J}.length - 1; ${Q} >= 0; ${Q}--) `;else if(G)B=`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q}++) `;else if(O)B=`for (let ${Q} = ${J}.length - 1; ${Q} >= 0; ${Q} += ${H}) `;else B=`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q} += ${H}) `;if(this.is(_,"block")){let q=_.slice(1);this.indentLevel++;let P=[];if(!w)P.push(`const ${K} = ${J}[${Q}];`);if(A)P.push(`if (${this.generate(A,"value")}) {`),this.indentLevel++,P.push(...this.formatStatements(q)),this.indentLevel--,P.push(this.indent()+"}");else P.push(...q.map((E)=>this.addSemicolon(E,this.generate(E,"statement"))));return this.indentLevel--,B+`{
|
|
341
|
+
}`;return f}generateBinaryOp($,U,F,W){if(($==="+"||$==="-")&&U.length===1)return`(${$}${this.generate(U[0],"value")})`;let[f,u]=U;if($==="*"){let Y=f?.valueOf?.()??f;if(typeof Y==="string"&&/^["']/.test(Y))return`${this.generate(f,"value")}.repeat(${this.generate(u,"value")})`}let A=new Set(["<",">","<=",">="]);if(A.has($)&&Array.isArray(f)){let Y=f[0]?.valueOf?.()??f[0];if(A.has(Y)){let _=this.generate(f[1],"value"),Z=this.generate(f[2],"value"),w=this.generate(u,"value");return`((${_} ${Y} ${Z}) && (${Z} ${$} ${w}))`}}if($==="!?"){let Y=this.generate(f,"value"),_=this.generate(u,"value");return`(${Y} !== undefined ? ${Y} : ${_})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(f,"value")} ${$} ${this.generate(u,"value")})`}generateModulo($,U){let[F,W]=U;return this.helpers.add("modulo"),`modulo(${this.generate(F,"value")}, ${this.generate(W,"value")})`}generateModuloAssign($,U){let[F,W]=U;this.helpers.add("modulo");let f=this.generate(F,"value"),u=this.generate(W,"value");return`${f} = modulo(${f}, ${u})`}generateFloorDiv($,U){let[F,W]=U;return`Math.floor(${this.generate(F,"value")} / ${this.generate(W,"value")})`}generateFloorDivAssign($,U){let[F,W]=U,f=this.generate(F,"value"),u=this.generate(W,"value");return`${f} = Math.floor(${f} / ${u})`}generateAssignment($,U,F,W){let[f,u]=U,A=$==="?="?"??=":$,Y=this.is(u,"->")||this.is(u,"=>")||this.is(u,"def");if(f instanceof String&&V(f,"await")!==void 0&&!Y){let R=V(f,"await")===!0?"!":"&";throw Error(`Cannot use ${R} sigil in variable declaration '${j(f)}'.`)}if(f instanceof String&&V(f,"await")===!0&&Y)this.nextFunctionIsVoid=!0;let _=this.is(f,"array",0),Z=this.is(f,"object",0);if(_||Z){let R=this.generate(u,"value");return Z&&F==="statement"?`(${R})`:R}if(Array.isArray(u)&&A==="="&&u[0]==="control"){let[,R,J,Q]=u,q=j(R),O=Q[0]==="return",M=this.generate(f,"value"),G=this.generate(J,"value"),I=Q.length>1?Q[1]:null,H=O?I?`return ${this.generate(I,"value")}`:"return":I?`throw ${this.generate(I,"value")}`:"throw new Error()";if(F==="value"){if(q==="??")return`(() => { const __v = ${G}; if (__v == null) ${H}; return (${M} = __v); })()`;if(q==="||")return`(() => { const __v = ${G}; if (!__v) ${H}; return (${M} = __v); })()`;return`(() => { const __v = ${G}; if (__v) ${H}; return (${M} = __v); })()`}if(q==="??")return`if ((${M} = ${G}) == null) ${H}`;if(q==="||")return`if (!(${M} = ${G})) ${H}`;return`if ((${M} = ${G})) ${H}`}if(this.is(f,"array")){let R=f.slice(1).findIndex((J)=>this.is(J,"...")||J==="...");if(R!==-1&&R<f.length-2){let J=f.slice(1),Q=J.slice(R+1),q=Q.length;if(q>0){let O=this.generate(u,"value"),G=J.slice(0,R).map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),I=Q.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");this.helpers.add("slice"),J.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=J[R],P=this.is(H,"...")?H[1]:null,E=[];if(G)E.push(`[${G}] = ${O}`);if(P)E.push(`[...${P}] = ${O}.slice(${R}, -${q})`);return E.push(`[${I}] = slice.call(${O}, -${q})`),E.join(", ")}}}if(F==="statement"&&$==="="&&Array.isArray(u)&&(u[0]==="||"||u[0]==="&&")&&u.length===3){let[R,J,Q]=u;if(this.is(Q,"if")&&Q.length===3){let[,q,O]=Q,M=Array.isArray(O)&&O.length===1?O[0]:O,G=[R,J,M],I=this.generate(f,"value"),H=this.generate(q,"value"),P=this.generate(G,"value");return`if (${H}) ${I} = ${P}`}}if(F==="statement"&&$==="="&&Array.isArray(u)&&u.length===3){let[R,J,Q]=u,q=Array.isArray(Q)&&Q.length===1&&(!Array.isArray(Q[0])||Q[0][0]!=="block");if(R==="if"&&q){let O=Array.isArray(Q)&&Q.length===1?Q[0]:Q,M=this.generate(f,"value"),G=this.unwrapLogical(this.generate(J,"value")),I=this.generate(O,"value");return`if (${G}) ${M} = ${I}`}}let w;if(f instanceof String&&V(f,"await")!==void 0)w=j(f);else if(typeof f==="string"&&this.reactiveVars?.has(f))w=`${f}.value`;else w=this.generate(f,"value");let z=this.generate(u,"value");if(!this.is(u,"object"))z=this.unwrap(z);let K=F==="value",D=F==="statement"&&this.is(f,"object");if(K||D)return`(${w} ${A} ${z})`;return`${w} ${A} ${z}`}generatePropertyAccess($,U,F,W){let[f,u]=U;if(this._atParamMap&&f==="this"){let Z=this._atParamMap.get(j(u));if(Z)return Z}let A=this.generate(f,"value"),_=g.NUMBER_LITERAL_RE.test(A)||A.startsWith("await ")||(this.is(f,"object")||this.is(f,"yield"))?`(${A})`:A;if(V(u,"await")===!0)return`await ${_}.${j(u)}()`;if(V(u,"predicate"))return`(${_}.${j(u)} != null)`;return`${_}.${j(u)}`}generateOptionalProperty($,U){let[F,W]=U;return`${this.generate(F,"value")}?.${W}`}generateRegexIndex($,U){let[F,W,f]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.generate(F,"value"),A=this.generate(W,"value"),Y=f!==null?this.generate(f,"value"):"0",_=A.includes("/m")?", true":"";return`(_ = toMatchable(${u}${_}).match(${A})) && _[${Y}]`}generateIndexAccess($,U){let[F,W]=U;if(this.is(W,"..")||this.is(W,"...")){let f=W[0]==="..",u=this.generate(F,"value"),[A,Y]=W.slice(1),_=(X)=>{if(X===null)return null;let K=j(X)??X;if(typeof K==="number")return K;if(typeof K==="string"&&/^\d+$/.test(K))return+K;if(Array.isArray(X)&&X[0]==="-"&&X.length===2){let D=j(X[1])??X[1];if(typeof D==="number")return-D;if(typeof D==="string"&&/^\d+$/.test(D))return-D}return null},Z=(X,K,D)=>{let R=_(D);if(R!==null&&R!==-1)return`${u}.slice(${X}, ${R+1})`;return`${u}.slice(${X}, +${K} + 1 || 9e9)`};if(A===null&&Y===null)return`${u}.slice()`;if(A===null){if(f&&this.is(Y,"-",1)&&(j(Y[1])??Y[1])==1)return`${u}.slice(0)`;let X=this.generate(Y,"value");return f?Z("0",X,Y):`${u}.slice(0, ${X})`}if(Y===null)return`${u}.slice(${this.generate(A,"value")})`;let w=this.generate(A,"value");if(f&&this.is(Y,"-",1)&&(j(Y[1])??Y[1])==1)return`${u}.slice(${w})`;let z=this.generate(Y,"value");return f?Z(w,z,Y):`${u}.slice(${w}, ${z})`}if(this.is(W,"-",1)){let f=j(W[1])??W[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.generate(F,"value")}.at(-${f})`}return`${this.generate(F,"value")}[${this.unwrap(this.generate(W,"value"))}]`}generateOptIndex($,U){let[F,W]=U;if(this.is(W,"-",1)){let f=j(W[1])??W[1];if(typeof f==="number"||typeof f==="string"&&/^\d+$/.test(f))return`${this.generate(F,"value")}?.at(-${f})`}return`${this.generate(F,"value")}?.[${this.generate(W,"value")}]`}generateOptCall($,U){let[F,...W]=U;return`${this.generate(F,"value")}?.(${W.map((f)=>this.generate(f,"value")).join(", ")})`}generateDef($,U,F,W){let[f,u,A]=U,Y=V(f,"await")===!0,_=j(f),Z=this.generateParamList(u),w=this.generateFunctionBody(A,u,Y),z=this.containsAwait(A),X=this.containsYield(A);return`${z?"async ":""}function${X?"*":""} ${_}(${Z}) ${w}`}generateThinArrow($,U,F,W){let[f,u]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt(u))f=["it"];let A=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(f),_=this.generateFunctionBody(u,f,A),Z=this.containsAwait(u),w=this.containsYield(u),z=`${Z?"async ":""}function${w?"*":""}(${Y}) ${_}`;return F==="value"?`(${z})`:z}generateFatArrow($,U,F,W){let[f,u]=U;if((!f||Array.isArray(f)&&f.length===0)&&this.containsIt(u))f=["it"];let A=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(f),Z=f.length===1&&typeof f[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,z=this.containsAwait(u)?"async ":"";if(!A){if(this.is(u,"block")&&u.length===2){let K=u[1];if(!Array.isArray(K)||K[0]!=="return"){let D=this.generate(K,"value");if(D[0]==="{")D=`(${D})`;return`${z}${Z} => ${D}`}}if(!Array.isArray(u)||u[0]!=="block"){let K=this.generate(u,"value");if(K[0]==="{")K=`(${K})`;return`${z}${Z} => ${K}`}}let X=this.generateFunctionBody(u,f,A);return`${z}${Z} => ${X}`}generateReturn($,U,F,W){if(U.length===0)return"return";let[f]=U;if(this.sideEffectOnly)return"return";if(this.is(f,"if")){let[,u,A,...Y]=f;if(Y.length===0){let _=Array.isArray(A)&&A.length===1?A[0]:A;return`if (${this.generate(u,"value")}) return ${this.generate(_,"value")}`}}if(this.is(f,"new")&&Array.isArray(f[1])&&f[1][0]==="if"){let[,u,A]=f[1],Y=Array.isArray(A)&&A.length===1?A[0]:A;return`if (${this.generate(u,"value")}) return ${this.generate(["new",Y],"value")}`}return`return ${this.generate(f,"value")}`}generateState($,U){let[F,W]=U;this.usesReactivity=!0;let f=j(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(f),`const ${f} = __state(${this.generate(W,"value")})`}generateComputed($,U){let[F,W]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let f=j(F)??F;if(this.reactiveVars.add(f),this.is(W,"block")&&W.length>2)return`const ${f} = __computed(() => ${this.generateFunctionBody(W)})`;return`const ${f} = __computed(() => ${this.generate(W,"value")})`}generateReadonly($,U){let[F,W]=U;return`const ${j(F)??F} = ${this.generate(W,"value")}`}generateEffect($,U){let[F,W]=U;this.usesReactivity=!0;let f;if(this.is(W,"block"))f=this.generateFunctionBody(W);else if(this.is(W,"->")||this.is(W,"=>")){let A=this.generate(W,"value");if(F)return`const ${j(F)??this.generate(F,"value")} = __effect(${A})`;return`__effect(${A})`}else f=`{ ${this.generate(W,"value")}; }`;let u=`__effect(() => ${f})`;if(F)return`const ${j(F)??this.generate(F,"value")} = ${u}`;return u}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential($,U){return`(${this.generate(U[0],"value")} != null)`}generateDefined($,U){return`(${this.generate(U[0],"value")} !== undefined)`}generatePresence($,U){return`(${this.generate(U[0],"value")} ? true : undefined)`}generateTernary($,U,F){let[W,f,u]=U;if((f?.[0]?.valueOf?.()??f?.[0])==="="&&Array.isArray(f)){let Y=this.generate(f[1],"value"),_=this.generate(f[2],"value"),Z=this.generate(u,"value");return`${Y} = (${this.unwrap(this.generate(W,"value"))} ? ${_} : ${Z})`}return`(${this.unwrap(this.generate(W,"value"))} ? ${this.generate(f,"value")} : ${this.generate(u,"value")})`}generatePipe($,U){let[F,W]=U,f=this.generate(F,"value");if(Array.isArray(W)&&W.length>1){let u=W[0];if(Array.isArray(u)||typeof u==="string"&&/^[a-zA-Z_$]/.test(u)){let Y=this.generate(u,"value"),_=W.slice(1).map((Z)=>this.generate(Z,"value"));return`${Y}(${f}, ${_.join(", ")})`}}return`${this.generate(W,"value")}(${f})`}generateLoop($,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN($,U){let[F,W]=U;return`for (let it = 0; it < ${this.generate(F,"value")}; it++) ${this.generateLoopBody(W)}`}generateAwait($,U){return`await ${this.generate(U[0],"value")}`}generateYield($,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom($,U){return`yield* ${this.generate(U[0],"value")}`}generateIf($,U,F,W){let[f,u,...A]=U;return F==="value"?this.generateIfAsExpression(f,u,A):this.generateIfAsStatement(f,u,A)}generateForIn($,U,F,W){let[f,u,A,Y,_]=U;if(F==="value"&&this.comprehensionDepth===0){let J=["for-in",f,u,A];return this.generate(["comprehension",_,[J],Y?[Y]:[]],F)}let Z=Array.isArray(f)?f:[f],w=Z.length===0,[z,X]=w?["_i",null]:Z,K=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(A&&A!==null){let J=this.generate(u,"value"),Q=X||"_i",q=this.generate(A,"value"),O=this.is(A,"-",1),M=O&&(A[1]==="1"||A[1]===1||j(A[1])==="1"),G=!O&&(A==="1"||A===1||j(A)==="1"),I;if(M)I=`for (let ${Q} = ${J}.length - 1; ${Q} >= 0; ${Q}--) `;else if(G)I=`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q}++) `;else if(O)I=`for (let ${Q} = ${J}.length - 1; ${Q} >= 0; ${Q} += ${q}) `;else I=`for (let ${Q} = 0; ${Q} < ${J}.length; ${Q} += ${q}) `;if(this.is(_,"block")){let H=_.slice(1);this.indentLevel++;let P=[];if(!w)P.push(`const ${K} = ${J}[${Q}];`);if(Y)P.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,P.push(...this.formatStatements(H)),this.indentLevel--,P.push(this.indent()+"}");else P.push(...H.map((E)=>this.addSemicolon(E,this.generate(E,"statement"))));return this.indentLevel--,I+`{
|
|
342
342
|
${P.map((E)=>this.indent()+E).join(`
|
|
343
343
|
`)}
|
|
344
|
-
${this.indent()}}`}if(w)return
|
|
344
|
+
${this.indent()}}`}if(w)return Y?I+`{ if (${this.generate(Y,"value")}) ${this.generate(_,"statement")}; }`:I+`{ ${this.generate(_,"statement")}; }`;return Y?I+`{ const ${K} = ${J}[${Q}]; if (${this.generate(Y,"value")}) ${this.generate(_,"statement")}; }`:I+`{ const ${K} = ${J}[${Q}]; ${this.generate(_,"statement")}; }`}if(X){let J=this.generate(u,"value"),Q=`for (let ${X} = 0; ${X} < ${J}.length; ${X}++) `;if(this.is(_,"block")){if(Q+=`{
|
|
345
345
|
`,this.indentLevel++,Q+=this.indent()+`const ${K} = ${J}[${X}];
|
|
346
|
-
`,
|
|
346
|
+
`,Y)Q+=this.indent()+`if (${this.unwrap(this.generate(Y,"value"))}) {
|
|
347
347
|
`,this.indentLevel++,Q+=this.formatStatements(_.slice(1)).join(`
|
|
348
348
|
`)+`
|
|
349
349
|
`,this.indentLevel--,Q+=this.indent()+`}
|
|
350
350
|
`;else Q+=this.formatStatements(_.slice(1)).join(`
|
|
351
351
|
`)+`
|
|
352
|
-
`;this.indentLevel--,Q+=this.indent()+"}"}else Q+=
|
|
352
|
+
`;this.indentLevel--,Q+=this.indent()+"}"}else Q+=Y?`{ const ${K} = ${J}[${X}]; if (${this.unwrap(this.generate(Y,"value"))}) ${this.generate(_,"statement")}; }`:`{ const ${K} = ${J}[${X}]; ${this.generate(_,"statement")}; }`;return Q}let D=Array.isArray(u)&&u[0];if(D instanceof String)D=j(D);if(D===".."||D==="..."){let J=D==="...",[Q,q]=u.slice(1),O=(M)=>typeof M==="number"||typeof M==="string"&&!M.includes("(")||M instanceof String&&!j(M).includes("(")||this.is(M,".");if(O(Q)&&O(q)){let M=this.generate(Q,"value"),G=this.generate(q,"value"),I=J?"<":"<=",H=A?`${K} += ${this.generate(A,"value")}`:`${K}++`,P=`for (let ${K} = ${M}; ${K} ${I} ${G}; ${H}) `;return P+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),P}}let R=`for (const ${K} of ${this.generate(u,"value")}) `;return R+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),R}generateForOf($,U,F,W){let[f,u,A,Y,_]=U;if(F==="value"&&this.comprehensionDepth===0){let K=["for-of",f,u,A];return this.generate(["comprehension",_,[K],Y?[Y]:[]],F)}let[Z,w]=Array.isArray(f)?f:[f],z=this.generate(u,"value"),X=`for (const ${Z} in ${z}) `;if(A&&!w&&!Y){if(this.is(_,"block")){this.indentLevel++;let K=[`if (!Object.hasOwn(${z}, ${Z})) continue;`,..._.slice(1).map((D)=>this.addSemicolon(D,this.generate(D,"statement")))];return this.indentLevel--,X+`{
|
|
353
353
|
${K.map((D)=>this.indent()+D).join(`
|
|
354
354
|
`)}
|
|
355
|
-
${this.indent()}}`}return X+`{ if (!Object.hasOwn(${z}, ${
|
|
356
|
-
${
|
|
355
|
+
${this.indent()}}`}return X+`{ if (!Object.hasOwn(${z}, ${Z})) continue; ${this.generate(_,"statement")}; }`}if(w){if(this.is(_,"block")){let D=_.slice(1);this.indentLevel++;let R=[];if(A)R.push(`if (!Object.hasOwn(${z}, ${Z})) continue;`);if(R.push(`const ${w} = ${z}[${Z}];`),Y)R.push(`if (${this.generate(Y,"value")}) {`),this.indentLevel++,R.push(...D.map((J)=>this.addSemicolon(J,this.generate(J,"statement")))),this.indentLevel--,R.push(this.indent()+"}");else R.push(...D.map((J)=>this.addSemicolon(J,this.generate(J,"statement"))));return this.indentLevel--,X+`{
|
|
356
|
+
${R.map((J)=>this.indent()+J).join(`
|
|
357
357
|
`)}
|
|
358
|
-
${this.indent()}}`}let K="";if(
|
|
358
|
+
${this.indent()}}`}let K="";if(A)K+=`if (!Object.hasOwn(${z}, ${Z})) continue; `;if(K+=`const ${w} = ${z}[${Z}]; `,Y)K+=`if (${this.generate(Y,"value")}) `;return K+=`${this.generate(_,"statement")};`,X+`{ ${K} }`}return X+=Y?this.generateLoopBodyWithGuard(_,Y):this.generateLoopBody(_),X}generateForAs($,U,F,W){let f=Array.isArray(U[0])?U[0]:[U[0]],[u]=f,A=U[1],Y=U[2],_=U[3],Z=U[4],w=!1,z=[];if(this.is(u,"array")){let J=u.slice(1),Q=J.findIndex((q)=>this.is(q,"...")||q==="...");if(Q!==-1&&Q<J.length-1){w=!0;let q=J.slice(Q+1),O=q.length,M=J.slice(0,Q),G=J[Q],I=this.is(G,"...")?G[1]:"_rest",H=M.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", "),P=H?`${H}, ...${I}`:`...${I}`,E=q.map((B)=>B===","?"":typeof B==="string"?B:this.generate(B,"value")).join(", ");z.push(`[${P}] = _item`),z.push(`[${E}] = ${I}.splice(-${O})`),this.helpers.add("slice"),J.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 X=this.generate(A,"value"),K=Y?"await ":"",D;if(w)D="_item";else if(this.is(u,"array")||this.is(u,"object"))D=this.generateDestructuringPattern(u);else D=u;let R=`for ${K}(const ${D} of ${X}) `;if(w&&z.length>0){let J=this.unwrapBlock(Z),Q=this.withIndent(()=>[...z.map((q)=>this.indent()+q+";"),...this.formatStatements(J)]);R+=`{
|
|
359
359
|
${Q.join(`
|
|
360
360
|
`)}
|
|
361
|
-
${this.indent()}}`}else
|
|
361
|
+
${this.indent()}}`}else R+=_?this.generateLoopBodyWithGuard(Z,_):this.generateLoopBody(Z);return R}generateWhile($,U){let F=U[0],W=U.length===3?U[1]:null,f=U[U.length-1];return`while (${this.unwrap(this.generate(F,"value"))}) `+(W?this.generateLoopBodyWithGuard(f,W):this.generateLoopBody(f))}generateRange($,U){if($==="..."){if(U.length===1)return`...${this.generate(U[0],"value")}`;let[A,Y]=U,_=this.generate(A,"value"),Z=this.generate(Y,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${_}, ${Z})`}let[F,W]=U,f=this.generate(F,"value"),u=this.generate(W,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${f}, ${u})`}generateNot($,U){let[F]=U;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 W=this.generate(F,"value");return W.startsWith("(")?`!${W}`:`(!${W})`}generateBitwiseNot($,U){return`(~${this.generate(U[0],"value")})`}generateIncDec($,U){let[F,W]=U,f=this.generate(F,"value");return W?`(${f}${$})`:`(${$}${f})`}generateTypeof($,U){return`typeof ${this.generate(U[0],"value")}`}generateDelete($,U){return`(delete ${this.generate(U[0],"value")})`}generateInstanceof($,U,F,W){let[f,u]=U,A=V(W[0],"invert"),Y=`(${this.generate(f,"value")} instanceof ${this.generate(u,"value")})`;return A?`(!${Y})`:Y}generateIn($,U,F,W){let[f,u]=U,A=this.generate(f,"value"),Y=V(W[0],"invert");if(this.is(u,"object")){let w=`(${A} in ${this.generate(u,"value")})`;return Y?`(!${w})`:w}let _=this.generate(u,"value"),Z=`(Array.isArray(${_}) || typeof ${_} === 'string' ? ${_}.includes(${A}) : (${A} in ${_}))`;return Y?`(!${Z})`:Z}generateOf($,U,F,W){let[f,u]=U,A=this.generate(f,"value"),Y=this.generate(u,"value"),_=V(W[0],"invert"),Z=`(${A} in ${Y})`;return _?`(!${Z})`:Z}generateRegexMatch($,U){let[F,W]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let f=this.generate(W,"value"),u=f.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(F,"value")}${u}).match(${f}))`}generateNew($,U){let[F]=U;if(this.is(F,".")||this.is(F,"?.")){let[W,f,u]=F;if(Array.isArray(f)&&!f[0].startsWith)return`(${this.generate(["new",f],"value")}).${u}`;return`new ${this.generate(f,"value")}.${u}`}if(Array.isArray(F)){let[W,...f]=F;return`new ${this.generate(W,"value")}(${f.map((u)=>this.unwrap(this.generate(u,"value"))).join(", ")})`}return`new ${this.generate(F,"value")}()`}generateLogicalAnd($,U,F,W){let f=this.flattenBinaryChain(W).slice(1);if(f.length===0)return"true";if(f.length===1)return this.generate(f[0],"value");return`(${f.map((u)=>this.generate(u,"value")).join(" && ")})`}generateLogicalOr($,U,F,W){let f=this.flattenBinaryChain(W).slice(1);if(f.length===0)return"true";if(f.length===1)return this.generate(f[0],"value");return`(${f.map((u)=>this.generate(u,"value")).join(" || ")})`}generateArray($,U){let F=U.length>0&&U[U.length-1]===",",W=U.map((f)=>{if(f===",")return"";if(f==="...")return"";if(this.is(f,"..."))return`...${this.generate(f[1],"value")}`;return this.generate(f,"value")}).join(", ");return F?`[${W},]`:`[${W}]`}generateObject($,U,F){if(U.length===1&&Array.isArray(U[0])&&Array.isArray(U[0][1])&&U[0][1][0]==="comprehension"){let[f,u]=U[0],[,A,Y,_]=u;return this.generate(["object-comprehension",f,A,Y,_],F)}return`{${U.map((f)=>{if(this.is(f,"..."))return`...${this.generate(f[1],"value")}`;let[u,A,Y]=f,_;if(this.is(u,"dynamicKey"))_=`[${this.generate(u[1],"value")}]`;else if(this.is(u,"str"))_=`[${this.generate(u,"value")}]`;else this.suppressReactiveUnwrap=!0,_=this.generate(u,"value"),this.suppressReactiveUnwrap=!1;let Z=this.generate(A,"value");if(Y==="=")return`${_} = ${Z}`;if(Y===":")return`${_}: ${Z}`;if(_===Z&&!Array.isArray(u))return _;return`${_}: ${Z}`}).join(", ")}}`}generateBlock($,U,F){if(F==="statement")return`{
|
|
362
362
|
${this.withIndent(()=>this.formatStatements(U)).join(`
|
|
363
363
|
`)}
|
|
364
|
-
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],
|
|
365
|
-
${this.withIndent(()=>u.map((
|
|
364
|
+
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],F);let W=U[U.length-1];if(Array.isArray(W)&&["break","continue","return","throw"].includes(W[0])){let u=U.map((A)=>this.addSemicolon(A,this.generate(A,"statement")));return`{
|
|
365
|
+
${this.withIndent(()=>u.map((A)=>this.indent()+A).join(`
|
|
366
366
|
`))}
|
|
367
|
-
${this.indent()}}`}return`(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateTry($,U,
|
|
367
|
+
${this.indent()}}`}return`(${U.map((u)=>this.generate(u,"value")).join(", ")})`}generateTry($,U,F){let W=F==="value",f="try ",u=U[0];if(f+=W&&this.is(u,"block")?this.generateBlockWithReturns(u):this.generate(u,"statement"),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[A,Y]=U[1];if(f+=" catch",A&&(this.is(A,"object")||this.is(A,"array"))){f+=" (error)";let _=`(${this.generate(A,"value")} = error)`;Y=this.is(Y,"block")?["block",_,...Y.slice(1)]:["block",_,Y]}else if(A)f+=` (${A})`;f+=" "+(W&&this.is(Y,"block")?this.generateBlockWithReturns(Y):this.generate(Y,"statement"))}else if(U.length===2)f+=" finally "+this.generate(U[1],"statement");if(U.length===3)f+=" finally "+this.generate(U[2],"statement");if(U.length===1)f+=" catch {}";if(W)return`(${this.containsAwait(U[0])||U[1]&&this.containsAwait(U[1])?"async ":""}() => { ${f} })()`;return f}generateThrow($,U,F){let[W]=U;if(Array.isArray(W)){let u=W,A=null;if(W[0]==="new"&&Array.isArray(W[1])&&W[1][0]==="if")A="new",u=W[1];else if(W[0]==="if")u=W;if(u[0]==="if"){let[,Y,_]=u,Z=Array.isArray(_)&&_.length===1?_[0]:_;W=A==="new"?["new",Z]:Z;let w=this.generate(Y,"value"),z=`throw ${this.generate(W,"value")}`;return`if (${w}) {
|
|
368
368
|
${this.indent()} ${z};
|
|
369
|
-
${this.indent()}}`}}let f=`throw ${this.generate(
|
|
370
|
-
`;this.indentLevel++;for(let
|
|
371
|
-
`}this.indentLevel++,
|
|
372
|
-
`,this.indentLevel++,
|
|
373
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
374
|
-
`;for(let w of f){let[z,X,K,D]=w;if(z==="for-in"){let{header:
|
|
375
|
-
`,this.indentLevel++,J)
|
|
376
|
-
`}else if(z==="for-of"){let{header:
|
|
377
|
-
`,this.indentLevel++,J)
|
|
378
|
-
`;if(Q)
|
|
379
|
-
`}else if(z==="for-as"){let{header:
|
|
380
|
-
`,this.indentLevel++}}for(let w of u)
|
|
381
|
-
`,this.indentLevel++;let _=(w)=>{if(typeof w==="string"&&(w==="break"||w==="continue"))return!0;if(!Array.isArray(w))return!1;if(["break","continue","return","throw"].includes(w[0]))return!0;if(w[0]==="if")return w.slice(1).some(_);return w.some(_)},
|
|
382
|
-
`;else if(Array.isArray(z)&&
|
|
383
|
-
`;else
|
|
384
|
-
`}else if(_(
|
|
385
|
-
`;else if(Array.isArray(
|
|
386
|
-
`;else
|
|
387
|
-
`;for(let w=0;w<u.length;w++)this.indentLevel--,
|
|
388
|
-
`;for(let w=0;w<f.length;w++)this.indentLevel--,
|
|
389
|
-
`;return
|
|
390
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
391
|
-
`;this.indentLevel++,
|
|
392
|
-
`;for(let _ of u){let[
|
|
393
|
-
`,this.indentLevel++,X)
|
|
394
|
-
`;if(D)
|
|
395
|
-
`}}for(let _ of Y
|
|
396
|
-
`,this.indentLevel++;
|
|
397
|
-
`;for(let _=0;_<
|
|
398
|
-
`;for(let _=0;_<u.length;_++)this.indentLevel--,
|
|
399
|
-
`;return
|
|
400
|
-
`,this.indentLevel--,
|
|
401
|
-
`,u.length>0&&Array.isArray(u[0])){let
|
|
402
|
-
`}else if(D)
|
|
403
|
-
`;else
|
|
404
|
-
`}this.indentLevel--}else if(
|
|
405
|
-
`}else if(D)
|
|
406
|
-
`;else
|
|
407
|
-
`}for(let X of z)if(this.is(X,"class")){let[,K,D,...
|
|
408
|
-
`}else
|
|
409
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let w of _)if(this.is(w,"=")&&Array.isArray(w[1])&&w[1][0]==="."&&w[1][1]==="this")
|
|
410
|
-
`;else
|
|
411
|
-
`;this.indentLevel--}}}return
|
|
412
|
-
export default ${
|
|
369
|
+
${this.indent()}}`}}let f=`throw ${this.generate(W,"value")}`;return F==="value"?`(() => { ${f}; })()`:f}generateControl($,U,F){let[W,f,u]=U,A=j(W),Y=u[0]==="return",_=this.generate(f,"value"),Z=u.length>1?u[1]:null,w=Y?Z?`return ${this.generate(Z,"value")}`:"return":Z?`throw ${this.generate(Z,"value")}`:"throw new Error()",z=this.wrapForCondition(_);if(F==="value"){if(A==="??")return`(() => { const __v = ${_}; if (__v == null) ${w}; return __v; })()`;if(A==="||")return`(() => { const __v = ${_}; if (!__v) ${w}; return __v; })()`;return`(() => { const __v = ${_}; if (__v) ${w}; return __v; })()`}if(A==="??")return`if (${z} == null) ${w}`;if(A==="||")return`if (!${z}) ${w}`;return`if (${z}) ${w}`}generateSwitch($,U,F){let[W,f,u]=U;if(W===null)return this.generateSwitchAsIfChain(f,u,F);let A=`switch (${this.generate(W,"value")}) {
|
|
370
|
+
`;this.indentLevel++;for(let Y of f){let[,_,Z]=Y;for(let w of _){let z=j(w)??w,X;if(Array.isArray(z))X=this.generate(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))X=`'${z.slice(1,-1)}'`;else X=this.generate(z,"value");A+=this.indent()+`case ${X}:
|
|
371
|
+
`}this.indentLevel++,A+=this.generateSwitchCaseBody(Z,F),this.indentLevel--}if(u)A+=this.indent()+`default:
|
|
372
|
+
`,this.indentLevel++,A+=this.generateSwitchCaseBody(u,F),this.indentLevel--;if(this.indentLevel--,A+=this.indent()+"}",F==="value")return`(${f.some((_)=>this.containsAwait(_[2]))||u&&this.containsAwait(u)?"async ":""}() => { ${A} })()`;return A}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader($,U,F){let W=Array.isArray($)?$:[$],f=W.length===0,[u,A]=f?["_i",null]:W,Y=this.is(u,"array")||this.is(u,"object")?this.generateDestructuringPattern(u):u;if(F&&F!==null){let _=Array.isArray(U)&&U[0];if(_ instanceof String)_=j(_);if(_===".."||_==="..."){let q=_==="...",[O,M]=U.slice(1),G=this.generate(O,"value"),I=this.generate(M,"value"),H=this.generate(F,"value");return{header:`for (let ${Y} = ${G}; ${Y} ${q?"<":"<="} ${I}; ${Y} += ${H})`,setup:null}}let w=this.generate(U,"value"),z=A||"_i",X=this.generate(F,"value"),K=this.is(F,"-",1),D=K&&(F[1]==="1"||F[1]===1||j(F[1])==="1"),R=!K&&(F==="1"||F===1||j(F)==="1"),J=D?`${z}--`:R?`${z}++`:`${z} += ${X}`;return{header:K?`for (let ${z} = ${w}.length - 1; ${z} >= 0; ${J})`:`for (let ${z} = 0; ${z} < ${w}.length; ${J})`,setup:f?null:`const ${Y} = ${w}[${z}];`}}if(A){let _=this.generate(U,"value");return{header:`for (let ${A} = 0; ${A} < ${_}.length; ${A}++)`,setup:`const ${Y} = ${_}[${A}];`}}return{header:`for (const ${Y} of ${this.generate(U,"value")})`,setup:null}}_forOfHeader($,U,F){let W=Array.isArray($)?$:[$],[f,u]=W,A=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f,Y=this.generate(U,"value");return{header:`for (const ${A} in ${Y})`,own:F,vv:u,oc:Y,kvp:A}}_forAsHeader($,U,F){let W=Array.isArray($)?$:[$],[f]=W,u=this.is(f,"array")||this.is(f,"object")?this.generateDestructuringPattern(f):f;return{header:`for ${F?"await ":""}(const ${u} of ${this.generate(U,"value")})`}}generateComprehension($,U,F){let[W,f,u]=U;if(F==="statement")return this.generateComprehensionAsLoop(W,f,u);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(W,f,u,this.comprehensionTarget);let Y=`(${this.containsAwait(W)?"async ":""}() => {
|
|
373
|
+
`;this.indentLevel++,this.comprehensionDepth++,Y+=this.indent()+`const result = [];
|
|
374
|
+
`;for(let w of f){let[z,X,K,D]=w;if(z==="for-in"){let{header:R,setup:J}=this._forInHeader(X,K,D);if(Y+=this.indent()+R+` {
|
|
375
|
+
`,this.indentLevel++,J)Y+=this.indent()+J+`
|
|
376
|
+
`}else if(z==="for-of"){let{header:R,own:J,vv:Q,oc:q,kvp:O}=this._forOfHeader(X,K,D);if(Y+=this.indent()+R+` {
|
|
377
|
+
`,this.indentLevel++,J)Y+=this.indent()+`if (!Object.hasOwn(${q}, ${O})) continue;
|
|
378
|
+
`;if(Q)Y+=this.indent()+`const ${Q} = ${q}[${O}];
|
|
379
|
+
`}else if(z==="for-as"){let{header:R}=this._forAsHeader(X,K,w[3]);Y+=this.indent()+R+` {
|
|
380
|
+
`,this.indentLevel++}}for(let w of u)Y+=this.indent()+`if (${this.generate(w,"value")}) {
|
|
381
|
+
`,this.indentLevel++;let _=(w)=>{if(typeof w==="string"&&(w==="break"||w==="continue"))return!0;if(!Array.isArray(w))return!1;if(["break","continue","return","throw"].includes(w[0]))return!0;if(w[0]==="if")return w.slice(1).some(_);return w.some(_)},Z=["for-in","for-of","for-as","while","loop"];if(this.is(W,"block"))for(let w=0;w<W.length-1;w++){let z=W[w+1];if(w!==W.length-2||_(z))Y+=this.indent()+this.generate(z,"statement")+`;
|
|
382
|
+
`;else if(Array.isArray(z)&&Z.includes(z[0]))Y+=this.indent()+this.generate(z,"statement")+`;
|
|
383
|
+
`;else Y+=this.indent()+`result.push(${this.generate(z,"value")});
|
|
384
|
+
`}else if(_(W))Y+=this.indent()+this.generate(W,"statement")+`;
|
|
385
|
+
`;else if(Array.isArray(W)&&Z.includes(W[0]))Y+=this.indent()+this.generate(W,"statement")+`;
|
|
386
|
+
`;else Y+=this.indent()+`result.push(${this.generate(W,"value")});
|
|
387
|
+
`;for(let w=0;w<u.length;w++)this.indentLevel--,Y+=this.indent()+`}
|
|
388
|
+
`;for(let w=0;w<f.length;w++)this.indentLevel--,Y+=this.indent()+`}
|
|
389
|
+
`;return Y+=this.indent()+`return result;
|
|
390
|
+
`,this.indentLevel--,this.comprehensionDepth--,Y+=this.indent()+"})()",Y}generateObjectComprehension($,U,F){let[W,f,u,A]=U,Y=`(() => {
|
|
391
|
+
`;this.indentLevel++,Y+=this.indent()+`const result = {};
|
|
392
|
+
`;for(let _ of u){let[Z,w,z,X]=_;if(Z==="for-of"){let[K,D]=w,R=this.generate(z,"value");if(Y+=this.indent()+`for (const ${K} in ${R}) {
|
|
393
|
+
`,this.indentLevel++,X)Y+=this.indent()+`if (!Object.hasOwn(${R}, ${K})) continue;
|
|
394
|
+
`;if(D)Y+=this.indent()+`const ${D} = ${R}[${K}];
|
|
395
|
+
`}}for(let _ of A)Y+=this.indent()+`if (${this.generate(_,"value")}) {
|
|
396
|
+
`,this.indentLevel++;Y+=this.indent()+`result[${this.generate(W,"value")}] = ${this.generate(f,"value")};
|
|
397
|
+
`;for(let _=0;_<A.length;_++)this.indentLevel--,Y+=this.indent()+`}
|
|
398
|
+
`;for(let _=0;_<u.length;_++)this.indentLevel--,Y+=this.indent()+`}
|
|
399
|
+
`;return Y+=this.indent()+`return result;
|
|
400
|
+
`,this.indentLevel--,Y+=this.indent()+"})()",Y}generateClass($,U,F){let[W,f,...u]=U,A=W?`class ${W}`:"class";if(f)A+=` extends ${this.generate(f,"value")}`;if(A+=` {
|
|
401
|
+
`,u.length>0&&Array.isArray(u[0])){let Y=u[0];if(Y[0]==="block"){let _=Y.slice(1),Z=_.length>0&&Array.isArray(_[0])&&_[0][0]==="object";if(Z&&_.length===1){let w=_[0].slice(1);this.indentLevel++;let z=[];for(let[X,K]of w){let D=this.is(X,".")&&X[1]==="this",R=this.is(X,"computed"),J=this.extractMemberName(X);if(this.is(K,"=>")&&!D&&!R&&J!=="constructor")z.push(J)}for(let[X,K]of w){let D=this.is(X,".")&&X[1]==="this",R=this.is(X,"computed"),J=this.extractMemberName(X);if(this.is(K,"->")||this.is(K,"=>")){let[,Q,q]=K,O=this.containsAwait(q),M=this.containsYield(q),G=Q,I=[];if(J==="constructor"){let E=!!f,B=E?new Map:null;G=Q.map((S)=>{if(this.is(S,".")&&S[1]==="this"){let N=S[2],L=E?`_${N}`:N;if(I.push(`this.${N} = ${L}`),E)B.set(N,L);return L}if(this.is(S,"default")&&this.is(S[1],".")&&S[1][1]==="this"){let N=S[1][2],L=E?`_${N}`:N;if(I.push(`this.${N} = ${L}`),E)B.set(N,L);return["default",L,S[2]]}return S});for(let S of z)I.unshift(`this.${S} = this.${S}.bind(this)`);if(B?.size>0)this._atParamMap=B}let H=this.generateParamList(G),P=(D?"static ":"")+(O?"async ":"")+(M?"*":"");if(A+=this.indent()+`${P}${J}(${H}) `,!R)this.currentMethodName=J;A+=this.generateMethodBody(q,I,J==="constructor",G),this._atParamMap=null,this.currentMethodName=null,A+=`
|
|
402
|
+
`}else if(D)A+=this.indent()+`static ${J} = ${this.generate(K,"value")};
|
|
403
|
+
`;else A+=this.indent()+`${J} = ${this.generate(K,"value")};
|
|
404
|
+
`}this.indentLevel--}else if(Z){let w=_[0].slice(1),z=_.slice(1);this.indentLevel++;for(let[X,K]of w){let D=this.is(X,".")&&X[1]==="this",R=this.extractMemberName(X);if(this.is(K,"->")||this.is(K,"=>")){let[,J,Q]=K,q=this.generateParamList(J),O=(D?"static ":"")+(this.containsAwait(Q)?"async ":"")+(this.containsYield(Q)?"*":"");A+=this.indent()+`${O}${R}(${q}) `,this.currentMethodName=R,A+=this.generateMethodBody(Q,[],R==="constructor",J),this.currentMethodName=null,A+=`
|
|
405
|
+
`}else if(D)A+=this.indent()+`static ${R} = ${this.generate(K,"value")};
|
|
406
|
+
`;else A+=this.indent()+`${R} = ${this.generate(K,"value")};
|
|
407
|
+
`}for(let X of z)if(this.is(X,"class")){let[,K,D,...R]=X;if(this.is(K,".")&&K[1]==="this")A+=this.indent()+`static ${K[2]} = ${this.generate(["class",null,D,...R],"value")};
|
|
408
|
+
`}else A+=this.indent()+this.generate(X,"statement")+`;
|
|
409
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let w of _)if(this.is(w,"=")&&Array.isArray(w[1])&&w[1][0]==="."&&w[1][1]==="this")A+=this.indent()+`static ${w[1][2]} = ${this.generate(w[2],"value")};
|
|
410
|
+
`;else A+=this.indent()+this.generate(w,"statement")+`;
|
|
411
|
+
`;this.indentLevel--}}}return A+=this.indent()+"}",A}generateSuper($,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let F=U.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${F})`;return`super(${F})`}generateImport($,U,F,W){if(U.length===1){let Y=`import(${this.generate(U[0],"value")})`;if(V(W[0],"await")===!0)return`(await ${Y})`;return Y}let[f,u]=U,A=this.addJsExtensionAndAssertions(u);if(typeof f==="string")return`import ${f} from ${A}`;if(Array.isArray(f)){if(f[0]==="*"&&f.length===2)return`import * as ${f[1]} from ${A}`;if(typeof f[0]==="string"&&Array.isArray(f[1])){let _=f[0],Z=f[1];if(Z[0]==="*"&&Z.length===2)return`import ${_}, * as ${Z[1]} from ${A}`;let w=(Array.isArray(Z)?Z:[Z]).map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${_}, { ${w} } from ${A}`}return`import { ${f.map((_)=>Array.isArray(_)&&_.length===2?`${_[0]} as ${_[1]}`:_).join(", ")} } from ${A}`}return`import ${this.generate(f,"value")} from ${A}`}generateExport($,U){let[F]=U;if(this.options.skipExports){if(Array.isArray(F)&&F.every((W)=>typeof W==="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((W)=>typeof W==="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($,U){let[F]=U;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")};
|
|
412
|
+
export default ${F[1]}`;return`export default ${this.generate(F,"statement")}`}generateExportAll($,U){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom($,U){if(this.options.skipExports)return"";let[F,W]=U,f=this.addJsExtensionAndAssertions(W);if(Array.isArray(F))return`export { ${F.map((A)=>Array.isArray(A)&&A.length===2?`${A[0]} as ${A[1]}`:A).join(", ")} } from ${f}`;return`export ${F} from ${f}`}generateDoIIFE($,U){return`(${this.generate(U[0],"statement")})()`}generateRegex($,U){return U.length===0?$:this.generate(U[0],"value")}generateTaggedTemplate($,U){let[F,W]=U,f=this.generate(F,"value"),u=this.generate(W,"value");if(u.startsWith("`"))return`${f}${u}`;if(u.startsWith('"')||u.startsWith("'"))return`${f}\`${u.slice(1,-1)}\``;return`${f}\`${u}\``}generateString($,U){let F="`";for(let W of U)if(W instanceof String)F+=this.extractStringContent(W);else if(typeof W==="string")if(W.startsWith('"')||W.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",W);F+=W.slice(1,-1)}else F+=W;else if(Array.isArray(W))if(W.length===1&&typeof W[0]==="string"&&!Array.isArray(W[0])){let f=W[0];F+=/^[\d"']/.test(f)?"${"+this.generate(f,"value")+"}":"${"+f+"}"}else{let f=W.length===1&&Array.isArray(W[0])?W[0]:W;F+="${"+this.generate(f,"value")+"}"}return F+"`"}findPostfixConditional($){if(!Array.isArray($))return null;let U=$[0];if(U==="if"&&$.length===3)return{type:U,condition:$[1],value:$[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let F=1;F<$.length;F++){let W=this.findPostfixConditional($[F]);if(W)return W.parentOp=U,W.operandIndex=F,W.otherOperands=$.slice(1).filter((f,u)=>u!==F-1),W}return null}rebuildWithoutConditional($){let U=Array.isArray($.value)&&$.value.length===1?$.value[0]:$.value;if($.parentOp)return[$.parentOp,...$.otherOperands,U];return U}generateDestructuringPattern($){return this.formatParam($)}generateParamList($){let U=$.findIndex((W)=>this.is(W,"expansion"));if(U!==-1){let W=$.slice(0,U),f=$.slice(U+1),u=W.map((A)=>this.formatParam(A)).join(", ");return this.expansionAfterParams=f,u?`${u}, ..._rest`:"..._rest"}let F=$.findIndex((W)=>this.is(W,"rest"));if(F!==-1&&F<$.length-1){let W=$.slice(0,F),f=$[F],u=$.slice(F+1),A=W.map((Y)=>this.formatParam(Y));return this.restMiddleParam={restName:f[1],afterParams:u,beforeCount:W.length},A.length>0?`${A.join(", ")}, ...${f[1]}`:`...${f[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((W)=>this.formatParam(W)).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[W,f]=F;if(W===f)return W;return`${W}: ${f}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,U=[],F={}){let{sideEffectOnly:W=!1,autoAssignments:f=[],isConstructor:u=!1,hasExpansionParams:A=!1}=F,Y=this.sideEffectOnly;this.sideEffectOnly=W;let _=new Set,Z=(R)=>{if(typeof R==="string")_.add(R);else if(Array.isArray(R)){if(R[0]==="rest"||R[0]==="..."){if(typeof R[1]==="string")_.add(R[1])}else if(R[0]==="default"){if(typeof R[1]==="string")_.add(R[1])}else if(R[0]==="array"||R[0]==="object")this.collectVarsFromArray(R,_)}};if(Array.isArray(U))U.forEach(Z);let w=this.collectFunctionVariables($),z=new Set([...w].filter((R)=>!this.programVars.has(R)&&!this.reactiveVars?.has(R)&&!_.has(R)&&!this.scopeStack.some((J)=>J.has(R)))),X=["return","throw","break","continue"],K=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...z,..._])),this.is($,"block")){let R=this.unwrapBlock($);if(A&&this.expansionAfterParams?.length>0)R=[...this.expansionAfterParams.map((M,G)=>{return`const ${typeof M==="string"?M:JSON.stringify(M)} = _rest[_rest.length - ${this.expansionAfterParams.length-G}]`}),...R],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:O,afterParams:M}=this.restMiddleParam,G=M.length,I=[];if(M.forEach((H,P)=>{let E=typeof H==="string"?H:this.is(H,"default")?H[1]:JSON.stringify(H);I.push(`const ${E} = ${O}[${O}.length - ${G-P}]`)}),G>0)I.push(`${O} = ${O}.slice(0, -${G})`);R=[...I,...R],this.restMiddleParam=null}this.indentLevel++;let J=`{
|
|
413
413
|
`;if(z.size>0)J+=this.indent()+`let ${Array.from(z).sort().join(", ")};
|
|
414
|
-
`;let Q=f.length>0&&
|
|
415
|
-
`;return}if(!u&&!
|
|
416
|
-
`;return}}}let P=!u&&!
|
|
417
|
-
`;else J+=this.indent()+this.addSemicolon(M,
|
|
418
|
-
`})};if(Q){if(
|
|
419
|
-
`;else J+=this.indent()+this.generate(
|
|
414
|
+
`;let Q=f.length>0&&R.length>0&&Array.isArray(R[0])&&R[0][0]==="super",q=(O)=>{O.forEach((M,G)=>{let I=G===O.length-1,H=Array.isArray(M)?M[0]:null;if(!I&&H==="comprehension"){let[,S,N,L]=M;J+=this.indent()+this.generateComprehensionAsLoop(S,N,L)+`
|
|
415
|
+
`;return}if(!u&&!W&&I&&H==="if"){let[S,N,...L]=M.slice(1),T=(h)=>this.is(h,"block")&&h.length>2;if(T(N)||L.some(T)){J+=this.generateIfElseWithEarlyReturns(M);return}}if(!u&&!W&&I&&H==="="){let[S,N]=M.slice(1);if(typeof S==="string"&&Array.isArray(N)){let L=N[0];if(L==="comprehension"||L==="for-in"){this.comprehensionTarget=S,J+=this.generate(N,"value"),this.comprehensionTarget=null,J+=this.indent()+`return ${S};
|
|
416
|
+
`;return}}}let P=!u&&!W&&I&&!X.includes(H)&&!K.includes(H)&&!this.hasExplicitControlFlow(M),E=P?"value":"statement",B=this.generate(M,E);if(P)J+=this.indent()+"return "+B+`;
|
|
417
|
+
`;else J+=this.indent()+this.addSemicolon(M,B)+`
|
|
418
|
+
`})};if(Q){if(R.length===1&&!u)J+=this.indent()+"return "+this.generate(R[0],"value")+`;
|
|
419
|
+
`;else J+=this.indent()+this.generate(R[0],"statement")+`;
|
|
420
420
|
`;for(let M of f)J+=this.indent()+M+`;
|
|
421
|
-
`;
|
|
422
|
-
`;
|
|
423
|
-
`}return this.indentLevel--,J+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=
|
|
424
|
-
${this.withIndent(()=>U.map((
|
|
421
|
+
`;q(R.slice(1))}else{for(let O of f)J+=this.indent()+O+`;
|
|
422
|
+
`;q(R)}if(W&&R.length>0){let O=Array.isArray(R[R.length-1])?R[R.length-1][0]:null;if(!X.includes(O))J+=this.indent()+`return;
|
|
423
|
+
`}return this.indentLevel--,J+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=Y,J}this.sideEffectOnly=Y;let D;if(u&&f.length>0){let R=Array.isArray($)&&$[0]==="super",J=this.generate($,"statement"),Q=f.map((q)=>`${q};`).join(" ");D=R?`{ ${J}; ${Q} }`:`{ ${Q} ${J}; }`}else if(u||this.hasExplicitControlFlow($))D=`{ ${this.generate($,"statement")}; }`;else if(Array.isArray($)&&(X.includes($[0])||K.includes($[0])))D=`{ ${this.generate($,"statement")}; }`;else if(W)D=`{ ${this.generate($,"statement")}; return; }`;else D=`{ return ${this.generate($,"value")}; }`;return this.scopeStack.pop(),D}generateFunctionBody($,U=[],F=!1){return this.generateBodyWithReturns($,U,{sideEffectOnly:F,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,U=[],F=!1,W=[]){return this.generateBodyWithReturns($,W,{autoAssignments:U,isConstructor:F})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let U=this.unwrapBlock($);return`{
|
|
424
|
+
${this.withIndent(()=>U.map((W,f)=>{let u=f===U.length-1,A=Array.isArray(W)?W[0]:null,Y=u&&!["return","throw","break","continue"].includes(A),_=this.generate(W,Y?"value":"statement");return Y?this.indent()+"return "+_+";":this.indent()+_+";"})).join(`
|
|
425
425
|
`)}
|
|
426
426
|
${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$;return`{
|
|
427
|
-
${this.withIndent(()=>U.map((
|
|
427
|
+
${this.withIndent(()=>U.map((W)=>{if(this.is(W,"comprehension")){let[,f,u,A]=W;return this.indent()+this.generateComprehensionAsLoop(f,u,A)}return this.indent()+this.addSemicolon(W,this.generate(W,"statement"))})).join(`
|
|
428
428
|
`)}
|
|
429
|
-
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,U){let
|
|
430
|
-
`,
|
|
431
|
-
${f}${u}${
|
|
429
|
+
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,U){let F=this.unwrap(this.generate(U,"value"));if(!Array.isArray($))return`{ if (${F}) ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let W=$[0]==="block"?$.slice(1):$,f=this.withIndent(()=>this.indent()),u=`if (${F}) {
|
|
430
|
+
`,A=this.withIndent(()=>{this.indentLevel++;let _=this.formatStatements(W);return this.indentLevel--,_}),Y=this.withIndent(()=>this.indent()+"}");return`{
|
|
431
|
+
${f}${u}${A.join(`
|
|
432
432
|
`)}
|
|
433
|
-
${
|
|
434
|
-
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,U,W
|
|
435
|
-
`;let u=this.is($,"block")&&$.length===2?$[1]:$;if(U.length===1){let[Y,
|
|
433
|
+
${Y}
|
|
434
|
+
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,U,F,W){let f="";f+=this.indent()+`${W} = [];
|
|
435
|
+
`;let u=this.is($,"block")&&$.length===2?$[1]:$;if(U.length===1){let[A,Y,_,Z]=U[0];if(A==="for-in"){let{header:w,setup:z}=this._forInHeader(Y,_,Z);if(f+=this.indent()+w+` {
|
|
436
436
|
`,this.indentLevel++,z)f+=this.indent()+z+`
|
|
437
|
-
`;if(
|
|
438
|
-
`,this.indentLevel++;if(f+=this.indent()+`${
|
|
439
|
-
`,
|
|
437
|
+
`;if(F&&F.length>0)f+=this.indent()+`if (${F.map((X)=>this.generate(X,"value")).join(" && ")}) {
|
|
438
|
+
`,this.indentLevel++;if(f+=this.indent()+`${W}.push(${this.unwrap(this.generate(u,"value"))});
|
|
439
|
+
`,F&&F.length>0)this.indentLevel--,f+=this.indent()+`}
|
|
440
440
|
`;return this.indentLevel--,f+=this.indent()+`}
|
|
441
|
-
`,f}}return this.indent()+`${
|
|
442
|
-
`}generateComprehensionAsLoop($,U,
|
|
443
|
-
`,this.indentLevel++,
|
|
444
|
-
`,this.indentLevel--,
|
|
445
|
-
`;else F+=this.indent()+this.generate($,"statement")+`;
|
|
446
|
-
`};if(U.length===1){let[Y,A,_,R]=U[0];if(Y==="for-in"){let{header:w,setup:z}=this._forInHeader(A,_,R);if(F+=w+` {
|
|
447
|
-
`,this.indentLevel++,z)F+=this.indent()+z+`
|
|
448
|
-
`;return u(),this.indentLevel--,F+=this.indent()+"}",F}if(Y==="for-as"){let{header:w}=this._forAsHeader(A,_,R);return F+=w+` {
|
|
449
|
-
`,this.indentLevel++,u(),this.indentLevel--,F+=this.indent()+"}",F}if(Y==="for-of"){let{header:w,own:z,vv:X,oc:K,kvp:D}=this._forOfHeader(A,_,R);if(F+=w+` {
|
|
450
|
-
`,this.indentLevel++,z)F+=this.indent()+`if (!Object.hasOwn(${K}, ${D})) continue;
|
|
451
|
-
`;if(X)F+=this.indent()+`const ${X} = ${K}[${D}];
|
|
452
|
-
`;return u(),this.indentLevel--,F+=this.indent()+"}",F}}return this.generate(["comprehension",$,U,W],"value")}generateIfElseWithEarlyReturns($){let[U,W,F,...f]=$,u="",Y=this.generate(W,"value");u+=this.indent()+`if (${Y}) {
|
|
453
|
-
`,u+=this.withIndent(()=>this.generateBranchWithReturn(F)),u+=this.indent()+"}";for(let A of f)if(u+=" else ",this.is(A,"if")){let[,_,R,...w]=A;u+=`if (${this.generate(_,"value")}) {
|
|
454
|
-
`,u+=this.withIndent(()=>this.generateBranchWithReturn(R)),u+=this.indent()+"}";for(let z of w)u+=` else {
|
|
455
|
-
`,u+=this.withIndent(()=>this.generateBranchWithReturn(z)),u+=this.indent()+"}"}else u+=`{
|
|
456
|
-
`,u+=this.withIndent(()=>this.generateBranchWithReturn(A)),u+=this.indent()+"}";return u}generateBranchWithReturn($){let U=this.unwrapBlock($),W="";for(let F=0;F<U.length;F++){let f=F===U.length-1,u=U[F],Y=Array.isArray(u)?u[0]:null;if(f&&!(Y==="return"||Y==="throw"||Y==="break"||Y==="continue"))W+=this.indent()+`return ${this.generate(u,"value")};
|
|
457
|
-
`;else W+=this.indent()+this.generate(u,"statement")+`;
|
|
458
|
-
`}return W}generateIfAsExpression($,U,W){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||W.some((A)=>this.is(A,"block")&&A.length>2||this.hasStatementInBranch(A)||this.hasNestedMultiStatement(A))){let A=this.containsAwait($)||this.containsAwait(U)||W.some((R)=>this.containsAwait(R)),_=`${A?"await ":""}(${A?"async ":""}() => { `;_+=`if (${this.generate($,"value")}) `,_+=this.generateBlockWithReturns(U);for(let R of W)if(_+=" else ",this.is(R,"if")){let[w,z,X,...K]=R;_+=`if (${this.generate(z,"value")}) `,_+=this.generateBlockWithReturns(X);for(let D of K)if(_+=" else ",this.is(D,"if")){let[Z,J,Q,...H]=D;_+=`if (${this.generate(J,"value")}) `,_+=this.generateBlockWithReturns(Q),W.push(...H)}else _+=this.generateBlockWithReturns(D)}else _+=this.generateBlockWithReturns(R);return _+" })()"}let f=this.extractExpression(this.unwrapIfBranch(U)),u=this.buildTernaryChain(W),Y=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))Y=`(${Y})`;return`(${Y} ? ${f} : ${u})`}generateIfAsStatement($,U,W){let F=`if (${this.unwrap(this.generate($,"value"))}) `;F+=this.generate(this.unwrapIfBranch(U),"statement");for(let f of W)F+=" else "+this.generate(this.unwrapIfBranch(f),"statement");return F}generateSwitchCaseBody($,U){let W="";if(this.hasExplicitControlFlow($))for(let f of this.unwrapBlock($))W+=this.indent()+this.generate(f,"statement")+`;
|
|
459
|
-
`;else if(U==="value")if(this.is($,"block")&&$.length>2){let f=$.slice(1);for(let u=0;u<f.length;u++)if(u===f.length-1)W+=this.indent()+`return ${this.generate(f[u],"value")};
|
|
460
|
-
`;else W+=this.indent()+this.generate(f[u],"statement")+`;
|
|
461
|
-
`}else W+=this.indent()+`return ${this.extractExpression($)};
|
|
462
|
-
`;else{if(this.is($,"block")&&$.length>1)for(let f of $.slice(1))W+=this.indent()+this.generate(f,"statement")+`;
|
|
441
|
+
`,f}}return this.indent()+`${W} = (() => { /* complex comprehension */ })();
|
|
442
|
+
`}generateComprehensionAsLoop($,U,F){let W="",f=F?.length?F.map((A)=>this.generate(A,"value")).join(" && "):null,u=()=>{if(f)W+=this.indent()+`if (${f}) {
|
|
443
|
+
`,this.indentLevel++,W+=this.indent()+this.generate($,"statement")+`;
|
|
444
|
+
`,this.indentLevel--,W+=this.indent()+`}
|
|
463
445
|
`;else W+=this.indent()+this.generate($,"statement")+`;
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
`;
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
446
|
+
`};if(U.length===1){let[A,Y,_,Z]=U[0];if(A==="for-in"){let{header:w,setup:z}=this._forInHeader(Y,_,Z);if(W+=w+` {
|
|
447
|
+
`,this.indentLevel++,z)W+=this.indent()+z+`
|
|
448
|
+
`;return u(),this.indentLevel--,W+=this.indent()+"}",W}if(A==="for-as"){let{header:w}=this._forAsHeader(Y,_,Z);return W+=w+` {
|
|
449
|
+
`,this.indentLevel++,u(),this.indentLevel--,W+=this.indent()+"}",W}if(A==="for-of"){let{header:w,own:z,vv:X,oc:K,kvp:D}=this._forOfHeader(Y,_,Z);if(W+=w+` {
|
|
450
|
+
`,this.indentLevel++,z)W+=this.indent()+`if (!Object.hasOwn(${K}, ${D})) continue;
|
|
451
|
+
`;if(X)W+=this.indent()+`const ${X} = ${K}[${D}];
|
|
452
|
+
`;return u(),this.indentLevel--,W+=this.indent()+"}",W}}return this.generate(["comprehension",$,U,F],"value")}generateIfElseWithEarlyReturns($){let[U,F,W,...f]=$,u="",A=this.generate(F,"value");u+=this.indent()+`if (${A}) {
|
|
453
|
+
`,u+=this.withIndent(()=>this.generateBranchWithReturn(W)),u+=this.indent()+"}";for(let Y of f)if(u+=" else ",this.is(Y,"if")){let[,_,Z,...w]=Y;u+=`if (${this.generate(_,"value")}) {
|
|
454
|
+
`,u+=this.withIndent(()=>this.generateBranchWithReturn(Z)),u+=this.indent()+"}";for(let z of w)u+=` else {
|
|
455
|
+
`,u+=this.withIndent(()=>this.generateBranchWithReturn(z)),u+=this.indent()+"}"}else u+=`{
|
|
456
|
+
`,u+=this.withIndent(()=>this.generateBranchWithReturn(Y)),u+=this.indent()+"}";return u}generateBranchWithReturn($){let U=this.unwrapBlock($),F="";for(let W=0;W<U.length;W++){let f=W===U.length-1,u=U[W],A=Array.isArray(u)?u[0]:null;if(f&&!(A==="return"||A==="throw"||A==="break"||A==="continue"))F+=this.indent()+`return ${this.generate(u,"value")};
|
|
457
|
+
`;else F+=this.indent()+this.generate(u,"statement")+`;
|
|
458
|
+
`}return F}generateIfAsExpression($,U,F){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||F.some((Y)=>this.is(Y,"block")&&Y.length>2||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait($)||this.containsAwait(U)||F.some((Z)=>this.containsAwait(Z)),_=`${Y?"await ":""}(${Y?"async ":""}() => { `;_+=`if (${this.generate($,"value")}) `,_+=this.generateBlockWithReturns(U);for(let Z of F)if(_+=" else ",this.is(Z,"if")){let[w,z,X,...K]=Z;_+=`if (${this.generate(z,"value")}) `,_+=this.generateBlockWithReturns(X);for(let D of K)if(_+=" else ",this.is(D,"if")){let[R,J,Q,...q]=D;_+=`if (${this.generate(J,"value")}) `,_+=this.generateBlockWithReturns(Q),F.push(...q)}else _+=this.generateBlockWithReturns(D)}else _+=this.generateBlockWithReturns(Z);return _+" })()"}let f=this.extractExpression(this.unwrapIfBranch(U)),u=this.buildTernaryChain(F),A=this.generate($,"value");if(this.is($,"yield")||this.is($,"await"))A=`(${A})`;return`(${A} ? ${f} : ${u})`}generateIfAsStatement($,U,F){let W=`if (${this.unwrap(this.generate($,"value"))}) `;W+=this.generate(this.unwrapIfBranch(U),"statement");for(let f of F)W+=" else "+this.generate(this.unwrapIfBranch(f),"statement");return W}generateSwitchCaseBody($,U){let F="";if(this.hasExplicitControlFlow($))for(let f of this.unwrapBlock($))F+=this.indent()+this.generate(f,"statement")+`;
|
|
459
|
+
`;else if(U==="value")if(this.is($,"block")&&$.length>2){let f=$.slice(1);for(let u=0;u<f.length;u++)if(u===f.length-1)F+=this.indent()+`return ${this.generate(f[u],"value")};
|
|
460
|
+
`;else F+=this.indent()+this.generate(f[u],"statement")+`;
|
|
461
|
+
`}else F+=this.indent()+`return ${this.extractExpression($)};
|
|
462
|
+
`;else{if(this.is($,"block")&&$.length>1)for(let f of $.slice(1))F+=this.indent()+this.generate(f,"statement")+`;
|
|
463
|
+
`;else F+=this.indent()+this.generate($,"statement")+`;
|
|
464
|
+
`;F+=this.indent()+`break;
|
|
465
|
+
`}return F}generateSwitchAsIfChain($,U,F){let W="";for(let f=0;f<$.length;f++){let[,u,A]=$[f],Y=Array.isArray(u)?u[0]:u;if(W+=(f===0?"":" else ")+`if (${this.generate(Y,"value")}) {
|
|
466
|
+
`,this.indentLevel++,F==="value")W+=this.indent()+`return ${this.extractExpression(A)};
|
|
467
|
+
`;else for(let _ of this.unwrapBlock(A))W+=this.indent()+this.generate(_,"statement")+`;
|
|
468
|
+
`;this.indentLevel--,W+=this.indent()+"}"}if(U){if(W+=` else {
|
|
469
|
+
`,this.indentLevel++,F==="value")W+=this.indent()+`return ${this.extractExpression(U)};
|
|
470
|
+
`;else for(let f of this.unwrapBlock(U))W+=this.indent()+this.generate(f,"statement")+`;
|
|
471
|
+
`;this.indentLevel--,W+=this.indent()+"}"}return F==="value"?`(() => { ${W} })()`:W}extractExpression($){let U=this.unwrapBlock($);return U.length>0?this.generate(U[U.length-1],"value"):"undefined"}unwrapBlock($){if(!Array.isArray($))return[$];if($[0]==="block")return $.slice(1);if(Array.isArray($[0])){if(typeof $[0][0]==="string")return[$];return $}return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,U){if(!U||U.endsWith(";"))return!1;if(!U.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($,U){return U+(this.needsSemicolon($,U)?";":"")}formatStatements($,U="statement"){return $.map((F)=>this.indent()+this.addSemicolon(F,this.generate(F,U)))}wrapForCondition($){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($))return $;if($.startsWith("(")&&$.endsWith(")"))return $;return`(${$})`}hasExplicitControlFlow($){if(!Array.isArray($))return!1;let U=$[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return $.slice(1).some((F)=>Array.isArray(F)&&["return","throw","break","continue"].includes(F[0]));if(U==="switch"){let[,,F]=$;return F?.some((W)=>{return this.unwrapBlock(W[2]).some((u)=>Array.isArray(u)&&["return","throw","break","continue"].includes(u[0]))})}if(U==="if"){let[,,F,W]=$;return this.branchHasControlFlow(F)&&W&&this.branchHasControlFlow(W)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let U=this.unwrapBlock($);if(U.length===0)return!1;let F=U[U.length-1];return Array.isArray(F)&&["return","throw","break","continue"].includes(F[0])}withIndent($){this.indentLevel++;let U=$();return this.indentLevel--,U}is($,U,F){if(!Array.isArray($))return null;if((j($[0])??$[0])!==U)return null;let W=$.slice(1);if(F!=null&&W.length!==F)return null;return W}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let U=0,F=0,W=!0,f=!1;for(let u=0;u<$.length;u++){if($[u]==="(")U++;if($[u]===")")U--;if($[u]==="["||$[u]==="{")F++;if($[u]==="]"||$[u]==="}")F--;if($[u]===","&&U===1&&F===0)f=!0;if(U===0&&u<$.length-1){W=!1;break}}if(f)W=!1;if(W)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let U=0,F=1/0;for(let W=1;W<$.length-1;W++){if($[W]==="(")U++;if($[W]===")")U--;F=Math.min(F,U)}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[U,...F]=$;if(U!=="&&"&&U!=="||")return $;let W=[],f=(u)=>{if(Array.isArray(u)&&u[0]===U)for(let A=1;A<u.length;A++)f(u[A]);else W.push(u)};for(let u of F)f(u);return[U,...W]}hasStatementInBranch($){if(!Array.isArray($))return!1;let U=$[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return $.slice(1).some((F)=>this.hasStatementInBranch(F));return!1}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[U,F,W,...f]=$;return this.is(W,"block")&&W.length>2||f.some((u)=>this.hasNestedMultiStatement(u))}return!1}buildTernaryChain($){if($.length===0)return"undefined";if($.length===1)return this.extractExpression(this.unwrapIfBranch($[0]));let U=$[0];if(this.is(U,"if")){let[F,W,f,...u]=U,A=this.extractExpression(this.unwrapIfBranch(f)),Y=this.buildTernaryChain([...u,...$.slice(1)]);return`(${this.generate(W,"value")} ? ${A} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(U))}collectVarsFromArray($,U){$.slice(1).forEach((F)=>{if(F===","||F==="...")return;if(typeof F==="string"){U.add(F);return}if(Array.isArray(F)){if(F[0]==="..."&&typeof F[1]==="string")U.add(F[1]);else if(F[0]==="array")this.collectVarsFromArray(F,U);else if(F[0]==="object")this.collectVarsFromObject(F,U)}})}collectVarsFromObject($,U){$.slice(1).forEach((F)=>{if(!Array.isArray(F))return;if(F[0]==="..."&&typeof F[1]==="string"){U.add(F[1]);return}if(F.length>=2){let[W,f,u]=F;if(u==="="){if(typeof W==="string")U.add(W)}else if(typeof f==="string")U.add(f);else if(Array.isArray(f)){if(f[0]==="array")this.collectVarsFromArray(f,U);else if(f[0]==="object")this.collectVarsFromObject(f,U)}}})}extractStringContent($){let U=j($).slice(1,-1),F=V($,"indent");if(F)U=U.replace(new RegExp(`\\n${F}`,"g"),`
|
|
472
|
+
`);if(V($,"initialChunk")&&U.startsWith(`
|
|
473
|
+
`))U=U.slice(1);if(V($,"finalChunk")&&U.endsWith(`
|
|
474
|
+
`))U=U.slice(0,-1);return U}processHeregex($){let U="",F=!1,W=0,f=()=>{let u=0,A=W-1;while(A>=0&&$[A]==="\\")u++,A--;return u%2===1};while(W<$.length){let u=$[W];if(u==="["&&!f()){F=!0,U+=u,W++;continue}if(u==="]"&&F&&!f()){F=!1,U+=u,W++;continue}if(F){U+=u,W++;continue}if(/\s/.test(u)){W++;continue}if(u==="#"){if(f()){U+=u,W++;continue}let A=W-1;while(A>=0&&$[A]==="\\")A--;if(A<W-1){U+=u,W++;continue}while(W<$.length&&$[W]!==`
|
|
475
|
+
`)W++;continue}U+=u,W++}return U}addJsExtensionAndAssertions($){if($ instanceof String)$=j($);if(typeof $!=="string")return $;let F=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,W=F.startsWith("./")||F.startsWith("../"),f=F,u="";if(W){let A=F.lastIndexOf("/"),Y=A>=0?F.substring(A+1):F;if(Y.includes(".")){if(Y.endsWith(".json"))u=" with { type: 'json' }"}else f=F+".js"}return`'${f}'`+u}containsIt($){if(!$)return!1;if($==="it"||$ instanceof String&&j($)==="it")return!0;if(typeof $!=="object")return!1;if(this.is($,"def")||this.is($,"->")||this.is($,"=>"))return!1;if(Array.isArray($))return $.some((U)=>this.containsIt(U));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((U)=>this.containsAwait(U));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((U)=>this.containsYield(U));return!1}extractMemberName($){if(this.is($,".")&&$[1]==="this")return $[2];if(this.is($,"computed"))return`[${this.generate($[1],"value")}]`;return $}getReactiveRuntime(){return`// ============================================================================
|
|
476
476
|
// Rip Reactive Runtime
|
|
477
477
|
// A minimal, fine-grained reactivity system
|
|
478
478
|
//
|
|
@@ -701,13 +701,13 @@ if (typeof globalThis !== 'undefined') {
|
|
|
701
701
|
}
|
|
702
702
|
|
|
703
703
|
// === End Reactive Runtime ===
|
|
704
|
-
`}}class
|
|
705
|
-
`),f=
|
|
704
|
+
`}}class w1{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($,U){if(U)this.options={...this.options,...U};let F=null,W=$.split(`
|
|
705
|
+
`),f=W.findIndex((R)=>R==="__DATA__");if(f!==-1){let R=W.slice(f+1);F=R.length>0?R.join(`
|
|
706
706
|
`)+`
|
|
707
|
-
`:"",$=
|
|
708
|
-
`)}let
|
|
709
|
-
//# sourceMappingURL=data:application/json;base64,${
|
|
710
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(_)
|
|
707
|
+
`:"",$=W.slice(0,f).join(`
|
|
708
|
+
`)}let A=new r().tokenize($);if(this.options.showTokens)A.forEach((R)=>console.log(`${R[0].padEnd(12)} ${JSON.stringify(R[1])}`)),console.log();let Y=null,_=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)_=[...A];A=A.filter((R)=>R[0]!=="TYPE_DECL");while(A.length>0&&A[0][0]==="TERMINATOR")A.shift();if(A.every((R)=>R[0]==="TERMINATOR")){if(_)Y=y1(_,["program"]);return{tokens:A,sexpr:["program"],code:"",dts:Y,data:F,reactiveVars:{}}}t.lexer={tokens:A,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let R=this.tokens[this.pos++],J=R[1];if(R.data)J=new String(J),Object.assign(J,R.data);return this.text=J,this.loc=R.loc,R[0]}};let Z;try{Z=t.parse($)}catch(R){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw R}if(this.options.showSExpr)console.log(n(Z,0,!0)),console.log();let w=null;if(this.options.sourceMap){let R=(this.options.filename||"output")+".js",J=this.options.filename||"input.rip";w=new l1(R,J,$)}let z=new g({dataSection:F,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,reactiveVars:this.options.reactiveVars,sourceMap:w}),X=z.compile(Z),K=w?w.toJSON():null,D=w?w.toReverseMap():null;if(K&&this.options.sourceMap==="inline"){let R=typeof Buffer<"u"?Buffer.from(K).toString("base64"):btoa(K);X+=`
|
|
709
|
+
//# sourceMappingURL=data:application/json;base64,${R}`}else if(K&&this.options.filename)X+=`
|
|
710
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(_)Y=y1(_,Z);return{tokens:A,sexpr:Z,code:X,dts:Y,map:K,reverseMap:D,data:F,reactiveVars:z.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}K2(g,r);g.prototype.generateEnum=$2;function I1($,U={}){return new w1(U).compile($)}function o($,U={}){return new w1(U).compileToJS($)}function J1(){return`globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
711
711
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
712
712
|
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
713
713
|
globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
|
|
@@ -720,12 +720,12 @@ globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
|
720
720
|
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
721
721
|
globalThis.warn ??= console.warn;
|
|
722
722
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
723
|
-
`}function
|
|
724
|
-
`),
|
|
725
|
-
${
|
|
726
|
-
${
|
|
727
|
-
})()`)}catch(_){console.error("Rip runtime error:",_)}}}let
|
|
728
|
-
`,f=new Blob([F
|
|
729
|
-
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");
|
|
730
|
-
`,z=
|
|
731
|
-
`:"",u=new Blob([w+z],{type:"application/javascript"}),J=URL.createObjectURL(u),X=await import(J),f){R=k1(X);for(let Q in R){let H=R[Q];f.classes[Q]=H}}if(W&&F)W.setCompiled(F,X);return X};E2=function($){let U,W,F;return F=1000,W=30000,U=function(){let f;return f=new EventSource($),f.addEventListener("connected",function(){return F=1000,console.log("[Rip] Hot reload connected")}),f.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),f.addEventListener("css",function(){for(let u of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(u.href),$.searchParams.set("_t",Date.now()),u.href=$.toString()}),f.onerror=function(){return f.close(),setTimeout(U,F),F=Math.min(F*2,W)}},U()};var c2=function($={}){return d1($)},g2=function($){return $?.[F1]?$[F1]:$},v3=function($){return $?.[N1]===!0},l3=function($,U={}){let W,F,f,u,Y;if(W=C(U.initial||null),f=C(!1),F=C(null),u=async function(){let A;return f.value=!0,F.value=null,(async()=>{try{return A=await $(),W.value=A}catch(_){return F.value=_}finally{f.value=!1}})()},Y={data:void 0,loading:void 0,error:void 0,refetch:u},Object.defineProperty(Y,"data",{get:function(){return W.value}}),Object.defineProperty(Y,"loading",{get:function(){return f.value}}),Object.defineProperty(Y,"error",{get:function(){return F.value}}),!U.lazy)u();return Y},v2=function($,U){let W,F;return W=K1(U),F=C(!!W()),e(function(){let f;if(W())return f=setTimeout(function(){return F.value=!0},$),function(){return clearTimeout(f)};else return F.value=!1}),typeof U!=="function"?z1(F,U):F},x3=function($,U){let W,F;return W=K1(U),F=C(W()),e(function(){let f,u;return u=W(),f=setTimeout(function(){return F.value=u},$),function(){return clearTimeout(f)}}),typeof U!=="function"?z1(F,U):F},k3=function($,U){let W,F,f;return W=K1(U),f=C(W()),F=0,e(function(){let u,Y,A,_;if(_=W(),u=Date.now(),Y=$-(u-F),Y<=0)return f.value=_,F=u;else return A=setTimeout(function(){return f.value=W(),F=Date.now()},Y),function(){return clearTimeout(A)}}),typeof U!=="function"?z1(f,U):f},m3=function($,U){let W,F;return W=K1(U),F=C(!!W()),e(function(){let f;if(W())return F.value=!0;else return f=setTimeout(function(){return F.value=!1},$),function(){return clearTimeout(f)}}),typeof U!=="function"?z1(F,U):F},l2=function(){let $,U,W,F;return U=new Map,F=[],$=new Map,W=function(f,u){for(let Y of F)Y(f,u)},{read:function(f){return U.get(f)},write:function(f,u){let Y;return Y=!U.has(f),U.set(f,u),$.delete(f),W(Y?"create":"change",f)},del:function(f){return U.delete(f),$.delete(f),W("delete",f)},exists:function(f){return U.has(f)},size:function(){return U.size},list:function(f=""){let u,Y,A;A=[],u=f?f+"/":"";for(let[_]of U)if(_.startsWith(u)){if(Y=_.slice(u.length),Y.includes("/"))continue;A.push(_)}return A},listAll:function(f=""){let u,Y;Y=[],u=f?f+"/":"";for(let[A]of U)if(A.startsWith(u))Y.push(A);return Y},load:function(f){for(let u in f){let Y=f[u];U.set(u,Y)}},watch:function(f){return F.push(f),function(){return F.splice(F.indexOf(f),1)}},getCompiled:function(f){return $.get(f)},setCompiled:function(f,u){return $.set(f,u)}}},x2=function($,U={}){let W,F,f,u,Y,A,_,R,w,z,X,K,D,Z,J,Q,H,O,M,G,B;if(H=U.root||"components",w=U.base||"",z=U.hash||!1,D=U.onError||null,M=function(q){return w&&q.startsWith(w)?q.slice(w.length)||"/":q},R=function(q){return w?w+q:q},J=function(){let q;if(z){if(q=location.hash.slice(1),!q)return"/";return q[0]==="/"?q:"/"+q}else return location.pathname+location.search+location.hash},B=function(q){return z?q==="/"?location.pathname:"#"+q.slice(1):R(q)},Y=C(M(z?J():location.pathname)),u=C({}),_=C(null),F=C([]),A=C({}),W=C(""),f=v2(100,C(!1)),G=E1($,H),X=new Set,$.watch(function(q,P){if(!P.startsWith(H+"/"))return;return G=E1($,H)}),Q=function(q){let P,E,I,N,T;if(N=q.split("?")[0].split("#")[0],E=M(N),E=E[0]==="/"?E:"/"+E,I=q.split("?")[1]?.split("#")[0]||"",P=q.includes("#")?q.split("#")[1]:"",T=h2(E,G.routes),T){G2(function(){return Y.value=E,u.value=T.params,_.value=T.route,F.value=L2(T.route.file,H,G.layouts),A.value=Object.fromEntries(new URLSearchParams(I)),W.value=P});for(let L of X)L(O.current);return!0}if(D)D({status:404,path:E});return!1},Z=function(){return Q(J())},typeof window<"u")window.addEventListener("popstate",Z);if(K=function(q){let P,E,I;if(q.button!==0||q.metaKey||q.ctrlKey||q.shiftKey||q.altKey)return;E=q.target;while(E&&E.tagName!=="A")E=E.parentElement;if(!E?.href)return;if(I=new URL(E.href,location.origin),I.origin!==location.origin)return;if(E.target==="_blank"||E.hasAttribute("data-external"))return;return q.preventDefault(),P=z&&I.hash?I.hash.slice(1)||"/":I.pathname+I.search+I.hash,O.push(P)},typeof document<"u")document.addEventListener("click",K);return O={push:function(q){return Q(q)?history.pushState(null,"",B(Y.read())):void 0},replace:function(q){return Q(q)?history.replaceState(null,"",B(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(q){return X.add(q),function(){return X.delete(q)}},rebuild:function(){return G=E1($,H)},routes:void 0,init:function(){return Q(J()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",Z);if(typeof document<"u")document.removeEventListener("click",K);return X.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:Y.value,params:u.value,route:_.value,layouts:F.value,query:A.value,hash:W.value}}}),Object.defineProperty(O,"path",{get:function(){return Y.value}}),Object.defineProperty(O,"params",{get:function(){return u.value}}),Object.defineProperty(O,"route",{get:function(){return _.value}}),Object.defineProperty(O,"layouts",{get:function(){return F.value}}),Object.defineProperty(O,"query",{get:function(){return A.value}}),Object.defineProperty(O,"hash",{get:function(){return W.value}}),Object.defineProperty(O,"navigating",{get:function(){return f.value},set:function(q){return f.value=q}}),Object.defineProperty(O,"routes",{get:function(){return G.routes}}),O},k2=function($={}){let U,W,F,f,u,Y,A,_,R,w,z,X,K,D,Z,J,Q,H,O,M,G,B;if({router:M,app:U,components:u,resolver:O,compile:F,target:G,onError:Q}=$,Y=typeof G==="string"?document.querySelector(G):G||document.getElementById("app"),!Y)Y=document.createElement("div"),Y.id="app",document.body.appendChild(Y);return Y.style.opacity="0",A=null,w=null,R=null,_=[],K=[],Z=Y,X=0,z=null,f=new Map,D=$.cacheSize||10,W=function(){let q,P;if(A&&w){if(A.beforeUnmount)A.beforeUnmount();if(f.set(w,A),f.size>D){if(P=f.keys().next().value,q=f.get(P),q.unmounted)q.unmounted();f.delete(P)}return A=null,w=null}},B=function(){W();for(let q=K.length-1;q>=0;q--){let P=K[q];if(P.beforeUnmount)P.beforeUnmount();if(P.unmounted)P.unmounted();P._target?.remove()}return K=[],Z=Y},u.watch(function(q,P){let E;if(f.has(P)){if(E=f.get(P),E.unmounted)E.unmounted();return f.delete(P)}}),J=async function(q){let P,E,I,N,T,L,h,V,n,m,y,u1,g,D1,f1,$1,M1,L1,c,o1,S1,U1;if({route:c,params:$1,layouts:V,query:L1}=q,!c)return;if(c.file===w&&JSON.stringify($1)===JSON.stringify(R))return;return R=$1,N=++X,M.navigating=!0,(async()=>{try{if(S1=u.read(c.file),!S1){if(Q)Q({status:404,message:`File not found: ${c.file}`});M.navigating=!1;return}if(u1=await B1(S1,F,u,c.file,O),N!==X){M.navigating=!1;return}if(P=m1(u1),!P){if(Q)Q({status:500,message:`No component found in ${c.file}`});M.navigating=!1;return}if(y=!P2(V,_),D1=A?._target,y)B();else W();if(g=y?Y:Z,y&&V.length>0){Y.innerHTML="",g=Y;for(let l of V){if(m=u.read(l),!m)continue;if(n=await B1(m,F,u,l,O),N!==X){M.navigating=!1;return}if(E=m1(n),!E)continue;if(L=new E({app:U,params:$1,router:M}),L.beforeMount)L.beforeMount();U1=document.createElement("div"),U1.setAttribute("data-layout",l),g.appendChild(U1),L.mount(U1),K.push(L),o1=U1.querySelector("slot")||U1,g=o1}_=[...V],Z=g}else if(y)Y.innerHTML="",_=[],Z=Y;if(I=f.get(c.file),I)f.delete(c.file),g.appendChild(I._target),A=I,w=c.file;else{if(f1=document.createElement("div"),f1.setAttribute("data-component",c.file),g.appendChild(f1),h=new P({app:U,params:$1,query:L1,router:M}),h.beforeMount)h.beforeMount();if(h.mount(f1),A=h,w=c.file,h.load)await h.load($1,L1)}return D1?.remove(),M.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(l){if(M.navigating=!1,Y.style.opacity="1",console.error(`Renderer: error mounting ${c.file}:`,l),Q)Q({status:500,message:l.message,error:l});T=!1;for(let h1=K.length-1;h1>=0;h1--){let a1=K[h1];if(a1.onError)try{a1.onError(l),T=!0;break}catch(m2){console.error("Renderer: error boundary failed:",m2)}}return(()=>{if(!T)return M1=document.createElement("pre"),M1.style.cssText="color:red;padding:1em",M1.textContent=l.stack||l.message,Y.innerHTML="",Y.appendChild(M1)})()}})()},H={start:function(){return z=e(function(){let q;return q=M.current,q.route?J(q):void 0}),M.init(),H},stop:function(){if(B(),z)z(),z=null;return Y.innerHTML=""},remount:function(){let q;return q=M.current,q.route?J(q):void 0},cache:f},H},i3=async function($="",U={}){let W,F,f,u,Y,A,_,R,w,z,X,K,D,Z,J,Q,H,O,M,G,B,q;if(globalThis.__ripLaunched=!0,typeof $==="object")U=$,$="";if($=$.replace(/\/+$/,""),q=U.target||"#app",w=U.compile||null,J=U.persist||!1,D=U.hash||!1,!w)w=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(q))z=document.createElement("div"),z.id=q.replace(/^#/,""),document.body.prepend(z);if(U.bundle)A=U.bundle;else if(U.bundleUrl){if(Z={},K=`__rip_etag_${U.bundleUrl}`,_=sessionStorage.getItem(K),_)Z["If-None-Match"]=_;if(H=await fetch(U.bundleUrl,{headers:Z}),H.status===304)A=JSON.parse(sessionStorage.getItem(`${K}_data`));else if(H.ok){if(A=await H.json(),X=H.headers.get("etag"),X)sessionStorage.setItem(K,X),sessionStorage.setItem(`${K}_data`,JSON.stringify(A))}else throw Error(`launch: ${U.bundleUrl} (${H.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(u=c2({components:{},routes:{},data:{}}),A.data)u.data=A.data;if(A.routes)u.routes=A.routes;if(J&&typeof sessionStorage<"u"){f=`__rip_${$}`,F=J==="local"?localStorage:sessionStorage;try{if(G=F.getItem(f),G){B=JSON.parse(G);for(let P in B){let E=B[P];u.data[P]=E}}}catch{}W=function(){return(()=>{try{return F.setItem(f,JSON.stringify(g2(u.data)))}catch{return null}})()},e(function(){let P;return n1.value,P=setTimeout(W,2000),function(){return clearTimeout(P)}}),window.addEventListener("beforeunload",W)}if(Y=l2(),A.components)Y.load(A.components);if(R=`__rip_${$.replace(/\//g,"_")||"app"}`,O={map:I2(Y),classes:{},key:R},typeof globalThis<"u")globalThis[R]=O.classes;if(u.data.title&&typeof document<"u")document.title=u.data.title;if(M=x2(Y,{root:"components",base:$,hash:D,onError:function(P){return console.error(`[Rip] Error ${P.status}: ${P.message||P.path}`)}}),Q=k2({router:M,app:u,components:Y,resolver:O,compile:w,target:q,onError:function(P){return console.error(`[Rip] ${P.message}`,P.error)}}),Q.start(),A.data?.watch)E2(`${$}/watch`);if(typeof window<"u")window.app=u,window.__RIP__={app:u,components:Y,router:M,renderer:Q,cache:Q.cache,version:"0.3.0"};return{app:u,components:Y,router:M,renderer:Q}};t.modules["app.rip"]=T1;for(let[$,U]of Object.entries(T1))if(typeof U==="function")globalThis[$]=U;})();
|
|
723
|
+
`}function Q1(){return new g({}).getReactiveRuntime()}function X1(){return new g({}).getComponentRuntime()}var D2="3.13.52",M2="2026-02-27@09:18:12GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(Q1())();if(!globalThis.__ripComponent)Function(X1())()}var x3=($)=>{let U=$.match(/^[ \t]*(?=\S)/gm),F=Math.min(...(U||[]).map((W)=>W.length));return $.replace(RegExp(`^[ ]{${F}}`,"gm"),"").trim()};async function H2(){let $=[],U=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),F=U?.getAttribute("data-src");if(F){for(let f of F.trim().split(/\s+/))if(f)$.push({url:f})}for(let f of document.querySelectorAll('script[type="text/rip"]'))if(f.src)$.push({url:f.src});else{let u=x3(f.textContent);if(u)$.push({code:u})}if($.length>0){await Promise.all($.map(async(A)=>{if(!A.url)return;try{let Y=await fetch(A.url);if(!Y.ok){console.error(`Rip: failed to fetch ${A.url} (${Y.status})`);return}A.code=await Y.text()}catch(Y){console.error(`Rip: failed to fetch ${A.url}:`,Y.message)}}));let f={skipRuntimes:!0,skipExports:!0},u=[];for(let A of $){if(!A.code)continue;try{u.push(o(A.code,f))}catch(Y){console.error("Rip compile error:",Y.message)}}if(u.length>0){let A=u.join(`
|
|
724
|
+
`),Y=U?.getAttribute("data-mount");if(Y){let _=U.getAttribute("data-target")||"body";A+=`
|
|
725
|
+
${Y}.mount(${JSON.stringify(_)});`}try{await(0,eval)(`(async()=>{
|
|
726
|
+
${A}
|
|
727
|
+
})()`)}catch(_){console.error("Rip runtime error:",_)}}}let W=document.querySelector("script[data-launch]");if(W&&!globalThis.__ripLaunched){let f=e.modules?.["app.rip"];if(f?.launch){let u=W.getAttribute("data-launch")||"",A=W.getAttribute("data-hash"),Y=W.getAttribute("data-persist"),_={hash:A!=="false"};if(u)_.bundleUrl=u;if(Y!=null)_.persist=Y==="local"?"local":!0;await f.launch("",_)}}}async function e($){for(let[A,Y]of Object.entries(e.modules))if($.includes(A))return Y;let U=await fetch($).then((A)=>{if(!A.ok)throw Error(`importRip: ${$} (${A.status})`);return A.text()}),F=o(U),W=`// ${$}
|
|
728
|
+
`,f=new Blob([W+F],{type:"application/javascript"});return await import(URL.createObjectURL(f))}e.modules={};function q2($){try{let U=$.replace(/^/gm," "),W=o(`do ->
|
|
729
|
+
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");W=W.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let f=(0,eval)(W);if(f&&typeof f.then==="function")return f.then((u)=>{if(u!==void 0)globalThis._=u;return u});if(f!==void 0)globalThis._=f;return f}catch(U){console.error("Rip compilation error:",U.message);return}}if(typeof globalThis<"u")globalThis.rip=q2,globalThis.importRip=e,globalThis.compileToJS=o,globalThis.__ripExports={compile:I1,compileToJS:o,formatSExpr:n,getStdlibCode:J1,VERSION:D2,BUILD_DATE:M2,getReactiveRuntime:Q1,getComponentRuntime:X1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise(($)=>{let U=()=>H2().then($);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});var T1={};t1(T1,{throttle:()=>n3,stash:()=>c2,setContext:()=>V2,raw:()=>g2,launch:()=>d3,isStash:()=>k3,hold:()=>p3,hasContext:()=>S2,getContext:()=>T2,delay:()=>v2,debounce:()=>i3,createRouter:()=>x2,createResource:()=>m3,createRenderer:()=>k2,createComponents:()=>l2});var O2,i1,A1,a,N1,G2,u1,y,x1,K1,D1,n1,P2,I2,E1,B1,E2,B2,N2,k1,m1,T2,L2,p1,S2,z1,d1,h2,j2,V2,C2,y2,r1,b2;globalThis.abort??=($)=>{if($)console.error($);process.exit(1)};globalThis.assert??=($,U)=>{if(!$)throw Error(U||"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??=($,U)=>{throw U!==void 0?new $(U):Error($)};globalThis.rand??=($,U)=>U!==void 0?($>U&&([$,U]=[U,$]),Math.floor(Math.random()*(U-$+1)+$)):$?Math.floor(Math.random()*$):Math.random();globalThis.sleep??=($)=>new Promise((U)=>setTimeout(U,$));globalThis.todo??=($)=>{throw Error($||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...$)=>$[0].map((U,F)=>$.map((W)=>W[F]));({__state:y,__effect:u1,__batch:G2}=globalThis.__rip);({setContext:V2,getContext:T2,hasContext:S2}=globalThis.__ripComponent||{});N1=Symbol("stash");a=Symbol("signals");A1=Symbol("raw");i1=new WeakMap;x1=0;n1=y(0);p1=function($,U){let F;if(!$[a])Object.defineProperty($,a,{value:new Map,enumerable:!1});if(F=$[a].get(U),!F)F=y($[U]),$[a].set(U,F);return F};z1=function($){return p1($,Symbol.for("keys"))};b2=function($){let U;if(!($!=null&&typeof $==="object"))return $;if($[N1])return $;if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Promise)return $;if(U=i1.get($),U)return U;return d1($)};d1=function($){let U,F;return F=null,U={get:function(W,f){let u,A;if(f===N1)return!0;if(f===A1)return W;if(typeof f==="symbol")return Reflect.get(W,f);if(f==="length"&&Array.isArray(W))return z1(W).value,W.length;if(f==="get")return function(Y){return C2(F,Y)};if(f==="set")return function(Y,_){return y2(F,Y,_)};if(u=p1(W,f),A=u.value,A!=null&&typeof A==="object")return b2(A);return A},set:function(W,f,u){let A,Y;if(A=W[f],Y=u?.[A1]?u[A1]:u,Y===A)return!0;if(W[f]=Y,W[a]?.has(f))W[a].get(f).value=Y;if(A===void 0&&Y!==void 0)z1(W).value=++x1;return n1.value++,!0},deleteProperty:function(W,f){let u;if(delete W[f],u=W[a]?.get(f),u)u.value=void 0;return z1(W).value=++x1,!0},ownKeys:function(W){return z1(W).value,Reflect.ownKeys(W)}},F=new Proxy($,U),i1.set($,F),F};O2=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;r1=function($){let U,F,W,f,u;W=("."+$).split(O2),W.shift(),u=[],F=0;while(F<W.length){if(f=W[F],U=f[0],U==="."||U==="/")u.push(f.slice(1));else if(U==="[")if(f[1]==='"'||f[1]==="'")u.push(f.slice(2,-2));else u.push(+f.slice(1,-1));F+=2}return u};C2=function($,U){let F,W;W=r1(U),F=$;for(let f of W){if(F==null)return;F=F[f]}return F};y2=function($,U,F){let W,f;f=r1(U),W=$;for(let u=0;u<f.length;u++){let A=f[u];if(u===f.length-1)W[A]=F;else{if(W[A]==null)W[A]={};W=W[A]}}return F};D1=function($){return typeof $==="function"?$:function(){return $.value}};K1=function($,U){let F;return F={read:function(){return $.read()}},Object.defineProperty(F,"value",{get:function(){return $.value},set:function(W){return U.value=W}}),F};N2=function($){let U;if(U=$.replace(/\.rip$/,""),U=U.replace(/\[\.\.\.(\w+)\]/g,"*$1"),U=U.replace(/\[(\w+)\]/g,":$1"),U==="index")return"/";return U=U.replace(/\/index$/,""),"/"+U};j2=function($){let U,F;return U=[],F=$.replace(/\*(\w+)/g,function(W,f){return U.push(f),"(.+)"}).replace(/:(\w+)/g,function(W,f){return U.push(f),"([^/]+)"}),{regex:new RegExp("^"+F+"$"),names:U}};h2=function($,U){let F,W;for(let f of U)if(F=$.match(f.regex.regex),F){W={};for(let u=0;u<f.regex.names.length;u++){let A=f.regex.names[u];W[A]=decodeURIComponent(F[u+1])}return{route:f,params:W}}return null};E1=function($,U="components"){let F,W,f,u,A,Y,_,Z,w;_=[],f=new Map,F=$.listAll(U);for(let z of F){if(Y=z.slice(U.length+1),!Y.endsWith(".rip"))continue;if(u=Y.split("/").pop(),u==="_layout.rip"){W=Y==="_layout.rip"?"":Y.slice(0,-12),f.set(W,z);continue}if(u.startsWith("_"))continue;if(Z=Y.split("/"),Z.length>1&&Z.some(function(X,K){return K<Z.length-1&&X.startsWith("_")}))continue;w=N2(Y),A=j2(w),_.push({pattern:w,regex:A,file:z,rel:Y})}return _.sort(function(z,X){let K,D,R,J;if(D=(z.pattern.match(/:/g)||[]).length,J=(X.pattern.match(/:/g)||[]).length,K=z.pattern.includes("*")?1:0,R=X.pattern.includes("*")?1:0,K!==R)return K-R;if(D!==J)return D-J;return z.pattern.localeCompare(X.pattern)}),{routes:_,layouts:f}};L2=function($,U,F){let W,f,u,A;if(W=[],u=$.slice(U.length+1),A=u.split("/"),f="",F.has(""))W.push(F.get(""));for(let Y=0;Y<A.length;Y++){let _=A[Y];if(Y===A.length-1)break;if(f=f?f+"/"+_:_,F.has(f))W.push(F.get(f))}return W};P2=function($,U){if($.length!==U.length)return!1;for(let F=0;F<$.length;F++)if($[F]!==U[F])return!1;return!0};m1=function($){for(let U in $){let F=$[U];if(typeof F==="function"&&(F.prototype?.mount||F.prototype?._create))return F}return typeof $.default==="function"?$.default:void 0};k1=function($){let U;U={};for(let F in $){let W=$[F];if(typeof W==="function"&&(W.prototype?.mount||W.prototype?._create))U[F]=W}return U};B2=function($){let U;return U=$.split("/").pop().replace(/\.rip$/,""),U.replace(/(^|[-_])([a-z])/g,function(F,W,f){return f.toUpperCase()})};I2=function($,U="components"){let F,W,f;W={};for(let u of $.listAll(U)){if(!u.endsWith(".rip"))continue;if(F=u.split("/").pop(),F.startsWith("_"))continue;if(f=B2(u),W[f])console.warn(`[Rip] Component name collision: ${f} (${W[f]} vs ${u})`);W[f]=u}return W};B1=async function($,U,F=null,W=null,f=null){let u,A,Y,_,Z,w,z,X,K,D,R,J;if(F&&W){if(A=F.getCompiled(W),A)return A}if(z=U($),f){D={};for(let Q in f.map){let q=f.map[Q];if(q!==W&&z.includes(`new ${Q}(`)){if(!f.classes[Q]){if(_=F.read(q),_){Y=await B1(_,U,F,q,f),Z=k1(Y);for(let O in Z){let M=Z[O];f.classes[O]=M}}}if(f.classes[Q])D[Q]=!0}}if(K=Object.keys(D),K.length>0)R=`const {${K.join(", ")}} = globalThis['${f.key}'];
|
|
730
|
+
`,z=R+z}if(w=W?`// ${W}
|
|
731
|
+
`:"",u=new Blob([w+z],{type:"application/javascript"}),J=URL.createObjectURL(u),X=await import(J),f){Z=k1(X);for(let Q in Z){let q=Z[Q];f.classes[Q]=q}}if(F&&W)F.setCompiled(W,X);return X};E2=function($){let U,F,W;return W=1000,F=30000,U=function(){let f;return f=new EventSource($),f.addEventListener("connected",function(){return W=1000,console.log("[Rip] Hot reload connected")}),f.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),f.addEventListener("css",function(){for(let u of document.querySelectorAll('link[rel="stylesheet"]'))$=new URL(u.href),$.searchParams.set("_t",Date.now()),u.href=$.toString()}),f.onerror=function(){return f.close(),setTimeout(U,W),W=Math.min(W*2,F)}},U()};var c2=function($={}){return d1($)},g2=function($){return $?.[A1]?$[A1]:$},k3=function($){return $?.[N1]===!0},m3=function($,U={}){let F,W,f,u,A;if(F=y(U.initial||null),f=y(!1),W=y(null),u=async function(){let Y;return f.value=!0,W.value=null,(async()=>{try{return Y=await $(),F.value=Y}catch(_){return W.value=_}finally{f.value=!1}})()},A={data:void 0,loading:void 0,error:void 0,refetch:u},Object.defineProperty(A,"data",{get:function(){return F.value}}),Object.defineProperty(A,"loading",{get:function(){return f.value}}),Object.defineProperty(A,"error",{get:function(){return W.value}}),!U.lazy)u();return A},v2=function($,U){let F,W;return F=D1(U),W=y(!!F()),u1(function(){let f;if(F())return f=setTimeout(function(){return W.value=!0},$),function(){return clearTimeout(f)};else return W.value=!1}),typeof U!=="function"?K1(W,U):W},i3=function($,U){let F,W;return F=D1(U),W=y(F()),u1(function(){let f,u;return u=F(),f=setTimeout(function(){return W.value=u},$),function(){return clearTimeout(f)}}),typeof U!=="function"?K1(W,U):W},n3=function($,U){let F,W,f;return F=D1(U),f=y(F()),W=0,u1(function(){let u,A,Y,_;if(_=F(),u=Date.now(),A=$-(u-W),A<=0)return f.value=_,W=u;else return Y=setTimeout(function(){return f.value=F(),W=Date.now()},A),function(){return clearTimeout(Y)}}),typeof U!=="function"?K1(f,U):f},p3=function($,U){let F,W;return F=D1(U),W=y(!!F()),u1(function(){let f;if(F())return W.value=!0;else return f=setTimeout(function(){return W.value=!1},$),function(){return clearTimeout(f)}}),typeof U!=="function"?K1(W,U):W},l2=function(){let $,U,F,W;return U=new Map,W=[],$=new Map,F=function(f,u){for(let A of W)A(f,u)},{read:function(f){return U.get(f)},write:function(f,u){let A;return A=!U.has(f),U.set(f,u),$.delete(f),F(A?"create":"change",f)},del:function(f){return U.delete(f),$.delete(f),F("delete",f)},exists:function(f){return U.has(f)},size:function(){return U.size},list:function(f=""){let u,A,Y;Y=[],u=f?f+"/":"";for(let[_]of U)if(_.startsWith(u)){if(A=_.slice(u.length),A.includes("/"))continue;Y.push(_)}return Y},listAll:function(f=""){let u,A;A=[],u=f?f+"/":"";for(let[Y]of U)if(Y.startsWith(u))A.push(Y);return A},load:function(f){for(let u in f){let A=f[u];U.set(u,A)}},watch:function(f){return W.push(f),function(){return W.splice(W.indexOf(f),1)}},getCompiled:function(f){return $.get(f)},setCompiled:function(f,u){return $.set(f,u)}}},x2=function($,U={}){let F,W,f,u,A,Y,_,Z,w,z,X,K,D,R,J,Q,q,O,M,G,I;if(q=U.root||"components",w=U.base||"",z=U.hash||!1,D=U.onError||null,M=function(H){return w&&H.startsWith(w)?H.slice(w.length)||"/":H},Z=function(H){return w?w+H:H},J=function(){let H;if(z){if(H=location.hash.slice(1),!H)return"/";return H[0]==="/"?H:"/"+H}else return location.pathname+location.search+location.hash},I=function(H){return z?H==="/"?location.pathname:"#"+H.slice(1):Z(H)},A=y(M(z?J():location.pathname)),u=y({}),_=y(null),W=y([]),Y=y({}),F=y(""),f=v2(100,y(!1)),G=E1($,q),X=new Set,$.watch(function(H,P){if(!P.startsWith(q+"/"))return;return G=E1($,q)}),Q=function(H){let P,E,B,S,N;if(S=H.split("?")[0].split("#")[0],E=M(S),E=E[0]==="/"?E:"/"+E,B=H.split("?")[1]?.split("#")[0]||"",P=H.includes("#")?H.split("#")[1]:"",N=h2(E,G.routes),N){G2(function(){return A.value=E,u.value=N.params,_.value=N.route,W.value=L2(N.route.file,q,G.layouts),Y.value=Object.fromEntries(new URLSearchParams(B)),F.value=P});for(let L of X)L(O.current);return!0}if(D)D({status:404,path:E});return!1},R=function(){return Q(J())},typeof window<"u")window.addEventListener("popstate",R);if(K=function(H){let P,E,B;if(H.button!==0||H.metaKey||H.ctrlKey||H.shiftKey||H.altKey)return;E=H.target;while(E&&E.tagName!=="A")E=E.parentElement;if(!E?.href)return;if(B=new URL(E.href,location.origin),B.origin!==location.origin)return;if(E.target==="_blank"||E.hasAttribute("data-external"))return;return H.preventDefault(),P=z&&B.hash?B.hash.slice(1)||"/":B.pathname+B.search+B.hash,O.push(P)},typeof document<"u")document.addEventListener("click",K);return O={push:function(H){return Q(H)?history.pushState(null,"",I(A.read())):void 0},replace:function(H){return Q(H)?history.replaceState(null,"",I(A.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(H){return X.add(H),function(){return X.delete(H)}},rebuild:function(){return G=E1($,q)},routes:void 0,init:function(){return Q(J()),O},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",R);if(typeof document<"u")document.removeEventListener("click",K);return X.clear()}},Object.defineProperty(O,"current",{get:function(){return{path:A.value,params:u.value,route:_.value,layouts:W.value,query:Y.value,hash:F.value}}}),Object.defineProperty(O,"path",{get:function(){return A.value}}),Object.defineProperty(O,"params",{get:function(){return u.value}}),Object.defineProperty(O,"route",{get:function(){return _.value}}),Object.defineProperty(O,"layouts",{get:function(){return W.value}}),Object.defineProperty(O,"query",{get:function(){return Y.value}}),Object.defineProperty(O,"hash",{get:function(){return F.value}}),Object.defineProperty(O,"navigating",{get:function(){return f.value},set:function(H){return f.value=H}}),Object.defineProperty(O,"routes",{get:function(){return G.routes}}),O},k2=function($={}){let U,F,W,f,u,A,Y,_,Z,w,z,X,K,D,R,J,Q,q,O,M,G,I;if({router:M,app:U,components:u,resolver:O,compile:W,target:G,onError:Q}=$,A=typeof G==="string"?document.querySelector(G):G||document.getElementById("app"),!A)A=document.createElement("div"),A.id="app",document.body.appendChild(A);return A.style.opacity="0",Y=null,w=null,Z=null,_=[],K=[],R=A,X=0,z=null,f=new Map,D=$.cacheSize||10,F=function(){let H,P;if(Y&&w){if(Y.beforeUnmount)Y.beforeUnmount();if(f.set(w,Y),f.size>D){if(P=f.keys().next().value,H=f.get(P),H.unmounted)H.unmounted();f.delete(P)}return Y=null,w=null}},I=function(){F();for(let H=K.length-1;H>=0;H--){let P=K[H];if(P.beforeUnmount)P.beforeUnmount();if(P.unmounted)P.unmounted();P._target?.remove()}return K=[],R=A},u.watch(function(H,P){let E;if(f.has(P)){if(E=f.get(P),E.unmounted)E.unmounted();return f.delete(P)}}),J=async function(H){let P,E,B,S,N,L,T,h,C,l,b,k,c,M1,f1,$1,H1,L1,v,o1,S1,U1;if({route:v,params:$1,layouts:h,query:L1}=H,!v)return;if(v.file===w&&JSON.stringify($1)===JSON.stringify(Z))return;return Z=$1,S=++X,M.navigating=!0,(async()=>{try{if(S1=u.read(v.file),!S1){if(Q)Q({status:404,message:`File not found: ${v.file}`});M.navigating=!1;return}if(k=await B1(S1,W,u,v.file,O),S!==X){M.navigating=!1;return}if(P=m1(k),!P){if(Q)Q({status:500,message:`No component found in ${v.file}`});M.navigating=!1;return}if(b=!P2(h,_),M1=Y?._target,b)I();else F();if(c=b?A:R,b&&h.length>0){A.innerHTML="",c=A;for(let m of h){if(l=u.read(m),!l)continue;if(C=await B1(l,W,u,m,O),S!==X){M.navigating=!1;return}if(E=m1(C),!E)continue;if(L=new E({app:U,params:$1,router:M}),L.beforeMount)L.beforeMount();U1=document.createElement("div"),U1.setAttribute("data-layout",m),c.appendChild(U1),L.mount(U1),K.push(L),o1=U1.querySelector("slot")||U1,c=o1}_=[...h],R=c}else if(b)A.innerHTML="",_=[],R=A;if(B=f.get(v.file),B)f.delete(v.file),c.appendChild(B._target),Y=B,w=v.file;else{if(f1=document.createElement("div"),f1.setAttribute("data-component",v.file),c.appendChild(f1),T=new P({app:U,params:$1,query:L1,router:M}),T.beforeMount)T.beforeMount();if(T.mount(f1),Y=T,w=v.file,T.load)await T.load($1,L1)}return M1?.remove(),M.navigating=!1,A.style.opacity==="0"?document.fonts.ready.then(function(){return requestAnimationFrame(function(){return A.style.transition="opacity 150ms ease-in",A.style.opacity="1"})}):void 0}catch(m){if(M.navigating=!1,A.style.opacity="1",console.error(`Renderer: error mounting ${v.file}:`,m),Q)Q({status:500,message:m.message,error:m});N=!1;for(let h1=K.length-1;h1>=0;h1--){let a1=K[h1];if(a1.onError)try{a1.onError(m),N=!0;break}catch(m2){console.error("Renderer: error boundary failed:",m2)}}return(()=>{if(!N)return H1=document.createElement("pre"),H1.style.cssText="color:red;padding:1em",H1.textContent=m.stack||m.message,A.innerHTML="",A.appendChild(H1)})()}})()},q={start:function(){return z=u1(function(){let H;return H=M.current,H.route?J(H):void 0}),M.init(),q},stop:function(){if(I(),z)z(),z=null;return A.innerHTML=""},remount:function(){let H;return H=M.current,H.route?J(H):void 0},cache:f},q},d3=async function($="",U={}){let F,W,f,u,A,Y,_,Z,w,z,X,K,D,R,J,Q,q,O,M,G,I,H;if(globalThis.__ripLaunched=!0,typeof $==="object")U=$,$="";if($=$.replace(/\/+$/,""),H=U.target||"#app",w=U.compile||null,J=U.persist||!1,D=U.hash||!1,!w)w=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(H))z=document.createElement("div"),z.id=H.replace(/^#/,""),document.body.prepend(z);if(U.bundle)Y=U.bundle;else if(U.bundleUrl){if(R={},K=`__rip_etag_${U.bundleUrl}`,_=sessionStorage.getItem(K),_)R["If-None-Match"]=_;if(q=await fetch(U.bundleUrl,{headers:R}),q.status===304)Y=JSON.parse(sessionStorage.getItem(`${K}_data`));else if(q.ok){if(Y=await q.json(),X=q.headers.get("etag"),X)sessionStorage.setItem(K,X),sessionStorage.setItem(`${K}_data`,JSON.stringify(Y))}else throw Error(`launch: ${U.bundleUrl} (${q.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(u=c2({components:{},routes:{},data:{}}),Y.data)u.data=Y.data;if(Y.routes)u.routes=Y.routes;if(J&&typeof sessionStorage<"u"){f=`__rip_${$}`,W=J==="local"?localStorage:sessionStorage;try{if(G=W.getItem(f),G){I=JSON.parse(G);for(let P in I){let E=I[P];u.data[P]=E}}}catch{}F=function(){return(()=>{try{return W.setItem(f,JSON.stringify(g2(u.data)))}catch{return null}})()},u1(function(){let P;return n1.value,P=setTimeout(F,2000),function(){return clearTimeout(P)}}),window.addEventListener("beforeunload",F)}if(A=l2(),Y.components)A.load(Y.components);if(Z=`__rip_${$.replace(/\//g,"_")||"app"}`,O={map:I2(A),classes:{},key:Z},typeof globalThis<"u")globalThis[Z]=O.classes;if(u.data.title&&typeof document<"u")document.title=u.data.title;if(M=x2(A,{root:"components",base:$,hash:D,onError:function(P){return console.error(`[Rip] Error ${P.status}: ${P.message||P.path}`)}}),Q=k2({router:M,app:u,components:A,resolver:O,compile:w,target:H,onError:function(P){return console.error(`[Rip] ${P.message}`,P.error)}}),Q.start(),Y.data?.watch)E2(`${$}/watch`);if(typeof window<"u")window.app=u,window.__RIP__={app:u,components:A,router:M,renderer:Q,cache:Q.cache,version:"0.3.0"};return{app:u,components:A,router:M,renderer:Q}};e.modules["app.rip"]=T1;for(let[$,U]of Object.entries(T1))if(typeof U==="function")globalThis[$]=U;})();
|