rip-lang 3.10.4 → 3.10.6
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/CHANGELOG.md +11 -0
- package/README.md +18 -18
- package/bin/rip +14 -30
- package/docs/RIP-INTERNALS.md +14 -14
- package/docs/RIP-LANG.md +218 -70
- package/docs/dist/rip-ui.min.js +97 -97
- package/docs/dist/rip-ui.min.js.br +0 -0
- package/docs/dist/rip.browser.min.js +153 -153
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/package.json +1 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
function M1(A){let U=A.prototype;U.rewriteTypes=function(){let Z=this.tokens,W=(Y,$,Q)=>{let F=[Y,$];if(F.pre=0,F.data=null,F.loc=Q?.loc??{r:0,c:0,n:0},F.spaced=!1,F.newLine=!1,F.generated=!0,Q)F.origin=Q;return F};this.scanTokens((Y,$,Q)=>{let F=Y[0];if(F==="IDENTIFIER"){let J=Q[$+1];if(J&&J[0]==="COMPARE"&&J[1]==="<"&&!J.spaced){let D=Q[$-1]?.[0]==="DEF",X=h1(Q,$+1);if(X){let z=!D&&Q[$+1+X.length]?.[0]==="TYPE_ALIAS";if(D||z){if(!Y.data)Y.data={};if(Y.data.typeParams=p(X),Q.splice($+1,X.length),D&&Q[$+1]?.[0]==="("){Q[$+1][0]="CALL_START";let M=1,K=$+2;while(K<Q.length&&M>0){if(Q[K][0]==="("||Q[K][0]==="CALL_START")M++;if(Q[K][0]===")"||Q[K][0]==="CALL_END")M--;if(M===0)Q[K][0]="CALL_END";K++}}}}}}if(F==="TYPE_ANNOTATION"){let J=Q[$-1];if(!J)return 1;let D=z1(Q,$+1),X=p(D),z=J,M="type";if(J[0]==="CALL_END"||J[0]===")"){let H=1,G=$-2;while(G>=0&&H>0){let q=Q[G][0];if(q==="CALL_END"||q===")")H++;if(q==="CALL_START"||q==="(")H--;G--}if(G>=0)z=Q[G];M="returnType"}else if(J[0]==="PARAM_END"){let H=$+1+D.length,G=Q[H];if(G&&(G[0]==="->"||G[0]==="=>"))z=G;M="returnType"}else if(J[0]==="IDENTIFIER"&&$>=2&&Q[$-2]?.[0]==="DEF")M="returnType";if(!z.data)z.data={};z.data[M]=X;let K=1+D.length;return Q.splice($,K),0}if(F==="TYPE_ALIAS"){let J=Q[$-1];if(!J)return 1;let D=J[1],X=$>=2&&Q[$-2]?.[0]==="EXPORT",z=X?$-2:$-1,M=Q[$+1],K=(G)=>{let q=W("TYPE_DECL",D,J);if(q.data={name:D,typeText:G,exported:X},J.data?.typeParams)q.data.typeParams=J.data.typeParams;return q};if(M&&M[0]==="IDENTIFIER"&&M[1]==="type"&&Q[$+2]?.[0]==="INDENT"){let G=Y1(Q,$+2);return Q.splice(z,G-z+1,K(H1(Q,$+2))),0}if(M&&(M[0]==="TERMINATOR"||M[0]==="INDENT")){let G=b1(Q,$+1);if(G)return Q.splice(z,G.endIdx-z+1,K(G.typeText)),0}let H=z1(Q,$+1);return Q.splice(z,$+1+H.length-z,K(p(H))),0}if(F==="INTERFACE"){let J=$>=1&&Q[$-1]?.[0]==="EXPORT",D=$+1,X=Q[D];if(!X)return 1;let z=X[1],M=null,K=D+1;if(Q[K]?.[0]==="EXTENDS")M=Q[K+1]?.[1],K=K+2;if(Q[K]?.[0]==="INDENT"){let H=H1(Q,K),G=Y1(Q,K),q=W("TYPE_DECL",z,X);q.data={name:z,kind:"interface",extends:M,typeText:H,exported:J};let R=J?$-1:$,w=G-R+1;return Q.splice(R,w,q),0}return 1}return 1})}}function z1(A,U){let Z=[],W=0;while(U<A.length){let Y=A[U],$=Y[0],Q=$==="("||$==="["||$==="CALL_START"||$==="PARAM_START"||$==="INDEX_START"||$==="COMPARE"&&Y[1]==="<",F=$===")"||$==="]"||$==="CALL_END"||$==="PARAM_END"||$==="INDEX_END"||$==="COMPARE"&&Y[1]===">";if($==="SHIFT"&&Y[1]===">>"&&W>=2){W-=2,Z.push(Y),U++;continue}if(Q){W++,Z.push(Y),U++;continue}if(F){if(W>0){W--,Z.push(Y),U++;continue}break}if(W===0){if($==="="||$==="REACTIVE_ASSIGN"||$==="COMPUTED_ASSIGN"||$==="READONLY_ASSIGN"||$==="REACT_ASSIGN"||$==="TERMINATOR"||$==="INDENT"||$==="OUTDENT"||$==="->"||$===",")break}Z.push(Y),U++}return Z}function p(A){if(A.length===0)return"";if(A[0]?.[0]==="=>")A.unshift(["","()"]);let U=A.map((Z)=>Z[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 h1(A,U){if(U>=A.length)return null;let Z=A[U];if(Z[0]!=="COMPARE"||Z[1]!=="<")return null;let W=[Z],Y=1,$=U+1;while($<A.length&&Y>0){let Q=A[$];if(W.push(Q),Q[0]==="COMPARE"&&Q[1]==="<")Y++;else if(Q[0]==="COMPARE"&&Q[1]===">")Y--;$++}return Y===0?W:null}function H1(A,U){let Z=[],W=U+1,Y=1;while(W<A.length&&Y>0){let $=A[W];if($[0]==="INDENT"){Y++,W++;continue}if($[0]==="OUTDENT"){if(Y--,Y===0)break;W++;continue}if($[0]==="TERMINATOR"){W++;continue}if(Y===1&&($[0]==="PROPERTY"||$[0]==="IDENTIFIER")){let Q=$[1],F=!1,J=!1;if(W++,Q==="readonly"&&(A[W]?.[0]==="PROPERTY"||A[W]?.[0]==="IDENTIFIER")){if(J=!0,Q=A[W][1],A[W].data?.predicate)F=!0;W++}if($.data?.predicate)F=!0;if(A[W]?.[1]==="?"&&!A[W]?.spaced)F=!0,W++;if(A[W]?.[1]===":"||A[W]?.[0]==="TYPE_ANNOTATION")W++;let D=[],X=0;while(W<A.length){let H=A[W];if(H[0]==="INDENT"){X++,W++;continue}if(H[0]==="OUTDENT"){if(X>0){X--,W++;continue}break}if(H[0]==="TERMINATOR"&&X===0)break;D.push(H),W++}let z=p(D),M=J?"readonly ":"",K=F?"?":"";Z.push(`${M}${Q}${K}: ${z}`)}else W++}return"{ "+Z.join("; ")+" }"}function Y1(A,U){let Z=0;for(let W=U;W<A.length;W++){if(A[W][0]==="INDENT")Z++;if(A[W][0]==="OUTDENT"){if(Z--,Z===0)return W}}return A.length-1}function b1(A,U){let Z=U;if(A[Z]?.[0]==="TERMINATOR")Z++;if(A[Z]?.[0]!=="INDENT")return null;let W=Z;Z++;while(Z<A.length&&A[Z][0]==="TERMINATOR")Z++;if(!A[Z]||A[Z][1]!=="|")return null;let Y=[],$=1;Z=W+1;while(Z<A.length&&$>0){let F=A[Z];if(F[0]==="INDENT"){$++,Z++;continue}if(F[0]==="OUTDENT"){if($--,$===0)break;Z++;continue}if(F[0]==="TERMINATOR"){Z++;continue}if(F[1]==="|"&&$===1){Z++;let J=[];while(Z<A.length){let D=A[Z];if(D[0]==="TERMINATOR"||D[0]==="OUTDENT"||D[1]==="|"&&$===1)break;J.push(D),Z++}if(J.length>0)Y.push(p(J));continue}Z++}if(Y.length===0)return null;let Q=Y1(A,W);return{typeText:Y.join(" | "),endIdx:Q}}function W1(A,U=null){let Z=[],W=0,Y=" ",$=()=>Y.repeat(W),Q=!1,F=!1,J=!1,D=(K,H,G)=>{if(H.startsWith("{ ")&&H.endsWith(" }")){let q=H.slice(2,-2).split("; ").filter((R)=>R.trim());if(q.length>0){Z.push(`${$()}${K}{`),W++;for(let R of q)Z.push(`${$()}${R};`);W--,Z.push(`${$()}}${G}`);return}}Z.push(`${$()}${K}${H}${G}`)},X=(K,H)=>{let G=[],q=H,R=K[q]?.[0];if(R!=="CALL_START"&&R!=="PARAM_START")return{params:G,endIdx:q};let w=R==="CALL_START"?"CALL_END":"PARAM_END";q++;let I=0;while(q<K.length&&!(K[q][0]===w&&I===0)){let _=K[q];if(_[1]===","&&I===0){q++;continue}if(_[0]==="{"||_[0]==="["||_[0]==="CALL_START"||_[0]==="PARAM_START"||_[0]==="INDEX_START")I++;if(_[0]==="}"||_[0]==="]"||_[0]==="CALL_END"||_[0]==="PARAM_END"||_[0]==="INDEX_END"){I--,q++;continue}if(_[0]==="@"){if(q++,K[q]?.[0]==="PROPERTY"||K[q]?.[0]==="IDENTIFIER"){let E=K[q][1],P=K[q].data?.type;G.push(P?`${E}: ${C(P)}`:E),q++}continue}if(_[0]==="SPREAD"||_[1]==="..."){if(q++,K[q]?.[0]==="IDENTIFIER"){let E=K[q][1],P=K[q].data?.type;G.push(P?`...${E}: ${C(P)}`:`...${E}: any[]`),q++}continue}if(_[0]==="{"){let E="{";q++;let P=1;while(q<K.length&&P>0){if(K[q][0]==="{")P++;if(K[q][0]==="}")P--;if(P>0)E+=K[q][1]+(K[q+1]?.[0]==="}"?"":", ");q++}E+="}";let O=K[q-1]?.data?.type;G.push(O?`${E}: ${C(O)}`:E);continue}if(_[0]==="IDENTIFIER"){let E=_[1],P=_.data?.type,O=!1;if(K[q+1]?.[0]==="=")O=!0;if(P)G.push(`${E}${O?"?":""}: ${C(P)}`);else G.push(E);if(q++,O){q++;let B=0;while(q<K.length){let N=K[q];if(N[0]==="("||N[0]==="["||N[0]==="{")B++;if(N[0]===")"||N[0]==="]"||N[0]==="}")B--;if(B===0&&(N[1]===","||N[0]==="CALL_END"))break;q++}}continue}q++}return{params:G,endIdx:q}};for(let K=0;K<A.length;K++){let H=A[K],G=H[0],q=!1;if(G==="EXPORT"){if(q=!0,K++,K>=A.length)break;if(H=A[K],G=H[0],G==="DEFAULT"){if(K++,K>=A.length)break;if(H=A[K],G=H[0],G==="IDENTIFIER")Z.push(`${$()}export default ${H[1]};`);continue}}if(G==="IMPORT"){let R=[],w=K+1;while(w<A.length&&A[w][0]!=="TERMINATOR")R.push(A[w]),w++;let I="import "+R.map((_)=>_[1]).join(" ");I=I.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),Z.push(`${$()}${I};`),K=w;continue}if(G==="TYPE_DECL"){let R=H.data;if(!R)continue;let w=q||R.exported?"export ":"",I=R.typeParams||"";if(R.kind==="interface"){let _=R.extends?` extends ${R.extends}`:"";D(`${w}interface ${R.name}${I}${_} `,R.typeText||"{}","")}else{let _=C(R.typeText||"");D(`${w}type ${R.name}${I} = `,_,";")}continue}if(G==="ENUM"){let R=q?"export ":"",w=A[K+1];if(!w)continue;let I=w[1],_=K+2;if(A[_]?.[0]==="INDENT"){Z.push(`${$()}${R}enum ${I} {`),W++,_++;let E=[];while(_<A.length&&A[_][0]!=="OUTDENT"){if(A[_][0]==="TERMINATOR"){_++;continue}if(A[_][0]==="IDENTIFIER"){let P=A[_][1];if(_++,A[_]?.[1]==="="){_++;let O=A[_]?.[1];E.push(`${P} = ${O}`),_++}else E.push(P)}else _++}for(let P=0;P<E.length;P++){let O=P<E.length-1?",":"";Z.push(`${$()}${E[P]}${O}`)}W--,Z.push(`${$()}}`)}continue}if(G==="CLASS"){let R=q?"export ":"",w=A[K+1];if(!w)continue;let I=w[1],_="",E=K+2;if(A[E]?.[0]==="EXTENDS")_=` extends ${A[E+1]?.[1]||""}`,E+=2;if(A[E]?.[0]==="INDENT"){let P=!1,O=E+1;while(O<A.length&&A[O][0]!=="OUTDENT"){if(A[O].data?.type||A[O].data?.returnType){P=!0;break}O++}if(P)Z.push(`${$()}${R}declare class ${I}${_} {`),Q=!0,W++}continue}if(G==="DEF"){let R=A[K+1];if(!R)continue;let w=R[1],I=R.data?.returnType,_=R.data?.typeParams||"",{params:E,endIdx:P}=X(A,K+2);if(I||E.some((O)=>O.includes(":"))){let O=q?"export ":"",B=Q?"":q?"":"declare ",N=I?`: ${C(I)}`:"",T=E.join(", ");if(Q)Z.push(`${$()}${w}${_}(${T})${N};`);else Z.push(`${$()}${O}${B}function ${w}${_}(${T})${N};`)}continue}if(G==="{"&&Q){let R=K+1,w=1;while(R<A.length&&w>0){let I=A[R];if(I[0]==="{"){w++,R++;continue}if(I[0]==="}"){w--,R++;continue}if(I[0]==="TERMINATOR"){R++;continue}if(I[0]==="PROPERTY"&&w===1){let _=I[1],E=I.data?.returnType;if(R++,A[R]?.[1]===":")R++;let P=[];if(A[R]?.[0]==="PARAM_START"){let O=X(A,R);P=O.params,R=O.endIdx+1}if(A[R]?.[0]==="->"||A[R]?.[0]==="=>")R++;if(A[R]?.[0]==="INDENT"){let O=1;R++;while(R<A.length&&O>0){if(A[R][0]==="INDENT")O++;if(A[R][0]==="OUTDENT")O--;R++}}if(E||P.some((O)=>O.includes(":"))){let O=E?`: ${C(E)}`:"",B=P.join(", ");Z.push(`${$()}${_}(${B})${O};`)}continue}R++}K=R-1;continue}if(G==="INDENT")continue;if(G==="OUTDENT"){if(Q)W--,Z.push(`${$()}}`),Q=!1;continue}if(G==="IDENTIFIER"&&!Q&&A[K+1]?.[0]==="="&&(A[K+2]?.[0]==="PARAM_START"||A[K+2]?.[0]==="(")){let R=H[1],w=K+2,{params:I}=X(A,w),_=w,E=0;while(_<A.length){if(A[_][0]==="PARAM_START"||A[_][0]==="(")E++;if(A[_][0]==="PARAM_END"||A[_][0]===")")E--;if(E===0&&(A[_][0]==="->"||A[_][0]==="=>"))break;_++}let P=A[_]?.data?.returnType;if(P||I.some((O)=>O.includes(":"))){let O=q?"export ":"",B=q?"":"declare ",N=P?`: ${C(P)}`:"",T=I.join(", ");Z.push(`${$()}${O}${B}function ${R}(${T})${N};`);continue}}if(G==="IDENTIFIER"&&H.data?.type){let R=H[1],w=C(H.data.type),I=A[K+1];if(I){let _=q?"export ":"",E=q?"":"declare ";if(I[0]==="READONLY_ASSIGN")Z.push(`${$()}${_}${E}const ${R}: ${w};`);else if(I[0]==="REACTIVE_ASSIGN")F=!0,Z.push(`${$()}${_}${E}const ${R}: Signal<${w}>;`);else if(I[0]==="COMPUTED_ASSIGN")J=!0,Z.push(`${$()}${_}${E}const ${R}: Computed<${w}>;`);else if(I[0]==="REACT_ASSIGN")Z.push(`${$()}${_}${E}const ${R}: () => void;`);else if(I[0]==="="){let P=K+2;if(A[P]?.[0]==="PARAM_START"){let B=1,N=P+1;while(N<A.length&&B>0){if(A[N][0]==="PARAM_START")B++;if(A[N][0]==="PARAM_END")B--;N++}P=N}let O=A[P];if(O&&(O[0]==="->"||O[0]==="=>")&&O.data?.returnType){let B=C(O.data.returnType),{params:N}=X(A,K+2),T=N.join(", ");Z.push(`${$()}${_}${E}function ${R}(${T}): ${B};`)}else if(Q)Z.push(`${$()}${R}: ${w};`);else Z.push(`${$()}${_}let ${R}: ${w};`)}else if(Q)Z.push(`${$()}${R}: ${w};`)}else if(Q)Z.push(`${$()}${R}: ${w};`)}}let z=new Set;if(U){if(A1(U,Z,$,W,z),z.size>0)for(let K=Z.length-1;K>=0;K--){let H=Z[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(H&&z.has(H[1]))Z.splice(K,1)}}if(Z.length===0)return null;let M=[];if(F)M.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(J)M.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(M.length>0)M.push("");return M.concat(Z).join(`
|
|
1
|
+
function G1(A){let U=A.prototype;U.rewriteTypes=function(){let Z=this.tokens,W=($,Y,Q)=>{let F=[$,Y];if(F.pre=0,F.data=null,F.loc=Q?.loc??{r:0,c:0,n:0},F.spaced=!1,F.newLine=!1,F.generated=!0,Q)F.origin=Q;return F};this.scanTokens(($,Y,Q)=>{let F=$[0];if(F==="IDENTIFIER"){let X=Q[Y+1];if(X&&X[0]==="COMPARE"&&X[1]==="<"&&!X.spaced){let D=Q[Y-1]?.[0]==="DEF",J=h1(Q,Y+1);if(J){let z=!D&&Q[Y+1+J.length]?.[0]==="TYPE_ALIAS";if(D||z){if(!$.data)$.data={};if($.data.typeParams=p(J),Q.splice(Y+1,J.length),D&&Q[Y+1]?.[0]==="("){Q[Y+1][0]="CALL_START";let G=1,K=Y+2;while(K<Q.length&&G>0){if(Q[K][0]==="("||Q[K][0]==="CALL_START")G++;if(Q[K][0]===")"||Q[K][0]==="CALL_END")G--;if(G===0)Q[K][0]="CALL_END";K++}}}}}}if(F==="TYPE_ANNOTATION"){let X=Q[Y-1];if(!X)return 1;let D=z1(Q,Y+1),J=p(D),z=X,G="type";if(X[0]==="CALL_END"||X[0]===")"){let R=1,H=Y-2;while(H>=0&&R>0){let q=Q[H][0];if(q==="CALL_END"||q===")")R++;if(q==="CALL_START"||q==="(")R--;H--}if(H>=0)z=Q[H];G="returnType"}else if(X[0]==="PARAM_END"){let R=Y+1+D.length,H=Q[R];if(H&&(H[0]==="->"||H[0]==="=>"))z=H;G="returnType"}else if(X[0]==="IDENTIFIER"&&Y>=2&&Q[Y-2]?.[0]==="DEF")G="returnType";if(!z.data)z.data={};z.data[G]=J;let K=1+D.length;return Q.splice(Y,K),0}if(F==="TYPE_ALIAS"){let X=Q[Y-1];if(!X)return 1;let D=X[1],J=Y>=2&&Q[Y-2]?.[0]==="EXPORT",z=J?Y-2:Y-1,G=Q[Y+1],K=(H)=>{let q=W("TYPE_DECL",D,X);if(q.data={name:D,typeText:H,exported:J},X.data?.typeParams)q.data.typeParams=X.data.typeParams;return q};if(G&&G[0]==="IDENTIFIER"&&G[1]==="type"&&Q[Y+2]?.[0]==="INDENT"){let H=Y1(Q,Y+2);return Q.splice(z,H-z+1,K(H1(Q,Y+2))),0}if(G&&(G[0]==="TERMINATOR"||G[0]==="INDENT")){let H=b1(Q,Y+1);if(H)return Q.splice(z,H.endIdx-z+1,K(H.typeText)),0}let R=z1(Q,Y+1);return Q.splice(z,Y+1+R.length-z,K(p(R))),0}if(F==="INTERFACE"){let X=Y>=1&&Q[Y-1]?.[0]==="EXPORT",D=Y+1,J=Q[D];if(!J)return 1;let z=J[1],G=null,K=D+1;if(Q[K]?.[0]==="EXTENDS")G=Q[K+1]?.[1],K=K+2;if(Q[K]?.[0]==="INDENT"){let R=H1(Q,K),H=Y1(Q,K),q=W("TYPE_DECL",z,J);q.data={name:z,kind:"interface",extends:G,typeText:R,exported:X};let M=X?Y-1:Y,w=H-M+1;return Q.splice(M,w,q),0}return 1}return 1})}}function z1(A,U){let Z=[],W=0;while(U<A.length){let $=A[U],Y=$[0],Q=Y==="("||Y==="["||Y==="CALL_START"||Y==="PARAM_START"||Y==="INDEX_START"||Y==="COMPARE"&&$[1]==="<",F=Y===")"||Y==="]"||Y==="CALL_END"||Y==="PARAM_END"||Y==="INDEX_END"||Y==="COMPARE"&&$[1]===">";if(Y==="SHIFT"&&$[1]===">>"&&W>=2){W-=2,Z.push($),U++;continue}if(Q){W++,Z.push($),U++;continue}if(F){if(W>0){W--,Z.push($),U++;continue}break}if(W===0){if(Y==="="||Y==="REACTIVE_ASSIGN"||Y==="COMPUTED_ASSIGN"||Y==="READONLY_ASSIGN"||Y==="REACT_ASSIGN"||Y==="TERMINATOR"||Y==="INDENT"||Y==="OUTDENT"||Y==="->"||Y===",")break}Z.push($),U++}return Z}function p(A){if(A.length===0)return"";if(A[0]?.[0]==="=>")A.unshift(["","()"]);let U=A.map((Z)=>Z[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 h1(A,U){if(U>=A.length)return null;let Z=A[U];if(Z[0]!=="COMPARE"||Z[1]!=="<")return null;let W=[Z],$=1,Y=U+1;while(Y<A.length&&$>0){let Q=A[Y];if(W.push(Q),Q[0]==="COMPARE"&&Q[1]==="<")$++;else if(Q[0]==="COMPARE"&&Q[1]===">")$--;Y++}return $===0?W:null}function H1(A,U){let Z=[],W=U+1,$=1;while(W<A.length&&$>0){let Y=A[W];if(Y[0]==="INDENT"){$++,W++;continue}if(Y[0]==="OUTDENT"){if($--,$===0)break;W++;continue}if(Y[0]==="TERMINATOR"){W++;continue}if($===1&&(Y[0]==="PROPERTY"||Y[0]==="IDENTIFIER")){let Q=Y[1],F=!1,X=!1;if(W++,Q==="readonly"&&(A[W]?.[0]==="PROPERTY"||A[W]?.[0]==="IDENTIFIER")){if(X=!0,Q=A[W][1],A[W].data?.predicate)F=!0;W++}if(Y.data?.predicate)F=!0;if(A[W]?.[1]==="?"&&!A[W]?.spaced)F=!0,W++;if(A[W]?.[1]===":"||A[W]?.[0]==="TYPE_ANNOTATION")W++;let D=[],J=0;while(W<A.length){let R=A[W];if(R[0]==="INDENT"){J++,W++;continue}if(R[0]==="OUTDENT"){if(J>0){J--,W++;continue}break}if(R[0]==="TERMINATOR"&&J===0)break;D.push(R),W++}let z=p(D),G=X?"readonly ":"",K=F?"?":"";Z.push(`${G}${Q}${K}: ${z}`)}else W++}return"{ "+Z.join("; ")+" }"}function Y1(A,U){let Z=0;for(let W=U;W<A.length;W++){if(A[W][0]==="INDENT")Z++;if(A[W][0]==="OUTDENT"){if(Z--,Z===0)return W}}return A.length-1}function b1(A,U){let Z=U;if(A[Z]?.[0]==="TERMINATOR")Z++;if(A[Z]?.[0]!=="INDENT")return null;let W=Z;Z++;while(Z<A.length&&A[Z][0]==="TERMINATOR")Z++;if(!A[Z]||A[Z][1]!=="|")return null;let $=[],Y=1;Z=W+1;while(Z<A.length&&Y>0){let F=A[Z];if(F[0]==="INDENT"){Y++,Z++;continue}if(F[0]==="OUTDENT"){if(Y--,Y===0)break;Z++;continue}if(F[0]==="TERMINATOR"){Z++;continue}if(F[1]==="|"&&Y===1){Z++;let X=[];while(Z<A.length){let D=A[Z];if(D[0]==="TERMINATOR"||D[0]==="OUTDENT"||D[1]==="|"&&Y===1)break;X.push(D),Z++}if(X.length>0)$.push(p(X));continue}Z++}if($.length===0)return null;let Q=Y1(A,W);return{typeText:$.join(" | "),endIdx:Q}}function W1(A,U=null){let Z=[],W=0,$=" ",Y=()=>$.repeat(W),Q=!1,F=!1,X=!1,D=(K,R,H)=>{if(R.startsWith("{ ")&&R.endsWith(" }")){let q=R.slice(2,-2).split("; ").filter((M)=>M.trim());if(q.length>0){Z.push(`${Y()}${K}{`),W++;for(let M of q)Z.push(`${Y()}${M};`);W--,Z.push(`${Y()}}${H}`);return}}Z.push(`${Y()}${K}${R}${H}`)},J=(K,R)=>{let H=[],q=R,M=K[q]?.[0];if(M!=="CALL_START"&&M!=="PARAM_START")return{params:H,endIdx:q};let w=M==="CALL_START"?"CALL_END":"PARAM_END";q++;let I=0;while(q<K.length&&!(K[q][0]===w&&I===0)){let _=K[q];if(_[1]===","&&I===0){q++;continue}if(_[0]==="{"||_[0]==="["||_[0]==="CALL_START"||_[0]==="PARAM_START"||_[0]==="INDEX_START")I++;if(_[0]==="}"||_[0]==="]"||_[0]==="CALL_END"||_[0]==="PARAM_END"||_[0]==="INDEX_END"){I--,q++;continue}if(_[0]==="@"){if(q++,K[q]?.[0]==="PROPERTY"||K[q]?.[0]==="IDENTIFIER"){let E=K[q][1],P=K[q].data?.type;H.push(P?`${E}: ${C(P)}`:E),q++}continue}if(_[0]==="SPREAD"||_[1]==="..."){if(q++,K[q]?.[0]==="IDENTIFIER"){let E=K[q][1],P=K[q].data?.type;H.push(P?`...${E}: ${C(P)}`:`...${E}: any[]`),q++}continue}if(_[0]==="{"){let E="{";q++;let P=1;while(q<K.length&&P>0){if(K[q][0]==="{")P++;if(K[q][0]==="}")P--;if(P>0)E+=K[q][1]+(K[q+1]?.[0]==="}"?"":", ");q++}E+="}";let O=K[q-1]?.data?.type;H.push(O?`${E}: ${C(O)}`:E);continue}if(_[0]==="IDENTIFIER"){let E=_[1],P=_.data?.type,O=!1;if(K[q+1]?.[0]==="=")O=!0;if(P)H.push(`${E}${O?"?":""}: ${C(P)}`);else H.push(E);if(q++,O){q++;let B=0;while(q<K.length){let N=K[q];if(N[0]==="("||N[0]==="["||N[0]==="{")B++;if(N[0]===")"||N[0]==="]"||N[0]==="}")B--;if(B===0&&(N[1]===","||N[0]==="CALL_END"))break;q++}}continue}q++}return{params:H,endIdx:q}};for(let K=0;K<A.length;K++){let R=A[K],H=R[0],q=!1;if(H==="EXPORT"){if(q=!0,K++,K>=A.length)break;if(R=A[K],H=R[0],H==="DEFAULT"){if(K++,K>=A.length)break;if(R=A[K],H=R[0],H==="IDENTIFIER")Z.push(`${Y()}export default ${R[1]};`);continue}}if(H==="IMPORT"){let M=[],w=K+1;while(w<A.length&&A[w][0]!=="TERMINATOR")M.push(A[w]),w++;let I="import "+M.map((_)=>_[1]).join(" ");I=I.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),Z.push(`${Y()}${I};`),K=w;continue}if(H==="TYPE_DECL"){let M=R.data;if(!M)continue;let w=q||M.exported?"export ":"",I=M.typeParams||"";if(M.kind==="interface"){let _=M.extends?` extends ${M.extends}`:"";D(`${w}interface ${M.name}${I}${_} `,M.typeText||"{}","")}else{let _=C(M.typeText||"");D(`${w}type ${M.name}${I} = `,_,";")}continue}if(H==="ENUM"){let M=q?"export ":"",w=A[K+1];if(!w)continue;let I=w[1],_=K+2;if(A[_]?.[0]==="INDENT"){Z.push(`${Y()}${M}enum ${I} {`),W++,_++;let E=[];while(_<A.length&&A[_][0]!=="OUTDENT"){if(A[_][0]==="TERMINATOR"){_++;continue}if(A[_][0]==="IDENTIFIER"){let P=A[_][1];if(_++,A[_]?.[1]==="="){_++;let O=A[_]?.[1];E.push(`${P} = ${O}`),_++}else E.push(P)}else _++}for(let P=0;P<E.length;P++){let O=P<E.length-1?",":"";Z.push(`${Y()}${E[P]}${O}`)}W--,Z.push(`${Y()}}`)}continue}if(H==="CLASS"){let M=q?"export ":"",w=A[K+1];if(!w)continue;let I=w[1],_="",E=K+2;if(A[E]?.[0]==="EXTENDS")_=` extends ${A[E+1]?.[1]||""}`,E+=2;if(A[E]?.[0]==="INDENT"){let P=!1,O=E+1;while(O<A.length&&A[O][0]!=="OUTDENT"){if(A[O].data?.type||A[O].data?.returnType){P=!0;break}O++}if(P)Z.push(`${Y()}${M}declare class ${I}${_} {`),Q=!0,W++}continue}if(H==="DEF"){let M=A[K+1];if(!M)continue;let w=M[1],I=M.data?.returnType,_=M.data?.typeParams||"",{params:E,endIdx:P}=J(A,K+2);if(I||E.some((O)=>O.includes(":"))){let O=q?"export ":"",B=Q?"":q?"":"declare ",N=I?`: ${C(I)}`:"",T=E.join(", ");if(Q)Z.push(`${Y()}${w}${_}(${T})${N};`);else Z.push(`${Y()}${O}${B}function ${w}${_}(${T})${N};`)}continue}if(H==="{"&&Q){let M=K+1,w=1;while(M<A.length&&w>0){let I=A[M];if(I[0]==="{"){w++,M++;continue}if(I[0]==="}"){w--,M++;continue}if(I[0]==="TERMINATOR"){M++;continue}if(I[0]==="PROPERTY"&&w===1){let _=I[1],E=I.data?.returnType;if(M++,A[M]?.[1]===":")M++;let P=[];if(A[M]?.[0]==="PARAM_START"){let O=J(A,M);P=O.params,M=O.endIdx+1}if(A[M]?.[0]==="->"||A[M]?.[0]==="=>")M++;if(A[M]?.[0]==="INDENT"){let O=1;M++;while(M<A.length&&O>0){if(A[M][0]==="INDENT")O++;if(A[M][0]==="OUTDENT")O--;M++}}if(E||P.some((O)=>O.includes(":"))){let O=E?`: ${C(E)}`:"",B=P.join(", ");Z.push(`${Y()}${_}(${B})${O};`)}continue}M++}K=M-1;continue}if(H==="INDENT")continue;if(H==="OUTDENT"){if(Q)W--,Z.push(`${Y()}}`),Q=!1;continue}if(H==="IDENTIFIER"&&!Q&&A[K+1]?.[0]==="="&&(A[K+2]?.[0]==="PARAM_START"||A[K+2]?.[0]==="(")){let M=R[1],w=K+2,{params:I}=J(A,w),_=w,E=0;while(_<A.length){if(A[_][0]==="PARAM_START"||A[_][0]==="(")E++;if(A[_][0]==="PARAM_END"||A[_][0]===")")E--;if(E===0&&(A[_][0]==="->"||A[_][0]==="=>"))break;_++}let P=A[_]?.data?.returnType;if(P||I.some((O)=>O.includes(":"))){let O=q?"export ":"",B=q?"":"declare ",N=P?`: ${C(P)}`:"",T=I.join(", ");Z.push(`${Y()}${O}${B}function ${M}(${T})${N};`);continue}}if(H==="IDENTIFIER"&&R.data?.type){let M=R[1],w=C(R.data.type),I=A[K+1];if(I){let _=q?"export ":"",E=q?"":"declare ";if(I[0]==="READONLY_ASSIGN")Z.push(`${Y()}${_}${E}const ${M}: ${w};`);else if(I[0]==="REACTIVE_ASSIGN")F=!0,Z.push(`${Y()}${_}${E}const ${M}: Signal<${w}>;`);else if(I[0]==="COMPUTED_ASSIGN")X=!0,Z.push(`${Y()}${_}${E}const ${M}: Computed<${w}>;`);else if(I[0]==="REACT_ASSIGN")Z.push(`${Y()}${_}${E}const ${M}: () => void;`);else if(I[0]==="="){let P=K+2;if(A[P]?.[0]==="PARAM_START"){let B=1,N=P+1;while(N<A.length&&B>0){if(A[N][0]==="PARAM_START")B++;if(A[N][0]==="PARAM_END")B--;N++}P=N}let O=A[P];if(O&&(O[0]==="->"||O[0]==="=>")&&O.data?.returnType){let B=C(O.data.returnType),{params:N}=J(A,K+2),T=N.join(", ");Z.push(`${Y()}${_}${E}function ${M}(${T}): ${B};`)}else if(Q)Z.push(`${Y()}${M}: ${w};`);else Z.push(`${Y()}${_}let ${M}: ${w};`)}else if(Q)Z.push(`${Y()}${M}: ${w};`)}else if(Q)Z.push(`${Y()}${M}: ${w};`)}}let z=new Set;if(U){if(A1(U,Z,Y,W,z),z.size>0)for(let K=Z.length-1;K>=0;K--){let R=Z[K].match(/(?:declare |export )*(?:const|let) (\w+)/);if(R&&z.has(R[1]))Z.splice(K,1)}}if(Z.length===0)return null;let G=[];if(F)G.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(X)G.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(G.length>0)G.push("");return G.concat(Z).join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`}function C(A){if(!A)return A;return A=A.replace(/::/g,":"),A=A.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),A=A.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),A=A.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),A}function A1(A,U,Z,W
|
|
4
|
-
`),A=A.replace(
|
|
3
|
+
`}function C(A){if(!A)return A;return A=A.replace(/::/g,":"),A=A.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),A=A.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),A=A.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),A}function A1(A,U,Z,W,$){if(!Array.isArray(A))return;let Y=A[0]?.valueOf?.()??A[0],Q=!1,F=null,X=null;if(Y==="export"&&Array.isArray(A[1])){Q=!0;let D=A[1];if((D[0]?.valueOf?.()??D[0])==="="&&Array.isArray(D[2])&&(D[2][0]?.valueOf?.()??D[2][0])==="component")F=D[1]?.valueOf?.()??D[1],X=D[2]}else if(Y==="="&&Array.isArray(A[2])&&(A[2][0]?.valueOf?.()??A[2][0])==="component")F=A[1]?.valueOf?.()??A[1],X=A[2];if(F&&X){let D=Q?"export ":"",J=X[2],z=Array.isArray(J)&&(J[0]?.valueOf?.()??J[0])==="block"?J.slice(1):J?[J]:[],G=[],K=[];for(let R of z){if(!Array.isArray(R))continue;let H=R[0]?.valueOf?.()??R[0];if(H==="state"){let q=R[1]?.valueOf?.()??R[1],M=R[1]?.type;G.push(` ${q}: ${M?C(M):"any"};`),$.add(q)}else if(H==="computed"){let q=R[1]?.valueOf?.()??R[1],M=R[1]?.type;G.push(` readonly ${q}: ${M?C(M):"any"};`),$.add(q)}else if(H==="object")for(let q=1;q<R.length;q++){let M=R[q];if(!Array.isArray(M))continue;let w=M[0]?.valueOf?.()??M[0];if(w==="render")continue;let I=M[1];if(Array.isArray(I)){let _=I[0]?.valueOf?.()??I[0];if(_==="->"||_==="=>")K.push(` ${w}(): void;`)}}else if(H==="render")continue}U.push(`${D}declare class ${F} {`),U.push(" constructor(props?: Record<string, any>);");for(let R of G)U.push(R);for(let R of K)U.push(R);U.push(` mount(target: Element | string): ${F};`),U.push(" unmount(): void;"),U.push("}")}if(Y==="program"||Y==="block"){for(let D=1;D<A.length;D++)if(Array.isArray(A[D]))A1(A[D],U,Z,W,$)}if(Y==="export"&&Array.isArray(A[1])&&!X)A1(A[1],U,Z,W,$)}function R1(A,U,Z){let[W,$]=U,Y=W?.valueOf?.()??W,Q=[];if(Array.isArray($)){let D=$[0]==="block"?$.slice(1):[$];for(let J of D)if(Array.isArray(J)){if(J[0]?.valueOf?.()==="="){let z=J[1]?.valueOf?.()??J[1],G=J[2]?.valueOf?.()??J[2];Q.push([z,G])}}}if(Q.length===0)return`const ${Y} = {}`;let F=Q.map(([D,J])=>`${D}: ${J}`).join(", "),X=Q.map(([D,J])=>`${J}: "${D}"`).join(", ");return`const ${Y} = {${F}, ${X}}`}var M1=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"]),q1=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),Z1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},O1=new Set(Object.keys(Z1)),y1=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),v1=new Set(["break","continue","debugger"]),g1=new Set(["NEW","TYPEOF","DELETE"]),x1=new Set(["IN","OF","INSTANCEOF"]),o=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),S1=new Set([...o,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),a=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","@","->","=>","[","(","{","--","++"]),c1=new Set(["+","-"]),k1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),m1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),x=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),g=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),l1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",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"},_1=new Set(["CATCH","THEN","ELSE","FINALLY",...g]),U1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),p1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),P1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),d1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),d=new Set(["INDENT","OUTDENT","TERMINATOR"]),w1=new Set([".","?."]),I1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),i1=new Set([...S1,"++","--"]),B1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),n1=new Set(["*","/","%","//","%%"]),a1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),o1=new Set(["<<",">>",">>>"]),r1=new Set(["!","~"]),s1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,t1=/^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,e1=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,$2=/^[^\n\S]+/,Y2=/^(?:\n[^\n\S]*)+/,A2=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,W2=/^[-=]>/,U2=/^(?:~[=>]|=!)/,Z2=/^(?:'''\\|"""\\|'''|"""|'|")/,Q2=/^(?:[^\\']|\\[\s\S])*/,F2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,X2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,J2=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,E1=/\n+([^\n\S]*)(?=\S)/g,K2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,N1=/^\w*/,D2=/^(?!.*(.).*\1)[gimsuy]*$/,z2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,H2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,G2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,R2=/\s+$/,T1=/^\s*(?:,|\??\.(?![.\d]))/,M2=65279;function r(A,U,{pre:Z=0,row:W=0,col:$=0,len:Y=0,data:Q=null}={}){let F=[A,U];return F.pre=Z,F.data=Q,F.loc={r:W,c:$,n:Y},F.spaced=Z>0,F.newLine=!1,F}function y(A,U,Z){let W=r(A,U);if(W.generated=!0,Z)W.origin=Z;return W}function b(A,{row:U=0,col:Z=0,len:W=1}={}){let $=SyntaxError(A);throw $.location={first_line:U,first_column:Z,last_column:Z+W-1},$}function q2(A){if(A==null)return NaN;switch(A.charAt(1)){case"b":return parseInt(A.slice(2).replace(/_/g,""),2);case"o":return parseInt(A.slice(2).replace(/_/g,""),8);case"x":return parseInt(A.slice(2).replace(/_/g,""),16);default:return parseFloat(A.replace(/_/g,""))}}class c{tokenize(A,U={}){this.code=A,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,A=this.clean(A),this.code=A;while(this.pos<A.length){this.chunk=A.slice(this.pos);let Z=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(Z===0)b(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(Z),U.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let Z=this.ends[this.ends.length-1];b(`missing ${Z.tag}`,{row:this.row,col:this.col})}if(U.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(A){if(A.charCodeAt(0)===M2)A=A.slice(1);if(A=A.replace(/\r\n?/g,`
|
|
4
|
+
`),A=A.replace(R2,""),/^[^\n\S]/.test(A))A=`
|
|
5
5
|
`+A;return A}advance(A){let U=this.code.slice(this.pos,this.pos+A);for(let Z=0;Z<U.length;Z++)if(U[Z]===`
|
|
6
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=A}emit(A,U,{len:Z,data:W,pre
|
|
6
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=A}emit(A,U,{len:Z,data:W,pre:$}={}){let Y=r(A,U,{pre:$??0,row:this.row,col:this.col,len:Z??(typeof U==="string"?U.length:0),data:W});return this.tokens.push(Y),Y}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let A=this.prev();return A?A[0]:void 0}prevVal(){let A=this.prev();return A?A[1]:void 0}identifierToken(){if(U2.test(this.chunk))return 0;let A=s1.exec(this.chunk);if(!A)return 0;let[,U,Z]=A,W=U.length,$={},Y;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 J=this.prevTag();if(J==="DEFAULT"||J==="IMPORT_ALL"||J==="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 Q;if(U==="do"&&(Q=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Q[1].length+3;let F=this.prev();if(Z&&F&&F[0]==="SPACE?")Z=null;if(Z||F&&(F[0]==="."||F[0]==="?."||!F.spaced&&F[0]==="@")){if(Y="PROPERTY",this.inRenderBlock&&F&&F[0]==="."&&!Z){let J=this.chunk.slice(W);while(J[0]==="-"&&/^-[a-zA-Z]/.test(J)){let z=/^-([a-zA-Z][\w]*)/.exec(J);if(!z)break;U+="-"+z[1],W+=1+z[1].length,J=this.chunk.slice(W)}}}else Y="IDENTIFIER";let X=U.endsWith("!")||U.endsWith("?")?U.slice(0,-1):U;if(Y==="IDENTIFIER"&&!U.endsWith("!")&&!U.endsWith("?")&&(M1.has(U)||q1.has(U)||O1.has(U))&&!(this.exportSpecifierList&&O1.has(U))){if(Z1[U]!==void 0)$.original=U,U=Z1[U];Y=this.classifyKeyword(U,Y,$)}if(Y==="IDENTIFIER"&&y1.has(X))b(`reserved word '${X}'`,{row:this.row,col:this.col,len:W});if(Y==="PROPERTY"&&F){if(F[0]==="."&&this.tokens.length>1){let J=this.tokens[this.tokens.length-2];if(J[0]==="UNARY"&&J[1]==="new")J[0]="NEW_TARGET";if(J[0]==="IMPORT"&&J[1]==="import")this.seenImport=!1,J[0]="IMPORT_META"}}if(U.length>1&&U.endsWith("!"))$.await=!0,U=U.slice(0,-1);if(U.length>1&&U.endsWith("?"))$.predicate=!0,U=U.slice(0,-1);let D=this.emit(Y,U,{len:W,data:Object.keys($).length?$:null});if(Y==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(Z)return this.emit(":",":",{len:1}),W+Z.length;return W}classifyKeyword(A,U,Z){switch(A){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return A}if(v1.has(A))return"STATEMENT";let W=A.toUpperCase();if(W==="WHEN"&&d.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(g1.has(W))return"UNARY";if(x1.has(W)){if(W!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+W;if(this.prevVal()==="!"){let $=this.tokens.pop();Z.invert=$.data?.original||$[1]}return"RELATION"}if(M1.has(A)||q1.has(A))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 Z=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(Z)return this.emit("IDENTIFIER","div#"+Z[1]),Z[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let A=A2.exec(this.chunk);if(!A)return 0;return A[0].length}whitespaceToken(){let A=$2.exec(this.chunk);if(!A&&this.chunk[0]!==`
|
|
7
7
|
`)return 0;let U=this.prev();if(U)if(A)U.spaced=!0,U.pre=A[0].length;else U.newLine=!0;return A?A[0].length:0}lineToken(){let A=Y2.exec(this.chunk);if(!A)return 0;let U=A[0],Z=U.length-1-U.lastIndexOf(`
|
|
8
8
|
`);if(this.isUnfinished()){if(Z<this.indent&&/^\s*,/.test(this.chunk)&&!I1.has(this.prevTag())){if(this.outdentTo(Z,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(Z===this.indent)return this.emitNewline(),U.length;if(Z>this.indent){if(!this.tokens.length)return this.indent=Z,U.length;let W=Z-this.indent;return this.emit("INDENT",W,{len:Z}),this.indents.push(W),this.ends.push({tag:"OUTDENT"}),this.indent=Z,U.length}return this.outdentTo(Z,U.length),U.length}outdentTo(A,U=0){if(this.inRenderBlock&&A<=this.renderIndent)this.inRenderBlock=!1;let Z=this.indent-A;while(Z>0){let W=this.indents[this.indents.length-1];if(!W)Z=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",Z,{len:U}),Z-=W}this.emitNewline(),this.indent=A}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
9
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&T1.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let A=this.tokens.length;if(A>=2){let U=this.tokens[A-2][0];if(U==="INDENT"||U==="TERMINATOR"||U==="OUTDENT")return!1}}return T1.test(this.chunk)||I1.has(this.prevTag())}pair(A){let U=this.ends[this.ends.length-1];if(!U||A!==U.tag){if(U?.tag==="OUTDENT"){let Z=this.indents[this.indents.length-1];if(Z)this.outdentTo(this.indent-Z);return this.pair(A)}b(`unmatched ${A}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let A=Z2.exec(this.chunk);if(!A)return 0;let U=A[0],Z=U.length>1&&U.endsWith("\\"),W=Z?U.slice(0,-1):U
|
|
10
|
-
`)
|
|
11
|
-
`)}if($===0&&U?.length===3)J=J.replace(/^\n/,"");if($===A.length-1&&U?.length===3)J=J.replace(/\n[^\S\n]*$/,"");if(Y)J=J.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${J}"`,{len:F.length,data:{quote:U}})}}if(A.length>1)this.emit("STRING_END",")",{len:U?.length||0});return W}numberToken(){let A=t1.exec(this.chunk);if(!A)return 0;let U=A[0],Z=U.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(U))b(`radix prefix in '${U}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(U))b(`decimal literal '${U}' must not be prefixed with '0'`,{...W,len:Z});if(/^0\d+/.test(U))b(`octal literal '${U}' must be prefixed with '0o'`,{...W,len:Z});let Y=q2(U),$=Y===1/0?"INFINITY":"NUMBER",Q={parsedValue:Y};if($==="INFINITY")Q.original=U;return this.emit($,U,{len:Z,data:Q}),Z}regexToken(){let A=this.matchWithInterpolations(z2,"///");if(A){let{tokens:D,index:X}=A,[z]=N1.exec(this.chunk.slice(X)),M=X+z.length;if(D.length===1||!D.some((K)=>K[0]==="TOKENS")){let K=(D[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${z}`,{len:M,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(D,{quote:"///",endOffset:M-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 M}let U=K2.exec(this.chunk);if(!U)return 0;let[Z,W,Y]=U,$=this.prev();if($){if($.spaced&&s.has($[0])&&(!Y||/^\/=?\s/.test(Z)))return 0;if(i1.has($[0])&&!($.spaced&&s.has($[0])))return 0}if(!Y)b("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=Z.length,[F]=N1.exec(this.chunk.slice(Q)),J=Q+F.length;if(!D2.test(F))b(`invalid regular expression flags ${F}`,{row:this.row,col:this.col+Q,len:F.length});return this.emit("REGEX",`/${W}/${F}`,{len:J,data:{delimiter:"/"}}),J}jsToken(){if(this.chunk[0]!=="`")return 0;let A=M2.exec(this.chunk)||H2.exec(this.chunk);if(!A)return 0;let U=A[1],Z=A[0].length;return this.emit("JS",U,{len:Z,data:{here:A[0].startsWith("```")}}),Z}literalToken(){let A=e1.exec(this.chunk),U=A?A[0]:this.chunk.charAt(0),Z=U,W=this.prev();if(W2.test(U))this.tagParameters();if(U==="="&&W&&W[1]==="."&&!W.spaced){let Y=this.tokens,$=Y.length-2;while($>=1&&Y[$][0]==="PROPERTY"&&Y[$-1]?.[1]===".")$-=2;if($>=0&&(Y[$][0]==="IDENTIFIER"||Y[$][0]===")"||Y[$][0]==="]")){let Q=Y.slice($,Y.length-1);W[0]="=",W[1]="=";for(let F of Q)this.tokens.push(o(F[0],F[1],{pre:0,row:F[2],col:F[3],len:F[4]}));return this.tokens.push(o(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(W&&(U==="="||B1.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,Z="TERMINATOR";else if(U==="|>")Z="PIPE";else if(U==="::=")Z="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==="::")Z="TYPE_ANNOTATION";else if(U==="~=")Z="COMPUTED_ASSIGN";else if(U===":=")Z="REACTIVE_ASSIGN";else if(U==="<=>")Z="BIND";else if(U==="~>")Z="REACT_ASSIGN";else if(U==="=!")Z="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 Y=this.chunk.slice(1),$=/^@(\s*)=(?!=)/.exec(Y);if($){let F=$[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let J=this.emit("PROPERTY","assign");return J.spaced=!0,this.emit("@","@"),this.emit(",",","),2+F.length+1}let Q=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(Y);if(Q){let F=Q[1],J=Q[2],D=F.split("."),X=()=>{this.emit("IDENTIFIER",D[0]);for(let M=1;M<D.length;M++)this.emit(".","."),this.emit("PROPERTY",D[M])};X(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),X(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+F.length+J.length+1}}else if(U==="*"&&W?.[0]==="EXPORT")Z="EXPORT_ALL";else if(n1.has(U))Z="MATH";else if(a1.has(U))Z="COMPARE";else if(B1.has(U))Z="COMPOUND_ASSIGN";else if(o1.has(U))Z="UNARY_MATH";else if(s1.has(U))Z="SHIFT";else if(U==="?"&&W?.spaced)Z="SPACE?";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))Z="?.";else if(W){if(U==="("&&!W.spaced&&s.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";Z="CALL_START"}if(U==="["&&!W.spaced&&S1.has(W[0])){if(Z="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:l1[U],origin:[Z,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(Z,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let A=this.tokens.length-1,U=[];this.tokens[A][0]="PARAM_END";while(A-- >0){let Z=this.tokens[A];if(Z[0]===")")U.push(Z);else if(Z[0]==="("||Z[0]==="CALL_START")if(U.length)U.pop();else if(Z[0]==="(")return Z[0]="PARAM_START",this.tagDoIife(A-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(A){let U=this.tokens[A??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite(A){return this.tokens=A,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let A=0;while(this.tokens[A]?.[0]==="TERMINATOR")A++;if(A>0)this.tokens.splice(0,A)}closeOpenCalls(){this.scanTokens((A,U)=>{if(A[0]==="CALL_START")this.detectEnd(U+1,(Z)=>Z[0]===")"||Z[0]==="CALL_END",(Z)=>Z[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((A,U)=>{if(A[0]==="INDEX_START")this.detectEnd(U+1,(Z)=>Z[0]==="]"||Z[0]==="INDEX_END",(Z,W)=>{if(this.tokens[W+1]?.[0]===":")A[0]="[",Z[0]="]";else Z[0]="INDEX_END"});return 1})}normalizeLines(){let A=null,U=null,Z=null,W=($,Q)=>{return $[1]!==";"&&d1.has($[0])&&!($[0]==="TERMINATOR"&&_1.has(this.tokens[Q+1]?.[0]))&&!($[0]==="ELSE"&&A!=="THEN")||$[0]==="INDENT"&&!$.generated&&(A==="->"||A==="=>")||$[0]===","&&(A==="->"||A==="=>")&&!this.commaInImplicitCall(Q)&&!this.commaInImplicitObject(Q)||w1.has($[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},Y=($,Q)=>{let F=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(F,0,Z)};this.scanTokens(($,Q,F)=>{let[J]=$;if(J==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return F.splice(Q,1,...this.makeIndentation()),1;if(_1.has(this.tokens[Q+1]?.[0]))return F.splice(Q,1),0}if(J==="CATCH")for(let D=1;D<=2;D++){let X=this.tokens[Q+D]?.[0];if(X==="OUTDENT"||X==="TERMINATOR"||X==="FINALLY")return F.splice(Q+D,0,...this.makeIndentation()),2+D}if((J==="->"||J==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[U,Z]=this.makeIndentation(),F.splice(Q+1,0,U,Z),1;if(P1.has(J)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(J==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(A=J,[U,Z]=this.makeIndentation(),J==="THEN")U.fromThen=!0;if(F.splice(Q+1,0,U),this.detectEnd(Q+2,W,Y),J==="THEN")F.splice(Q,1);return 1}return 1})}tagPostfixConditionals(){let A=null,U=(W,Y)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!P1.has(this.tokens[Y-1]?.[0])},Z=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)A[0]="POST_"+A[0]};this.scanTokens((W,Y)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;return A=W,this.detectEnd(Y+1,U,Z),1})}addImplicitBracesAndParens(){let A=[],U=!1;this.scanTokens((Z,W,Y)=>{let[$]=Z,Q=Y[W-1]||[],F=Y[W+1]||[],[J]=Q,[D]=F,X=W,z=(O)=>W-X+O,M=()=>A[A.length-1],K=(O)=>O?.[2]?.ours,H=()=>K(M())&&M()?.[0]==="(",G=()=>K(M())&&M()?.[0]==="{",q=(O)=>{A.push(["(",O,{ours:!0}]),Y.splice(O,0,y("CALL_START","("))},R=()=>{A.pop(),Y.splice(W,0,y("CALL_END",")")),W+=1},w=(O,B={})=>{A.push(["{",O,{sameLine:!0,startsLine:B.startsLine??!0,ours:!0}]);let N=y("{","{");if(!N.data)N.data={};N.data.generated=!0,Y.splice(O,0,N)},I=(O)=>{O=O??W,A.pop(),Y.splice(O,0,y("}","}")),W+=1};if((H()||G())&&p1.has($))return A.push(["CONTROL",W,{ours:!0}]),z(1);if($==="INDENT"&&K(M())){if(J!=="=>"&&J!=="->"&&J!=="["&&J!=="("&&J!==","&&J!=="{"&&J!=="ELSE"&&J!=="=")while(H()||G()&&J!==":")if(H())R();else I();if(M()?.[2]?.ours&&M()[0]==="CONTROL")A.pop();return A.push([$,W]),z(1)}if(x.has($))return A.push([$,W]),z(1);if(g.has($)){while(K(M()))if(H())R();else if(G())I();else A.pop();A.pop()}if(U1.has($)&&Z.spaced&&(a.has(D)||D==="..."&&a.has(Y[W+2]?.[0])||c1.has(D)&&!F.spaced&&!F.newLine)&&!(($==="]"||$==="}")&&(D==="->"||D==="=>")))return q(W+1),z(2);if(U1.has($)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return q(W+1),A.push(["INDENT",W+2]),z(3);if($==="SPACE?")U=!0;if($===":"){if(U)return U=!1,z(1);let O=g.has(this.tokens[W-1]?.[0])?A[A.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")O=W-2;let B=O<=0||d.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(M()){let[N,T]=M(),S=A[A.length-2];if((N==="{"||N==="INDENT"&&S?.[0]==="{"&&!K(S))&&(B||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return z(1)}return w(O,{startsLine:!!B}),z(2)}if(d.has($))for(let O=A.length-1;O>=0;O--){if(!K(A[O]))break;if(A[O][0]==="{")A[O][2].sameLine=!1}let _=J==="OUTDENT"||Q.newLine,E=$==="||"||$==="&&",P=!1;if(E){let O=W+1,B=Y[O]?.[0];if(B==="("||B==="["||B==="{"){for(let N=1;++O<Y.length&&N>0;)if(B=Y[O][0],B==="("||B==="["||B==="{")N++;else if(B===")"||B==="]"||B==="}")N--}else if(B&&B!=="TERMINATOR"&&B!=="OUTDENT"&&B!==",")O++;P=Y[O]?.[0]===","}if(k1.has($)&&!P||w1.has($)&&_)while(K(M())){let[O,,{sameLine:B,startsLine:N}]=M();if(H()&&J!==",")R();else if(G()&&!E&&B&&$!=="TERMINATOR"&&J!==":")I();else if(G()&&$==="TERMINATOR"&&J!==","&&!(N&&this.looksObjectish(W+1)))I();else if(M()?.[2]?.ours&&M()[0]==="CONTROL"&&Y[M()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")A.pop();else break}if($===","&&!this.looksObjectish(W+1)&&G()&&(D!=="TERMINATOR"||!this.looksObjectish(W+2))){let O=D==="OUTDENT"?1:0;while(G())I(W+O)}return z(1)})}addImplicitCallCommas(){let A=0,U=0,Z=this.tokens;while(U<Z.length){let W=Z[U][0],Y=U>0?Z[U-1][0]:null;if(W==="CALL_START"||W==="(")A++;if(W==="CALL_END"||W===")")A--;if(A>0&&(W==="->"||W==="=>")&&m1.has(Y))Z.splice(U,0,y(",",",")),U++;U++}}scanTokens(A){let U=0;while(U<this.tokens.length)U+=A.call(this,this.tokens[U],U,this.tokens)}detectEnd(A,U,Z,W={}){let Y=0;while(A<this.tokens.length){let $=this.tokens[A];if(Y===0&&U.call(this,$,A))return Z.call(this,$,A);if(x.has($[0]))Y++;if(g.has($[0]))Y--;if(Y<0){if(W.returnOnNegativeLevel)return;return Z.call(this,$,A)}A++}}closeMergeAssignments(){let A=this.tokens;for(let U=0;U<A.length;U++){if(!A[U].mergeClose)continue;let Z=0;for(let W=U+1;W<A.length;W++){let Y=A[W][0];if(Y==="("||Y==="["||Y==="{"||Y==="CALL_START"||Y==="INDEX_START"||Y==="INDENT")Z++;if(Y===")"||Y==="]"||Y==="}"||Y==="CALL_END"||Y==="INDEX_END"||Y==="OUTDENT")Z--;if(Z<0||Z===0&&Y==="TERMINATOR"){A.splice(W,0,y("CALL_END",")",A[W-1]));break}if(W===A.length-1){A.splice(W+1,0,y("CALL_END",")",A[W]));break}}}}commaInImplicitCall(A){let U=0;for(let Z=A-1;Z>=0;Z--){let W=this.tokens[Z][0];if(g.has(W)){U++;continue}if(x.has(W)){if(W==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(U1.has(W)&&this.tokens[Z].spaced){let Y=this.tokens[Z+1]?.[0];return a.has(Y)||Y==="..."&&a.has(this.tokens[Z+2]?.[0])}}return!1}commaInImplicitObject(A){let U=0;for(let Z=A-1;Z>=0;Z--){let W=this.tokens[Z][0];if(g.has(W)){U++;continue}if(x.has(W)){if(U--,U<0)return!1;continue}if(U>0)continue;if(W===":"&&Z>0&&this.tokens[Z-1][0]==="PROPERTY")return this.looksObjectish(A+1);if(d.has(W))return!1}return!1}looksObjectish(A){if(!this.tokens[A])return!1;if(this.tokens[A]?.[0]==="@"&&this.tokens[A+2]?.[0]===":")return!0;if(this.tokens[A+1]?.[0]===":")return!0;if(x.has(this.tokens[A]?.[0])){let U=null;if(this.detectEnd(A+1,(Z)=>g.has(Z[0]),(Z,W)=>U=W),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards(A,U){let Z=new Set(U),W=[];while(A>=0){let Y=this.tokens[A]?.[0];if(!W.length&&Z.has(Y))return!0;if(g.has(Y))W.push(Y);if(x.has(Y)&&W.length)W.pop();if(!W.length&&(x.has(Y)&&!this.tokens[A]?.generated||d.has(Y)))break;A--}return!1}makeIndentation(A){let U=y("INDENT",2),Z=y("OUTDENT",2);if(A)U.generated=Z.generated=!0,U.origin=Z.origin=A;else U.explicit=Z.explicit=!0;return[U,Z]}}M1(c);var O2={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,ReactAssign: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,REACT_ASSIGN: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,"--":195,"++":196,MATH:197,"**":198,SHIFT:199,COMPARE:200,"&":201,"^":202,"|":203,"||":204,"??":205,"&&":206,"!?":207,PIPE:208,RELATION:209,"SPACE?":210,COMPOUND_ASSIGN:211},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:"REACT_ASSIGN",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:"--",196:"++",197:"MATH",198:"**",199:"SHIFT",200:"COMPARE",201:"&",202:"^",203:"|",204:"||",205:"??",206:"&&",207:"!?",208:"PIPE",209:"RELATION",210:"SPACE?",211:"COMPOUND_ASSIGN"},parseTable:(()=>{let A=[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,2,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,4,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,54,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,132,105,106,-13,-13,-13,-13,135,136,137,-13,138,-13,-13,-13,-13,-13,-13,-13,133,-13,139,-13,-13,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,140,141,142,-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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,143,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,148,-173,-173,149,150,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,2,1,159,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,160,102,103,158,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,2,1,161,162,163,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,2,1,164,165,163,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,2,1,166,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,172,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,173,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,174,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,175,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,176,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,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,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,180,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,60,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,-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,181,182,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,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,2,1,185,184,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,186,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,187,-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,4,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,160,188,2,66,10,160,189,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,193,152,104,154,155,153,99,190,191,83,156,195,192,194,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,2,1,196,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,197,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,160,-304,102,103,-304,198,200,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,167,-304,168,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,199,171,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,201,2,66,10,160,202,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,2,1,203,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,204,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,205,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,206,-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,167,-224,168,90,91,86,88,89,82,-224,69,64,65,207,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,169,170,171,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,208,104,2,55,1,209,104,6,15,19,89,2,1,1,211,210,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,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,212,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,213,-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,167,-221,168,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,169,170,171,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,214,218,104,105,106,217,215,216,219,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,177,178,226,227,228,229,221,222,223,224,232,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,225,104,105,106,102,103,53,233,72,73,93,220,83,87,84,85,66,167,168,90,91,86,88,89,82,61,67,62,230,231,171,57,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,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,57,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,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,2,1,234,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,235,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,2,1,236,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,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,249,250,248,139,2,109,11,251,139,52,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,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,54,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,252,253,-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,254,1,83,255,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,2,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,2,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,256,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,257,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,258,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,259,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,261,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,260,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,262,-109,263,268,272,264,265,266,273,52,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,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,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,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,52,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,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,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,177,178,179,34,35,36,274,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,233,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,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,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,-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,55,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,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,6,54,5,1,1,2,1,278,105,106,275,276,277,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,2,1,-5,279,-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,2,1,280,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,281,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,282,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,283,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,284,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,285,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,286,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,287,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,288,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,291,163,289,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,290,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,294,163,292,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,293,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,297,163,295,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,296,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,298,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,299,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,300,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,301,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,302,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,303,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,307,152,104,154,155,153,99,304,305,83,156,195,306,194,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,308,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,309,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,53,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,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,53,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,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,2,109,11,310,139,2,57,1,311,253,2,57,1,312,253,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,2,1,313,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,318,77,78,79,80,81,100,101,92,104,105,106,314,102,103,316,53,52,72,73,93,315,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,85,321,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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,322,42,43,90,91,246,323,86,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,327,253,2,57,1,328,253,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,2,1,329,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,330,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,332,331,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,333,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,335,334,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,336,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,338,337,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,339,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,341,340,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,342,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,344,343,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,345,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,347,348,-217,-217,-217,346,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,349,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,152,104,-181,-181,-181,154,155,153,99,157,156,-181,-181,350,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,252,253,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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,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,52,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,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,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,2,1,352,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,351,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,32,18,16,-367,-367,-367,-367,-367,-367,-367,-367,-367,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,32,18,16,-368,-368,-368,-368,-368,-368,-368,-368,-368,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,353,-173,-173,149,150,2,66,10,160,158,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,164,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,5,15,108,2,1,1,211,167,168,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,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,4,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,-376,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,2,81,8,354,99,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-86,-86,-378,-378,-378,-378,-86,-86,-86,-86,-86,-86,-86,-86,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,10,54,5,1,23,1,1,3,21,11,11,132,105,106,135,136,137,138,133,139,134,3,83,1,1,140,141,142,52,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,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,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-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,25,1,4,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,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,2,1,357,355,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,356,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,358,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,359,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,10,68,160,360,361,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,94,69,2,2,366,365,367,368,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,369,157,156,195,194,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,370,157,156,195,194,3,66,10,88,160,371,372,5,72,22,69,2,2,373,-302,-302,-302,-302,6,72,1,21,69,2,2,-300,374,-300,-300,-300,-300,23,66,26,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,379,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,59,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,160,-308,-308,-86,-86,-86,380,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,2,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,387,99,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,389,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,10,44,160,391,390,2,66,10,160,392,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,52,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,3,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,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,393,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,30,83,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,76,3,2,-109,267,100,101,408,104,270,253,105,106,407,-109,-109,271,262,404,263,268,272,264,265,266,273,409,405,406,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,411,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,142,413,56,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,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,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,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,20,12,2,11,1,4,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,320,416,319,-199,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,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,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,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,417,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,32,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,424,241,244,240,66,42,43,90,91,246,86,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,2,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,2,1,-202,426,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,2,57,1,427,253,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,2,1,428,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,2,57,1,430,253,2,57,1,431,253,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,432,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,433,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,160,-264,-264,436,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,441,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,57,1,45,252,253,442,6,6,60,1,5,19,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,24,-110,-110,-110,-110,-110,11,6,60,1,5,1,10,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,10,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,10,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,24,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,23,1,7,13,3,2,1,2,24,3,446,448,447,269,104,270,253,445,271,99,443,87,444,449,450,86,82,53,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,278,105,106,452,453,277,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,2,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,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,125,126,-382,-382,-382,-382,-382,-382,-382,-382,110,111,-382,-382,-382,-382,-382,-382,118,-382,120,-382,-382,-382,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,-384,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,-385,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,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,109,108,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,109,108,110,111,112,-387,-387,-387,-387,-387,118,-387,120,-387,122,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,112,113,-388,-388,-388,-388,118,-388,120,-388,122,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,113,114,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,114,115,-390,-390,118,-390,120,-390,122,-390,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,119,120,-398,122,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,126,96,97,-399,-399,-399,-399,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,4,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,44,1,5,59,1,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,4,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,125,126,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,-397,118,-397,120,-397,122,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,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,4,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,117,118,119,120,-401,122,-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,25,1,4,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,-402,-402,-402,-402,-402,118,-402,120,-402,-402,-402,23,91,1,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,460,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,463,157,156,195,194,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,464,157,156,195,194,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,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,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,26,86,6,14,11,1,30,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,320,467,319,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,2,1,468,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,86,470,1,86,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,472,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,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,2,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,2,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,2,1,474,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,50,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,4,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,23,86,6,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,480,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,481,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,482,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,483,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,484,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,485,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,4,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,2,1,486,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,487,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,488,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,489,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,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,152,104,-218,-218,154,155,153,99,-218,157,-218,156,151,-218,491,150,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,2,1,494,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,55,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,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,2,6,61,107,495,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,347,348,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,498,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,499,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,500,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,4,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,2,1,501,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,502,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,10,160,503,6,55,1,10,10,5,8,504,104,160,506,505,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,2,1,507,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,508,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,509,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,510,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,94,511,1,165,512,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,513,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,152,104,154,155,153,99,157,156,195,514,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,515,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,155,1,1,516,377,378,4,67,78,11,1,517,518,519,378,3,67,78,12,-251,-251,-251,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,521,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,520,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,160,-306,-306,522,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,523,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,2,6,61,525,524,2,6,61,-314,-314,24,6,61,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,526,1,67,527,44,1,5,59,1,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,4,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,152,104,-173,-173,-173,154,155,153,99,157,156,151,528,-173,-173,149,150,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,1,67,529,3,54,5,1,530,105,106,3,89,89,5,532,531,219,3,54,5,1,533,105,106,1,142,534,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,535,-217,-217,-217,5,6,60,1,5,24,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,537,399,402,6,6,60,1,5,24,85,-333,-333,-333,-333,-333,538,6,6,60,1,5,24,85,-335,-335,-335,-335,-335,539,2,55,1,540,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,541,-339,-339,-339,-339,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,542,-217,-217,-217,5,6,60,1,5,24,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,545,104,407,409,544,406,12,6,60,1,5,1,10,1,1,6,5,24,61,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,546,6,6,60,1,5,24,85,-365,-365,-365,-365,-365,547,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,2,1,549,548,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,550,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,551,99,3,54,5,1,552,105,106,52,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,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,2,6,61,107,553,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,554,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,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,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,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,2,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,32,-151,-151,-151,-151,-151,2,66,38,556,555,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,2,1,-218,326,245,163,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,243,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,558,557,244,240,66,-218,42,43,90,91,246,86,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,559,-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,2,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,560,-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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,87,247,84,85,419,418,66,42,43,90,91,246,86,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,4,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,52,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,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,23,86,6,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,561,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,2,1,562,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,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,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,52,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,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,4,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,563,-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,2,1,564,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,565,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,566,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,567,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,30,569,570,568,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,267,100,101,269,104,270,253,105,106,-218,-218,271,572,-218,571,272,264,265,-218,266,273,-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,2,1,573,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,574,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,575,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,2,1,576,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,577,139,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,579,580,581,-128,578,139,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,249,250,582,139,2,109,11,583,139,52,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,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,55,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,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,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,584,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,2,1,585,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,2,1,586,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,66,587,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,588,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,589,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,590,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,591,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,594,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,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,2,1,595,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,596,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,597,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,24,67,19,6,56,1,9,1,1,32,1,4,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,2,1,598,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,4,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,2,1,600,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,-218,326,245,163,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,247,84,85,604,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,605,-217,-217,-217,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,23,67,25,56,1,9,1,1,32,1,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,23,67,25,56,1,9,1,1,32,1,4,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,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,2,1,612,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,160,102,103,611,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,152,104,154,155,153,99,157,156,151,613,150,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,614,-173,-173,149,150,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,4,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,55,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,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,3,125,1,1,615,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,616,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,4,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,617,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,160,618,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,160,619,2,66,10,160,620,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,26,66,10,16,5,51,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,621,127,622,124,125,126,96,97,623,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,624,127,625,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,626,127,627,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,628,127,629,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,2,1,630,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,631,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,632,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-303,-303,-303,-303,27,72,20,2,54,1,9,1,1,3,2,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,633,634,519,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,2,66,10,160,635,3,67,78,12,-252,-252,-252,3,66,6,4,160,637,636,24,66,6,20,56,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,160,-310,-310,638,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,2,1,-316,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-316,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,639,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,4,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,4,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,347,348,-217,-217,640,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,641,6,55,1,10,113,1,2,401,104,400,642,399,402,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,54,5,1,643,105,106,3,6,60,30,645,646,644,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,647,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,648,-217,-217,-217,2,55,1,649,104,2,55,1,650,104,1,142,-338,3,54,5,1,651,105,106,3,6,60,30,653,654,652,10,6,49,1,10,1,29,8,18,60,5,-218,545,104,-218,-218,-218,-218,-218,409,655,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,656,-217,-217,-217,6,6,60,1,5,24,85,-362,-362,-362,-362,-362,546,3,55,1,126,657,104,658,2,55,1,659,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,660,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,661,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,662,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,1,138,663,23,92,12,44,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,664,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,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,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,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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,665,241,244,240,66,42,43,90,91,246,86,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,-153,87,247,84,85,419,418,66,42,43,90,91,246,86,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,87,247,84,85,425,666,244,240,66,42,43,90,91,246,86,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,556,667,52,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,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,668,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,160,669,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,670,-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,2,1,671,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,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,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,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,267,100,101,269,104,270,253,105,106,271,572,672,272,264,265,266,273,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,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,572,-109,673,268,272,264,265,266,273,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,674,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,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,2,1,675,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,676,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,677,253,2,57,1,678,253,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,2,1,679,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,680,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,681,44,1,5,59,1,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,4,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,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,2,1,682,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,683,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,684,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,685,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,686,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,687,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,688,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,689,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,32,1,4,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,690,1,86,691,23,86,6,56,1,9,1,1,32,1,4,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,692,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,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,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,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,2,1,326,245,163,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,247,84,85,693,66,42,43,90,91,246,86,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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,694,86,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,695,1,86,696,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,4,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,4,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,52,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,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,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,347,697,-217,-217,-217,2,66,10,160,611,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,698,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,699,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,700,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,701,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,702,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,703,127,704,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,705,127,706,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,66,10,160,707,1,67,708,4,6,61,78,12,709,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,710,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,10,160,711,3,54,5,1,712,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,713,-217,-217,-217,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,1,142,714,4,55,1,124,2,401,104,715,402,6,55,1,10,113,1,2,401,104,400,716,399,402,5,6,60,1,5,24,-329,-329,-329,-329,-329,3,6,60,1,645,646,717,5,6,60,1,5,24,-334,-334,-334,-334,-334,5,6,60,1,5,24,-336,-336,-336,-336,-336,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,718,-340,-340,-340,-340,4,55,1,126,5,545,104,409,719,6,55,1,10,116,3,2,545,104,407,409,720,406,5,6,60,1,5,24,-358,-358,-358,-358,-358,3,6,60,1,653,654,721,5,6,60,1,5,24,-363,-363,-363,-363,-363,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,722,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,52,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,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,52,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,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,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,723,-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,724,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,307,152,104,154,155,153,99,725,726,83,156,195,306,194,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,727,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,728,-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,2,1,729,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,567,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,731,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,732,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,65,733,23,67,25,56,1,9,1,1,32,1,4,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,3,1,8,4,1,1,1,1,1,2,1,735,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,736,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,737,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,738,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,739,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,740,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,741,-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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,1,86,742,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,743,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,3,6,60,1,492,493,744,25,66,10,16,56,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,745,127,124,125,126,96,97,746,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,747,127,748,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,750,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,751,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,752,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,753,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,754,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,3,67,78,12,-254,-254,-254,24,66,6,20,56,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,30,645,646,755,3,54,5,1,756,105,106,5,6,60,1,5,24,-330,-330,-330,-330,-330,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,757,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,3,54,5,1,758,105,106,5,6,60,1,5,24,-359,-359,-359,-359,-359,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,759,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,556,760,52,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,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,4,94,69,2,2,761,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,762,157,156,195,194,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,569,570,763,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,764,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,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,765,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,766,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,767,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,768,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,3,6,60,1,602,603,769,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,4,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,2,1,770,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,771,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,772,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,773,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,142,774,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,3,6,60,1,645,646,775,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,6,60,1,653,654,776,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,2,1,777,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,94,778,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,779,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,780,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,781,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,782,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,783,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,54,5,1,784,105,106,5,6,60,1,5,24,-332,-332,-332,-332,-332,5,6,60,1,5,24,-361,-361,-361,-361,-361,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,787,-288,-288,-288,-288,785,-288,786,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,788,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,1,96,789,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,790,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,787,-290,-290,-290,-290,791,-290,792,-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,57,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,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,787,-289,-289,-289,-289,793,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,794,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,795,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,96,796,57,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,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,787,-291,-291,-291,-291,797,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,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,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,1,96,798,57,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,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],U=[],Z=0,W,Y,$,Q;while(Z<A.length){W=A[Z++],Y={},$=0,Q=[];while(W--)$+=A[Z++],Q.push($);for($ of Q)Y[$]=A[Z++];U.push(Y)}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,5,21,2,21,3,21,4,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,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:(A,U,Z,W)=>{let Y=U,$=U.length-1;switch(A){case 1:return["program"];case 2:return["program",...Y[$]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 251:case 302:case 314:case 328:case 357:return[Y[$]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...Y[$-2],Y[$]];case 5:case 60:case 157:case 316:return Y[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365:return Y[$];case 47:return"undefined";case 48:return"null";case 57:return["str",...Y[$-1]];case 59:case 151:case 155:case 252:return[...Y[$-1],Y[$]];case 61:case 193:case 197:case 331:case 360:return Y[$-2];case 62:return"";case 65:return["regex",Y[$-1]];case 66:return["regex-index",Y[$-2],Y[$]];case 67:return["regex-index",Y[$],null];case 68:return["=",Y[$-2],Y[$]];case 69:return["=",Y[$-3],Y[$]];case 70:return["=",Y[$-4],Y[$-1]];case 71:return["state",Y[$-2],Y[$]];case 72:return["state",Y[$-3],Y[$]];case 73:return["state",Y[$-4],Y[$-1]];case 74:case 76:return["computed",Y[$-2],Y[$]];case 75:return["computed",Y[$-3],Y[$]];case 77:return["readonly",Y[$-2],Y[$]];case 78:return["readonly",Y[$-3],Y[$]];case 79:return["readonly",Y[$-4],Y[$-1]];case 80:return["effect",Y[$-2],Y[$]];case 81:return["effect",Y[$-3],Y[$]];case 82:return["effect",Y[$-4],Y[$-1]];case 83:case 84:return["effect",null,Y[$]];case 85:return["effect",null,Y[$-1]];case 91:case 100:case 138:return[".",Y[$-2],Y[$]];case 92:case 101:case 139:return["?.",Y[$-2],Y[$]];case 93:case 95:case 102:case 140:return["[]",Y[$-3],Y[$-1]];case 94:case 96:case 103:case 141:return["[]",Y[$-5],Y[$-2]];case 97:return[Y[$-1][0],Y[$-3],...Y[$-1].slice(1)];case 98:return["optindex",Y[$-4],Y[$-1]];case 99:return["optindex",Y[$-6],Y[$-2]];case 104:return["object-comprehension",Y[$-8],Y[$-6],[["for-of",Y[$-4],Y[$-2],!1]],[]];case 105:return["object-comprehension",Y[$-10],Y[$-8],[["for-of",Y[$-6],Y[$-4],!1]],[Y[$-2]]];case 106:return["object-comprehension",Y[$-9],Y[$-7],[["for-of",Y[$-4],Y[$-2],!0]],[]];case 107:return["object-comprehension",Y[$-11],Y[$-9],[["for-of",Y[$-6],Y[$-4],!0]],[Y[$-2]]];case 108:return["object",...Y[$-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 330:case 359:return[...Y[$-3],Y[$]];case 113:case 177:case 198:case 332:case 361:return[...Y[$-5],...Y[$-2]];case 114:return[Y[$],Y[$],null];case 116:return[Y[$-2],Y[$],":"];case 117:return[Y[$-4],Y[$-1],":"];case 118:return[Y[$-2],Y[$],"="];case 119:return[Y[$-4],Y[$-1],"="];case 124:return["dynamicKey",Y[$-1]];case 125:return["[]","this",Y[$-1]];case 127:case 128:case 186:return["...",Y[$]];case 134:case 190:return["super",...Y[$]];case 135:case 136:case 137:case 188:case 191:return[Y[$-1],...Y[$]];case 142:return["array"];case 143:return["array",...Y[$-1]];case 144:return["array",...Y[$-2],...Y[$-1]];case 146:return[...Y[$-2],...Y[$]];case 147:return[...Y[$-3],...Y[$]];case 148:return[...Y[$-2],...Y[$-1]];case 149:return[...Y[$-5],...Y[$-4],...Y[$-2],...Y[$-1]];case 153:return[...Y[$]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[Y[$-2],Y[$-3],Y[$-1]];case 161:case 384:case 386:case 387:case 402:case 404:return[Y[$-1],Y[$-2],Y[$]];case 162:return[Y[$],Y[$-1],null];case 163:return[Y[$-1],null,Y[$]];case 164:return[Y[$],null,null];case 165:return["def",Y[$-4],Y[$-2],Y[$]];case 166:return["def",Y[$-1],[],Y[$]];case 167:case 169:return[Y[$-1],Y[$-3],Y[$]];case 168:case 170:return[Y[$-1],[],Y[$]];case 179:case 301:return["default",Y[$-2],Y[$]];case 180:return["rest",Y[$]];case 181:return["expansion"];case 187:return["tagged-template",Y[$-1],Y[$]];case 189:return["optcall",Y[$-2],...Y[$]];case 205:case 206:return"this";case 207:return[".","this",Y[$]];case 208:return[".","super",Y[$]];case 209:return["[]","super",Y[$-1]];case 210:return["[]","super",Y[$-2]];case 211:return[".","new",Y[$]];case 212:return[".","import",Y[$]];case 213:return["block"];case 214:return["block",...Y[$-1]];case 215:return Y[$-1].length===1?Y[$-1][0]:["block",...Y[$-1]];case 216:return Y[$-2].length===1?Y[$-2][0]:["block",...Y[$-2]];case 219:return["return",Y[$]];case 220:return["return",Y[$-1]];case 221:return["return"];case 222:return["throw",Y[$]];case 223:return["throw",Y[$-1]];case 224:return["yield"];case 225:return["yield",Y[$]];case 226:return["yield",Y[$-1]];case 227:return["yield-from",Y[$]];case 228:return["if",Y[$-1],Y[$]];case 229:return Y[$-4].length===3?["if",Y[$-4][1],Y[$-4][2],["if",Y[$-1],Y[$]]]:[...Y[$-4],["if",Y[$-1],Y[$]]];case 230:return["if",["!",Y[$-1]],Y[$]];case 231:return["if",["!",Y[$-3]],Y[$-2],Y[$]];case 233:return Y[$-2].length===3?["if",Y[$-2][1],Y[$-2][2],Y[$]]:[...Y[$-2],Y[$]];case 235:case 236:return["if",Y[$],[Y[$-2]]];case 237:return["?:",Y[$-4],Y[$-6],Y[$-1]];case 238:case 239:return["if",["!",Y[$]],[Y[$-2]]];case 240:return["try",Y[$]];case 241:return["try",Y[$-1],Y[$]];case 242:return["try",Y[$-2],Y[$]];case 243:return["try",Y[$-3],Y[$-2],Y[$]];case 244:case 245:case 367:case 370:case 372:return[Y[$-1],Y[$]];case 246:return[null,Y[$]];case 247:return["switch",Y[$-3],Y[$-1],null];case 248:return["switch",Y[$-5],Y[$-3],Y[$-1]];case 249:return["switch",null,Y[$-1],null];case 250:return["switch",null,Y[$-3],Y[$-1]];case 253:return["when",Y[$-1],Y[$]];case 254:return["when",Y[$-2],Y[$-1]];case 255:return["while",Y[$]];case 256:return["while",Y[$-2],Y[$]];case 257:return["while",["!",Y[$]]];case 258:return["while",["!",Y[$-2]],Y[$]];case 259:return Y[$-1].length===2?[Y[$-1][0],Y[$-1][1],Y[$]]:[Y[$-1][0],Y[$-1][1],Y[$-1][2],Y[$]];case 260:case 261:return Y[$].length===2?[Y[$][0],Y[$][1],[Y[$-1]]]:[Y[$][0],Y[$][1],Y[$][2],[Y[$-1]]];case 263:return["loop",Y[$]];case 264:return["loop",[Y[$]]];case 265:return["loop-n",Y[$-1],Y[$]];case 266:return["for-in",Y[$-3],Y[$-1],null,null,Y[$]];case 267:return["for-in",Y[$-5],Y[$-3],null,Y[$-1],Y[$]];case 268:return["for-in",Y[$-5],Y[$-3],Y[$-1],null,Y[$]];case 269:return["for-in",Y[$-7],Y[$-5],Y[$-1],Y[$-3],Y[$]];case 270:return["for-in",Y[$-7],Y[$-5],Y[$-3],Y[$-1],Y[$]];case 271:return["for-of",Y[$-3],Y[$-1],!1,null,Y[$]];case 272:return["for-of",Y[$-5],Y[$-3],!1,Y[$-1],Y[$]];case 273:return["for-of",Y[$-3],Y[$-1],!0,null,Y[$]];case 274:return["for-of",Y[$-5],Y[$-3],!0,Y[$-1],Y[$]];case 275:return["for-as",Y[$-3],Y[$-1],!1,null,Y[$]];case 276:return["for-as",Y[$-5],Y[$-3],!1,Y[$-1],Y[$]];case 277:case 279:return["for-as",Y[$-3],Y[$-1],!0,null,Y[$]];case 278:case 280:return["for-as",Y[$-5],Y[$-3],!0,Y[$-1],Y[$]];case 281:return["for-in",[],Y[$-1],null,null,Y[$]];case 282:return["for-in",[],Y[$-3],Y[$-1],null,Y[$]];case 283:return["comprehension",Y[$-4],[["for-in",Y[$-2],Y[$],null]],[]];case 284:return["comprehension",Y[$-6],[["for-in",Y[$-4],Y[$-2],null]],[Y[$]]];case 285:return["comprehension",Y[$-6],[["for-in",Y[$-4],Y[$-2],Y[$]]],[]];case 286:return["comprehension",Y[$-8],[["for-in",Y[$-6],Y[$-4],Y[$]]],[Y[$-2]]];case 287:return["comprehension",Y[$-8],[["for-in",Y[$-6],Y[$-4],Y[$-2]]],[Y[$]]];case 288:return["comprehension",Y[$-4],[["for-of",Y[$-2],Y[$],!1]],[]];case 289:return["comprehension",Y[$-6],[["for-of",Y[$-4],Y[$-2],!1]],[Y[$]]];case 290:return["comprehension",Y[$-5],[["for-of",Y[$-2],Y[$],!0]],[]];case 291:return["comprehension",Y[$-7],[["for-of",Y[$-4],Y[$-2],!0]],[Y[$]]];case 292:return["comprehension",Y[$-4],[["for-as",Y[$-2],Y[$],!1,null]],[]];case 293:return["comprehension",Y[$-6],[["for-as",Y[$-4],Y[$-2],!1,null]],[Y[$]]];case 294:return["comprehension",Y[$-5],[["for-as",Y[$-2],Y[$],!0,null]],[]];case 295:return["comprehension",Y[$-7],[["for-as",Y[$-4],Y[$-2],!0,null]],[Y[$]]];case 296:return["comprehension",Y[$-4],[["for-as",Y[$-2],Y[$],!0,null]],[]];case 297:return["comprehension",Y[$-6],[["for-as",Y[$-4],Y[$-2],!0,null]],[Y[$]]];case 298:return["comprehension",Y[$-2],[["for-in",[],Y[$],null]],[]];case 299:return["comprehension",Y[$-4],[["for-in",[],Y[$-2],Y[$]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[Y[$-2],Y[$]];case 304:return["class",null,null];case 305:return["class",null,null,Y[$]];case 306:return["class",null,Y[$]];case 307:return["class",null,Y[$-1],Y[$]];case 308:return["class",Y[$],null];case 309:return["class",Y[$-1],null,Y[$]];case 310:return["class",Y[$-2],Y[$]];case 311:return["class",Y[$-3],Y[$-1],Y[$]];case 312:return["enum",Y[$-1],Y[$]];case 313:return["component",null,["block",...Y[$-1]]];case 320:return["render",Y[$]];case 321:case 324:return["import","{}",Y[$]];case 322:case 323:return["import",Y[$-2],Y[$]];case 325:return["import",Y[$-4],Y[$]];case 326:return["import",[Y[$-4],Y[$-2]],Y[$]];case 327:return["import",[Y[$-7],Y[$-4]],Y[$]];case 338:return["*",Y[$]];case 339:return["export","{}"];case 340:return["export",Y[$-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",Y[$]];case 345:return["export",["=",Y[$-2],Y[$]]];case 346:return["export",["=",Y[$-3],Y[$]]];case 347:return["export",["=",Y[$-4],Y[$-1]]];case 352:return["export-default",Y[$]];case 353:return["export-default",Y[$-1]];case 354:return["export-all",Y[$]];case 355:return["export-from","{}",Y[$]];case 356:return["export-from",Y[$-4],Y[$]];case 368:case 369:case 371:case 407:return["do-iife",Y[$]];case 373:return["-",Y[$]];case 374:return["+",Y[$]];case 375:return["?",Y[$-1]];case 376:return["await",Y[$]];case 377:return["await",Y[$-1]];case 378:return["--",Y[$],!1];case 379:return["++",Y[$],!1];case 380:return["--",Y[$-1],!0];case 381:return["++",Y[$-1],!0];case 382:return["+",Y[$-2],Y[$]];case 383:return["-",Y[$-2],Y[$]];case 385:return["**",Y[$-2],Y[$]];case 388:return["&",Y[$-2],Y[$]];case 389:return["^",Y[$-2],Y[$]];case 390:return["|",Y[$-2],Y[$]];case 391:case 392:case 393:case 394:case 395:case 396:return["control",Y[$-1],Y[$-2],Y[$]];case 397:return["&&",Y[$-2],Y[$]];case 398:return["||",Y[$-2],Y[$]];case 399:return["??",Y[$-2],Y[$]];case 400:return["!?",Y[$-2],Y[$]];case 401:return["|>",Y[$-2],Y[$]];case 403:return["?:",Y[$-4],Y[$-2],Y[$]];case 405:return[Y[$-3],Y[$-4],Y[$-1]];case 406:return[Y[$-2],Y[$-3],Y[$]]}},parseError(A,U){let Z,W,Y,$,Q,F,J;if(U.recoverable)return this.trace(A);else throw Y=(U.line||0)+1,Z=U.loc?.c||0,J=U.token?` (token: ${U.token})`:"",F=U.text?` near '${U.text}'`:"",$=`line ${Y}, column ${Z}`,Q=`Parse error at ${$}${J}${F}: ${A}`,W=Error(Q),W.hash=U,W},parse(A){let U,Z,W,Y,$,Q,F,J,D,X,z,M,K,H,G,q,R,w,I,_,E,P,O,B,N,T;[_,T,X]=[[0],[null],[]],[K,N,O,P,q]=[this.parseTable,"",0,0,0],[Z,U]=[2,1],J=Object.create(this.lexer),w={ctx:{}};for(let S in this.ctx){if(!Object.hasOwn(this.ctx,S))continue;let f=this.ctx[S];w.ctx[S]=f}if(J.setInput(A,w.ctx),[w.ctx.lexer,w.ctx.parser]=[J,this],J.loc==null)J.loc={};B=J.loc,X.push(B),this.parseError=typeof w.ctx.parseError==="function"?w.ctx.parseError:Object.getPrototypeOf(this).parseError,F=()=>{let S;if(S=J.lex()||U,typeof S!=="number")S=this.symbolIds[S]||S;return S},E=H=I=W=G=M=Q=z=$=null,R={};while(!0){if(I=_[_.length-1],E==null)E=F();if(W=K[I]?.[E],W==null){if(Y="",!q)$=(()=>{let S=[];for(let f in K[I]){if(!Object.hasOwn(K[I],f))continue;if(this.tokenNames[f]&&f>Z)S.push(`'${this.tokenNames[f]}'`)}return S})();throw Y=(()=>{if(J.showPosition)return`Parse error on line ${O+1}:
|
|
12
|
-
${
|
|
13
|
-
Expecting ${$.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${O+1}: Unexpected ${E===U?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError(Y,{text:J.match,token:this.tokenNames[E]||E,line:J.line,loc:B,expected:$})})(),Error(Y)}if(W>0)if(_.push(E,W),T.push(J.text),X.push(J.loc),E=null,!H){if([P,N,O,B]=[J.len,J.text,J.line,J.loc],q>0)q--}else[E,H]=[H,null];else if(W<0){if(Q=this.ruleTable[-W*2+1],R.$=T[T.length-Q],D=X[X.length-(Q||1)],R._$={r:D.r,c:D.c},G=this.ruleActions.call(R,-W,T,X,w.ctx),G!=null)R.$=G;if(Array.isArray(R.$))R.$.loc=R._$;if(Q)_.length-=Q*2,T.length-=Q,X.length-=Q;_.push(this.ruleTable[-W*2]),T.push(R.$),X.push(R._$),z=K[_[_.length-2]][_[_.length-1]],_.push(z)}else if(W===0)return T[T.length-1]}},trace(){},ctx:{}},_2=(A={})=>{let U=Object.create(O2);return Object.defineProperty(U,"ctx",{value:{...A},enumerable:!1,writable:!0,configurable:!0}),U},m=_2();var C2=m.parse.bind(m);var P2=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"]),w2=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"]),Q1=new Set([...P2,...w2]);var L1="__bind_",f1="__",V1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]),I2=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function B2(A){for(let U of A){if(!Array.isArray(U))continue;let Z=U[0]instanceof String?U[0].valueOf():U[0],W=U[1]instanceof String?U[1].valueOf():U[1];if(Z==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function r(A){if(typeof A==="string")return A;if(Array.isArray(A)&&A[0]==="."&&A[1]==="this"&&typeof A[2]==="string")return A[2];return null}function F1(A){return Array.isArray(A)&&A[0]==="."&&A[1]==="this"}function u1(A,U,Z){let W=Z(A);if(!/_frag\d+$/.test(W))return null;let Y=[],$=new RegExp(`^${W.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let Q of U){let F=Z(Q).match($);if(F)Y.push(F[1])}return Y.length>0?Y:null}function j1(A,U){U.prototype.rewriteRender=function(){let W=(M,K,H)=>{let G=[M,K];if(G.pre=0,G.data=null,G.loc=H?.loc??{r:0,c:0,n:0},G.spaced=!1,G.newLine=!1,G.generated=!0,H)G.origin=H;return G},Y=!1,$=0,Q=0,F=[],J=(M)=>{let K=M.split("#")[0];return Q1.has(K)},D=(M)=>{if(!M||typeof M!=="string")return!1;return/^[A-Z]/.test(M)},X=(M)=>{return J(M)||D(M)},z=(M,K)=>{let H=K;while(H>0){let G=M[H-1][0];if(G==="TERMINATOR"||G==="RENDER")break;if(G==="INDENT"||G==="OUTDENT"){let q=M[H][0];if(q==="CALL_END"||q===")"){let R=q==="CALL_END"?"CALL_START":"(",w=1,I=H-1;while(I>=0&&w>0){let _=M[I][0];if(_===q)w++;else if(_===R)w--;if(w>0)I--}H=I;continue}break}if(G==="CALL_END"||G===")"){let q=G==="CALL_END"?"CALL_START":"(",R=1,w=H-2;while(w>=0&&R>0){let I=M[w][0];if(I==="CALL_END"||I===")")R++;else if(I==="CALL_START"||I==="(")R--;if(R>0)w--}H=w;continue}H--}return M[H]&&M[H][0]==="IDENTIFIER"&&X(M[H][1])};this.scanTokens(function(M,K,H){let G=M[0],q=K<H.length-1?H[K+1]:null;if(G==="RENDER")return Y=!0,$=Q+1,1;if(G==="INDENT")return Q++,1;if(G==="OUTDENT"){Q--;let R=0;while(F.length>0&&F[F.length-1]>Q){let w=W("CALL_END",")",M);H.splice(K+1+R,0,w),F.pop(),R++}if(Y&&Q<$)Y=!1;return 1+R}if(!Y)return 1;if(G==="IDENTIFIER"&&!M.spaced){let R=[M[1]],w=K+1;while(w+1<H.length){let I=H[w],_=H[w+1];if(I[0]==="-"&&!I.spaced&&(_[0]==="IDENTIFIER"||_[0]==="PROPERTY")){if(R.push(_[1]),w+=2,_[0]==="PROPERTY")break}else break}if(R.length>1&&w>K+1&&H[w-1][0]==="PROPERTY")return M[0]="STRING",M[1]=`"${R.join("-")}"`,H.splice(K+1,w-K-1),1}if(G==="."){let R=K>0?H[K-1]:null,w=R?R[0]:null;if(w==="INDENT"||w==="TERMINATOR"){if(q&&q[0]==="PROPERTY"){let I=W("IDENTIFIER","div",M);return H.splice(K,0,I),2}if(!q||q[0]!=="(")return M[0]="IDENTIFIER",M[1]="div",0}}if(G==="IDENTIFIER"||G==="PROPERTY"){let R=H[K+1],w=H[K+2];if(R&&R[0]==="#"&&w&&(w[0]==="PROPERTY"||w[0]==="IDENTIFIER")){if(M[1]=M[1]+"#"+w[1],w.spaced)M.spaced=!0;return H.splice(K+1,2),1}}if(G==="BIND"){let R=K>0?H[K-1]:null,w=H[K+1];if(R&&(R[0]==="IDENTIFIER"||R[0]==="PROPERTY")&&w&&w[0]==="IDENTIFIER")return R[1]=`__bind_${R[1]}__`,M[0]=":",M[1]=":",1}if(G==="@"){let R=K+1;if(R<H.length&&H[R][0]==="PROPERTY"){R++;while(R+1<H.length&&H[R][0]==="."&&H[R+1][0]==="PROPERTY")R+=2;if(R>K+2&&R<H.length&&H[R][0]===":"){let w=W("[","[",M);H.splice(K,0,w);let I=W("]","]",H[R+1]);return H.splice(R+1,0,I),2}}}if(G==="."&&q&&q[0]==="("){let R=K>0?H[K-1]:null,w=R?R[0]:null,I=w==="INDENT"||w==="TERMINATOR",_=W("PROPERTY","__clsx",M);q[0]="CALL_START";let E=1;for(let P=K+2;P<H.length&&E>0;P++)if(H[P][0]==="("||H[P][0]==="CALL_START")E++;else if(H[P][0]===")"){if(E--,E===0)H[P][0]="CALL_END"}else if(H[P][0]==="CALL_END")E--;if(I){let P=W("IDENTIFIER","div",M);return H.splice(K,0,P),H.splice(K+2,0,_),3}else if(w===":")return H[K]=W("IDENTIFIER","__clsx",M),1;else return H.splice(K+1,0,_),2}if(q&&q[0]==="INDENT"){if(G==="->"||G==="=>"||G==="CALL_START"||G==="(")return 1;let R=!1,w=K>0?H[K-1][0]:null,I=w==="IF"||w==="UNLESS"||w==="WHILE"||w==="UNTIL"||w==="WHEN",_=!1;if(G==="CALL_END"){let E=1;for(let P=K-1;P>=0&&E>0;P--)if(H[P][0]==="CALL_END")E++;else if(H[P][0]==="CALL_START"){if(E--,E===0&&P>0&&H[P-1][0]==="PROPERTY"&&H[P-1][1]==="__clsx")_=!0}}if(_)R=!0;else if(G==="IDENTIFIER"&&X(M[1])&&!I)R=!0;else if(G==="PROPERTY"||G==="STRING"||G==="STRING_END"||G==="CALL_END"||G===")")R=z(H,K);else if(G==="IDENTIFIER"&&K>1&&H[K-1][0]==="..."){if(z(H,K)){let E=W(",",",",M),P=W("->","->",M);return P.newLine=!0,H.splice(K+1,0,E,P),3}}if(R){let E=G==="PROPERTY"&&K>0&&(H[K-1][0]==="."||H[K-1][0]==="#");if(_){let P=W("CALL_START","(",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,P,O),F.push(Q+1),3}else if(G==="IDENTIFIER"&&X(M[1])||E){let P=W("CALL_START","(",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,P,O),F.push(Q+1),3}else{let P=W(",",",",M),O=W("->","->",M);return O.newLine=!0,H.splice(K+1,0,P,O),3}}}if(G==="IDENTIFIER"&&D(M[1])&&q&&(q[0]==="OUTDENT"||q[0]==="TERMINATOR"))return H.splice(K+1,0,W("CALL_START","(",M),W("CALL_END",")",M)),3;return 1})};let Z=A.prototype;Z.localizeVar=function(W){let Y=W.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return Y=Y.replace(/\bthis\b/g,"ctx"),Y},Z.isHtmlTag=function(W){let Y=W.split("#")[0];return Q1.has(Y.toLowerCase())},Z.isComponent=function(W){if(!W||typeof W!=="string")return!1;return/^[A-Z]/.test(W)},Z.collectTemplateClasses=function(W){let Y=[],$=W;while(this.is($,".")){let D=$[2];if(typeof D==="string"||D instanceof String)Y.unshift(D.valueOf());$=$[1]}let Q=typeof $==="string"?$:$ instanceof String?$.valueOf():"div",[F,J]=Q.split("#");if(!F)F="div";return{tag:F,classes:Y,id:J}},Z.transformComponentMembers=function(W){if(!Array.isArray(W)){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return[".",[".","this",W],"value"];if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return[".","this",W];return W}if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string"){let Y=W[2];if(this.reactiveMembers&&this.reactiveMembers.has(Y))return[".",W,"value"];return W}if(W[0]===".")return[".",this.transformComponentMembers(W[1]),W[2]];if(W[0]==="->")return["=>",...W.slice(1).map((Y)=>this.transformComponentMembers(Y))];if(W[0]==="object")return["object",...W.slice(1).map((Y)=>{if(Array.isArray(Y)&&Y.length>=2){let $=Y[0],Q=Array.isArray($)?this.transformComponentMembers($):$,F=this.transformComponentMembers(Y[1]);return[Q,F,Y[2]]}return this.transformComponentMembers(Y)})];return W.map((Y)=>this.transformComponentMembers(Y))},Z.generateComponent=function(W,Y,$,Q){let[,F]=Y;this.usesTemplates=!0,this.usesReactivity=!0;let J=this.is(F,"block")?F.slice(1):[],D=[],X=[],z=[],M=[],K=[],H=[],G=null,q=new Set,R=new Set;for(let P of J){if(!Array.isArray(P))continue;let[O]=P;if(O==="state"){let B=r(P[1]);if(B)D.push({name:B,value:P[2],isPublic:F1(P[1])}),q.add(B),R.add(B)}else if(O==="computed"){let B=r(P[1]);if(B)X.push({name:B,expr:P[2]}),q.add(B),R.add(B)}else if(O==="readonly"){let B=r(P[1]);if(B)z.push({name:B,value:P[2],isPublic:F1(P[1])}),q.add(B)}else if(O==="="){let B=r(P[1]);if(B)if(V1.has(B))K.push({name:B,value:P[2]});else{let N=P[2];if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>"))M.push({name:B,func:N}),q.add(B);else D.push({name:B,value:N,isPublic:F1(P[1])}),q.add(B),R.add(B)}}else if(O==="effect")H.push(P);else if(O==="render")G=P;else if(O==="object")for(let B=1;B<P.length;B++){let N=P[B];if(!Array.isArray(N))continue;let[T,S]=N;if(typeof T==="string"&&V1.has(T))K.push({name:T,value:S});else if(typeof T==="string")M.push({name:T,func:S}),q.add(T)}}let w=this.componentMembers,I=this.reactiveMembers;this.componentMembers=q,this.reactiveMembers=R;let _=[],E="";_.push("class extends __Component {"),_.push(" _init(props) {");for(let{name:P,value:O,isPublic:B}of z){let N=this.generateInComponent(O,"value");_.push(B?` this.${P} = props.${P} ?? ${N};`:` this.${P} = ${N};`)}for(let{name:P,value:O,isPublic:B}of D){let N=this.generateInComponent(O,"value");_.push(B?` this.${P} = __state(props.${P} ?? ${N});`:` this.${P} = __state(${N});`)}for(let{name:P,expr:O}of X)if(this.is(O,"block")&&O.length>2){let B=this.transformComponentMembers(O),N=this.generateFunctionBody(B);_.push(` this.${P} = __computed(() => ${N});`)}else{let B=this.generateInComponent(O,"value");_.push(` this.${P} = __computed(() => ${B});`)}for(let P of H){let O=P[2],B=this.generateInComponent(O,"value");_.push(` __effect(() => { ${B}; });`)}_.push(" }");for(let{name:P,func:O}of M)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,B,N]=O,T=Array.isArray(B)?B.map((h)=>this.formatParam(h)).join(", "):"",S=this.reactiveMembers?this.transformComponentMembers(N):N,f=this.containsAwait(N),V=this.generateFunctionBody(S,B||[]);_.push(` ${f?"async ":""}${P}(${T}) ${V}`)}for(let{name:P,value:O}of K)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,,B]=O,N=this.reactiveMembers?this.transformComponentMembers(B):B,T=this.containsAwait(B),S=this.generateFunctionBody(N,[]);_.push(` ${T?"async ":""}${P}() ${S}`)}if(G){let P=G[1],O=this.buildRender(P);if(O.blockFactories.length>0)E=O.blockFactories.join(`
|
|
9
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&T1.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let A=this.tokens.length;if(A>=2){let U=this.tokens[A-2][0];if(U==="INDENT"||U==="TERMINATOR"||U==="OUTDENT")return!1}}return T1.test(this.chunk)||I1.has(this.prevTag())}pair(A){let U=this.ends[this.ends.length-1];if(!U||A!==U.tag){if(U?.tag==="OUTDENT"){let Z=this.indents[this.indents.length-1];if(Z)this.outdentTo(this.indent-Z);return this.pair(A)}b(`unmatched ${A}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let A=Z2.exec(this.chunk);if(!A)return 0;let U=A[0],Z=U.length>1&&U.endsWith("\\"),W=Z?U.slice(0,-1):U,$=this.prev();if($&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))$[0]="FROM";let Y;switch(W){case"'":Y=Q2;break;case'"':Y=F2;break;case"'''":Y=X2;break;case'"""':Y=J2;break}let{tokens:Q,index:F}=this.matchWithInterpolations(Y,U,W),X=W.length===3,D=null;if(X)D=this.processHeredocIndent(F,W,Q);return this.mergeInterpolationTokens(Q,{quote:W,indent:D,endOffset:F,raw:Z}),F}processHeredocIndent(A,U,Z){let W=A-U.length,$=W-1;while($>=0&&this.chunk[$]!==`
|
|
10
|
+
`)$--;$++;let Y=this.chunk.slice($,W),Q=/^\s*$/.test(Y)?Y.length:null,F="";for(let J of Z)if(J[0]==="NEOSTRING")F+=J[1];let X=null,D;E1.lastIndex=0;while(D=E1.exec(F))if(X===null||D[1].length>0&&D[1].length<X.length)X=D[1];if(Q===null)return X;if(X===null)return" ".repeat(Q);if(Q<=X.length)return" ".repeat(Q);return X}matchWithInterpolations(A,U,Z,W){if(!Z)Z=U;if(!W)W=/^[#$]\{/;let $=[],Y=U.length;if(this.chunk.slice(0,Y)!==U)return null;let Q=this.chunk.slice(Y);while(!0){let[F]=A.exec(Q);$.push(["NEOSTRING",F,{offset:Y}]),Q=Q.slice(F.length),Y+=F.length;let X=W.exec(Q);if(!X)break;let J=X[0].length-1,z=Q.slice(J),G=new c().tokenize(z,{row:this.row,col:this.col+Y+J,untilBalanced:!0,rewrite:!1}),K=G.index+J;if(Q[K-1]==="}"){let H=G.tokens[0],q=G.tokens[G.tokens.length-1];H[0]="INTERPOLATION_START",H[1]="(",q[0]="INTERPOLATION_END",q[1]=")"}if(G.tokens[1]?.[0]==="TERMINATOR")G.tokens.splice(1,1);let R=G.tokens.length;if(R>2&&G.tokens[R-3]?.[0]==="INDENT"&&G.tokens[R-2]?.[0]==="OUTDENT")G.tokens.splice(R-3,2);$.push(["TOKENS",G.tokens]),Q=Q.slice(K),Y+=K}if(Q.slice(0,Z.length)!==Z)b(`missing ${Z}`,{row:this.row,col:this.col});return{tokens:$,index:Y+Z.length}}mergeInterpolationTokens(A,{quote:U,indent:Z,endOffset:W,raw:$}){if(A.length>1)this.emit("STRING_START","(",{len:U?.length||0,data:{quote:U}});for(let Y=0;Y<A.length;Y++){let[Q,F]=A[Y];if(Q==="TOKENS")for(let X of F)this.tokens.push(X);else if(Q==="NEOSTRING"){let X=F;if(Z){let D=new RegExp("\\n"+Z,"g");X=X.replace(D,`
|
|
11
|
+
`)}if(Y===0&&U?.length===3)X=X.replace(/^\n/,"");if(Y===A.length-1&&U?.length===3)X=X.replace(/\n[^\S\n]*$/,"");if($)X=X.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${X}"`,{len:F.length,data:{quote:U}})}}if(A.length>1)this.emit("STRING_END",")",{len:U?.length||0});return W}numberToken(){let A=t1.exec(this.chunk);if(!A)return 0;let U=A[0],Z=U.length,W={row:this.row,col:this.col};if(/^0[BOX]/.test(U))b(`radix prefix in '${U}' must be lowercase`,{...W,col:W.col+1});if(/^0\d*[89]/.test(U))b(`decimal literal '${U}' must not be prefixed with '0'`,{...W,len:Z});if(/^0\d+/.test(U))b(`octal literal '${U}' must be prefixed with '0o'`,{...W,len:Z});let $=q2(U),Y=$===1/0?"INFINITY":"NUMBER",Q={parsedValue:$};if(Y==="INFINITY")Q.original=U;return this.emit(Y,U,{len:Z,data:Q}),Z}regexToken(){let A=this.matchWithInterpolations(z2,"///");if(A){let{tokens:D,index:J}=A,[z]=N1.exec(this.chunk.slice(J)),G=J+z.length;if(D.length===1||!D.some((K)=>K[0]==="TOKENS")){let K=(D[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${K}/${z}`,{len:G,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(D,{quote:"///",endOffset:G-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 G}let U=K2.exec(this.chunk);if(!U)return 0;let[Z,W,$]=U,Y=this.prev();if(Y){if(Y.spaced&&o.has(Y[0])&&(!$||/^\/=?\s/.test(Z)))return 0;if(i1.has(Y[0])&&!(Y.spaced&&o.has(Y[0])))return 0}if(!$)b("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=Z.length,[F]=N1.exec(this.chunk.slice(Q)),X=Q+F.length;if(!D2.test(F))b(`invalid regular expression flags ${F}`,{row:this.row,col:this.col+Q,len:F.length});return this.emit("REGEX",`/${W}/${F}`,{len:X,data:{delimiter:"/"}}),X}jsToken(){if(this.chunk[0]!=="`")return 0;let A=G2.exec(this.chunk)||H2.exec(this.chunk);if(!A)return 0;let U=A[1],Z=A[0].length;return this.emit("JS",U,{len:Z,data:{here:A[0].startsWith("```")}}),Z}literalToken(){let A=e1.exec(this.chunk),U=A?A[0]:this.chunk.charAt(0),Z=U,W=this.prev();if(W2.test(U))this.tagParameters();if(U==="="&&W&&W[1]==="."&&!W.spaced){let $=this.tokens,Y=$.length-2;while(Y>=1&&$[Y][0]==="PROPERTY"&&$[Y-1]?.[1]===".")Y-=2;if(Y>=0&&($[Y][0]==="IDENTIFIER"||$[Y][0]===")"||$[Y][0]==="]")){let Q=$.slice(Y,$.length-1);W[0]="=",W[1]="=";for(let F of Q)this.tokens.push(r(F[0],F[1],{pre:0,row:F[2],col:F[3],len:F[4]}));return this.tokens.push(r(".",".",{pre:0,row:this.row,col:this.col,len:1})),U.length}}if(W&&(U==="="||B1.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,Z="TERMINATOR";else if(U==="|>")Z="PIPE";else if(U==="::=")Z="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==="::")Z="TYPE_ANNOTATION";else if(U==="~=")Z="COMPUTED_ASSIGN";else if(U===":=")Z="REACTIVE_ASSIGN";else if(U==="<=>")Z="BIND";else if(U==="~>")Z="REACT_ASSIGN";else if(U==="=!")Z="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 $=this.chunk.slice(1),Y=/^@(\s*)=(?!=)/.exec($);if(Y){let F=Y[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let X=this.emit("PROPERTY","assign");return X.spaced=!0,this.emit("@","@"),this.emit(",",","),2+F.length+1}let Q=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec($);if(Q){let F=Q[1],X=Q[2],D=F.split("."),J=()=>{this.emit("IDENTIFIER",D[0]);for(let G=1;G<D.length;G++)this.emit(".","."),this.emit("PROPERTY",D[G])};J(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),J(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+F.length+X.length+1}}else if(U==="*"&&W?.[0]==="EXPORT")Z="EXPORT_ALL";else if(n1.has(U))Z="MATH";else if(a1.has(U))Z="COMPARE";else if(B1.has(U))Z="COMPOUND_ASSIGN";else if(r1.has(U))Z="UNARY_MATH";else if(o1.has(U))Z="SHIFT";else if(U==="?"&&W?.spaced)Z="SPACE?";else if(U==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))Z="?.";else if(W){if(U==="("&&!W.spaced&&o.has(W[0])){if(W[0]==="?.")W[0]="ES6_OPTIONAL_CALL";Z="CALL_START"}if(U==="["&&!W.spaced&&S1.has(W[0])){if(Z="INDEX_START",W[0]==="?.")W[0]="ES6_OPTIONAL_INDEX"}}if(U==="("||U==="{"||U==="[")this.ends.push({tag:l1[U],origin:[Z,U]});else if(U===")"||U==="}"||U==="]")this.pair(U);return this.emit(Z,U,{len:U.length}),U.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let A=this.tokens.length-1,U=[];this.tokens[A][0]="PARAM_END";while(A-- >0){let Z=this.tokens[A];if(Z[0]===")")U.push(Z);else if(Z[0]==="("||Z[0]==="CALL_START")if(U.length)U.pop();else if(Z[0]==="(")return Z[0]="PARAM_START",this.tagDoIife(A-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(A){let U=this.tokens[A??this.tokens.length-1];if(U?.[0]==="DO")U[0]="DO_IIFE"}rewrite(A){return this.tokens=A,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let A=0;while(this.tokens[A]?.[0]==="TERMINATOR")A++;if(A>0)this.tokens.splice(0,A)}closeOpenCalls(){this.scanTokens((A,U)=>{if(A[0]==="CALL_START")this.detectEnd(U+1,(Z)=>Z[0]===")"||Z[0]==="CALL_END",(Z)=>Z[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((A,U)=>{if(A[0]==="INDEX_START")this.detectEnd(U+1,(Z)=>Z[0]==="]"||Z[0]==="INDEX_END",(Z,W)=>{if(this.tokens[W+1]?.[0]===":")A[0]="[",Z[0]="]";else Z[0]="INDEX_END"});return 1})}normalizeLines(){let A=null,U=null,Z=null,W=(Y,Q)=>{return Y[1]!==";"&&d1.has(Y[0])&&!(Y[0]==="TERMINATOR"&&_1.has(this.tokens[Q+1]?.[0]))&&!(Y[0]==="ELSE"&&A!=="THEN")||Y[0]==="INDENT"&&!Y.generated&&(A==="->"||A==="=>")||Y[0]===","&&(A==="->"||A==="=>")&&!this.commaInImplicitCall(Q)&&!this.commaInImplicitObject(Q)||w1.has(Y[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},$=(Y,Q)=>{let F=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(F,0,Z)};this.scanTokens((Y,Q,F)=>{let[X]=Y;if(X==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return F.splice(Q,1,...this.makeIndentation()),1;if(_1.has(this.tokens[Q+1]?.[0]))return F.splice(Q,1),0}if(X==="CATCH")for(let D=1;D<=2;D++){let J=this.tokens[Q+D]?.[0];if(J==="OUTDENT"||J==="TERMINATOR"||J==="FINALLY")return F.splice(Q+D,0,...this.makeIndentation()),2+D}if((X==="->"||X==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[U,Z]=this.makeIndentation(),F.splice(Q+1,0,U,Z),1;if(P1.has(X)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(X==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(A=X,[U,Z]=this.makeIndentation(),X==="THEN")U.fromThen=!0;if(F.splice(Q+1,0,U),this.detectEnd(Q+2,W,$),X==="THEN")F.splice(Q,1);return 1}return 1})}tagPostfixConditionals(){let A=null,U=(W,$)=>{return W[0]==="TERMINATOR"||W[0]==="INDENT"&&!P1.has(this.tokens[$-1]?.[0])},Z=(W)=>{if(W[0]!=="INDENT"||W.generated&&!W.fromThen)A[0]="POST_"+A[0]};this.scanTokens((W,$)=>{if(W[0]!=="IF"&&W[0]!=="UNLESS")return 1;return A=W,this.detectEnd($+1,U,Z),1})}addImplicitBracesAndParens(){let A=[],U=!1;this.scanTokens((Z,W,$)=>{let[Y]=Z,Q=$[W-1]||[],F=$[W+1]||[],[X]=Q,[D]=F,J=W,z=(O)=>W-J+O,G=()=>A[A.length-1],K=(O)=>O?.[2]?.ours,R=()=>K(G())&&G()?.[0]==="(",H=()=>K(G())&&G()?.[0]==="{",q=(O)=>{A.push(["(",O,{ours:!0}]),$.splice(O,0,y("CALL_START","("))},M=()=>{A.pop(),$.splice(W,0,y("CALL_END",")")),W+=1},w=(O,B={})=>{A.push(["{",O,{sameLine:!0,startsLine:B.startsLine??!0,ours:!0}]);let N=y("{","{");if(!N.data)N.data={};N.data.generated=!0,$.splice(O,0,N)},I=(O)=>{O=O??W,A.pop(),$.splice(O,0,y("}","}")),W+=1};if((R()||H())&&p1.has(Y))return A.push(["CONTROL",W,{ours:!0}]),z(1);if(Y==="INDENT"&&K(G())){if(X!=="=>"&&X!=="->"&&X!=="["&&X!=="("&&X!==","&&X!=="{"&&X!=="ELSE"&&X!=="=")while(R()||H()&&X!==":")if(R())M();else I();if(G()?.[2]?.ours&&G()[0]==="CONTROL")A.pop();return A.push([Y,W]),z(1)}if(x.has(Y))return A.push([Y,W]),z(1);if(g.has(Y)){while(K(G()))if(R())M();else if(H())I();else A.pop();A.pop()}if(U1.has(Y)&&Z.spaced&&(a.has(D)||D==="..."&&a.has($[W+2]?.[0])||c1.has(D)&&!F.spaced&&!F.newLine)&&!((Y==="]"||Y==="}")&&(D==="->"||D==="=>")))return q(W+1),z(2);if(U1.has(Y)&&this.tokens[W+1]?.[0]==="INDENT"&&this.looksObjectish(W+2)&&!this.findTagsBackwards(W,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return q(W+1),A.push(["INDENT",W+2]),z(3);if(Y==="SPACE?")U=!0;if(Y===":"){if(U)return U=!1,z(1);let O=g.has(this.tokens[W-1]?.[0])?A[A.length-1]?.[1]??W-1:W-1;if(this.tokens[W-2]?.[0]==="@")O=W-2;let B=O<=0||d.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(G()){let[N,T]=G(),S=A[A.length-2];if((N==="{"||N==="INDENT"&&S?.[0]==="{"&&!K(S))&&(B||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return z(1)}return w(O,{startsLine:!!B}),z(2)}if(d.has(Y))for(let O=A.length-1;O>=0;O--){if(!K(A[O]))break;if(A[O][0]==="{")A[O][2].sameLine=!1}let _=X==="OUTDENT"||Q.newLine,E=Y==="||"||Y==="&&",P=!1;if(E){let O=W+1,B=$[O]?.[0];if(B==="("||B==="["||B==="{"){for(let N=1;++O<$.length&&N>0;)if(B=$[O][0],B==="("||B==="["||B==="{")N++;else if(B===")"||B==="]"||B==="}")N--}else if(B&&B!=="TERMINATOR"&&B!=="OUTDENT"&&B!==",")O++;P=$[O]?.[0]===","}if(k1.has(Y)&&!P||w1.has(Y)&&_)while(K(G())){let[O,,{sameLine:B,startsLine:N}]=G();if(R()&&X!==",")M();else if(H()&&!E&&B&&Y!=="TERMINATOR"&&X!==":")I();else if(H()&&Y==="TERMINATOR"&&X!==","&&!(N&&this.looksObjectish(W+1)))I();else if(G()?.[2]?.ours&&G()[0]==="CONTROL"&&$[G()[1]]?.[0]==="CLASS"&&Y==="TERMINATOR")A.pop();else break}if(Y===","&&!this.looksObjectish(W+1)&&H()&&(D!=="TERMINATOR"||!this.looksObjectish(W+2))){let O=D==="OUTDENT"?1:0;while(H())I(W+O)}return z(1)})}addImplicitCallCommas(){let A=0,U=0,Z=this.tokens;while(U<Z.length){let W=Z[U][0],$=U>0?Z[U-1][0]:null;if(W==="CALL_START"||W==="(")A++;if(W==="CALL_END"||W===")")A--;if(A>0&&(W==="->"||W==="=>")&&m1.has($))Z.splice(U,0,y(",",",")),U++;U++}}scanTokens(A){let U=0;while(U<this.tokens.length)U+=A.call(this,this.tokens[U],U,this.tokens)}detectEnd(A,U,Z,W={}){let $=0;while(A<this.tokens.length){let Y=this.tokens[A];if($===0&&U.call(this,Y,A))return Z.call(this,Y,A);if(x.has(Y[0]))$++;if(g.has(Y[0]))$--;if($<0){if(W.returnOnNegativeLevel)return;return Z.call(this,Y,A)}A++}}closeMergeAssignments(){let A=this.tokens;for(let U=0;U<A.length;U++){if(!A[U].mergeClose)continue;let Z=0;for(let W=U+1;W<A.length;W++){let $=A[W][0];if($==="("||$==="["||$==="{"||$==="CALL_START"||$==="INDEX_START"||$==="INDENT")Z++;if($===")"||$==="]"||$==="}"||$==="CALL_END"||$==="INDEX_END"||$==="OUTDENT")Z--;if(Z<0||Z===0&&$==="TERMINATOR"){A.splice(W,0,y("CALL_END",")",A[W-1]));break}if(W===A.length-1){A.splice(W+1,0,y("CALL_END",")",A[W]));break}}}}commaInImplicitCall(A){let U=0;for(let Z=A-1;Z>=0;Z--){let W=this.tokens[Z][0];if(g.has(W)){U++;continue}if(x.has(W)){if(W==="INDENT")return!1;if(U--,U<0)return!1;continue}if(U>0)continue;if(U1.has(W)&&this.tokens[Z].spaced){let $=this.tokens[Z+1]?.[0];return a.has($)||$==="..."&&a.has(this.tokens[Z+2]?.[0])}}return!1}commaInImplicitObject(A){let U=0;for(let Z=A-1;Z>=0;Z--){let W=this.tokens[Z][0];if(g.has(W)){U++;continue}if(x.has(W)){if(U--,U<0)return!1;continue}if(U>0)continue;if(W===":"&&Z>0&&this.tokens[Z-1][0]==="PROPERTY")return this.looksObjectish(A+1);if(d.has(W))return!1}return!1}looksObjectish(A){if(!this.tokens[A])return!1;if(this.tokens[A]?.[0]==="@"&&this.tokens[A+2]?.[0]===":")return!0;if(this.tokens[A+1]?.[0]===":")return!0;if(x.has(this.tokens[A]?.[0])){let U=null;if(this.detectEnd(A+1,(Z)=>g.has(Z[0]),(Z,W)=>U=W),U&&this.tokens[U+1]?.[0]===":")return!0}return!1}findTagsBackwards(A,U){let Z=new Set(U),W=[];while(A>=0){let $=this.tokens[A]?.[0];if(!W.length&&Z.has($))return!0;if(g.has($))W.push($);if(x.has($)&&W.length)W.pop();if(!W.length&&(x.has($)&&!this.tokens[A]?.generated||d.has($)))break;A--}return!1}makeIndentation(A){let U=y("INDENT",2),Z=y("OUTDENT",2);if(A)U.generated=Z.generated=!0,U.origin=Z.origin=A;else U.explicit=Z.explicit=!0;return[U,Z]}}G1(c);var O2={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,ReactAssign: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,REACT_ASSIGN: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,"--":195,"++":196,MATH:197,"**":198,SHIFT:199,COMPARE:200,"&":201,"^":202,"|":203,"||":204,"??":205,"&&":206,"!?":207,PIPE:208,RELATION:209,"SPACE?":210,COMPOUND_ASSIGN:211},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:"REACT_ASSIGN",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:"--",196:"++",197:"MATH",198:"**",199:"SHIFT",200:"COMPARE",201:"&",202:"^",203:"|",204:"||",205:"??",206:"&&",207:"!?",208:"PIPE",209:"RELATION",210:"SPACE?",211:"COMPOUND_ASSIGN"},parseTable:(()=>{let A=[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,2,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,4,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,54,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,132,105,106,-13,-13,-13,-13,135,136,137,-13,138,-13,-13,-13,-13,-13,-13,-13,133,-13,139,-13,-13,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,140,141,142,-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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,143,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,148,-173,-173,149,150,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,2,1,159,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,160,102,103,158,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,2,1,161,162,163,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,2,1,164,165,163,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,2,1,166,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,172,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,173,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,174,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,175,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,176,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,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,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,180,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,60,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,-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,181,182,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,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,2,1,185,184,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,186,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,187,-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,4,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,160,188,2,66,10,160,189,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,193,152,104,154,155,153,99,190,191,83,156,195,192,194,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,2,1,196,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,197,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,160,-304,102,103,-304,198,200,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,167,-304,168,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,199,171,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,201,2,66,10,160,202,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,2,1,203,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,204,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,205,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,206,-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,167,-224,168,90,91,86,88,89,82,-224,69,64,65,207,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,169,170,171,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,208,104,2,55,1,209,104,6,15,19,89,2,1,1,211,210,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,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,212,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,213,-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,167,-221,168,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,169,170,171,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,214,218,104,105,106,217,215,216,219,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,177,178,226,227,228,229,221,222,223,224,232,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,225,104,105,106,102,103,53,233,72,73,93,220,83,87,84,85,66,167,168,90,91,86,88,89,82,61,67,62,230,231,171,57,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,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,57,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,52,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,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,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,2,1,234,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,235,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,2,1,236,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,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,249,250,248,139,2,109,11,251,139,52,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,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,54,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,252,253,-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,254,1,83,255,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,2,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,2,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,256,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,257,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,258,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,259,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,261,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,260,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,262,-109,263,268,272,264,265,266,273,52,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,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,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,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,52,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,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,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,177,178,179,34,35,36,274,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,233,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,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,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,-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,55,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,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,6,54,5,1,1,2,1,278,105,106,275,276,277,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,2,1,-5,279,-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,2,1,280,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,281,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,282,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,283,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,284,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,285,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,286,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,287,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,288,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,291,163,289,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,290,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,294,163,292,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,293,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,297,163,295,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,296,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,298,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,299,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,300,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,301,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,302,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,303,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,14,39,16,1,24,1,1,7,4,5,5,2,24,37,2,307,152,104,154,155,153,99,304,305,83,156,195,306,194,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,308,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,309,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,53,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,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,53,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,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,2,109,11,310,139,2,57,1,311,253,2,57,1,312,253,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,2,1,313,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,318,77,78,79,80,81,100,101,92,104,105,106,314,102,103,316,53,52,72,73,93,315,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,85,321,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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,322,42,43,90,91,246,323,86,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,327,253,2,57,1,328,253,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,2,1,329,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,330,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,332,331,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,333,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,335,334,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,336,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,338,337,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,339,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,341,340,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,342,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,344,343,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,345,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,347,348,-217,-217,-217,346,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,349,-178,-178,15,6,49,1,10,1,5,8,1,1,7,14,2,17,2,5,-181,152,104,-181,-181,-181,154,155,153,99,157,156,-181,-181,350,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,252,253,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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,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,52,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,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,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,2,1,352,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,351,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,32,18,16,-367,-367,-367,-367,-367,-367,-367,-367,-367,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,32,18,16,-368,-368,-368,-368,-368,-368,-368,-368,-368,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,353,-173,-173,149,150,2,66,10,160,158,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,164,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,5,15,108,2,1,1,211,167,168,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,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,4,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,-376,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,2,81,8,354,99,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-86,-86,-378,-378,-378,-378,-86,-86,-86,-86,-86,-86,-86,-86,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,10,54,5,1,23,1,1,3,21,11,11,132,105,106,135,136,137,138,133,139,134,3,83,1,1,140,141,142,52,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,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,57,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-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,25,1,4,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,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,2,1,357,355,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,356,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,358,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,359,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,10,68,160,360,361,46,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,94,69,2,2,366,365,367,368,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,369,157,156,195,194,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,370,157,156,195,194,3,66,10,88,160,371,372,5,72,22,69,2,2,373,-302,-302,-302,-302,6,72,1,21,69,2,2,-300,374,-300,-300,-300,-300,23,66,26,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,379,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,59,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,160,-308,-308,-86,-86,-86,380,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,2,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,387,99,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,389,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,10,44,160,391,390,2,66,10,160,392,9,1,5,59,1,1,5,32,18,16,-369,-369,-369,-369,-369,-369,-369,-369,-369,52,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,3,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,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,393,99,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,30,83,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,10,8,6,3,1,1,1,1,2,1,76,3,2,-109,267,100,101,408,104,270,253,105,106,407,-109,-109,271,262,404,263,268,272,264,265,266,273,409,405,406,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,411,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,142,413,56,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,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,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,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,20,12,2,11,1,4,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,320,416,319,-199,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,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,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,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,417,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,6,11,3,11,1,1,1,2,2,9,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,32,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,424,241,244,240,66,42,43,90,91,246,86,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,2,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,2,1,-202,426,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,2,57,1,427,253,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,2,1,428,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,2,57,1,430,253,2,57,1,431,253,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,432,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,433,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,160,-264,-264,436,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,19,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,18,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,441,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,57,1,45,252,253,442,6,6,60,1,5,19,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,24,-110,-110,-110,-110,-110,11,6,60,1,5,1,10,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,10,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,10,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,24,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,23,1,7,13,3,2,1,2,24,3,446,448,447,269,104,270,253,445,271,99,443,87,444,449,450,86,82,53,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,278,105,106,452,453,277,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,2,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,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,125,126,-382,-382,-382,-382,-382,-382,-382,-382,110,111,-382,-382,-382,-382,-382,-382,118,-382,120,-382,-382,-382,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,-384,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,-385,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,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,109,108,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,109,108,110,111,112,-387,-387,-387,-387,-387,118,-387,120,-387,122,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,112,113,-388,-388,-388,-388,118,-388,120,-388,122,-388,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,113,114,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,114,115,-390,-390,118,-390,120,-390,122,-390,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,119,120,-398,122,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,126,96,97,-399,-399,-399,-399,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,4,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,44,1,5,59,1,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,4,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,125,126,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,-397,118,-397,120,-397,122,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,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,4,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,117,118,119,120,-401,122,-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,25,1,4,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,-402,-402,-402,-402,-402,118,-402,120,-402,-402,-402,23,91,1,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,460,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,463,157,156,195,194,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,464,157,156,195,194,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,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,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,26,86,6,14,11,1,30,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,320,467,319,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,2,1,468,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,86,470,1,86,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,3,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,472,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,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,2,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,2,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,2,1,474,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,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,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,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,50,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,1,2,2,5,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,20,12,18,26,1,9,1,1,32,1,4,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,23,86,6,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,480,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,481,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,482,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,483,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,484,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,485,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,4,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,2,1,486,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,487,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,488,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,489,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,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,152,104,-218,-218,154,155,153,99,-218,157,-218,156,151,-218,491,150,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,2,1,494,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,50,2,-180,-180,-180,-180,-180,-180,55,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,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,2,6,61,107,495,9,6,60,1,5,23,1,8,18,2,-217,-217,-217,347,348,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,498,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,499,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,500,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,4,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,2,1,501,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,502,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,10,160,503,6,55,1,10,10,5,8,504,104,160,506,505,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,2,1,507,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,508,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,509,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,510,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,94,511,1,165,512,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,513,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,55,1,24,1,1,7,14,2,24,39,152,104,154,155,153,99,157,156,195,514,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,515,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,155,1,1,516,377,378,4,67,78,11,1,517,518,519,378,3,67,78,12,-251,-251,-251,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,521,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,520,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,160,-306,-306,522,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,523,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,2,6,61,525,524,2,6,61,-314,-314,24,6,61,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,526,1,67,527,44,1,5,59,1,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,4,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,152,104,-173,-173,-173,154,155,153,99,157,156,151,528,-173,-173,149,150,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,1,67,529,3,54,5,1,530,105,106,3,89,89,5,532,531,219,3,54,5,1,533,105,106,1,142,534,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,535,-217,-217,-217,5,6,60,1,5,24,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,537,399,402,6,6,60,1,5,24,85,-333,-333,-333,-333,-333,538,6,6,60,1,5,24,85,-335,-335,-335,-335,-335,539,2,55,1,540,104,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,541,-339,-339,-339,-339,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,542,-217,-217,-217,5,6,60,1,5,24,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,545,104,407,409,544,406,12,6,60,1,5,1,10,1,1,6,5,24,61,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,546,6,6,60,1,5,24,85,-365,-365,-365,-365,-365,547,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,2,1,549,548,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,550,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,81,8,551,99,3,54,5,1,552,105,106,52,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,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,2,6,61,107,553,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,554,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,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,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,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,2,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,32,-151,-151,-151,-151,-151,2,66,38,556,555,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,2,1,-218,326,245,163,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,243,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,558,557,244,240,66,-218,42,43,90,91,246,86,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,559,-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,2,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,560,-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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,87,247,84,85,419,418,66,42,43,90,91,246,86,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,4,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,52,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,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,23,86,6,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,561,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,2,1,562,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,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,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,52,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,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,4,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,563,-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,2,1,564,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,565,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,566,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,567,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,30,569,570,568,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,267,100,101,269,104,270,253,105,106,-218,-218,271,572,-218,571,272,264,265,-218,266,273,-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,2,1,573,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,574,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,92,12,44,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,575,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,2,1,576,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,6,60,1,5,11,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,577,139,10,6,60,1,5,11,1,1,11,13,11,-128,-128,-128,-128,579,580,581,-128,578,139,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,249,250,582,139,2,109,11,583,139,52,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,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,55,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,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,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,584,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,2,1,585,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,2,1,586,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,66,587,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,588,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,589,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,590,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,591,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,594,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,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,2,1,595,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,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,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,26,67,25,14,11,1,30,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,596,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,597,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,24,67,19,6,56,1,9,1,1,32,1,4,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,2,1,598,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,86,6,56,1,9,1,1,32,1,4,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,2,1,600,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,-218,326,245,163,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,247,84,85,604,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,605,-217,-217,-217,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,23,67,25,56,1,9,1,1,32,1,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,4,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,23,67,25,56,1,9,1,1,32,1,4,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,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,2,1,612,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,160,102,103,611,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,152,104,154,155,153,99,157,156,151,613,150,18,6,49,1,10,1,5,8,1,1,7,14,2,1,15,1,2,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,614,-173,-173,149,150,28,6,60,1,5,20,30,2,24,1,9,1,1,32,1,4,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,55,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,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,3,125,1,1,615,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,4,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,616,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,4,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,617,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,160,618,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,10,160,619,2,66,10,160,620,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,26,66,10,16,5,51,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,621,127,622,124,125,126,96,97,623,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,624,127,625,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,626,127,627,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,628,127,629,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,2,1,630,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,631,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,632,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,94,69,2,2,-303,-303,-303,-303,27,72,20,2,54,1,9,1,1,3,2,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,633,634,519,378,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,2,66,10,160,635,3,67,78,12,-252,-252,-252,3,66,6,4,160,637,636,24,66,6,20,56,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,45,1,5,59,1,1,5,4,10,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,160,-310,-310,638,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,2,1,-316,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-316,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,639,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,4,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,4,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,347,348,-217,-217,640,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,641,6,55,1,10,113,1,2,401,104,400,642,399,402,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,54,5,1,643,105,106,3,6,60,30,645,646,644,10,6,49,1,10,1,29,8,18,58,2,-218,401,104,-218,-218,-218,-218,-218,647,402,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,648,-217,-217,-217,2,55,1,649,104,2,55,1,650,104,1,142,-338,3,54,5,1,651,105,106,3,6,60,30,653,654,652,10,6,49,1,10,1,29,8,18,60,5,-218,545,104,-218,-218,-218,-218,-218,409,655,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,656,-217,-217,-217,6,6,60,1,5,24,85,-362,-362,-362,-362,-362,546,3,55,1,126,657,104,658,2,55,1,659,104,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,660,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,661,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,662,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,1,138,663,23,92,12,44,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,664,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,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,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,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,2,1,326,245,163,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,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,665,241,244,240,66,42,43,90,91,246,86,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,-153,87,247,84,85,419,418,66,42,43,90,91,246,86,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,2,1,326,245,163,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,243,53,52,72,73,93,99,59,83,87,247,84,85,425,666,244,240,66,42,43,90,91,246,86,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,556,667,52,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,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,668,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,160,669,44,1,5,59,1,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,670,-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,2,1,671,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,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,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,17,45,8,1,1,1,1,1,1,1,22,8,10,1,1,1,2,1,267,100,101,269,104,270,253,105,106,271,572,672,272,264,265,266,273,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,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,572,-109,673,268,272,264,265,266,273,5,6,60,1,5,24,-111,-111,-111,-111,-111,6,6,60,1,5,19,5,-114,-114,-114,-114,674,-114,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,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,2,1,675,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,676,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,677,253,2,57,1,678,253,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,2,1,679,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,680,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,681,44,1,5,59,1,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,4,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,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,2,1,682,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,683,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,684,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,685,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,686,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,687,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,688,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,689,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,19,6,56,1,9,1,1,32,1,4,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,690,1,86,691,23,86,6,56,1,9,1,1,32,1,4,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,692,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,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,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,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,2,1,326,245,163,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,247,84,85,693,66,42,43,90,91,246,86,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,2,1,326,245,163,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,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,694,86,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,695,1,86,696,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,4,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,4,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,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,52,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,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,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,347,697,-217,-217,-217,2,66,10,160,611,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,698,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,699,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,700,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,701,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,702,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,25,66,10,16,5,51,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,703,127,704,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,705,127,706,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,66,10,160,707,1,67,708,4,6,61,78,12,709,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,710,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,10,160,711,3,54,5,1,712,105,106,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,713,-217,-217,-217,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,1,142,714,4,55,1,124,2,401,104,715,402,6,55,1,10,113,1,2,401,104,400,716,399,402,5,6,60,1,5,24,-329,-329,-329,-329,-329,3,6,60,1,645,646,717,5,6,60,1,5,24,-334,-334,-334,-334,-334,5,6,60,1,5,24,-336,-336,-336,-336,-336,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,14,1,5,59,1,1,5,32,18,16,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,718,-340,-340,-340,-340,4,55,1,126,5,545,104,409,719,6,55,1,10,116,3,2,545,104,407,409,720,406,5,6,60,1,5,24,-358,-358,-358,-358,-358,3,6,60,1,653,654,721,5,6,60,1,5,24,-363,-363,-363,-363,-363,5,6,60,1,5,24,-364,-364,-364,-364,-364,5,6,60,1,5,24,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,20,12,18,16,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,722,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,52,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,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,52,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,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,9,6,60,1,5,23,1,8,9,9,-217,-217,-217,421,422,-217,-217,723,-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,724,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,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,307,152,104,154,155,153,99,725,726,83,156,195,306,194,23,67,25,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,727,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,24,-112,-112,-112,-112,-112,8,6,60,1,5,23,1,8,18,-217,-217,-217,439,728,-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,2,1,729,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,567,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,67,25,56,1,9,1,1,32,1,4,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,731,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,732,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,65,733,23,67,25,56,1,9,1,1,32,1,4,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,3,1,8,4,1,1,1,1,1,2,1,735,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,736,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,737,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,738,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,739,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,740,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,741,-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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,1,86,742,5,6,60,1,5,50,-196,-196,-196,-196,-196,8,6,60,1,5,23,1,8,18,-217,-217,-217,477,743,-217,-217,-217,5,6,60,1,5,50,-197,-197,-197,-197,-197,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,3,6,60,1,492,493,744,25,66,10,16,56,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,745,127,124,125,126,96,97,746,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,747,127,748,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,750,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,751,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,752,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,753,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,754,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,3,67,78,12,-254,-254,-254,24,66,6,20,56,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,30,645,646,755,3,54,5,1,756,105,106,5,6,60,1,5,24,-330,-330,-330,-330,-330,8,6,60,1,5,23,1,8,18,-217,-217,-217,536,757,-217,-217,-217,5,6,60,1,5,24,-331,-331,-331,-331,-331,3,54,5,1,758,105,106,5,6,60,1,5,24,-359,-359,-359,-359,-359,8,6,60,1,5,23,1,8,18,-217,-217,-217,543,759,-217,-217,-217,5,6,60,1,5,24,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,556,760,52,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,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,4,94,69,2,2,761,459,461,462,11,55,1,24,1,1,7,4,10,2,24,39,152,104,154,155,153,99,762,157,156,195,194,5,6,60,1,5,24,-117,-117,-117,-117,-117,3,6,60,1,569,570,763,27,6,60,1,5,20,4,52,1,9,1,1,32,1,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,764,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,4,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,765,-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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,766,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,767,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,768,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,22,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,3,6,60,1,602,603,769,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,4,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,2,1,770,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,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,2,1,771,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,772,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,773,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,142,774,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,3,6,60,1,645,646,775,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,6,60,1,653,654,776,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,2,1,777,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,94,778,5,6,60,1,5,24,-113,-113,-113,-113,-113,1,86,779,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,780,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,2,1,781,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,50,-198,-198,-198,-198,-198,24,66,10,16,56,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,782,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,783,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,54,5,1,784,105,106,5,6,60,1,5,24,-332,-332,-332,-332,-332,5,6,60,1,5,24,-361,-361,-361,-361,-361,45,1,5,59,1,1,5,14,5,1,2,1,1,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,787,-288,-288,-288,-288,785,-288,786,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,788,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,43,1,5,59,1,1,5,14,5,1,2,2,1,7,2,12,4,2,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,13,1,5,59,1,1,5,32,18,16,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,1,96,789,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,790,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,787,-290,-290,-290,-290,791,-290,792,-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,57,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,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,787,-289,-289,-289,-289,793,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,96,794,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,7,3,11,2,3,2,9,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,795,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,96,796,57,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,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,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,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,787,-291,-291,-291,-291,797,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,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,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,1,96,798,57,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,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],U=[],Z=0,W,$,Y,Q;while(Z<A.length){W=A[Z++],$={},Y=0,Q=[];while(W--)Y+=A[Z++],Q.push(Y);for(Y of Q)$[Y]=A[Z++];U.push($)}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,5,21,2,21,3,21,4,36,1,36,1,36,1,79,1,79,1,79,3,79,3,79,4,79,6,79,4,79,6,79,4,79,5,79,7,79,3,79,3,79,4,79,6,81,10,81,12,81,11,81,13,81,4,99,0,99,1,99,3,99,4,99,6,100,1,100,1,100,3,100,5,100,3,100,5,102,1,102,1,102,1,90,1,90,3,90,4,90,1,101,2,101,2,107,1,107,1,107,1,107,1,107,1,107,2,107,2,107,2,107,2,107,3,107,3,107,4,107,6,80,2,80,3,80,4,112,1,112,3,112,4,112,4,112,6,114,1,114,2,113,1,113,2,111,1,111,2,116,1,116,2,117,1,117,1,39,5,87,3,87,2,87,2,87,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,121,0,121,1,121,3,121,4,121,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,109,2,109,4,132,1,132,3,132,4,132,4,132,6,115,1,115,1,115,1,115,1,133,1,133,3,42,1,42,1,82,2,43,3,43,4,43,6,44,3,44,3,76,2,76,3,38,3,38,5,95,0,95,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,93,1,93,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,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:(A,U,Z,W)=>{let $=U,Y=U.length-1;switch(A){case 1:return["program"];case 2:return["program",...$[Y]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 251:case 302:case 314:case 328:case 357:return[$[Y]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...$[Y-2],$[Y]];case 5:case 60:case 157:case 316:return $[Y-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365:return $[Y];case 47:return"undefined";case 48:return"null";case 57:return["str",...$[Y-1]];case 59:case 151:case 155:case 252:return[...$[Y-1],$[Y]];case 61:case 193:case 197:case 331:case 360:return $[Y-2];case 62:return"";case 65:return["regex",$[Y-1]];case 66:return["regex-index",$[Y-2],$[Y]];case 67:return["regex-index",$[Y],null];case 68:return["=",$[Y-2],$[Y]];case 69:return["=",$[Y-3],$[Y]];case 70:return["=",$[Y-4],$[Y-1]];case 71:return["state",$[Y-2],$[Y]];case 72:return["state",$[Y-3],$[Y]];case 73:return["state",$[Y-4],$[Y-1]];case 74:case 76:return["computed",$[Y-2],$[Y]];case 75:return["computed",$[Y-3],$[Y]];case 77:return["readonly",$[Y-2],$[Y]];case 78:return["readonly",$[Y-3],$[Y]];case 79:return["readonly",$[Y-4],$[Y-1]];case 80:return["effect",$[Y-2],$[Y]];case 81:return["effect",$[Y-3],$[Y]];case 82:return["effect",$[Y-4],$[Y-1]];case 83:case 84:return["effect",null,$[Y]];case 85:return["effect",null,$[Y-1]];case 91:case 100:case 138:return[".",$[Y-2],$[Y]];case 92:case 101:case 139:return["?.",$[Y-2],$[Y]];case 93:case 95:case 102:case 140:return["[]",$[Y-3],$[Y-1]];case 94:case 96:case 103:case 141:return["[]",$[Y-5],$[Y-2]];case 97:return[$[Y-1][0],$[Y-3],...$[Y-1].slice(1)];case 98:return["optindex",$[Y-4],$[Y-1]];case 99:return["optindex",$[Y-6],$[Y-2]];case 104:return["object-comprehension",$[Y-8],$[Y-6],[["for-of",$[Y-4],$[Y-2],!1]],[]];case 105:return["object-comprehension",$[Y-10],$[Y-8],[["for-of",$[Y-6],$[Y-4],!1]],[$[Y-2]]];case 106:return["object-comprehension",$[Y-9],$[Y-7],[["for-of",$[Y-4],$[Y-2],!0]],[]];case 107:return["object-comprehension",$[Y-11],$[Y-9],[["for-of",$[Y-6],$[Y-4],!0]],[$[Y-2]]];case 108:return["object",...$[Y-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 330:case 359:return[...$[Y-3],$[Y]];case 113:case 177:case 198:case 332:case 361:return[...$[Y-5],...$[Y-2]];case 114:return[$[Y],$[Y],null];case 116:return[$[Y-2],$[Y],":"];case 117:return[$[Y-4],$[Y-1],":"];case 118:return[$[Y-2],$[Y],"="];case 119:return[$[Y-4],$[Y-1],"="];case 124:return["dynamicKey",$[Y-1]];case 125:return["[]","this",$[Y-1]];case 127:case 128:case 186:return["...",$[Y]];case 134:case 190:return["super",...$[Y]];case 135:case 136:case 137:case 188:case 191:return[$[Y-1],...$[Y]];case 142:return["array"];case 143:return["array",...$[Y-1]];case 144:return["array",...$[Y-2],...$[Y-1]];case 146:return[...$[Y-2],...$[Y]];case 147:return[...$[Y-3],...$[Y]];case 148:return[...$[Y-2],...$[Y-1]];case 149:return[...$[Y-5],...$[Y-4],...$[Y-2],...$[Y-1]];case 153:return[...$[Y]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[$[Y-2],$[Y-3],$[Y-1]];case 161:case 384:case 386:case 387:case 402:case 404:return[$[Y-1],$[Y-2],$[Y]];case 162:return[$[Y],$[Y-1],null];case 163:return[$[Y-1],null,$[Y]];case 164:return[$[Y],null,null];case 165:return["def",$[Y-4],$[Y-2],$[Y]];case 166:return["def",$[Y-1],[],$[Y]];case 167:case 169:return[$[Y-1],$[Y-3],$[Y]];case 168:case 170:return[$[Y-1],[],$[Y]];case 179:case 301:return["default",$[Y-2],$[Y]];case 180:return["rest",$[Y]];case 181:return["expansion"];case 187:return["tagged-template",$[Y-1],$[Y]];case 189:return["optcall",$[Y-2],...$[Y]];case 205:case 206:return"this";case 207:return[".","this",$[Y]];case 208:return[".","super",$[Y]];case 209:return["[]","super",$[Y-1]];case 210:return["[]","super",$[Y-2]];case 211:return[".","new",$[Y]];case 212:return[".","import",$[Y]];case 213:return["block"];case 214:return["block",...$[Y-1]];case 215:return $[Y-1].length===1?$[Y-1][0]:["block",...$[Y-1]];case 216:return $[Y-2].length===1?$[Y-2][0]:["block",...$[Y-2]];case 219:return["return",$[Y]];case 220:return["return",$[Y-1]];case 221:return["return"];case 222:return["throw",$[Y]];case 223:return["throw",$[Y-1]];case 224:return["yield"];case 225:return["yield",$[Y]];case 226:return["yield",$[Y-1]];case 227:return["yield-from",$[Y]];case 228:return["if",$[Y-1],$[Y]];case 229:return $[Y-4].length===3?["if",$[Y-4][1],$[Y-4][2],["if",$[Y-1],$[Y]]]:[...$[Y-4],["if",$[Y-1],$[Y]]];case 230:return["if",["!",$[Y-1]],$[Y]];case 231:return["if",["!",$[Y-3]],$[Y-2],$[Y]];case 233:return $[Y-2].length===3?["if",$[Y-2][1],$[Y-2][2],$[Y]]:[...$[Y-2],$[Y]];case 235:case 236:return["if",$[Y],[$[Y-2]]];case 237:return["?:",$[Y-4],$[Y-6],$[Y-1]];case 238:case 239:return["if",["!",$[Y]],[$[Y-2]]];case 240:return["try",$[Y]];case 241:return["try",$[Y-1],$[Y]];case 242:return["try",$[Y-2],$[Y]];case 243:return["try",$[Y-3],$[Y-2],$[Y]];case 244:case 245:case 367:case 370:case 372:return[$[Y-1],$[Y]];case 246:return[null,$[Y]];case 247:return["switch",$[Y-3],$[Y-1],null];case 248:return["switch",$[Y-5],$[Y-3],$[Y-1]];case 249:return["switch",null,$[Y-1],null];case 250:return["switch",null,$[Y-3],$[Y-1]];case 253:return["when",$[Y-1],$[Y]];case 254:return["when",$[Y-2],$[Y-1]];case 255:return["while",$[Y]];case 256:return["while",$[Y-2],$[Y]];case 257:return["while",["!",$[Y]]];case 258:return["while",["!",$[Y-2]],$[Y]];case 259:return $[Y-1].length===2?[$[Y-1][0],$[Y-1][1],$[Y]]:[$[Y-1][0],$[Y-1][1],$[Y-1][2],$[Y]];case 260:case 261:return $[Y].length===2?[$[Y][0],$[Y][1],[$[Y-1]]]:[$[Y][0],$[Y][1],$[Y][2],[$[Y-1]]];case 263:return["loop",$[Y]];case 264:return["loop",[$[Y]]];case 265:return["loop-n",$[Y-1],$[Y]];case 266:return["for-in",$[Y-3],$[Y-1],null,null,$[Y]];case 267:return["for-in",$[Y-5],$[Y-3],null,$[Y-1],$[Y]];case 268:return["for-in",$[Y-5],$[Y-3],$[Y-1],null,$[Y]];case 269:return["for-in",$[Y-7],$[Y-5],$[Y-1],$[Y-3],$[Y]];case 270:return["for-in",$[Y-7],$[Y-5],$[Y-3],$[Y-1],$[Y]];case 271:return["for-of",$[Y-3],$[Y-1],!1,null,$[Y]];case 272:return["for-of",$[Y-5],$[Y-3],!1,$[Y-1],$[Y]];case 273:return["for-of",$[Y-3],$[Y-1],!0,null,$[Y]];case 274:return["for-of",$[Y-5],$[Y-3],!0,$[Y-1],$[Y]];case 275:return["for-as",$[Y-3],$[Y-1],!1,null,$[Y]];case 276:return["for-as",$[Y-5],$[Y-3],!1,$[Y-1],$[Y]];case 277:case 279:return["for-as",$[Y-3],$[Y-1],!0,null,$[Y]];case 278:case 280:return["for-as",$[Y-5],$[Y-3],!0,$[Y-1],$[Y]];case 281:return["for-in",[],$[Y-1],null,null,$[Y]];case 282:return["for-in",[],$[Y-3],$[Y-1],null,$[Y]];case 283:return["comprehension",$[Y-4],[["for-in",$[Y-2],$[Y],null]],[]];case 284:return["comprehension",$[Y-6],[["for-in",$[Y-4],$[Y-2],null]],[$[Y]]];case 285:return["comprehension",$[Y-6],[["for-in",$[Y-4],$[Y-2],$[Y]]],[]];case 286:return["comprehension",$[Y-8],[["for-in",$[Y-6],$[Y-4],$[Y]]],[$[Y-2]]];case 287:return["comprehension",$[Y-8],[["for-in",$[Y-6],$[Y-4],$[Y-2]]],[$[Y]]];case 288:return["comprehension",$[Y-4],[["for-of",$[Y-2],$[Y],!1]],[]];case 289:return["comprehension",$[Y-6],[["for-of",$[Y-4],$[Y-2],!1]],[$[Y]]];case 290:return["comprehension",$[Y-5],[["for-of",$[Y-2],$[Y],!0]],[]];case 291:return["comprehension",$[Y-7],[["for-of",$[Y-4],$[Y-2],!0]],[$[Y]]];case 292:return["comprehension",$[Y-4],[["for-as",$[Y-2],$[Y],!1,null]],[]];case 293:return["comprehension",$[Y-6],[["for-as",$[Y-4],$[Y-2],!1,null]],[$[Y]]];case 294:return["comprehension",$[Y-5],[["for-as",$[Y-2],$[Y],!0,null]],[]];case 295:return["comprehension",$[Y-7],[["for-as",$[Y-4],$[Y-2],!0,null]],[$[Y]]];case 296:return["comprehension",$[Y-4],[["for-as",$[Y-2],$[Y],!0,null]],[]];case 297:return["comprehension",$[Y-6],[["for-as",$[Y-4],$[Y-2],!0,null]],[$[Y]]];case 298:return["comprehension",$[Y-2],[["for-in",[],$[Y],null]],[]];case 299:return["comprehension",$[Y-4],[["for-in",[],$[Y-2],$[Y]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[$[Y-2],$[Y]];case 304:return["class",null,null];case 305:return["class",null,null,$[Y]];case 306:return["class",null,$[Y]];case 307:return["class",null,$[Y-1],$[Y]];case 308:return["class",$[Y],null];case 309:return["class",$[Y-1],null,$[Y]];case 310:return["class",$[Y-2],$[Y]];case 311:return["class",$[Y-3],$[Y-1],$[Y]];case 312:return["enum",$[Y-1],$[Y]];case 313:return["component",null,["block",...$[Y-1]]];case 320:return["render",$[Y]];case 321:case 324:return["import","{}",$[Y]];case 322:case 323:return["import",$[Y-2],$[Y]];case 325:return["import",$[Y-4],$[Y]];case 326:return["import",[$[Y-4],$[Y-2]],$[Y]];case 327:return["import",[$[Y-7],$[Y-4]],$[Y]];case 338:return["*",$[Y]];case 339:return["export","{}"];case 340:return["export",$[Y-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",$[Y]];case 345:return["export",["=",$[Y-2],$[Y]]];case 346:return["export",["=",$[Y-3],$[Y]]];case 347:return["export",["=",$[Y-4],$[Y-1]]];case 352:return["export-default",$[Y]];case 353:return["export-default",$[Y-1]];case 354:return["export-all",$[Y]];case 355:return["export-from","{}",$[Y]];case 356:return["export-from",$[Y-4],$[Y]];case 368:case 369:case 371:case 407:return["do-iife",$[Y]];case 373:return["-",$[Y]];case 374:return["+",$[Y]];case 375:return["?",$[Y-1]];case 376:return["await",$[Y]];case 377:return["await",$[Y-1]];case 378:return["--",$[Y],!1];case 379:return["++",$[Y],!1];case 380:return["--",$[Y-1],!0];case 381:return["++",$[Y-1],!0];case 382:return["+",$[Y-2],$[Y]];case 383:return["-",$[Y-2],$[Y]];case 385:return["**",$[Y-2],$[Y]];case 388:return["&",$[Y-2],$[Y]];case 389:return["^",$[Y-2],$[Y]];case 390:return["|",$[Y-2],$[Y]];case 391:case 392:case 393:case 394:case 395:case 396:return["control",$[Y-1],$[Y-2],$[Y]];case 397:return["&&",$[Y-2],$[Y]];case 398:return["||",$[Y-2],$[Y]];case 399:return["??",$[Y-2],$[Y]];case 400:return["!?",$[Y-2],$[Y]];case 401:return["|>",$[Y-2],$[Y]];case 403:return["?:",$[Y-4],$[Y-2],$[Y]];case 405:return[$[Y-3],$[Y-4],$[Y-1]];case 406:return[$[Y-2],$[Y-3],$[Y]]}},parseError(A,U){let Z,W,$,Y,Q,F,X;if(U.recoverable)return this.trace(A);else throw $=(U.line||0)+1,Z=U.loc?.c||0,X=U.token?` (token: ${U.token})`:"",F=U.text?` near '${U.text}'`:"",Y=`line ${$}, column ${Z}`,Q=`Parse error at ${Y}${X}${F}: ${A}`,W=Error(Q),W.hash=U,W},parse(A){let U,Z,W,$,Y,Q,F,X,D,J,z,G,K,R,H,q,M,w,I,_,E,P,O,B,N,T;[_,T,J]=[[0],[null],[]],[K,N,O,P,q]=[this.parseTable,"",0,0,0],[Z,U]=[2,1],X=Object.create(this.lexer),w={ctx:{}};for(let S in this.ctx){if(!Object.hasOwn(this.ctx,S))continue;let f=this.ctx[S];w.ctx[S]=f}if(X.setInput(A,w.ctx),[w.ctx.lexer,w.ctx.parser]=[X,this],X.loc==null)X.loc={};B=X.loc,J.push(B),this.parseError=typeof w.ctx.parseError==="function"?w.ctx.parseError:Object.getPrototypeOf(this).parseError,F=()=>{let S;if(S=X.lex()||U,typeof S!=="number")S=this.symbolIds[S]||S;return S},E=R=I=W=H=G=Q=z=Y=null,M={};while(!0){if(I=_[_.length-1],E==null)E=F();if(W=K[I]?.[E],W==null){if($="",!q)Y=(()=>{let S=[];for(let f in K[I]){if(!Object.hasOwn(K[I],f))continue;if(this.tokenNames[f]&&f>Z)S.push(`'${this.tokenNames[f]}'`)}return S})();throw $=(()=>{if(X.showPosition)return`Parse error on line ${O+1}:
|
|
12
|
+
${X.showPosition()}
|
|
13
|
+
Expecting ${Y.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse error on line ${O+1}: Unexpected ${E===U?"end of input":`'${this.tokenNames[E]||E}'`}`,this.parseError($,{text:X.match,token:this.tokenNames[E]||E,line:X.line,loc:B,expected:Y})})(),Error($)}if(W>0)if(_.push(E,W),T.push(X.text),J.push(X.loc),E=null,!R){if([P,N,O,B]=[X.len,X.text,X.line,X.loc],q>0)q--}else[E,R]=[R,null];else if(W<0){if(Q=this.ruleTable[-W*2+1],M.$=T[T.length-Q],D=J[J.length-(Q||1)],M._$={r:D.r,c:D.c},H=this.ruleActions.call(M,-W,T,J,w.ctx),H!=null)M.$=H;if(Array.isArray(M.$))M.$.loc=M._$;if(Q)_.length-=Q*2,T.length-=Q,J.length-=Q;_.push(this.ruleTable[-W*2]),T.push(M.$),J.push(M._$),z=K[_[_.length-2]][_[_.length-1]],_.push(z)}else if(W===0)return T[T.length-1]}},trace(){},ctx:{}},_2=(A={})=>{let U=Object.create(O2);return Object.defineProperty(U,"ctx",{value:{...A},enumerable:!1,writable:!0,configurable:!0}),U},m=_2();var C2=m.parse.bind(m);var P2=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"]),w2=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"]),Q1=new Set([...P2,...w2]);var L1="__bind_",f1="__",V1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]),I2=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]);function B2(A){for(let U of A){if(!Array.isArray(U))continue;let Z=U[0]instanceof String?U[0].valueOf():U[0],W=U[1]instanceof String?U[1].valueOf():U[1];if(Z==="type"&&typeof W==="string")return W.replace(/^["']|["']$/g,"")}return null}function s(A){if(typeof A==="string")return A;if(Array.isArray(A)&&A[0]==="."&&A[1]==="this"&&typeof A[2]==="string")return A[2];return null}function F1(A){return Array.isArray(A)&&A[0]==="."&&A[1]==="this"}function u1(A,U,Z){let W=Z(A);if(!/_frag\d+$/.test(W))return null;let $=[],Y=new RegExp(`^${W.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.appendChild\\(([^)]+)\\);`);for(let Q of U){let F=Z(Q).match(Y);if(F)$.push(F[1])}return $.length>0?$:null}function j1(A,U){U.prototype.rewriteRender=function(){let W=(G,K,R)=>{let H=[G,K];if(H.pre=0,H.data=null,H.loc=R?.loc??{r:0,c:0,n:0},H.spaced=!1,H.newLine=!1,H.generated=!0,R)H.origin=R;return H},$=!1,Y=0,Q=0,F=[],X=(G)=>{let K=G.split("#")[0];return Q1.has(K)},D=(G)=>{if(!G||typeof G!=="string")return!1;return/^[A-Z]/.test(G)},J=(G)=>{return X(G)||D(G)},z=(G,K)=>{let R=K;while(R>0){let H=G[R-1][0];if(H==="TERMINATOR"||H==="RENDER")break;if(H==="INDENT"||H==="OUTDENT"){let q=G[R][0];if(q==="CALL_END"||q===")"){let M=q==="CALL_END"?"CALL_START":"(",w=1,I=R-1;while(I>=0&&w>0){let _=G[I][0];if(_===q)w++;else if(_===M)w--;if(w>0)I--}R=I;continue}break}if(H==="CALL_END"||H===")"){let q=H==="CALL_END"?"CALL_START":"(",M=1,w=R-2;while(w>=0&&M>0){let I=G[w][0];if(I==="CALL_END"||I===")")M++;else if(I==="CALL_START"||I==="(")M--;if(M>0)w--}R=w;continue}R--}return G[R]&&G[R][0]==="IDENTIFIER"&&J(G[R][1])};this.scanTokens(function(G,K,R){let H=G[0],q=K<R.length-1?R[K+1]:null;if(H==="RENDER")return $=!0,Y=Q+1,1;if(H==="INDENT")return Q++,1;if(H==="OUTDENT"){Q--;let M=0;while(F.length>0&&F[F.length-1]>Q){let w=W("CALL_END",")",G);R.splice(K+1+M,0,w),F.pop(),M++}if($&&Q<Y)$=!1;return 1+M}if(!$)return 1;if(H==="IDENTIFIER"&&!G.spaced){let M=[G[1]],w=K+1;while(w+1<R.length){let I=R[w],_=R[w+1];if(I[0]==="-"&&!I.spaced&&(_[0]==="IDENTIFIER"||_[0]==="PROPERTY")){if(M.push(_[1]),w+=2,_[0]==="PROPERTY")break}else break}if(M.length>1&&w>K+1&&R[w-1][0]==="PROPERTY")return G[0]="STRING",G[1]=`"${M.join("-")}"`,R.splice(K+1,w-K-1),1}if(H==="."){let M=K>0?R[K-1]:null,w=M?M[0]:null;if(w==="INDENT"||w==="TERMINATOR"){if(q&&q[0]==="PROPERTY"){let I=W("IDENTIFIER","div",G);return R.splice(K,0,I),2}if(!q||q[0]!=="(")return G[0]="IDENTIFIER",G[1]="div",0}}if(H==="IDENTIFIER"||H==="PROPERTY"){let M=R[K+1],w=R[K+2];if(M&&M[0]==="#"&&w&&(w[0]==="PROPERTY"||w[0]==="IDENTIFIER")){if(G[1]=G[1]+"#"+w[1],w.spaced)G.spaced=!0;return R.splice(K+1,2),1}}if(H==="BIND"){let M=K>0?R[K-1]:null,w=R[K+1];if(M&&(M[0]==="IDENTIFIER"||M[0]==="PROPERTY")&&w&&w[0]==="IDENTIFIER")return M[1]=`__bind_${M[1]}__`,G[0]=":",G[1]=":",1}if(H==="@"){let M=K+1;if(M<R.length&&R[M][0]==="PROPERTY"){M++;while(M+1<R.length&&R[M][0]==="."&&R[M+1][0]==="PROPERTY")M+=2;if(M>K+2&&M<R.length&&R[M][0]===":"){let w=W("[","[",G);R.splice(K,0,w);let I=W("]","]",R[M+1]);return R.splice(M+1,0,I),2}}}if(H==="."&&q&&q[0]==="("){let M=K>0?R[K-1]:null,w=M?M[0]:null,I=w==="INDENT"||w==="TERMINATOR",_=W("PROPERTY","__clsx",G);q[0]="CALL_START";let E=1;for(let P=K+2;P<R.length&&E>0;P++)if(R[P][0]==="("||R[P][0]==="CALL_START")E++;else if(R[P][0]===")"){if(E--,E===0)R[P][0]="CALL_END"}else if(R[P][0]==="CALL_END")E--;if(I){let P=W("IDENTIFIER","div",G);return R.splice(K,0,P),R.splice(K+2,0,_),3}else if(w===":")return R[K]=W("IDENTIFIER","__clsx",G),1;else return R.splice(K+1,0,_),2}if(q&&q[0]==="INDENT"){if(H==="->"||H==="=>"||H==="CALL_START"||H==="(")return 1;let M=!1,w=K>0?R[K-1][0]:null,I=w==="IF"||w==="UNLESS"||w==="WHILE"||w==="UNTIL"||w==="WHEN",_=!1;if(H==="CALL_END"){let E=1;for(let P=K-1;P>=0&&E>0;P--)if(R[P][0]==="CALL_END")E++;else if(R[P][0]==="CALL_START"){if(E--,E===0&&P>0&&R[P-1][0]==="PROPERTY"&&R[P-1][1]==="__clsx")_=!0}}if(_)M=!0;else if(H==="IDENTIFIER"&&J(G[1])&&!I)M=!0;else if(H==="PROPERTY"||H==="STRING"||H==="STRING_END"||H==="CALL_END"||H===")")M=z(R,K);else if(H==="IDENTIFIER"&&K>1&&R[K-1][0]==="..."){if(z(R,K)){let E=W(",",",",G),P=W("->","->",G);return P.newLine=!0,R.splice(K+1,0,E,P),3}}if(M){let E=H==="PROPERTY"&&K>0&&(R[K-1][0]==="."||R[K-1][0]==="#");if(_){let P=W("CALL_START","(",G),O=W("->","->",G);return O.newLine=!0,R.splice(K+1,0,P,O),F.push(Q+1),3}else if(H==="IDENTIFIER"&&J(G[1])||E){let P=W("CALL_START","(",G),O=W("->","->",G);return O.newLine=!0,R.splice(K+1,0,P,O),F.push(Q+1),3}else{let P=W(",",",",G),O=W("->","->",G);return O.newLine=!0,R.splice(K+1,0,P,O),3}}}if(H==="IDENTIFIER"&&D(G[1])&&q&&(q[0]==="OUTDENT"||q[0]==="TERMINATOR"))return R.splice(K+1,0,W("CALL_START","(",G),W("CALL_END",")",G)),3;return 1})};let Z=A.prototype;Z.localizeVar=function(W){let $=W.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return $=$.replace(/\bthis\b/g,"ctx"),$},Z.isHtmlTag=function(W){let $=W.split("#")[0];return Q1.has($.toLowerCase())},Z.isComponent=function(W){if(!W||typeof W!=="string")return!1;return/^[A-Z]/.test(W)},Z.collectTemplateClasses=function(W){let $=[],Y=W;while(this.is(Y,".")){let D=Y[2];if(typeof D==="string"||D instanceof String)$.unshift(D.valueOf());Y=Y[1]}let Q=typeof Y==="string"?Y:Y instanceof String?Y.valueOf():"div",[F,X]=Q.split("#");if(!F)F="div";return{tag:F,classes:$,id:X}},Z.transformComponentMembers=function(W){if(!Array.isArray(W)){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return[".",[".","this",W],"value"];if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return[".","this",W];return W}if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string"){let $=W[2];if(this.reactiveMembers&&this.reactiveMembers.has($))return[".",W,"value"];return W}if(W[0]===".")return[".",this.transformComponentMembers(W[1]),W[2]];if(W[0]==="->")return["=>",...W.slice(1).map(($)=>this.transformComponentMembers($))];if(W[0]==="object")return["object",...W.slice(1).map(($)=>{if(Array.isArray($)&&$.length>=2){let Y=$[0],Q=Array.isArray(Y)?this.transformComponentMembers(Y):Y,F=this.transformComponentMembers($[1]);return[Q,F,$[2]]}return this.transformComponentMembers($)})];return W.map(($)=>this.transformComponentMembers($))},Z.generateComponent=function(W,$,Y,Q){let[,F]=$;this.usesTemplates=!0,this.usesReactivity=!0;let X=this.is(F,"block")?F.slice(1):[],D=[],J=[],z=[],G=[],K=[],R=[],H=null,q=new Set,M=new Set;for(let P of X){if(!Array.isArray(P))continue;let[O]=P;if(O==="state"){let B=s(P[1]);if(B)D.push({name:B,value:P[2],isPublic:F1(P[1])}),q.add(B),M.add(B)}else if(O==="computed"){let B=s(P[1]);if(B)J.push({name:B,expr:P[2]}),q.add(B),M.add(B)}else if(O==="readonly"){let B=s(P[1]);if(B)z.push({name:B,value:P[2],isPublic:F1(P[1])}),q.add(B)}else if(O==="="){let B=s(P[1]);if(B)if(V1.has(B))K.push({name:B,value:P[2]});else{let N=P[2];if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>"))G.push({name:B,func:N}),q.add(B);else D.push({name:B,value:N,isPublic:F1(P[1])}),q.add(B),M.add(B)}}else if(O==="effect")R.push(P);else if(O==="render")H=P;else if(O==="object")for(let B=1;B<P.length;B++){let N=P[B];if(!Array.isArray(N))continue;let[T,S]=N;if(typeof T==="string"&&V1.has(T))K.push({name:T,value:S});else if(typeof T==="string")G.push({name:T,func:S}),q.add(T)}}let w=this.componentMembers,I=this.reactiveMembers;this.componentMembers=q,this.reactiveMembers=M;let _=[],E="";_.push("class extends __Component {"),_.push(" _init(props) {");for(let{name:P,value:O,isPublic:B}of z){let N=this.generateInComponent(O,"value");_.push(B?` this.${P} = props.${P} ?? ${N};`:` this.${P} = ${N};`)}for(let{name:P,value:O,isPublic:B}of D){let N=this.generateInComponent(O,"value");_.push(B?` this.${P} = __state(props.${P} ?? ${N});`:` this.${P} = __state(${N});`)}for(let{name:P,expr:O}of J)if(this.is(O,"block")&&O.length>2){let B=this.transformComponentMembers(O),N=this.generateFunctionBody(B);_.push(` this.${P} = __computed(() => ${N});`)}else{let B=this.generateInComponent(O,"value");_.push(` this.${P} = __computed(() => ${B});`)}for(let P of R){let O=P[2],B=this.generateInComponent(O,"value");_.push(` __effect(() => { ${B}; });`)}_.push(" }");for(let{name:P,func:O}of G)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,B,N]=O,T=Array.isArray(B)?B.map((h)=>this.formatParam(h)).join(", "):"",S=this.reactiveMembers?this.transformComponentMembers(N):N,f=this.containsAwait(N),V=this.generateFunctionBody(S,B||[]);_.push(` ${f?"async ":""}${P}(${T}) ${V}`)}for(let{name:P,value:O}of K)if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[,,B]=O,N=this.reactiveMembers?this.transformComponentMembers(B):B,T=this.containsAwait(B),S=this.generateFunctionBody(N,[]);_.push(` ${T?"async ":""}${P}() ${S}`)}if(H){let P=H[1],O=this.buildRender(P);if(O.blockFactories.length>0)E=O.blockFactories.join(`
|
|
14
14
|
|
|
15
15
|
`)+`
|
|
16
16
|
|
|
@@ -18,11 +18,11 @@ Expecting ${$.join(", ")}, got '${this.tokenNames[E]||E}'`;else return`Parse err
|
|
|
18
18
|
${E}return ${_.join(`
|
|
19
19
|
`)};
|
|
20
20
|
})()`;return _.join(`
|
|
21
|
-
`)},Z.generateInComponent=function(W
|
|
22
|
-
`)),F},Z.generateConditionBranch=function(W
|
|
23
|
-
`))},Z.generateTemplateLoop=function(W){let[Y
|
|
24
|
-
`));let S=[];return S.push(`// Loop: ${
|
|
25
|
-
`)),z},Z.generateChildComponent=function(W
|
|
21
|
+
`)},Z.generateInComponent=function(W,$){if(typeof W==="string"&&this.reactiveMembers&&this.reactiveMembers.has(W))return`this.${W}.value`;if(typeof W==="string"&&this.componentMembers&&this.componentMembers.has(W))return`this.${W}`;if(Array.isArray(W)&&this.reactiveMembers){let Y=this.transformComponentMembers(W);return this.generate(Y,$)}return this.generate(W,$)},Z.generateRender=function(W,$,Y,Q){throw Error("render blocks can only be used inside a component")},Z.buildRender=function(W){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[];let $=this.is(W,"block")?W.slice(1):[W],Y;if($.length===0)Y="null";else if($.length===1)Y=this.generateNode($[0]);else{Y=this.newElementVar("frag"),this._createLines.push(`${Y} = document.createDocumentFragment();`);for(let Q of $){let F=this.generateNode(Q);this._createLines.push(`${Y}.appendChild(${F});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:Y}},Z.newBlockVar=function(){return`create_block_${this._blockCount++}`},Z.newElementVar=function(W="el"){return`this._${W}${this._elementCount++}`},Z.newTextVar=function(){return`this._t${this._textCount++}`},Z.generateNode=function(W){if(typeof W==="string"||W instanceof String){let D=W.valueOf();if(D.startsWith('"')||D.startsWith("'")||D.startsWith("`")){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode(${D});`),K}if(this.reactiveMembers&&this.reactiveMembers.has(D)){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${K}.data = this.${D}.value; });`),K}let[J,z]=D.split("#"),G=this.newElementVar();if(this._createLines.push(`${G} = document.createElement('${J||"div"}');`),z)this._createLines.push(`${G}.id = '${z}';`);return G}if(!Array.isArray(W)){let D=this.newElementVar("c");return this._createLines.push(`${D} = document.createComment('unknown');`),D}let[$,...Y]=W,Q=typeof $==="string"?$:$ instanceof String?$.valueOf():null;if(Q&&this.isComponent(Q))return this.generateChildComponent(Q,Y);if(Q&&this.isHtmlTag(Q)){let[D,J]=Q.split("#");return this.generateTag(D||"div",[],Y,J)}if(Q==="."){let[,D,J]=W;if(D==="this"&&typeof J==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(J)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${M}.data = this.${J}.value; });`),M}let q=this.newElementVar("slot");return this._createLines.push(`${q} = this.${J} instanceof Node ? this.${J} : (this.${J} != null ? document.createTextNode(String(this.${J})) : document.createComment(''));`),q}let{tag:z,classes:G,id:K}=this.collectTemplateClasses(W);if(z&&this.isHtmlTag(z))return this.generateTag(z,G,[],K);let R=this.newTextVar(),H=this.generateInComponent(W,"value");return this._createLines.push(`${R} = document.createTextNode(String(${H}));`),R}if(Array.isArray($)){if(Array.isArray($[0])&&$[0][0]==="."&&($[0][2]==="__clsx"||$[0][2]instanceof String&&$[0][2].valueOf()==="__clsx")){let G=typeof $[0][1]==="string"?$[0][1]:$[0][1].valueOf(),K=$.slice(1);return this.generateDynamicTag(G,K,Y)}let{tag:D,classes:J,id:z}=this.collectTemplateClasses($);if(D&&this.isHtmlTag(D)){if(J.length===1&&J[0]==="__clsx")return this.generateDynamicTag(D,Y,[]);return this.generateTag(D,J,Y,z)}}if(Q==="->"||Q==="=>")return this.generateTemplateBlock(Y[1]);if(Q==="if")return this.generateConditional(W);if(Q==="for"||Q==="for-in"||Q==="for-of"||Q==="for-as")return this.generateTemplateLoop(W);let F=this.newTextVar(),X=this.generateInComponent(W,"value");if(this.hasReactiveDeps(W))this._createLines.push(`${F} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${F}.data = ${X}; });`);else this._createLines.push(`${F} = document.createTextNode(String(${X}));`);return F},Z.appendChildren=function(W,$){for(let Y of $)if(this.is(Y,"->")||this.is(Y,"=>")){let Q=Y[2];if(this.is(Q,"block"))for(let F of Q.slice(1))if(this.is(F,"object"))this.generateAttributes(W,F);else{let X=this.generateNode(F);this._createLines.push(`${W}.appendChild(${X});`)}else if(Q){let F=this.generateNode(Q);this._createLines.push(`${W}.appendChild(${F});`)}}else if(this.is(Y,"object"))this.generateAttributes(W,Y);else if(typeof Y==="string"||Y instanceof String){let Q=this.newTextVar(),F=Y.valueOf();if(F.startsWith('"')||F.startsWith("'")||F.startsWith("`"))this._createLines.push(`${Q} = document.createTextNode(${F});`);else if(this.reactiveMembers&&this.reactiveMembers.has(F))this._createLines.push(`${Q} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Q}.data = this.${F}.value; });`);else if(this.componentMembers&&this.componentMembers.has(F))this._createLines.push(`${Q} = document.createTextNode(String(this.${F}));`);else this._createLines.push(`${Q} = document.createTextNode(${this.generateInComponent(Y,"value")});`);this._createLines.push(`${W}.appendChild(${Q});`)}else if(Y){let Q=this.generateNode(Y);this._createLines.push(`${W}.appendChild(${Q});`)}},Z.generateTag=function(W,$,Y,Q){let F=this.newElementVar();if(this._createLines.push(`${F} = document.createElement('${W}');`),Q)this._createLines.push(`${F}.id = '${Q}';`);if($.length>0)this._createLines.push(`${F}.className = '${$.join(" ")}';`);return this.appendChildren(F,Y),F},Z.generateDynamicTag=function(W,$,Y){let Q=this.newElementVar();this._createLines.push(`${Q} = document.createElement('${W}');`);let F=$.map((J)=>this.generateInComponent(J,"value")),X=this._pendingClassArgs,D=this._pendingClassEl;if(this._pendingClassArgs=F,this._pendingClassEl=Q,this.appendChildren(Q,Y),this._pendingClassArgs.length>0){let J=this._pendingClassArgs.join(", ");this._setupLines.push(`__effect(() => { ${Q}.className = __clsx(${J}); });`)}return this._pendingClassArgs=X,this._pendingClassEl=D,Q},Z.generateAttributes=function(W,$){let Y=B2($.slice(1));for(let Q=1;Q<$.length;Q++){let[F,X]=$[Q];if(this.is(F,".")&&F[1]==="this"){let D=F[2];if(typeof X==="string"&&this.componentMembers?.has(X))this._createLines.push(`${W}.addEventListener('${D}', (e) => __batch(() => this.${X}(e)));`);else{let J=this.generateInComponent(X,"value");this._createLines.push(`${W}.addEventListener('${D}', (e) => __batch(() => (${J})(e)));`)}continue}if(typeof F==="string"){if(F.startsWith('"')&&F.endsWith('"'))F=F.slice(1,-1);if(F==="class"||F==="className"){let J=this.generateInComponent(X,"value");if(this._pendingClassArgs&&this._pendingClassEl===W)this._pendingClassArgs.push(J);else if(this.hasReactiveDeps(X))this._setupLines.push(`__effect(() => { ${W}.className = __clsx(${J}); });`);else this._createLines.push(`${W}.className = ${J};`);continue}if(F==="ref"){let J=String(X).replace(/^["']|["']$/g,"");this._createLines.push(`this.${J} = ${W};`);continue}if(F.startsWith(L1)&&F.endsWith(f1)){let J=F.slice(L1.length,-f1.length),z=this.generateInComponent(X,"value"),G,K;if(J==="checked")G="change",K="e.target.checked";else G="input",K=Y==="number"||Y==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${W}.${J} = ${z}; });`),this._createLines.push(`${W}.addEventListener('${G}', (e) => ${z} = ${K});`);continue}let D=this.generateInComponent(X,"value");if((F==="value"||F==="checked")&&this.hasReactiveDeps(X)){if(this._setupLines.push(`__effect(() => { ${W}.${F} = ${D}; });`),this.isSimpleAssignable(X)){let J=F==="checked"?"change":"input",z=F==="checked"?"e.target.checked":Y==="number"||Y==="range"?"e.target.valueAsNumber":"e.target.value";this._createLines.push(`${W}.addEventListener('${J}', (e) => { ${D} = ${z}; });`)}continue}if(I2.has(F))if(this.hasReactiveDeps(X))this._setupLines.push(`__effect(() => { ${W}.toggleAttribute('${F}', !!${D}); });`);else this._createLines.push(`if (${D}) ${W}.setAttribute('${F}', '');`);else if(this.hasReactiveDeps(X))this._setupLines.push(`__effect(() => { ${W}.setAttribute('${F}', ${D}); });`);else this._createLines.push(`${W}.setAttribute('${F}', ${D});`)}}},Z.generateTemplateBlock=function(W){if(!Array.isArray(W)||W[0]!=="block")return this.generateNode(W);let $=W.slice(1);if($.length===0){let Q=this.newElementVar("empty");return this._createLines.push(`${Q} = document.createComment('');`),Q}if($.length===1)return this.generateNode($[0]);let Y=this.newElementVar("frag");this._createLines.push(`${Y} = document.createDocumentFragment();`);for(let Q of $){let F=this.generateNode(Q);this._createLines.push(`${Y}.appendChild(${F});`)}return Y},Z.generateConditional=function(W){let[,$,Y,Q]=W,F=this.newElementVar("anchor");this._createLines.push(`${F} = document.createComment('if');`);let X=this.generateInComponent($,"value"),D=this.newBlockVar();this.generateConditionBranch(D,Y);let J=null;if(Q)J=this.newBlockVar(),this.generateConditionBranch(J,Q);let z=[];if(z.push(`// Conditional: ${D}${J?" / "+J:""}`),z.push("{"),z.push(` const anchor = ${F};`),z.push(" let currentBlock = null;"),z.push(" let showing = null;"),z.push(" __effect(() => {"),z.push(` const show = !!(${X});`),z.push(` const want = show ? 'then' : ${Q?"'else'":"null"};`),z.push(" if (want === showing) return;"),z.push(""),z.push(" if (currentBlock) {"),z.push(" currentBlock.d(true);"),z.push(" currentBlock = null;"),z.push(" }"),z.push(" showing = want;"),z.push(""),z.push(" if (want === 'then') {"),z.push(` currentBlock = ${D}(this);`),z.push(" currentBlock.c();"),z.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(" currentBlock.p(this);"),z.push(" }"),Q)z.push(" if (want === 'else') {"),z.push(` currentBlock = ${J}(this);`),z.push(" currentBlock.c();"),z.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),z.push(" currentBlock.p(this);"),z.push(" }");return z.push(" });"),z.push("}"),this._setupLines.push(z.join(`
|
|
22
|
+
`)),F},Z.generateConditionBranch=function(W,$){let Y=this._createLines,Q=this._setupLines;this._createLines=[],this._setupLines=[];let F=this.generateTemplateBlock($),X=this._createLines,D=this._setupLines;this._createLines=Y,this._setupLines=Q;let J=(H)=>this.localizeVar(H),z=[];z.push(`function ${W}(ctx) {`);let G=new Set;for(let H of X){let q=H.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(q)G.add(q[1])}if(G.size>0)z.push(` let ${[...G].join(", ")};`);let K=D.length>0;if(K)z.push(" let disposers = [];");z.push(" return {"),z.push(" c() {");for(let H of X)z.push(` ${J(H)}`);if(z.push(" },"),z.push(" m(target, anchor) {"),z.push(` target.insertBefore(${J(F)}, anchor);`),z.push(" },"),z.push(" p(ctx) {"),K){z.push(" disposers.forEach(d => d());"),z.push(" disposers = [];");for(let H of D){let M=J(H).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");z.push(` ${M}`)}}if(z.push(" },"),z.push(" d(detaching) {"),K)z.push(" disposers.forEach(d => d());");let R=u1(F,X,J);if(R)for(let H of R)z.push(` if (detaching) ${H}.remove();`);else z.push(` if (detaching) ${J(F)}.remove();`);z.push(" }"),z.push(" };"),z.push("}"),this._blockFactories.push(z.join(`
|
|
23
|
+
`))},Z.generateTemplateLoop=function(W){let[$,Y,Q,F,X,D]=W,J=this.newBlockVar(),z=this.newElementVar("anchor");this._createLines.push(`${z} = document.createComment('for');`);let G=Array.isArray(Y)?Y:[Y],K=G[0],R=G[1]||"i",H=this.generateInComponent(Q,"value"),q=K;if(this.is(D,"block")&&D.length>1){let f=D[1];if(Array.isArray(f))for(let V of f){if(this.is(V,"object"))for(let h=1;h<V.length;h++){let[n,C1]=V[h];if(n==="key"){q=this.generate(C1,"value");break}}if(q!==K)break}}let M=this._createLines,w=this._setupLines;this._createLines=[],this._setupLines=[];let I=this.generateTemplateBlock(D),_=this._createLines,E=this._setupLines;this._createLines=M,this._setupLines=w;let P=(f)=>this.localizeVar(f),O=[];O.push(`function ${J}(ctx, ${K}, ${R}) {`);let B=new Set;for(let f of _){let V=f.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(V)B.add(V[1])}if(B.size>0)O.push(` let ${[...B].join(", ")};`);let N=E.length>0;if(N)O.push(" let disposers = [];");O.push(" return {"),O.push(" c() {");for(let f of _)O.push(` ${P(f)}`);O.push(" },");let T=u1(I,_,P);if(O.push(" m(target, anchor) {"),T)for(let f of T)O.push(` target.insertBefore(${f}, anchor);`);else O.push(` target.insertBefore(${P(I)}, anchor);`);if(O.push(" },"),O.push(` p(ctx, ${K}, ${R}) {`),N){O.push(" disposers.forEach(d => d());"),O.push(" disposers = [];");for(let f of E){let h=P(f).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/gm,"}));");O.push(` ${h}`)}}if(O.push(" },"),O.push(" d(detaching) {"),N)O.push(" disposers.forEach(d => d());");if(T)for(let f of T)O.push(` if (detaching) ${f}.remove();`);else O.push(` if (detaching) ${P(I)}.remove();`);O.push(" }"),O.push(" };"),O.push("}"),this._blockFactories.push(O.join(`
|
|
24
|
+
`));let S=[];return S.push(`// Loop: ${J}`),S.push("{"),S.push(` const anchor = ${z};`),S.push(" const map = new Map();"),S.push(" __effect(() => {"),S.push(` const items = ${H};`),S.push(" const parent = anchor.parentNode;"),S.push(" const newMap = new Map();"),S.push(""),S.push(` for (let ${R} = 0; ${R} < items.length; ${R}++) {`),S.push(` const ${K} = items[${R}];`),S.push(` const key = ${q};`),S.push(" let block = map.get(key);"),S.push(" if (!block) {"),S.push(` block = ${J}(this, ${K}, ${R});`),S.push(" block.c();"),S.push(" }"),S.push(" block.m(parent, anchor);"),S.push(` block.p(this, ${K}, ${R});`),S.push(" newMap.set(key, block);"),S.push(" }"),S.push(""),S.push(" for (const [key, block] of map) {"),S.push(" if (!newMap.has(key)) block.d(true);"),S.push(" }"),S.push(""),S.push(" map.clear();"),S.push(" for (const [k, v] of newMap) map.set(k, v);"),S.push(" });"),S.push("}"),this._setupLines.push(S.join(`
|
|
25
|
+
`)),z},Z.generateChildComponent=function(W,$){let Y=this.newElementVar("inst"),Q=this.newElementVar("el"),{propsCode:F,childrenSetupLines:X}=this.buildComponentProps($);this._createLines.push(`${Y} = new ${W}(${F});`),this._createLines.push(`${Q} = ${Y}._create();`),this._createLines.push(`(this._children || (this._children = [])).push(${Y});`),this._setupLines.push(`if (${Y}._setup) ${Y}._setup();`);for(let D of X)this._setupLines.push(D);return Q},Z.buildComponentProps=function(W){let $=[],Y=null,Q=[];for(let X of W)if(this.is(X,"object"))for(let D=1;D<X.length;D++){let[J,z]=X[D];if(typeof J==="string"){let G=this.reactiveMembers;this.reactiveMembers=new Set;let K=this.generateInComponent(z,"value");this.reactiveMembers=G,$.push(`${J}: ${K}`)}}else if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let D=X[2];if(D){if(this.is(D,"block")){let J=[];for(let z of D.slice(1))if(this.is(z,"object"))for(let G=1;G<z.length;G++){let[K,R]=z[G];if(typeof K==="string"){let H=this.reactiveMembers;this.reactiveMembers=new Set;let q=this.generateInComponent(R,"value");this.reactiveMembers=H,$.push(`${K}: ${q}`)}}else J.push(z);D=J.length>0?["block",...J]:null}if(D){let J=this._createLines,z=this._setupLines;this._createLines=[],this._setupLines=[],Y=this.generateTemplateBlock(D);let G=this._createLines,K=this._setupLines;this._createLines=J,this._setupLines=z;for(let R of G)this._createLines.push(R);Q.push(...K),$.push(`children: ${Y}`)}}}return{propsCode:$.length>0?`{ ${$.join(", ")} }`:"{}",childrenSetupLines:Q}},Z.hasReactiveDeps=function(W){if(typeof W==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W));if(!Array.isArray(W))return!1;if(W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W[2]));if(W[0]==="."&&this._rootsAtThis(W[1]))return!0;for(let $ of W)if(this.hasReactiveDeps($))return!0;return!1},Z.isSimpleAssignable=function(W){if(typeof W==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W));if(Array.isArray(W)&&W[0]==="."&&W[1]==="this"&&typeof W[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(W[2]));return!1},Z._rootsAtThis=function(W){if(typeof W==="string")return W==="this";if(!Array.isArray(W)||W[0]!==".")return!1;return this._rootsAtThis(W[1])},Z.getComponentRuntime=function(){return`
|
|
26
26
|
// ============================================================================
|
|
27
27
|
// Rip Component Runtime
|
|
28
28
|
// ============================================================================
|
|
@@ -103,186 +103,186 @@ if (typeof globalThis !== 'undefined') {
|
|
|
103
103
|
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component };
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
`}}function l(A){let U="",Z=A<0?-A<<1|1:A<<1;do{let W=Z&31;if(Z>>>=5,Z>0)W|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[W]}while(Z>0);return U}class
|
|
107
|
-
`)>=0){let Z=U.match(/\/([gimsuvy]*)$/),W=Z?Z[1]:""
|
|
108
|
-
`).map((F)=>F.replace(/#.*$/,"").trim()).join("")}/${W}"`}return U}function v(A,U=0,Z=!1){if(!Array.isArray(A))return i(A);if(Z&&A[0]==="program"){let D=A[1],z=[Array.isArray(D)?"(program":"(program "+i(D)],
|
|
109
|
-
`)}let W=A[0];if(t(A)&&A.slice(1).every((D)=>!Array.isArray(D)||t(D))){let
|
|
110
|
-
`))return" ".repeat(U)+
|
|
106
|
+
`}}function l(A){let U="",Z=A<0?-A<<1|1:A<<1;do{let W=Z&31;if(Z>>>=5,Z>0)W|=32;U+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[W]}while(Z>0);return U}class X1{constructor(A,U,Z=null){this.file=A,this.source=U,this.sourceContent=Z,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(A){while(this.lines.length<=A)this.lines.push([])}addName(A){if(this.nameIndex.has(A))return this.nameIndex.get(A);let U=this.names.length;return this.names.push(A),this.nameIndex.set(A,U),U}addMapping(A,U,Z,W,$){if(this.ensureLine(A),this.currentLine!==A)this.prevGenCol=0,this.currentLine=A;if(Z==null){this.lines[A].push(l(U-this.prevGenCol)),this.prevGenCol=U;return}this.mappings.push({genLine:A,genCol:U,origLine:Z,origCol:W});let Y=l(U-this.prevGenCol);if(this.prevGenCol=U,Y+=l(0),Y+=l(Z-this.prevOrigLine),this.prevOrigLine=Z,Y+=l(W-this.prevOrigCol),this.prevOrigCol=W,$!=null){let Q=this.addName($);Y+=l(Q-this.prevNameIdx),this.prevNameIdx=Q}this.lines[A].push(Y)}toReverseMap(){let A=new Map;for(let U of this.mappings)if(!A.has(U.origLine))A.set(U.origLine,{genLine:U.genLine,genCol:U.genCol});return A}toJSON(){let A=this.lines.map((Z)=>Z.join(",")).join(";"),U={version:3,file:this.file,sources:[this.source],names:this.names,mappings:A};if(this.sourceContent!=null)U.sourcesContent=[this.sourceContent];return JSON.stringify(U)}}var u=(A,U)=>A instanceof String?A[U]:void 0,L=(A)=>A instanceof String?A.valueOf():A,E2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function t(A){if(!Array.isArray(A)||A.length===0)return!1;let U=A[0]?.valueOf?.()??A[0];if(E2.has(U))return!0;return A.length<=4&&!A.some(Array.isArray)}function i(A){if(Array.isArray(A))return"(???)";if(typeof A==="number")return String(A);if(A===null)return"null";if(A==="")return'""';let U=String(A);if(U[0]==="/"&&U.indexOf(`
|
|
107
|
+
`)>=0){let Z=U.match(/\/([gimsuvy]*)$/),W=Z?Z[1]:"",$=U.slice(1);return $=W?$.slice(0,-W.length-1):$.slice(0,-1),`"/${$.split(`
|
|
108
|
+
`).map((F)=>F.replace(/#.*$/,"").trim()).join("")}/${W}"`}return U}function v(A,U=0,Z=!1){if(!Array.isArray(A))return i(A);if(Z&&A[0]==="program"){let D=A[1],z=[Array.isArray(D)?"(program":"(program "+i(D)],G=Array.isArray(D)?1:2;for(let K=G;K<A.length;K++){let R=v(A[K],2,!1);z.push(R[0]==="("?" "+R:R)}return z.push(")"),z.join(`
|
|
109
|
+
`)}let W=A[0];if(t(A)&&A.slice(1).every((D)=>!Array.isArray(D)||t(D))){let J=`(${A.map((z)=>Array.isArray(z)?v(z,0,!1):i(z)).join(" ")})`;if(!J.includes(`
|
|
110
|
+
`))return" ".repeat(U)+J}let Y=" ".repeat(U),Q;if(Array.isArray(W)){if(Q=v(W,0,!1),Q.includes(`
|
|
111
111
|
`))Q=Q.split(`
|
|
112
|
-
`).map((
|
|
113
|
-
`)}else Q=i(W);let F=[`${
|
|
114
|
-
`)){F[F.length-1]+=" "+
|
|
115
|
-
`)}class j{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","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(A={}){if(this.options=A,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=A.dataSection,this.sourceMap=A.sourceMap||null,A.reactiveVars)this.reactiveVars=new Set(A.reactiveVars)}compile(A){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(A);let U=this.generate(A);if(this.sourceMap)this.buildMappings(U,A);return U}buildMappings(A,U){if(!U||U[0]!=="program")return;let Z=[],W=(Q)=>{if(!Array.isArray(Q))return;let F=Q[0];if(F==="program"||F==="block")for(let
|
|
116
|
-
`)
|
|
117
|
-
`))return`\`${Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let F=Q.includes("'")&&!Q.includes('"')?'"':"'",
|
|
118
|
-
`),
|
|
119
|
-
`),
|
|
120
|
-
|
|
121
|
-
`,
|
|
122
|
-
`,
|
|
123
|
-
`,
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
`,
|
|
112
|
+
`).map((J,z)=>z===0?J:" ".repeat(U+2)+J).join(`
|
|
113
|
+
`)}else Q=i(W);let F=[`${Y}(${Q}`],X=W==="block";for(let D=1;D<A.length;D++){let J=A[D];if(!Array.isArray(J))F[F.length-1]+=" "+i(J);else{let z=t(J)&&J.every((G)=>!Array.isArray(G)||t(G));if(!X&&z){let G=v(J,0,!1);if(!G.includes(`
|
|
114
|
+
`)){F[F.length-1]+=" "+G;continue}}F.push(v(J,U+2,!1))}}return F[F.length-1]+=")",F.join(`
|
|
115
|
+
`)}class j{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","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(A={}){if(this.options=A,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=A.dataSection,this.sourceMap=A.sourceMap||null,A.reactiveVars)this.reactiveVars=new Set(A.reactiveVars)}compile(A){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(A);let U=this.generate(A);if(this.sourceMap)this.buildMappings(U,A);return U}buildMappings(A,U){if(!U||U[0]!=="program")return;let Z=[],W=(Q)=>{if(!Array.isArray(Q))return;let F=Q[0];if(F==="program"||F==="block")for(let X=1;X<Q.length;X++){let D=Q[X];if(Array.isArray(D)&&D.loc)Z.push(D.loc);W(D)}else for(let X=1;X<Q.length;X++)W(Q[X])};W(U);let $=A.split(`
|
|
116
|
+
`),Y=0;for(let Q=0;Q<$.length;Q++){let F=$[Q],X=F.trim();if(!X||X==="}"||X==="});")continue;if(X.startsWith("let ")||X.startsWith("var "))continue;if(X.startsWith("const slice")||X.startsWith("const modulo")||X.startsWith("const toMatchable"))continue;if(X.startsWith("const {")&&X.includes("__"))continue;if(X.startsWith("} else"))continue;if(X.startsWith("//# source"))continue;if(Y<Z.length){let D=F.length-X.length;this.sourceMap.addMapping(Q,D,Z[Y].r,Z[Y].c),Y++}}}collectProgramVariables(A){if(!Array.isArray(A))return;let[U,...Z]=A;if(U=L(U),Array.isArray(U)){A.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]=Z,$=L(W)??W;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add($);return}if(U==="readonly")return;if(U==="component")return;if(j.ASSIGNMENT_OPS.has(U)){let[W,$]=Z;if(typeof W==="string"||W instanceof String){let Y=L(W);if(!this.reactiveVars?.has(Y))this.programVars.add(Y)}else if(this.is(W,"array"))this.collectVarsFromArray(W,this.programVars);else if(this.is(W,"object"))this.collectVarsFromObject(W,this.programVars);this.collectProgramVariables($);return}if(U==="def"||U==="->"||U==="=>")return;if(U==="if"){let[W,$,Y]=Z;if(this.collectProgramVariables(W),this.collectProgramVariables($),Y)this.collectProgramVariables(Y);return}if(U==="try"){if(this.collectProgramVariables(Z[0]),Z.length>=2&&Array.isArray(Z[1])&&Z[1].length===2&&Z[1][0]!=="block"){let[W,$]=Z[1];if(W&&this.is(W,"object"))W.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2&&typeof Y[1]==="string")this.programVars.add(Y[1])});else if(W&&this.is(W,"array"))W.slice(1).forEach((Y)=>{if(typeof Y==="string")this.programVars.add(Y)});this.collectProgramVariables($)}if(Z.length===3)this.collectProgramVariables(Z[2]);else if(Z.length===2&&(!Array.isArray(Z[1])||Z[1][0]==="block"))this.collectProgramVariables(Z[1]);return}Z.forEach((W)=>this.collectProgramVariables(W))}collectFunctionVariables(A){let U=new Set,Z=(W)=>{if(!Array.isArray(W))return;let[$,...Y]=W;if($=L($),Array.isArray($)){W.forEach((Q)=>Z(Q));return}if(j.ASSIGNMENT_OPS.has($)){let[Q,F]=Y;if(typeof Q==="string")U.add(Q);else if(this.is(Q,"array"))this.collectVarsFromArray(Q,U);else if(this.is(Q,"object"))this.collectVarsFromObject(Q,U);Z(F);return}if($==="def"||$==="->"||$==="=>")return;if($==="try"){if(Z(Y[0]),Y.length>=2&&Array.isArray(Y[1])&&Y[1].length===2&&Y[1][0]!=="block"){let[Q,F]=Y[1];if(Q&&this.is(Q,"object"))Q.slice(1).forEach((X)=>{if(Array.isArray(X)&&X.length===2&&typeof X[1]==="string")U.add(X[1])});else if(Q&&this.is(Q,"array"))Q.slice(1).forEach((X)=>{if(typeof X==="string")U.add(X)});Z(F)}if(Y.length===3)Z(Y[2]);else if(Y.length===2&&(!Array.isArray(Y[1])||Y[1][0]==="block"))Z(Y[1]);return}Y.forEach((Q)=>Z(Q))};return Z(A),U}generate(A,U="statement"){if(A instanceof String){if(u(A,"await")===!0)return`await ${L(A)}()`;if(u(A,"predicate"))return`(${L(A)} != null)`;if(u(A,"delimiter")==="///"&&u(A,"heregex")){let F=L(A),X=F.match(/^\/(.*)\/([gimsuvy]*)$/s);if(X){let[,D,J]=X;return`/${this.processHeregex(D)}/${J}`}return F}let Q=u(A,"quote");if(Q){let F=L(A);if(Q==='"""'||Q==="'''"){let D=this.extractStringContent(A);return D=D.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${D}\``}if(F[0]===Q)return F;let X=F.slice(1,-1);return`${Q}${X}${Q}`}A=L(A)}if(typeof A==="string"){if(A.startsWith('"')||A.startsWith("'")||A.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",A);let Q=A.slice(1,-1);if(Q.includes(`
|
|
117
|
+
`))return`\`${Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let F=Q.includes("'")&&!Q.includes('"')?'"':"'",X=Q.replace(new RegExp(F,"g"),`\\${F}`);return`${F}${X}${F}`}if(this.reactiveVars?.has(A)&&!this.suppressReactiveUnwrap)return`${A}.value`;return A}if(typeof A==="number")return String(A);if(A===null||A===void 0)return"null";if(!Array.isArray(A))throw Error(`Invalid s-expression: ${JSON.stringify(A)}`);let[Z,...W]=A,$=u(Z,"await");Z=L(Z);let Y=j.GENERATORS[Z];if(Y)return this[Y](Z,W,U,A);if(typeof Z==="string"&&!Z.startsWith('"')&&!Z.startsWith("'")){if(j.NUMBER_START_RE.test(Z))return Z;if(Z==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let J=W.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`super.${this.currentMethodName}(${J})`}if(U==="statement"&&W.length===1){let J=this.findPostfixConditional(W[0]);if(J){let z=this.rebuildWithoutConditional(J),G=this.generate(Z,"value"),K=this.generate(J.condition,"value"),R=this.generate(z,"value"),H=`${G}(${R})`;return`if (${K}) ${H}`}}let Q=$===!0,F=this.generate(Z,"value"),X=W.map((J)=>this.unwrap(this.generate(J,"value"))).join(", "),D=`${F}(${X})`;return Q?`await ${D}`:D}if(Array.isArray(Z)&&typeof Z[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(Z[0]))return`(${A.map((X)=>this.generate(X,"value")).join(", ")})`}if(Array.isArray(Z)){if(Z[0]==="."&&(Z[2]==="new"||L(Z[2])==="new")){let J=Z[1],z=this.generate(J,"value"),G=W.map((R)=>this.unwrap(this.generate(R,"value"))).join(", ");return`new ${Array.isArray(J)?`(${z})`:z}(${G})`}if(U==="statement"&&W.length===1){let J=this.findPostfixConditional(W[0]);if(J){let z=this.rebuildWithoutConditional(J),G=this.generate(Z,"value"),K=this.generate(J.condition,"value"),R=this.generate(z,"value"),H=`${G}(${R})`;return`if (${K}) ${H}`}}let Q=!1,F;if(Z[0]==="."&&u(Z[2],"await")===!0){Q=!0;let[J,z]=Z.slice(1),G=this.generate(J,"value");F=`${j.NUMBER_LITERAL_RE.test(G)||(this.is(J,"object")||this.is(J,"await")||this.is(J,"yield"))?`(${G})`:G}.${L(z)}`}else F=this.generate(Z,"value");let X=W.map((J)=>this.unwrap(this.generate(J,"value"))).join(", "),D=`${F}(${X})`;return Q?`await ${D}`:D}throw Error(`Unknown s-expression type: ${Z}`)}generateProgram(A,U,Z,W){let $="",Y=[],Q=[],F=[];for(let K of U){if(!Array.isArray(K)){F.push(K);continue}let R=K[0];if(R==="import")Y.push(K);else if(R==="export"||R==="export-default"||R==="export-all"||R==="export-from")Q.push(K);else F.push(K)}let X=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],D=F.map((K,R)=>{let H=F.length===1&&Y.length===0&&Q.length===0,q=this.is(K,"object"),M=q&&K.length===2&&Array.isArray(K[1])&&Array.isArray(K[1][1])&&K[1][1][0]==="comprehension",w=this.is(K,"comprehension")||this.is(K,"object-comprehension")||this.is(K,"do-iife"),I=this.programVars.size===0,_=H&&q&&I&&!w&&!M,P=R===F.length-1&&w,O;if(_)O=`(${this.generate(K,"value")})`;else if(P)O=this.generate(K,"value");else O=this.generate(K,"statement");if(O&&!O.endsWith(";")){let B=Array.isArray(K)?K[0]:null;if(!X.includes(B)||!O.endsWith("}"))return O+";"}return O}).join(`
|
|
118
|
+
`),J=!1;if(Y.length>0)$+=Y.map((K)=>this.addSemicolon(K,this.generate(K,"statement"))).join(`
|
|
119
|
+
`),J=!0;if(this.programVars.size>0){let K=Array.from(this.programVars).sort().join(", ");if(J)$+=`
|
|
120
|
+
`;$+=`let ${K};
|
|
121
|
+
`,J=!0}let z=this.options.skipPreamble;if(!z){if(this.helpers.has("slice"))$+=`const slice = [].slice;
|
|
122
|
+
`,J=!0;if(this.helpers.has("modulo"))$+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
123
|
+
`,J=!0;if(this.helpers.has("toMatchable"))$+=`const toMatchable = (v, allowNewlines) => {
|
|
124
|
+
`,$+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
125
|
+
`,$+=` if (v == null) return "";
|
|
126
|
+
`,$+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
127
|
+
`,$+=` if (typeof v === "symbol") return v.description || "";
|
|
128
|
+
`,$+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
129
|
+
`,$+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
130
|
+
`,$+=` }
|
|
131
|
+
`,$+=` if (Array.isArray(v)) return v.join(",");
|
|
132
|
+
`,$+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
133
|
+
`,$+=` try { return v.toString(); } catch { return ""; }
|
|
134
|
+
`,$+=` }
|
|
135
|
+
`,$+=` return "";
|
|
136
|
+
`,$+=`};
|
|
137
|
+
`,J=!0}let G="";if(Q.length>0)G=`
|
|
138
138
|
`+Q.map((K)=>this.addSemicolon(K,this.generate(K,"statement"))).join(`
|
|
139
|
-
`);if(this.usesReactivity&&!z){if(typeof globalThis<"u"&&globalThis.__rip)
|
|
140
|
-
`;else
|
|
141
|
-
`;else
|
|
139
|
+
`);if(this.usesReactivity&&!z){if(typeof globalThis<"u"&&globalThis.__rip)$+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
140
|
+
`;else $+=this.getReactiveRuntime();J=!0}if(this.usesTemplates&&!z){if(typeof globalThis<"u"&&globalThis.__ripComponent)$+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component } = globalThis.__ripComponent;
|
|
141
|
+
`;else $+=this.getComponentRuntime();J=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!z)$+=`var DATA;
|
|
142
142
|
_setDataSection();
|
|
143
|
-
`,
|
|
144
|
-
`;if(
|
|
143
|
+
`,J=!0;if(J&&$.length>0)$+=`
|
|
144
|
+
`;if($+=D,$+=G,this.dataSection!==null&&this.dataSection!==void 0)$+=`
|
|
145
145
|
|
|
146
146
|
function _setDataSection() {
|
|
147
147
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
148
|
-
}`;return
|
|
148
|
+
}`;return $}generateBinaryOp(A,U,Z,W){if((A==="+"||A==="-")&&U.length===1)return`(${A}${this.generate(U[0],"value")})`;let[$,Y]=U;if(A==="*"){let F=$?.valueOf?.()??$;if(typeof F==="string"&&/^["']/.test(F))return`${this.generate($,"value")}.repeat(${this.generate(Y,"value")})`}let Q=new Set(["<",">","<=",">="]);if(Q.has(A)&&Array.isArray($)){let F=$[0]?.valueOf?.()??$[0];if(Q.has(F)){let X=this.generate($[1],"value"),D=this.generate($[2],"value"),J=this.generate(Y,"value");return`((${X} ${F} ${D}) && (${D} ${A} ${J}))`}}if(A==="!?"){let F=this.generate($,"value"),X=this.generate(Y,"value");return`(${F} !== undefined ? ${F} : ${X})`}if(A==="==")A="===";if(A==="!=")A="!==";return`(${this.generate($,"value")} ${A} ${this.generate(Y,"value")})`}generateModulo(A,U){let[Z,W]=U;return this.helpers.add("modulo"),`modulo(${this.generate(Z,"value")}, ${this.generate(W,"value")})`}generateModuloAssign(A,U){let[Z,W]=U;this.helpers.add("modulo");let $=this.generate(Z,"value"),Y=this.generate(W,"value");return`${$} = modulo(${$}, ${Y})`}generateFloorDiv(A,U){let[Z,W]=U;return`Math.floor(${this.generate(Z,"value")} / ${this.generate(W,"value")})`}generateFloorDivAssign(A,U){let[Z,W]=U,$=this.generate(Z,"value"),Y=this.generate(W,"value");return`${$} = Math.floor(${$} / ${Y})`}generateAssignment(A,U,Z,W){let[$,Y]=U,Q=A==="?="?"??=":A,F=this.is(Y,"->")||this.is(Y,"=>")||this.is(Y,"def");if($ instanceof String&&u($,"await")!==void 0&&!F){let H=u($,"await")===!0?"!":"&";throw Error(`Cannot use ${H} sigil in variable declaration '${L($)}'.`)}if($ instanceof String&&u($,"await")===!0&&F)this.nextFunctionIsVoid=!0;let X=this.is($,"array",0),D=this.is($,"object",0);if(X||D){let H=this.generate(Y,"value");return D&&Z==="statement"?`(${H})`:H}if(Array.isArray(Y)&&Q==="="&&Y[0]==="control"){let[,H,q,M]=Y,w=L(H),I=M[0]==="return",_=this.generate($,"value"),E=this.generate(q,"value"),P=M.length>1?M[1]:null,O=I?P?`return ${this.generate(P,"value")}`:"return":P?`throw ${this.generate(P,"value")}`:"throw new Error()";if(Z==="value"){if(w==="??")return`(() => { const __v = ${E}; if (__v == null) ${O}; return (${_} = __v); })()`;if(w==="||")return`(() => { const __v = ${E}; if (!__v) ${O}; return (${_} = __v); })()`;return`(() => { const __v = ${E}; if (__v) ${O}; return (${_} = __v); })()`}if(w==="??")return`if ((${_} = ${E}) == null) ${O}`;if(w==="||")return`if (!(${_} = ${E})) ${O}`;return`if ((${_} = ${E})) ${O}`}if(this.is($,"array")){let H=$.slice(1).findIndex((q)=>this.is(q,"...")||q==="...");if(H!==-1&&H<$.length-2){let q=$.slice(1),M=q.slice(H+1),w=M.length;if(w>0){let I=this.generate(Y,"value"),E=q.slice(0,H).map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),P=M.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");this.helpers.add("slice"),q.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])});let O=q[H],B=this.is(O,"...")?O[1]:null,N=[];if(E)N.push(`[${E}] = ${I}`);if(B)N.push(`[...${B}] = ${I}.slice(${H}, -${w})`);return N.push(`[${P}] = slice.call(${I}, -${w})`),N.join(", ")}}}if(Z==="statement"&&A==="="&&Array.isArray(Y)&&(Y[0]==="||"||Y[0]==="&&")&&Y.length===3){let[H,q,M]=Y;if(this.is(M,"if")&&M.length===3){let[,w,I]=M,_=Array.isArray(I)&&I.length===1?I[0]:I,E=[H,q,_],P=this.generate($,"value"),O=this.generate(w,"value"),B=this.generate(E,"value");return`if (${O}) ${P} = ${B}`}}if(Z==="statement"&&A==="="&&Array.isArray(Y)&&Y.length===3){let[H,q,M]=Y,w=Array.isArray(M)&&M.length===1&&(!Array.isArray(M[0])||M[0][0]!=="block");if(H==="if"&&w){let I=Array.isArray(M)&&M.length===1?M[0]:M,_=this.generate($,"value"),E=this.unwrapLogical(this.generate(q,"value")),P=this.generate(I,"value");return`if (${E}) ${_} = ${P}`}}let J;if($ instanceof String&&u($,"await")!==void 0)J=L($);else if(typeof $==="string"&&this.reactiveVars?.has($))J=`${$}.value`;else this.suppressReactiveUnwrap=!0,J=this.generate($,"value"),this.suppressReactiveUnwrap=!1;let z=this.generate(Y,"value");if(!this.is(Y,"object"))z=this.unwrap(z);let K=Z==="value",R=Z==="statement"&&this.is($,"object");if(K||R)return`(${J} ${Q} ${z})`;return`${J} ${Q} ${z}`}generatePropertyAccess(A,U,Z,W){let[$,Y]=U;if(this._atParamMap&&$==="this"){let D=this._atParamMap.get(L(Y));if(D)return D}this.suppressReactiveUnwrap=!0;let Q=this.generate($,"value");this.suppressReactiveUnwrap=!1;let X=j.NUMBER_LITERAL_RE.test(Q)||Q.startsWith("await ")||(this.is($,"object")||this.is($,"yield"))?`(${Q})`:Q;if(u(Y,"await")===!0)return`await ${X}.${L(Y)}()`;if(u(Y,"predicate"))return`(${X}.${L(Y)} != null)`;return`${X}.${L(Y)}`}generateOptionalProperty(A,U){let[Z,W]=U;return`${this.generate(Z,"value")}?.${W}`}generateRegexIndex(A,U){let[Z,W,$]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let Y=this.generate(Z,"value"),Q=this.generate(W,"value"),F=$!==null?this.generate($,"value"):"0",X=Q.includes("/m")?", true":"";return`(_ = toMatchable(${Y}${X}).match(${Q})) && _[${F}]`}generateIndexAccess(A,U){let[Z,W]=U;if(this.is(W,"..")||this.is(W,"...")){let $=W[0]==="..",Y=this.generate(Z,"value"),[Q,F]=W.slice(1);if(Q===null&&F===null)return`${Y}.slice()`;if(Q===null){if($&&this.is(F,"-",1)&&(L(F[1])??F[1])==1)return`${Y}.slice(0)`;let J=this.generate(F,"value");return $?`${Y}.slice(0, +${J} + 1 || 9e9)`:`${Y}.slice(0, ${J})`}if(F===null)return`${Y}.slice(${this.generate(Q,"value")})`;let X=this.generate(Q,"value");if($&&this.is(F,"-",1)&&(L(F[1])??F[1])==1)return`${Y}.slice(${X})`;let D=this.generate(F,"value");return $?`${Y}.slice(${X}, +${D} + 1 || 9e9)`:`${Y}.slice(${X}, ${D})`}if(this.is(W,"-",1)){let $=L(W[1])??W[1];if(typeof $==="number"||typeof $==="string"&&/^\d+$/.test($))return`${this.generate(Z,"value")}.at(-${$})`}return`${this.generate(Z,"value")}[${this.unwrap(this.generate(W,"value"))}]`}generateOptIndex(A,U){let[Z,W]=U;if(this.is(W,"-",1)){let $=L(W[1])??W[1];if(typeof $==="number"||typeof $==="string"&&/^\d+$/.test($))return`${this.generate(Z,"value")}?.at(-${$})`}return`${this.generate(Z,"value")}?.[${this.generate(W,"value")}]`}generateOptCall(A,U){let[Z,...W]=U;return`${this.generate(Z,"value")}?.(${W.map(($)=>this.generate($,"value")).join(", ")})`}generateDef(A,U,Z,W){let[$,Y,Q]=U,F=u($,"await")===!0,X=L($),D=this.generateParamList(Y),J=this.generateFunctionBody(Q,Y,F),z=this.containsAwait(Q),G=this.containsYield(Q);return`${z?"async ":""}function${G?"*":""} ${X}(${D}) ${J}`}generateThinArrow(A,U,Z,W){let[$,Y]=U;if((!$||Array.isArray($)&&$.length===0)&&this.containsIt(Y))$=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.generateParamList($),X=this.generateFunctionBody(Y,$,Q),D=this.containsAwait(Y),J=this.containsYield(Y),z=`${D?"async ":""}function${J?"*":""}(${F}) ${X}`;return Z==="value"?`(${z})`:z}generateFatArrow(A,U,Z,W){let[$,Y]=U;if((!$||Array.isArray($)&&$.length===0)&&this.containsIt(Y))$=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let F=this.generateParamList($),D=$.length===1&&typeof $[0]==="string"&&!F.includes("=")&&!F.includes("...")&&!F.includes("[")&&!F.includes("{")?F:`(${F})`,z=this.containsAwait(Y)?"async ":"";if(!Q){if(this.is(Y,"block")&&Y.length===2){let K=Y[1];if(!Array.isArray(K)||K[0]!=="return")return`${z}${D} => ${this.generate(K,"value")}`}if(!Array.isArray(Y)||Y[0]!=="block")return`${z}${D} => ${this.generate(Y,"value")}`}let G=this.generateFunctionBody(Y,$,Q);return`${z}${D} => ${G}`}generateReturn(A,U,Z,W){if(U.length===0)return"return";let[$]=U;if(this.sideEffectOnly)return"return";if(this.is($,"if")){let[,Y,Q,...F]=$;if(F.length===0){let X=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate(Y,"value")}) return ${this.generate(X,"value")}`}}if(this.is($,"new")&&Array.isArray($[1])&&$[1][0]==="if"){let[,Y,Q]=$[1],F=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate(Y,"value")}) return ${this.generate(["new",F],"value")}`}return`return ${this.generate($,"value")}`}generateState(A,U){let[Z,W]=U;this.usesReactivity=!0;let $=L(Z)??Z;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add($),`const ${$} = __state(${this.generate(W,"value")})`}generateComputed(A,U){let[Z,W]=U;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let $=L(Z)??Z;if(this.reactiveVars.add($),this.is(W,"block")&&W.length>2)return`const ${$} = __computed(() => ${this.generateFunctionBody(W)})`;return`const ${$} = __computed(() => ${this.generate(W,"value")})`}generateReadonly(A,U){let[Z,W]=U;return`const ${L(Z)??Z} = ${this.generate(W,"value")}`}generateEffect(A,U){let[Z,W]=U;this.usesReactivity=!0;let $;if(this.is(W,"block"))$=`{
|
|
149
149
|
${this.withIndent(()=>this.formatStatements(W.slice(1))).join(`
|
|
150
150
|
`)}
|
|
151
|
-
${this.indent()}}`;else if(this.is(W,"->")||this.is(W,"=>")){let Q=this.generate(W,"value");if(Z)return`const ${L(Z)??this.generate(Z,"value")} = __effect(${Q})`;return`__effect(${Q})`}else
|
|
151
|
+
${this.indent()}}`;else if(this.is(W,"->")||this.is(W,"=>")){let Q=this.generate(W,"value");if(Z)return`const ${L(Z)??this.generate(Z,"value")} = __effect(${Q})`;return`__effect(${Q})`}else $=`{ ${this.generate(W,"value")}; }`;let Y=`__effect(() => ${$})`;if(Z)return`const ${L(Z)??this.generate(Z,"value")} = ${Y}`;return Y}generateBreak(){return"break"}generateContinue(){return"continue"}generateExistential(A,U){return`(${this.generate(U[0],"value")} != null)`}generateTernary(A,U,Z){let[W,$,Y]=U;if(($?.[0]?.valueOf?.()??$?.[0])==="="&&Array.isArray($)){let F=this.generate($[1],"value"),X=this.generate($[2],"value"),D=this.generate(Y,"value");return`${F} = (${this.unwrap(this.generate(W,"value"))} ? ${X} : ${D})`}return`(${this.unwrap(this.generate(W,"value"))} ? ${this.generate($,"value")} : ${this.generate(Y,"value")})`}generatePipe(A,U){let[Z,W]=U,$=this.generate(Z,"value");if(Array.isArray(W)&&W.length>1){let Y=W[0];if(Array.isArray(Y)||typeof Y==="string"&&/^[a-zA-Z_$]/.test(Y)){let F=this.generate(Y,"value"),X=W.slice(1).map((D)=>this.generate(D,"value"));return`${F}(${$}, ${X.join(", ")})`}}return`${this.generate(W,"value")}(${$})`}generateLoop(A,U){return`while (true) ${this.generateLoopBody(U[0])}`}generateLoopN(A,U){let[Z,W]=U;return`for (let it = 0; it < ${this.generate(Z,"value")}; it++) ${this.generateLoopBody(W)}`}generateAwait(A,U){return`await ${this.generate(U[0],"value")}`}generateYield(A,U){return U.length===0?"yield":`yield ${this.generate(U[0],"value")}`}generateYieldFrom(A,U){return`yield* ${this.generate(U[0],"value")}`}generateIf(A,U,Z,W){let[$,Y,...Q]=U;return Z==="value"?this.generateIfAsExpression($,Y,Q):this.generateIfAsStatement($,Y,Q)}generateForIn(A,U,Z,W){let[$,Y,Q,F,X]=U;if(Z==="value"&&this.comprehensionDepth===0){let q=["for-in",$,Y,Q];return this.generate(["comprehension",X,[q],F?[F]:[]],Z)}let D=Array.isArray($)?$:[$],J=D.length===0,[z,G]=J?["_i",null]:D,K=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(Q&&Q!==null){let q=this.generate(Y,"value"),M=G||"_i",w=this.generate(Q,"value"),I=this.is(Q,"-",1),_=I&&(Q[1]==="1"||Q[1]===1||L(Q[1])==="1"),E=!I&&(Q==="1"||Q===1||L(Q)==="1"),P;if(_)P=`for (let ${M} = ${q}.length - 1; ${M} >= 0; ${M}--) `;else if(E)P=`for (let ${M} = 0; ${M} < ${q}.length; ${M}++) `;else if(I)P=`for (let ${M} = ${q}.length - 1; ${M} >= 0; ${M} += ${w}) `;else P=`for (let ${M} = 0; ${M} < ${q}.length; ${M} += ${w}) `;if(this.is(X,"block")){let O=X.slice(1);this.indentLevel++;let B=[];if(!J)B.push(`const ${K} = ${q}[${M}];`);if(F)B.push(`if (${this.generate(F,"value")}) {`),this.indentLevel++,B.push(...this.formatStatements(O)),this.indentLevel--,B.push(this.indent()+"}");else B.push(...O.map((N)=>this.addSemicolon(N,this.generate(N,"statement"))));return this.indentLevel--,P+`{
|
|
152
152
|
${B.map((N)=>this.indent()+N).join(`
|
|
153
153
|
`)}
|
|
154
|
-
${this.indent()}}`}if(
|
|
155
|
-
`,this.indentLevel++,
|
|
156
|
-
`,F)
|
|
157
|
-
`,this.indentLevel++,
|
|
154
|
+
${this.indent()}}`}if(J)return F?P+`{ if (${this.generate(F,"value")}) ${this.generate(X,"statement")}; }`:P+`{ ${this.generate(X,"statement")}; }`;return F?P+`{ const ${K} = ${q}[${M}]; if (${this.generate(F,"value")}) ${this.generate(X,"statement")}; }`:P+`{ const ${K} = ${q}[${M}]; ${this.generate(X,"statement")}; }`}if(G){let q=this.generate(Y,"value"),M=`for (let ${G} = 0; ${G} < ${q}.length; ${G}++) `;if(this.is(X,"block")){if(M+=`{
|
|
155
|
+
`,this.indentLevel++,M+=this.indent()+`const ${K} = ${q}[${G}];
|
|
156
|
+
`,F)M+=this.indent()+`if (${this.unwrap(this.generate(F,"value"))}) {
|
|
157
|
+
`,this.indentLevel++,M+=this.formatStatements(X.slice(1)).join(`
|
|
158
158
|
`)+`
|
|
159
|
-
`,this.indentLevel--,
|
|
160
|
-
`;else
|
|
159
|
+
`,this.indentLevel--,M+=this.indent()+`}
|
|
160
|
+
`;else M+=this.formatStatements(X.slice(1)).join(`
|
|
161
161
|
`)+`
|
|
162
|
-
`;this.indentLevel--,
|
|
163
|
-
${K.map((
|
|
162
|
+
`;this.indentLevel--,M+=this.indent()+"}"}else M+=F?`{ const ${K} = ${q}[${G}]; if (${this.unwrap(this.generate(F,"value"))}) ${this.generate(X,"statement")}; }`:`{ const ${K} = ${q}[${G}]; ${this.generate(X,"statement")}; }`;return M}let R=Array.isArray(Y)&&Y[0];if(R instanceof String)R=L(R);if(R===".."||R==="..."){let q=R==="...",[M,w]=Y.slice(1),I=(_)=>typeof _==="number"||typeof _==="string"&&!_.includes("(")||_ instanceof String&&!L(_).includes("(")||this.is(_,".");if(I(M)&&I(w)){let _=this.generate(M,"value"),E=this.generate(w,"value"),P=q?"<":"<=",O=Q?`${K} += ${this.generate(Q,"value")}`:`${K}++`,B=`for (let ${K} = ${_}; ${K} ${P} ${E}; ${O}) `;return B+=F?this.generateLoopBodyWithGuard(X,F):this.generateLoopBody(X),B}}let H=`for (const ${K} of ${this.generate(Y,"value")}) `;return H+=F?this.generateLoopBodyWithGuard(X,F):this.generateLoopBody(X),H}generateForOf(A,U,Z,W){let[$,Y,Q,F,X]=U,[D,J]=Array.isArray($)?$:[$],z=this.generate(Y,"value"),G=`for (const ${D} in ${z}) `;if(Q&&!J&&!F){if(this.is(X,"block")){this.indentLevel++;let K=[`if (!Object.hasOwn(${z}, ${D})) continue;`,...X.slice(1).map((R)=>this.addSemicolon(R,this.generate(R,"statement")))];return this.indentLevel--,G+`{
|
|
163
|
+
${K.map((R)=>this.indent()+R).join(`
|
|
164
164
|
`)}
|
|
165
|
-
${this.indent()}}`}return
|
|
166
|
-
${
|
|
165
|
+
${this.indent()}}`}return G+`{ if (!Object.hasOwn(${z}, ${D})) continue; ${this.generate(X,"statement")}; }`}if(J){if(this.is(X,"block")){let R=X.slice(1);this.indentLevel++;let H=[];if(Q)H.push(`if (!Object.hasOwn(${z}, ${D})) continue;`);if(H.push(`const ${J} = ${z}[${D}];`),F)H.push(`if (${this.generate(F,"value")}) {`),this.indentLevel++,H.push(...R.map((q)=>this.addSemicolon(q,this.generate(q,"statement")))),this.indentLevel--,H.push(this.indent()+"}");else H.push(...R.map((q)=>this.addSemicolon(q,this.generate(q,"statement"))));return this.indentLevel--,G+`{
|
|
166
|
+
${H.map((q)=>this.indent()+q).join(`
|
|
167
167
|
`)}
|
|
168
|
-
${this.indent()}}`}let K="";if(Q)K+=`if (!Object.hasOwn(${z}, ${D})) continue; `;if(K+=`const ${
|
|
169
|
-
${
|
|
168
|
+
${this.indent()}}`}let K="";if(Q)K+=`if (!Object.hasOwn(${z}, ${D})) continue; `;if(K+=`const ${J} = ${z}[${D}]; `,F)K+=`if (${this.generate(F,"value")}) `;return K+=`${this.generate(X,"statement")};`,G+`{ ${K} }`}return G+=F?this.generateLoopBodyWithGuard(X,F):this.generateLoopBody(X),G}generateForAs(A,U,Z,W){let $=Array.isArray(U[0])?U[0]:[U[0]],[Y]=$,Q=U[1],F=U[2],X=U[3],D=U[4],J=!1,z=[];if(this.is(Y,"array")){let q=Y.slice(1),M=q.findIndex((w)=>this.is(w,"...")||w==="...");if(M!==-1&&M<q.length-1){J=!0;let w=q.slice(M+1),I=w.length,_=q.slice(0,M),E=q[M],P=this.is(E,"...")?E[1]:"_rest",O=_.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),B=O?`${O}, ...${P}`:`...${P}`,N=w.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");z.push(`[${B}] = _item`),z.push(`[${N}] = ${P}.splice(-${I})`),this.helpers.add("slice"),q.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])})}}let G=this.generate(Q,"value"),K=F?"await ":"",R;if(J)R="_item";else if(this.is(Y,"array")||this.is(Y,"object"))R=this.generateDestructuringPattern(Y);else R=Y;let H=`for ${K}(const ${R} of ${G}) `;if(J&&z.length>0){let q=this.unwrapBlock(D),M=this.withIndent(()=>[...z.map((w)=>this.indent()+w+";"),...this.formatStatements(q)]);H+=`{
|
|
169
|
+
${M.join(`
|
|
170
170
|
`)}
|
|
171
|
-
${this.indent()}}`}else
|
|
171
|
+
${this.indent()}}`}else H+=X?this.generateLoopBodyWithGuard(D,X):this.generateLoopBody(D);return H}generateWhile(A,U){let Z=U[0],W=U.length===3?U[1]:null,$=U[U.length-1];return`while (${this.unwrap(this.generate(Z,"value"))}) `+(W?this.generateLoopBodyWithGuard($,W):this.generateLoopBody($))}generateRange(A,U){if(A==="..."){if(U.length===1)return`...${this.generate(U[0],"value")}`;let[Q,F]=U,X=this.generate(Q,"value"),D=this.generate(F,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${X}, ${D})`}let[Z,W]=U,$=this.generate(Z,"value"),Y=this.generate(W,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${$}, ${Y})`}generateNot(A,U){let[Z]=U;if(typeof Z==="string"||Z instanceof String)return`!${this.generate(Z,"value")}`;if(Array.isArray(Z)){if([".","?.","[]","optindex","optcall"].includes(Z[0]))return`!${this.generate(Z,"value")}`}let W=this.generate(Z,"value");return W.startsWith("(")?`!${W}`:`(!${W})`}generateBitwiseNot(A,U){return`(~${this.generate(U[0],"value")})`}generateIncDec(A,U){let[Z,W]=U,$=this.generate(Z,"value");return W?`(${$}${A})`:`(${A}${$})`}generateTypeof(A,U){return`typeof ${this.generate(U[0],"value")}`}generateDelete(A,U){return`(delete ${this.generate(U[0],"value")})`}generateInstanceof(A,U,Z,W){let[$,Y]=U,Q=u(W[0],"invert"),F=`(${this.generate($,"value")} instanceof ${this.generate(Y,"value")})`;return Q?`(!${F})`:F}generateIn(A,U,Z,W){let[$,Y]=U,Q=this.generate($,"value"),F=u(W[0],"invert");if(this.is(Y,"object")){let J=`(${Q} in ${this.generate(Y,"value")})`;return F?`(!${J})`:J}let X=this.generate(Y,"value"),D=`(Array.isArray(${X}) || typeof ${X} === 'string' ? ${X}.includes(${Q}) : (${Q} in ${X}))`;return F?`(!${D})`:D}generateOf(A,U,Z,W){let[$,Y]=U,Q=this.generate($,"value"),F=this.generate(Y,"value"),X=u(W[0],"invert"),D=`(${Q} in ${F})`;return X?`(!${D})`:D}generateRegexMatch(A,U){let[Z,W]=U;this.helpers.add("toMatchable"),this.programVars.add("_");let $=this.generate(W,"value"),Y=$.includes("/m")?", true":"";return`(_ = toMatchable(${this.generate(Z,"value")}${Y}).match(${$}))`}generateNew(A,U){let[Z]=U;if(this.is(Z,".")||this.is(Z,"?.")){let[W,$,Y]=Z;if(Array.isArray($)&&!$[0].startsWith)return`(${this.generate(["new",$],"value")}).${Y}`;return`new ${this.generate($,"value")}.${Y}`}if(Array.isArray(Z)){let[W,...$]=Z;return`new ${this.generate(W,"value")}(${$.map((Y)=>this.unwrap(this.generate(Y,"value"))).join(", ")})`}return`new ${this.generate(Z,"value")}()`}generateLogicalAnd(A,U,Z,W){let $=this.flattenBinaryChain(W).slice(1);if($.length===0)return"true";if($.length===1)return this.generate($[0],"value");return`(${$.map((Y)=>this.generate(Y,"value")).join(" && ")})`}generateLogicalOr(A,U,Z,W){let $=this.flattenBinaryChain(W).slice(1);if($.length===0)return"true";if($.length===1)return this.generate($[0],"value");return`(${$.map((Y)=>this.generate(Y,"value")).join(" || ")})`}generateArray(A,U){let Z=U.length>0&&U[U.length-1]===",",W=U.map(($)=>{if($===",")return"";if($==="...")return"";if(this.is($,"..."))return`...${this.generate($[1],"value")}`;return this.generate($,"value")}).join(", ");return Z?`[${W},]`:`[${W}]`}generateObject(A,U,Z){if(U.length===1&&Array.isArray(U[0])&&Array.isArray(U[0][1])&&U[0][1][0]==="comprehension"){let[$,Y]=U[0],[,Q,F,X]=Y;return this.generate(["object-comprehension",$,Q,F,X],Z)}return`{${U.map(($)=>{if(this.is($,"..."))return`...${this.generate($[1],"value")}`;let[Y,Q,F]=$,X;if(this.is(Y,"dynamicKey"))X=`[${this.generate(Y[1],"value")}]`;else if(this.is(Y,"str"))X=`[${this.generate(Y,"value")}]`;else this.suppressReactiveUnwrap=!0,X=this.generate(Y,"value"),this.suppressReactiveUnwrap=!1;let D=this.generate(Q,"value");if(F==="=")return`${X} = ${D}`;if(F===":")return`${X}: ${D}`;if(X===D&&!Array.isArray(Y))return X;return`${X}: ${D}`}).join(", ")}}`}generateBlock(A,U,Z){if(Z==="statement")return`{
|
|
172
172
|
${this.withIndent(()=>this.formatStatements(U)).join(`
|
|
173
173
|
`)}
|
|
174
|
-
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],Z);let W=U[U.length-1];if(Array.isArray(W)&&["break","continue","return","throw"].includes(W[0])){let
|
|
175
|
-
${this.withIndent(()
|
|
174
|
+
${this.indent()}}`;if(U.length===0)return"undefined";if(U.length===1)return this.generate(U[0],Z);let W=U[U.length-1];if(Array.isArray(W)&&["break","continue","return","throw"].includes(W[0])){let Y=U.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement")));return`{
|
|
175
|
+
${this.withIndent(()=>Y.map((Q)=>this.indent()+Q).join(`
|
|
176
176
|
`))}
|
|
177
|
-
${this.indent()}}`}return`(${U.map((
|
|
177
|
+
${this.indent()}}`}return`(${U.map((Y)=>this.generate(Y,"value")).join(", ")})`}generateTry(A,U,Z){let W=Z==="value",$="try ",Y=U[0];if($+=W&&this.is(Y,"block")?this.generateBlockWithReturns(Y):this.generate(Y,"statement"),U.length>=2&&Array.isArray(U[1])&&U[1].length===2&&U[1][0]!=="block"){let[Q,F]=U[1];if($+=" catch",Q&&(this.is(Q,"object")||this.is(Q,"array"))){$+=" (error)";let X=`(${this.generate(Q,"value")} = error)`;F=this.is(F,"block")?["block",X,...F.slice(1)]:["block",X,F]}else if(Q)$+=` (${Q})`;$+=" "+(W&&this.is(F,"block")?this.generateBlockWithReturns(F):this.generate(F,"statement"))}else if(U.length===2)$+=" finally "+this.generate(U[1],"statement");if(U.length===3)$+=" finally "+this.generate(U[2],"statement");if(W)return`(${this.containsAwait(U[0])||U[1]&&this.containsAwait(U[1])?"async ":""}() => { ${$} })()`;return $}generateThrow(A,U,Z){let[W]=U;if(Array.isArray(W)){let Y=W,Q=null;if(W[0]==="new"&&Array.isArray(W[1])&&W[1][0]==="if")Q="new",Y=W[1];else if(W[0]==="if")Y=W;if(Y[0]==="if"){let[,F,X]=Y,D=Array.isArray(X)&&X.length===1?X[0]:X;W=Q==="new"?["new",D]:D;let J=this.generate(F,"value"),z=`throw ${this.generate(W,"value")}`;return`if (${J}) {
|
|
178
178
|
${this.indent()} ${z};
|
|
179
|
-
${this.indent()}}`}}let
|
|
180
|
-
`;this.indentLevel++;for(let F of
|
|
181
|
-
`}this.indentLevel++,Q+=this.generateSwitchCaseBody(D,Z),this.indentLevel--}if(
|
|
182
|
-
`,this.indentLevel++,Q+=this.generateSwitchCaseBody(
|
|
179
|
+
${this.indent()}}`}}let $=`throw ${this.generate(W,"value")}`;return Z==="value"?`(() => { ${$}; })()`:$}generateControl(A,U,Z){let[W,$,Y]=U,Q=L(W),F=Y[0]==="return",X=this.generate($,"value"),D=Y.length>1?Y[1]:null,J=F?D?`return ${this.generate(D,"value")}`:"return":D?`throw ${this.generate(D,"value")}`:"throw new Error()",z=this.wrapForCondition(X);if(Z==="value"){if(Q==="??")return`(() => { const __v = ${X}; if (__v == null) ${J}; return __v; })()`;if(Q==="||")return`(() => { const __v = ${X}; if (!__v) ${J}; return __v; })()`;return`(() => { const __v = ${X}; if (__v) ${J}; return __v; })()`}if(Q==="??")return`if (${z} == null) ${J}`;if(Q==="||")return`if (!${z}) ${J}`;return`if (${z}) ${J}`}generateSwitch(A,U,Z){let[W,$,Y]=U;if(W===null)return this.generateSwitchAsIfChain($,Y,Z);let Q=`switch (${this.generate(W,"value")}) {
|
|
180
|
+
`;this.indentLevel++;for(let F of $){let[,X,D]=F;for(let J of X){let z=L(J)??J,G;if(Array.isArray(z))G=this.generate(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))G=`'${z.slice(1,-1)}'`;else G=this.generate(z,"value");Q+=this.indent()+`case ${G}:
|
|
181
|
+
`}this.indentLevel++,Q+=this.generateSwitchCaseBody(D,Z),this.indentLevel--}if(Y)Q+=this.indent()+`default:
|
|
182
|
+
`,this.indentLevel++,Q+=this.generateSwitchCaseBody(Y,Z),this.indentLevel--;if(this.indentLevel--,Q+=this.indent()+"}",Z==="value")return`(${$.some((X)=>this.containsAwait(X[2]))||Y&&this.containsAwait(Y)?"async ":""}() => { ${Q} })()`;return Q}generateWhen(){throw Error("when clause should be handled by switch")}_forInHeader(A,U,Z){let W=Array.isArray(A)?A:[A],$=W.length===0,[Y,Q]=$?["_i",null]:W,F=this.is(Y,"array")||this.is(Y,"object")?this.generateDestructuringPattern(Y):Y;if(Z&&Z!==null){let X=Array.isArray(U)&&U[0];if(X instanceof String)X=L(X);if(X===".."||X==="..."){let w=X==="...",[I,_]=U.slice(1),E=this.generate(I,"value"),P=this.generate(_,"value"),O=this.generate(Z,"value");return{header:`for (let ${F} = ${E}; ${F} ${w?"<":"<="} ${P}; ${F} += ${O})`,setup:null}}let J=this.generate(U,"value"),z=Q||"_i",G=this.generate(Z,"value"),K=this.is(Z,"-",1),R=K&&(Z[1]==="1"||Z[1]===1||L(Z[1])==="1"),H=!K&&(Z==="1"||Z===1||L(Z)==="1"),q=R?`${z}--`:H?`${z}++`:`${z} += ${G}`;return{header:K?`for (let ${z} = ${J}.length - 1; ${z} >= 0; ${q})`:`for (let ${z} = 0; ${z} < ${J}.length; ${q})`,setup:$?null:`const ${F} = ${J}[${z}];`}}if(Q){let X=this.generate(U,"value");return{header:`for (let ${Q} = 0; ${Q} < ${X}.length; ${Q}++)`,setup:`const ${F} = ${X}[${Q}];`}}return{header:`for (const ${F} of ${this.generate(U,"value")})`,setup:null}}_forOfHeader(A,U,Z){let W=Array.isArray(A)?A:[A],[$,Y]=W,Q=this.is($,"array")||this.is($,"object")?this.generateDestructuringPattern($):$,F=this.generate(U,"value");return{header:`for (const ${Q} in ${F})`,own:Z,vv:Y,oc:F,kvp:Q}}_forAsHeader(A,U,Z){let W=Array.isArray(A)?A:[A],[$]=W,Y=this.is($,"array")||this.is($,"object")?this.generateDestructuringPattern($):$;return{header:`for ${Z?"await ":""}(const ${Y} of ${this.generate(U,"value")})`}}generateComprehension(A,U,Z){let[W,$,Y]=U;if(Z==="statement")return this.generateComprehensionAsLoop(W,$,Y);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(W,$,Y,this.comprehensionTarget);let F=`(${this.containsAwait(W)?"async ":""}() => {
|
|
183
183
|
`;this.indentLevel++,this.comprehensionDepth++,F+=this.indent()+`const result = [];
|
|
184
|
-
`;for(let
|
|
184
|
+
`;for(let J of $){let[z,G,K,R]=J;if(z==="for-in"){let{header:H,setup:q}=this._forInHeader(G,K,R);if(F+=this.indent()+H+` {
|
|
185
185
|
`,this.indentLevel++,q)F+=this.indent()+q+`
|
|
186
|
-
`}else if(z==="for-of"){let{header:
|
|
186
|
+
`}else if(z==="for-of"){let{header:H,own:q,vv:M,oc:w,kvp:I}=this._forOfHeader(G,K,R);if(F+=this.indent()+H+` {
|
|
187
187
|
`,this.indentLevel++,q)F+=this.indent()+`if (!Object.hasOwn(${w}, ${I})) continue;
|
|
188
|
-
`;if(
|
|
189
|
-
`}else if(z==="for-as"){let{header:
|
|
190
|
-
`,this.indentLevel++}}for(let
|
|
191
|
-
`,this.indentLevel++;let
|
|
188
|
+
`;if(M)F+=this.indent()+`const ${M} = ${w}[${I}];
|
|
189
|
+
`}else if(z==="for-as"){let{header:H}=this._forAsHeader(G,K,J[3]);F+=this.indent()+H+` {
|
|
190
|
+
`,this.indentLevel++}}for(let J of Y)F+=this.indent()+`if (${this.generate(J,"value")}) {
|
|
191
|
+
`,this.indentLevel++;let X=(J)=>{if(typeof J==="string"&&(J==="break"||J==="continue"))return!0;if(!Array.isArray(J))return!1;if(["break","continue","return","throw"].includes(J[0]))return!0;if(J[0]==="if")return J.slice(1).some(X);return J.some(X)},D=["for-in","for-of","for-as","while","loop"];if(this.is(W,"block"))for(let J=0;J<W.length-1;J++){let z=W[J+1];if(J!==W.length-2||X(z))F+=this.indent()+this.generate(z,"statement")+`;
|
|
192
192
|
`;else if(Array.isArray(z)&&D.includes(z[0]))F+=this.indent()+this.generate(z,"statement")+`;
|
|
193
193
|
`;else F+=this.indent()+`result.push(${this.generate(z,"value")});
|
|
194
|
-
`}else if(
|
|
194
|
+
`}else if(X(W))F+=this.indent()+this.generate(W,"statement")+`;
|
|
195
195
|
`;else if(Array.isArray(W)&&D.includes(W[0]))F+=this.indent()+this.generate(W,"statement")+`;
|
|
196
196
|
`;else F+=this.indent()+`result.push(${this.generate(W,"value")});
|
|
197
|
-
`;for(let
|
|
198
|
-
`;for(let
|
|
197
|
+
`;for(let J=0;J<Y.length;J++)this.indentLevel--,F+=this.indent()+`}
|
|
198
|
+
`;for(let J=0;J<$.length;J++)this.indentLevel--,F+=this.indent()+`}
|
|
199
199
|
`;return F+=this.indent()+`return result;
|
|
200
|
-
`,this.indentLevel--,this.comprehensionDepth--,F+=this.indent()+"})()",F}generateObjectComprehension(A,U,Z){let[W,
|
|
200
|
+
`,this.indentLevel--,this.comprehensionDepth--,F+=this.indent()+"})()",F}generateObjectComprehension(A,U,Z){let[W,$,Y,Q]=U,F=`(() => {
|
|
201
201
|
`;this.indentLevel++,F+=this.indent()+`const result = {};
|
|
202
|
-
`;for(let
|
|
203
|
-
`,this.indentLevel++,
|
|
204
|
-
`;if(
|
|
205
|
-
`}}for(let
|
|
206
|
-
`,this.indentLevel++;F+=this.indent()+`result[${this.generate(W,"value")}] = ${this.generate(
|
|
207
|
-
`;for(let
|
|
208
|
-
`;for(let
|
|
202
|
+
`;for(let X of Y){let[D,J,z,G]=X;if(D==="for-of"){let[K,R]=J,H=this.generate(z,"value");if(F+=this.indent()+`for (const ${K} in ${H}) {
|
|
203
|
+
`,this.indentLevel++,G)F+=this.indent()+`if (!Object.hasOwn(${H}, ${K})) continue;
|
|
204
|
+
`;if(R)F+=this.indent()+`const ${R} = ${H}[${K}];
|
|
205
|
+
`}}for(let X of Q)F+=this.indent()+`if (${this.generate(X,"value")}) {
|
|
206
|
+
`,this.indentLevel++;F+=this.indent()+`result[${this.generate(W,"value")}] = ${this.generate($,"value")};
|
|
207
|
+
`;for(let X=0;X<Q.length;X++)this.indentLevel--,F+=this.indent()+`}
|
|
208
|
+
`;for(let X=0;X<Y.length;X++)this.indentLevel--,F+=this.indent()+`}
|
|
209
209
|
`;return F+=this.indent()+`return result;
|
|
210
|
-
`,this.indentLevel--,F+=this.indent()+"})()",F}generateClass(A,U,Z){let[W
|
|
211
|
-
|
|
212
|
-
`}else if(
|
|
210
|
+
`,this.indentLevel--,F+=this.indent()+"})()",F}generateClass(A,U,Z){let[W,$,...Y]=U,Q=W?`class ${W}`:"class";if($)Q+=` extends ${this.generate($,"value")}`;if(Q+=` {
|
|
211
|
+
`,Y.length>0&&Array.isArray(Y[0])){let F=Y[0];if(F[0]==="block"){let X=F.slice(1),D=X.length>0&&Array.isArray(X[0])&&X[0][0]==="object";if(D&&X.length===1){let J=X[0].slice(1);this.indentLevel++;let z=[];for(let[G,K]of J){let R=this.is(G,".")&&G[1]==="this",H=this.is(G,"computed"),q=this.extractMemberName(G);if(this.is(K,"=>")&&!R&&!H&&q!=="constructor")z.push(q)}for(let[G,K]of J){let R=this.is(G,".")&&G[1]==="this",H=this.is(G,"computed"),q=this.extractMemberName(G);if(this.is(K,"->")||this.is(K,"=>")){let[,M,w]=K,I=this.containsAwait(w),_=this.containsYield(w),E=M,P=[];if(q==="constructor"){let N=!!$,T=N?new Map:null;E=M.map((S)=>{if(this.is(S,".")&&S[1]==="this"){let f=S[2],V=N?`_${f}`:f;if(P.push(`this.${f} = ${V}`),N)T.set(f,V);return V}if(this.is(S,"default")&&this.is(S[1],".")&&S[1][1]==="this"){let f=S[1][2],V=N?`_${f}`:f;if(P.push(`this.${f} = ${V}`),N)T.set(f,V);return["default",V,S[2]]}return S});for(let S of z)P.unshift(`this.${S} = this.${S}.bind(this)`);if(T?.size>0)this._atParamMap=T}let O=this.generateParamList(E),B=(R?"static ":"")+(I?"async ":"")+(_?"*":"");if(Q+=this.indent()+`${B}${q}(${O}) `,!H)this.currentMethodName=q;Q+=this.generateMethodBody(w,P,q==="constructor",E),this._atParamMap=null,this.currentMethodName=null,Q+=`
|
|
212
|
+
`}else if(R)Q+=this.indent()+`static ${q} = ${this.generate(K,"value")};
|
|
213
213
|
`;else Q+=this.indent()+`${q} = ${this.generate(K,"value")};
|
|
214
|
-
`}this.indentLevel--}else if(D){let X
|
|
215
|
-
`}else if(
|
|
216
|
-
`;else Q+=this.indent()+`${
|
|
217
|
-
`}for(let
|
|
218
|
-
`}else Q+=this.indent()+this.generate(
|
|
219
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
220
|
-
`;else Q+=this.indent()+this.generate(
|
|
221
|
-
`;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(A,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let Z=U.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${Z})`;return`super(${Z})`}generateImport(A,U,Z,W){if(U.length===1){let F=`import(${this.generate(U[0],"value")})`;if(u(W[0],"await")===!0)return`(await ${F})`;return F}let[Y
|
|
222
|
-
export default ${Z[1]}`;return`export default ${this.generate(Z,"statement")}`}generateExportAll(A,U){return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom(A,U){let[Z,W]=U
|
|
214
|
+
`}this.indentLevel--}else if(D){let J=X[0].slice(1),z=X.slice(1);this.indentLevel++;for(let[G,K]of J){let R=this.is(G,".")&&G[1]==="this",H=this.extractMemberName(G);if(this.is(K,"->")||this.is(K,"=>")){let[,q,M]=K,w=this.generateParamList(q),I=(R?"static ":"")+(this.containsAwait(M)?"async ":"")+(this.containsYield(M)?"*":"");Q+=this.indent()+`${I}${H}(${w}) `,this.currentMethodName=H,Q+=this.generateMethodBody(M,[],H==="constructor",q),this.currentMethodName=null,Q+=`
|
|
215
|
+
`}else if(R)Q+=this.indent()+`static ${H} = ${this.generate(K,"value")};
|
|
216
|
+
`;else Q+=this.indent()+`${H} = ${this.generate(K,"value")};
|
|
217
|
+
`}for(let G of z)if(this.is(G,"class")){let[,K,R,...H]=G;if(this.is(K,".")&&K[1]==="this")Q+=this.indent()+`static ${K[2]} = ${this.generate(["class",null,R,...H],"value")};
|
|
218
|
+
`}else Q+=this.indent()+this.generate(G,"statement")+`;
|
|
219
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let J of X)if(this.is(J,"=")&&Array.isArray(J[1])&&J[1][0]==="."&&J[1][1]==="this")Q+=this.indent()+`static ${J[1][2]} = ${this.generate(J[2],"value")};
|
|
220
|
+
`;else Q+=this.indent()+this.generate(J,"statement")+`;
|
|
221
|
+
`;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(A,U){if(U.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let Z=U.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${Z})`;return`super(${Z})`}generateImport(A,U,Z,W){if(U.length===1){let F=`import(${this.generate(U[0],"value")})`;if(u(W[0],"await")===!0)return`(await ${F})`;return F}let[$,Y]=U,Q=this.addJsExtensionAndAssertions(Y);if(typeof $==="string")return`import ${$} from ${Q}`;if(Array.isArray($)){if($[0]==="*"&&$.length===2)return`import * as ${$[1]} from ${Q}`;if(typeof $[0]==="string"&&Array.isArray($[1])){let X=$[0],D=$[1];if(D[0]==="*"&&D.length===2)return`import ${X}, * as ${D[1]} from ${Q}`;let J=(Array.isArray(D)?D:[D]).map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${X}, { ${J} } from ${Q}`}return`import { ${$.map((X)=>Array.isArray(X)&&X.length===2?`${X[0]} as ${X[1]}`:X).join(", ")} } from ${Q}`}return`import ${this.generate($,"value")} from ${Q}`}generateExport(A,U){let[Z]=U;if(Array.isArray(Z)&&Z.every((W)=>typeof W==="string"))return`export { ${Z.join(", ")} }`;if(this.is(Z,"="))return`export const ${Z[1]} = ${this.generate(Z[2],"value")}`;return`export ${this.generate(Z,"statement")}`}generateExportDefault(A,U){let[Z]=U;if(this.is(Z,"="))return`const ${Z[1]} = ${this.generate(Z[2],"value")};
|
|
222
|
+
export default ${Z[1]}`;return`export default ${this.generate(Z,"statement")}`}generateExportAll(A,U){return`export * from ${this.addJsExtensionAndAssertions(U[0])}`}generateExportFrom(A,U){let[Z,W]=U,$=this.addJsExtensionAndAssertions(W);if(Array.isArray(Z))return`export { ${Z.map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ")} } from ${$}`;return`export ${Z} from ${$}`}generateDoIIFE(A,U){return`(${this.generate(U[0],"statement")})()`}generateRegex(A,U){return U.length===0?A:this.generate(U[0],"value")}generateTaggedTemplate(A,U){let[Z,W]=U,$=this.generate(Z,"value"),Y=this.generate(W,"value");if(Y.startsWith("`"))return`${$}${Y}`;if(Y.startsWith('"')||Y.startsWith("'"))return`${$}\`${Y.slice(1,-1)}\``;return`${$}\`${Y}\``}generateString(A,U){let Z="`";for(let W of U)if(W instanceof String)Z+=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);Z+=W.slice(1,-1)}else Z+=W;else if(Array.isArray(W))if(W.length===1&&typeof W[0]==="string"&&!Array.isArray(W[0])){let $=W[0];Z+=/^[\d"']/.test($)?"${"+this.generate($,"value")+"}":"${"+$+"}"}else{let $=W.length===1&&Array.isArray(W[0])?W[0]:W;Z+="${"+this.generate($,"value")+"}"}return Z+"`"}findPostfixConditional(A){if(!Array.isArray(A))return null;let U=A[0];if(U==="if"&&A.length===3)return{type:U,condition:A[1],value:A[2]};if(U==="+"||U==="-"||U==="*"||U==="/")for(let Z=1;Z<A.length;Z++){let W=this.findPostfixConditional(A[Z]);if(W)return W.parentOp=U,W.operandIndex=Z,W.otherOperands=A.slice(1).filter(($,Y)=>Y!==Z-1),W}return null}rebuildWithoutConditional(A){let U=Array.isArray(A.value)&&A.value.length===1?A.value[0]:A.value;if(A.parentOp)return[A.parentOp,...A.otherOperands,U];return U}generateDestructuringPattern(A){return this.formatParam(A)}generateParamList(A){let U=A.findIndex((W)=>this.is(W,"expansion"));if(U!==-1){let W=A.slice(0,U),$=A.slice(U+1),Y=W.map((Q)=>this.formatParam(Q)).join(", ");return this.expansionAfterParams=$,Y?`${Y}, ..._rest`:"..._rest"}let Z=A.findIndex((W)=>this.is(W,"rest"));if(Z!==-1&&Z<A.length-1){let W=A.slice(0,Z),$=A[Z],Y=A.slice(Z+1),Q=W.map((F)=>this.formatParam(F));return this.restMiddleParam={restName:$[1],afterParams:Y,beforeCount:W.length},Q.length>0?`${Q.join(", ")}, ...${$[1]}`:`...${$[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,A.map((W)=>this.formatParam(W)).join(", ")}formatParam(A){if(typeof A==="string")return A;if(A instanceof String)return A.valueOf();if(this.is(A,"rest"))return`...${A[1]}`;if(this.is(A,"default"))return`${A[1]} = ${this.generate(A[2],"value")}`;if(this.is(A,".")&&A[1]==="this")return A[2];if(this.is(A,"array"))return`[${A.slice(1).map((Z)=>{if(Z===",")return"";if(Z==="...")return"";if(this.is(Z,"..."))return`...${Z[1]}`;if(this.is(Z,"=")&&typeof Z[1]==="string")return`${Z[1]} = ${this.generate(Z[2],"value")}`;if(typeof Z==="string")return Z;return this.formatParam(Z)}).join(", ")}]`;if(this.is(A,"object"))return`{${A.slice(1).map((Z)=>{if(this.is(Z,"..."))return`...${Z[1]}`;if(this.is(Z,"default"))return`${Z[1]} = ${this.generate(Z[2],"value")}`;let[W,$]=Z;if(W===$)return W;return`${W}: ${$}`}).join(", ")}}`;return JSON.stringify(A)}generateBodyWithReturns(A,U=[],Z={}){let{sideEffectOnly:W=!1,autoAssignments:$=[],isConstructor:Y=!1,hasExpansionParams:Q=!1}=Z,F=this.sideEffectOnly;this.sideEffectOnly=W;let X=new Set,D=(H)=>{if(typeof H==="string")X.add(H);else if(Array.isArray(H)){if(H[0]==="rest"||H[0]==="..."){if(typeof H[1]==="string")X.add(H[1])}else if(H[0]==="default"){if(typeof H[1]==="string")X.add(H[1])}else if(H[0]==="array"||H[0]==="object")this.collectVarsFromArray(H,X)}};if(Array.isArray(U))U.forEach(D);let J=this.collectFunctionVariables(A),z=new Set([...J].filter((H)=>!this.programVars.has(H)&&!this.reactiveVars?.has(H)&&!X.has(H)&&!this.scopeStack.some((q)=>q.has(H)))),G=["return","throw","break","continue"],K=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...z,...X])),this.is(A,"block")){let H=this.unwrapBlock(A);if(Q&&this.expansionAfterParams?.length>0)H=[...this.expansionAfterParams.map((_,E)=>{return`const ${typeof _==="string"?_:JSON.stringify(_)} = _rest[_rest.length - ${this.expansionAfterParams.length-E}]`}),...H],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:I,afterParams:_}=this.restMiddleParam,E=_.length,P=[];if(_.forEach((O,B)=>{let N=typeof O==="string"?O:this.is(O,"default")?O[1]:JSON.stringify(O);P.push(`const ${N} = ${I}[${I}.length - ${E-B}]`)}),E>0)P.push(`${I} = ${I}.slice(0, -${E})`);H=[...P,...H],this.restMiddleParam=null}this.indentLevel++;let q=`{
|
|
223
223
|
`;if(z.size>0)q+=this.indent()+`let ${Array.from(z).sort().join(", ")};
|
|
224
|
-
`;let
|
|
225
|
-
`;return}if(
|
|
226
|
-
`;return}}}let B
|
|
224
|
+
`;let M=$.length>0&&H.length>0&&Array.isArray(H[0])&&H[0][0]==="super",w=(I)=>{I.forEach((_,E)=>{let P=E===I.length-1,O=Array.isArray(_)?_[0]:null;if(!P&&O==="comprehension"){let[,S,f,V]=_;q+=this.indent()+this.generateComprehensionAsLoop(S,f,V)+`
|
|
225
|
+
`;return}if(!Y&&!W&&P&&O==="if"){let[S,f,...V]=_.slice(1),h=(n)=>this.is(n,"block")&&n.length>2;if(h(f)||V.some(h)){q+=this.generateIfElseWithEarlyReturns(_);return}}if(!Y&&!W&&P&&O==="="){let[S,f]=_.slice(1);if(typeof S==="string"&&Array.isArray(f)){let V=f[0];if(V==="comprehension"||V==="for-in"){this.comprehensionTarget=S,q+=this.generate(f,"value"),this.comprehensionTarget=null,q+=this.indent()+`return ${S};
|
|
226
|
+
`;return}}}let B=!Y&&!W&&P&&!G.includes(O)&&!K.includes(O)&&!this.hasExplicitControlFlow(_),N=B?"value":"statement",T=this.generate(_,N);if(B)q+=this.indent()+"return "+T+`;
|
|
227
227
|
`;else q+=this.indent()+this.addSemicolon(_,T)+`
|
|
228
|
-
`})};if(
|
|
229
|
-
`;else q+=this.indent()+this.generate(
|
|
230
|
-
`;for(let _ of
|
|
231
|
-
`;w(
|
|
232
|
-
`;w(
|
|
233
|
-
`}return this.indentLevel--,q+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=F,q}this.sideEffectOnly=F;let
|
|
234
|
-
${this.withIndent(()=>U.map((W
|
|
228
|
+
`})};if(M){if(H.length===1&&!Y)q+=this.indent()+"return "+this.generate(H[0],"value")+`;
|
|
229
|
+
`;else q+=this.indent()+this.generate(H[0],"statement")+`;
|
|
230
|
+
`;for(let _ of $)q+=this.indent()+_+`;
|
|
231
|
+
`;w(H.slice(1))}else{for(let I of $)q+=this.indent()+I+`;
|
|
232
|
+
`;w(H)}if(W&&H.length>0){let I=Array.isArray(H[H.length-1])?H[H.length-1][0]:null;if(!G.includes(I))q+=this.indent()+`return;
|
|
233
|
+
`}return this.indentLevel--,q+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=F,q}this.sideEffectOnly=F;let R;if(Y&&$.length>0){let H=Array.isArray(A)&&A[0]==="super",q=this.generate(A,"statement"),M=$.map((w)=>`${w};`).join(" ");R=H?`{ ${q}; ${M} }`:`{ ${M} ${q}; }`}else if(Y||this.hasExplicitControlFlow(A))R=`{ ${this.generate(A,"statement")}; }`;else if(Array.isArray(A)&&(G.includes(A[0])||K.includes(A[0])))R=`{ ${this.generate(A,"statement")}; }`;else if(W)R=`{ ${this.generate(A,"statement")}; return; }`;else R=`{ return ${this.generate(A,"value")}; }`;return this.scopeStack.pop(),R}generateFunctionBody(A,U=[],Z=!1){return this.generateBodyWithReturns(A,U,{sideEffectOnly:Z,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(A,U=[],Z=!1,W=[]){return this.generateBodyWithReturns(A,W,{autoAssignments:U,isConstructor:Z})}generateBlockWithReturns(A){if(!Array.isArray(A)||A[0]!=="block")return this.generate(A,"statement");let U=this.unwrapBlock(A);return`{
|
|
234
|
+
${this.withIndent(()=>U.map((W,$)=>{let Y=$===U.length-1,Q=Array.isArray(W)?W[0]:null,F=Y&&!["return","throw","break","continue"].includes(Q),X=this.generate(W,F?"value":"statement");return F?this.indent()+"return "+X+";":this.indent()+X+";"})).join(`
|
|
235
235
|
`)}
|
|
236
236
|
${this.indent()}}`}generateLoopBody(A){if(!Array.isArray(A))return`{ ${this.generate(A,"statement")}; }`;if(A[0]==="block"||Array.isArray(A[0])){let U=A[0]==="block"?A.slice(1):A;return`{
|
|
237
|
-
${this.withIndent(()=>U.map((W)=>{if(this.is(W,"comprehension")){let[,
|
|
237
|
+
${this.withIndent(()=>U.map((W)=>{if(this.is(W,"comprehension")){let[,$,Y,Q]=W;return this.indent()+this.generateComprehensionAsLoop($,Y,Q)}return this.indent()+this.addSemicolon(W,this.generate(W,"statement"))})).join(`
|
|
238
238
|
`)}
|
|
239
|
-
${this.indent()}}`}return`{ ${this.generate(A,"statement")}; }`}generateLoopBodyWithGuard(A,U){let Z=this.unwrap(this.generate(U,"value"));if(!Array.isArray(A))return`{ if (${Z}) ${this.generate(A,"statement")}; }`;if(A[0]==="block"||Array.isArray(A[0])){let W=A[0]==="block"?A.slice(1):A
|
|
240
|
-
`,Q=this.withIndent(()=>{this.indentLevel++;let
|
|
241
|
-
${
|
|
239
|
+
${this.indent()}}`}return`{ ${this.generate(A,"statement")}; }`}generateLoopBodyWithGuard(A,U){let Z=this.unwrap(this.generate(U,"value"));if(!Array.isArray(A))return`{ if (${Z}) ${this.generate(A,"statement")}; }`;if(A[0]==="block"||Array.isArray(A[0])){let W=A[0]==="block"?A.slice(1):A,$=this.withIndent(()=>this.indent()),Y=`if (${Z}) {
|
|
240
|
+
`,Q=this.withIndent(()=>{this.indentLevel++;let X=this.formatStatements(W);return this.indentLevel--,X}),F=this.withIndent(()=>this.indent()+"}");return`{
|
|
241
|
+
${$}${Y}${Q.join(`
|
|
242
242
|
`)}
|
|
243
243
|
${F}
|
|
244
|
-
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate(A,"statement")}; }`}generateComprehensionWithTarget(A,U,Z,W){let
|
|
245
|
-
`;let
|
|
246
|
-
`,this.indentLevel++,z)
|
|
247
|
-
`;if(Z&&Z.length>0)
|
|
248
|
-
`,this.indentLevel++;if(
|
|
249
|
-
`,Z&&Z.length>0)this.indentLevel
|
|
250
|
-
`;return this.indentLevel
|
|
251
|
-
|
|
252
|
-
`}generateComprehensionAsLoop(A,U,Z){let W=""
|
|
244
|
+
${this.indent()}}`}return`{ if (${this.generate(U,"value")}) ${this.generate(A,"statement")}; }`}generateComprehensionWithTarget(A,U,Z,W){let $="";$+=this.indent()+`${W} = [];
|
|
245
|
+
`;let Y=this.is(A,"block")&&A.length===2?A[1]:A;if(U.length===1){let[Q,F,X,D]=U[0];if(Q==="for-in"){let{header:J,setup:z}=this._forInHeader(F,X,D);if($+=this.indent()+J+` {
|
|
246
|
+
`,this.indentLevel++,z)$+=this.indent()+z+`
|
|
247
|
+
`;if(Z&&Z.length>0)$+=this.indent()+`if (${Z.map((G)=>this.generate(G,"value")).join(" && ")}) {
|
|
248
|
+
`,this.indentLevel++;if($+=this.indent()+`${W}.push(${this.unwrap(this.generate(Y,"value"))});
|
|
249
|
+
`,Z&&Z.length>0)this.indentLevel--,$+=this.indent()+`}
|
|
250
|
+
`;return this.indentLevel--,$+=this.indent()+`}
|
|
251
|
+
`,$}}return this.indent()+`${W} = (() => { /* complex comprehension */ })();
|
|
252
|
+
`}generateComprehensionAsLoop(A,U,Z){let W="",$=Z?.length?Z.map((Q)=>this.generate(Q,"value")).join(" && "):null,Y=()=>{if($)W+=this.indent()+`if (${$}) {
|
|
253
253
|
`,this.indentLevel++,W+=this.indent()+this.generate(A,"statement")+`;
|
|
254
254
|
`,this.indentLevel--,W+=this.indent()+`}
|
|
255
255
|
`;else W+=this.indent()+this.generate(A,"statement")+`;
|
|
256
|
-
`};if(U.length===1){let[Q,F,
|
|
256
|
+
`};if(U.length===1){let[Q,F,X,D]=U[0];if(Q==="for-in"){let{header:J,setup:z}=this._forInHeader(F,X,D);if(W+=J+` {
|
|
257
257
|
`,this.indentLevel++,z)W+=this.indent()+z+`
|
|
258
|
-
`;return
|
|
259
|
-
`,this.indentLevel
|
|
260
|
-
`,this.indentLevel++,z)W+=this.indent()+`if (!Object.hasOwn(${K}, ${
|
|
261
|
-
`;if(
|
|
262
|
-
`;return
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
`;else Z+=this.indent()+this.generate(
|
|
268
|
-
`}return Z}generateIfAsExpression(A,U,Z){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||Z.some((F)=>this.is(F,"block")&&F.length>2||this.hasStatementInBranch(F)||this.hasNestedMultiStatement(F))){let F=this.containsAwait(A)||this.containsAwait(U)||Z.some((D)=>this.containsAwait(D)),
|
|
269
|
-
`;else if(U==="value")if(this.is(A,"block")&&A.length>2){let
|
|
270
|
-
`;else Z+=this.indent()+this.generate(Y
|
|
258
|
+
`;return Y(),this.indentLevel--,W+=this.indent()+"}",W}if(Q==="for-as"){let{header:J}=this._forAsHeader(F,X,D);return W+=J+` {
|
|
259
|
+
`,this.indentLevel++,Y(),this.indentLevel--,W+=this.indent()+"}",W}if(Q==="for-of"){let{header:J,own:z,vv:G,oc:K,kvp:R}=this._forOfHeader(F,X,D);if(W+=J+` {
|
|
260
|
+
`,this.indentLevel++,z)W+=this.indent()+`if (!Object.hasOwn(${K}, ${R})) continue;
|
|
261
|
+
`;if(G)W+=this.indent()+`const ${G} = ${K}[${R}];
|
|
262
|
+
`;return Y(),this.indentLevel--,W+=this.indent()+"}",W}}return this.generate(["comprehension",A,U,Z],"value")}generateIfElseWithEarlyReturns(A){let[U,Z,W,...$]=A,Y="",Q=this.generate(Z,"value");Y+=this.indent()+`if (${Q}) {
|
|
263
|
+
`,Y+=this.withIndent(()=>this.generateBranchWithReturn(W)),Y+=this.indent()+"}";for(let F of $)if(Y+=" else ",this.is(F,"if")){let[,X,D,...J]=F;Y+=`if (${this.generate(X,"value")}) {
|
|
264
|
+
`,Y+=this.withIndent(()=>this.generateBranchWithReturn(D)),Y+=this.indent()+"}";for(let z of J)Y+=` else {
|
|
265
|
+
`,Y+=this.withIndent(()=>this.generateBranchWithReturn(z)),Y+=this.indent()+"}"}else Y+=`{
|
|
266
|
+
`,Y+=this.withIndent(()=>this.generateBranchWithReturn(F)),Y+=this.indent()+"}";return Y}generateBranchWithReturn(A){let U=this.unwrapBlock(A),Z="";for(let W=0;W<U.length;W++){let $=W===U.length-1,Y=U[W],Q=Array.isArray(Y)?Y[0]:null;if($&&!(Q==="return"||Q==="throw"||Q==="break"||Q==="continue"))Z+=this.indent()+`return ${this.generate(Y,"value")};
|
|
267
|
+
`;else Z+=this.indent()+this.generate(Y,"statement")+`;
|
|
268
|
+
`}return Z}generateIfAsExpression(A,U,Z){if(this.is(U,"block")&&U.length>2||this.hasStatementInBranch(U)||Z.some((F)=>this.is(F,"block")&&F.length>2||this.hasStatementInBranch(F)||this.hasNestedMultiStatement(F))){let F=this.containsAwait(A)||this.containsAwait(U)||Z.some((D)=>this.containsAwait(D)),X=`${F?"await ":""}(${F?"async ":""}() => { `;X+=`if (${this.generate(A,"value")}) `,X+=this.generateBlockWithReturns(U);for(let D of Z)if(X+=" else ",this.is(D,"if")){let[J,z,G,...K]=D;X+=`if (${this.generate(z,"value")}) `,X+=this.generateBlockWithReturns(G);for(let R of K)if(X+=" else ",this.is(R,"if")){let[H,q,M,...w]=R;X+=`if (${this.generate(q,"value")}) `,X+=this.generateBlockWithReturns(M),Z.push(...w)}else X+=this.generateBlockWithReturns(R)}else X+=this.generateBlockWithReturns(D);return X+" })()"}let $=this.extractExpression(this.unwrapIfBranch(U)),Y=this.buildTernaryChain(Z),Q=this.generate(A,"value");if(this.is(A,"yield")||this.is(A,"await"))Q=`(${Q})`;return`(${Q} ? ${$} : ${Y})`}generateIfAsStatement(A,U,Z){let W=`if (${this.unwrap(this.generate(A,"value"))}) `;W+=this.generate(this.unwrapIfBranch(U),"statement");for(let $ of Z)W+=" else "+this.generate(this.unwrapIfBranch($),"statement");return W}generateSwitchCaseBody(A,U){let Z="";if(this.hasExplicitControlFlow(A))for(let $ of this.unwrapBlock(A))Z+=this.indent()+this.generate($,"statement")+`;
|
|
269
|
+
`;else if(U==="value")if(this.is(A,"block")&&A.length>2){let $=A.slice(1);for(let Y=0;Y<$.length;Y++)if(Y===$.length-1)Z+=this.indent()+`return ${this.generate($[Y],"value")};
|
|
270
|
+
`;else Z+=this.indent()+this.generate($[Y],"statement")+`;
|
|
271
271
|
`}else Z+=this.indent()+`return ${this.extractExpression(A)};
|
|
272
|
-
`;else{if(this.is(A,"block")&&A.length>1)for(let
|
|
272
|
+
`;else{if(this.is(A,"block")&&A.length>1)for(let $ of A.slice(1))Z+=this.indent()+this.generate($,"statement")+`;
|
|
273
273
|
`;else Z+=this.indent()+this.generate(A,"statement")+`;
|
|
274
274
|
`;Z+=this.indent()+`break;
|
|
275
|
-
`}return Z}generateSwitchAsIfChain(A,U,Z){let W="";for(let
|
|
275
|
+
`}return Z}generateSwitchAsIfChain(A,U,Z){let W="";for(let $=0;$<A.length;$++){let[,Y,Q]=A[$],F=Array.isArray(Y)?Y[0]:Y;if(W+=($===0?"":" else ")+`if (${this.generate(F,"value")}) {
|
|
276
276
|
`,this.indentLevel++,Z==="value")W+=this.indent()+`return ${this.extractExpression(Q)};
|
|
277
|
-
`;else for(let
|
|
277
|
+
`;else for(let X of this.unwrapBlock(Q))W+=this.indent()+this.generate(X,"statement")+`;
|
|
278
278
|
`;this.indentLevel--,W+=this.indent()+"}"}if(U){if(W+=` else {
|
|
279
279
|
`,this.indentLevel++,Z==="value")W+=this.indent()+`return ${this.extractExpression(U)};
|
|
280
|
-
`;else for(let
|
|
281
|
-
`;this.indentLevel--,W+=this.indent()+"}"}return Z==="value"?`(() => { ${W} })()`:W}extractExpression(A){let U=this.unwrapBlock(A);return U.length>0?this.generate(U[U.length-1],"value"):"undefined"}unwrapBlock(A){if(!Array.isArray(A))return[A];if(A[0]==="block")return A.slice(1);if(Array.isArray(A[0]))return A;return[A]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(A,U){if(!U||U.endsWith(";"))return!1;if(!U.endsWith("}"))return!0;let Z=Array.isArray(A)?A[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(Z)}addSemicolon(A,U){return U+(this.needsSemicolon(A,U)?";":"")}formatStatements(A,U="statement"){return A.map((Z)=>this.indent()+this.addSemicolon(Z,this.generate(Z,U)))}wrapForCondition(A){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(A))return A;if(A.startsWith("(")&&A.endsWith(")"))return A;return`(${A})`}hasExplicitControlFlow(A){if(!Array.isArray(A))return!1;let U=A[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return A.slice(1).some((Z)=>Array.isArray(Z)&&["return","throw","break","continue"].includes(Z[0]));if(U==="switch"){let[,,Z]=A;return Z?.some((W)=>{return this.unwrapBlock(W[2]).some((
|
|
280
|
+
`;else for(let $ of this.unwrapBlock(U))W+=this.indent()+this.generate($,"statement")+`;
|
|
281
|
+
`;this.indentLevel--,W+=this.indent()+"}"}return Z==="value"?`(() => { ${W} })()`:W}extractExpression(A){let U=this.unwrapBlock(A);return U.length>0?this.generate(U[U.length-1],"value"):"undefined"}unwrapBlock(A){if(!Array.isArray(A))return[A];if(A[0]==="block")return A.slice(1);if(Array.isArray(A[0]))return A;return[A]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(A,U){if(!U||U.endsWith(";"))return!1;if(!U.endsWith("}"))return!0;let Z=Array.isArray(A)?A[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(Z)}addSemicolon(A,U){return U+(this.needsSemicolon(A,U)?";":"")}formatStatements(A,U="statement"){return A.map((Z)=>this.indent()+this.addSemicolon(Z,this.generate(Z,U)))}wrapForCondition(A){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(A))return A;if(A.startsWith("(")&&A.endsWith(")"))return A;return`(${A})`}hasExplicitControlFlow(A){if(!Array.isArray(A))return!1;let U=A[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return A.slice(1).some((Z)=>Array.isArray(Z)&&["return","throw","break","continue"].includes(Z[0]));if(U==="switch"){let[,,Z]=A;return Z?.some((W)=>{return this.unwrapBlock(W[2]).some((Y)=>Array.isArray(Y)&&["return","throw","break","continue"].includes(Y[0]))})}if(U==="if"){let[,,Z,W]=A;return this.branchHasControlFlow(Z)&&W&&this.branchHasControlFlow(W)}return!1}branchHasControlFlow(A){if(!Array.isArray(A))return!1;let U=this.unwrapBlock(A);if(U.length===0)return!1;let Z=U[U.length-1];return Array.isArray(Z)&&["return","throw","break","continue"].includes(Z[0])}withIndent(A){this.indentLevel++;let U=A();return this.indentLevel--,U}is(A,U,Z){if(!Array.isArray(A))return null;if((L(A[0])??A[0])!==U)return null;let W=A.slice(1);if(Z!=null&&W.length!==Z)return null;return W}unwrap(A){if(typeof A!=="string")return A;while(A.startsWith("(")&&A.endsWith(")")){let U=0,Z=0,W=!0,$=!1;for(let Y=0;Y<A.length;Y++){if(A[Y]==="(")U++;if(A[Y]===")")U--;if(A[Y]==="["||A[Y]==="{")Z++;if(A[Y]==="]"||A[Y]==="}")Z--;if(A[Y]===","&&U===1&&Z===0)$=!0;if(U===0&&Y<A.length-1){W=!1;break}}if($)W=!1;if(W)A=A.slice(1,-1);else break}return A}unwrapLogical(A){if(typeof A!=="string")return A;while(A.startsWith("(")&&A.endsWith(")")){let U=0,Z=1/0;for(let W=1;W<A.length-1;W++){if(A[W]==="(")U++;if(A[W]===")")U--;Z=Math.min(Z,U)}if(Z>=0)A=A.slice(1,-1);else break}return A}unwrapIfBranch(A){if(Array.isArray(A)&&A.length===1&&(!Array.isArray(A[0])||A[0][0]!=="block"))return A[0];return A}flattenBinaryChain(A){if(!Array.isArray(A)||A.length<3)return A;let[U,...Z]=A;if(U!=="&&"&&U!=="||")return A;let W=[],$=(Y)=>{if(Array.isArray(Y)&&Y[0]===U)for(let Q=1;Q<Y.length;Q++)$(Y[Q]);else W.push(Y)};for(let Y of Z)$(Y);return[U,...W]}hasStatementInBranch(A){if(!Array.isArray(A))return!1;let U=A[0];if(U==="return"||U==="throw"||U==="break"||U==="continue")return!0;if(U==="block")return A.slice(1).some((Z)=>this.hasStatementInBranch(Z));return!1}hasNestedMultiStatement(A){if(!Array.isArray(A))return!1;if(A[0]==="if"){let[U,Z,W,...$]=A;return this.is(W,"block")&&W.length>2||$.some((Y)=>this.hasNestedMultiStatement(Y))}return!1}buildTernaryChain(A){if(A.length===0)return"undefined";if(A.length===1)return this.extractExpression(this.unwrapIfBranch(A[0]));let U=A[0];if(this.is(U,"if")){let[Z,W,$,...Y]=U,Q=this.extractExpression(this.unwrapIfBranch($)),F=this.buildTernaryChain([...Y,...A.slice(1)]);return`(${this.generate(W,"value")} ? ${Q} : ${F})`}return this.extractExpression(this.unwrapIfBranch(U))}collectVarsFromArray(A,U){A.slice(1).forEach((Z)=>{if(Z===","||Z==="...")return;if(typeof Z==="string"){U.add(Z);return}if(Array.isArray(Z)){if(Z[0]==="..."&&typeof Z[1]==="string")U.add(Z[1]);else if(Z[0]==="array")this.collectVarsFromArray(Z,U);else if(Z[0]==="object")this.collectVarsFromObject(Z,U)}})}collectVarsFromObject(A,U){A.slice(1).forEach((Z)=>{if(!Array.isArray(Z))return;if(Z[0]==="..."&&typeof Z[1]==="string"){U.add(Z[1]);return}if(Z.length>=2){let[W,$,Y]=Z;if(Y==="="){if(typeof W==="string")U.add(W)}else if(typeof $==="string")U.add($);else if(Array.isArray($)){if($[0]==="array")this.collectVarsFromArray($,U);else if($[0]==="object")this.collectVarsFromObject($,U)}}})}extractStringContent(A){let U=L(A).slice(1,-1),Z=u(A,"indent");if(Z)U=U.replace(new RegExp(`\\n${Z}`,"g"),`
|
|
282
282
|
`);if(u(A,"initialChunk")&&U.startsWith(`
|
|
283
283
|
`))U=U.slice(1);if(u(A,"finalChunk")&&U.endsWith(`
|
|
284
|
-
`))U=U.slice(0,-1);return U}processHeregex(A){let U="",Z=!1,W=0
|
|
285
|
-
`)W++;continue}U
|
|
284
|
+
`))U=U.slice(0,-1);return U}processHeregex(A){let U="",Z=!1,W=0,$=()=>{let Y=0,Q=W-1;while(Q>=0&&A[Q]==="\\")Y++,Q--;return Y%2===1};while(W<A.length){let Y=A[W];if(Y==="["&&!$()){Z=!0,U+=Y,W++;continue}if(Y==="]"&&Z&&!$()){Z=!1,U+=Y,W++;continue}if(Z){U+=Y,W++;continue}if(/\s/.test(Y)){W++;continue}if(Y==="#"){if($()){U+=Y,W++;continue}let Q=W-1;while(Q>=0&&A[Q]==="\\")Q--;if(Q<W-1){U+=Y,W++;continue}while(W<A.length&&A[W]!==`
|
|
285
|
+
`)W++;continue}U+=Y,W++}return U}addJsExtensionAndAssertions(A){if(A instanceof String)A=L(A);if(typeof A!=="string")return A;let Z=A.startsWith('"')||A.startsWith("'")?A.slice(1,-1):A,W=Z.startsWith("./")||Z.startsWith("../"),$=Z,Y="";if(W){let Q=Z.lastIndexOf("/"),F=Q>=0?Z.substring(Q+1):Z;if(F.includes(".")){if(F.endsWith(".json"))Y=" with { type: 'json' }"}else $=Z+".js"}return`'${$}'`+Y}containsIt(A){if(!A)return!1;if(A==="it"||A instanceof String&&L(A)==="it")return!0;if(typeof A!=="object")return!1;if(this.is(A,"def")||this.is(A,"->")||this.is(A,"=>"))return!1;if(Array.isArray(A))return A.some((U)=>this.containsIt(U));return!1}containsAwait(A){if(!A)return!1;if(A instanceof String&&u(A,"await")===!0)return!0;if(typeof A!=="object")return!1;if(this.is(A,"await"))return!0;if(this.is(A,"for-as")&&A[3]===!0)return!0;if(this.is(A,"def")||this.is(A,"->")||this.is(A,"=>")||this.is(A,"class"))return!1;if(Array.isArray(A))return A.some((U)=>this.containsAwait(U));return!1}containsYield(A){if(!A)return!1;if(typeof A!=="object")return!1;if(this.is(A,"yield")||this.is(A,"yield-from"))return!0;if(this.is(A,"def")||this.is(A,"->")||this.is(A,"=>")||this.is(A,"class"))return!1;if(Array.isArray(A))return A.some((U)=>this.containsYield(U));return!1}extractMemberName(A){if(this.is(A,".")&&A[1]==="this")return A[2];if(this.is(A,"computed"))return`[${this.generate(A[1],"value")}]`;return A}getReactiveRuntime(){return`// ============================================================================
|
|
286
286
|
// Rip Reactive Runtime
|
|
287
287
|
// A minimal, fine-grained reactivity system
|
|
288
288
|
//
|
|
@@ -501,13 +501,13 @@ if (typeof globalThis !== 'undefined') {
|
|
|
501
501
|
}
|
|
502
502
|
|
|
503
503
|
// === End Reactive Runtime ===
|
|
504
|
-
`}}class e{constructor(A={}){this.options={showTokens:!1,showSExpr:!1,...A}}compile(A){let
|
|
505
|
-
`)
|
|
504
|
+
`}}class e{constructor(A={}){this.options={showTokens:!1,showSExpr:!1,...A}}compile(A,U){if(U)this.options={...this.options,...U};let Z=null,W=A.split(`
|
|
505
|
+
`),$=W.findIndex((H)=>H==="__DATA__");if($!==-1){let H=W.slice($+1);Z=H.length>0?H.join(`
|
|
506
506
|
`)+`
|
|
507
|
-
`:"",A=
|
|
508
|
-
`)}let
|
|
509
|
-
//# sourceMappingURL=data:application/json;base64,${H}`}else if(
|
|
510
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(F
|
|
507
|
+
`:"",A=W.slice(0,$).join(`
|
|
508
|
+
`)}let Q=new c().tokenize(A);if(this.options.showTokens)Q.forEach((H)=>console.log(`${H[0].padEnd(12)} ${JSON.stringify(H[1])}`)),console.log();let F=null,X=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)X=[...Q];Q=Q.filter((H)=>H[0]!=="TYPE_DECL");while(Q.length>0&&Q[0][0]==="TERMINATOR")Q.shift();if(Q.every((H)=>H[0]==="TERMINATOR")){if(X)F=W1(X,["program"]);return{tokens:Q,sexpr:["program"],code:"",dts:F,data:Z,reactiveVars:{}}}m.lexer={tokens:Q,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let H=this.tokens[this.pos++],q=H[1];if(H.data)q=new String(q),Object.assign(q,H.data);return this.text=q,this.loc=H.loc,H[0]}};let D;try{D=m.parse(A)}catch(H){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(A)||/\?\s+\w+\s+\?\s+/.test(A))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw H}if(this.options.showSExpr)console.log(v(D,0,!0)),console.log();let J=null;if(this.options.sourceMap){let H=(this.options.filename||"output")+".js",q=this.options.filename||"input.rip";J=new X1(H,q,A)}let z=new j({dataSection:Z,skipPreamble:this.options.skipPreamble,reactiveVars:this.options.reactiveVars,sourceMap:J}),G=z.compile(D),K=J?J.toJSON():null,R=J?J.toReverseMap():null;if(K&&this.options.sourceMap==="inline"){let H=typeof Buffer<"u"?Buffer.from(K).toString("base64"):btoa(K);G+=`
|
|
509
|
+
//# sourceMappingURL=data:application/json;base64,${H}`}else if(K&&this.options.filename)G+=`
|
|
510
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(X)F=W1(X,D);return{tokens:Q,sexpr:D,code:G,dts:F,map:K,reverseMap:R,data:Z,reactiveVars:z.reactiveVars}}compileToJS(A){return this.compile(A).code}compileToSExpr(A){return this.compile(A).sexpr}}j1(j,c);j.prototype.generateEnum=R1;function J1(A,U={}){return new e(U).compile(A)}function k(A,U={}){return new e(U).compileToJS(A)}function $1(){return new j({}).getReactiveRuntime()}function K1(){return new j({}).getComponentRuntime()}var N2="3.10.6",T2="2026-02-20@01:52:52GMT";if(typeof globalThis<"u"&&!globalThis.__rip)Function($1())();var S2=(A)=>{let U=A.match(/^[ \t]*(?=\S)/gm),Z=Math.min(...(U||[]).map((W)=>W.length));return A.replace(RegExp(`^[ ]{${Z}}`,"gm"),"").trim()};async function L2(){let A=document.querySelectorAll('script[type="text/rip"]');for(let U of A){if(U.hasAttribute("data-rip-processed"))continue;if(U.hasAttribute("data-name"))continue;try{let Z;if(U.src){let $=await fetch(U.src);if(!$.ok){console.error(`Rip: failed to fetch ${U.src} (${$.status})`);continue}Z=await $.text()}else Z=S2(U.textContent);let W;try{W=k(Z)}catch($){console.error("Rip compile error:",$.message),console.error("Source:",Z);continue}await(0,eval)(`(async()=>{
|
|
511
511
|
${W}
|
|
512
|
-
})()`),U.setAttribute("data-rip-processed","true")}catch(Z){console.error("Rip runtime error:",Z)}}}async function D1(A){for(let[
|
|
513
|
-
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");W=W.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let
|
|
512
|
+
})()`),U.setAttribute("data-rip-processed","true")}catch(Z){console.error("Rip runtime error:",Z)}}}async function D1(A){for(let[Y,Q]of Object.entries(D1.modules))if(A.includes(Y))return Q;let U=await fetch(A).then((Y)=>{if(!Y.ok)throw Error(`importRip: ${A} (${Y.status})`);return Y.text()}),Z=k(U),W=new Blob([Z],{type:"application/javascript"}),$=URL.createObjectURL(W);try{return await import($)}finally{URL.revokeObjectURL($)}}D1.modules={};function f2(A){try{let U=A.replace(/^/gm," "),W=k(`do ->
|
|
513
|
+
${U}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");W=W.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let $=(0,eval)(W);if($&&typeof $.then==="function")return $.then((Y)=>{if(Y!==void 0)globalThis._=Y;return Y});if($!==void 0)globalThis._=$;return $}catch(U){console.error("Rip compilation error:",U.message);return}}if(typeof globalThis<"u")globalThis.rip=f2,globalThis.importRip=D1,globalThis.compileToJS=k,globalThis.__ripExports={compile:J1,compileToJS:k,formatSExpr:v,VERSION:N2,BUILD_DATE:T2,getReactiveRuntime:$1,getComponentRuntime:K1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((A)=>{let U=()=>L2().then(A);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(U));else queueMicrotask(U)});export{f2 as rip,L2 as processRipScripts,m as parser,D1 as importRip,$1 as getReactiveRuntime,K1 as getComponentRuntime,v as formatSExpr,k as compileToJS,J1 as compile,N2 as VERSION,c as Lexer,e as Compiler,j as CodeGenerator,T2 as BUILD_DATE};
|