rip-lang 2.5.0 → 2.5.1
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 +20 -0
- package/README.md +97 -51
- package/docs/INTERNALS.md +1 -1
- package/docs/PHILOSOPHY.md +1 -1
- package/docs/WHY-YES-RIP.md +3 -3
- package/docs/dist/rip.browser.js +24 -2
- package/docs/dist/rip.browser.min.js +54 -54
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/package.json +1 -1
- package/src/lexer.js +38 -3
|
@@ -2,23 +2,23 @@ var N1=new Set(["html","head","title","base","link","meta","style","body","addre
|
|
|
2
2
|
`)[U],X=A,Y=U===$?E+1:_.length,F=_.slice(0,X).replace(/[^\s]/g," ")+u3("^",Y-X),D=typeof process<"u"&&process!==null&&process.stdout?.isTTY&&!process.env?.NODE_DISABLE_COLORS;if(this.colorful!=null?this.colorful:D){var Z=(M)=>`\x1B[1;31m${M}\x1B[0m`;_=_.slice(0,X)+Z(_.slice(X,Y))+_.slice(Y),F=Z(F)}return`${R}:${U+1}:${A+1}: error: ${this.message}
|
|
3
3
|
${_}
|
|
4
4
|
${F}`},i3=function(U,A){var $=SyntaxError(U);throw $.location=A,$.toString=d3,$.stack=$.toString(),$},s3=/(\\\\)|\\u\{([\da-fA-F]+)\}/g,n3=function(U){var A=function(R){var _=R.toString(16);return`\\u${u3("0",4-_.length)}${_}`};if(U<65536)return A(U);var $=Math.floor((U-65536)/1024)+55296,E=(U-65536)%1024+56320;return`${A($)}${A(E)}`},o3=function(U,{flags:A,error:$,delimiter:E=""}={}){var R=A!=null&&j.call(A,"u")<0;return U.replace(s3,function(_,X,Y,F){if(X)return X;var D=parseInt(Y,16);if(D>1114111)$("unicode code point escapes greater than \\u{10ffff} are not allowed",{offset:F+E.length,length:Y.length+4});if(!R)return _;return n3(D)})},k1=class U{constructor(){this.error=this.error.bind(this)}tokenize(A,$={}){var E,R,_,X;this.indent=0,this.baseIndent=0,this.overIndent=0,this.outdebt=0,this.indents=[],this.indentLiteral="",this.ends=[],this.tokens=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRender=!1,this.renderIndent=0,this.chunkLine=$.line||0,this.chunkColumn=$.column||0,this.chunkOffset=$.offset||0,this.locTweaks=$.locTweaks||{},A=this.clean(A),_=0;while(this.chunk=A.slice(_))if(E=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),[this.chunkLine,this.chunkColumn,this.chunkOffset]=this.getLineAndColumnFromChunk(E),_+=E,$.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:_};if(this.closeIndentation(),R=this.ends.pop())this.error(`missing ${R.tag}`,((X=R.origin)!=null?X:R)[2]);if($.rewrite===!1)return this.tokens;return new B3().rewrite(this.tokens)}clean(A){var $,E;if(E=0,A.charCodeAt(0)===r1)A=A.slice(1),this.locTweaks[0]=1,E+=1;if(y1.test(A)){if(A=`
|
|
5
|
-
${A}`,this.chunkLine--,($=this.locTweaks)[0]==null)$[0]=0;this.locTweaks[0]-=1}return A.replace(/\r/g,(R,_)=>{return this.locTweaks[E+_]=1,""}).replace(V3,"")}identifierToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,q,
|
|
5
|
+
${A}`,this.chunkLine--,($=this.locTweaks)[0]==null)$[0]=0;this.locTweaks[0]-=1}return A.replace(/\r/g,(R,_)=>{return this.locTweaks[E+_]=1,""}).replace(V3,"")}identifierToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T,V,y;if(/^~[=>]/.test(this.chunk)||/^=!/.test(this.chunk))return 0;if(!(D=Y3.exec(this.chunk)))return 0;if([F,X,E]=D,Y=X.length,Z=void 0,X==="own"&&this.tag()==="FOR")return this.token("OWN",X),X.length;if(X==="from"&&this.tag()==="YIELD")return this.token("FROM",X),X.length;if(X==="as"&&this.seenImport){if(this.value()==="*")this.tokens[this.tokens.length-1][0]="IMPORT_ALL";else if(G=this.value(!0),j.call(d,G)>=0)M=this.prev(),[M[0],M[1]]=["IDENTIFIER",this.value(!0)];if((J=this.tag())==="DEFAULT"||J==="IMPORT_ALL"||J==="IDENTIFIER")return this.token("AS",X),X.length}if(X==="as"&&this.seenExport){if((O=this.tag())==="IDENTIFIER"||O==="DEFAULT")return this.token("AS",X),X.length;if(N=this.value(!0),j.call(d,N)>=0)return M=this.prev(),[M[0],M[1]]=["IDENTIFIER",this.value(!0)],this.token("AS",X),X.length}if(X==="default"&&this.seenExport&&((P=this.tag())==="EXPORT"||P==="AS"))return this.token("DEFAULT",X),X.length;if(X==="do"&&(I=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.token("SUPER","super"),this.token("CALL_START","("),this.token("CALL_END",")"),[F,L]=I,L.length+3;M=this.prev();let u=this.inRender&&M!=null&&M[0]==="#"&&!M.spaced;if(T=E||M!=null&&((K=M[0])==="."||K==="?."||K==="::"||K==="?::"||!M.spaced&&M[0]==="@")||u?"PROPERTY":"IDENTIFIER",y={},T==="IDENTIFIER"&&(j.call(W1,X)>=0||j.call(d,X)>=0)&&!(this.exportSpecifierList&&j.call(d,X)>=0)){if(T=X.toUpperCase(),T==="WHEN"&&(w=this.tag(),j.call(M3,w)>=0))T="LEADING_WHEN";else if(T==="FOR")this.seenFor={endsLength:this.ends.length};else if(T==="UNLESS");else if(T==="IMPORT")this.seenImport=!0;else if(T==="EXPORT")this.seenExport=!0;else if(T==="RENDER")this.inRender=!0,this.renderIndent=this.indent;else if(j.call(C1,T)>=0)T="UNARY";else if(j.call(N3,T)>=0){if(T!=="INSTANCEOF"&&this.seenFor)T="FOR"+T,this.seenFor=!1;else if(T="RELATION",this.value()==="!")Z=this.tokens.pop(),y.invert=(B=(z=Z.data)!=null?z.original:void 0)!=null?B:Z[1]}}else if(T==="IDENTIFIER"&&this.seenFor&&X==="from"&&v3(M))T="FORFROM",this.seenFor=!1;else if(T==="PROPERTY"&&M){if(M.spaced&&(S=M[0],j.call(E1,S)>=0)&&/^[gs]et$/.test(M[1])&&this.tokens.length>1&&((W=this.tokens[this.tokens.length-2][0])!=="."&&W!=="?."&&W!=="@"))this.error(`'${M[1]}' cannot be used as a keyword, or as a function call without parentheses`,M[2]);else if(M[0]==="."&&this.tokens.length>1&&(Q=this.tokens[this.tokens.length-2])[0]==="UNARY"&&Q[1]==="new")Q[0]="NEW_TARGET";else if(M[0]==="."&&this.tokens.length>1&&(Q=this.tokens[this.tokens.length-2])[0]==="IMPORT"&&Q[1]==="import")this.seenImport=!1,Q[0]="IMPORT_META";else if(this.tokens.length>2){if(Q=this.tokens[this.tokens.length-2],((H=M[0])==="@"||H==="THIS")&&Q&&Q.spaced&&/^[gs]et$/.test(Q[1])&&((q=this.tokens[this.tokens.length-3][0])!=="."&&q!=="?."&&q!=="@"))this.error(`'${Q[1]}' cannot be used as a keyword, or as a function call without parentheses`,Q[2])}}if(T==="IDENTIFIER"&&j.call(O1,X)>=0)this.error(`reserved word '${X}'`,{length:X.length});if(!(T==="PROPERTY"||this.exportSpecifierList||this.importSpecifierList)){if(X==="is"&&this.chunk.slice(Y,Y+4)===" not"){if(A=this.chunk.slice(Y+4).trim(),!A.match(/^(false|true)\s+(is|isnt|==|!=)/))X="isnt",Y+=4}if(j.call(h1,X)>=0)$=X,X=g1[X],y.original=$;T=function(){switch(X){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";case"&&":case"||":return X;default:return T}}()}let h=Y;if(X.length>1&&X.endsWith("!"))y.await=!0,X=X.slice(0,-1);if(V=this.token(T,X,{length:h,data:y}),$)V.origin=[T,$,V[2]];if(Z)[V[2].first_line,V[2].first_column,V[2].range[0]]=[Z[2].first_line,Z[2].first_column,Z[2].range[0]];if(E)R=F.lastIndexOf(":"),_=this.token(":",":",{offset:R});if(E)return h+E.length;else return h}commentToken(A=this.chunk,{heregex:$,returnCommentTokens:E=!1,offsetInChunk:R=0}={}){var _,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T,V,y;if(this.inRender&&A[0]==="#"&&/^#[a-zA-Z_$]/.test(A))return 0;if(!(B=A.match(t1)))return 0;if([Y,G,Q,J,w]=B,D=null,q=/^\s*\n+\s*#/.test(Y),Q){if(z=R3.exec(Q),z)this.error(`block comments cannot contain ${z[0]}`,{offset:3+z.index,length:z[0].length});A=A.replace(`###${Q}###`,""),A=A.replace(/^\n+/,""),this.lineToken({chunk:A}),F=Q,D=[{content:F,length:Y.length-G.length-J.length,leadingWhitespace:G}]}else N="",F=w.replace(/^(\n*)/,function(u){return N=u,""}),V="",M=!1,D=F.split(`
|
|
6
6
|
`).map(function(u,h){var b,a;if(!(u.indexOf("#")>-1)){V+=`
|
|
7
7
|
${u}`;return}return a="",F=u.replace(/^([ |\t]*)#/,function(k,F1){return a=F1,""}),b={content:F,length:1+F.length,leadingWhitespace:`${!M?N:""}${V}${a}`,precededByBlankLine:!!V},M=!0,V="",b}).filter(function(u){return u});if(Z=function({leadingWhitespace:u,nonInitial:h}){var b=u.lastIndexOf(`
|
|
8
|
-
`);if(Q!=null||!h){if(!(b>-1))return null}else if(b==null)b=-1;return u.length-1-b},X=function(){var u,h,b;b=[];for(W=u=0,h=D.length;u<h;W=++u){if({content:F,length:K,leadingWhitespace:P,precededByBlankLine:T}=D[W],I=W!==0,O=I?1:0,R+=O+P.length,
|
|
8
|
+
`);if(Q!=null||!h){if(!(b>-1))return null}else if(b==null)b=-1;return u.length-1-b},X=function(){var u,h,b;b=[];for(W=u=0,h=D.length;u<h;W=++u){if({content:F,length:K,leadingWhitespace:P,precededByBlankLine:T}=D[W],I=W!==0,O=I?1:0,R+=O+P.length,H=Z({leadingWhitespace:P,nonInitial:I}),S=H==null||H===-1,_={content:F,here:Q!=null,newLine:q||I,locationData:this.makeLocationData({offsetInChunk:R,length:K}),precededByBlankLine:T,indentSize:H,indented:!S&&H>this.indent,outdented:!S&&H<this.indent},$)_.heregex=!0;R+=K,b.push(_)}return b}.call(this),y=this.prev(),!y)X[0].newLine=!0,this.lineToken({chunk:this.chunk.slice(Y.length),offset:Y.length}),L=this.makeToken("JS","",{offset:Y.length,generated:!0}),L.comments=X,this.tokens.push(L),this.newlineToken(Y.length);else o1(X,y);if(E)return X;return Y.length}whitespaceToken(){var A,$,E;if(!((A=y1.exec(this.chunk))||($=this.chunk.charAt(0)===`
|
|
9
9
|
`)))return 0;if(E=this.prev(),E)E[A?"spaced":"newLine"]=!0;if(A)return A[0].length;else return 0}lineToken({chunk:A=this.chunk,offset:$=0}={}){var E,R,_,X,Y,F,D,Z,M,Q,G;if(!(Y=Q3.exec(A)))return 0;if(X=Y[0],M=this.prev(),E=(M!=null?M[0]:void 0)==="\\",!((E||((Q=this.seenFor)!=null?Q.endsLength:void 0)<this.ends.length)&&this.seenFor))this.seenFor=!1;if(!(E&&this.seenImport||this.importSpecifierList))this.seenImport=!1;if(!(E&&this.seenExport||this.exportSpecifierList))this.seenExport=!1;if(G=X.length-1-X.lastIndexOf(`
|
|
10
10
|
`),Z=this.unfinished(),D=G>0?X.slice(-G):"",!/^(.?)\1*$/.exec(D))return this.error("mixed indentation",{offset:X.length}),X.length;if(F=Math.min(D.length,this.indentLiteral.length),D.slice(0,F)!==this.indentLiteral.slice(0,F))return this.error("indentation mismatch",{offset:X.length}),X.length;if(G-this.overIndent===this.indent){if(Z)this.suppressNewlines();else this.newlineToken($);return X.length}if(G>this.indent){if(Z){if(!E)this.overIndent=G-this.indent;if(this.overIndent)M.continuationLineIndent=this.indent+this.overIndent;return this.suppressNewlines(),X.length}if(!this.tokens.length)return this.baseIndent=this.indent=G,this.indentLiteral=D,X.length;R=G-this.indent+this.outdebt,this.token("INDENT",R,{offset:$+X.length-G,length:G}),this.indents.push(R),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.overIndent=0,this.indent=G,this.indentLiteral=D}else if(G<this.baseIndent)this.error("missing indentation",{offset:$+X.length});else _=this.overIndent>0,this.overIndent=0,this.outdentToken({moveOut:this.indent-G,noNewlines:Z,outdentLength:X.length,offset:$,indentSize:G,endsContinuationLineIndentation:_});return X.length}getHeredocClosingColumn(A,$){let E=A-$,R=E-1;while(R>=0&&this.chunk[R]!==`
|
|
11
11
|
`)R--;R++;let _=this.chunk.slice(R,E);return/^\s*$/.test(_)?_.length:null}extractHeredocContent(A){let $=[];for(let E=0;E<A.length;E++)if(A[E][0]==="NEOSTRING")$.push(A[E][1]);return $.join("#{}")}findMinimumIndent(A){let $=null,E;while(E=A3.exec(A)){let R=E[1];if($===null||0<R.length&&R.length<$.length)$=R}return $}selectHeredocIndent(A,$){if(A===null)return $;if($===null)return" ".repeat(A);if(A<=$.length)return" ".repeat(A);return $}removeTrailingWhitespaceLine(A){if(A.length===0)return;let $=A[A.length-1];if($[0]!=="NEOSTRING")return;let E=$[1].split(`
|
|
12
12
|
`),R=E[E.length-1];if(/^\s*$/.test(R))E.pop(),$[1]=E.join(`
|
|
13
|
-
`)}stringToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J;if([Z]=j3.exec(this.chunk)||[],!Z)return 0;if(D=this.prev(),D&&this.value()==="from"&&(this.seenImport||this.seenExport))D[0]="FROM";if(Q=function(){switch(Z){case"'":return L3;case'"':return T3;case"'''":return U3;case'"""':return _3}}(),{tokens:J,index:R}=this.matchWithInterpolations(Q,Z),_=Z.length===3,_){let W=this.getHeredocClosingColumn(R,Z.length);if(E=this.extractHeredocContent(J),Y=this.findMinimumIndent(E),Y=this.selectHeredocIndent(W,Y),W!==null&&Y!==null&&W>Y.length)this.removeTrailingWhitespaceLine(J)}return $=Z.charAt(0),this.mergeInterpolationTokens(J,{quote:Z,indent:Y,endOffset:R},(W)=>{return this.validateUnicodeCodePointEscapes(W,{delimiter:Z})}),R}numberToken(){var A,$,E,R,_,X;if(!($=W3.exec(this.chunk)))return 0;switch(E=$[0],A=E.length,!1){case!/^0[BOX]/.test(E):this.error(`radix prefix in '${E}' must be lowercase`,{offset:1});break;case!/^0\d*[89]/.test(E):this.error(`decimal literal '${E}' must not be prefixed with '0'`,{length:A});break;case!/^0\d+/.test(E):this.error(`octal literal '${E}' must be prefixed with '0o'`,{length:A})}if(R=p3(E),X={parsedValue:R},_=R===1/0?"INFINITY":"NUMBER",_==="INFINITY")X.original=E;return this.token(_,E,{length:A,data:X}),A}regexToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,q,
|
|
13
|
+
`)}stringToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J;if([Z]=j3.exec(this.chunk)||[],!Z)return 0;if(D=this.prev(),D&&this.value()==="from"&&(this.seenImport||this.seenExport))D[0]="FROM";if(Q=function(){switch(Z){case"'":return L3;case'"':return T3;case"'''":return U3;case'"""':return _3}}(),{tokens:J,index:R}=this.matchWithInterpolations(Q,Z),_=Z.length===3,_){let W=this.getHeredocClosingColumn(R,Z.length);if(E=this.extractHeredocContent(J),Y=this.findMinimumIndent(E),Y=this.selectHeredocIndent(W,Y),W!==null&&Y!==null&&W>Y.length)this.removeTrailingWhitespaceLine(J)}return $=Z.charAt(0),this.mergeInterpolationTokens(J,{quote:Z,indent:Y,endOffset:R},(W)=>{return this.validateUnicodeCodePointEscapes(W,{delimiter:Z})}),R}numberToken(){var A,$,E,R,_,X;if(!($=W3.exec(this.chunk)))return 0;switch(E=$[0],A=E.length,!1){case!/^0[BOX]/.test(E):this.error(`radix prefix in '${E}' must be lowercase`,{offset:1});break;case!/^0\d*[89]/.test(E):this.error(`decimal literal '${E}' must not be prefixed with '0'`,{length:A});break;case!/^0\d+/.test(E):this.error(`octal literal '${E}' must be prefixed with '0o'`,{length:A})}if(R=p3(E),X={parsedValue:R},_=R===1/0?"INFINITY":"NUMBER",_==="INFINITY")X.original=E;return this.token(_,E,{length:A,data:X}),A}regexToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K;switch(!1){case!(J=z3.exec(this.chunk)):this.error(`regular expressions cannot begin with ${J[2]}`,{offset:J.index+J[1].length});break;case!(J=this.matchWithInterpolations($3,"///")):({tokens:K,index:Q}=J),Y=[];while(W=E3.exec(this.chunk.slice(0,Q)))({index:R}=W),[M,G,E]=W,Y.push({comment:E,offsetInChunk:R+G.length});X=l3(function(){var w,B,z;z=[];for(w=0,B=Y.length;w<B;w++)_=Y[w],z.push(this.commentToken(_.comment,Object.assign(_,{heregex:!0,returnCommentTokens:!0})));return z}.call(this));break;case!(J=q3.exec(this.chunk)):if([P,A,$]=J,this.validateEscapes(A,{isRegex:!0,offsetInChunk:1}),Q=P.length,q=this.prev(),q){if(q.spaced&&(O=q[0],j.call(E1,O)>=0)){if(!$||K3.test(P))return 0}else if(N=q[0],j.call(G3,N)>=0)return 0}if(!$)this.error("missing / (unclosed regex)");break;default:return 0}switch([Z]=H3.exec(this.chunk.slice(Q)),D=Q+Z.length,H=this.makeToken("REGEX",null,{length:D}),!1){case!!y3.test(Z):this.error(`invalid regular expression flags ${Z}`,{offset:Q,length:Z.length});break;case!(P||K.length===1):if(F=A?"/":"///",A==null)A=K[0][1];this.validateUnicodeCodePointEscapes(A,{delimiter:F});let w={delimiter:F};if(F==="///")w.heregex={flags:Z};this.token("REGEX",`/${A}/${Z}`,{length:D,origin:H,data:w});break;default:if(this.token("REGEX_START","(",{length:0,origin:H,generated:!0}),this.token("IDENTIFIER","RegExp",{length:0,generated:!0}),this.token("CALL_START","(",{length:0,generated:!0}),this.mergeInterpolationTokens(K,{double:!0,heregex:{flags:Z},endOffset:D-Z.length,quote:"///"},(B)=>{return this.validateUnicodeCodePointEscapes(B,{delimiter:F})}),Z)this.token(",",",",{offset:Q-1,length:0,generated:!0}),this.token("STRING",'"'+Z+'"',{offset:Q,length:Z.length});this.token(")",")",{offset:D,length:0,generated:!0}),this.token("REGEX_END",")",{offset:D,length:0,generated:!0})}if(X!=null?X.length:void 0)o(this.tokens[this.tokens.length-1],{heregexCommentTokens:X});return D}jsToken(){var A,$,E,R;if(!(this.chunk.charAt(0)==="`"&&($=(E=X3.exec(this.chunk))||D3.exec(this.chunk))))return 0;return R=$[1],{length:A}=$[0],this.token("JS",R,{length:A,data:{here:!!E}}),A}literalToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J;if(A=O3.exec(this.chunk)){if([J]=A,a1.test(J))this.tagParameters()}else J=this.chunk.charAt(0);if(Q=J,R=this.prev(),R&&j.call(["=",...T1],J)>=0){if(M=!1,J==="="&&((_=R[1])==="||"||_==="&&"||_==="??")&&!R.spaced){if(R[0]="COMPOUND_ASSIGN",R[1]+="=",(X=R.data)!=null?X.original:void 0)R.data.original+="=";R[2].range=[R[2].range[0],R[2].range[1]+1],R[2].last_column+=1,R[2].last_column_exclusive+=1,R=this.tokens[this.tokens.length-2],M=!0}if(R&&R[0]!=="PROPERTY"){if(E=(Y=R.origin)!=null?Y:R,$=r3(R[1],E[1]),$)this.error($,E[2])}if(M)return J.length}if(J==="("&&(R!=null?R[0]:void 0)==="IMPORT")R[0]="DYNAMIC_IMPORT";if(J==="{"&&this.seenImport)this.importSpecifierList=!0;else if(this.importSpecifierList&&J==="}")this.importSpecifierList=!1;else if(J==="{"&&(R!=null?R[0]:void 0)==="EXPORT")this.exportSpecifierList=!0;else if(this.exportSpecifierList&&J==="}")this.exportSpecifierList=!1;if(J===";"){if(F=R!=null?R[0]:void 0,j.call(["=",...X1],F)>=0)this.error("unexpected ;");this.seenFor=this.seenImport=this.seenExport=!1,Q="TERMINATOR"}else if(J==="*"&&(R!=null?R[0]:void 0)==="EXPORT")Q="EXPORT_ALL";else if(J==="<=>")Q="BIND";else if(J==="~=")Q="DERIVED_ASSIGN";else if(J===":=")Q="REACTIVE_ASSIGN";else if(J==="=!")Q="READONLY_ASSIGN";else if(j.call(J3,J)>=0)Q="MATH";else if(j.call(e1,J)>=0)Q="COMPARE";else if(j.call(T1,J)>=0)Q="COMPOUND_ASSIGN";else if(j.call(C1,J)>=0)Q="UNARY";else if(j.call(C3,J)>=0)Q="UNARY_MATH";else if(j.call(S3,J)>=0)Q="SHIFT";else if(J==="?"&&(R!=null?R.spaced:void 0))Q="SPACE?";else if(R){if(J==="("&&!R.spaced&&(D=R[0],j.call(E1,D)>=0)){if(R[0]==="?")R[0]="FUNC_EXIST";else if(R[0]==="?.")R[0]="ES6_OPTIONAL_CALL";Q="CALL_START"}else if(J==="["&&((Z=R[0],j.call(b1,Z)>=0)&&!R.spaced||R[0]==="::"))switch(Q="INDEX_START",R[0]){case"?":R[0]="INDEX_SOAK";break;case"?.":R[0]="ES6_OPTIONAL_INDEX";break}}switch(G=this.makeToken(Q,J),J){case"(":case"{":case"[":this.ends.push({tag:G1[J],origin:G});break;case")":case"}":case"]":this.pair(J)}return this.tokens.push(this.makeToken(Q,J)),J.length}outdentToken({moveOut:A,noNewlines:$,outdentLength:E=0,offset:R=0,indentSize:_,endsContinuationLineIndentation:X}){var Y,F,D,Z,M;Y=this.indent-A;while(A>0)if(D=this.indents[this.indents.length-1],!D)this.outdebt=A=0;else if(this.outdebt&&A<=this.outdebt)this.outdebt-=A,A=0;else{if(F=this.indents.pop()+this.outdebt,E&&(Z=this.chunk[E],j.call(F3,Z)>=0))Y-=F-A,A=F;this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",A,{length:E,indentSize:_+A-F}),A-=F}if(F)this.outdebt-=A;if(this.suppressSemicolons(),!(this.tag()==="TERMINATOR"||$)){if(M=this.token("TERMINATOR",`
|
|
14
14
|
`,{offset:R+E,length:0}),X)M.endsContinuationLineIndentation={preContinuationLineIndent:this.indent}}return this.indent=Y,this.indentLiteral=this.indentLiteral.slice(0,Y),this}newlineToken(A){if(this.suppressSemicolons(),this.tag()!=="TERMINATOR")this.token("TERMINATOR",`
|
|
15
|
-
`,{offset:A,length:0});return this}suppressNewlines(){var A=this.prev();if(A[1]==="\\"){if(A.comments&&this.tokens.length>1)o1(A.comments,this.tokens[this.tokens.length-2]);this.tokens.pop()}return this}tagParameters(){var A,$,E,R,_;if(this.tag()!==")")return this.tagDoIife();E=[],{tokens:_}=this,A=_.length,$=_[--A],$[0]="PARAM_END";while(R=_[--A])switch(R[0]){case")":E.push(R);break;case"(":case"CALL_START":if(E.length)E.pop();else if(R[0]==="(")return R[0]="PARAM_START",this.tagDoIife(A-1);else return $[0]="CALL_END",this}return this}tagDoIife(A){var $=this.tokens[A!=null?A:this.tokens.length-1];if(($!=null?$[0]:void 0)!=="DO")return this;return $[0]="DO_IIFE",this}closeIndentation(){return this.outdentToken({moveOut:this.indent,indentSize:0})}matchWithInterpolations(A,$,E=$,R=/^[#$]\{/){var _,X,Y,F,D,Z,M,Q,G,J,W,q,
|
|
16
|
-
`)S[2].last_line+=1,S[2].last_column=P.length-1;else if(S[2].last_column+=P.length,S[1].length===2)S[2].last_column-=1;S[2].last_column_exclusive+=P.length,S[2].range=[S[2].range[0]-P.length,S[2].range[1]+P.length]}
|
|
15
|
+
`,{offset:A,length:0});return this}suppressNewlines(){var A=this.prev();if(A[1]==="\\"){if(A.comments&&this.tokens.length>1)o1(A.comments,this.tokens[this.tokens.length-2]);this.tokens.pop()}return this}tagParameters(){var A,$,E,R,_;if(this.tag()!==")")return this.tagDoIife();E=[],{tokens:_}=this,A=_.length,$=_[--A],$[0]="PARAM_END";while(R=_[--A])switch(R[0]){case")":E.push(R);break;case"(":case"CALL_START":if(E.length)E.pop();else if(R[0]==="(")return R[0]="PARAM_START",this.tagDoIife(A-1);else return $[0]="CALL_END",this}return this}tagDoIife(A){var $=this.tokens[A!=null?A:this.tokens.length-1];if(($!=null?$[0]:void 0)!=="DO")return this;return $[0]="DO_IIFE",this}closeIndentation(){return this.outdentToken({moveOut:this.indent,indentSize:0})}matchWithInterpolations(A,$,E=$,R=/^[#$]\{/){var _,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w;if(w=[],W=$.length,this.chunk.slice(0,W)!==$)return null;P=this.chunk.slice(W);while(!0){if([K]=A.exec(P),this.validateEscapes(K,{isRegex:$.charAt(0)==="/",offsetInChunk:W}),w.push(this.makeToken("NEOSTRING",K,{offset:W})),P=P.slice(K.length),W+=K.length,!(Q=R.exec(P)))break;if([Z]=Q,D=Z.length-1,[M,Y,J]=this.getLineAndColumnFromChunk(W+D),N=P.slice(D),{tokens:G,index:F}=new U().tokenize(N,{line:M,column:Y,offset:J,untilBalanced:!0,locTweaks:this.locTweaks}),F+=D,_=P[F-1]==="}",_)[H]=G,[X]=s.call(G,-1),H[0]="INTERPOLATION_START",H[1]="(",H[2].first_column-=D,H[2].range=[H[2].range[0]-D,H[2].range[1]],X[0]="INTERPOLATION_END",X[1]=")",X.origin=["","end of interpolation",X[2]];if(((q=G[1])!=null?q[0]:void 0)==="TERMINATOR")G.splice(1,1);if(((O=G[G.length-3])!=null?O[0]:void 0)==="INDENT"&&G[G.length-2][0]==="OUTDENT")G.splice(-3,2);if(!_)H=this.makeToken("INTERPOLATION_START","(",{offset:W,length:0,generated:!0}),X=this.makeToken("INTERPOLATION_END",")",{offset:W+F,length:0,generated:!0}),G=[H,...G,X];w.push(["TOKENS",G]),P=P.slice(F),W+=F}if(P.slice(0,E.length)!==E)this.error(`missing ${E}`,{length:$.length});return{tokens:w,index:W+E.length}}mergeInterpolationTokens(A,$,E){var R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T;if({quote:P,indent:M,double:X,heregex:D,endOffset:Y}=$,A.length>1)O=this.token("STRING_START","(",{length:(K=P!=null?P.length:void 0)!=null?K:0,data:{quote:P},generated:!(P!=null?P.length:void 0)});F=this.tokens.length,R=A.length-1;for(Z=Q=0,W=A.length;Q<W;Z=++Q){switch(S=A[Z],[z,T]=S,z){case"TOKENS":if(T.length===2&&(T[0].comments||T[1].comments)){N=this.makeToken("JS","",{generated:!0}),N[2]=T[0][2];for(G=0,H=T.length;G<H;G++){if(L=T[G],!L.comments)continue;if(N.comments==null)N.comments=[];N.comments.push(...L.comments)}T.splice(1,0,N)}q=T[0],I=T;break;case"NEOSTRING":if(_=E.call(this,S[1],Z),Z===0)o(S,{initialChunk:!0});if(Z===R)o(S,{finalChunk:!0});if(o(S,{indent:M,quote:P,double:X}),D)o(S,{heregex:D});if(S[0]="STRING",S[1]='"'+_+'"',A.length===1&&P!=null){if(S[2].first_column-=P.length,S[1].substr(-2,1)===`
|
|
16
|
+
`)S[2].last_line+=1,S[2].last_column=P.length-1;else if(S[2].last_column+=P.length,S[1].length===2)S[2].last_column-=1;S[2].last_column_exclusive+=P.length,S[2].range=[S[2].range[0]-P.length,S[2].range[1]+P.length]}q=S,I=[S]}this.tokens.push(...I)}if(O){if([J]=s.call(A,-1),O.origin=["STRING",null,{first_line:O[2].first_line,first_column:O[2].first_column,last_line:J[2].last_line,last_column:J[2].last_column,last_line_exclusive:J[2].last_line_exclusive,last_column_exclusive:J[2].last_column_exclusive,range:[O[2].range[0],J[2].range[1]]}],!(P!=null?P.length:void 0))O[2]=O.origin[2];return B=this.token("STRING_END",")",{offset:Y-(P!=null?P:"").length,length:(w=P!=null?P.length:void 0)!=null?w:0,generated:!(P!=null?P.length:void 0)})}}pair(A){var $,E,R,_,X;if(R=this.ends,[E]=s.call(R,-1),A!==(X=E!=null?E.tag:void 0)){if(X!=="OUTDENT")this.error(`unmatched ${A}`);return _=this.indents,[$]=s.call(_,-1),this.outdentToken({moveOut:$,noNewlines:!0}),this.pair(A)}return this.ends.pop()}getLocationDataCompensation(A,$){var E,R,_,X;X=0,_=$,R=A;while(R<=$){if(R===$&&A!==_)break;if(E=this.locTweaks[R],E!=null)X+=E,$+=E;R++}return X}getLineAndColumnFromChunk(A){var $,E,R,_,X,Y,F,D;if(R=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+A),A===0)return[this.chunkLine,this.chunkColumn+R,this.chunkOffset+R];if(A>=this.chunk.length)D=this.chunk;else D=this.chunk.slice(0,+(A-1)+1||9000000000);if(X=k3(D,`
|
|
17
17
|
`),$=this.chunkColumn,X>0){if(F=D.split(`
|
|
18
|
-
`),[_]=s.call(F,-1),$=_.length,Y=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+A-$),Y<0)Y=0;E=this.getLocationDataCompensation(this.chunkOffset+A+Y-$,this.chunkOffset+A+Y)}else $+=D.length,E=R;return[this.chunkLine+X,$+E,this.chunkOffset+A+R]}makeLocationData({offsetInChunk:A,length:$}){var E,R,_;return _={range:[]},[_.first_line,_.first_column,_.range[0]]=this.getLineAndColumnFromChunk(A),R=$>0?$-1:0,[_.last_line,_.last_column,E]=this.getLineAndColumnFromChunk(A+R),[_.last_line_exclusive,_.last_column_exclusive]=this.getLineAndColumnFromChunk(A+R+($>0?1:0)),_.range[1]=$>0?E+1:E,_}makeToken(A,$,{offset:E=0,length:R=$.length,origin:_,generated:X,indentSize:Y}={}){var F=[A,$,this.makeLocationData({offsetInChunk:E,length:R})];if(_)F.origin=_;if(X)F.generated=!0;if(Y!=null)F.indentSize=Y;return F}token(A,$,{offset:E,length:R,origin:_,data:X,generated:Y,indentSize:F}={}){var D=this.makeToken(A,$,{offset:E,length:R,origin:_,generated:Y,indentSize:F});if(X)o(D,X);return this.tokens.push(D),D}tag(){var A,$;return A=this.tokens,[$]=s.call(A,-1),$!=null?$[0]:void 0}value(A=!1){var $,E;if($=this.tokens,[E]=s.call($,-1),A&&(E!=null?E.origin:void 0)!=null)return E.origin[1];else return E!=null?E[1]:void 0}prev(){return this.tokens[this.tokens.length-1]}unfinished(){var A;if(this.tag()==="RENDER")return!1;if(this.inRender&&/^\s*\./.test(this.chunk))return!1;return Z3.test(this.chunk)||(A=this.tag(),j.call(X1,A)>=0)}validateUnicodeCodePointEscapes(A,$){return o3(A,c3($,{error:this.error}))}validateEscapes(A,$={}){var E,R,_,X,Y,F,D,Z,M,Q;if(X=$.isRegex?P3:I3,Y=X.exec(A),!Y)return;return Y[0],E=Y[1],D=Y[2],R=Y[3],Q=Y[4],M=Y[5],F=D?"octal escape sequences are not allowed":"invalid escape sequence",_=`\\${D||R||Q||M}`,this.error(`${F} ${_}`,{offset:((Z=$.offsetInChunk)!=null?Z:0)+Y.index+E.length,length:_.length})}suppressSemicolons(){var A,$,E;E=[];while(this.value()===";")if(this.tokens.pop(),A=($=this.prev())!=null?$[0]:void 0,j.call(["=",...X1],A)>=0)E.push(this.error("unexpected ;"));else E.push(void 0);return E}error(A,$={}){var E,R,_,X,Y;return _="first_line"in $?$:([R,E]=this.getLineAndColumnFromChunk((X=$.offset)!=null?X:0),{first_line:R,first_column:E,last_column:E+((Y=$.length)!=null?Y:1)-1}),i3(A,_)}},r3=function(U,A=U){switch(!1){case j.call([...W1,...d],U)<0:return`keyword '${A}' can't be assigned`;case j.call(x1,U)<0:return`'${A}' can't be assigned`;case j.call(O1,U)<0:return`reserved word '${A}' can't be assigned`;default:return!1}};v3=function(U){var A;if(U[0]==="IDENTIFIER")return!0;else if(U[0]==="FOR")return!1;else if((A=U[1])==="{"||A==="["||A===","||A===":")return!1;else return!0};o=function(U,A){return Object.assign(U.data!=null?U.data:U.data={},A)};W1=["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"];d=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","effect","component","render","style","mounted","unmounted","updated"];g1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"};h1=function(){var U=[];for(R1 in g1)U.push(R1);return U}();d=d.concat(h1);O1=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"];x1=["arguments","eval"];var E2=W1.concat(O1).concat(x1);r1=65279;Y3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;W3=/^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;O3=/^(?:<=>|[-=]>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;y1=/^[^\n\S]+/;t1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;a1=/^[-=]>/;Q3=/^(?:\n[^\n\S]*)+/;D3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;X3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;j3=/^(?:'''|"""|'|")/;L3=/^(?:[^\\']|\\[\s\S])*/;T3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/;U3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;_3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/;A3=/\n+([^\n\S]*)(?=\S)/g;q3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;H3=/^\w*/;y3=/^(?!.*(.).*\1)[gimsuy]*$/;$3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/;E3=/(\s+)(#(?!{).*)/gm;z3=/^(\/|\/{3}\s*)(\*)/;K3=/^\/=?\s/;R3=/\*\//;Z3=/^\s*(?:,|\??\.(?![.\d])|\??::)/;I3=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;P3=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d)|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;V3=/\s+$/;T1=["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="];C1=["NEW","TYPEOF","DELETE"];C3=["!","~"];S3=["<<",">>",">>>"];e1=["==","!=","===","!==","<",">","<=",">=","=~"];J3=["*","/","%","//","%%"];N3=["IN","OF","INSTANCEOF"];h3=["TRUE","FALSE"];E1=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER","DYNAMIC_IMPORT","?."];b1=E1.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::","?."]);g3=["IDENTIFIER",")","]","NUMBER"];G3=b1.concat(["++","--"]);M3=["INDENT","OUTDENT","TERMINATOR"];F3=[")","}","]"];_1=function(U,A){var $,E,R,_,X;if(!U.comments)return;if(A.comments&&A.comments.length!==0){X=[],_=U.comments;for(E=0,R=_.length;E<R;E++)if($=_[E],$.unshift)X.push($);else A.comments.push($);A.comments=X.concat(A.comments)}else A.comments=U.comments;return delete U.comments};m=function(U,A,$,E){var R=[U,A];if(R.generated=!0,$)R.origin=$;if(E)_1(E,R);return R};B3=function(){class U{rewrite(A){var $,E,R;if(this.tokens=A,typeof process<"u"&&process!==null?($=process.env)!=null?$.DEBUG_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_REWRITTEN_TOKEN_STREAM)console.log("Initial token stream:");console.log(function(){var _,X,Y,F;Y=this.tokens,F=[];for(_=0,X=Y.length;_<X;_++)R=Y[_],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}if(this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.processTemplateTokens(),this.convertLegacyExistential(),this.convertPostfixSpreadRest(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.rescueStowawayComments(),this.addLocationDataToGeneratedTokens(),this.fixIndentationLocationData(),this.exposeTokenDataToGrammar(),typeof process<"u"&&process!==null?(E=process.env)!=null?E.DEBUG_REWRITTEN_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_TOKEN_STREAM)console.log("Rewritten token stream:");console.log(function(){var _,X,Y,F;Y=this.tokens,F=[];for(_=0,X=Y.length;_<X;_++)R=Y[_],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}return this.tokens}scanTokens(A){var $,E,R;({tokens:R}=this),$=0;while(E=R[$])$+=A.call(this,E,$,R);return!0}detectEnd(A,$,E,R={}){var _,X,Y,F,D;({tokens:D}=this),_=0;while(F=D[A]){if(_===0&&$.call(this,F,A))return E.call(this,F,A);if(X=F[0],j.call(p,X)>=0)_+=1;else if(Y=F[0],j.call(c,Y)>=0)_-=1;if(_<0){if(R.returnOnNegativeLevel)return;return E.call(this,F,A)}A+=1}return A-1}removeLeadingNewlines(){var A,$,E,R,_,X,Y,F,D;Y=this.tokens;for(A=$=0,_=Y.length;$<_;A=++$)if([D]=Y[A],D!=="TERMINATOR")break;if(A===0)return;F=this.tokens.slice(0,A);for(E=0,X=F.length;E<X;E++)R=F[E],_1(R,this.tokens[A]);return this.tokens.splice(0,A)}closeOpenCalls(){var A,$;return $=function(E,R){var _;return(_=E[0])===")"||_==="CALL_END"},A=function(E,R){return E[0]="CALL_END"},this.scanTokens(function(E,R){if(E[0]==="CALL_START")this.detectEnd(R+1,$,A);return 1})}closeOpenIndexes(){var A,$,E;return E=null,$=function(R,_){var X;return(X=R[0])==="]"||X==="INDEX_END"},A=function(R,_){if(this.tokens.length>=_&&this.tokens[_+1][0]===":")return E[0]="[",R[0]="]";else return R[0]="INDEX_END"},this.scanTokens(function(R,_){if(R[0]==="INDEX_START")E=R,this.detectEnd(_+1,$,A);return 1})}indexOfTag(A,...$){var E,R,_,X,Y;E=0;for(R=_=0,X=$.length;0<=X?_<X:_>X;R=0<=X?++_:--_){if($[R]==null)continue;if(typeof $[R]==="string")$[R]=[$[R]];if(Y=this.tag(A+R+E),j.call($[R],Y)<0)return-1}return A+R+E-1}looksObjectish(A){var $,E;if(this.indexOfTag(A,"@",null,":")!==-1||this.indexOfTag(A,null,":")!==-1)return!0;if(E=this.indexOfTag(A,p),E!==-1){if($=null,this.detectEnd(E+1,function(R){var _;return _=R[0],j.call(c,_)>=0},function(R,_){return $=_}),this.tag($+1)===":")return!0}return!1}findTagsBackwards(A,$){var E,R,_,X,Y,F,D;E=[];while(A>=0&&(E.length||(X=this.tag(A),j.call($,X)<0)&&((Y=this.tag(A),j.call(p,Y)<0)||this.tokens[A].generated)&&(F=this.tag(A),j.call($1,F)<0))){if(R=this.tag(A),j.call(c,R)>=0)E.push(this.tag(A));if((_=this.tag(A),j.call(p,_)>=0)&&E.length)E.pop();A-=1}return D=this.tag(A),j.call($,D)>=0}addImplicitBracesAndParens(){var A,$,E;return A=[],$=null,E=!1,this.scanTokens(function(R,_,X){var Y,F,D,Z,M,Q,G,J,W,q,H,O,N,P,K,w,B,z,S,I,L,T,V,y,u,h,b,a,k,F1,z1,D1,M1,Z1,g,c1,P1,l1,t,m1,e,v;if([v]=R,[L]=T=_>0?X[_-1]:[],[w]=B=_<X.length-1?X[_+1]:[],g=function(){return A[A.length-1]},c1=_,D=function(C){return _-c1+C},H=function(C){var x;return C!=null?(x=C[2])!=null?x.ours:void 0:void 0},N=function(C){return H(C)&&(C!=null?C[0]:void 0)==="{"},O=function(C){return H(C)&&(C!=null?C[0]:void 0)==="("},G=function(){return H(g())},J=function(){return O(g())},q=function(){return N(g())},W=function(){var C;return G()&&((C=g())!=null?C[0]:void 0)==="CONTROL"},P1=function(C){return A.push(["(",C,{ours:!0}]),X.splice(C,0,m("CALL_START","(",["","implicit function call",R[2]],T))},Y=function(){return A.pop(),X.splice(_,0,m("CALL_END",")",["","end of input",R[2]],T)),_+=1},l1=function(C,{startsLine:x=!0,continuationLineIndent:i}={}){var l;return A.push(["{",C,{sameLine:!0,startsLine:x,ours:!0,continuationLineIndent:i}]),l=new String("{"),l.generated=!0,X.splice(C,0,m("{",l,R,T))},F=function(C){return C=C!=null?C:_,A.pop(),X.splice(C,0,m("}","}",R,T)),_+=1},Z=(C)=>{var x=null;if(this.detectEnd(C,function(i){return i[0]==="TERMINATOR"},function(i,l){return x=l},{returnOnNegativeLevel:!0}),x==null)return!1;return this.looksObjectish(x+1)},(J()||q())&&j.call(v1,v)>=0||q()&&L===":"&&v==="FOR")return A.push(["CONTROL",_,{ours:!0}]),D(1);if(v==="INDENT"&&G()){if(L!=="=>"&&L!=="->"&&L!=="["&&L!=="("&&L!==","&&L!=="{"&&L!=="ELSE"&&L!=="=")while(J()||q()&&L!==":")if(J())Y();else F();if(W())A.pop();return A.push([v,_]),D(1)}if(j.call(p,v)>=0)return A.push([v,_]),D(1);if(j.call(c,v)>=0){while(G())if(J())Y();else if(q())F();else A.pop();$=A.pop()}if(Q=()=>{var C,x,i,l;if(i=this.findTagsBackwards(_,["FOR"])&&this.findTagsBackwards(_,["FORIN","FOROF","FORFROM"]),C=i||this.findTagsBackwards(_,["WHILE","UNTIL","LOOP","LEADING_WHEN"]),!C)return!1;return x=!1,l=R[2].first_line,this.detectEnd(_,function(p1,d1){var U1;return U1=p1[0],j.call($1,U1)>=0},function(p1,d1){var U1;return[L,,{first_line:U1}]=X[d1-1]||[],x=l===U1&&(L==="->"||L==="=>")},{returnOnNegativeLevel:!0}),x},(j.call(j1,v)>=0&&R.spaced||v==="?"&&_>0&&!X[_-1].spaced)&&(j.call(L1,w)>=0||w==="..."&&(V=this.tag(_+2),j.call(L1,V)>=0)&&!this.findTagsBackwards(_,["INDEX_START","["])||j.call(f1,w)>=0&&!B.spaced&&!B.newLine)&&!Q()){if(v==="?")v=R[0]="FUNC_EXIST";return P1(_+1),D(2)}if(j.call(j1,v)>=0&&this.indexOfTag(_+1,"INDENT")>-1&&this.looksObjectish(_+2)&&!this.findTagsBackwards(_,["CLASS","COMPONENT","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"])&&!(((y=k=(u=g())!=null?u[0]:void 0)==="{"||y==="[")&&!H(g())&&this.findTagsBackwards(_,k)))return P1(_+1),A.push(["INDENT",_+2]),D(3);if(v==="SPACE?")E=!0;if(v===":"){if(E)return E=!1,D(1);if(k=function(){var C;switch(!1){case(C=this.tag(_-1),j.call(c,C)<0):if([m1,t]=$,m1==="["&&t>0&&this.tag(t-1)==="@"&&!X[t-1].spaced)return t-1;else return t;break;case this.tag(_-2)!=="@":return _-2;default:return _-1}}.call(this),e=k<=0||(h=this.tag(k-1),j.call($1,h)>=0)||X[k-1].newLine,g()){if([Z1,z1]=g(),M1=A[A.length-2],(Z1==="{"||Z1==="INDENT"&&(M1!=null?M1[0]:void 0)==="{"&&!H(M1)&&this.findTagsBackwards(z1-1,["{"]))&&(e||this.tag(k-1)===","||this.tag(k-1)==="{")&&(b=this.tag(k-1),j.call(X1,b)<0))return D(1)}return I=_>1?X[_-2]:[],l1(k,{startsLine:!!e,continuationLineIndent:I.continuationLineIndent}),D(2)}if(j.call($1,v)>=0)for(P=A.length-1;P>=0;P+=-1){if(D1=A[P],!H(D1))break;if(N(D1))D1[2].sameLine=!1}if(v==="TERMINATOR"&&R.endsContinuationLineIndentation){({preContinuationLineIndent:S}=R.endsContinuationLineIndentation);while(q()&&(M=g()[2].continuationLineIndent)!=null&&M>S)F()}if(K=L==="OUTDENT"||T.newLine,j.call(u1,v)>=0||j.call(Q1,v)>=0&&K||(v===".."||v==="...")&&this.findTagsBackwards(_,["INDEX_START"]))while(G())if([Z1,z1,{sameLine:F1,startsLine:e}]=g(),J()&&L!==","||L===","&&v==="TERMINATOR"&&w==null)Y();else if(q()&&F1&&v!=="TERMINATOR"&&L!==":"&&!((v==="POST_IF"||v==="FOR"||v==="WHILE"||v==="UNTIL")&&e&&Z(_+1)))F();else if(q()&&v==="TERMINATOR"&&L!==","&&!(e&&this.looksObjectish(_+1)))F();else if(W()&&X[g()[1]][0]==="CLASS"&&v==="TERMINATOR")A.pop();else break;if(v===","&&!this.looksObjectish(_+1)&&q()&&!((a=this.tag(_+2))==="FOROF"||a==="FORIN")&&(w!=="TERMINATOR"||!this.looksObjectish(_+2))){z=w==="OUTDENT"?1:0;while(q())F(_+z)}return D(1)})}rescueStowawayComments(){var A,$,E,R;return $=function(_,X,Y,F){if(Y[X][0]!=="TERMINATOR")Y[F](m("TERMINATOR",`
|
|
19
|
-
`,Y[X]));return Y[F](m("JS","",Y[X],_))},A=function(_,X){var Y,F;Y=_+1;while(Y!==X.length&&(F=X[Y][0],j.call(n,F)>=0)){if(X[Y][0]==="INTERPOLATION_END")return!0;Y++}return!1},R=function(_,X,Y){var F,D,Z,M,Q,G,J;D=X;while(D!==Y.length&&(Q=Y[D][0],j.call(n,Q)>=0))D++;if(!(D===Y.length||(G=Y[D][0],j.call(n,G)>=0))){J=_.comments;for(Z=0,M=J.length;Z<M;Z++)F=J[Z],F.unshift=!0;return _1(_,Y[D]),1}else return D=Y.length-1,$(_,D,Y,"push"),1},E=function(_,X,Y){var F,D,Z;F=X;while(F!==-1&&(D=Y[F][0],j.call(n,D)>=0))F--;if(!(F===-1||(Z=Y[F][0],j.call(n,Z)>=0)))return _1(_,Y[F]),1;else return $(_,0,Y,"unshift"),3},this.scanTokens(function(_,X,Y){var F,D,Z,M,Q;if(!_.comments)return 1;if(Q=1,Z=_[0],j.call(n,Z)>=0){F={comments:[]},D=_.comments.length-1;while(D!==-1){if(_.comments[D].newLine===!1&&_.comments[D].here===!1)F.comments.unshift(_.comments[D]),_.comments.splice(D,1);D--}if(F.comments.length!==0)Q=E(F,X-1,Y);if(_.comments.length!==0)R(_,X,Y)}else if(!A(X,Y)){F={comments:[]},D=_.comments.length-1;while(D!==-1){if(_.comments[D].newLine&&!_.comments[D].unshift&&!(_[0]==="JS"&&_.generated))F.comments.unshift(_.comments[D]),_.comments.splice(D,1);D--}if(F.comments.length!==0)Q=R(F,X+1,Y)}if(((M=_.comments)!=null?M.length:void 0)===0)delete _.comments;return Q})}addLocationDataToGeneratedTokens(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F,D,Z;if(A[2])return 1;if(!(A.generated||A.explicit))return 1;if(A.fromThen&&A[0]==="INDENT")return A[2]=A.origin[2],1;if(A[0]==="{"&&(X=(D=E[$+1])!=null?D[2]:void 0))({first_line:_,first_column:R,range:[F]}=X);else if(Y=(Z=E[$-1])!=null?Z[2]:void 0)({last_line:_,last_column:R,range:[,F]}=Y),R+=1;else _=R=0,F=0;return A[2]={first_line:_,first_column:R,last_line:_,last_column:R,last_line_exclusive:_,last_column_exclusive:R,range:[F,F]},1})}fixIndentationLocationData(){var A;if(this.allComments==null)this.allComments=m3(this.tokens);return A=($,{afterPosition:E,indentSize:R,first:_,indented:X})=>{var Y,F,D,Z,M,Q,G,J;if(J=$[2].range[0],M=function(W){if(W.outdented){if(!(R!=null&&W.indentSize>R))return!1}if(X&&!W.indented)return!1;if(!(W.locationData.range[0]<J))return!1;if(!(W.locationData.range[0]>E))return!1;return!0},_){Z=null,Q=this.allComments;for(F=Q.length-1;F>=0;F+=-1)if(Y=Q[F],M(Y))Z=Y;else if(Z)return Z;return Z}G=this.allComments;for(D=G.length-1;D>=0;D+=-1)if(Y=G[D],M(Y))return Y;return null},this.scanTokens(function($,E,R){var _,X,Y,F,D,Z,M,Q,G,J;if(!((M=$[0])==="INDENT"||M==="OUTDENT"||$.generated&&$[0]==="CALL_END"&&!((Q=$.data)!=null?Q.closingTagNameToken:void 0)||$.generated&&$[0]==="}"))return 1;if(_=$[0]==="INDENT",Z=(G=$.prevToken)!=null?G:R[E-1],D=Z[2],J=$.explicit||$.generated,J){X=$,Y=E;while((X.explicit||X.generated)&&Y!==R.length-1)X=R[Y++]}if(F=A(J?X:$,{afterPosition:D.range[0],indentSize:$.indentSize,first:_,indented:J}),_){if(!(F!=null?F.newLine:void 0))return 1}if($.generated&&$[0]==="CALL_END"&&(F!=null?F.indented:void 0))return 1;if(F!=null)D=F.locationData;return $[2]={first_line:F!=null?D.first_line:D.last_line,first_column:F!=null?_?0:D.first_column:D.last_column,last_line:D.last_line,last_column:D.last_column,last_line_exclusive:D.last_line_exclusive,last_column_exclusive:D.last_column_exclusive,range:_&&F!=null?[D.range[0]-F.indentSize,D.range[1]]:D.range},1})}normalizeLines(){var A,$,E,R,_,X,Y,F,D;return D=_=F=null,Y=null,X=null,R=[],E=function(Z,M){var Q,G,J,W;return Z[1]!==";"&&(Q=Z[0],j.call(w3,Q)>=0)&&!(Z[0]==="TERMINATOR"&&(G=this.tag(M+1),j.call(I1,G)>=0))&&!(Z[0]==="ELSE"&&(D!=="THEN"||(X||Y)))&&!(((J=Z[0])==="CATCH"||J==="FINALLY")&&(D==="->"||D==="=>"))||(W=Z[0],j.call(Q1,W)>=0)&&(this.tokens[M-1].newLine||this.tokens[M-1][0]==="OUTDENT")},A=function(Z,M){if(Z[0]==="ELSE"&&D==="THEN")R.pop();return this.tokens.splice(this.tag(M-1)===","?M-1:M,0,F)},$=(Z,M)=>{var Q,G,J;if(J=R.length,!(J>0))return M;return Q=R.pop(),[,G]=this.indentation(Z[Q]),G[1]=J*2,Z.splice(M,0,G),G[1]=2,Z.splice(M+1,0,G),this.detectEnd(M+2,function(W,q){var H;return(H=W[0])==="OUTDENT"||H==="TERMINATOR"},function(W,q){if(this.tag(q)==="OUTDENT"&&this.tag(q+1)==="OUTDENT")return Z.splice(q,2)}),M+2},this.scanTokens(function(Z,M,Q){var G,J,W,q,H,O,N;if([N]=Z,G=(N==="->"||N==="=>")&&this.findTagsBackwards(M,["IF","WHILE","FOR","UNTIL","SWITCH","WHEN","LEADING_WHEN","[","INDEX_START"])&&!this.findTagsBackwards(M,["THEN","..","..."]),N==="TERMINATOR"){if(this.tag(M+1)==="ELSE"&&this.tag(M-1)!=="OUTDENT")return Q.splice(M,1,...this.indentation()),1;if(q=this.tag(M+1),j.call(I1,q)>=0){if(Z[1]===";"&&this.tag(M+1)==="OUTDENT")Q[M+1].prevToken=Z,_1(Z,Q[M+1]);return Q.splice(M,1),0}}if(N==="CATCH")for(J=W=1;W<=2;J=++W){if(!((H=this.tag(M+J))==="OUTDENT"||H==="TERMINATOR"||H==="FINALLY"))continue;return Q.splice(M+J,0,...this.indentation()),2+J}if((N==="->"||N==="=>")&&((O=this.tag(M+1))===","||O==="]"||this.tag(M+1)==="."&&Z.newLine))return[_,F]=this.indentation(Q[M]),Q.splice(M+1,0,_,F),1;if(j.call(V1,N)>=0&&this.tag(M+1)!=="INDENT"&&!(N==="ELSE"&&this.tag(M+1)==="IF")&&!G){if(D=N,[_,F]=this.indentation(Q[M]),D==="THEN")_.fromThen=!0;if(N==="THEN")Y=this.findTagsBackwards(M,["LEADING_WHEN"])&&this.tag(M+1)==="IF",X=this.findTagsBackwards(M,["IF"])&&this.tag(M+1)==="IF";if(N==="THEN"&&this.findTagsBackwards(M,["IF"]))R.push(M);if(N==="ELSE"&&this.tag(M-1)!=="OUTDENT")M=$(Q,M);if(Q.splice(M+1,0,_),this.detectEnd(M+2,E,A),N==="THEN")Q.splice(M,1);return 1}return 1})}processTemplateTokens(){let A=!1,$=0,E=0,R=[],_=(D)=>{let Z=D.split("#")[0];return i1.has(Z)},X=(D)=>{if(!D||typeof D!=="string")return!1;return/^[A-Z]/.test(D)},Y=(D)=>{return _(D)||X(D)},F=(D,Z)=>{let M=Z;while(M>0){let Q=D[M-1][0];if(Q==="INDENT"||Q==="OUTDENT"||Q==="TERMINATOR"||Q==="RENDER"||Q==="CALL_END"||Q===")")break;M--}return D[M]&&D[M][0]==="IDENTIFIER"&&_(D[M][1])};return this.scanTokens(function(D,Z,M){let Q=D[0],G=Z<M.length-1?M[Z+1]:null;if(Q==="RENDER")return A=!0,$=E+1,1;if(Q==="INDENT")return E++,1;if(Q==="OUTDENT"){E--;let J=0;while(R.length>0&&R[R.length-1]>E){let W=["CALL_END",")",D[2]];W.generated=!0,M.splice(Z+1+J,0,W),R.pop(),J++}if(A&&E<$)A=!1;return 1+J}if(!A)return 1;if(Q==="."){let J=Z>0?M[Z-1]:null,W=J?J[0]:null;if(W==="INDENT"||W==="TERMINATOR"){if(G&&G[0]==="PROPERTY"){let q=["IDENTIFIER","div",D[2]];return q.generated=!0,M.splice(Z,0,q),2}}}if(Q==="IDENTIFIER"||Q==="PROPERTY"){let J=M[Z+1],W=M[Z+2];if(J&&J[0]==="#"&&W&&W[0]==="PROPERTY"){if(D[1]=D[1]+"#"+W[1],W.spaced)D.spaced=!0;return M.splice(Z+1,2),1}}if(Q==="BIND"){let J=Z>0?M[Z-1]:null,W=M[Z+1];if(J&&(J[0]==="IDENTIFIER"||J[0]==="PROPERTY")&&W&&W[0]==="IDENTIFIER")return J[1]=`__bind_${J[1]}__`,D[0]=":",D[1]=":",1}if(Q==="@"){let J=Z+1;if(J<M.length&&M[J][0]==="PROPERTY"){J++;while(J+1<M.length&&M[J][0]==="."&&M[J+1][0]==="PROPERTY")J+=2;if(J>Z+2&&J<M.length&&M[J][0]===":"){let W=["[","[",D[2]];W.generated=!0,M.splice(Z,0,W);let q=["]","]",M[J+1][2]];return q.generated=!0,M.splice(J+1,0,q),2}}}if(Q==="."&&G&&G[0]==="("){let J=Z>0?M[Z-1]:null,W=J?J[0]:null,q=W==="INDENT"||W==="TERMINATOR",H=["PROPERTY","__cx__",D[2]];H.generated=!0,G[0]="CALL_START";let O=1;for(let N=Z+2;N<M.length&&O>0;N++)if(M[N][0]==="("||M[N][0]==="CALL_START")O++;else if(M[N][0]===")"){if(O--,O===0)M[N][0]="CALL_END"}else if(M[N][0]==="CALL_END")O--;if(q){let N=["IDENTIFIER","div",D[2]];return N.generated=!0,M.splice(Z,0,N),M.splice(Z+2,0,H),3}else return M.splice(Z+1,0,H),2}if(G&&G[0]==="INDENT"){if(Q==="->"||Q==="=>"||Q==="CALL_START"||Q==="(")return 1;let J=!1;if(Q==="IDENTIFIER"&&Y(D[1]))J=!0;else if(Q==="PROPERTY"||Q==="STRING"||Q==="CALL_END"||Q===")")J=F(M,Z);else if(Q==="IDENTIFIER"&&Z>1&&M[Z-1][0]==="..."){if(F(M,Z)){let W=[",",",",D[2]];W.generated=!0;let q=["->","->",D[2]];return q.newLine=!0,M.splice(Z+1,0,W,q),3}}if(J){let W=["CALL_START","(",D[2]];W.generated=!0;let q=["->","->",D[2]];return q.newLine=!0,M.splice(Z+1,0,W,q),R.push(E+1),3}}return 1})}convertLegacyExistential(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F;if(A[0]!=="SPACE?")return 1;R=!1,X=0;for(_=$+1;_<E.length;_++){if(F=E[_][0],Y=F,j.call(p,Y)>=0)X++;else if(Y=F,j.call(c,Y)>=0)X--;if(F===":"&&X===0){R=!0;break}if(X===0&&(F==="TERMINATOR"||F==="INDENT"||F==="OUTDENT"))break}if(!R)A[0]="??",A[1]="??";return 1})}convertPostfixSpreadRest(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F,D,Z,M,Q,G;if(A[0]!=="..."&&A[0]!=="..")return 1;let J=0;for(let W=$-1;W>=0;W--){if(E[W][0]==="INDEX_END")J++;if(E[W][0]==="INDEX_START")J--}if(_=J<0,_)return 1;if(Z=E[$-1],F=E[$+1],!Z||!F)return 1;if(M=Z[0],D=F[0],M===","&&D===",")return 1;if(M==="NUMBER")return 1;if(G=["IDENTIFIER","PROPERTY",")","]","THIS","@"],Q=M,j.call(G,Q)>=0){if(R=[",","]",")","}","CALL_END","INDEX_END","PARAM_END","TERMINATOR","OUTDENT"],Q=D,j.call(R,Q)>=0)return E[$-1]=A,E[$]=Z,1}return 1})}tagPostfixConditionals(){var A,$,E;return E=null,$=function(R,_){var X,Y;return[Y]=R,[X]=this.tokens[_-1],Y==="TERMINATOR"||Y==="INDENT"&&j.call(V1,X)<0},A=function(R,_){if(R[0]!=="INDENT"||R.generated&&!R.fromThen)return E[0]="POST_"+E[0]},this.scanTokens(function(R,_){if(R[0]!=="IF"&&R[0]!=="UNLESS")return 1;return E=R,this.detectEnd(_+1,$,A),1})}exposeTokenDataToGrammar(){return this.scanTokens(function(A,$){var E,R,_;if(A.generated||A.data&&Object.keys(A.data).length!==0){A[1]=new String(A[1]),R=(E=A.data)!=null?E:{};for(R1 in R){if(!x3.call(R,R1))continue;_=R[R1],A[1][R1]=_}if(A.generated)A[1].generated=!0}return 1})}indentation(A){var $,E;if($=["INDENT",2],E=["OUTDENT",2],A)$.generated=E.generated=!0,$.origin=E.origin=A;else $.explicit=E.explicit=!0;return[$,E]}tag(A){var $;return($=this.tokens[A])!=null?$[0]:void 0}}return U.prototype.generate=m,U}.call(null);w1=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["INTERPOLATION_START","INTERPOLATION_END"],["REGEX_START","REGEX_END"]];G1={};p=[];c=[];for(J1=0,s1=w1.length;J1<s1;J1++)[B1,S1]=w1[J1],p.push(G1[S1]=B1),c.push(G1[B1]=S1);I1=["CATCH","THEN","ELSE","FINALLY"].concat(c);j1=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"];L1=["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","@","->","=>","[","(","{","--","++"];f1=["+","-"];u1=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"];V1=["ELSE","->","=>","TRY","FINALLY","THEN"];w3=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"];$1=["TERMINATOR","INDENT","OUTDENT"];Q1=[".","?.","::","?::"];v1=["IF","TRY","FINALLY","CATCH","CLASS","COMPONENT","SWITCH"];n=["(",")","[","]","{","}",":",".","..","...",",","=","++","--","?","AS","AWAIT","CALL_START","CALL_END","DEFAULT","DO","DO_IIFE","ELSE","EXTENDS","EXPORT","FORIN","FOROF","FORFROM","IMPORT","INDENT","INDEX_SOAK","INTERPOLATION_START","INTERPOLATION_END","LEADING_WHEN","OUTDENT","PARAM_END","REGEX_START","REGEX_END","RETURN","STRING_END","THROW","UNARY","YIELD"].concat(f1.concat(u1.concat(Q1.concat(v1))));X1=["\\",".","?.","?::","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"];var a3={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,DerivedAssign:19,ReadonlyAssign:20,EffectBlock:21,RenderBlock:22,StyleBlock:23,Component:24,If:25,Try:26,While:27,For:28,Switch:29,Class:30,Throw:31,Yield:32,Def:33,DEF:34,Identifier:35,CALL_START:36,ParamList:37,CALL_END:38,Block:39,Assignable:40,REACTIVE_ASSIGN:41,INDENT:42,OUTDENT:43,DERIVED_ASSIGN:44,READONLY_ASSIGN:45,EFFECT:46,FuncGlyph:47,RENDER:48,STYLE:49,COMPONENT:50,ComponentBody:51,ComponentLine:52,PropDecl:53,"@":54,PROPERTY:55,"?":56,"=":57,"...":58,IDENTIFIER:59,CodeLine:60,OperationLine:61,YIELD:62,Object:63,FROM:64,Property:65,AlphaNumeric:66,NUMBER:67,String:68,STRING:69,STRING_START:70,Interpolations:71,STRING_END:72,InterpolationChunk:73,INTERPOLATION_START:74,INTERPOLATION_END:75,Regex:76,REGEX:77,REGEX_START:78,Invocation:79,REGEX_END:80,RegexWithIndex:81,",":82,Literal:83,JS:84,UNDEFINED:85,NULL:86,BOOL:87,INFINITY:88,NAN:89,AssignObj:90,ObjAssignable:91,ObjRestValue:92,":":93,SimpleObjAssignable:94,ThisProperty:95,"[":96,"]":97,ObjSpreadExpr:98,Parenthetical:99,Super:100,This:101,SUPER:102,OptFuncExist:103,Arguments:104,DYNAMIC_IMPORT:105,".":106,"?.":107,"::":108,"?::":109,INDEX_START:110,INDEX_END:111,INDEX_SOAK:112,RETURN:113,PARAM_START:114,PARAM_END:115,"->":116,"=>":117,OptComma:118,Param:119,ParamVar:120,Array:121,Splat:122,SimpleAssignable:123,Slice:124,ES6_OPTIONAL_INDEX:125,Range:126,DoIife:127,MetaProperty:128,NEW_TARGET:129,IMPORT_META:130,"{":131,FOR:132,ForVariables:133,FOROF:134,"}":135,WHEN:136,OWN:137,AssignList:138,CLASS:139,EXTENDS:140,IMPORT:141,ImportDefaultSpecifier:142,ImportNamespaceSpecifier:143,ImportSpecifierList:144,ImportSpecifier:145,AS:146,DEFAULT:147,IMPORT_ALL:148,EXPORT:149,ExportSpecifierList:150,EXPORT_ALL:151,ExportSpecifier:152,ES6_OPTIONAL_CALL:153,FUNC_EXIST:154,ArgList:155,THIS:156,Elisions:157,ArgElisionList:158,OptElisions:159,RangeDots:160,"..":161,Arg:162,ArgElision:163,Elision:164,SimpleArgs:165,TRY:166,Catch:167,FINALLY:168,CATCH:169,THROW:170,"(":171,")":172,WhileSource:173,WHILE:174,UNTIL:175,Loop:176,LOOP:177,FORIN:178,BY:179,FORFROM:180,AWAIT:181,ForValue:182,SWITCH:183,Whens:184,ELSE:185,When:186,LEADING_WHEN:187,IfBlock:188,IF:189,UnlessBlock:190,UNLESS:191,POST_IF:192,POST_UNLESS:193,UNARY:194,DO:195,DO_IIFE:196,UNARY_MATH:197,"-":198,"+":199,"--":200,"++":201,MATH:202,"**":203,SHIFT:204,COMPARE:205,"&":206,"^":207,"|":208,"&&":209,"||":210,"??":211,"!?":212,RELATION:213,"SPACE?":214,COMPOUND_ASSIGN:215},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",34:"DEF",36:"CALL_START",38:"CALL_END",41:"REACTIVE_ASSIGN",42:"INDENT",43:"OUTDENT",44:"DERIVED_ASSIGN",45:"READONLY_ASSIGN",46:"EFFECT",48:"RENDER",49:"STYLE",50:"COMPONENT",54:"@",55:"PROPERTY",56:"?",57:"=",58:"...",59:"IDENTIFIER",62:"YIELD",64:"FROM",67:"NUMBER",69:"STRING",70:"STRING_START",72:"STRING_END",74:"INTERPOLATION_START",75:"INTERPOLATION_END",77:"REGEX",78:"REGEX_START",80:"REGEX_END",82:",",84:"JS",85:"UNDEFINED",86:"NULL",87:"BOOL",88:"INFINITY",89:"NAN",93:":",96:"[",97:"]",102:"SUPER",105:"DYNAMIC_IMPORT",106:".",107:"?.",108:"::",109:"?::",110:"INDEX_START",111:"INDEX_END",112:"INDEX_SOAK",113:"RETURN",114:"PARAM_START",115:"PARAM_END",116:"->",117:"=>",125:"ES6_OPTIONAL_INDEX",129:"NEW_TARGET",130:"IMPORT_META",131:"{",132:"FOR",134:"FOROF",135:"}",136:"WHEN",137:"OWN",139:"CLASS",140:"EXTENDS",141:"IMPORT",146:"AS",147:"DEFAULT",148:"IMPORT_ALL",149:"EXPORT",151:"EXPORT_ALL",153:"ES6_OPTIONAL_CALL",154:"FUNC_EXIST",156:"THIS",161:"..",166:"TRY",168:"FINALLY",169:"CATCH",170:"THROW",171:"(",172:")",174:"WHILE",175:"UNTIL",177:"LOOP",178:"FORIN",179:"BY",180:"FORFROM",181:"AWAIT",183:"SWITCH",185:"ELSE",187:"LEADING_WHEN",189:"IF",191:"UNLESS",192:"POST_IF",193:"POST_UNLESS",194:"UNARY",195:"DO",196:"DO_IIFE",197:"UNARY_MATH",198:"-",199:"+",200:"--",201:"++",202:"MATH",203:"**",204:"SHIFT",205:"COMPARE",206:"&",207:"^",208:"|",209:"&&",210:"||",211:"??",212:"!?",213:"RELATION",214:"SPACE?",215:"COMPOUND_ASSIGN"},parseTable:(()=>{let U=[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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,37,32,97,-3,-3,-3,-3,-3,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,108,-6,-6,-6,127,-6,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,32,4,1,32,7,15,75,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,32,4,1,32,7,15,75,1,1,1,17,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,130,96,97,128,129,54,1,5,30,2,4,1,13,2,11,1,5,7,11,4,6,3,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-263,-13,-13,-13,-13,-13,-263,-263,-13,-13,-13,-13,131,133,134,135,136,137,-13,138,-13,139,-13,-13,-13,-13,132,140,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,32,4,1,13,2,17,7,11,4,9,1,1,1,1,1,1,3,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,141,142,143,144,145,-14,146,-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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,9,1,5,32,4,1,32,7,15,75,-60,-60,-60,-60,-60,-60,-60,-60,-60,9,1,5,32,4,1,32,7,15,75,-61,-61,-61,-61,-61,-61,-61,-61,-61,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,148,-186,-186,149,150,-186,147,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,151,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,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,4,1,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,162,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,67,92,161,33,163,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,165,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,167,168,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,169,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,175,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,176,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,177,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,178,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,179,36,38,41,88,89,99,86,82,174,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,183,36,38,41,88,89,99,86,82,174,60,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,184,185,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,186,5,39,3,5,69,1,188,163,187,90,91,2,39,3,189,163,2,39,3,190,163,2,35,24,191,104,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,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,-371,-371,-371,-371,192,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,2,39,3,193,163,2,39,3,194,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,198,99,195,196,197,199,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,201,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,202,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,88,1,5,8,1,20,3,1,1,2,1,4,7,2,2,1,4,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,3,6,3,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,4,16,5,10,1,2,1,3,1,1,12,1,3,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,180,181,92,-210,203,182,163,-210,171,87,-210,-210,104,73,74,100,101,105,106,-210,76,102,103,37,-210,34,75,77,78,79,80,81,-210,93,83,-210,35,40,39,84,85,-210,170,-210,90,91,72,205,36,38,41,88,89,99,-210,-210,-210,-210,204,86,-210,82,-210,-210,-210,-210,-210,-210,-210,-210,174,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,206,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,207,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,137,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,1,1,3,2,2,1,3,1,1,1,1,4,2,2,1,3,1,1,2,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,3,6,2,1,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,3,2,8,7,5,5,4,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,208,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-62,33,209,-62,53,171,54,55,56,87,-62,-62,104,66,73,210,74,100,101,105,106,-62,76,102,103,37,-62,34,75,77,78,79,80,81,-62,93,83,-62,35,40,39,84,85,-62,69,170,-62,90,91,72,52,36,38,41,88,89,99,-62,-62,-62,-62,64,70,71,86,-62,59,65,82,-62,60,-62,-62,61,98,-62,-62,-62,49,63,57,94,58,95,-62,-62,172,173,174,46,47,48,50,51,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,2,35,24,211,104,6,15,32,13,54,2,1,213,43,212,42,90,91,111,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,1,1,3,2,2,1,3,1,1,1,1,4,5,3,1,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,214,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-131,33,215,-131,53,171,54,55,56,87,104,66,73,74,100,101,105,106,-131,76,102,103,37,-131,34,75,77,78,79,80,81,93,83,-131,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,-131,60,-131,-131,61,98,49,63,57,94,58,95,-131,-131,172,173,174,46,47,48,50,51,9,35,24,9,1,1,61,11,1,5,220,104,216,105,106,219,217,218,221,9,30,3,1,1,24,72,8,8,4,223,224,67,225,104,222,64,226,227,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,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,5,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,228,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,67,92,33,229,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,230,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,231,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,232,233,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,36,68,2,4,245,242,243,244,2,36,68,245,246,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,55,1,5,30,2,4,1,12,1,2,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,248,-268,-268,247,-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,-268,-268,1,106,249,1,106,250,54,11,23,8,4,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,54,11,23,8,4,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-154,-154,-154,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-155,-155,-155,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,251,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,252,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,253,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,254,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,4,1,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,256,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,255,33,163,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,6,29,7,1,11,1,3,1,6,1,1,1,1,1,12,8,1,1,2,1,1,39,3,-205,264,-205,-205,261,248,268,104,265,262,100,101,105,106,-205,263,257,267,259,266,260,-205,258,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,269,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,270,36,38,41,88,89,99,86,82,174,63,1,5,30,2,3,1,1,1,1,11,1,1,6,5,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,6,7,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,56,1,5,30,2,4,1,13,2,11,1,2,2,1,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,6,68,1,1,1,2,1,274,105,106,271,272,273,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,5,3,3,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-5,275,-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,67,92,33,-5,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,-5,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,-5,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,276,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,277,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,278,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,279,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,280,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,281,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,282,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,283,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,284,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,285,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,286,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,287,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,288,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,289,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,290,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,291,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,292,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,296,99,293,294,295,199,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,297,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,298,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,5,36,32,1,1,34,245,299,105,106,300,2,36,68,245,301,2,55,10,248,302,2,55,10,248,303,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,248,-160,-160,-160,304,-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,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,248,-161,-161,-161,305,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,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,1,1,5,2,4,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,2,2,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,306,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,307,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,311,102,103,37,309,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,308,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,314,1,110,315,3,36,33,1,-264,-264,-264,2,55,10,248,316,2,55,10,248,317,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,248,-177,-177,-177,318,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,248,-178,-178,-178,319,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,320,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,321,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,322,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,324,323,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,325,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,327,326,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,328,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,330,329,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,331,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,333,332,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,334,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,9,6,32,4,1,39,15,18,3,17,-138,-138,-138,-138,336,-138,335,337,-138,6,6,32,4,1,39,33,-141,-141,-141,-141,-141,-141,7,6,32,4,1,14,25,33,-145,-145,-145,-145,338,-145,-145,15,6,29,3,4,1,11,5,4,19,13,1,19,5,1,10,-148,155,-148,-148,-148,159,104,158,-148,156,160,-148,339,157,99,10,6,32,4,1,14,25,33,19,44,2,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,10,6,32,4,1,14,25,33,19,44,2,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,10,6,32,4,1,14,25,33,19,44,2,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,10,6,32,4,1,14,25,33,19,44,2,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,2,55,10,248,247,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,231,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,232,233,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,1,5,32,4,1,32,7,15,75,-135,-135,-135,-135,-135,-135,-135,-135,-135,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,5,3,3,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,342,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,67,92,33,341,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,108,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,126,-381,-381,-381,-381,-381,-381,125,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,120,121,-381,-381,9,1,5,32,4,1,32,7,15,75,-378,-378,-378,-378,-378,-378,-378,-378,-378,5,173,1,1,17,1,130,96,97,128,129,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,108,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,126,-382,-382,-382,-382,-382,-382,125,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,120,121,-382,-382,9,1,5,32,4,1,32,7,15,75,-379,-379,-379,-379,-379,-379,-379,-379,-379,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,108,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,126,-383,-383,-383,-383,-383,-383,125,-383,-383,-383,112,-383,-383,-383,-383,-383,-383,-383,120,121,-383,-383,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,343,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,2,39,3,161,163,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,167,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,5,15,32,67,2,1,213,171,170,90,91,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,108,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,126,-384,-384,-384,-384,-384,-384,125,-384,-384,-384,112,-384,-384,-384,-384,-384,-384,-384,120,121,-384,-384,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,108,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,126,-385,-385,-385,-385,-385,-385,125,-385,-385,-385,112,-385,-385,-385,-385,-385,-385,-385,120,121,-385,-385,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,108,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,126,-386,-386,-386,-386,-386,-386,125,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,120,121,-386,-386,2,63,68,344,99,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-183,-388,-183,-388,-388,-183,-183,-388,-183,-388,-183,-183,-388,-388,-388,-388,-183,-183,-183,-183,-183,-388,-183,-388,-183,-388,-388,-388,-388,-183,-183,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,13,36,33,1,33,3,1,1,1,1,2,13,28,1,-263,-263,-263,131,133,134,135,136,137,138,139,132,140,6,106,1,1,1,1,2,141,142,143,144,145,146,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-183,-389,-183,-389,-389,-183,-183,-389,-183,-389,-183,-183,-389,-389,-389,-389,-183,-183,-183,-183,-183,-389,-183,-389,-183,-389,-389,-389,-389,-183,-183,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,347,345,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,346,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,2,39,3,348,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,1,42,349,3,39,3,147,350,163,351,44,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,6,1,1,3,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,352,353,354,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,3,134,44,2,356,355,357,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,358,199,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,359,199,3,39,3,137,360,163,361,4,82,52,44,2,362,-357,-357,-357,5,57,25,52,44,2,363,-355,-355,-355,-355,23,42,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,364,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,184,2,1,365,366,367,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,368,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,59,1,5,30,2,1,2,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-183,-214,369,-183,163,-214,-183,-183,-214,-183,-214,-183,-183,-214,-214,-214,-214,-183,-183,-183,-183,-183,-214,-183,-214,-183,-214,-214,-214,-214,370,-183,-183,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,108,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,126,-311,-311,-311,-311,-311,-311,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,371,99,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,108,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,126,-63,-63,-63,-63,-63,-63,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,372,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,373,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,36,3,3,374,375,163,9,1,5,32,4,1,32,7,15,75,-380,-380,-380,-380,-380,-380,-380,-380,-380,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,108,-129,-129,-129,127,-129,126,-129,-129,-129,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,376,99,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,2,64,18,377,378,1,64,379,7,35,7,17,76,9,1,2,384,383,104,380,381,382,385,2,64,18,-234,-234,1,146,386,7,35,7,17,76,12,3,2,391,390,104,387,392,388,389,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,1,57,393,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,394,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,395,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,64,396,2,6,166,107,397,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,398,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,31,6,32,4,1,13,2,24,15,35,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,108,313,-285,-285,127,399,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,400,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,403,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,406,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,5,6,36,1,39,15,-289,-289,-289,-289,-289,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,407,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,5,6,36,1,39,15,-294,-294,-294,-294,-294,6,6,32,4,1,39,15,-286,-286,-286,-286,-286,-286,6,6,32,4,1,39,15,-287,-287,-287,-287,-287,-287,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,1,1,3,2,2,1,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-288,409,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-288,33,-288,-288,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,-288,34,75,77,78,79,80,81,93,83,-288,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,2,55,10,248,410,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,411,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,412,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,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,3,2,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,413,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,414,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,2,55,10,248,417,2,55,10,248,418,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,419,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,420,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,108,-315,-315,-315,-315,-315,-315,-315,127,-315,-315,421,-315,-315,126,96,97,-315,-315,-315,-315,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,108,-317,-317,-317,-317,-317,-317,-317,127,-317,-317,422,-317,-317,126,96,97,-317,-317,-317,-317,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,108,-324,-324,-324,-324,-324,-324,-324,127,-324,-324,-324,-324,-324,126,96,97,-324,-324,-324,-324,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,36,1,39,11,42,-95,-95,-95,-95,423,-95,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,425,-138,424,-138,7,6,36,1,14,25,11,42,-104,-104,-104,426,-104,-104,-104,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,427,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,55,10,31,248,247,428,6,6,36,1,39,11,42,-107,-107,-107,-107,-107,-107,5,6,36,1,39,53,-206,-206,-206,-206,-206,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,5,6,36,1,39,53,-96,-96,-96,-96,-96,17,35,19,1,4,4,2,29,1,3,1,1,1,1,3,26,25,15,264,87,248,104,431,265,429,266,430,432,433,434,435,436,99,86,82,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,437,-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,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,6,68,1,1,2,1,1,274,105,106,438,439,273,4,69,1,2,2,-74,-74,-74,-74,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,5,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,440,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,67,92,33,441,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,442,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,69,1,2,2,-79,-79,-79,-79,5,1,5,37,32,97,-4,-4,-4,-4,-4,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,108,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,126,-393,-393,-393,-393,-393,-393,125,-393,-393,111,112,-393,-393,-393,-393,-393,-393,-393,120,121,-393,-393,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,108,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,126,-394,-394,-394,-394,-394,-394,125,-394,-394,111,112,-394,-394,-394,-394,-394,-394,-394,120,121,-394,-394,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,108,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,126,-395,-395,-395,-395,-395,-395,125,-395,-395,-395,112,-395,-395,-395,-395,-395,-395,-395,120,121,-395,-395,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,108,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,126,-396,-396,-396,-396,-396,-396,125,-396,-396,-396,112,-396,-396,-396,-396,-396,-396,-396,120,121,-396,-396,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,108,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,126,-397,-397,-397,-397,-397,-397,125,110,109,111,112,-397,-397,-397,-397,-397,-397,-397,120,121,-397,-397,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,108,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,126,-398,-398,-398,-398,-398,-398,125,110,109,111,112,113,-398,-398,-398,-398,-398,-398,120,121,122,-398,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,108,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,126,-399,-399,-399,-399,-399,-399,125,110,109,111,112,113,114,-399,-399,-399,-399,-399,120,121,122,-399,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,108,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,126,-400,-400,-400,-400,-400,-400,125,110,109,111,112,113,114,115,-400,-400,-400,-400,120,121,122,-400,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,108,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,126,-401,-401,-401,-401,-401,-401,125,110,109,111,112,113,114,115,116,-401,-401,-401,120,121,122,-401,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,108,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,126,-402,-402,-402,-402,-402,-402,125,110,109,111,112,113,114,115,116,117,-402,-402,120,121,122,-402,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,108,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,126,-403,-403,-403,-403,-403,-403,125,110,109,111,112,113,114,115,116,117,118,-403,120,121,122,-403,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,108,-404,-404,-404,-404,-404,-404,-404,127,-404,-404,-404,-404,-404,126,96,97,-404,-404,-404,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,108,-405,-405,-405,-405,-405,-405,-405,127,-405,-405,-405,-405,-405,126,96,97,-405,-405,-405,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,108,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,126,-406,-406,-406,-406,-406,-406,125,110,109,111,112,113,-406,-406,-406,-406,-406,-406,120,121,-406,-406,23,56,37,39,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,443,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,108,-375,-375,-375,-375,-375,-375,-375,127,-375,-375,-375,-375,-375,126,96,97,-375,-375,-375,-375,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,108,-377,-377,-377,-377,-377,-377,-377,127,-377,-377,-377,-377,-377,126,96,97,-377,-377,-377,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,134,44,2,445,444,446,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,447,199,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,448,199,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,449,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,108,-374,-374,-374,-374,-374,-374,-374,127,-374,-374,-374,-374,-374,126,96,97,-374,-374,-374,-374,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,108,-376,-376,-376,-376,-376,-376,-376,127,-376,-376,-376,-376,-376,126,96,97,-376,-376,-376,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-156,-156,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-157,-157,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-158,-158,-158,-158,-158,-158,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-159,-159,-159,-159,-159,-159,26,56,2,53,21,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,313,450,127,451,312,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,452,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,453,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,111,454,1,111,455,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,1,1,5,3,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,6,2,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,456,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-279,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,-279,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,457,-86,-86,-86,-86,-86,-86,-86,-83,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,55,11,23,9,3,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,6,2,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,55,11,23,9,3,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,6,2,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,458,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,459,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,460,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,461,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,462,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,463,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,464,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,465,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,466,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,108,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,126,-92,-92,-92,-92,-92,-92,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,467,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,468,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,108,-35,-35,-35,-35,-35,-35,-35,127,-35,-35,-35,-35,-35,126,96,97,-35,-35,-35,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,469,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,470,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,108,-38,-38,-38,-38,-38,-38,-38,127,-38,-38,-38,-38,-38,126,96,97,-38,-38,-38,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,471,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,472,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,108,-41,-41,-41,-41,-41,-41,-41,127,-41,-41,-41,-41,-41,126,96,97,-41,-41,-41,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,473,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,474,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,47,69,1,475,90,91,17,6,29,3,4,1,11,4,1,4,32,1,1,22,1,1,10,4,-139,155,-139,-139,-139,159,154,104,158,156,160,-139,476,153,157,99,-139,2,6,36,477,478,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,479,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,32,4,1,39,33,-147,-147,-147,-147,-147,-147,28,6,32,4,1,13,26,15,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,108,-285,-285,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,2,6,37,107,480,9,6,32,4,1,39,15,18,3,17,-138,-138,-138,-138,336,-138,481,337,-138,1,43,482,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,108,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,126,-408,-408,-408,-408,-408,-408,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,483,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,484,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,5,6,1,1,1,1,1,1,1,1,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,487,488,489,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,485,486,490,491,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,492,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,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,493,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,2,39,3,494,163,6,35,4,3,17,4,68,495,497,163,104,496,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,498,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,499,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,500,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,501,1,180,502,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,503,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,10,35,19,5,4,32,1,24,1,10,51,155,159,104,158,156,160,200,157,99,504,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,505,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,184,2,1,506,366,367,4,43,142,1,1,507,508,509,367,3,43,142,2,-363,-363,-363,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,9,1,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,511,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,510,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,43,1,5,32,1,3,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,512,163,-212,108,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,126,-212,-212,-212,-212,-212,-212,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,513,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,514,1,43,515,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,108,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,126,-65,-65,-65,-65,-65,-65,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,516,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,1,43,517,3,68,1,1,518,105,106,3,131,12,5,520,519,221,3,68,1,1,521,105,106,1,64,522,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,523,-138,5,6,36,1,39,53,-225,-225,-225,-225,-225,6,35,7,17,85,1,2,384,383,104,525,382,385,6,6,36,1,39,53,11,-230,-230,-230,-230,-230,526,6,6,36,1,39,53,11,-232,-232,-232,-232,-232,527,2,35,24,528,104,14,1,5,32,4,1,21,11,7,15,75,2,1,17,1,-236,-236,-236,-236,-236,529,-236,-236,-236,-236,-236,-236,-236,-236,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,530,-138,5,6,36,1,39,53,-248,-248,-248,-248,-248,6,35,7,17,88,3,2,391,390,104,392,532,389,6,6,36,1,39,53,11,-253,-253,-253,-253,-253,533,6,6,36,1,39,53,11,-256,-256,-256,-256,-256,534,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,536,535,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,537,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,108,-243,-243,-243,127,-243,126,96,97,-243,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,538,99,3,68,1,1,539,105,106,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,2,6,37,107,540,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,541,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,406,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,5,6,36,1,39,15,-295,-295,-295,-295,-295,2,42,55,543,542,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,3,2,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-139,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-139,33,-139,-139,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,-139,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,-139,64,70,71,86,545,238,544,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,6,36,1,54,546,-296,-296,-296,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,547,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,28,6,32,4,1,13,26,15,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,108,-153,-153,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,548,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,549,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,550,-138,5,6,32,4,1,39,-280,-280,-280,-280,-280,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,552,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,553,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,554,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,555,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,556,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,557,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,6,36,93,559,560,558,23,6,29,3,4,1,11,1,3,1,6,1,1,1,1,1,20,1,1,2,1,1,1,38,-139,264,-139,-139,-139,261,248,268,104,265,262,100,101,105,106,561,562,267,259,266,260,-139,-139,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,563,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,564,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,565,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,566,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,16,6,30,6,1,26,1,12,21,3,1,1,1,1,2,23,19,-108,-110,-108,-108,-263,-263,-108,567,-110,-110,-110,-110,-110,-110,-108,140,16,6,30,6,1,26,1,12,21,3,1,1,1,1,2,23,19,-109,-263,-109,-109,-263,-263,-109,568,569,570,571,572,573,574,-109,140,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,7,36,33,1,33,3,4,44,-263,-263,-263,575,243,244,140,2,36,68,245,576,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,56,1,5,30,2,4,1,13,2,11,1,2,2,1,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,4,69,1,2,2,-75,-75,-75,-75,2,6,69,107,577,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,578,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,69,1,2,2,-78,-78,-78,-78,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,579,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,580,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,581,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,582,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,583,1,180,584,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,585,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,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,1,1,5,3,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,6,2,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,586,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-277,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,-277,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,26,43,13,2,74,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,587,108,313,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,43,588,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,24,43,13,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-278,108,-278,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,589,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,26,56,2,53,21,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,313,590,127,451,312,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,591,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,592,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,111,593,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,594,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,595,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,596,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,597,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,598,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,108,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,126,-93,-93,-93,-93,-93,-93,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,599,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,108,-36,-36,-36,-36,-36,-36,-36,127,-36,-36,-36,-36,-36,126,96,97,-36,-36,-36,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,600,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,108,-39,-39,-39,-39,-39,-39,-39,127,-39,-39,-39,-39,-39,126,96,97,-39,-39,-39,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,601,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,108,-42,-42,-42,-42,-42,-42,-42,127,-42,-42,-42,-42,-42,126,96,97,-42,-42,-42,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,602,108,127,126,96,97,124,125,110,109,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,4,1,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,604,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,67,92,603,33,163,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,6,6,32,4,1,39,33,-142,-142,-142,-142,-142,-142,11,35,19,4,1,4,32,1,23,1,1,10,155,159,154,104,158,156,160,605,153,157,99,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,606,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,28,6,32,4,1,13,26,33,17,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,108,-146,-146,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,3,47,69,1,607,90,91,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,608,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,108,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,126,-410,-410,-410,-410,-410,-410,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,37,610,609,2,6,37,-49,-49,24,6,37,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,37,-53,-53,7,6,37,130,1,1,17,1,-54,-54,130,96,97,128,129,2,6,37,-55,-55,55,1,5,30,2,4,1,12,1,2,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,611,-268,612,247,-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,-268,-268,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,613,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,39,3,614,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,2,39,3,615,163,2,39,3,616,163,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,26,39,3,14,76,4,37,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,617,163,108,127,618,126,96,97,619,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,620,163,108,127,621,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,622,163,108,127,623,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,624,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,625,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,626,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,134,44,2,-358,-358,-358,26,56,26,50,2,39,1,1,3,2,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,-356,127,-356,126,96,97,-356,-356,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,4,43,142,1,1,627,628,509,367,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,2,39,3,629,163,3,43,142,2,-364,-364,-364,3,39,3,40,630,163,631,24,42,14,26,50,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-302,108,-302,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,43,1,5,32,1,3,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,632,163,-216,108,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,126,-216,-216,-216,-216,-216,-216,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,8,6,32,4,1,39,15,21,17,-138,633,-138,-138,336,-138,337,-138,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,1,64,634,6,35,7,17,85,1,2,384,383,104,635,382,385,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,3,68,1,1,636,105,106,3,6,36,93,638,639,637,10,6,29,3,4,1,16,38,38,10,2,-139,384,-139,-139,-139,104,-139,-139,640,385,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,641,-138,2,35,24,642,104,2,35,24,643,104,1,64,-235,3,68,1,1,644,105,106,3,6,36,93,646,647,645,10,6,29,3,4,1,16,38,38,12,5,-139,391,-139,-139,-139,104,-139,-139,392,648,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,649,-138,3,35,24,88,650,104,651,2,35,24,652,104,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,108,-240,-240,-240,127,-240,126,-240,-240,-240,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,653,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,654,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,655,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,1,172,656,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,657,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,658,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,5,6,36,1,39,15,-290,-290,-290,-290,-290,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,5,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-297,-297,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,-297,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,238,659,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,2,42,1,543,660,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,661,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,6,32,4,663,662,664,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,3,2,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-139,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-139,33,-139,-139,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,-139,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,-139,64,70,71,86,665,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,666,-138,2,39,3,667,163,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,108,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,126,-316,-316,-316,-316,-316,-316,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,108,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,126,-318,-318,-318,-318,-318,-318,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,108,-97,668,-97,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,669,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,17,35,19,1,3,1,6,1,1,1,1,1,20,1,1,2,1,1,264,261,248,268,104,265,262,100,101,105,106,670,562,267,259,266,260,23,6,29,7,1,11,1,3,1,6,1,1,1,1,1,12,8,1,1,2,1,1,39,3,-205,264,-205,-205,261,248,268,104,265,262,100,101,105,106,-205,263,562,267,259,266,260,-205,671,5,6,36,1,39,53,-207,-207,-207,-207,-207,6,6,36,1,39,11,42,-95,-95,-95,-95,672,-95,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,108,-99,127,-99,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,673,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,36,1,39,11,42,-105,-105,-105,-105,-105,-105,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,674,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,36,68,245,675,2,36,68,245,676,2,55,10,248,677,2,55,10,248,678,15,6,30,6,1,12,10,17,24,1,1,1,1,2,23,19,-123,-123,-123,-123,248,679,-123,-123,-123,-123,-123,-123,-123,-123,-123,15,6,30,6,1,12,10,17,24,1,1,1,1,2,23,19,-124,-124,-124,-124,248,680,-124,-124,-124,-124,-124,-124,-124,-124,-124,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,681,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,682,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,683,2,36,68,245,684,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,4,69,1,2,2,-76,-76,-76,-76,2,6,37,107,685,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,108,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,126,-407,-407,-407,-407,-407,-407,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,108,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,686,-340,-340,126,-340,-340,-340,687,-340,-340,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,108,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,688,-345,-345,126,-345,-345,-345,-345,-345,-345,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,108,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,689,-349,-349,126,-349,-349,-349,-349,-349,-349,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,690,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,691,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,108,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,126,-354,-354,-354,-354,-354,-354,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,43,13,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-276,108,-276,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,111,692,1,111,693,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,-82,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,26,43,13,2,74,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,694,108,313,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,43,695,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-171,-171,-171,-171,-171,-171,-171,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,696,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,111,697,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,698,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,1,5,32,4,1,32,7,15,75,-134,-134,-134,-134,-134,-134,-134,-134,-134,6,6,32,4,1,39,33,-143,-143,-143,-143,-143,-143,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,336,-138,699,-138,2,39,3,603,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,107,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,5,3,3,1,1,1,1,2,1,1,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-51,487,488,489,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-51,53,43,54,55,56,700,490,491,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-56,-69,-69,-69,-69,-56,-69,-69,701,702,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,1,59,703,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,704,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,705,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,706,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,707,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,708,163,108,127,709,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,710,163,108,127,711,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,2,39,3,712,163,1,43,713,4,6,37,142,2,714,-365,-365,-365,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,715,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,2,39,3,716,163,3,68,1,1,717,105,106,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,718,-138,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,1,64,719,4,35,24,86,2,384,104,720,385,6,35,7,17,85,1,2,384,383,104,721,382,385,5,6,36,1,39,53,-226,-226,-226,-226,-226,3,6,36,1,638,639,722,5,6,36,1,39,53,-231,-231,-231,-231,-231,5,6,36,1,39,53,-233,-233,-233,-233,-233,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,14,1,5,32,4,1,21,11,7,15,75,2,1,17,1,-237,-237,-237,-237,-237,723,-237,-237,-237,-237,-237,-237,-237,-237,4,35,24,88,5,391,104,392,724,6,35,7,17,88,3,2,391,390,104,392,725,389,5,6,36,1,39,53,-249,-249,-249,-249,-249,3,6,36,1,646,647,726,5,6,36,1,39,53,-254,-254,-254,-254,-254,5,6,36,1,39,53,-255,-255,-255,-255,-255,5,6,36,1,39,53,-257,-257,-257,-257,-257,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,108,-241,-241,-241,127,-241,126,-241,-241,-241,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,727,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,728,5,6,36,1,39,15,-291,-291,-291,-291,-291,5,6,36,1,39,15,-292,-292,-292,-292,-292,1,111,729,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,730,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,731,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,5,6,32,4,1,39,-281,-281,-281,-281,-281,3,6,36,1,663,664,732,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,296,99,733,734,295,199,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,735,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,36,1,39,53,-208,-208,-208,-208,-208,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,425,-138,736,-138,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,737,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,557,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,738,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,36,1,39,11,42,-106,-106,-106,-106,-106,-106,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,739,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,740,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,741,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,742,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,1,75,743,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,744,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,745,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,746,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,747,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,108,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,748,-347,-347,126,-347,-347,-347,-347,-347,-347,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,108,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,749,-351,-351,126,-351,-351,-351,-351,-351,-351,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,1,111,750,1,111,751,1,111,752,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,1,111,753,3,6,36,1,477,478,754,2,6,37,-50,-50,2,6,37,-57,-57,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,755,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,2,6,37,-59,-59,25,39,3,14,76,41,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,756,163,108,127,126,96,97,757,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,758,163,108,127,759,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,760,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,761,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,762,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,763,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,764,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,3,43,142,2,-366,-366,-366,24,42,14,26,50,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-303,108,-303,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,3,6,36,93,638,639,765,3,68,1,1,766,105,106,5,6,36,1,39,53,-227,-227,-227,-227,-227,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,767,-138,5,6,36,1,39,53,-228,-228,-228,-228,-228,3,68,1,1,768,105,106,5,6,36,1,39,53,-250,-250,-250,-250,-250,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,769,-138,5,6,36,1,39,53,-251,-251,-251,-251,-251,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,42,1,543,770,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,5,6,32,4,1,39,-282,-282,-282,-282,-282,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,771,-138,5,6,32,4,1,39,-283,-283,-283,-283,-283,3,134,44,2,772,444,446,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,773,199,5,6,36,1,39,53,-98,-98,-98,-98,-98,3,6,36,1,559,560,774,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,108,-97,127,-97,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,36,1,39,53,-100,-100,-100,-100,-100,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,775,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,776,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,777,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,4,69,1,2,2,-77,-77,-77,-77,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,108,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,126,-341,-341,-341,778,-341,-341,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,108,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,779,-342,-342,126,-342,-342,-342,-342,-342,-342,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,108,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,-346,-346,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,108,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,126,-350,-350,-350,-350,-350,-350,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,780,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,781,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-172,-172,-172,-172,-172,-172,-172,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,6,6,32,4,1,39,33,-144,-144,-144,-144,-144,-144,24,6,37,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,782,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,783,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,784,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,785,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,64,786,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,3,6,36,1,638,639,787,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,3,6,36,1,646,647,788,5,6,36,1,39,15,-293,-293,-293,-293,-293,3,6,36,1,663,664,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,790,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,791,5,6,36,1,39,53,-209,-209,-209,-209,-209,1,111,792,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,793,108,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,794,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,795,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,108,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,126,-348,-348,-348,-348,-348,-348,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,108,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,126,-352,-352,-352,-352,-352,-352,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,796,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,797,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,3,68,1,1,798,105,106,5,6,36,1,39,53,-229,-229,-229,-229,-229,5,6,36,1,39,53,-252,-252,-252,-252,-252,5,6,32,4,1,39,-284,-284,-284,-284,-284,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,108,-345,-345,801,-345,-345,-345,-345,799,-345,-345,-345,800,-345,-345,126,-345,-345,-345,-345,-345,-345,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,802,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,1,111,803,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,108,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,126,-343,-343,-343,-343,-343,-343,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-344,-344,-344,-344,-344,108,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,126,-344,-344,-344,-344,-344,-344,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,1,135,804,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,805,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,32,4,1,54,38,-139,-139,-139,-139,-139,-139,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,108,-347,-347,801,-347,-347,-347,-347,806,-347,-347,-347,807,-347,-347,126,-347,-347,-347,-347,-347,-347,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,108,-346,-346,801,-346,-346,-346,-346,808,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,-346,-346,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,135,809,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,810,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,135,811,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,108,-348,-348,801,-348,-348,-348,-348,812,-348,-348,-348,-348,-348,-348,126,-348,-348,-348,-348,-348,-348,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,1,135,813,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203],A=[],$=0,E,R,_,X;while($<U.length){E=U[$++],R={},_=0,X=[];while(E--)_+=U[$++],X.push(_);for(_ of X)R[_]=U[$++];A.push(R)}return A})(),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,33,6,33,3,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,2,22,2,23,2,24,5,51,1,51,3,51,2,52,1,52,1,52,1,52,1,53,2,53,3,53,4,53,3,8,1,8,1,32,1,32,2,32,4,32,3,39,2,39,3,35,1,65,1,66,1,66,1,68,1,68,3,71,1,71,2,73,3,73,5,73,2,73,1,76,1,76,3,81,3,81,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,17,3,17,4,17,5,90,1,90,1,90,3,90,5,90,3,90,5,94,1,94,1,94,1,91,1,91,3,91,4,91,1,92,2,92,2,98,1,98,1,98,1,98,1,98,1,98,3,98,2,98,3,98,3,98,3,98,3,98,3,98,3,98,2,98,2,98,4,98,6,98,5,98,7,10,2,10,4,10,1,15,5,15,2,60,5,60,2,47,1,47,1,118,0,118,1,37,0,37,1,37,3,37,4,37,6,119,1,119,3,119,2,119,1,120,1,120,1,120,1,120,1,122,2,123,1,123,1,123,3,123,3,123,3,123,3,123,2,123,2,123,4,123,6,123,4,123,6,123,4,123,5,123,7,123,5,123,7,123,5,123,7,123,3,123,3,123,3,123,3,123,2,123,2,123,4,123,6,123,5,123,7,40,1,40,1,40,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,100,3,100,4,100,6,128,3,128,3,63,10,63,12,63,11,63,13,63,4,138,0,138,1,138,3,138,4,138,6,30,1,30,2,30,3,30,4,30,2,30,3,30,4,30,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,144,1,144,3,144,4,144,4,144,6,145,1,145,3,145,1,145,3,142,1,143,3,13,3,13,5,13,2,13,2,13,4,13,5,13,6,13,3,13,5,13,4,13,5,13,7,150,1,150,3,150,4,150,4,150,6,152,1,152,3,152,3,152,1,152,3,79,3,79,3,79,3,79,2,79,2,103,0,103,1,104,2,104,4,101,1,101,1,95,2,121,2,121,3,121,4,160,1,160,1,126,5,124,3,124,2,124,2,124,1,155,1,155,3,155,4,155,4,155,6,162,1,162,1,162,1,162,1,158,1,158,3,158,4,158,4,158,6,163,1,163,2,159,1,159,2,157,1,157,2,164,1,164,2,165,1,165,3,26,2,26,3,26,4,26,5,167,3,167,3,167,2,31,2,31,4,99,3,99,5,173,2,173,4,173,2,173,4,27,2,27,2,27,2,27,1,176,2,176,2,28,5,28,7,28,7,28,9,28,9,28,5,28,7,28,6,28,8,28,5,28,7,28,6,28,8,28,3,28,5,28,5,28,7,28,7,28,9,28,9,28,5,28,7,28,6,28,8,28,5,28,7,28,6,28,8,28,3,28,5,182,1,182,3,133,1,133,3,29,5,29,7,29,4,29,6,184,1,184,2,186,3,186,4,188,3,188,5,190,3,190,5,25,1,25,3,25,1,25,3,25,3,25,3,25,3,61,2,61,2,61,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,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,5,16,3,16,5,16,4,127,2],ruleActions:(U,A,$,E)=>{let R=A,_=A.length-1;switch(U){case 1:return["program"];case 2:return["program",...R[_]];case 3:case 49:case 74:case 141:case 206:case 225:case 248:case 280:case 294:case 298:case 357:case 363:return[R[_]];case 4:case 50:case 142:case 207:case 226:case 249:case 281:return[...R[_-2],R[_]];case 5:case 51:case 76:case 301:return R[_-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 52:case 53:case 54:case 55:case 60:case 61:case 68:case 69:case 70:case 71:case 72:case 79:case 80:case 84:case 85:case 86:case 89:case 90:case 91:case 96:case 101:case 102:case 103:case 104:case 107:case 110:case 111:case 112:case 113:case 114:case 136:case 137:case 138:case 139:case 145:case 149:case 150:case 151:case 152:case 154:case 155:case 183:case 184:case 185:case 186:case 187:case 188:case 189:case 190:case 191:case 192:case 193:case 194:case 230:case 232:case 234:case 253:case 256:case 285:case 286:case 287:case 289:case 302:case 322:case 355:case 371:case 373:return R[_];case 33:return["def",R[_-4],R[_-2],R[_]];case 34:return["def",R[_-1],[],R[_]];case 35:return["signal",R[_-2],R[_]];case 36:return["signal",R[_-3],R[_]];case 37:return["signal",R[_-4],R[_-1]];case 38:return["derived",R[_-2],R[_]];case 39:return["derived",R[_-3],R[_]];case 40:return["derived",R[_-4],R[_-1]];case 41:return["readonly",R[_-2],R[_]];case 42:return["readonly",R[_-3],R[_]];case 43:return["readonly",R[_-4],R[_-1]];case 44:case 45:return["effect",R[_]];case 46:return["render",R[_]];case 47:return["style",R[_]];case 48:return["component",R[_-3],["block",...R[_-1]]];case 56:return["prop",R[_]];case 57:return["prop",R[_-1],"optional"];case 58:return["prop",R[_-2],R[_]];case 59:return["prop-rest",R[_]];case 62:return["yield"];case 63:return["yield",R[_]];case 64:return["yield",R[_-1]];case 65:return["yield-from",R[_]];case 66:return["block"];case 67:return["block",...R[_-1]];case 73:return["str",...R[_-1]];case 75:case 295:case 299:case 364:return[...R[_-1],R[_]];case 77:case 228:case 251:case 266:case 283:return R[_-2];case 78:return"";case 81:return["regex",R[_-1]];case 82:return["regex-index",R[_-2],R[_]];case 83:return["regex-index",R[_],null];case 87:return"undefined";case 88:return"null";case 92:return["=",R[_-2],R[_]];case 93:return["=",R[_-3],R[_]];case 94:return["=",R[_-4],R[_-1]];case 95:return[R[_],R[_],null];case 97:return[R[_-2],R[_],":"];case 98:return[R[_-4],R[_-1],":"];case 99:return[R[_-2],R[_],"="];case 100:return[R[_-4],R[_-1],"="];case 105:return["computed",R[_-1]];case 106:return["[]","this",R[_-1]];case 108:case 109:case 153:return["...",R[_]];case 115:case 261:return["super",...R[_]];case 116:case 262:return["import",...R[_]];case 117:case 118:return[R[_-2],...R[_]];case 119:case 156:case 173:return[".",R[_-2],R[_]];case 120:case 157:case 174:return["?.",R[_-2],R[_]];case 121:case 158:case 175:return["::",R[_-2],R[_]];case 122:case 159:case 176:return["?::",R[_-2],R[_]];case 123:case 160:case 177:return["::",R[_-1],"prototype"];case 124:case 161:case 178:return["?::",R[_-1],"prototype"];case 125:case 162:case 164:case 179:return["[]",R[_-3],R[_-1]];case 126:case 163:case 165:case 180:return["[]",R[_-5],R[_-2]];case 127:case 167:case 169:case 181:return["?[]",R[_-4],R[_-1]];case 128:case 168:case 170:case 182:return["?[]",R[_-6],R[_-2]];case 129:return["return",R[_]];case 130:return["return",R[_-1]];case 131:return["return"];case 132:case 134:return[R[_-1],R[_-3],R[_]];case 133:case 135:return[R[_-1],[],R[_]];case 140:case 205:case 265:case 296:return[];case 143:case 208:case 227:case 250:case 282:return[...R[_-3],R[_]];case 144:case 209:case 229:case 252:case 284:return[...R[_-5],...R[_-2]];case 146:case 356:return["default",R[_-2],R[_]];case 147:return["rest",R[_]];case 148:return["expansion"];case 166:return[R[_-1][0],R[_-3],...R[_-1].slice(1)];case 171:return["optindex",R[_-4],R[_-1]];case 172:return["optindex",R[_-6],R[_-2]];case 195:return[".","super",R[_]];case 196:return["[]","super",R[_-1]];case 197:return["[]","super",R[_-2]];case 198:return[".","new",R[_]];case 199:return[".","import",R[_]];case 200:return["object-comprehension",R[_-8],R[_-6],[["for-of",R[_-4],R[_-2],!1]],[]];case 201:return["object-comprehension",R[_-10],R[_-8],[["for-of",R[_-6],R[_-4],!1]],[R[_-2]]];case 202:return["object-comprehension",R[_-9],R[_-7],[["for-of",R[_-4],R[_-2],!0]],[]];case 203:return["object-comprehension",R[_-11],R[_-9],[["for-of",R[_-6],R[_-4],!0]],[R[_-2]]];case 204:return["object",...R[_-2]];case 210:return["class",null,null];case 211:return["class",null,null,R[_]];case 212:return["class",null,R[_]];case 213:return["class",null,R[_-1],R[_]];case 214:return["class",R[_],null];case 215:return["class",R[_-1],null,R[_]];case 216:return["class",R[_-2],R[_]];case 217:return["class",R[_-3],R[_-1],R[_]];case 218:case 221:return["import","{}",R[_]];case 219:case 220:return["import",R[_-2],R[_]];case 222:return["import",R[_-4],R[_]];case 223:return["import",[R[_-4],R[_-2]],R[_]];case 224:return["import",[R[_-7],R[_-4]],R[_]];case 231:case 233:case 254:case 255:case 257:case 358:return[R[_-2],R[_]];case 235:return["*",R[_]];case 236:return["export","{}"];case 237:return["export",R[_-2]];case 238:case 239:return["export",R[_]];case 240:return["export",["=",R[_-2],R[_]]];case 241:return["export",["=",R[_-3],R[_]]];case 242:return["export",["=",R[_-4],R[_-1]]];case 243:return["export-default",R[_]];case 244:return["export-default",R[_-1]];case 245:return["export-all",R[_]];case 246:return["export-from","{}",R[_]];case 247:return["export-from",R[_-4],R[_]];case 258:return["tagged-template",R[_-2],R[_]];case 259:return R[_-1]?["?call",R[_-2],...R[_]]:[R[_-2],...R[_]];case 260:return["optcall",R[_-2],...R[_]];case 263:case 300:return null;case 264:return!0;case 267:case 268:return"this";case 269:return[".","this",R[_]];case 270:return["array"];case 271:return["array",...R[_-1]];case 272:return["array",...R[_-2],...R[_-1]];case 273:return"..";case 274:case 288:return"...";case 275:return[R[_-2],R[_-3],R[_-1]];case 276:case 395:case 397:case 398:case 406:case 408:return[R[_-1],R[_-2],R[_]];case 277:return[R[_],R[_-1],null];case 278:return[R[_-1],null,R[_]];case 279:return[R[_],null,null];case 290:return[...R[_-2],...R[_]];case 291:return[...R[_-3],...R[_]];case 292:return[...R[_-2],...R[_-1]];case 293:return[...R[_-5],...R[_-4],...R[_-2],...R[_-1]];case 297:return[...R[_]];case 303:return Array.isArray(R[_-2])?[...R[_-2],R[_]]:[R[_-2],R[_]];case 304:return["try",R[_]];case 305:return["try",R[_-1],R[_]];case 306:return["try",R[_-2],R[_]];case 307:return["try",R[_-3],R[_-2],R[_]];case 308:case 309:case 378:case 381:case 383:return[R[_-1],R[_]];case 310:return[null,R[_]];case 311:return["throw",R[_]];case 312:return["throw",R[_-1]];case 313:return R[_-1].length===1?R[_-1][0]:R[_-1];case 314:return R[_-2].length===1?R[_-2][0]:R[_-2];case 315:return["while",R[_]];case 316:return["while",R[_-2],R[_]];case 317:return["until",R[_]];case 318:return["until",R[_-2],R[_]];case 319:return R[_-1].length===2?[R[_-1][0],R[_-1][1],R[_]]:[R[_-1][0],R[_-1][1],R[_-1][2],R[_]];case 320:case 321:return R[_].length===2?[R[_][0],R[_][1],[R[_-1]]]:[R[_][0],R[_][1],R[_][2],[R[_-1]]];case 323:return["loop",R[_]];case 324:return["loop",[R[_]]];case 325:return["for-in",R[_-3],R[_-1],null,null,R[_]];case 326:return["for-in",R[_-5],R[_-3],null,R[_-1],R[_]];case 327:return["for-in",R[_-5],R[_-3],R[_-1],null,R[_]];case 328:return["for-in",R[_-7],R[_-5],R[_-1],R[_-3],R[_]];case 329:return["for-in",R[_-7],R[_-5],R[_-3],R[_-1],R[_]];case 330:return["for-of",R[_-3],R[_-1],!1,null,R[_]];case 331:return["for-of",R[_-5],R[_-3],!1,R[_-1],R[_]];case 332:return["for-of",R[_-3],R[_-1],!0,null,R[_]];case 333:return["for-of",R[_-5],R[_-3],!0,R[_-1],R[_]];case 334:return["for-from",R[_-3],R[_-1],!1,null,R[_]];case 335:return["for-from",R[_-5],R[_-3],!1,R[_-1],R[_]];case 336:return["for-from",R[_-3],R[_-1],!0,null,R[_]];case 337:return["for-from",R[_-5],R[_-3],!0,R[_-1],R[_]];case 338:return["for-in",[],R[_-1],null,null,R[_]];case 339:return["for-in",[],R[_-3],R[_-1],null,R[_]];case 340:return["comprehension",R[_-4],[["for-in",R[_-2],R[_],null]],[]];case 341:return["comprehension",R[_-6],[["for-in",R[_-4],R[_-2],null]],[R[_]]];case 342:return["comprehension",R[_-6],[["for-in",R[_-4],R[_-2],R[_]]],[]];case 343:return["comprehension",R[_-8],[["for-in",R[_-6],R[_-4],R[_]]],[R[_-2]]];case 344:return["comprehension",R[_-8],[["for-in",R[_-6],R[_-4],R[_-2]]],[R[_]]];case 345:return["comprehension",R[_-4],[["for-of",R[_-2],R[_],!1]],[]];case 346:return["comprehension",R[_-6],[["for-of",R[_-4],R[_-2],!1]],[R[_]]];case 347:return["comprehension",R[_-5],[["for-of",R[_-2],R[_],!0]],[]];case 348:return["comprehension",R[_-7],[["for-of",R[_-4],R[_-2],!0]],[R[_]]];case 349:return["comprehension",R[_-4],[["for-from",R[_-2],R[_],!1,null]],[]];case 350:return["comprehension",R[_-6],[["for-from",R[_-4],R[_-2],!1,null]],[R[_]]];case 351:return["comprehension",R[_-5],[["for-from",R[_-2],R[_],!0,null]],[]];case 352:return["comprehension",R[_-7],[["for-from",R[_-4],R[_-2],!0,null]],[R[_]]];case 353:return["comprehension",R[_-2],[["for-in",[],R[_],null]],[]];case 354:return["comprehension",R[_-4],[["for-in",[],R[_-2],R[_]]],[]];case 359:return["switch",R[_-3],R[_-1],null];case 360:return["switch",R[_-5],R[_-3],R[_-1]];case 361:return["switch",null,R[_-1],null];case 362:return["switch",null,R[_-3],R[_-1]];case 365:return["when",R[_-1],R[_]];case 366:return["when",R[_-2],R[_-1]];case 367:return["if",R[_-1],R[_]];case 368:return R[_-4].length===3?["if",R[_-4][1],R[_-4][2],["if",R[_-1],R[_]]]:[...R[_-4],["if",R[_-1],R[_]]];case 369:return["unless",R[_-1],R[_]];case 370:return["if",["!",R[_-3]],R[_-2],R[_]];case 372:return R[_-2].length===3?["if",R[_-2][1],R[_-2][2],R[_]]:[...R[_-2],R[_]];case 374:case 375:return["if",R[_],[R[_-2]]];case 376:case 377:return["unless",R[_],[R[_-2]]];case 379:case 380:case 382:case 411:return["do-iife",R[_]];case 384:return["-",R[_]];case 385:return["+",R[_]];case 386:return["await",R[_]];case 387:return["await",R[_-1]];case 388:return["--",R[_],!1];case 389:return["++",R[_],!1];case 390:return["--",R[_-1],!0];case 391:return["++",R[_-1],!0];case 392:return["?",R[_-1]];case 393:return["+",R[_-2],R[_]];case 394:return["-",R[_-2],R[_]];case 396:return["**",R[_-2],R[_]];case 399:return["&",R[_-2],R[_]];case 400:return["^",R[_-2],R[_]];case 401:return["|",R[_-2],R[_]];case 402:return["&&",R[_-2],R[_]];case 403:return["||",R[_-2],R[_]];case 404:return["??",R[_-2],R[_]];case 405:return["!?",R[_-2],R[_]];case 407:return["?:",R[_-4],R[_-2],R[_]];case 409:return[R[_-3],R[_-4],R[_-1]];case 410:return[R[_-2],R[_-3],R[_]]}},parseError(U,A){let $,E,R,_,X,Y,F;if(A.recoverable)return this.trace(U);else throw R=(A.line||0)+1,$=A.loc?.first_column||0,F=A.token?` (token: ${A.token})`:"",Y=A.text?` near '${A.text}'`:"",_=`line ${R}, column ${$}`,X=`Parse error at ${_}${F}${Y}: ${U}`,E=Error(X),E.hash=A,E},parse(U){let A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,q,H,O,N,P,K,w,B,z,S,I,L,T;[K,B,D]=[[0],[null],[]],[J,L,S,z,O]=[this.parseTable,"",0,0,0],[$,A]=[2,1],F=Object.create(this.lexer),N={yy:{}};for(let V in this.yy)if(Object.hasOwn(this.yy,V)){let y=this.yy[V];N.yy[V]=y}if(F.setInput(U,N.yy),[N.yy.lexer,N.yy.parser]=[F,this],F.yylloc==null)F.yylloc={};I=F.yylloc,D.push(I),H=F.options?.ranges,this.parseError=typeof N.yy.parseError==="function"?N.yy.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let V;if(V=F.lex()||A,typeof V!=="number")V=this.symbolIds[V]||V;return V},[w,W,P,E,q,T,G,X,Q,_]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(P=K[K.length-1],w==null)w=Y();if(E=J[P]!=null?J[P][w]:void 0,E==null){if(R="",!O)_=(()=>{let V=[];for(let y in J[P]){if(!Object.hasOwn(J[P],y))continue;if(this.tokenNames[y]&&y>$)V.push(`'${this.tokenNames[y]}'`)}return V})();throw R=(()=>{if(F.showPosition)return`Parse error on line ${S+1}:
|
|
18
|
+
`),[_]=s.call(F,-1),$=_.length,Y=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+A-$),Y<0)Y=0;E=this.getLocationDataCompensation(this.chunkOffset+A+Y-$,this.chunkOffset+A+Y)}else $+=D.length,E=R;return[this.chunkLine+X,$+E,this.chunkOffset+A+R]}makeLocationData({offsetInChunk:A,length:$}){var E,R,_;return _={range:[]},[_.first_line,_.first_column,_.range[0]]=this.getLineAndColumnFromChunk(A),R=$>0?$-1:0,[_.last_line,_.last_column,E]=this.getLineAndColumnFromChunk(A+R),[_.last_line_exclusive,_.last_column_exclusive]=this.getLineAndColumnFromChunk(A+R+($>0?1:0)),_.range[1]=$>0?E+1:E,_}makeToken(A,$,{offset:E=0,length:R=$.length,origin:_,generated:X,indentSize:Y}={}){var F=[A,$,this.makeLocationData({offsetInChunk:E,length:R})];if(_)F.origin=_;if(X)F.generated=!0;if(Y!=null)F.indentSize=Y;return F}token(A,$,{offset:E,length:R,origin:_,data:X,generated:Y,indentSize:F}={}){var D=this.makeToken(A,$,{offset:E,length:R,origin:_,generated:Y,indentSize:F});if(X)o(D,X);return this.tokens.push(D),D}tag(){var A,$;return A=this.tokens,[$]=s.call(A,-1),$!=null?$[0]:void 0}value(A=!1){var $,E;if($=this.tokens,[E]=s.call($,-1),A&&(E!=null?E.origin:void 0)!=null)return E.origin[1];else return E!=null?E[1]:void 0}prev(){return this.tokens[this.tokens.length-1]}unfinished(){var A;if(this.tag()==="RENDER")return!1;if(this.inRender&&/^\s*\./.test(this.chunk))return!1;return Z3.test(this.chunk)||(A=this.tag(),j.call(X1,A)>=0)}validateUnicodeCodePointEscapes(A,$){return o3(A,c3($,{error:this.error}))}validateEscapes(A,$={}){var E,R,_,X,Y,F,D,Z,M,Q;if(X=$.isRegex?P3:I3,Y=X.exec(A),!Y)return;return Y[0],E=Y[1],D=Y[2],R=Y[3],Q=Y[4],M=Y[5],F=D?"octal escape sequences are not allowed":"invalid escape sequence",_=`\\${D||R||Q||M}`,this.error(`${F} ${_}`,{offset:((Z=$.offsetInChunk)!=null?Z:0)+Y.index+E.length,length:_.length})}suppressSemicolons(){var A,$,E;E=[];while(this.value()===";")if(this.tokens.pop(),A=($=this.prev())!=null?$[0]:void 0,j.call(["=",...X1],A)>=0)E.push(this.error("unexpected ;"));else E.push(void 0);return E}error(A,$={}){var E,R,_,X,Y;return _="first_line"in $?$:([R,E]=this.getLineAndColumnFromChunk((X=$.offset)!=null?X:0),{first_line:R,first_column:E,last_column:E+((Y=$.length)!=null?Y:1)-1}),i3(A,_)}},r3=function(U,A=U){switch(!1){case j.call([...W1,...d],U)<0:return`keyword '${A}' can't be assigned`;case j.call(x1,U)<0:return`'${A}' can't be assigned`;case j.call(O1,U)<0:return`reserved word '${A}' can't be assigned`;default:return!1}};v3=function(U){var A;if(U[0]==="IDENTIFIER")return!0;else if(U[0]==="FOR")return!1;else if((A=U[1])==="{"||A==="["||A===","||A===":")return!1;else return!0};o=function(U,A){return Object.assign(U.data!=null?U.data:U.data={},A)};W1=["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"];d=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","effect","component","render","style","mounted","unmounted","updated"];g1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"};h1=function(){var U=[];for(R1 in g1)U.push(R1);return U}();d=d.concat(h1);O1=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"];x1=["arguments","eval"];var E2=W1.concat(O1).concat(x1);r1=65279;Y3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;W3=/^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;O3=/^(?:<=>|[-=]>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;y1=/^[^\n\S]+/;t1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;a1=/^[-=]>/;Q3=/^(?:\n[^\n\S]*)+/;D3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;X3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;j3=/^(?:'''|"""|'|")/;L3=/^(?:[^\\']|\\[\s\S])*/;T3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/;U3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;_3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/;A3=/\n+([^\n\S]*)(?=\S)/g;q3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;H3=/^\w*/;y3=/^(?!.*(.).*\1)[gimsuy]*$/;$3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/;E3=/(\s+)(#(?!{).*)/gm;z3=/^(\/|\/{3}\s*)(\*)/;K3=/^\/=?\s/;R3=/\*\//;Z3=/^\s*(?:,|\??\.(?![.\d])|\??::)/;I3=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;P3=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d)|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;V3=/\s+$/;T1=["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="];C1=["NEW","TYPEOF","DELETE"];C3=["!","~"];S3=["<<",">>",">>>"];e1=["==","!=","===","!==","<",">","<=",">=","=~"];J3=["*","/","%","//","%%"];N3=["IN","OF","INSTANCEOF"];h3=["TRUE","FALSE"];E1=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER","DYNAMIC_IMPORT","?."];b1=E1.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::","?."]);g3=["IDENTIFIER",")","]","NUMBER"];G3=b1.concat(["++","--"]);M3=["INDENT","OUTDENT","TERMINATOR"];F3=[")","}","]"];_1=function(U,A){var $,E,R,_,X;if(!U.comments)return;if(A.comments&&A.comments.length!==0){X=[],_=U.comments;for(E=0,R=_.length;E<R;E++)if($=_[E],$.unshift)X.push($);else A.comments.push($);A.comments=X.concat(A.comments)}else A.comments=U.comments;return delete U.comments};m=function(U,A,$,E){var R=[U,A];if(R.generated=!0,$)R.origin=$;if(E)_1(E,R);return R};B3=function(){class U{rewrite(A){var $,E,R;if(this.tokens=A,typeof process<"u"&&process!==null?($=process.env)!=null?$.DEBUG_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_REWRITTEN_TOKEN_STREAM)console.log("Initial token stream:");console.log(function(){var _,X,Y,F;Y=this.tokens,F=[];for(_=0,X=Y.length;_<X;_++)R=Y[_],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}if(this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.processTemplateTokens(),this.convertLegacyExistential(),this.convertPostfixSpreadRest(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.rescueStowawayComments(),this.addLocationDataToGeneratedTokens(),this.fixIndentationLocationData(),this.exposeTokenDataToGrammar(),typeof process<"u"&&process!==null?(E=process.env)!=null?E.DEBUG_REWRITTEN_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_TOKEN_STREAM)console.log("Rewritten token stream:");console.log(function(){var _,X,Y,F;Y=this.tokens,F=[];for(_=0,X=Y.length;_<X;_++)R=Y[_],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}return this.tokens}scanTokens(A){var $,E,R;({tokens:R}=this),$=0;while(E=R[$])$+=A.call(this,E,$,R);return!0}detectEnd(A,$,E,R={}){var _,X,Y,F,D;({tokens:D}=this),_=0;while(F=D[A]){if(_===0&&$.call(this,F,A))return E.call(this,F,A);if(X=F[0],j.call(p,X)>=0)_+=1;else if(Y=F[0],j.call(c,Y)>=0)_-=1;if(_<0){if(R.returnOnNegativeLevel)return;return E.call(this,F,A)}A+=1}return A-1}removeLeadingNewlines(){var A,$,E,R,_,X,Y,F,D;Y=this.tokens;for(A=$=0,_=Y.length;$<_;A=++$)if([D]=Y[A],D!=="TERMINATOR")break;if(A===0)return;F=this.tokens.slice(0,A);for(E=0,X=F.length;E<X;E++)R=F[E],_1(R,this.tokens[A]);return this.tokens.splice(0,A)}closeOpenCalls(){var A,$;return $=function(E,R){var _;return(_=E[0])===")"||_==="CALL_END"},A=function(E,R){return E[0]="CALL_END"},this.scanTokens(function(E,R){if(E[0]==="CALL_START")this.detectEnd(R+1,$,A);return 1})}closeOpenIndexes(){var A,$,E;return E=null,$=function(R,_){var X;return(X=R[0])==="]"||X==="INDEX_END"},A=function(R,_){if(this.tokens.length>=_&&this.tokens[_+1][0]===":")return E[0]="[",R[0]="]";else return R[0]="INDEX_END"},this.scanTokens(function(R,_){if(R[0]==="INDEX_START")E=R,this.detectEnd(_+1,$,A);return 1})}indexOfTag(A,...$){var E,R,_,X,Y;E=0;for(R=_=0,X=$.length;0<=X?_<X:_>X;R=0<=X?++_:--_){if($[R]==null)continue;if(typeof $[R]==="string")$[R]=[$[R]];if(Y=this.tag(A+R+E),j.call($[R],Y)<0)return-1}return A+R+E-1}looksObjectish(A){var $,E;if(this.indexOfTag(A,"@",null,":")!==-1||this.indexOfTag(A,null,":")!==-1)return!0;if(E=this.indexOfTag(A,p),E!==-1){if($=null,this.detectEnd(E+1,function(R){var _;return _=R[0],j.call(c,_)>=0},function(R,_){return $=_}),this.tag($+1)===":")return!0}return!1}findTagsBackwards(A,$){var E,R,_,X,Y,F,D;E=[];while(A>=0&&(E.length||(X=this.tag(A),j.call($,X)<0)&&((Y=this.tag(A),j.call(p,Y)<0)||this.tokens[A].generated)&&(F=this.tag(A),j.call($1,F)<0))){if(R=this.tag(A),j.call(c,R)>=0)E.push(this.tag(A));if((_=this.tag(A),j.call(p,_)>=0)&&E.length)E.pop();A-=1}return D=this.tag(A),j.call($,D)>=0}addImplicitBracesAndParens(){var A,$,E;return A=[],$=null,E=!1,this.scanTokens(function(R,_,X){var Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T,V,y,u,h,b,a,k,F1,z1,D1,M1,Z1,g,c1,P1,l1,t,m1,e,v;if([v]=R,[L]=T=_>0?X[_-1]:[],[w]=B=_<X.length-1?X[_+1]:[],g=function(){return A[A.length-1]},c1=_,D=function(C){return _-c1+C},q=function(C){var x;return C!=null?(x=C[2])!=null?x.ours:void 0:void 0},N=function(C){return q(C)&&(C!=null?C[0]:void 0)==="{"},O=function(C){return q(C)&&(C!=null?C[0]:void 0)==="("},G=function(){return q(g())},J=function(){return O(g())},H=function(){return N(g())},W=function(){var C;return G()&&((C=g())!=null?C[0]:void 0)==="CONTROL"},P1=function(C){return A.push(["(",C,{ours:!0}]),X.splice(C,0,m("CALL_START","(",["","implicit function call",R[2]],T))},Y=function(){return A.pop(),X.splice(_,0,m("CALL_END",")",["","end of input",R[2]],T)),_+=1},l1=function(C,{startsLine:x=!0,continuationLineIndent:i}={}){var l;return A.push(["{",C,{sameLine:!0,startsLine:x,ours:!0,continuationLineIndent:i}]),l=new String("{"),l.generated=!0,X.splice(C,0,m("{",l,R,T))},F=function(C){return C=C!=null?C:_,A.pop(),X.splice(C,0,m("}","}",R,T)),_+=1},Z=(C)=>{var x=null;if(this.detectEnd(C,function(i){return i[0]==="TERMINATOR"},function(i,l){return x=l},{returnOnNegativeLevel:!0}),x==null)return!1;return this.looksObjectish(x+1)},(J()||H())&&j.call(v1,v)>=0||H()&&L===":"&&v==="FOR")return A.push(["CONTROL",_,{ours:!0}]),D(1);if(v==="INDENT"&&G()){if(L!=="=>"&&L!=="->"&&L!=="["&&L!=="("&&L!==","&&L!=="{"&&L!=="ELSE"&&L!=="=")while(J()||H()&&L!==":")if(J())Y();else F();if(W())A.pop();return A.push([v,_]),D(1)}if(j.call(p,v)>=0)return A.push([v,_]),D(1);if(j.call(c,v)>=0){while(G())if(J())Y();else if(H())F();else A.pop();$=A.pop()}if(Q=()=>{var C,x,i,l;if(i=this.findTagsBackwards(_,["FOR"])&&this.findTagsBackwards(_,["FORIN","FOROF","FORFROM"]),C=i||this.findTagsBackwards(_,["WHILE","UNTIL","LOOP","LEADING_WHEN"]),!C)return!1;return x=!1,l=R[2].first_line,this.detectEnd(_,function(p1,d1){var U1;return U1=p1[0],j.call($1,U1)>=0},function(p1,d1){var U1;return[L,,{first_line:U1}]=X[d1-1]||[],x=l===U1&&(L==="->"||L==="=>")},{returnOnNegativeLevel:!0}),x},(j.call(j1,v)>=0&&R.spaced||v==="?"&&_>0&&!X[_-1].spaced)&&(j.call(L1,w)>=0||w==="..."&&(V=this.tag(_+2),j.call(L1,V)>=0)&&!this.findTagsBackwards(_,["INDEX_START","["])||j.call(f1,w)>=0&&!B.spaced&&!B.newLine)&&!Q()){if(v==="?")v=R[0]="FUNC_EXIST";return P1(_+1),D(2)}if(j.call(j1,v)>=0&&this.indexOfTag(_+1,"INDENT")>-1&&this.looksObjectish(_+2)&&!this.findTagsBackwards(_,["CLASS","COMPONENT","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"])&&!(((y=k=(u=g())!=null?u[0]:void 0)==="{"||y==="[")&&!q(g())&&this.findTagsBackwards(_,k)))return P1(_+1),A.push(["INDENT",_+2]),D(3);if(v==="SPACE?")E=!0;if(v===":"){if(E)return E=!1,D(1);if(k=function(){var C;switch(!1){case(C=this.tag(_-1),j.call(c,C)<0):if([m1,t]=$,m1==="["&&t>0&&this.tag(t-1)==="@"&&!X[t-1].spaced)return t-1;else return t;break;case this.tag(_-2)!=="@":return _-2;default:return _-1}}.call(this),e=k<=0||(h=this.tag(k-1),j.call($1,h)>=0)||X[k-1].newLine,g()){if([Z1,z1]=g(),M1=A[A.length-2],(Z1==="{"||Z1==="INDENT"&&(M1!=null?M1[0]:void 0)==="{"&&!q(M1)&&this.findTagsBackwards(z1-1,["{"]))&&(e||this.tag(k-1)===","||this.tag(k-1)==="{")&&(b=this.tag(k-1),j.call(X1,b)<0))return D(1)}return I=_>1?X[_-2]:[],l1(k,{startsLine:!!e,continuationLineIndent:I.continuationLineIndent}),D(2)}if(j.call($1,v)>=0)for(P=A.length-1;P>=0;P+=-1){if(D1=A[P],!q(D1))break;if(N(D1))D1[2].sameLine=!1}if(v==="TERMINATOR"&&R.endsContinuationLineIndentation){({preContinuationLineIndent:S}=R.endsContinuationLineIndentation);while(H()&&(M=g()[2].continuationLineIndent)!=null&&M>S)F()}if(K=L==="OUTDENT"||T.newLine,j.call(u1,v)>=0||j.call(Q1,v)>=0&&K||(v===".."||v==="...")&&this.findTagsBackwards(_,["INDEX_START"]))while(G())if([Z1,z1,{sameLine:F1,startsLine:e}]=g(),J()&&L!==","||L===","&&v==="TERMINATOR"&&w==null)Y();else if(H()&&F1&&v!=="TERMINATOR"&&L!==":"&&!((v==="POST_IF"||v==="FOR"||v==="WHILE"||v==="UNTIL")&&e&&Z(_+1)))F();else if(H()&&v==="TERMINATOR"&&L!==","&&!(e&&this.looksObjectish(_+1)))F();else if(W()&&X[g()[1]][0]==="CLASS"&&v==="TERMINATOR")A.pop();else break;if(v===","&&!this.looksObjectish(_+1)&&H()&&!((a=this.tag(_+2))==="FOROF"||a==="FORIN")&&(w!=="TERMINATOR"||!this.looksObjectish(_+2))){z=w==="OUTDENT"?1:0;while(H())F(_+z)}return D(1)})}rescueStowawayComments(){var A,$,E,R;return $=function(_,X,Y,F){if(Y[X][0]!=="TERMINATOR")Y[F](m("TERMINATOR",`
|
|
19
|
+
`,Y[X]));return Y[F](m("JS","",Y[X],_))},A=function(_,X){var Y,F;Y=_+1;while(Y!==X.length&&(F=X[Y][0],j.call(n,F)>=0)){if(X[Y][0]==="INTERPOLATION_END")return!0;Y++}return!1},R=function(_,X,Y){var F,D,Z,M,Q,G,J;D=X;while(D!==Y.length&&(Q=Y[D][0],j.call(n,Q)>=0))D++;if(!(D===Y.length||(G=Y[D][0],j.call(n,G)>=0))){J=_.comments;for(Z=0,M=J.length;Z<M;Z++)F=J[Z],F.unshift=!0;return _1(_,Y[D]),1}else return D=Y.length-1,$(_,D,Y,"push"),1},E=function(_,X,Y){var F,D,Z;F=X;while(F!==-1&&(D=Y[F][0],j.call(n,D)>=0))F--;if(!(F===-1||(Z=Y[F][0],j.call(n,Z)>=0)))return _1(_,Y[F]),1;else return $(_,0,Y,"unshift"),3},this.scanTokens(function(_,X,Y){var F,D,Z,M,Q;if(!_.comments)return 1;if(Q=1,Z=_[0],j.call(n,Z)>=0){F={comments:[]},D=_.comments.length-1;while(D!==-1){if(_.comments[D].newLine===!1&&_.comments[D].here===!1)F.comments.unshift(_.comments[D]),_.comments.splice(D,1);D--}if(F.comments.length!==0)Q=E(F,X-1,Y);if(_.comments.length!==0)R(_,X,Y)}else if(!A(X,Y)){F={comments:[]},D=_.comments.length-1;while(D!==-1){if(_.comments[D].newLine&&!_.comments[D].unshift&&!(_[0]==="JS"&&_.generated))F.comments.unshift(_.comments[D]),_.comments.splice(D,1);D--}if(F.comments.length!==0)Q=R(F,X+1,Y)}if(((M=_.comments)!=null?M.length:void 0)===0)delete _.comments;return Q})}addLocationDataToGeneratedTokens(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F,D,Z;if(A[2])return 1;if(!(A.generated||A.explicit))return 1;if(A.fromThen&&A[0]==="INDENT")return A[2]=A.origin[2],1;if(A[0]==="{"&&(X=(D=E[$+1])!=null?D[2]:void 0))({first_line:_,first_column:R,range:[F]}=X);else if(Y=(Z=E[$-1])!=null?Z[2]:void 0)({last_line:_,last_column:R,range:[,F]}=Y),R+=1;else _=R=0,F=0;return A[2]={first_line:_,first_column:R,last_line:_,last_column:R,last_line_exclusive:_,last_column_exclusive:R,range:[F,F]},1})}fixIndentationLocationData(){var A;if(this.allComments==null)this.allComments=m3(this.tokens);return A=($,{afterPosition:E,indentSize:R,first:_,indented:X})=>{var Y,F,D,Z,M,Q,G,J;if(J=$[2].range[0],M=function(W){if(W.outdented){if(!(R!=null&&W.indentSize>R))return!1}if(X&&!W.indented)return!1;if(!(W.locationData.range[0]<J))return!1;if(!(W.locationData.range[0]>E))return!1;return!0},_){Z=null,Q=this.allComments;for(F=Q.length-1;F>=0;F+=-1)if(Y=Q[F],M(Y))Z=Y;else if(Z)return Z;return Z}G=this.allComments;for(D=G.length-1;D>=0;D+=-1)if(Y=G[D],M(Y))return Y;return null},this.scanTokens(function($,E,R){var _,X,Y,F,D,Z,M,Q,G,J;if(!((M=$[0])==="INDENT"||M==="OUTDENT"||$.generated&&$[0]==="CALL_END"&&!((Q=$.data)!=null?Q.closingTagNameToken:void 0)||$.generated&&$[0]==="}"))return 1;if(_=$[0]==="INDENT",Z=(G=$.prevToken)!=null?G:R[E-1],D=Z[2],J=$.explicit||$.generated,J){X=$,Y=E;while((X.explicit||X.generated)&&Y!==R.length-1)X=R[Y++]}if(F=A(J?X:$,{afterPosition:D.range[0],indentSize:$.indentSize,first:_,indented:J}),_){if(!(F!=null?F.newLine:void 0))return 1}if($.generated&&$[0]==="CALL_END"&&(F!=null?F.indented:void 0))return 1;if(F!=null)D=F.locationData;return $[2]={first_line:F!=null?D.first_line:D.last_line,first_column:F!=null?_?0:D.first_column:D.last_column,last_line:D.last_line,last_column:D.last_column,last_line_exclusive:D.last_line_exclusive,last_column_exclusive:D.last_column_exclusive,range:_&&F!=null?[D.range[0]-F.indentSize,D.range[1]]:D.range},1})}normalizeLines(){var A,$,E,R,_,X,Y,F,D;return D=_=F=null,Y=null,X=null,R=[],E=function(Z,M){var Q,G,J,W;return Z[1]!==";"&&(Q=Z[0],j.call(w3,Q)>=0)&&!(Z[0]==="TERMINATOR"&&(G=this.tag(M+1),j.call(I1,G)>=0))&&!(Z[0]==="ELSE"&&(D!=="THEN"||(X||Y)))&&!(((J=Z[0])==="CATCH"||J==="FINALLY")&&(D==="->"||D==="=>"))||(W=Z[0],j.call(Q1,W)>=0)&&(this.tokens[M-1].newLine||this.tokens[M-1][0]==="OUTDENT")},A=function(Z,M){if(Z[0]==="ELSE"&&D==="THEN")R.pop();return this.tokens.splice(this.tag(M-1)===","?M-1:M,0,F)},$=(Z,M)=>{var Q,G,J;if(J=R.length,!(J>0))return M;return Q=R.pop(),[,G]=this.indentation(Z[Q]),G[1]=J*2,Z.splice(M,0,G),G[1]=2,Z.splice(M+1,0,G),this.detectEnd(M+2,function(W,H){var q;return(q=W[0])==="OUTDENT"||q==="TERMINATOR"},function(W,H){if(this.tag(H)==="OUTDENT"&&this.tag(H+1)==="OUTDENT")return Z.splice(H,2)}),M+2},this.scanTokens(function(Z,M,Q){var G,J,W,H,q,O,N;if([N]=Z,G=(N==="->"||N==="=>")&&this.findTagsBackwards(M,["IF","WHILE","FOR","UNTIL","SWITCH","WHEN","LEADING_WHEN","[","INDEX_START"])&&!this.findTagsBackwards(M,["THEN","..","..."]),N==="TERMINATOR"){if(this.tag(M+1)==="ELSE"&&this.tag(M-1)!=="OUTDENT")return Q.splice(M,1,...this.indentation()),1;if(H=this.tag(M+1),j.call(I1,H)>=0){if(Z[1]===";"&&this.tag(M+1)==="OUTDENT")Q[M+1].prevToken=Z,_1(Z,Q[M+1]);return Q.splice(M,1),0}}if(N==="CATCH")for(J=W=1;W<=2;J=++W){if(!((q=this.tag(M+J))==="OUTDENT"||q==="TERMINATOR"||q==="FINALLY"))continue;return Q.splice(M+J,0,...this.indentation()),2+J}if((N==="->"||N==="=>")&&((O=this.tag(M+1))===","||O==="]"||this.tag(M+1)==="."&&Z.newLine))return[_,F]=this.indentation(Q[M]),Q.splice(M+1,0,_,F),1;if(j.call(V1,N)>=0&&this.tag(M+1)!=="INDENT"&&!(N==="ELSE"&&this.tag(M+1)==="IF")&&!G){if(D=N,[_,F]=this.indentation(Q[M]),D==="THEN")_.fromThen=!0;if(N==="THEN")Y=this.findTagsBackwards(M,["LEADING_WHEN"])&&this.tag(M+1)==="IF",X=this.findTagsBackwards(M,["IF"])&&this.tag(M+1)==="IF";if(N==="THEN"&&this.findTagsBackwards(M,["IF"]))R.push(M);if(N==="ELSE"&&this.tag(M-1)!=="OUTDENT")M=$(Q,M);if(Q.splice(M+1,0,_),this.detectEnd(M+2,E,A),N==="THEN")Q.splice(M,1);return 1}return 1})}processTemplateTokens(){let A=!1,$=0,E=0,R=[],_=(D)=>{let Z=D.split("#")[0];return i1.has(Z)},X=(D)=>{if(!D||typeof D!=="string")return!1;return/^[A-Z]/.test(D)},Y=(D)=>{return _(D)||X(D)},F=(D,Z)=>{let M=Z;while(M>0){let Q=D[M-1][0];if(Q==="INDENT"||Q==="OUTDENT"||Q==="TERMINATOR"||Q==="RENDER"||Q==="CALL_END"||Q===")")break;M--}return D[M]&&D[M][0]==="IDENTIFIER"&&_(D[M][1])};return this.scanTokens(function(D,Z,M){let Q=D[0],G=Z<M.length-1?M[Z+1]:null;if(Q==="RENDER")return A=!0,$=E+1,1;if(Q==="INDENT")return E++,1;if(Q==="OUTDENT"){E--;let J=0;while(R.length>0&&R[R.length-1]>E){let W=["CALL_END",")",D[2]];W.generated=!0,M.splice(Z+1+J,0,W),R.pop(),J++}if(A&&E<$)A=!1;return 1+J}if(!A)return 1;if(Q==="IDENTIFIER"&&!D.spaced){let J=[D[1]],W=Z+1;while(W+1<M.length){let H=M[W],q=M[W+1];if(H[0]==="-"&&!H.spaced&&(q[0]==="IDENTIFIER"||q[0]==="PROPERTY")){if(J.push(q[1]),W+=2,q[0]==="PROPERTY")break}else break}if(J.length>1&&W>Z+1&&M[W-1][0]==="PROPERTY")return D[0]="STRING",D[1]=`"${J.join("-")}"`,M.splice(Z+1,W-Z-1),1}if(Q==="."){let J=Z>0?M[Z-1]:null,W=J?J[0]:null;if(W==="INDENT"||W==="TERMINATOR"){if(G&&G[0]==="PROPERTY"){let H=["IDENTIFIER","div",D[2]];return H.generated=!0,M.splice(Z,0,H),2}}}if(Q==="IDENTIFIER"||Q==="PROPERTY"){let J=M[Z+1],W=M[Z+2];if(J&&J[0]==="#"&&W&&W[0]==="PROPERTY"){if(D[1]=D[1]+"#"+W[1],W.spaced)D.spaced=!0;return M.splice(Z+1,2),1}}if(Q==="BIND"){let J=Z>0?M[Z-1]:null,W=M[Z+1];if(J&&(J[0]==="IDENTIFIER"||J[0]==="PROPERTY")&&W&&W[0]==="IDENTIFIER")return J[1]=`__bind_${J[1]}__`,D[0]=":",D[1]=":",1}if(Q==="@"){let J=Z+1;if(J<M.length&&M[J][0]==="PROPERTY"){J++;while(J+1<M.length&&M[J][0]==="."&&M[J+1][0]==="PROPERTY")J+=2;if(J>Z+2&&J<M.length&&M[J][0]===":"){let W=["[","[",D[2]];W.generated=!0,M.splice(Z,0,W);let H=["]","]",M[J+1][2]];return H.generated=!0,M.splice(J+1,0,H),2}}}if(Q==="."&&G&&G[0]==="("){let J=Z>0?M[Z-1]:null,W=J?J[0]:null,H=W==="INDENT"||W==="TERMINATOR",q=["PROPERTY","__cx__",D[2]];q.generated=!0,G[0]="CALL_START";let O=1;for(let N=Z+2;N<M.length&&O>0;N++)if(M[N][0]==="("||M[N][0]==="CALL_START")O++;else if(M[N][0]===")"){if(O--,O===0)M[N][0]="CALL_END"}else if(M[N][0]==="CALL_END")O--;if(H){let N=["IDENTIFIER","div",D[2]];return N.generated=!0,M.splice(Z,0,N),M.splice(Z+2,0,q),3}else return M.splice(Z+1,0,q),2}if(G&&G[0]==="INDENT"){if(Q==="->"||Q==="=>"||Q==="CALL_START"||Q==="(")return 1;let J=!1;if(Q==="IDENTIFIER"&&Y(D[1]))J=!0;else if(Q==="PROPERTY"||Q==="STRING"||Q==="CALL_END"||Q===")")J=F(M,Z);else if(Q==="IDENTIFIER"&&Z>1&&M[Z-1][0]==="..."){if(F(M,Z)){let W=[",",",",D[2]];W.generated=!0;let H=["->","->",D[2]];return H.newLine=!0,M.splice(Z+1,0,W,H),3}}if(J){let W=["CALL_START","(",D[2]];W.generated=!0;let H=["->","->",D[2]];return H.newLine=!0,M.splice(Z+1,0,W,H),R.push(E+1),3}}return 1})}convertLegacyExistential(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F;if(A[0]!=="SPACE?")return 1;R=!1,X=0;for(_=$+1;_<E.length;_++){if(F=E[_][0],Y=F,j.call(p,Y)>=0)X++;else if(Y=F,j.call(c,Y)>=0)X--;if(F===":"&&X===0){R=!0;break}if(X===0&&(F==="TERMINATOR"||F==="INDENT"||F==="OUTDENT"))break}if(!R)A[0]="??",A[1]="??";return 1})}convertPostfixSpreadRest(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F,D,Z,M,Q,G;if(A[0]!=="..."&&A[0]!=="..")return 1;let J=0;for(let W=$-1;W>=0;W--){if(E[W][0]==="INDEX_END")J++;if(E[W][0]==="INDEX_START")J--}if(_=J<0,_)return 1;if(Z=E[$-1],F=E[$+1],!Z||!F)return 1;if(M=Z[0],D=F[0],M===","&&D===",")return 1;if(M==="NUMBER")return 1;if(G=["IDENTIFIER","PROPERTY",")","]","THIS","@"],Q=M,j.call(G,Q)>=0){if(R=[",","]",")","}","CALL_END","INDEX_END","PARAM_END","TERMINATOR","OUTDENT"],Q=D,j.call(R,Q)>=0)return E[$-1]=A,E[$]=Z,1}return 1})}tagPostfixConditionals(){var A,$,E;return E=null,$=function(R,_){var X,Y;return[Y]=R,[X]=this.tokens[_-1],Y==="TERMINATOR"||Y==="INDENT"&&j.call(V1,X)<0},A=function(R,_){if(R[0]!=="INDENT"||R.generated&&!R.fromThen)return E[0]="POST_"+E[0]},this.scanTokens(function(R,_){if(R[0]!=="IF"&&R[0]!=="UNLESS")return 1;return E=R,this.detectEnd(_+1,$,A),1})}exposeTokenDataToGrammar(){return this.scanTokens(function(A,$){var E,R,_;if(A.generated||A.data&&Object.keys(A.data).length!==0){A[1]=new String(A[1]),R=(E=A.data)!=null?E:{};for(R1 in R){if(!x3.call(R,R1))continue;_=R[R1],A[1][R1]=_}if(A.generated)A[1].generated=!0}return 1})}indentation(A){var $,E;if($=["INDENT",2],E=["OUTDENT",2],A)$.generated=E.generated=!0,$.origin=E.origin=A;else $.explicit=E.explicit=!0;return[$,E]}tag(A){var $;return($=this.tokens[A])!=null?$[0]:void 0}}return U.prototype.generate=m,U}.call(null);w1=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["INTERPOLATION_START","INTERPOLATION_END"],["REGEX_START","REGEX_END"]];G1={};p=[];c=[];for(J1=0,s1=w1.length;J1<s1;J1++)[B1,S1]=w1[J1],p.push(G1[S1]=B1),c.push(G1[B1]=S1);I1=["CATCH","THEN","ELSE","FINALLY"].concat(c);j1=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"];L1=["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","@","->","=>","[","(","{","--","++"];f1=["+","-"];u1=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"];V1=["ELSE","->","=>","TRY","FINALLY","THEN"];w3=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"];$1=["TERMINATOR","INDENT","OUTDENT"];Q1=[".","?.","::","?::"];v1=["IF","TRY","FINALLY","CATCH","CLASS","COMPONENT","SWITCH"];n=["(",")","[","]","{","}",":",".","..","...",",","=","++","--","?","AS","AWAIT","CALL_START","CALL_END","DEFAULT","DO","DO_IIFE","ELSE","EXTENDS","EXPORT","FORIN","FOROF","FORFROM","IMPORT","INDENT","INDEX_SOAK","INTERPOLATION_START","INTERPOLATION_END","LEADING_WHEN","OUTDENT","PARAM_END","REGEX_START","REGEX_END","RETURN","STRING_END","THROW","UNARY","YIELD"].concat(f1.concat(u1.concat(Q1.concat(v1))));X1=["\\",".","?.","?::","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"];var a3={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,DerivedAssign:19,ReadonlyAssign:20,EffectBlock:21,RenderBlock:22,StyleBlock:23,Component:24,If:25,Try:26,While:27,For:28,Switch:29,Class:30,Throw:31,Yield:32,Def:33,DEF:34,Identifier:35,CALL_START:36,ParamList:37,CALL_END:38,Block:39,Assignable:40,REACTIVE_ASSIGN:41,INDENT:42,OUTDENT:43,DERIVED_ASSIGN:44,READONLY_ASSIGN:45,EFFECT:46,FuncGlyph:47,RENDER:48,STYLE:49,COMPONENT:50,ComponentBody:51,ComponentLine:52,PropDecl:53,"@":54,PROPERTY:55,"?":56,"=":57,"...":58,IDENTIFIER:59,CodeLine:60,OperationLine:61,YIELD:62,Object:63,FROM:64,Property:65,AlphaNumeric:66,NUMBER:67,String:68,STRING:69,STRING_START:70,Interpolations:71,STRING_END:72,InterpolationChunk:73,INTERPOLATION_START:74,INTERPOLATION_END:75,Regex:76,REGEX:77,REGEX_START:78,Invocation:79,REGEX_END:80,RegexWithIndex:81,",":82,Literal:83,JS:84,UNDEFINED:85,NULL:86,BOOL:87,INFINITY:88,NAN:89,AssignObj:90,ObjAssignable:91,ObjRestValue:92,":":93,SimpleObjAssignable:94,ThisProperty:95,"[":96,"]":97,ObjSpreadExpr:98,Parenthetical:99,Super:100,This:101,SUPER:102,OptFuncExist:103,Arguments:104,DYNAMIC_IMPORT:105,".":106,"?.":107,"::":108,"?::":109,INDEX_START:110,INDEX_END:111,INDEX_SOAK:112,RETURN:113,PARAM_START:114,PARAM_END:115,"->":116,"=>":117,OptComma:118,Param:119,ParamVar:120,Array:121,Splat:122,SimpleAssignable:123,Slice:124,ES6_OPTIONAL_INDEX:125,Range:126,DoIife:127,MetaProperty:128,NEW_TARGET:129,IMPORT_META:130,"{":131,FOR:132,ForVariables:133,FOROF:134,"}":135,WHEN:136,OWN:137,AssignList:138,CLASS:139,EXTENDS:140,IMPORT:141,ImportDefaultSpecifier:142,ImportNamespaceSpecifier:143,ImportSpecifierList:144,ImportSpecifier:145,AS:146,DEFAULT:147,IMPORT_ALL:148,EXPORT:149,ExportSpecifierList:150,EXPORT_ALL:151,ExportSpecifier:152,ES6_OPTIONAL_CALL:153,FUNC_EXIST:154,ArgList:155,THIS:156,Elisions:157,ArgElisionList:158,OptElisions:159,RangeDots:160,"..":161,Arg:162,ArgElision:163,Elision:164,SimpleArgs:165,TRY:166,Catch:167,FINALLY:168,CATCH:169,THROW:170,"(":171,")":172,WhileSource:173,WHILE:174,UNTIL:175,Loop:176,LOOP:177,FORIN:178,BY:179,FORFROM:180,AWAIT:181,ForValue:182,SWITCH:183,Whens:184,ELSE:185,When:186,LEADING_WHEN:187,IfBlock:188,IF:189,UnlessBlock:190,UNLESS:191,POST_IF:192,POST_UNLESS:193,UNARY:194,DO:195,DO_IIFE:196,UNARY_MATH:197,"-":198,"+":199,"--":200,"++":201,MATH:202,"**":203,SHIFT:204,COMPARE:205,"&":206,"^":207,"|":208,"&&":209,"||":210,"??":211,"!?":212,RELATION:213,"SPACE?":214,COMPOUND_ASSIGN:215},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",34:"DEF",36:"CALL_START",38:"CALL_END",41:"REACTIVE_ASSIGN",42:"INDENT",43:"OUTDENT",44:"DERIVED_ASSIGN",45:"READONLY_ASSIGN",46:"EFFECT",48:"RENDER",49:"STYLE",50:"COMPONENT",54:"@",55:"PROPERTY",56:"?",57:"=",58:"...",59:"IDENTIFIER",62:"YIELD",64:"FROM",67:"NUMBER",69:"STRING",70:"STRING_START",72:"STRING_END",74:"INTERPOLATION_START",75:"INTERPOLATION_END",77:"REGEX",78:"REGEX_START",80:"REGEX_END",82:",",84:"JS",85:"UNDEFINED",86:"NULL",87:"BOOL",88:"INFINITY",89:"NAN",93:":",96:"[",97:"]",102:"SUPER",105:"DYNAMIC_IMPORT",106:".",107:"?.",108:"::",109:"?::",110:"INDEX_START",111:"INDEX_END",112:"INDEX_SOAK",113:"RETURN",114:"PARAM_START",115:"PARAM_END",116:"->",117:"=>",125:"ES6_OPTIONAL_INDEX",129:"NEW_TARGET",130:"IMPORT_META",131:"{",132:"FOR",134:"FOROF",135:"}",136:"WHEN",137:"OWN",139:"CLASS",140:"EXTENDS",141:"IMPORT",146:"AS",147:"DEFAULT",148:"IMPORT_ALL",149:"EXPORT",151:"EXPORT_ALL",153:"ES6_OPTIONAL_CALL",154:"FUNC_EXIST",156:"THIS",161:"..",166:"TRY",168:"FINALLY",169:"CATCH",170:"THROW",171:"(",172:")",174:"WHILE",175:"UNTIL",177:"LOOP",178:"FORIN",179:"BY",180:"FORFROM",181:"AWAIT",183:"SWITCH",185:"ELSE",187:"LEADING_WHEN",189:"IF",191:"UNLESS",192:"POST_IF",193:"POST_UNLESS",194:"UNARY",195:"DO",196:"DO_IIFE",197:"UNARY_MATH",198:"-",199:"+",200:"--",201:"++",202:"MATH",203:"**",204:"SHIFT",205:"COMPARE",206:"&",207:"^",208:"|",209:"&&",210:"||",211:"??",212:"!?",213:"RELATION",214:"SPACE?",215:"COMPOUND_ASSIGN"},parseTable:(()=>{let U=[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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,37,32,97,-3,-3,-3,-3,-3,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,108,-6,-6,-6,127,-6,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,32,4,1,32,7,15,75,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,32,4,1,32,7,15,75,1,1,1,17,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,130,96,97,128,129,54,1,5,30,2,4,1,13,2,11,1,5,7,11,4,6,3,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-263,-13,-13,-13,-13,-13,-263,-263,-13,-13,-13,-13,131,133,134,135,136,137,-13,138,-13,139,-13,-13,-13,-13,132,140,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,32,4,1,13,2,17,7,11,4,9,1,1,1,1,1,1,3,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,141,142,143,144,145,-14,146,-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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,9,1,5,32,4,1,32,7,15,75,-60,-60,-60,-60,-60,-60,-60,-60,-60,9,1,5,32,4,1,32,7,15,75,-61,-61,-61,-61,-61,-61,-61,-61,-61,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,148,-186,-186,149,150,-186,147,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,151,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,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,4,1,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,162,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,67,92,161,33,163,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,165,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,167,168,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,169,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,175,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,176,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,177,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,178,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,179,36,38,41,88,89,99,86,82,174,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,183,36,38,41,88,89,99,86,82,174,60,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,184,185,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,186,5,39,3,5,69,1,188,163,187,90,91,2,39,3,189,163,2,39,3,190,163,2,35,24,191,104,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,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,-371,-371,-371,-371,192,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,2,39,3,193,163,2,39,3,194,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,198,99,195,196,197,199,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,201,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,202,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,88,1,5,8,1,20,3,1,1,2,1,4,7,2,2,1,4,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,3,6,3,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,4,16,5,10,1,2,1,3,1,1,12,1,3,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,180,181,92,-210,203,182,163,-210,171,87,-210,-210,104,73,74,100,101,105,106,-210,76,102,103,37,-210,34,75,77,78,79,80,81,-210,93,83,-210,35,40,39,84,85,-210,170,-210,90,91,72,205,36,38,41,88,89,99,-210,-210,-210,-210,204,86,-210,82,-210,-210,-210,-210,-210,-210,-210,-210,174,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,206,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,207,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,137,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,1,1,3,2,2,1,3,1,1,1,1,4,2,2,1,3,1,1,2,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,3,6,2,1,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,3,2,8,7,5,5,4,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,208,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-62,33,209,-62,53,171,54,55,56,87,-62,-62,104,66,73,210,74,100,101,105,106,-62,76,102,103,37,-62,34,75,77,78,79,80,81,-62,93,83,-62,35,40,39,84,85,-62,69,170,-62,90,91,72,52,36,38,41,88,89,99,-62,-62,-62,-62,64,70,71,86,-62,59,65,82,-62,60,-62,-62,61,98,-62,-62,-62,49,63,57,94,58,95,-62,-62,172,173,174,46,47,48,50,51,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,2,35,24,211,104,6,15,32,13,54,2,1,213,43,212,42,90,91,111,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,1,1,3,2,2,1,3,1,1,1,1,4,5,3,1,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,214,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-131,33,215,-131,53,171,54,55,56,87,104,66,73,74,100,101,105,106,-131,76,102,103,37,-131,34,75,77,78,79,80,81,93,83,-131,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,-131,60,-131,-131,61,98,49,63,57,94,58,95,-131,-131,172,173,174,46,47,48,50,51,9,35,24,9,1,1,61,11,1,5,220,104,216,105,106,219,217,218,221,9,30,3,1,1,24,72,8,8,4,223,224,67,225,104,222,64,226,227,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,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,5,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,228,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,67,92,33,229,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,230,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,231,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,232,233,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,36,68,2,4,245,242,243,244,2,36,68,245,246,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,55,1,5,30,2,4,1,12,1,2,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,248,-268,-268,247,-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,-268,-268,1,106,249,1,106,250,54,11,23,8,4,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,54,11,23,8,4,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-154,-154,-154,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-155,-155,-155,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,251,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,252,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,253,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,254,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,4,1,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,256,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,255,33,163,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,6,29,7,1,11,1,3,1,6,1,1,1,1,1,12,8,1,1,2,1,1,39,3,-205,264,-205,-205,261,248,268,104,265,262,100,101,105,106,-205,263,257,267,259,266,260,-205,258,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,269,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,270,36,38,41,88,89,99,86,82,174,63,1,5,30,2,3,1,1,1,1,11,1,1,6,5,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,6,7,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,56,1,5,30,2,4,1,13,2,11,1,2,2,1,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,6,68,1,1,1,2,1,274,105,106,271,272,273,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,5,3,3,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-5,275,-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,67,92,33,-5,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,-5,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,-5,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,276,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,277,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,278,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,279,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,280,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,281,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,282,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,283,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,284,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,285,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,286,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,287,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,288,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,289,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,290,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,291,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,292,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,296,99,293,294,295,199,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,297,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,298,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,5,36,32,1,1,34,245,299,105,106,300,2,36,68,245,301,2,55,10,248,302,2,55,10,248,303,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,248,-160,-160,-160,304,-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,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,248,-161,-161,-161,305,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,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,1,1,5,2,4,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,2,2,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,306,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,307,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,311,102,103,37,309,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,308,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,314,1,110,315,3,36,33,1,-264,-264,-264,2,55,10,248,316,2,55,10,248,317,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,248,-177,-177,-177,318,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,248,-178,-178,-178,319,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,320,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,321,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,322,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,324,323,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,325,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,327,326,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,328,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,330,329,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,331,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,333,332,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,334,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,9,6,32,4,1,39,15,18,3,17,-138,-138,-138,-138,336,-138,335,337,-138,6,6,32,4,1,39,33,-141,-141,-141,-141,-141,-141,7,6,32,4,1,14,25,33,-145,-145,-145,-145,338,-145,-145,15,6,29,3,4,1,11,5,4,19,13,1,19,5,1,10,-148,155,-148,-148,-148,159,104,158,-148,156,160,-148,339,157,99,10,6,32,4,1,14,25,33,19,44,2,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,10,6,32,4,1,14,25,33,19,44,2,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,10,6,32,4,1,14,25,33,19,44,2,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,10,6,32,4,1,14,25,33,19,44,2,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,2,55,10,248,247,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,231,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,232,233,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,1,5,32,4,1,32,7,15,75,-135,-135,-135,-135,-135,-135,-135,-135,-135,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,5,3,3,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,342,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,67,92,33,341,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,108,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,126,-381,-381,-381,-381,-381,-381,125,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,120,121,-381,-381,9,1,5,32,4,1,32,7,15,75,-378,-378,-378,-378,-378,-378,-378,-378,-378,5,173,1,1,17,1,130,96,97,128,129,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,108,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,126,-382,-382,-382,-382,-382,-382,125,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,120,121,-382,-382,9,1,5,32,4,1,32,7,15,75,-379,-379,-379,-379,-379,-379,-379,-379,-379,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,108,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,126,-383,-383,-383,-383,-383,-383,125,-383,-383,-383,112,-383,-383,-383,-383,-383,-383,-383,120,121,-383,-383,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,343,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,2,39,3,161,163,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,167,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,5,15,32,67,2,1,213,171,170,90,91,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,108,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,126,-384,-384,-384,-384,-384,-384,125,-384,-384,-384,112,-384,-384,-384,-384,-384,-384,-384,120,121,-384,-384,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,108,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,126,-385,-385,-385,-385,-385,-385,125,-385,-385,-385,112,-385,-385,-385,-385,-385,-385,-385,120,121,-385,-385,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,108,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,126,-386,-386,-386,-386,-386,-386,125,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,120,121,-386,-386,2,63,68,344,99,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-183,-388,-183,-388,-388,-183,-183,-388,-183,-388,-183,-183,-388,-388,-388,-388,-183,-183,-183,-183,-183,-388,-183,-388,-183,-388,-388,-388,-388,-183,-183,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,13,36,33,1,33,3,1,1,1,1,2,13,28,1,-263,-263,-263,131,133,134,135,136,137,138,139,132,140,6,106,1,1,1,1,2,141,142,143,144,145,146,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-183,-389,-183,-389,-389,-183,-183,-389,-183,-389,-183,-183,-389,-389,-389,-389,-183,-183,-183,-183,-183,-389,-183,-389,-183,-389,-389,-389,-389,-183,-183,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,347,345,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,346,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,2,39,3,348,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,1,42,349,3,39,3,147,350,163,351,44,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,6,1,1,3,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,352,353,354,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,3,134,44,2,356,355,357,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,358,199,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,359,199,3,39,3,137,360,163,361,4,82,52,44,2,362,-357,-357,-357,5,57,25,52,44,2,363,-355,-355,-355,-355,23,42,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,364,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,184,2,1,365,366,367,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,368,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,59,1,5,30,2,1,2,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-183,-214,369,-183,163,-214,-183,-183,-214,-183,-214,-183,-183,-214,-214,-214,-214,-183,-183,-183,-183,-183,-214,-183,-214,-183,-214,-214,-214,-214,370,-183,-183,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,108,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,126,-311,-311,-311,-311,-311,-311,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,371,99,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,108,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,126,-63,-63,-63,-63,-63,-63,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,372,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,373,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,36,3,3,374,375,163,9,1,5,32,4,1,32,7,15,75,-380,-380,-380,-380,-380,-380,-380,-380,-380,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,108,-129,-129,-129,127,-129,126,-129,-129,-129,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,376,99,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,2,64,18,377,378,1,64,379,7,35,7,17,76,9,1,2,384,383,104,380,381,382,385,2,64,18,-234,-234,1,146,386,7,35,7,17,76,12,3,2,391,390,104,387,392,388,389,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,1,57,393,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,394,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,395,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,64,396,2,6,166,107,397,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,398,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,31,6,32,4,1,13,2,24,15,35,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,108,313,-285,-285,127,399,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,400,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,403,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,406,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,5,6,36,1,39,15,-289,-289,-289,-289,-289,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,407,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,5,6,36,1,39,15,-294,-294,-294,-294,-294,6,6,32,4,1,39,15,-286,-286,-286,-286,-286,-286,6,6,32,4,1,39,15,-287,-287,-287,-287,-287,-287,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,1,1,3,2,2,1,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-288,409,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-288,33,-288,-288,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,-288,34,75,77,78,79,80,81,93,83,-288,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,2,55,10,248,410,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,411,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,412,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,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,3,2,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,413,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,414,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,2,55,10,248,417,2,55,10,248,418,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,419,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,420,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,108,-315,-315,-315,-315,-315,-315,-315,127,-315,-315,421,-315,-315,126,96,97,-315,-315,-315,-315,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,108,-317,-317,-317,-317,-317,-317,-317,127,-317,-317,422,-317,-317,126,96,97,-317,-317,-317,-317,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,108,-324,-324,-324,-324,-324,-324,-324,127,-324,-324,-324,-324,-324,126,96,97,-324,-324,-324,-324,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,36,1,39,11,42,-95,-95,-95,-95,423,-95,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,425,-138,424,-138,7,6,36,1,14,25,11,42,-104,-104,-104,426,-104,-104,-104,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,427,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,55,10,31,248,247,428,6,6,36,1,39,11,42,-107,-107,-107,-107,-107,-107,5,6,36,1,39,53,-206,-206,-206,-206,-206,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,5,6,36,1,39,53,-96,-96,-96,-96,-96,17,35,19,1,4,4,2,29,1,3,1,1,1,1,3,26,25,15,264,87,248,104,431,265,429,266,430,432,433,434,435,436,99,86,82,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,437,-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,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,6,68,1,1,2,1,1,274,105,106,438,439,273,4,69,1,2,2,-74,-74,-74,-74,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,5,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,440,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,67,92,33,441,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,442,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,69,1,2,2,-79,-79,-79,-79,5,1,5,37,32,97,-4,-4,-4,-4,-4,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,108,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,126,-393,-393,-393,-393,-393,-393,125,-393,-393,111,112,-393,-393,-393,-393,-393,-393,-393,120,121,-393,-393,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,108,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,126,-394,-394,-394,-394,-394,-394,125,-394,-394,111,112,-394,-394,-394,-394,-394,-394,-394,120,121,-394,-394,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,108,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,126,-395,-395,-395,-395,-395,-395,125,-395,-395,-395,112,-395,-395,-395,-395,-395,-395,-395,120,121,-395,-395,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,108,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,126,-396,-396,-396,-396,-396,-396,125,-396,-396,-396,112,-396,-396,-396,-396,-396,-396,-396,120,121,-396,-396,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,108,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,126,-397,-397,-397,-397,-397,-397,125,110,109,111,112,-397,-397,-397,-397,-397,-397,-397,120,121,-397,-397,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,108,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,126,-398,-398,-398,-398,-398,-398,125,110,109,111,112,113,-398,-398,-398,-398,-398,-398,120,121,122,-398,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,108,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,126,-399,-399,-399,-399,-399,-399,125,110,109,111,112,113,114,-399,-399,-399,-399,-399,120,121,122,-399,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,108,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,126,-400,-400,-400,-400,-400,-400,125,110,109,111,112,113,114,115,-400,-400,-400,-400,120,121,122,-400,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,108,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,126,-401,-401,-401,-401,-401,-401,125,110,109,111,112,113,114,115,116,-401,-401,-401,120,121,122,-401,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,108,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,126,-402,-402,-402,-402,-402,-402,125,110,109,111,112,113,114,115,116,117,-402,-402,120,121,122,-402,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,108,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,126,-403,-403,-403,-403,-403,-403,125,110,109,111,112,113,114,115,116,117,118,-403,120,121,122,-403,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,108,-404,-404,-404,-404,-404,-404,-404,127,-404,-404,-404,-404,-404,126,96,97,-404,-404,-404,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,108,-405,-405,-405,-405,-405,-405,-405,127,-405,-405,-405,-405,-405,126,96,97,-405,-405,-405,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,108,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,126,-406,-406,-406,-406,-406,-406,125,110,109,111,112,113,-406,-406,-406,-406,-406,-406,120,121,-406,-406,23,56,37,39,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,443,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,108,-375,-375,-375,-375,-375,-375,-375,127,-375,-375,-375,-375,-375,126,96,97,-375,-375,-375,-375,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,108,-377,-377,-377,-377,-377,-377,-377,127,-377,-377,-377,-377,-377,126,96,97,-377,-377,-377,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,134,44,2,445,444,446,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,447,199,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,448,199,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,449,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,108,-374,-374,-374,-374,-374,-374,-374,127,-374,-374,-374,-374,-374,126,96,97,-374,-374,-374,-374,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,108,-376,-376,-376,-376,-376,-376,-376,127,-376,-376,-376,-376,-376,126,96,97,-376,-376,-376,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-156,-156,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-157,-157,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-158,-158,-158,-158,-158,-158,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-159,-159,-159,-159,-159,-159,26,56,2,53,21,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,313,450,127,451,312,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,452,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,453,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,111,454,1,111,455,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,1,1,5,3,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,6,2,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,456,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-279,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,-279,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,457,-86,-86,-86,-86,-86,-86,-86,-83,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,55,11,23,9,3,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,6,2,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,55,11,23,9,3,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,6,2,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,458,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,459,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,460,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,461,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,462,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,463,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,464,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,465,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,466,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,108,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,126,-92,-92,-92,-92,-92,-92,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,467,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,468,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,108,-35,-35,-35,-35,-35,-35,-35,127,-35,-35,-35,-35,-35,126,96,97,-35,-35,-35,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,469,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,470,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,108,-38,-38,-38,-38,-38,-38,-38,127,-38,-38,-38,-38,-38,126,96,97,-38,-38,-38,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,471,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,472,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,108,-41,-41,-41,-41,-41,-41,-41,127,-41,-41,-41,-41,-41,126,96,97,-41,-41,-41,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,473,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,474,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,47,69,1,475,90,91,17,6,29,3,4,1,11,4,1,4,32,1,1,22,1,1,10,4,-139,155,-139,-139,-139,159,154,104,158,156,160,-139,476,153,157,99,-139,2,6,36,477,478,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,479,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,32,4,1,39,33,-147,-147,-147,-147,-147,-147,28,6,32,4,1,13,26,15,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,108,-285,-285,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,2,6,37,107,480,9,6,32,4,1,39,15,18,3,17,-138,-138,-138,-138,336,-138,481,337,-138,1,43,482,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,108,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,126,-408,-408,-408,-408,-408,-408,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,483,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,484,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,5,6,1,1,1,1,1,1,1,1,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,487,488,489,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,485,486,490,491,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,492,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,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,493,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,2,39,3,494,163,6,35,4,3,17,4,68,495,497,163,104,496,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,498,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,499,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,500,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,501,1,180,502,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,503,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,10,35,19,5,4,32,1,24,1,10,51,155,159,104,158,156,160,200,157,99,504,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,505,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,184,2,1,506,366,367,4,43,142,1,1,507,508,509,367,3,43,142,2,-363,-363,-363,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,9,1,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,511,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,510,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,43,1,5,32,1,3,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,512,163,-212,108,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,126,-212,-212,-212,-212,-212,-212,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,513,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,514,1,43,515,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,108,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,126,-65,-65,-65,-65,-65,-65,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,516,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,1,43,517,3,68,1,1,518,105,106,3,131,12,5,520,519,221,3,68,1,1,521,105,106,1,64,522,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,523,-138,5,6,36,1,39,53,-225,-225,-225,-225,-225,6,35,7,17,85,1,2,384,383,104,525,382,385,6,6,36,1,39,53,11,-230,-230,-230,-230,-230,526,6,6,36,1,39,53,11,-232,-232,-232,-232,-232,527,2,35,24,528,104,14,1,5,32,4,1,21,11,7,15,75,2,1,17,1,-236,-236,-236,-236,-236,529,-236,-236,-236,-236,-236,-236,-236,-236,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,530,-138,5,6,36,1,39,53,-248,-248,-248,-248,-248,6,35,7,17,88,3,2,391,390,104,392,532,389,6,6,36,1,39,53,11,-253,-253,-253,-253,-253,533,6,6,36,1,39,53,11,-256,-256,-256,-256,-256,534,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,536,535,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,537,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,108,-243,-243,-243,127,-243,126,96,97,-243,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,538,99,3,68,1,1,539,105,106,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,2,6,37,107,540,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,541,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,406,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,5,6,36,1,39,15,-295,-295,-295,-295,-295,2,42,55,543,542,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,3,2,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-139,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-139,33,-139,-139,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,-139,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,-139,64,70,71,86,545,238,544,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,6,36,1,54,546,-296,-296,-296,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,547,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,28,6,32,4,1,13,26,15,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,108,-153,-153,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,548,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,549,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,550,-138,5,6,32,4,1,39,-280,-280,-280,-280,-280,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,552,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,553,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,554,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,555,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,556,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,557,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,6,36,93,559,560,558,23,6,29,3,4,1,11,1,3,1,6,1,1,1,1,1,20,1,1,2,1,1,1,38,-139,264,-139,-139,-139,261,248,268,104,265,262,100,101,105,106,561,562,267,259,266,260,-139,-139,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,563,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,564,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,565,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,566,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,16,6,30,6,1,26,1,12,21,3,1,1,1,1,2,23,19,-108,-110,-108,-108,-263,-263,-108,567,-110,-110,-110,-110,-110,-110,-108,140,16,6,30,6,1,26,1,12,21,3,1,1,1,1,2,23,19,-109,-263,-109,-109,-263,-263,-109,568,569,570,571,572,573,574,-109,140,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,7,36,33,1,33,3,4,44,-263,-263,-263,575,243,244,140,2,36,68,245,576,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,56,1,5,30,2,4,1,13,2,11,1,2,2,1,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,4,69,1,2,2,-75,-75,-75,-75,2,6,69,107,577,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,578,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,69,1,2,2,-78,-78,-78,-78,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,579,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,580,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,581,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,582,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,583,1,180,584,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,585,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,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,1,1,5,3,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,6,2,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,586,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-277,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,-277,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,26,43,13,2,74,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,587,108,313,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,43,588,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,24,43,13,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-278,108,-278,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,589,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,26,56,2,53,21,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,313,590,127,451,312,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,591,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,592,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,111,593,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,594,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,595,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,596,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,597,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,598,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,108,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,126,-93,-93,-93,-93,-93,-93,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,599,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,108,-36,-36,-36,-36,-36,-36,-36,127,-36,-36,-36,-36,-36,126,96,97,-36,-36,-36,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,600,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,108,-39,-39,-39,-39,-39,-39,-39,127,-39,-39,-39,-39,-39,126,96,97,-39,-39,-39,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,601,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,108,-42,-42,-42,-42,-42,-42,-42,127,-42,-42,-42,-42,-42,126,96,97,-42,-42,-42,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,602,108,127,126,96,97,124,125,110,109,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,4,1,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,604,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,67,92,603,33,163,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,6,6,32,4,1,39,33,-142,-142,-142,-142,-142,-142,11,35,19,4,1,4,32,1,23,1,1,10,155,159,154,104,158,156,160,605,153,157,99,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,606,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,28,6,32,4,1,13,26,33,17,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,108,-146,-146,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,3,47,69,1,607,90,91,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,608,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,108,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,126,-410,-410,-410,-410,-410,-410,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,37,610,609,2,6,37,-49,-49,24,6,37,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,37,-53,-53,7,6,37,130,1,1,17,1,-54,-54,130,96,97,128,129,2,6,37,-55,-55,55,1,5,30,2,4,1,12,1,2,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,611,-268,612,247,-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,-268,-268,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,613,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,39,3,614,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,2,39,3,615,163,2,39,3,616,163,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,26,39,3,14,76,4,37,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,617,163,108,127,618,126,96,97,619,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,620,163,108,127,621,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,622,163,108,127,623,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,624,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,625,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,626,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,134,44,2,-358,-358,-358,26,56,26,50,2,39,1,1,3,2,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,-356,127,-356,126,96,97,-356,-356,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,4,43,142,1,1,627,628,509,367,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,2,39,3,629,163,3,43,142,2,-364,-364,-364,3,39,3,40,630,163,631,24,42,14,26,50,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-302,108,-302,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,43,1,5,32,1,3,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,632,163,-216,108,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,126,-216,-216,-216,-216,-216,-216,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,8,6,32,4,1,39,15,21,17,-138,633,-138,-138,336,-138,337,-138,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,1,64,634,6,35,7,17,85,1,2,384,383,104,635,382,385,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,3,68,1,1,636,105,106,3,6,36,93,638,639,637,10,6,29,3,4,1,16,38,38,10,2,-139,384,-139,-139,-139,104,-139,-139,640,385,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,641,-138,2,35,24,642,104,2,35,24,643,104,1,64,-235,3,68,1,1,644,105,106,3,6,36,93,646,647,645,10,6,29,3,4,1,16,38,38,12,5,-139,391,-139,-139,-139,104,-139,-139,392,648,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,649,-138,3,35,24,88,650,104,651,2,35,24,652,104,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,108,-240,-240,-240,127,-240,126,-240,-240,-240,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,653,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,654,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,655,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,1,172,656,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,657,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,658,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,5,6,36,1,39,15,-290,-290,-290,-290,-290,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,5,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-297,-297,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,-297,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,238,659,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,2,42,1,543,660,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,661,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,6,32,4,663,662,664,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,3,2,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-139,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-139,33,-139,-139,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,-139,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,-139,64,70,71,86,665,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,666,-138,2,39,3,667,163,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,108,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,126,-316,-316,-316,-316,-316,-316,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,108,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,126,-318,-318,-318,-318,-318,-318,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,108,-97,668,-97,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,669,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,17,35,19,1,3,1,6,1,1,1,1,1,20,1,1,2,1,1,264,261,248,268,104,265,262,100,101,105,106,670,562,267,259,266,260,23,6,29,7,1,11,1,3,1,6,1,1,1,1,1,12,8,1,1,2,1,1,39,3,-205,264,-205,-205,261,248,268,104,265,262,100,101,105,106,-205,263,562,267,259,266,260,-205,671,5,6,36,1,39,53,-207,-207,-207,-207,-207,6,6,36,1,39,11,42,-95,-95,-95,-95,672,-95,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,108,-99,127,-99,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,673,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,36,1,39,11,42,-105,-105,-105,-105,-105,-105,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,674,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,36,68,245,675,2,36,68,245,676,2,55,10,248,677,2,55,10,248,678,15,6,30,6,1,12,10,17,24,1,1,1,1,2,23,19,-123,-123,-123,-123,248,679,-123,-123,-123,-123,-123,-123,-123,-123,-123,15,6,30,6,1,12,10,17,24,1,1,1,1,2,23,19,-124,-124,-124,-124,248,680,-124,-124,-124,-124,-124,-124,-124,-124,-124,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,681,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,682,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,683,2,36,68,245,684,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,4,69,1,2,2,-76,-76,-76,-76,2,6,37,107,685,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,108,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,126,-407,-407,-407,-407,-407,-407,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,108,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,686,-340,-340,126,-340,-340,-340,687,-340,-340,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,108,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,688,-345,-345,126,-345,-345,-345,-345,-345,-345,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,108,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,689,-349,-349,126,-349,-349,-349,-349,-349,-349,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,690,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,691,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,108,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,126,-354,-354,-354,-354,-354,-354,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,43,13,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-276,108,-276,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,111,692,1,111,693,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,-82,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,26,43,13,2,74,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,694,108,313,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,43,695,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-171,-171,-171,-171,-171,-171,-171,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,696,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,111,697,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,698,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,1,5,32,4,1,32,7,15,75,-134,-134,-134,-134,-134,-134,-134,-134,-134,6,6,32,4,1,39,33,-143,-143,-143,-143,-143,-143,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,336,-138,699,-138,2,39,3,603,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,107,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,5,3,3,1,1,1,1,2,1,1,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-51,487,488,489,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-51,53,43,54,55,56,700,490,491,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-56,-69,-69,-69,-69,-56,-69,-69,701,702,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,1,59,703,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,704,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,705,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,706,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,707,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,708,163,108,127,709,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,710,163,108,127,711,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,2,39,3,712,163,1,43,713,4,6,37,142,2,714,-365,-365,-365,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,715,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,2,39,3,716,163,3,68,1,1,717,105,106,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,718,-138,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,1,64,719,4,35,24,86,2,384,104,720,385,6,35,7,17,85,1,2,384,383,104,721,382,385,5,6,36,1,39,53,-226,-226,-226,-226,-226,3,6,36,1,638,639,722,5,6,36,1,39,53,-231,-231,-231,-231,-231,5,6,36,1,39,53,-233,-233,-233,-233,-233,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,14,1,5,32,4,1,21,11,7,15,75,2,1,17,1,-237,-237,-237,-237,-237,723,-237,-237,-237,-237,-237,-237,-237,-237,4,35,24,88,5,391,104,392,724,6,35,7,17,88,3,2,391,390,104,392,725,389,5,6,36,1,39,53,-249,-249,-249,-249,-249,3,6,36,1,646,647,726,5,6,36,1,39,53,-254,-254,-254,-254,-254,5,6,36,1,39,53,-255,-255,-255,-255,-255,5,6,36,1,39,53,-257,-257,-257,-257,-257,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,108,-241,-241,-241,127,-241,126,-241,-241,-241,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,727,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,728,5,6,36,1,39,15,-291,-291,-291,-291,-291,5,6,36,1,39,15,-292,-292,-292,-292,-292,1,111,729,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,730,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,731,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,5,6,32,4,1,39,-281,-281,-281,-281,-281,3,6,36,1,663,664,732,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,296,99,733,734,295,199,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,735,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,36,1,39,53,-208,-208,-208,-208,-208,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,425,-138,736,-138,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,737,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,557,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,738,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,36,1,39,11,42,-106,-106,-106,-106,-106,-106,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,739,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,740,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,741,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,742,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,1,75,743,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,744,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,745,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,746,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,747,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,108,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,748,-347,-347,126,-347,-347,-347,-347,-347,-347,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,108,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,749,-351,-351,126,-351,-351,-351,-351,-351,-351,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,1,111,750,1,111,751,1,111,752,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,1,111,753,3,6,36,1,477,478,754,2,6,37,-50,-50,2,6,37,-57,-57,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,755,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,2,6,37,-59,-59,25,39,3,14,76,41,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,756,163,108,127,126,96,97,757,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,758,163,108,127,759,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,760,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,761,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,762,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,763,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,764,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,3,43,142,2,-366,-366,-366,24,42,14,26,50,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-303,108,-303,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,3,6,36,93,638,639,765,3,68,1,1,766,105,106,5,6,36,1,39,53,-227,-227,-227,-227,-227,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,767,-138,5,6,36,1,39,53,-228,-228,-228,-228,-228,3,68,1,1,768,105,106,5,6,36,1,39,53,-250,-250,-250,-250,-250,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,769,-138,5,6,36,1,39,53,-251,-251,-251,-251,-251,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,42,1,543,770,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,5,6,32,4,1,39,-282,-282,-282,-282,-282,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,771,-138,5,6,32,4,1,39,-283,-283,-283,-283,-283,3,134,44,2,772,444,446,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,773,199,5,6,36,1,39,53,-98,-98,-98,-98,-98,3,6,36,1,559,560,774,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,108,-97,127,-97,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,36,1,39,53,-100,-100,-100,-100,-100,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,775,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,776,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,777,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,4,69,1,2,2,-77,-77,-77,-77,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,108,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,126,-341,-341,-341,778,-341,-341,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,108,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,779,-342,-342,126,-342,-342,-342,-342,-342,-342,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,108,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,-346,-346,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,108,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,126,-350,-350,-350,-350,-350,-350,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,780,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,781,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-172,-172,-172,-172,-172,-172,-172,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,6,6,32,4,1,39,33,-144,-144,-144,-144,-144,-144,24,6,37,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,782,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,783,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,784,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,785,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,64,786,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,3,6,36,1,638,639,787,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,3,6,36,1,646,647,788,5,6,36,1,39,15,-293,-293,-293,-293,-293,3,6,36,1,663,664,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,790,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,791,5,6,36,1,39,53,-209,-209,-209,-209,-209,1,111,792,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,793,108,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,794,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,795,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,108,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,126,-348,-348,-348,-348,-348,-348,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,108,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,126,-352,-352,-352,-352,-352,-352,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,796,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,797,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,3,68,1,1,798,105,106,5,6,36,1,39,53,-229,-229,-229,-229,-229,5,6,36,1,39,53,-252,-252,-252,-252,-252,5,6,32,4,1,39,-284,-284,-284,-284,-284,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,108,-345,-345,801,-345,-345,-345,-345,799,-345,-345,-345,800,-345,-345,126,-345,-345,-345,-345,-345,-345,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,802,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,1,111,803,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,108,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,126,-343,-343,-343,-343,-343,-343,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-344,-344,-344,-344,-344,108,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,126,-344,-344,-344,-344,-344,-344,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,1,135,804,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,805,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,32,4,1,54,38,-139,-139,-139,-139,-139,-139,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,108,-347,-347,801,-347,-347,-347,-347,806,-347,-347,-347,807,-347,-347,126,-347,-347,-347,-347,-347,-347,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,108,-346,-346,801,-346,-346,-346,-346,808,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,-346,-346,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,135,809,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,810,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,135,811,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,108,-348,-348,801,-348,-348,-348,-348,812,-348,-348,-348,-348,-348,-348,126,-348,-348,-348,-348,-348,-348,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,1,135,813,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203],A=[],$=0,E,R,_,X;while($<U.length){E=U[$++],R={},_=0,X=[];while(E--)_+=U[$++],X.push(_);for(_ of X)R[_]=U[$++];A.push(R)}return A})(),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,33,6,33,3,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,2,22,2,23,2,24,5,51,1,51,3,51,2,52,1,52,1,52,1,52,1,53,2,53,3,53,4,53,3,8,1,8,1,32,1,32,2,32,4,32,3,39,2,39,3,35,1,65,1,66,1,66,1,68,1,68,3,71,1,71,2,73,3,73,5,73,2,73,1,76,1,76,3,81,3,81,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,17,3,17,4,17,5,90,1,90,1,90,3,90,5,90,3,90,5,94,1,94,1,94,1,91,1,91,3,91,4,91,1,92,2,92,2,98,1,98,1,98,1,98,1,98,1,98,3,98,2,98,3,98,3,98,3,98,3,98,3,98,3,98,2,98,2,98,4,98,6,98,5,98,7,10,2,10,4,10,1,15,5,15,2,60,5,60,2,47,1,47,1,118,0,118,1,37,0,37,1,37,3,37,4,37,6,119,1,119,3,119,2,119,1,120,1,120,1,120,1,120,1,122,2,123,1,123,1,123,3,123,3,123,3,123,3,123,2,123,2,123,4,123,6,123,4,123,6,123,4,123,5,123,7,123,5,123,7,123,5,123,7,123,3,123,3,123,3,123,3,123,2,123,2,123,4,123,6,123,5,123,7,40,1,40,1,40,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,100,3,100,4,100,6,128,3,128,3,63,10,63,12,63,11,63,13,63,4,138,0,138,1,138,3,138,4,138,6,30,1,30,2,30,3,30,4,30,2,30,3,30,4,30,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,144,1,144,3,144,4,144,4,144,6,145,1,145,3,145,1,145,3,142,1,143,3,13,3,13,5,13,2,13,2,13,4,13,5,13,6,13,3,13,5,13,4,13,5,13,7,150,1,150,3,150,4,150,4,150,6,152,1,152,3,152,3,152,1,152,3,79,3,79,3,79,3,79,2,79,2,103,0,103,1,104,2,104,4,101,1,101,1,95,2,121,2,121,3,121,4,160,1,160,1,126,5,124,3,124,2,124,2,124,1,155,1,155,3,155,4,155,4,155,6,162,1,162,1,162,1,162,1,158,1,158,3,158,4,158,4,158,6,163,1,163,2,159,1,159,2,157,1,157,2,164,1,164,2,165,1,165,3,26,2,26,3,26,4,26,5,167,3,167,3,167,2,31,2,31,4,99,3,99,5,173,2,173,4,173,2,173,4,27,2,27,2,27,2,27,1,176,2,176,2,28,5,28,7,28,7,28,9,28,9,28,5,28,7,28,6,28,8,28,5,28,7,28,6,28,8,28,3,28,5,28,5,28,7,28,7,28,9,28,9,28,5,28,7,28,6,28,8,28,5,28,7,28,6,28,8,28,3,28,5,182,1,182,3,133,1,133,3,29,5,29,7,29,4,29,6,184,1,184,2,186,3,186,4,188,3,188,5,190,3,190,5,25,1,25,3,25,1,25,3,25,3,25,3,25,3,61,2,61,2,61,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,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,5,16,3,16,5,16,4,127,2],ruleActions:(U,A,$,E)=>{let R=A,_=A.length-1;switch(U){case 1:return["program"];case 2:return["program",...R[_]];case 3:case 49:case 74:case 141:case 206:case 225:case 248:case 280:case 294:case 298:case 357:case 363:return[R[_]];case 4:case 50:case 142:case 207:case 226:case 249:case 281:return[...R[_-2],R[_]];case 5:case 51:case 76:case 301:return R[_-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 52:case 53:case 54:case 55:case 60:case 61:case 68:case 69:case 70:case 71:case 72:case 79:case 80:case 84:case 85:case 86:case 89:case 90:case 91:case 96:case 101:case 102:case 103:case 104:case 107:case 110:case 111:case 112:case 113:case 114:case 136:case 137:case 138:case 139:case 145:case 149:case 150:case 151:case 152:case 154:case 155:case 183:case 184:case 185:case 186:case 187:case 188:case 189:case 190:case 191:case 192:case 193:case 194:case 230:case 232:case 234:case 253:case 256:case 285:case 286:case 287:case 289:case 302:case 322:case 355:case 371:case 373:return R[_];case 33:return["def",R[_-4],R[_-2],R[_]];case 34:return["def",R[_-1],[],R[_]];case 35:return["signal",R[_-2],R[_]];case 36:return["signal",R[_-3],R[_]];case 37:return["signal",R[_-4],R[_-1]];case 38:return["derived",R[_-2],R[_]];case 39:return["derived",R[_-3],R[_]];case 40:return["derived",R[_-4],R[_-1]];case 41:return["readonly",R[_-2],R[_]];case 42:return["readonly",R[_-3],R[_]];case 43:return["readonly",R[_-4],R[_-1]];case 44:case 45:return["effect",R[_]];case 46:return["render",R[_]];case 47:return["style",R[_]];case 48:return["component",R[_-3],["block",...R[_-1]]];case 56:return["prop",R[_]];case 57:return["prop",R[_-1],"optional"];case 58:return["prop",R[_-2],R[_]];case 59:return["prop-rest",R[_]];case 62:return["yield"];case 63:return["yield",R[_]];case 64:return["yield",R[_-1]];case 65:return["yield-from",R[_]];case 66:return["block"];case 67:return["block",...R[_-1]];case 73:return["str",...R[_-1]];case 75:case 295:case 299:case 364:return[...R[_-1],R[_]];case 77:case 228:case 251:case 266:case 283:return R[_-2];case 78:return"";case 81:return["regex",R[_-1]];case 82:return["regex-index",R[_-2],R[_]];case 83:return["regex-index",R[_],null];case 87:return"undefined";case 88:return"null";case 92:return["=",R[_-2],R[_]];case 93:return["=",R[_-3],R[_]];case 94:return["=",R[_-4],R[_-1]];case 95:return[R[_],R[_],null];case 97:return[R[_-2],R[_],":"];case 98:return[R[_-4],R[_-1],":"];case 99:return[R[_-2],R[_],"="];case 100:return[R[_-4],R[_-1],"="];case 105:return["computed",R[_-1]];case 106:return["[]","this",R[_-1]];case 108:case 109:case 153:return["...",R[_]];case 115:case 261:return["super",...R[_]];case 116:case 262:return["import",...R[_]];case 117:case 118:return[R[_-2],...R[_]];case 119:case 156:case 173:return[".",R[_-2],R[_]];case 120:case 157:case 174:return["?.",R[_-2],R[_]];case 121:case 158:case 175:return["::",R[_-2],R[_]];case 122:case 159:case 176:return["?::",R[_-2],R[_]];case 123:case 160:case 177:return["::",R[_-1],"prototype"];case 124:case 161:case 178:return["?::",R[_-1],"prototype"];case 125:case 162:case 164:case 179:return["[]",R[_-3],R[_-1]];case 126:case 163:case 165:case 180:return["[]",R[_-5],R[_-2]];case 127:case 167:case 169:case 181:return["?[]",R[_-4],R[_-1]];case 128:case 168:case 170:case 182:return["?[]",R[_-6],R[_-2]];case 129:return["return",R[_]];case 130:return["return",R[_-1]];case 131:return["return"];case 132:case 134:return[R[_-1],R[_-3],R[_]];case 133:case 135:return[R[_-1],[],R[_]];case 140:case 205:case 265:case 296:return[];case 143:case 208:case 227:case 250:case 282:return[...R[_-3],R[_]];case 144:case 209:case 229:case 252:case 284:return[...R[_-5],...R[_-2]];case 146:case 356:return["default",R[_-2],R[_]];case 147:return["rest",R[_]];case 148:return["expansion"];case 166:return[R[_-1][0],R[_-3],...R[_-1].slice(1)];case 171:return["optindex",R[_-4],R[_-1]];case 172:return["optindex",R[_-6],R[_-2]];case 195:return[".","super",R[_]];case 196:return["[]","super",R[_-1]];case 197:return["[]","super",R[_-2]];case 198:return[".","new",R[_]];case 199:return[".","import",R[_]];case 200:return["object-comprehension",R[_-8],R[_-6],[["for-of",R[_-4],R[_-2],!1]],[]];case 201:return["object-comprehension",R[_-10],R[_-8],[["for-of",R[_-6],R[_-4],!1]],[R[_-2]]];case 202:return["object-comprehension",R[_-9],R[_-7],[["for-of",R[_-4],R[_-2],!0]],[]];case 203:return["object-comprehension",R[_-11],R[_-9],[["for-of",R[_-6],R[_-4],!0]],[R[_-2]]];case 204:return["object",...R[_-2]];case 210:return["class",null,null];case 211:return["class",null,null,R[_]];case 212:return["class",null,R[_]];case 213:return["class",null,R[_-1],R[_]];case 214:return["class",R[_],null];case 215:return["class",R[_-1],null,R[_]];case 216:return["class",R[_-2],R[_]];case 217:return["class",R[_-3],R[_-1],R[_]];case 218:case 221:return["import","{}",R[_]];case 219:case 220:return["import",R[_-2],R[_]];case 222:return["import",R[_-4],R[_]];case 223:return["import",[R[_-4],R[_-2]],R[_]];case 224:return["import",[R[_-7],R[_-4]],R[_]];case 231:case 233:case 254:case 255:case 257:case 358:return[R[_-2],R[_]];case 235:return["*",R[_]];case 236:return["export","{}"];case 237:return["export",R[_-2]];case 238:case 239:return["export",R[_]];case 240:return["export",["=",R[_-2],R[_]]];case 241:return["export",["=",R[_-3],R[_]]];case 242:return["export",["=",R[_-4],R[_-1]]];case 243:return["export-default",R[_]];case 244:return["export-default",R[_-1]];case 245:return["export-all",R[_]];case 246:return["export-from","{}",R[_]];case 247:return["export-from",R[_-4],R[_]];case 258:return["tagged-template",R[_-2],R[_]];case 259:return R[_-1]?["?call",R[_-2],...R[_]]:[R[_-2],...R[_]];case 260:return["optcall",R[_-2],...R[_]];case 263:case 300:return null;case 264:return!0;case 267:case 268:return"this";case 269:return[".","this",R[_]];case 270:return["array"];case 271:return["array",...R[_-1]];case 272:return["array",...R[_-2],...R[_-1]];case 273:return"..";case 274:case 288:return"...";case 275:return[R[_-2],R[_-3],R[_-1]];case 276:case 395:case 397:case 398:case 406:case 408:return[R[_-1],R[_-2],R[_]];case 277:return[R[_],R[_-1],null];case 278:return[R[_-1],null,R[_]];case 279:return[R[_],null,null];case 290:return[...R[_-2],...R[_]];case 291:return[...R[_-3],...R[_]];case 292:return[...R[_-2],...R[_-1]];case 293:return[...R[_-5],...R[_-4],...R[_-2],...R[_-1]];case 297:return[...R[_]];case 303:return Array.isArray(R[_-2])?[...R[_-2],R[_]]:[R[_-2],R[_]];case 304:return["try",R[_]];case 305:return["try",R[_-1],R[_]];case 306:return["try",R[_-2],R[_]];case 307:return["try",R[_-3],R[_-2],R[_]];case 308:case 309:case 378:case 381:case 383:return[R[_-1],R[_]];case 310:return[null,R[_]];case 311:return["throw",R[_]];case 312:return["throw",R[_-1]];case 313:return R[_-1].length===1?R[_-1][0]:R[_-1];case 314:return R[_-2].length===1?R[_-2][0]:R[_-2];case 315:return["while",R[_]];case 316:return["while",R[_-2],R[_]];case 317:return["until",R[_]];case 318:return["until",R[_-2],R[_]];case 319:return R[_-1].length===2?[R[_-1][0],R[_-1][1],R[_]]:[R[_-1][0],R[_-1][1],R[_-1][2],R[_]];case 320:case 321:return R[_].length===2?[R[_][0],R[_][1],[R[_-1]]]:[R[_][0],R[_][1],R[_][2],[R[_-1]]];case 323:return["loop",R[_]];case 324:return["loop",[R[_]]];case 325:return["for-in",R[_-3],R[_-1],null,null,R[_]];case 326:return["for-in",R[_-5],R[_-3],null,R[_-1],R[_]];case 327:return["for-in",R[_-5],R[_-3],R[_-1],null,R[_]];case 328:return["for-in",R[_-7],R[_-5],R[_-1],R[_-3],R[_]];case 329:return["for-in",R[_-7],R[_-5],R[_-3],R[_-1],R[_]];case 330:return["for-of",R[_-3],R[_-1],!1,null,R[_]];case 331:return["for-of",R[_-5],R[_-3],!1,R[_-1],R[_]];case 332:return["for-of",R[_-3],R[_-1],!0,null,R[_]];case 333:return["for-of",R[_-5],R[_-3],!0,R[_-1],R[_]];case 334:return["for-from",R[_-3],R[_-1],!1,null,R[_]];case 335:return["for-from",R[_-5],R[_-3],!1,R[_-1],R[_]];case 336:return["for-from",R[_-3],R[_-1],!0,null,R[_]];case 337:return["for-from",R[_-5],R[_-3],!0,R[_-1],R[_]];case 338:return["for-in",[],R[_-1],null,null,R[_]];case 339:return["for-in",[],R[_-3],R[_-1],null,R[_]];case 340:return["comprehension",R[_-4],[["for-in",R[_-2],R[_],null]],[]];case 341:return["comprehension",R[_-6],[["for-in",R[_-4],R[_-2],null]],[R[_]]];case 342:return["comprehension",R[_-6],[["for-in",R[_-4],R[_-2],R[_]]],[]];case 343:return["comprehension",R[_-8],[["for-in",R[_-6],R[_-4],R[_]]],[R[_-2]]];case 344:return["comprehension",R[_-8],[["for-in",R[_-6],R[_-4],R[_-2]]],[R[_]]];case 345:return["comprehension",R[_-4],[["for-of",R[_-2],R[_],!1]],[]];case 346:return["comprehension",R[_-6],[["for-of",R[_-4],R[_-2],!1]],[R[_]]];case 347:return["comprehension",R[_-5],[["for-of",R[_-2],R[_],!0]],[]];case 348:return["comprehension",R[_-7],[["for-of",R[_-4],R[_-2],!0]],[R[_]]];case 349:return["comprehension",R[_-4],[["for-from",R[_-2],R[_],!1,null]],[]];case 350:return["comprehension",R[_-6],[["for-from",R[_-4],R[_-2],!1,null]],[R[_]]];case 351:return["comprehension",R[_-5],[["for-from",R[_-2],R[_],!0,null]],[]];case 352:return["comprehension",R[_-7],[["for-from",R[_-4],R[_-2],!0,null]],[R[_]]];case 353:return["comprehension",R[_-2],[["for-in",[],R[_],null]],[]];case 354:return["comprehension",R[_-4],[["for-in",[],R[_-2],R[_]]],[]];case 359:return["switch",R[_-3],R[_-1],null];case 360:return["switch",R[_-5],R[_-3],R[_-1]];case 361:return["switch",null,R[_-1],null];case 362:return["switch",null,R[_-3],R[_-1]];case 365:return["when",R[_-1],R[_]];case 366:return["when",R[_-2],R[_-1]];case 367:return["if",R[_-1],R[_]];case 368:return R[_-4].length===3?["if",R[_-4][1],R[_-4][2],["if",R[_-1],R[_]]]:[...R[_-4],["if",R[_-1],R[_]]];case 369:return["unless",R[_-1],R[_]];case 370:return["if",["!",R[_-3]],R[_-2],R[_]];case 372:return R[_-2].length===3?["if",R[_-2][1],R[_-2][2],R[_]]:[...R[_-2],R[_]];case 374:case 375:return["if",R[_],[R[_-2]]];case 376:case 377:return["unless",R[_],[R[_-2]]];case 379:case 380:case 382:case 411:return["do-iife",R[_]];case 384:return["-",R[_]];case 385:return["+",R[_]];case 386:return["await",R[_]];case 387:return["await",R[_-1]];case 388:return["--",R[_],!1];case 389:return["++",R[_],!1];case 390:return["--",R[_-1],!0];case 391:return["++",R[_-1],!0];case 392:return["?",R[_-1]];case 393:return["+",R[_-2],R[_]];case 394:return["-",R[_-2],R[_]];case 396:return["**",R[_-2],R[_]];case 399:return["&",R[_-2],R[_]];case 400:return["^",R[_-2],R[_]];case 401:return["|",R[_-2],R[_]];case 402:return["&&",R[_-2],R[_]];case 403:return["||",R[_-2],R[_]];case 404:return["??",R[_-2],R[_]];case 405:return["!?",R[_-2],R[_]];case 407:return["?:",R[_-4],R[_-2],R[_]];case 409:return[R[_-3],R[_-4],R[_-1]];case 410:return[R[_-2],R[_-3],R[_]]}},parseError(U,A){let $,E,R,_,X,Y,F;if(A.recoverable)return this.trace(U);else throw R=(A.line||0)+1,$=A.loc?.first_column||0,F=A.token?` (token: ${A.token})`:"",Y=A.text?` near '${A.text}'`:"",_=`line ${R}, column ${$}`,X=`Parse error at ${_}${F}${Y}: ${U}`,E=Error(X),E.hash=A,E},parse(U){let A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T;[K,B,D]=[[0],[null],[]],[J,L,S,z,O]=[this.parseTable,"",0,0,0],[$,A]=[2,1],F=Object.create(this.lexer),N={yy:{}};for(let V in this.yy)if(Object.hasOwn(this.yy,V)){let y=this.yy[V];N.yy[V]=y}if(F.setInput(U,N.yy),[N.yy.lexer,N.yy.parser]=[F,this],F.yylloc==null)F.yylloc={};I=F.yylloc,D.push(I),q=F.options?.ranges,this.parseError=typeof N.yy.parseError==="function"?N.yy.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let V;if(V=F.lex()||A,typeof V!=="number")V=this.symbolIds[V]||V;return V},[w,W,P,E,H,T,G,X,Q,_]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(P=K[K.length-1],w==null)w=Y();if(E=J[P]!=null?J[P][w]:void 0,E==null){if(R="",!O)_=(()=>{let V=[];for(let y in J[P]){if(!Object.hasOwn(J[P],y))continue;if(this.tokenNames[y]&&y>$)V.push(`'${this.tokenNames[y]}'`)}return V})();throw R=(()=>{if(F.showPosition)return`Parse error on line ${S+1}:
|
|
20
20
|
${F.showPosition()}
|
|
21
|
-
Expecting ${_.join(", ")}, got '${this.tokenNames[w]||w}'`;else return`Parse error on line ${S+1}: Unexpected ${w===A?"end of input":`'${this.tokenNames[w]||w}'`}`,this.parseError(R,{text:F.match,token:this.tokenNames[w]||w,line:F.yylineno,loc:I,expected:_})})(),Error(R)}if(E>0)if(K.push(w,E),B.push(F.yytext),D.push(F.yylloc),w=null,!W){if([z,L,S,I]=[F.yyleng,F.yytext,F.yylineno,F.yylloc],O>0)O--}else[w,W]=[W,null];else if(E<0){if(X=this.ruleTable[-E*2+1],T.$=B[B.length-X],[Z,M]=[D[D.length-(X||1)],D[D.length-1]],T._$={first_line:Z.first_line,last_line:M.last_line,first_column:Z.first_column,last_column:M.last_column},
|
|
21
|
+
Expecting ${_.join(", ")}, got '${this.tokenNames[w]||w}'`;else return`Parse error on line ${S+1}: Unexpected ${w===A?"end of input":`'${this.tokenNames[w]||w}'`}`,this.parseError(R,{text:F.match,token:this.tokenNames[w]||w,line:F.yylineno,loc:I,expected:_})})(),Error(R)}if(E>0)if(K.push(w,E),B.push(F.yytext),D.push(F.yylloc),w=null,!W){if([z,L,S,I]=[F.yyleng,F.yytext,F.yylineno,F.yylloc],O>0)O--}else[w,W]=[W,null];else if(E<0){if(X=this.ruleTable[-E*2+1],T.$=B[B.length-X],[Z,M]=[D[D.length-(X||1)],D[D.length-1]],T._$={first_line:Z.first_line,last_line:M.last_line,first_column:Z.first_column,last_column:M.last_column},q)T._$.range=[Z.range[0],M.range[1]];if(H=this.ruleActions.apply(T,[-E,B,D,N.yy]),H!=null)T.$=H;if(X)K.length-=X*2,B.length-=X,D.length-=X;K.push(this.ruleTable[-E*2]),B.push(T.$),D.push(T._$),Q=J[K[K.length-2]][K[K.length-1]],K.push(Q)}else if(E===0)return B[B.length-1]}},trace(){},yy:{}},t3=(U={})=>{let A=Object.create(a3);return Object.defineProperty(A,"yy",{value:{...U},enumerable:!1,writable:!0,configurable:!0}),A},A1=t3();var Y2=A1.parse.bind(A1);var e3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","?[]","::","?::","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function K1(U){if(!Array.isArray(U)||U.length===0)return!1;let A=U[0]?.valueOf?.()??U[0];if(e3.has(A))return!0;return U.length<=4&&!U.some(Array.isArray)}function Y1(U){if(Array.isArray(U))return"(???)";if(typeof U==="number")return String(U);if(U===null)return"null";if(U==="")return'""';let A=String(U);if(A[0]==="/"&&A.indexOf(`
|
|
22
22
|
`)>=0){let $=A.match(/\/([gimsuvy]*)$/),E=$?$[1]:"",R=A.slice(1);if(E)R=R.slice(0,-E.length-1);else R=R.slice(0,-1);return`"/${R.split(`
|
|
23
23
|
`).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${E}"`}return A}function r(U,A=0,$=!1){if(!Array.isArray(U))return Y1(U);if($&&U[0]==="program"){let D=U[1],M=[Array.isArray(D)?"(program":"(program "+Y1(D)],Q=Array.isArray(D)?1:2;for(let G=Q;G<U.length;G++){let J=r(U[G],2,!1);M.push(J[0]==="("?" "+J:J)}return M.push(")"),M.join(`
|
|
24
24
|
`)}let E=U[0];if(K1(U)&&U.slice(1).every((D)=>!Array.isArray(D)||K1(D))){let Z=`(${U.map((M)=>Array.isArray(M)?r(M,0,!1):Y1(M)).join(" ")})`;if(!Z.includes(`
|
|
@@ -28,7 +28,7 @@ Expecting ${_.join(", ")}, got '${this.tokenNames[w]||w}'`;else return`Parse err
|
|
|
28
28
|
`)}else X=Y1(E);let Y=[`${_}(${X}`],F=E==="block";for(let D=1;D<U.length;D++){let Z=U[D];if(!Array.isArray(Z))Y[Y.length-1]+=" "+Y1(Z);else{let M=K1(Z)&&Z.every((Q)=>!Array.isArray(Q)||K1(Q));if(!F&&M){let Q=r(Z,0,!1);if(!Q.includes(`
|
|
29
29
|
`)){Y[Y.length-1]+=" "+Q;continue}}Y.push(r(Z,A+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
|
|
30
30
|
`)}class f{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_REGEX=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_REGEX=/^-?\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","//":"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","::":"generatePrototype","?::":"generateOptionalPrototype","[]":"generateIndexAccess","?[]":"generateSoakIndex",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",signal:"generateSignal",derived:"generateDerived",readonly:"generateReadonly",effect:"generateEffect",render:"generateRender",style:"generateStyle",component:"generateComponent",break:"generateBreak","break-if":"generateBreakIf",continue:"generateContinue","continue-if":"generateContinueIf","?":"generateExistential","?:":"generateTernary",loop:"generateLoop",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf",unless:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-from":"generateForFrom",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper","?call":"generateSoakCall",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(U={}){if(this.options=U,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=U.dataSection,U.reactiveVars)this.reactiveVars=new Set(U.reactiveVars)}compile(U){return this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables(U),this.generate(U)}collectProgramVariables(U){if(!Array.isArray(U))return;let[A,...$]=U,E=A instanceof String?A.await:void 0,R=A instanceof String?A.invert:void 0;if(A instanceof String)A=A.valueOf();if(E!==void 0)U[0].await=E;if(R!==void 0)U[0].invert=R;if(Array.isArray(A)){U.forEach((_)=>this.collectProgramVariables(_));return}if(A==="export"||A==="export-default"||A==="export-all"||A==="export-from")return;if(A==="signal"||A==="derived"||A==="readonly"){let[_]=$,X=typeof _==="string"?_:_.valueOf();if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(X);return}if(f.ASSIGNMENT_OPS.has(A)){let[_,X]=$;if(typeof _==="string"||_ instanceof String){let Y=_ instanceof String?_.valueOf():_;if(!this.reactiveVars?.has(Y))this.programVars.add(Y)}else if(Array.isArray(_)&&_[0]==="array")this.collectVarsFromArray(_,this.programVars);else if(Array.isArray(_)&&_[0]==="object")this.collectVarsFromObject(_,this.programVars);this.collectProgramVariables(X);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="component")return;if(A==="if"){let[_,X,Y]=$;if(this.collectProgramVariables(_),this.collectProgramVariables(X),Y)this.collectProgramVariables(Y);return}if(A==="unless"){let[_,X]=$;this.collectProgramVariables(_),this.collectProgramVariables(X);return}if(A==="try"){if(this.collectProgramVariables($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[_,X]=$[1];if(_&&Array.isArray(_)&&_[0]==="object")_.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2){let F=Y[1];if(typeof F==="string")this.programVars.add(F)}});else if(_&&Array.isArray(_)&&_[0]==="array")_.slice(1).forEach((Y)=>{if(typeof Y==="string")this.programVars.add(Y)});this.collectProgramVariables(X)}if($.length===3)this.collectProgramVariables($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))this.collectProgramVariables($[1]);return}$.forEach((_)=>this.collectProgramVariables(_))}collectFunctionVariables(U){let A=new Set,$=(E)=>{if(!Array.isArray(E))return;let[R,..._]=E;if(R instanceof String)R=R.valueOf();if(Array.isArray(R)){E.forEach((X)=>$(X));return}if(f.ASSIGNMENT_OPS.has(R)){let[X,Y]=_;if(typeof X==="string")A.add(X);else if(Array.isArray(X)&&X[0]==="array")this.collectVarsFromArray(X,A);else if(Array.isArray(X)&&X[0]==="object")this.collectVarsFromObject(X,A);$(Y);return}if(R==="def"||R==="->"||R==="=>")return;if(R==="try"){if($(_[0]),_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[X,Y]=_[1];if(X&&Array.isArray(X)&&X[0]==="object")X.slice(1).forEach((F)=>{if(Array.isArray(F)&&F.length===2&&typeof F[1]==="string")A.add(F[1])});else if(X&&Array.isArray(X)&&X[0]==="array")X.slice(1).forEach((F)=>{if(typeof F==="string")A.add(F)});$(Y)}if(_.length===3)$(_[2]);else if(_.length===2&&(!Array.isArray(_[1])||_[1][0]==="block"))$(_[1]);return}_.forEach((X)=>$(X))};return $(U),A}generate(U,A="statement"){if(U instanceof String){if(U.await===!0)return`await ${U.valueOf()}()`;if(U.delimiter==="///"&&U.heregex){let X=U.valueOf(),Y=X.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Y){let[,F,D]=Y;return`/${this.processHeregex(F)}/${D}`}return X}if(U.quote){let X=U.valueOf(),Y=U.quote;if(Y==='"""'||Y==="'''"){let D=this.extractStringContent(U);return D=D.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${D}\``}if(X[0]===Y)return X;let F=X.slice(1,-1);return`${Y}${F}${Y}`}U=U.valueOf()}if(typeof U==="string"){if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive string (should be String object):",U);let X=U.slice(1,-1);if(X.includes(`
|
|
31
|
-
`))return`\`${X.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=X.includes("'")&&!X.includes('"')?'"':"'",F=X.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${F}${Y}`}if(this.reactiveVars?.has(U)&&!this.suppressReactiveUnwrap)return`${U}.value`;return U}if(typeof U==="number")return String(U);if(U===null||U===void 0)return"null";if(!Array.isArray(U))throw Error(`Invalid s-expression: ${JSON.stringify(U)}`);let[$,...E]=U,R=$ instanceof String?$.await:void 0;if($ instanceof String)$=$.valueOf();let _=f.GENERATORS[$];if(_)return this[_]($,E,A,U);if(typeof $==="string"&&!$.startsWith('"')&&!$.startsWith("'")){if(f.NUMBER_START_REGEX.test($))return $;if($==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let Z=E.map((M)=>this.unwrap(this.generate(M,"value"))).join(", ");return`super.${this.currentMethodName}(${Z})`}if(A==="statement"&&E.length===1){let Z=this.findPostfixConditional(E[0]);if(Z){let M;if(Z.parentOp){let
|
|
31
|
+
`))return`\`${X.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=X.includes("'")&&!X.includes('"')?'"':"'",F=X.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${F}${Y}`}if(this.reactiveVars?.has(U)&&!this.suppressReactiveUnwrap)return`${U}.value`;return U}if(typeof U==="number")return String(U);if(U===null||U===void 0)return"null";if(!Array.isArray(U))throw Error(`Invalid s-expression: ${JSON.stringify(U)}`);let[$,...E]=U,R=$ instanceof String?$.await:void 0;if($ instanceof String)$=$.valueOf();let _=f.GENERATORS[$];if(_)return this[_]($,E,A,U);if(typeof $==="string"&&!$.startsWith('"')&&!$.startsWith("'")){if(f.NUMBER_START_REGEX.test($))return $;if($==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let Z=E.map((M)=>this.unwrap(this.generate(M,"value"))).join(", ");return`super.${this.currentMethodName}(${Z})`}if(A==="statement"&&E.length===1){let Z=this.findPostfixConditional(E[0]);if(Z){let M;if(Z.parentOp){let H=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;M=[Z.parentOp,...Z.otherOperands,H]}else M=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;let Q=this.generate($,"value"),G=this.generate(Z.condition,"value"),J=this.generate(M,"value"),W=`${Q}(${J})`;if(Z.type==="unless")return`if (!${G}) ${W}`;else return`if (${G}) ${W}`}}let X=R===!0,Y=this.generate($,"value"),F=E.map((Z)=>this.unwrap(this.generate(Z,"value"))).join(", "),D=`${Y}(${F})`;return X?`await ${D}`:D}if(Array.isArray($)&&typeof $[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes($[0]))return`(${U.map((F)=>this.generate(F,"value")).join(", ")})`}if(Array.isArray($)){if($[0]==="."&&($[2]==="new"||$[2]instanceof String&&$[2].valueOf()==="new")){let Z=$[1],M=this.generate(Z,"value"),Q=E.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");return`new ${Array.isArray(Z)?`(${M})`:M}(${Q})`}if(A==="statement"&&E.length===1){let Z=this.findPostfixConditional(E[0]);if(Z){let M;if(Z.parentOp){let H=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;M=[Z.parentOp,...Z.otherOperands,H]}else M=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;let Q=this.generate($,"value"),G=this.generate(Z.condition,"value"),J=this.generate(M,"value"),W=`${Q}(${J})`;if(Z.type==="unless")return`if (!${G}) ${W}`;else return`if (${G}) ${W}`}}let X=!1,Y;if(Array.isArray($)&&($[0]==="."||$[0]==="::")&&$[2]instanceof String&&$[2].await===!0){X=!0;let[Z,M]=$.slice(1),Q=this.generate(Z,"value"),G=f.NUMBER_LITERAL_REGEX.test(Q),J=Array.isArray(Z)&&Z[0]==="object",W=Array.isArray(Z)&&(Z[0]==="await"||Z[0]==="yield"),q=G||J||W?`(${Q})`:Q,O=M.valueOf();if($[0]==="::")Y=`${q}.prototype.${O}`;else Y=`${q}.${O}`}else Y=this.generate($,"value");let F=E.map((Z)=>this.unwrap(this.generate(Z,"value"))).join(", "),D=`${Y}(${F})`;return X?`await ${D}`:D}throw Error(`Unknown s-expression type: ${$}`)}generateProgram(U,A,$,E){let R="",_=[],X=[],Y=[];A.forEach((Z)=>{if(Array.isArray(Z)){let M=Z[0];if(M==="import")_.push(Z);else if(M==="export"||M==="export-default"||M==="export-all"||M==="export-from")X.push(Z);else Y.push(Z)}else Y.push(Z)});let F=Y.map((Z,M)=>{let Q=Y.length===1&&_.length===0&&X.length===0,G=Array.isArray(Z)&&Z[0]==="object",J=G&&Z.length===2&&Array.isArray(Z[1])&&Array.isArray(Z[1][1])&&Z[1][1][0]==="comprehension",W=Array.isArray(Z)&&(Z[0]==="comprehension"||Z[0]==="object-comprehension"||Z[0]==="do-iife"),H=this.programVars.size===0,q=Q&&G&&H&&!W&&!J,N=M===Y.length-1&&W,P;if(q)P=`(${this.generate(Z,"value")})`;else if(N)P=this.generate(Z,"value");else P=this.generate(Z,"statement");if(P&&!P.endsWith(";")){let K=Array.isArray(Z)?Z[0]:null;if(!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes(K)||!P.endsWith("}"))return P+";"}return P}).join(`
|
|
32
32
|
`),D=!1;if(_.length>0)R+=_.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
|
|
33
33
|
`),D=!0;if(this.programVars.size>0){let Z=Array.from(this.programVars).sort().join(", ");if(D)R+=`
|
|
34
34
|
`;R+=`let ${Z};
|
|
@@ -57,53 +57,53 @@ Expecting ${_.join(", ")}, got '${this.tokenNames[w]||w}'`;else return`Parse err
|
|
|
57
57
|
|
|
58
58
|
function _setDataSection() {
|
|
59
59
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
60
|
-
}`;return R}generateBinaryOp(U,A,$,E){if((U==="+"||U==="-")&&A.length===1){let[X]=A;return`(${U}${this.generate(X,"value")})`}let[R,_]=A;if(U==="!?"){let X=this.generate(R,"value"),Y=this.generate(_,"value");return`(${X} !== undefined ? ${X} : ${Y})`}if(U==="==")U="===";if(U==="!=")U="!==";return`(${this.generate(R,"value")} ${U} ${this.generate(_,"value")})`}generateModulo(U,A,$,E){let[R,_]=A;return this.helpers.add("modulo"),`modulo(${this.generate(R,"value")}, ${this.generate(_,"value")})`}generateFloorDiv(U,A,$,E){let[R,_]=A;return`Math.floor(${this.generate(R,"value")} / ${this.generate(_,"value")})`}generateFloorDivAssign(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`${X} = Math.floor(${X} / ${Y})`}generateAssignment(U,A,$,E){let[R,_]=A,X=U==="?="?"??=":U,Y=Array.isArray(_)&&(_[0]==="->"||_[0]==="=>"||_[0]==="def");if(R instanceof String&&R.await!==void 0&&!Y){let
|
|
60
|
+
}`;return R}generateBinaryOp(U,A,$,E){if((U==="+"||U==="-")&&A.length===1){let[X]=A;return`(${U}${this.generate(X,"value")})`}let[R,_]=A;if(U==="!?"){let X=this.generate(R,"value"),Y=this.generate(_,"value");return`(${X} !== undefined ? ${X} : ${Y})`}if(U==="==")U="===";if(U==="!=")U="!==";return`(${this.generate(R,"value")} ${U} ${this.generate(_,"value")})`}generateModulo(U,A,$,E){let[R,_]=A;return this.helpers.add("modulo"),`modulo(${this.generate(R,"value")}, ${this.generate(_,"value")})`}generateFloorDiv(U,A,$,E){let[R,_]=A;return`Math.floor(${this.generate(R,"value")} / ${this.generate(_,"value")})`}generateFloorDivAssign(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`${X} = Math.floor(${X} / ${Y})`}generateAssignment(U,A,$,E){let[R,_]=A,X=U==="?="?"??=":U,Y=Array.isArray(_)&&(_[0]==="->"||_[0]==="=>"||_[0]==="def");if(R instanceof String&&R.await!==void 0&&!Y){let H=R.await===!0?"!":"&";throw Error(`Cannot use ${H} sigil in variable declaration '${R.valueOf()}'. Sigils are only for call-sites.`)}if(R instanceof String&&R.await===!0&&Y)this.nextFunctionIsVoid=!0;let D=Array.isArray(R)&&R[0]==="array"&&R.length===1,Z=Array.isArray(R)&&R[0]==="object"&&R.length===1;if(D||Z){let H=this.generate(_,"value");if(Z&&$==="statement")return`(${H})`;return H}if(Array.isArray(R)&&R[0]==="array"){let H=R.slice(1).findIndex((q)=>Array.isArray(q)&&q[0]==="..."||q==="...");if(H!==-1&&H<R.length-2){let q=R.slice(1),O=q.slice(H+1),N=O.length;if(N>0){let P=this.generate(_,"value"),w=q.slice(0,H).map((T)=>{if(T===",")return"";if(typeof T==="string")return T;return this.generate(T,"value")}).join(", "),B=O.map((T)=>{if(T===",")return"";if(typeof T==="string")return T;return this.generate(T,"value")}).join(", ");this.helpers.add("slice"),((T)=>{T.forEach((V)=>{if(V===","||V==="...")return;if(typeof V==="string")this.programVars.add(V);else if(Array.isArray(V)&&V[0]==="..."){if(typeof V[1]==="string")this.programVars.add(V[1])}})})(q);let S=q[H],I=Array.isArray(S)&&S[0]==="..."?S[1]:null,L=[];if(w)L.push(`[${w}] = ${P}`);if(I)L.push(`[...${I}] = ${P}.slice(${H}, -${N})`);return L.push(`[${B}] = slice.call(${P}, -${N})`),L.join(", ")}}}if($==="statement"&&U==="="&&Array.isArray(_)&&(_[0]==="||"||_[0]==="&&")&&_.length===3){let[H,q,O]=_;if(Array.isArray(O)&&(O[0]==="unless"||O[0]==="if")&&O.length===3){let[N,P,K]=O,w=Array.isArray(K)&&K.length===1?K[0]:K,B=[H,q,w],z=this.generate(R,"value"),S=this.generate(P,"value"),I=this.generate(B,"value");if(N==="unless")return`if (!${S}) ${z} = ${I}`;else return`if (${S}) ${z} = ${I}`}}if($==="statement"&&U==="="&&Array.isArray(_)&&_.length===3){let H=_[0],[q,O,N]=_,P=Array.isArray(N)&&N.length===1&&(!Array.isArray(N[0])||N[0][0]!=="block");if((H==="unless"||H==="if")&&P){let K=N;if(Array.isArray(N)&&N.length===1)K=N[0];let w=this.generate(R,"value"),B=this.unwrapLogical(this.generate(O,"value")),z=this.generate(K,"value");if(H==="unless"){if(B.includes(" ")||B.includes("===")||B.includes("!==")||B.includes(">")||B.includes("<")||B.includes("&&")||B.includes("||"))B=`(${B})`;return`if (!${B}) ${w} = ${z}`}else return`if (${B}) ${w} = ${z}`}}let M;if(R instanceof String&&R.await!==void 0)M=R.valueOf();else if(typeof R==="string"&&this.reactiveVars?.has(R))M=`${R}.value`;else this.suppressReactiveUnwrap=!0,M=this.generate(R,"value"),this.suppressReactiveUnwrap=!1;let Q=this.generate(_,"value");if(!(Array.isArray(_)&&_[0]==="object"))Q=this.unwrap(Q);let J=$==="value",W=$==="statement"&&Array.isArray(R)&&R[0]==="object";if(J||W)return`(${M} ${X} ${Q})`;return`${M} ${X} ${Q}`}generatePropertyAccess(U,A,$,E){let[R,_]=A;this.suppressReactiveUnwrap=!0;let X=this.generate(R,"value");this.suppressReactiveUnwrap=!1;let Y=f.NUMBER_LITERAL_REGEX.test(X),F=Array.isArray(R)&&R[0]==="object",D=Array.isArray(R)&&(R[0]==="await"||R[0]==="yield"),M=Y||F||D?`(${X})`:X;if(_ instanceof String&&_.await===!0){let G=_.valueOf();return`await ${M}.${G}()`}let Q=_ instanceof String?_.valueOf():_;return`${M}.${Q}`}generateOptionalProperty(U,A,$,E){let[R,_]=A;return`${this.generate(R,"value")}?.${_}`}generatePrototype(U,A,$,E){let[R,_]=A,X=this.generate(R,"value");if(_==="prototype")return`${X}.prototype`;let Y=_ instanceof String?_.valueOf():_;return`${X}.prototype.${Y}`}generateOptionalPrototype(U,A,$,E){let[R,_]=A,X=this.generate(R,"value");if(_==="prototype")return`(${X} != null ? ${X}.prototype : undefined)`;return`(${X} != null ? ${X}.prototype.${_} : undefined)`}generateRegexIndex(U,A,$,E){let[R,_,X]=A;this.helpers.add("toSearchable"),this.programVars.add("_");let Y=this.generate(R,"value"),F=this.generate(_,"value"),D=X!==null?this.generate(X,"value"):"0",M=F.includes("/m")?", true":"";return`(_ = toSearchable(${Y}${M}).match(${F})) && _[${D}]`}generateIndexAccess(U,A,$,E){let[R,_]=A;if(Array.isArray(_)&&(_[0]===".."||_[0]==="...")){let Y=_[0]==="..",F=this.generate(R,"value"),[D,Z]=_.slice(1);if(D===null&&Z===null)return`${F}.slice()`;else if(D===null){if(Y&&this.isNegativeOneLiteral(Z))return`${F}.slice(0)`;let M=this.generate(Z,"value");if(Y)return`${F}.slice(0, +${M} + 1 || 9e9)`;else return`${F}.slice(0, ${M})`}else if(Z===null){let M=this.generate(D,"value");return`${F}.slice(${M})`}else{let M=this.generate(D,"value");if(Y&&this.isNegativeOneLiteral(Z))return`${F}.slice(${M})`;let Q=this.generate(Z,"value");if(Y)return`${F}.slice(${M}, +${Q} + 1 || 9e9)`;else return`${F}.slice(${M}, ${Q})`}}let X=this.unwrap(this.generate(_,"value"));return`${this.generate(R,"value")}[${X}]`}generateSoakIndex(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`(${X} != null ? ${X}[${Y}] : undefined)`}generateOptIndex(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`${X}?.[${Y}]`}generateOptCall(U,A,$,E){let[R,..._]=A,X=this.generate(R,"value"),Y=_.map((F)=>this.generate(F,"value")).join(", ");return`${X}?.(${Y})`}generateDef(U,A,$,E){let[R,_,X]=A,Y=R instanceof String&&R.await===!0,F=R instanceof String?R.valueOf():R,D=this.generateParamList(_),Z=this.generateFunctionBody(X,_,Y),M=this.containsAwait(X),Q=this.containsYield(X);return`${M?"async ":""}function${Q?"*":""} ${F}(${D}) ${Z}`}generateThinArrow(U,A,$,E){let[R,_]=A,X=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(R),F=this.generateFunctionBody(_,R,X),D=this.containsAwait(_),Z=this.containsYield(_),G=`${D?"async ":""}function${Z?"*":""}(${Y}) ${F}`;return $==="value"?`(${G})`:G}generateFatArrow(U,A,$,E){let[R,_]=A,X=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(R),D=R.length===1&&typeof R[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,M=this.containsAwait(_)?"async ":"";if(!X){if(Array.isArray(_)&&_[0]==="block"&&_.length===2){let G=_[1];if(!Array.isArray(G)||G[0]!=="return")return`${M}${D} => ${this.generate(G,"value")}`}if(!Array.isArray(_)||_[0]!=="block")return`${M}${D} => ${this.generate(_,"value")}`}let Q=this.generateFunctionBody(_,R,X);return`${M}${D} => ${Q}`}generateReturn(U,A,$,E){if(A.length===0)return"return";let[R]=A;if(this.sideEffectOnly)return"return";if(Array.isArray(R)&&R[0]==="unless"){let[,_,X]=R,Y=Array.isArray(X)&&X.length===1?X[0]:X;return`if (!${this.generate(_,"value")}) return ${this.generate(Y,"value")}`}if(Array.isArray(R)&&R[0]==="if"){let[,_,X,...Y]=R;if(Y.length===0){let F=Array.isArray(X)&&X.length===1?X[0]:X;return`if (${this.generate(_,"value")}) return ${this.generate(F,"value")}`}}if(Array.isArray(R)&&R[0]==="new"&&Array.isArray(R[1])&&R[1][0]==="unless"){let[,_]=R,[,X,Y]=_,F=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (!${this.generate(X,"value")}) return ${this.generate(["new",F],"value")}`}return`return ${this.generate(R,"value")}`}generateSignal(U,A,$,E){let[R,_]=A;this.usesReactivity=!0;let X=typeof R==="string"?R:R.valueOf(),Y=this.generate(_,"value");if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(X),`const ${X} = __signal(${Y})`}generateDerived(U,A,$,E){let[R,_]=A;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let X=typeof R==="string"?R:R.valueOf();this.reactiveVars.add(X);let Y=this.generate(_,"value");return`const ${X} = __computed(() => ${Y})`}generateReadonly(U,A,$,E){let[R,_]=A,X=typeof R==="string"?R:R.valueOf(),Y=this.generate(_,"value");return`const ${X} = ${Y}`}generateEffect(U,A,$,E){let[R]=A;this.usesReactivity=!0;let _;if(Array.isArray(R)&&R[0]==="block"){let X=R.slice(1);_=`{
|
|
61
61
|
${this.withIndent(()=>this.formatStatements(X)).join(`
|
|
62
62
|
`)}
|
|
63
|
-
${this.indent()}}`}else if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>"))return`__effect(${this.generate(R,"value")})`;else _=`{ ${this.generate(R,"value")}; }`;return`__effect(() => ${_})`}isHtmlTag(U){let A=U.split("#")[0];return N1.has(A.toLowerCase())}isComponent(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)}parseEventHandler(U,A){if(Array.isArray(U)&&U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return{eventName:U[2],modifiers:[],handler:this.generate(A,"value")};if(Array.isArray(U)&&U[0]==="computed"){let{eventName:$,modifiers:E}=this.extractEventChain(U[1]);if($)return{eventName:$,modifiers:E,handler:this.generate(A,"value")}}return null}extractEventChain(U){let A=[],$=U;while(Array.isArray($)&&$[0]==="."){let[,E,R]=$;if(Array.isArray(E)&&E[0]==="."&&E[1]==="this")return A.unshift(R),{eventName:E[2],modifiers:A};if(typeof R==="string")A.unshift(R);$=E}if(Array.isArray($)&&$[0]==="."&&$[1]==="this")return{eventName:$[2],modifiers:A};return{eventName:null,modifiers:[]}}wrapEventHandler(U,A){if(A.length===0)return U;let $=[],E=[];for(let _ of A)switch(_){case"prevent":E.push("e.preventDefault()");break;case"stop":E.push("e.stopPropagation()");break;case"self":$.push("if (e.target !== e.currentTarget) return");break;case"enter":$.push("if (e.key !== 'Enter') return");break;case"escape":case"esc":$.push("if (e.key !== 'Escape') return");break;case"tab":$.push("if (e.key !== 'Tab') return");break;case"space":$.push("if (e.key !== ' ') return");break;case"up":$.push("if (e.key !== 'ArrowUp') return");break;case"down":$.push("if (e.key !== 'ArrowDown') return");break;case"left":$.push("if (e.key !== 'ArrowLeft') return");break;case"right":$.push("if (e.key !== 'ArrowRight') return");break;case"ctrl":$.push("if (!e.ctrlKey) return");break;case"alt":$.push("if (!e.altKey) return");break;case"shift":$.push("if (!e.shiftKey) return");break;case"meta":$.push("if (!e.metaKey) return");break}return`(e) => { ${[...$,...E,`(${U})(e)`].join("; ")}; }`}static BIND_PREFIX="__bind_";static BIND_SUFFIX="__";static extractInputType(U){for(let A of U){if(!Array.isArray(A))continue;let $=A[0]instanceof String?A[0].valueOf():A[0],E=A[1]instanceof String?A[1].valueOf():A[1];if($==="type"&&typeof E==="string")return E.replace(/^["']|["']$/g,"")}return null}parseBindingDirective(U,A,$,E){let R;if(typeof U==="string"&&U.startsWith(f.BIND_PREFIX)&&U.endsWith(f.BIND_SUFFIX))R=U.slice(f.BIND_PREFIX.length,-f.BIND_SUFFIX.length);else if(Array.isArray(U)&&U[0]==="computed"){let F=U[1];if(!Array.isArray(F)||F[0]!==".")return null;let[,D,Z]=F;if(!Array.isArray(D)||D[0]!=="."||D[1]!=="this"||D[2]!=="bind")return null;R=typeof Z==="string"?Z:String(Z)}else return null;let _=this.generate(A,"value"),X,Y;if(R==="checked")X="onchange",Y="e.target.checked";else if(R==="value"){if($==="select")X="onchange";else X="oninput";if(E==="number"||E==="range")Y="e.target.valueAsNumber";else Y="e.target.value"}else X="oninput",Y=`e.target.${R}`;return{prop:R,event:X,valueExpr:_,handler:`(e) => ${_} = ${Y}`}}generateRender(U,A,$,E){let[R]=A;if(this.usesTemplates=!0,!Array.isArray(R)||R[0]!=="block")return this.generateTemplateElement(R);let _=R.slice(1);if(_.length===0)return"null";if(_.length===1)return this.generateTemplateElement(_[0]);return`frag(${_.map((Y)=>this.generateTemplateElement(Y)).join(", ")})`}generateStyle(U,A,$,E){return"/* style block placeholder */"}generateComponent(U,A,$,E){let[R,_]=A,X=typeof R==="string"?R:this.generate(R,"value");this.usesTemplates=!0;let Y=Array.isArray(_)&&_[0]==="block"?_.slice(1):[],F=[],D=[],Z=[],M=[],Q=[],G=[],J=[],W=null,
|
|
63
|
+
${this.indent()}}`}else if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>"))return`__effect(${this.generate(R,"value")})`;else _=`{ ${this.generate(R,"value")}; }`;return`__effect(() => ${_})`}isHtmlTag(U){let A=U.split("#")[0];return N1.has(A.toLowerCase())}isComponent(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)}parseEventHandler(U,A){if(Array.isArray(U)&&U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return{eventName:U[2],modifiers:[],handler:this.generate(A,"value")};if(Array.isArray(U)&&U[0]==="computed"){let{eventName:$,modifiers:E}=this.extractEventChain(U[1]);if($)return{eventName:$,modifiers:E,handler:this.generate(A,"value")}}return null}extractEventChain(U){let A=[],$=U;while(Array.isArray($)&&$[0]==="."){let[,E,R]=$;if(Array.isArray(E)&&E[0]==="."&&E[1]==="this")return A.unshift(R),{eventName:E[2],modifiers:A};if(typeof R==="string")A.unshift(R);$=E}if(Array.isArray($)&&$[0]==="."&&$[1]==="this")return{eventName:$[2],modifiers:A};return{eventName:null,modifiers:[]}}wrapEventHandler(U,A){if(A.length===0)return U;let $=[],E=[];for(let _ of A)switch(_){case"prevent":E.push("e.preventDefault()");break;case"stop":E.push("e.stopPropagation()");break;case"self":$.push("if (e.target !== e.currentTarget) return");break;case"enter":$.push("if (e.key !== 'Enter') return");break;case"escape":case"esc":$.push("if (e.key !== 'Escape') return");break;case"tab":$.push("if (e.key !== 'Tab') return");break;case"space":$.push("if (e.key !== ' ') return");break;case"up":$.push("if (e.key !== 'ArrowUp') return");break;case"down":$.push("if (e.key !== 'ArrowDown') return");break;case"left":$.push("if (e.key !== 'ArrowLeft') return");break;case"right":$.push("if (e.key !== 'ArrowRight') return");break;case"ctrl":$.push("if (!e.ctrlKey) return");break;case"alt":$.push("if (!e.altKey) return");break;case"shift":$.push("if (!e.shiftKey) return");break;case"meta":$.push("if (!e.metaKey) return");break}return`(e) => { ${[...$,...E,`(${U})(e)`].join("; ")}; }`}static BIND_PREFIX="__bind_";static BIND_SUFFIX="__";static extractInputType(U){for(let A of U){if(!Array.isArray(A))continue;let $=A[0]instanceof String?A[0].valueOf():A[0],E=A[1]instanceof String?A[1].valueOf():A[1];if($==="type"&&typeof E==="string")return E.replace(/^["']|["']$/g,"")}return null}parseBindingDirective(U,A,$,E){let R;if(typeof U==="string"&&U.startsWith(f.BIND_PREFIX)&&U.endsWith(f.BIND_SUFFIX))R=U.slice(f.BIND_PREFIX.length,-f.BIND_SUFFIX.length);else if(Array.isArray(U)&&U[0]==="computed"){let F=U[1];if(!Array.isArray(F)||F[0]!==".")return null;let[,D,Z]=F;if(!Array.isArray(D)||D[0]!=="."||D[1]!=="this"||D[2]!=="bind")return null;R=typeof Z==="string"?Z:String(Z)}else return null;let _=this.generate(A,"value"),X,Y;if(R==="checked")X="onchange",Y="e.target.checked";else if(R==="value"){if($==="select")X="onchange";else X="oninput";if(E==="number"||E==="range")Y="e.target.valueAsNumber";else Y="e.target.value"}else X="oninput",Y=`e.target.${R}`;return{prop:R,event:X,valueExpr:_,handler:`(e) => ${_} = ${Y}`}}generateRender(U,A,$,E){let[R]=A;if(this.usesTemplates=!0,!Array.isArray(R)||R[0]!=="block")return this.generateTemplateElement(R);let _=R.slice(1);if(_.length===0)return"null";if(_.length===1)return this.generateTemplateElement(_[0]);return`frag(${_.map((Y)=>this.generateTemplateElement(Y)).join(", ")})`}generateStyle(U,A,$,E){return"/* style block placeholder */"}generateComponent(U,A,$,E){let[R,_]=A,X=typeof R==="string"?R:this.generate(R,"value");this.usesTemplates=!0;let Y=Array.isArray(_)&&_[0]==="block"?_.slice(1):[],F=[],D=[],Z=[],M=[],Q=[],G=[],J=[],W=null,H=null,q=new Set,O=new Set;for(let B of Y){if(!Array.isArray(B))continue;let[z]=B;if(z==="prop")F.push(B),q.add(B[1]);else if(z==="prop-rest")F.push(B),q.add(B[1]);else if(z==="="&&typeof B[1]==="string"){let S=B[1];if(["mounted","unmounted","updated"].includes(S))G.push(B);else D.push(B),q.add(S),O.add(S)}else if(z==="signal")D.push(B),q.add(B[1]),O.add(B[1]);else if(z==="derived")Z.push(B),q.add(B[1]),O.add(B[1]);else if(z==="readonly")M.push(B),q.add(B[1]);else if(z==="effect")J.push(B);else if(z==="render")W=B;else if(z==="style")H=B;else if(z==="object"&&B.length>=2){Q.push(B);for(let S=1;S<B.length;S++)if(Array.isArray(B[S]))q.add(B[S][0])}}let N=this.componentMembers,P=this.reactiveMembers;this.componentMembers=q,this.reactiveMembers=O;let K=[],w="";if(K.push(`class ${X} {`),K.push(" constructor(props = {}) {"),K.push(" // Context API: track parent component"),K.push(" this._parent = __currentComponent;"),K.push(" const __prevComponent = __currentComponent;"),K.push(" __currentComponent = this;"),K.push(""),F.length>0){for(let B of F)if(B[0]==="prop"){let z=B[1];if(B.length===2)K.push(` if (props.${z} === undefined) throw new Error('Required prop: ${z}');`),K.push(` this.${z} = props.${z};`);else if(B[2]==="optional")K.push(` this.${z} = props.${z};`);else{let S=this.generateInComponent(B[2],"value");K.push(` this.${z} = props.${z} ?? ${S};`)}}else if(B[0]==="prop-rest"){let z=B[1],S=F.filter((I)=>I[0]==="prop").map((I)=>I[1]);K.push(` const { ${S.join(", ")}, ...${z} } = props;`),K.push(` this.${z} = ${z};`)}}for(let[,B,z]of M){let S=this.generateInComponent(z,"value");K.push(` this.${B} = ${S};`)}this.usesReactivity=!0;for(let B of D)if(B[0]==="signal"){let[,z,S]=B,I=this.generateInComponent(S,"value");K.push(` this.${z} = __signal(${I});`)}else{let[,z,S]=B,I=this.generateInComponent(S,"value");K.push(` this.${z} = __signal(${I});`)}for(let[,B,z]of Z){let S=this.generateInComponent(z,"value");K.push(` this.${B} = __computed(() => ${S});`)}for(let B of J){let z=B[1],S=this.generateInComponent(z,"value");K.push(` __effect(${S});`)}K.push(""),K.push(" __currentComponent = __prevComponent;"),K.push(" }");for(let B of Q)for(let z=1;z<B.length;z++){let[S,I]=B[z];if(Array.isArray(I)&&(I[0]==="->"||I[0]==="=>")){let[,L,T]=I,V=Array.isArray(L)?L.map((u)=>this.formatParam(u)).join(", "):"",y=this.generateInComponent(T,"value");K.push(` ${S}(${V}) { return ${y}; }`)}}for(let[,B,z]of G)if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let[,S,I]=z,L=this.generateInComponent(I,"value");K.push(` ${B}() { return ${L}; }`)}if(W){let B=W[1],z=this.generateFineGrainedRender(B);if(z.blockFactories.length>0)w=z.blockFactories.join(`
|
|
64
64
|
|
|
65
65
|
`)+`
|
|
66
66
|
|
|
67
67
|
`;K.push(" _create() {");for(let S of z.createLines)K.push(` ${S}`);if(K.push(` return ${z.rootVar};`),K.push(" }"),z.setupLines.length>0){K.push(" _setup() {");for(let S of z.setupLines)K.push(` ${S}`);K.push(" }")}}return K.push(" mount(target) {"),K.push(' if (typeof target === "string") target = document.querySelector(target);'),K.push(" this._target = target;"),K.push(" this._root = this._create();"),K.push(" target.appendChild(this._root);"),K.push(" if (this._setup) this._setup();"),K.push(" if (this.mounted) this.mounted();"),K.push(" return this;"),K.push(" }"),K.push(" unmount() {"),K.push(" if (this.unmounted) this.unmounted();"),K.push(" if (this._root && this._root.parentNode) {"),K.push(" this._root.parentNode.removeChild(this._root);"),K.push(" }"),K.push(" }"),K.push("}"),this.componentMembers=N,this.reactiveMembers=P,w+K.join(`
|
|
68
68
|
`)}generateInComponent(U,A){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`this.${U}.value`;if(Array.isArray(U)&&this.reactiveMembers){let $=this.transformComponentMembers(U);return this.generate($,A)}return this.generate(U,A)}transformComponentMembers(U){if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".","this",U],"value"];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let A=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(A))return[".",U,"value"];return U}return U.map((A)=>this.transformComponentMembers(A))}generateComponentRender(U){if(!Array.isArray(U)||U[0]!=="block")return this.generateComponentTemplateElement(U);let A=U.slice(1);if(A.length===0)return"null";if(A.length===1)return this.generateComponentTemplateElement(A[0]);return`frag(${A.map((E)=>this.generateComponentTemplateElement(E)).join(", ")})`}generateFineGrainedRender(U){this._fgElementCount=0,this._fgTextCount=0,this._fgBlockCount=0,this._fgCreateLines=[],this._fgSetupLines=[],this._fgBlockFactories=[];let A=Array.isArray(U)&&U[0]==="block"?U.slice(1):[U],$;if(A.length===0)$="null";else if(A.length===1)$=this.fgProcessElement(A[0]);else{$=this.fgNewElement("frag"),this._fgCreateLines.push(`${$} = document.createDocumentFragment();`);for(let E of A){let R=this.fgProcessElement(E);this._fgCreateLines.push(`${$}.appendChild(${R});`)}}return{createLines:this._fgCreateLines,setupLines:this._fgSetupLines,blockFactories:this._fgBlockFactories,rootVar:$}}fgNewBlock(){return`create_block_${this._fgBlockCount++}`}fgNewElement(U="el"){return`this._${U}${this._fgElementCount++}`}fgNewText(){return`this._t${this._fgTextCount++}`}fgProcessElement(U){if(typeof U==="string"||U instanceof String){let $=U.valueOf();if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){let R=this.fgNewText();return this._fgCreateLines.push(`${R} = document.createTextNode(${$});`),R}if(this.reactiveMembers&&this.reactiveMembers.has($)){let R=this.fgNewText();return this._fgCreateLines.push(`${R} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${R}.data = this.${$}.value; });`),R}let E=this.fgNewElement();return this._fgCreateLines.push(`${E} = document.createElement('${$}');`),E}if(Array.isArray(U)){let[$,...E]=U,R=typeof $==="string"?$:$ instanceof String?$.valueOf():null;if(R&&this.isComponent(R))return this.fgProcessComponent(R,E);if(R&&this.isHtmlTag(R))return this.fgProcessTag(R,[],E);if(R==="."){let[,Y,F]=U;if(Y==="this"&&typeof F==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(F)){let G=this.fgNewText();return this._fgCreateLines.push(`${G} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${G}.data = this.${F}.value; });`),G}if(this.componentMembers&&this.componentMembers.has(F)){let G=this.fgNewElement("slot");return this._fgCreateLines.push(`${G} = this.${F} instanceof Node ? this.${F} : (this.${F} != null ? document.createTextNode(String(this.${F})) : document.createComment(''));`),G}}let{tag:D,classes:Z}=this.collectTemplateClasses(U);if(D&&this.isHtmlTag(D))return this.fgProcessTag(D,Z,[]);let M=this.fgNewText(),Q=this.generateInComponent(U,"value");return this._fgCreateLines.push(`${M} = document.createTextNode(String(${Q}));`),M}if(Array.isArray($)){if(Array.isArray($[0])&&$[0][0]==="."&&($[0][2]==="__cx__"||$[0][2]instanceof String&&$[0][2].valueOf()==="__cx__")){let D=typeof $[0][1]==="string"?$[0][1]:$[0][1].valueOf(),Z=$.slice(1);return this.fgProcessTagWithDynamicClass(D,Z,E)}let{tag:Y,classes:F}=this.collectTemplateClasses($);if(Y&&this.isHtmlTag(Y)){if(F.length===1&&F[0]==="__cx__")return this.fgProcessTagWithDynamicClass(Y,E,[]);return this.fgProcessTag(Y,F,E)}}if(R==="->"||R==="=>"){let[Y,F]=E;return this.fgProcessBlock(F)}if(R==="if")return this.fgProcessConditional(U);if(R==="for"||R==="for-in"||R==="for-of")return this.fgProcessLoop(U);let _=this.fgNewText(),X=this.generateInComponent(U,"value");if(this.fgHasReactiveDeps(U))this._fgCreateLines.push(`${_} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${_}.data = ${X}; });`);else this._fgCreateLines.push(`${_} = document.createTextNode(String(${X}));`);return _}let A=this.fgNewElement("c");return this._fgCreateLines.push(`${A} = document.createComment('unknown');`),A}fgProcessTagWithDynamicClass(U,A,$){let E=this.fgNewElement();if(this._fgCreateLines.push(`${E} = document.createElement('${U}');`),A.length>0){let R=A.map((X)=>this.generateInComponent(X,"value")).join(' + " " + ');if(A.some((X)=>this.fgHasReactiveDeps(X)))this._fgSetupLines.push(`__effect(() => { ${E}.className = ${R}; });`);else this._fgCreateLines.push(`${E}.className = ${R};`)}for(let R of $){let _=Array.isArray(R)?R[0]instanceof String?R[0].valueOf():R[0]:null;if(_==="->"||_==="=>"){let X=R[2];if((Array.isArray(X)?X[0]instanceof String?X[0].valueOf():X[0]:null)==="block")for(let F of X.slice(1)){let D=this.fgProcessElement(F);this._fgCreateLines.push(`${E}.appendChild(${D});`)}else if(X){let F=this.fgProcessElement(X);this._fgCreateLines.push(`${E}.appendChild(${F});`)}}else if(Array.isArray(R)&&R[0]==="object")this.fgProcessAttributes(E,R);else if(typeof R==="string"||R instanceof String){let X=this.fgNewText(),Y=R.valueOf();if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`"))this._fgCreateLines.push(`${X} = document.createTextNode(${Y});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Y))this._fgCreateLines.push(`${X} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${X}.data = this.${Y}.value; });`);else this._fgCreateLines.push(`${X} = document.createTextNode(${this.generateInComponent(R,"value")});`);this._fgCreateLines.push(`${E}.appendChild(${X});`)}else{let X=this.fgProcessElement(R);this._fgCreateLines.push(`${E}.appendChild(${X});`)}}return E}fgProcessTag(U,A,$){let E=this.fgNewElement();if(this._fgCreateLines.push(`${E} = document.createElement('${U}');`),A.length>0)this._fgCreateLines.push(`${E}.className = '${A.join(" ")}';`);for(let R of $)if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let _=R[2];if(Array.isArray(_)&&_[0]==="block")for(let X of _.slice(1)){let Y=this.fgProcessElement(X);this._fgCreateLines.push(`${E}.appendChild(${Y});`)}else if(_){let X=this.fgProcessElement(_);this._fgCreateLines.push(`${E}.appendChild(${X});`)}}else if(Array.isArray(R)&&R[0]==="object")this.fgProcessAttributes(E,R);else if(typeof R==="string"){let _=this.fgNewText();if(R.startsWith('"')||R.startsWith("'")||R.startsWith("`"))this._fgCreateLines.push(`${_} = document.createTextNode(${R});`);else if(this.reactiveMembers&&this.reactiveMembers.has(R))this._fgCreateLines.push(`${_} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${_}.data = this.${R}.value; });`);else if(this.componentMembers&&this.componentMembers.has(R))this._fgCreateLines.push(`${_} = document.createTextNode(String(this.${R}));`);else this._fgCreateLines.push(`${_} = document.createTextNode(String(${R}));`);this._fgCreateLines.push(`${E}.appendChild(${_});`)}else if(R instanceof String){let _=R.valueOf(),X=this.fgNewText();if(_.startsWith('"')||_.startsWith("'")||_.startsWith("`"))this._fgCreateLines.push(`${X} = document.createTextNode(${_});`);else if(this.reactiveMembers&&this.reactiveMembers.has(_))this._fgCreateLines.push(`${X} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${X}.data = this.${_}.value; });`);else this._fgCreateLines.push(`${X} = document.createTextNode(String(${_}));`);this._fgCreateLines.push(`${E}.appendChild(${X});`)}else if(R){let _=this.fgProcessElement(R);this._fgCreateLines.push(`${E}.appendChild(${_});`)}return E}fgHasReactiveDeps(U){if(!this.reactiveMembers||this.reactiveMembers.size===0)return!1;if(typeof U==="string")return this.reactiveMembers.has(U);if(!Array.isArray(U))return!1;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return this.reactiveMembers.has(U[2]);for(let A of U)if(this.fgHasReactiveDeps(A))return!0;return!1}fgProcessAttributes(U,A){let $=f.extractInputType(A.slice(1));for(let E=1;E<A.length;E++){let[R,_]=A[E];if(Array.isArray(R)&&R[0]==="."&&R[1]==="this"){let X=R[2],Y=this.generateInComponent(_,"value");this._fgCreateLines.push(`${U}.addEventListener('${X}', (e) => (${Y})(e));`);continue}if(typeof R==="string"){if(R.startsWith("__bind_")&&R.endsWith("__")){let Y=R.slice(7,-2),F=this.generateInComponent(_,"value"),D,Z;if(Y==="checked")D="change",Z="e.target.checked";else if(D="input",$==="number"||$==="range")Z="e.target.valueAsNumber";else Z="e.target.value";this._fgSetupLines.push(`__effect(() => { ${U}.${Y} = ${F}; });`),this._fgCreateLines.push(`${U}.addEventListener('${D}', (e) => ${F} = ${Z});`);continue}if(this.fgHasReactiveDeps(_)){let Y=this.generateInComponent(_,"value");this._fgSetupLines.push(`__effect(() => { ${U}.setAttribute('${R}', ${Y}); });`)}else{let Y=this.generateInComponent(_,"value");this._fgCreateLines.push(`${U}.setAttribute('${R}', ${Y});`)}}}}fgProcessBlock(U){if(!Array.isArray(U)||U[0]!=="block")return this.fgProcessElement(U);let A=U.slice(1);if(A.length===0){let E=this.fgNewElement("empty");return this._fgCreateLines.push(`${E} = document.createComment('');`),E}if(A.length===1)return this.fgProcessElement(A[0]);let $=this.fgNewElement("frag");this._fgCreateLines.push(`${$} = document.createDocumentFragment();`);for(let E of A){let R=this.fgProcessElement(E);this._fgCreateLines.push(`${$}.appendChild(${R});`)}return $}fgProcessConditional(U){let[,A,$,E]=U,R=this.fgNewElement("anchor");this._fgCreateLines.push(`${R} = document.createComment('if');`);let _=this.generateInComponent(A,"value"),X=this.fgNewBlock();this.fgGenerateConditionBlock(X,$);let Y=null;if(E)Y=this.fgNewBlock(),this.fgGenerateConditionBlock(Y,E);let F=[];if(F.push(`// Conditional: ${X}${Y?" / "+Y:""}`),F.push("{"),F.push(` const anchor = ${R};`),F.push(" let currentBlock = null;"),F.push(" let showing = null; // 'then', 'else', or null"),F.push(" __effect(() => {"),F.push(` const show = !!(${_});`),F.push(` const want = show ? 'then' : ${E?"'else'":"null"};`),F.push(" if (want === showing) return;"),F.push(""),F.push(" // Destroy old block"),F.push(" if (currentBlock) {"),F.push(" currentBlock.d(true);"),F.push(" currentBlock = null;"),F.push(" }"),F.push(" showing = want;"),F.push(""),F.push(" // Create new block"),F.push(" if (want === 'then') {"),F.push(` currentBlock = ${X}(this);`),F.push(" currentBlock.c();"),F.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),F.push(" currentBlock.p(this);"),F.push(" }"),E)F.push(" if (want === 'else') {"),F.push(` currentBlock = ${Y}(this);`),F.push(" currentBlock.c();"),F.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),F.push(" currentBlock.p(this);"),F.push(" }");return F.push(" });"),F.push("}"),this._fgSetupLines.push(F.join(`
|
|
69
69
|
`)),R}fgGenerateConditionBlock(U,A){let $=this._fgCreateLines,E=this._fgSetupLines;this._fgCreateLines=[],this._fgSetupLines=[];let R=this.fgProcessBlock(A),_=this._fgCreateLines,X=this._fgSetupLines;this._fgCreateLines=$,this._fgSetupLines=E;let Y=(M)=>{return M.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g,"$1")},F=[];F.push(`function ${U}(ctx) {`),F.push(" // Local DOM references");let D=new Set;for(let M of _){let Q=M.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);if(Q)D.add(Q[1])}if(D.size>0)F.push(` let ${[...D].join(", ")};`);let Z=X.length>0;if(Z)F.push(" let disposers = [];");F.push(" return {"),F.push(" c() {");for(let M of _)F.push(` ${Y(M)}`);if(F.push(" },"),F.push(" m(target, anchor) {"),F.push(` target.insertBefore(${Y(R)}, anchor);`),F.push(" },"),F.push(" p(ctx) {"),Z){F.push(" disposers.forEach(d => d());"),F.push(" disposers = [];");for(let M of X){let G=Y(M).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");F.push(` ${G}`)}}if(F.push(" },"),F.push(" d(detaching) {"),Z)F.push(" disposers.forEach(d => d());");F.push(` if (detaching) ${Y(R)}.remove();`),F.push(" }"),F.push(" };"),F.push("}"),this._fgBlockFactories.push(F.join(`
|
|
70
|
-
`))}fgProcessLoop(U){let[A,$,E,R,_,X]=U,Y=this.fgNewBlock(),F=this.fgNewElement("anchor");this._fgCreateLines.push(`${F} = document.createComment('for');`);let D=Array.isArray($)?$:[$],Z=D[0],M=D[1]||"i",Q=this.generateInComponent(E,"value"),G=Z;if(Array.isArray(X)&&X[0]==="block"&&X.length>1){let S=X[1];if(Array.isArray(S))for(let I of S){if(Array.isArray(I)&&I[0]==="object")for(let L=1;L<I.length;L++){let[T,V]=I[L];if(T==="key"){G=this.generate(V,"value");break}}if(G!==Z)break}}let J=this._fgCreateLines,W=this._fgSetupLines,
|
|
70
|
+
`))}fgProcessLoop(U){let[A,$,E,R,_,X]=U,Y=this.fgNewBlock(),F=this.fgNewElement("anchor");this._fgCreateLines.push(`${F} = document.createComment('for');`);let D=Array.isArray($)?$:[$],Z=D[0],M=D[1]||"i",Q=this.generateInComponent(E,"value"),G=Z;if(Array.isArray(X)&&X[0]==="block"&&X.length>1){let S=X[1];if(Array.isArray(S))for(let I of S){if(Array.isArray(I)&&I[0]==="object")for(let L=1;L<I.length;L++){let[T,V]=I[L];if(T==="key"){G=this.generate(V,"value");break}}if(G!==Z)break}}let J=this._fgCreateLines,W=this._fgSetupLines,H=this._fgBlockFactories;this._fgCreateLines=[],this._fgSetupLines=[];let q=this.fgProcessBlock(X),O=this._fgCreateLines,N=this._fgSetupLines;this._fgCreateLines=J,this._fgSetupLines=W;let P=(S)=>{return S.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g,"$1")},K=[];K.push(`function ${Y}(ctx, ${Z}, ${M}) {`),K.push(" // Local DOM references (not on this)");let w=new Set;for(let S of O){let I=S.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);if(I)w.add(I[1])}if(w.size>0)K.push(` let ${[...w].join(", ")};`);let B=N.length>0;if(B)K.push(" let disposers = [];");K.push(" return {"),K.push(" c() {");for(let S of O)K.push(` ${P(S)}`);if(K.push(" },"),K.push(" m(target, anchor) {"),K.push(` target.insertBefore(${P(q)}, anchor);`),K.push(" },"),K.push(` p(ctx, ${Z}, ${M}) {`),B){K.push(" // Dispose old effects and create new ones with updated values"),K.push(" disposers.forEach(d => d());"),K.push(" disposers = [];");for(let S of N){let L=P(S).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");K.push(` ${L}`)}}if(K.push(" },"),K.push(" d(detaching) {"),B)K.push(" disposers.forEach(d => d());");K.push(` if (detaching) ${P(q)}.remove();`),K.push(" }"),K.push(" };"),K.push("}"),this._fgBlockFactories.push(K.join(`
|
|
71
71
|
`));let z=[];return z.push(`// Loop: ${Y}`),z.push("{"),z.push(` const anchor = ${F};`),z.push(" const map = new Map(); // key -> block"),z.push(" let keys = [];"),z.push(" __effect(() => {"),z.push(` const items = ${Q};`),z.push(" const parent = anchor.parentNode;"),z.push(" const newKeys = [];"),z.push(" const newMap = new Map();"),z.push(""),z.push(" // Create/update blocks"),z.push(` for (let ${M} = 0; ${M} < items.length; ${M}++) {`),z.push(` const ${Z} = items[${M}];`),z.push(` const key = ${G};`),z.push(" newKeys.push(key);"),z.push(" let block = map.get(key);"),z.push(" if (block) {"),z.push(" // Update existing block"),z.push(` block.p(this, ${Z}, ${M});`),z.push(" } else {"),z.push(" // Create new block"),z.push(` block = ${Y}(this, ${Z}, ${M});`),z.push(" block.c();"),z.push(" block.m(parent, anchor);"),z.push(` block.p(this, ${Z}, ${M}); // Wire up effects`),z.push(" }"),z.push(" newMap.set(key, block);"),z.push(" }"),z.push(""),z.push(" // Remove deleted blocks"),z.push(" for (const [key, block] of map) {"),z.push(" if (!newMap.has(key)) block.d(true);"),z.push(" }"),z.push(""),z.push(" // Update tracking (simple swap)"),z.push(" map.clear();"),z.push(" for (const [k, v] of newMap) map.set(k, v);"),z.push(" keys = newKeys;"),z.push(" });"),z.push("}"),this._fgSetupLines.push(z.join(`
|
|
72
|
-
`)),F}fgProcessComponent(U,A){let $=this.fgNewElement("inst"),E=this.fgNewElement("el"),{propsCode:R,childrenVar:_,childrenSetupLines:X}=this.fgBuildComponentProps(A);this._fgCreateLines.push(`${$} = new ${U}(${R});`),this._fgCreateLines.push(`${E} = ${$}._create();`),this._fgSetupLines.push(`if (${$}._setup) ${$}._setup();`);for(let Y of X)this._fgSetupLines.push(Y);return E}fgBuildComponentProps(U){let A=[],$=null,E=[];for(let _ of U)if(Array.isArray(_)&&_[0]==="object")for(let X=1;X<_.length;X++){let[Y,F]=_[X];if(typeof Y==="string"){let D=this.generateInComponent(F,"value");A.push(`${Y}: ${D}`)}}else if(Array.isArray(_)&&(_[0]==="->"||_[0]==="=>")){let X=_[2];if(X){let Y=this._fgCreateLines,F=this._fgSetupLines;this._fgCreateLines=[],this._fgSetupLines=[],$=this.fgProcessBlock(X);let D=this._fgCreateLines,Z=this._fgSetupLines;this._fgCreateLines=Y,this._fgSetupLines=F;for(let M of D)this._fgCreateLines.push(M);E.push(...Z),A.push(`children: ${$}`)}}return{propsCode:A.length>0?`{ ${A.join(", ")} }`:"{}",childrenVar:$,childrenSetupLines:E}}generateComponentTemplateElement(U){if(typeof U==="string"){if(this.componentMembers&&this.componentMembers.has(U))return`this.${U}.value`;if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))return U;return`h('${U}', 0)`}if(U instanceof String){let A=U.valueOf();if(this.componentMembers&&this.componentMembers.has(A))return`this.${A}.value`}if(Array.isArray(U)){let[A,...$]=U,E=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(E&&this.isComponent(E))return this.generateComponentInstance(E,$);if(E&&this.isHtmlTag&&this.isHtmlTag(E))return this.generateComponentH(E,[],$);if(E==="."){let[,R,_]=U;if(R==="this"&&_==="children")return"this.children";let{tag:X,classes:Y}=this.collectTemplateClasses(U);if(X&&this.isHtmlTag&&this.isHtmlTag(X))return this.generateComponentH(X,Y,[])}if(Array.isArray(A)){let{tag:R,classes:_}=this.collectTemplateClasses(A);if(R&&this.isHtmlTag&&this.isHtmlTag(R))return this.generateComponentH(R,_,$)}if(E==="->"||E==="=>"){let[R,_]=$;return this.generateComponentRender(_)}return this.generateTemplateElement(U)}return this.generateTemplateElement(U)}generateComponentH(U,A,$){this.usesTemplates=!0;let E={},R=[],_=[],X=null;for(let M of $)if(Array.isArray(M)&&(M[0]==="->"||M[0]==="=>")){let Q=M[2];if(Array.isArray(Q)&&Q[0]==="block")_.push(...Q.slice(1).map((G)=>this.generateComponentTemplateElement(G)));else _.push(this.generateComponentTemplateElement(Q))}else if(Array.isArray(M)&&M[0]==="...")R.push(this.generateInComponent(M[1],"value"));else if(Array.isArray(M)&&M[0]==="object"){let Q=f.extractInputType(M.slice(1));for(let G of M.slice(1))if(Array.isArray(G)&&G.length>=2){let[J,W]=G,q=this.parseBindingDirective(J,W,U,Q);if(q){E[q.prop]=q.valueExpr,E[q.event]=q.handler;continue}let H=this.parseEventHandler(J,W);if(H){let O=H.modifiers.length>0?this.wrapEventHandler(H.handler,H.modifiers):H.handler;E[`on${H.eventName}`]=O}else{let O=typeof J==="string"?J:this.generate(J,"value");if(O==="ref")X=typeof W==="string"?W:this.generate(W,"value");else if(O==="key")E.key=this.generateInComponent(W,"value");else E[O]=this.generateInComponent(W,"value")}}}else if(typeof M==="string")if(this.componentMembers&&this.componentMembers.has(M))_.push(`this.${M}.value`);else if(M.startsWith('"')||M.startsWith("'")||M.startsWith("`"))_.push(M);else _.push(`String(${M})`);else _.push(this.generateComponentTemplateElement(M));let Y=A.length>0?`${U}.${A.join(".")}`:U,F=this.buildPropsString(E,R),D=this.buildChildrenString(_),Z=`h('${Y}', ${F}${D})`;if(X)Z=`(${X} = ${Z})`;return Z}generateComponentInstance(U,A){let $={},E=[];for(let X of A)if(Array.isArray(X)&&X[0]==="object")for(let Y=1;Y<X.length;Y++){let[F,D]=X[Y];if(typeof F==="string")$[F]=this.generateInComponent(D,"value")}else if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Y=X[2];if(Array.isArray(Y)&&Y[0]==="block")E.push(...Y.slice(1).map((F)=>this.generateComponentTemplateElement(F)));else E.push(this.generateComponentTemplateElement(Y))}else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))E.push(X);else if(this.reactiveMembers&&this.reactiveMembers.has(X))E.push(`this.${X}.value`);else E.push(`String(${X})`);else E.push(this.generateComponentTemplateElement(X));let R=Object.entries($),_="{}";if(R.length>0||E.length>0){let X=R.map(([Y,F])=>`${Y}: ${F}`);if(E.length>0){let Y=E.length===1?E[0]:`[${E.join(", ")}]`;X.push(`children: ${Y}`)}_=X.length>0?`{ ${X.join(", ")} }`:"{}"}return`new ${U}(${_}).render()`}generateTemplateElement(U){if(typeof U==="string"){if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))return U;return`h('${U}', 0)`}if(U instanceof String)return this.generate(U,"value");if(!Array.isArray(U))return`txt(${this.generate(U,"value")})`;let[A,...$]=U;if(A==="str")return this.generate(U,"value");if(A==="block"){if($.length===0)return"null";if($.length===1)return this.generateTemplateElement($[0]);return`frag(${$.map((R)=>this.generateTemplateElement(R)).join(", ")})`}if(A==="if"||A==="unless")return this.generateTemplateConditional(U);if(A==="for-in"||A==="for-of")return this.generateTemplateLoop(U);if(A==="."){let[E,R]=$;if(typeof E==="string"&&typeof R==="string"){if(this.isHtmlTag(E))return`h('${E}.${R}', 0)`;return`txt(${this.generate(U,"value")})`}if(Array.isArray(E)&&E[0]==="."){let{tag:_,classes:X}=this.collectTemplateClasses(U);if(this.isHtmlTag(_))return`h('${_}.${X.join(".")}', 0)`;return`txt(${this.generate(U,"value")})`}}if(typeof A==="string"&&!f.GENERATORS[A])return this.generateH(A,[],$);if(Array.isArray(A)&&A[0]==="."){if(A.length===3&&A[2]=="__cx__"){let _=A[1],X,Y;if(Array.isArray(_)&&_[0]===".")({tag:X,classes:Y}=this.collectTemplateClasses(_));else X=_,Y=[];let F=$.map((D)=>this.generate(D,"value")).join(", ");return this.generateH(X,Y,[],F)}let{tag:E,classes:R}=this.collectTemplateClasses(A);return this.generateH(E,R,$)}if(Array.isArray(A)&&Array.isArray(A[0])&&A[0][0]==="."&&A[0][2]=="__cx__"){let E=A[0],R=A.slice(1),_=E[1],X,Y;if(Array.isArray(_)&&_[0]===".")({tag:X,classes:Y}=this.collectTemplateClasses(_));else X=_,Y=[];let F=R.map((D)=>this.generate(D,"value")).join(", ");return this.generateH(X,Y,$,F)}return`txt(${this.generate(U,"value")})`}parseTemplateArgs(U,A){let $={},E=[],R=[],_=null;for(let X of U)if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Y=X[2];if(Array.isArray(Y)&&Y[0]==="block")R.push(...Y.slice(1).map((F)=>this.generateTemplateElement(F)));else R.push(this.generateTemplateElement(Y))}else if(Array.isArray(X)&&X[0]==="...")E.push(this.generate(X[1],"value"));else if(Array.isArray(X)&&X[0]==="object"){let Y=f.extractInputType(X.slice(1));for(let F of X.slice(1))if(Array.isArray(F)&&F.length>=2){let[D,Z]=F,M=this.parseBindingDirective(D,Z,A,Y);if(M){$[M.prop]=M.valueExpr,$[M.event]=M.handler;continue}let Q=this.parseEventHandler(D,Z);if(Q){let G=Q.modifiers.length>0?this.wrapEventHandler(Q.handler,Q.modifiers):Q.handler;$[`on${Q.eventName}`]=G}else{let G=typeof D==="string"?D:this.generate(D,"value");if(G==="ref")_=typeof Z==="string"?Z:this.generate(Z,"value");else if(G==="key")$.key=this.generate(Z,"value");else if(G==="class")$.class=this.generate(Z,"value");else $[G]=this.generate(Z,"value")}}}else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))R.push(X);else R.push(`String(${X})`);else R.push(this.generateTemplateElement(X));return{props:$,spreads:E,children:R,refVar:_}}buildPropsString(U,A,$=null){let E=Object.keys(U).length>0,R=A.length>0,_=$!==null;if(!E&&!R&&!_)return"0";let X=[];if(_)X.push(`class: ${$}`);for(let Y of A)X.push(`...${Y}`);for(let[Y,F]of Object.entries(U))X.push(`${Y}: ${F}`);return`{ ${X.join(", ")} }`}buildChildrenString(U){if(U.length===0)return"";if(U.length===1)return`, ${U[0]}`;return`, [${U.join(", ")}]`}generateH(U,A,$,E=null){this.usesTemplates=!0;let{props:R,spreads:_,children:X,refVar:Y}=this.parseTemplateArgs($,U),F=A.length>0?`${U}.${A.join(".")}`:U,D=E?`cx(${E})`:null,Z=this.buildPropsString(R,_,D),M=this.buildChildrenString(X),Q=`h('${F}', ${Z}${M})`;if(Y)Q=`(${Y} = ${Q})`;return Q}collectTemplateClasses(U){let A=[],$=U;while(Array.isArray($)&&$[0]==="."){let R=$[2];if(typeof R==="string"||R instanceof String)A.unshift(R.valueOf());$=$[1]}return{tag:typeof $==="string"?$:$ instanceof String?$.valueOf():"div",classes:A}}generateTemplateConditional(U){let[A,$,E,R]=U,_=this.generate($,"value"),X=A==="unless"?`!(${_})`:_,Y=E;if(Array.isArray(E)&&E.length===1&&Array.isArray(E[0])&&E[0][0]!=="block")Y=E[0];let F=this.generateTemplateElement(Y);if(R){let D=R;if(Array.isArray(R)&&R.length===1&&Array.isArray(R[0])&&R[0][0]!=="block")D=R[0];return`(${X} ? ${F} : ${this.generateTemplateElement(D)})`}return`(${X} ? ${F} : null)`}generateTemplateLoop(U){let[A]=U;if(A==="for-in")return this.generateTemplateForIn(U);if(A==="for-of")return this.generateTemplateForOf(U);return"null"}generateTemplateForIn(U){let[,A,$,,E,R]=U,_=Array.isArray(A)&&A[0]?typeof A[0]==="string"?A[0]:this.generate(A[0],"value"):"__item",X=Array.isArray(A)&&A[1]?typeof A[1]==="string"?A[1]:"__i":"__i",Y=this.generate($,"value"),F=this.generateTemplateElement(R),D=E?`if (!(${this.generate(E,"value")})) continue; `:"";return`frag(...${Y}.map((${_}, ${X}) => ${D?`{ ${D}return ${F}; }`:F}))`}generateTemplateForOf(U){let[,A,$,E,R,_]=U,X=Array.isArray(A)&&A[0]?typeof A[0]==="string"?A[0]:"__k":"__k",Y=Array.isArray(A)&&A[1]?typeof A[1]==="string"?A[1]:null:null,F=this.generate($,"value"),D=this.generateTemplateElement(_),Z=E?`Object.entries(${F})`:`Object.entries(${F})`,M=Y?`[${X}, ${Y}]`:`[${X}]`,Q=R?`if (!(${this.generate(R,"value")})) continue; `:"";return`frag(...${Z}.map((${M}) => ${Q?`{ ${Q}return ${D}; }`:D}))`}generateBreak(U,A,$,E){return"break"}generateBreakIf(U,A,$,E){let[R]=A;return`if (${this.generate(R,"value")}) break`}generateContinue(U,A,$,E){return"continue"}generateContinueIf(U,A,$,E){let[R]=A;return`if (${this.generate(R,"value")}) continue`}generateExistential(U,A,$,E){let[R]=A;return`(${this.generate(R,"value")} != null)`}generateTernary(U,A,$,E){let[R,_,X]=A;return`(${this.unwrap(this.generate(R,"value"))} ? ${this.generate(_,"value")} : ${this.generate(X,"value")})`}generateLoop(U,A,$,E){let[R]=A;return`while (true) ${this.generateLoopBody(R)}`}generateAwait(U,A,$,E){let[R]=A;return`await ${this.generate(R,"value")}`}generateYield(U,A,$,E){if(A.length===0)return"yield";let[R]=A;return`yield ${this.generate(R,"value")}`}generateYieldFrom(U,A,$,E){let[R]=A;return`yield* ${this.generate(R,"value")}`}generateIf(U,A,$,E){if(U==="unless"){let[Y,F]=A;if(Array.isArray(F)&&F.length===1){let Z=F[0];if(!Array.isArray(Z)||Z[0]!=="block")F=Z}if($==="value"){let Z=this.extractExpression(F);return`(!${this.generate(Y,"value")} ? ${Z} : undefined)`}let D=this.unwrap(this.generate(Y,"value"));if(D.includes(" ")||D.includes("===")||D.includes("!==")||D.includes(">")||D.includes("<")||D.includes("&&")||D.includes("||"))D=`(${D})`;return`if (!${D}) `+this.generate(F,"statement")}let[R,_,...X]=A;if($==="value")return this.generateIfAsExpression(R,_,X);else return this.generateIfAsStatement(R,_,X)}generateForIn(U,A,$,E){let[R,_,X,Y,F]=A;if($==="value"&&this.comprehensionDepth===0){let H=["for-in",R,_,X],O=Y?[Y]:[];return this.generate(["comprehension",F,[H],O],$)}let D=Array.isArray(R)?R:[R],Z=D.length===0,[M,Q]=Z?["_i",null]:D,G=M;if(Array.isArray(M)&&(M[0]==="array"||M[0]==="object"))G=this.generateDestructuringPattern(M);if(X&&X!==null){let H=this.generate(_,"value"),O=Q||"_i",N=this.generate(X,"value"),P=this.isNegativeStep(X),K=P&&(X[1]==="1"||X[1]===1||X[1]instanceof String&&X[1].valueOf()==="1"),w=!P&&(X==="1"||X===1||X instanceof String&&X.valueOf()==="1"),B;if(K)B=`for (let ${O} = ${H}.length - 1; ${O} >= 0; ${O}--) `;else if(w)B=`for (let ${O} = 0; ${O} < ${H}.length; ${O}++) `;else if(P)B=`for (let ${O} = ${H}.length - 1; ${O} >= 0; ${O} += ${N}) `;else B=`for (let ${O} = 0; ${O} < ${H}.length; ${O} += ${N}) `;if(Array.isArray(F)&&F[0]==="block"){let z=F.slice(1);this.indentLevel++;let S=[];if(!Z)S.push(`const ${G} = ${H}[${O}];`);if(Y){let I=this.generate(Y,"value");S.push(`if (${I}) {`),this.indentLevel++,S.push(...this.formatStatements(z)),this.indentLevel--,S.push(this.indent()+"}")}else S.push(...z.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,B+`{
|
|
72
|
+
`)),F}fgProcessComponent(U,A){let $=this.fgNewElement("inst"),E=this.fgNewElement("el"),{propsCode:R,childrenVar:_,childrenSetupLines:X}=this.fgBuildComponentProps(A);this._fgCreateLines.push(`${$} = new ${U}(${R});`),this._fgCreateLines.push(`${E} = ${$}._create();`),this._fgSetupLines.push(`if (${$}._setup) ${$}._setup();`);for(let Y of X)this._fgSetupLines.push(Y);return E}fgBuildComponentProps(U){let A=[],$=null,E=[];for(let _ of U)if(Array.isArray(_)&&_[0]==="object")for(let X=1;X<_.length;X++){let[Y,F]=_[X];if(typeof Y==="string"){let D=this.generateInComponent(F,"value");A.push(`${Y}: ${D}`)}}else if(Array.isArray(_)&&(_[0]==="->"||_[0]==="=>")){let X=_[2];if(X){let Y=this._fgCreateLines,F=this._fgSetupLines;this._fgCreateLines=[],this._fgSetupLines=[],$=this.fgProcessBlock(X);let D=this._fgCreateLines,Z=this._fgSetupLines;this._fgCreateLines=Y,this._fgSetupLines=F;for(let M of D)this._fgCreateLines.push(M);E.push(...Z),A.push(`children: ${$}`)}}return{propsCode:A.length>0?`{ ${A.join(", ")} }`:"{}",childrenVar:$,childrenSetupLines:E}}generateComponentTemplateElement(U){if(typeof U==="string"){if(this.componentMembers&&this.componentMembers.has(U))return`this.${U}.value`;if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))return U;return`h('${U}', 0)`}if(U instanceof String){let A=U.valueOf();if(this.componentMembers&&this.componentMembers.has(A))return`this.${A}.value`}if(Array.isArray(U)){let[A,...$]=U,E=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(E&&this.isComponent(E))return this.generateComponentInstance(E,$);if(E&&this.isHtmlTag&&this.isHtmlTag(E))return this.generateComponentH(E,[],$);if(E==="."){let[,R,_]=U;if(R==="this"&&_==="children")return"this.children";let{tag:X,classes:Y}=this.collectTemplateClasses(U);if(X&&this.isHtmlTag&&this.isHtmlTag(X))return this.generateComponentH(X,Y,[])}if(Array.isArray(A)){let{tag:R,classes:_}=this.collectTemplateClasses(A);if(R&&this.isHtmlTag&&this.isHtmlTag(R))return this.generateComponentH(R,_,$)}if(E==="->"||E==="=>"){let[R,_]=$;return this.generateComponentRender(_)}return this.generateTemplateElement(U)}return this.generateTemplateElement(U)}generateComponentH(U,A,$){this.usesTemplates=!0;let E={},R=[],_=[],X=null;for(let M of $)if(Array.isArray(M)&&(M[0]==="->"||M[0]==="=>")){let Q=M[2];if(Array.isArray(Q)&&Q[0]==="block")_.push(...Q.slice(1).map((G)=>this.generateComponentTemplateElement(G)));else _.push(this.generateComponentTemplateElement(Q))}else if(Array.isArray(M)&&M[0]==="...")R.push(this.generateInComponent(M[1],"value"));else if(Array.isArray(M)&&M[0]==="object"){let Q=f.extractInputType(M.slice(1));for(let G of M.slice(1))if(Array.isArray(G)&&G.length>=2){let[J,W]=G,H=this.parseBindingDirective(J,W,U,Q);if(H){E[H.prop]=H.valueExpr,E[H.event]=H.handler;continue}let q=this.parseEventHandler(J,W);if(q){let O=q.modifiers.length>0?this.wrapEventHandler(q.handler,q.modifiers):q.handler;E[`on${q.eventName}`]=O}else{let O=typeof J==="string"?J:this.generate(J,"value");if(O==="ref")X=typeof W==="string"?W:this.generate(W,"value");else if(O==="key")E.key=this.generateInComponent(W,"value");else E[O]=this.generateInComponent(W,"value")}}}else if(typeof M==="string")if(this.componentMembers&&this.componentMembers.has(M))_.push(`this.${M}.value`);else if(M.startsWith('"')||M.startsWith("'")||M.startsWith("`"))_.push(M);else _.push(`String(${M})`);else _.push(this.generateComponentTemplateElement(M));let Y=A.length>0?`${U}.${A.join(".")}`:U,F=this.buildPropsString(E,R),D=this.buildChildrenString(_),Z=`h('${Y}', ${F}${D})`;if(X)Z=`(${X} = ${Z})`;return Z}generateComponentInstance(U,A){let $={},E=[];for(let X of A)if(Array.isArray(X)&&X[0]==="object")for(let Y=1;Y<X.length;Y++){let[F,D]=X[Y];if(typeof F==="string")$[F]=this.generateInComponent(D,"value")}else if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Y=X[2];if(Array.isArray(Y)&&Y[0]==="block")E.push(...Y.slice(1).map((F)=>this.generateComponentTemplateElement(F)));else E.push(this.generateComponentTemplateElement(Y))}else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))E.push(X);else if(this.reactiveMembers&&this.reactiveMembers.has(X))E.push(`this.${X}.value`);else E.push(`String(${X})`);else E.push(this.generateComponentTemplateElement(X));let R=Object.entries($),_="{}";if(R.length>0||E.length>0){let X=R.map(([Y,F])=>`${Y}: ${F}`);if(E.length>0){let Y=E.length===1?E[0]:`[${E.join(", ")}]`;X.push(`children: ${Y}`)}_=X.length>0?`{ ${X.join(", ")} }`:"{}"}return`new ${U}(${_}).render()`}generateTemplateElement(U){if(typeof U==="string"){if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))return U;return`h('${U}', 0)`}if(U instanceof String)return this.generate(U,"value");if(!Array.isArray(U))return`txt(${this.generate(U,"value")})`;let[A,...$]=U;if(A==="str")return this.generate(U,"value");if(A==="block"){if($.length===0)return"null";if($.length===1)return this.generateTemplateElement($[0]);return`frag(${$.map((R)=>this.generateTemplateElement(R)).join(", ")})`}if(A==="if"||A==="unless")return this.generateTemplateConditional(U);if(A==="for-in"||A==="for-of")return this.generateTemplateLoop(U);if(A==="."){let[E,R]=$;if(typeof E==="string"&&typeof R==="string"){if(this.isHtmlTag(E))return`h('${E}.${R}', 0)`;return`txt(${this.generate(U,"value")})`}if(Array.isArray(E)&&E[0]==="."){let{tag:_,classes:X}=this.collectTemplateClasses(U);if(this.isHtmlTag(_))return`h('${_}.${X.join(".")}', 0)`;return`txt(${this.generate(U,"value")})`}}if(typeof A==="string"&&!f.GENERATORS[A])return this.generateH(A,[],$);if(Array.isArray(A)&&A[0]==="."){if(A.length===3&&A[2]=="__cx__"){let _=A[1],X,Y;if(Array.isArray(_)&&_[0]===".")({tag:X,classes:Y}=this.collectTemplateClasses(_));else X=_,Y=[];let F=$.map((D)=>this.generate(D,"value")).join(", ");return this.generateH(X,Y,[],F)}let{tag:E,classes:R}=this.collectTemplateClasses(A);return this.generateH(E,R,$)}if(Array.isArray(A)&&Array.isArray(A[0])&&A[0][0]==="."&&A[0][2]=="__cx__"){let E=A[0],R=A.slice(1),_=E[1],X,Y;if(Array.isArray(_)&&_[0]===".")({tag:X,classes:Y}=this.collectTemplateClasses(_));else X=_,Y=[];let F=R.map((D)=>this.generate(D,"value")).join(", ");return this.generateH(X,Y,$,F)}return`txt(${this.generate(U,"value")})`}parseTemplateArgs(U,A){let $={},E=[],R=[],_=null;for(let X of U)if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Y=X[2];if(Array.isArray(Y)&&Y[0]==="block")R.push(...Y.slice(1).map((F)=>this.generateTemplateElement(F)));else R.push(this.generateTemplateElement(Y))}else if(Array.isArray(X)&&X[0]==="...")E.push(this.generate(X[1],"value"));else if(Array.isArray(X)&&X[0]==="object"){let Y=f.extractInputType(X.slice(1));for(let F of X.slice(1))if(Array.isArray(F)&&F.length>=2){let[D,Z]=F,M=this.parseBindingDirective(D,Z,A,Y);if(M){$[M.prop]=M.valueExpr,$[M.event]=M.handler;continue}let Q=this.parseEventHandler(D,Z);if(Q){let G=Q.modifiers.length>0?this.wrapEventHandler(Q.handler,Q.modifiers):Q.handler;$[`on${Q.eventName}`]=G}else{let G=typeof D==="string"?D:this.generate(D,"value");if(G==="ref")_=typeof Z==="string"?Z:this.generate(Z,"value");else if(G==="key")$.key=this.generate(Z,"value");else if(G==="class")$.class=this.generate(Z,"value");else $[G]=this.generate(Z,"value")}}}else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))R.push(X);else R.push(`String(${X})`);else R.push(this.generateTemplateElement(X));return{props:$,spreads:E,children:R,refVar:_}}buildPropsString(U,A,$=null){let E=Object.keys(U).length>0,R=A.length>0,_=$!==null;if(!E&&!R&&!_)return"0";let X=[];if(_)X.push(`class: ${$}`);for(let Y of A)X.push(`...${Y}`);for(let[Y,F]of Object.entries(U))X.push(`${Y}: ${F}`);return`{ ${X.join(", ")} }`}buildChildrenString(U){if(U.length===0)return"";if(U.length===1)return`, ${U[0]}`;return`, [${U.join(", ")}]`}generateH(U,A,$,E=null){this.usesTemplates=!0;let{props:R,spreads:_,children:X,refVar:Y}=this.parseTemplateArgs($,U),F=A.length>0?`${U}.${A.join(".")}`:U,D=E?`cx(${E})`:null,Z=this.buildPropsString(R,_,D),M=this.buildChildrenString(X),Q=`h('${F}', ${Z}${M})`;if(Y)Q=`(${Y} = ${Q})`;return Q}collectTemplateClasses(U){let A=[],$=U;while(Array.isArray($)&&$[0]==="."){let R=$[2];if(typeof R==="string"||R instanceof String)A.unshift(R.valueOf());$=$[1]}return{tag:typeof $==="string"?$:$ instanceof String?$.valueOf():"div",classes:A}}generateTemplateConditional(U){let[A,$,E,R]=U,_=this.generate($,"value"),X=A==="unless"?`!(${_})`:_,Y=E;if(Array.isArray(E)&&E.length===1&&Array.isArray(E[0])&&E[0][0]!=="block")Y=E[0];let F=this.generateTemplateElement(Y);if(R){let D=R;if(Array.isArray(R)&&R.length===1&&Array.isArray(R[0])&&R[0][0]!=="block")D=R[0];return`(${X} ? ${F} : ${this.generateTemplateElement(D)})`}return`(${X} ? ${F} : null)`}generateTemplateLoop(U){let[A]=U;if(A==="for-in")return this.generateTemplateForIn(U);if(A==="for-of")return this.generateTemplateForOf(U);return"null"}generateTemplateForIn(U){let[,A,$,,E,R]=U,_=Array.isArray(A)&&A[0]?typeof A[0]==="string"?A[0]:this.generate(A[0],"value"):"__item",X=Array.isArray(A)&&A[1]?typeof A[1]==="string"?A[1]:"__i":"__i",Y=this.generate($,"value"),F=this.generateTemplateElement(R),D=E?`if (!(${this.generate(E,"value")})) continue; `:"";return`frag(...${Y}.map((${_}, ${X}) => ${D?`{ ${D}return ${F}; }`:F}))`}generateTemplateForOf(U){let[,A,$,E,R,_]=U,X=Array.isArray(A)&&A[0]?typeof A[0]==="string"?A[0]:"__k":"__k",Y=Array.isArray(A)&&A[1]?typeof A[1]==="string"?A[1]:null:null,F=this.generate($,"value"),D=this.generateTemplateElement(_),Z=E?`Object.entries(${F})`:`Object.entries(${F})`,M=Y?`[${X}, ${Y}]`:`[${X}]`,Q=R?`if (!(${this.generate(R,"value")})) continue; `:"";return`frag(...${Z}.map((${M}) => ${Q?`{ ${Q}return ${D}; }`:D}))`}generateBreak(U,A,$,E){return"break"}generateBreakIf(U,A,$,E){let[R]=A;return`if (${this.generate(R,"value")}) break`}generateContinue(U,A,$,E){return"continue"}generateContinueIf(U,A,$,E){let[R]=A;return`if (${this.generate(R,"value")}) continue`}generateExistential(U,A,$,E){let[R]=A;return`(${this.generate(R,"value")} != null)`}generateTernary(U,A,$,E){let[R,_,X]=A;return`(${this.unwrap(this.generate(R,"value"))} ? ${this.generate(_,"value")} : ${this.generate(X,"value")})`}generateLoop(U,A,$,E){let[R]=A;return`while (true) ${this.generateLoopBody(R)}`}generateAwait(U,A,$,E){let[R]=A;return`await ${this.generate(R,"value")}`}generateYield(U,A,$,E){if(A.length===0)return"yield";let[R]=A;return`yield ${this.generate(R,"value")}`}generateYieldFrom(U,A,$,E){let[R]=A;return`yield* ${this.generate(R,"value")}`}generateIf(U,A,$,E){if(U==="unless"){let[Y,F]=A;if(Array.isArray(F)&&F.length===1){let Z=F[0];if(!Array.isArray(Z)||Z[0]!=="block")F=Z}if($==="value"){let Z=this.extractExpression(F);return`(!${this.generate(Y,"value")} ? ${Z} : undefined)`}let D=this.unwrap(this.generate(Y,"value"));if(D.includes(" ")||D.includes("===")||D.includes("!==")||D.includes(">")||D.includes("<")||D.includes("&&")||D.includes("||"))D=`(${D})`;return`if (!${D}) `+this.generate(F,"statement")}let[R,_,...X]=A;if($==="value")return this.generateIfAsExpression(R,_,X);else return this.generateIfAsStatement(R,_,X)}generateForIn(U,A,$,E){let[R,_,X,Y,F]=A;if($==="value"&&this.comprehensionDepth===0){let q=["for-in",R,_,X],O=Y?[Y]:[];return this.generate(["comprehension",F,[q],O],$)}let D=Array.isArray(R)?R:[R],Z=D.length===0,[M,Q]=Z?["_i",null]:D,G=M;if(Array.isArray(M)&&(M[0]==="array"||M[0]==="object"))G=this.generateDestructuringPattern(M);if(X&&X!==null){let q=this.generate(_,"value"),O=Q||"_i",N=this.generate(X,"value"),P=this.isNegativeStep(X),K=P&&(X[1]==="1"||X[1]===1||X[1]instanceof String&&X[1].valueOf()==="1"),w=!P&&(X==="1"||X===1||X instanceof String&&X.valueOf()==="1"),B;if(K)B=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O}--) `;else if(w)B=`for (let ${O} = 0; ${O} < ${q}.length; ${O}++) `;else if(P)B=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O} += ${N}) `;else B=`for (let ${O} = 0; ${O} < ${q}.length; ${O} += ${N}) `;if(Array.isArray(F)&&F[0]==="block"){let z=F.slice(1);this.indentLevel++;let S=[];if(!Z)S.push(`const ${G} = ${q}[${O}];`);if(Y){let I=this.generate(Y,"value");S.push(`if (${I}) {`),this.indentLevel++,S.push(...this.formatStatements(z)),this.indentLevel--,S.push(this.indent()+"}")}else S.push(...z.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,B+`{
|
|
73
73
|
${S.map((I)=>this.indent()+I).join(`
|
|
74
74
|
`)}
|
|
75
|
-
${this.indent()}}`}else if(Z)if(Y){let z=this.generate(Y,"value");return B+`{ if (${z}) ${this.generate(F,"statement")}; }`}else return B+`{ ${this.generate(F,"statement")}; }`;else if(Y){let z=this.generate(Y,"value");return B+`{ const ${G} = ${
|
|
76
|
-
`,this.indentLevel++,O+=this.indent()+`const ${G} = ${
|
|
75
|
+
${this.indent()}}`}else if(Z)if(Y){let z=this.generate(Y,"value");return B+`{ if (${z}) ${this.generate(F,"statement")}; }`}else return B+`{ ${this.generate(F,"statement")}; }`;else if(Y){let z=this.generate(Y,"value");return B+`{ const ${G} = ${q}[${O}]; if (${z}) ${this.generate(F,"statement")}; }`}else return B+`{ const ${G} = ${q}[${O}]; ${this.generate(F,"statement")}; }`}if(Q){let q=this.generate(_,"value"),O=`for (let ${Q} = 0; ${Q} < ${q}.length; ${Q}++) `;if(Array.isArray(F)&&F[0]==="block"){let N=F.slice(1);if(O+=`{
|
|
76
|
+
`,this.indentLevel++,O+=this.indent()+`const ${G} = ${q}[${Q}];
|
|
77
77
|
`,Y){let P=this.unwrap(this.generate(Y,"value"));O+=this.indent()+`if (${P}) {
|
|
78
78
|
`,this.indentLevel++,O+=this.formatStatements(N).join(`
|
|
79
79
|
`)+`
|
|
80
80
|
`,this.indentLevel--,O+=this.indent()+`}
|
|
81
81
|
`}else O+=this.formatStatements(N).join(`
|
|
82
82
|
`)+`
|
|
83
|
-
`;this.indentLevel--,O+=this.indent()+"}"}else if(Y){let N=this.unwrap(this.generate(Y,"value"));O+=`{ const ${G} = ${
|
|
83
|
+
`;this.indentLevel--,O+=this.indent()+"}"}else if(Y){let N=this.unwrap(this.generate(Y,"value"));O+=`{ const ${G} = ${q}[${Q}]; if (${N}) ${this.generate(F,"statement")}; }`}else O+=`{ const ${G} = ${q}[${Q}]; ${this.generate(F,"statement")}; }`;return O}let J=Array.isArray(_)&&_[0];if(J instanceof String)J=J.valueOf();if(J===".."||J==="..."){let q=J==="...",[O,N]=_.slice(1),P=(K)=>{if(typeof K==="number")return!0;if(K instanceof String)return!K.valueOf().includes("(");if(typeof K==="string"&&!K.includes("("))return!0;if(Array.isArray(K)&&K[0]===".")return!0;return!1};if(P(O)&&P(N)){let K=this.generate(O,"value"),w=this.generate(N,"value"),B=q?"<":"<=",z=`${G}++`;if(X&&X!==null){let I=this.generate(X,"value");z=`${G} += ${I}`}let S=`for (let ${G} = ${K}; ${G} ${B} ${w}; ${z}) `;if(Y)S+=this.generateLoopBodyWithGuard(F,Y);else S+=this.generateLoopBody(F);return S}}let H=`for (const ${G} of ${this.generate(_,"value")}) `;if(Y)H+=this.generateLoopBodyWithGuard(F,Y);else H+=this.generateLoopBody(F);return H}generateForOf(U,A,$,E){let[R,_,X,Y,F]=A,[D,Z]=Array.isArray(R)?R:[R],M=this.generate(_,"value"),Q=`for (const ${D} in ${M}) `;if(X&&!Z&&!Y){if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=[`if (!Object.hasOwn(${M}, ${D})) continue;`,...G.map((W)=>this.addSemicolon(W,this.generate(W,"statement")))];this.indentLevel--,Q+=`{
|
|
84
84
|
${J.map((W)=>this.indent()+W).join(`
|
|
85
85
|
`)}
|
|
86
|
-
${this.indent()}}`}else Q+=`{ if (!Object.hasOwn(${M}, ${D})) continue; ${this.generate(F,"statement")}; }`;return Q}if(Z)if(X&&Y)if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=this.indent(),W=this.generate(Y,"value");this.indentLevel++;let
|
|
86
|
+
${this.indent()}}`}else Q+=`{ if (!Object.hasOwn(${M}, ${D})) continue; ${this.generate(F,"statement")}; }`;return Q}if(Z)if(X&&Y)if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=this.indent(),W=this.generate(Y,"value");this.indentLevel++;let H=this.indent(),q=G.map((O)=>H+this.addSemicolon(O,this.generate(O,"statement")));this.indentLevel-=2,Q+=`{
|
|
87
87
|
${J}if (!Object.hasOwn(${M}, ${D})) continue;
|
|
88
88
|
${J}const ${Z} = ${M}[${D}];
|
|
89
89
|
${J}if (${W}) {
|
|
90
|
-
${
|
|
90
|
+
${q.join(`
|
|
91
91
|
`)}
|
|
92
92
|
${J}}
|
|
93
93
|
${this.indent()}}`}else{let G=this.generate(Y,"value");Q+=`{ if (!Object.hasOwn(${M}, ${D})) continue; const ${Z} = ${M}[${D}]; if (${G}) ${this.generate(F,"statement")}; }`}else if(X)if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=[`if (!Object.hasOwn(${M}, ${D})) continue;`,`const ${Z} = ${M}[${D}];`,...G.map((W)=>this.addSemicolon(W,this.generate(W,"statement")))];this.indentLevel--,Q+=`{
|
|
94
94
|
${J.map((W)=>this.indent()+W).join(`
|
|
95
95
|
`)}
|
|
96
|
-
${this.indent()}}`}else Q+=`{ if (!Object.hasOwn(${M}, ${D})) continue; const ${Z} = ${M}[${D}]; ${this.generate(F,"statement")}; }`;else if(Y)if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=this.indent(),W=this.generate(Y,"value");this.indentLevel++;let
|
|
96
|
+
${this.indent()}}`}else Q+=`{ if (!Object.hasOwn(${M}, ${D})) continue; const ${Z} = ${M}[${D}]; ${this.generate(F,"statement")}; }`;else if(Y)if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=this.indent(),W=this.generate(Y,"value");this.indentLevel++;let H=this.indent(),q=G.map((O)=>H+this.addSemicolon(O,this.generate(O,"statement")));this.indentLevel-=2,Q+=`{
|
|
97
97
|
${J}const ${Z} = ${M}[${D}];
|
|
98
98
|
${J}if (${W}) {
|
|
99
|
-
${
|
|
99
|
+
${q.join(`
|
|
100
100
|
`)}
|
|
101
101
|
${J}}
|
|
102
102
|
${this.indent()}}`}else Q+=`{ const ${Z} = ${M}[${D}]; if (${this.generate(Y,"value")}) ${this.generate(F,"statement")}; }`;else if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=[`const ${Z} = ${M}[${D}];`,...G.map((W)=>this.addSemicolon(W,this.generate(W,"statement")))];this.indentLevel--,Q+=`{
|
|
103
103
|
${J.map((W)=>this.indent()+W).join(`
|
|
104
104
|
`)}
|
|
105
|
-
${this.indent()}}`}else Q+=`{ const ${Z} = ${M}[${D}]; ${this.generate(F,"statement")}; }`;else if(Y)Q+=this.generateLoopBodyWithGuard(F,Y);else Q+=this.generateLoopBody(F);return Q}generateForFrom(U,A,$,E){let R=Array.isArray(A[0])?A[0]:[A[0]],[_]=R,X=A[1],Y=A[2],F=A[3],D=A[4],Z=!1,M=[];if(Array.isArray(_)&&_[0]==="array"){let
|
|
106
|
-
${
|
|
105
|
+
${this.indent()}}`}else Q+=`{ const ${Z} = ${M}[${D}]; ${this.generate(F,"statement")}; }`;else if(Y)Q+=this.generateLoopBodyWithGuard(F,Y);else Q+=this.generateLoopBody(F);return Q}generateForFrom(U,A,$,E){let R=Array.isArray(A[0])?A[0]:[A[0]],[_]=R,X=A[1],Y=A[2],F=A[3],D=A[4],Z=!1,M=[];if(Array.isArray(_)&&_[0]==="array"){let H=_.slice(1),q=H.findIndex((O)=>Array.isArray(O)&&O[0]==="..."||O==="...");if(q!==-1&&q<H.length-1){Z=!0;let O=H.slice(q+1),N=O.length,P=H.slice(0,q),K=H[q],w=Array.isArray(K)&&K[0]==="..."?K[1]:"_rest",B=P.map((L)=>{if(L===",")return"";if(typeof L==="string")return L;return this.generate(L,"value")}).join(", "),z=B?`${B}, ...${w}`:`...${w}`,S=O.map((L)=>{if(L===",")return"";if(typeof L==="string")return L;return this.generate(L,"value")}).join(", ");M.push(`[${z}] = _item`),M.push(`[${S}] = ${w}.splice(-${N})`),this.helpers.add("slice"),((L)=>{L.slice(1).forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(Array.isArray(T)&&T[0]==="..."){if(typeof T[1]==="string")this.programVars.add(T[1])}})})(_)}}let Q=this.generate(X,"value"),G=Y?"await ":"",J;if(Z)J="_item";else if(Array.isArray(_)&&(_[0]==="array"||_[0]==="object"))J=this.generateDestructuringPattern(_);else J=_;let W=`for ${G}(const ${J} of ${Q}) `;if(Z&&M.length>0){let H=this.unwrapBlock(D),q=this.withIndent(()=>[...M.map((O)=>this.indent()+O+";"),...this.formatStatements(H)]);W+=`{
|
|
106
|
+
${q.join(`
|
|
107
107
|
`)}
|
|
108
108
|
${this.indent()}}`}else if(F)W+=this.generateLoopBodyWithGuard(D,F);else W+=this.generateLoopBody(D);return W}generateWhile(U,A,$,E){let R=A[0],_=A.length===3?A[1]:null,X=A[A.length-1],F=`while (${this.unwrap(this.generate(R,"value"))}) `;if(_)F+=this.generateLoopBodyWithGuard(X,_);else F+=this.generateLoopBody(X);return F}generateUntil(U,A,$,E){let[R,_]=A,Y=`while (!(${this.unwrap(this.generate(R,"value"))})) `;return Y+=this.generateLoopBody(_),Y}generateRange(U,A,$,E){if(U==="..."){if(A.length===1){let[Q]=A;return`...${this.generate(Q,"value")}`}let[F,D]=A,Z=this.generate(F,"value"),M=this.generate(D,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Z}, ${M})`}let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${X}, ${Y})`}generateNot(U,A,$,E){let[R]=A;if(typeof R==="string"||R instanceof String)return`!${this.generate(R,"value")}`;if(Array.isArray(R)){let X=R[0];if([".","?.","::","?::","[]","?[]","optindex","optcall"].includes(X))return`!${this.generate(R,"value")}`}let _=this.generate(R,"value");if(_.startsWith("("))return`!${_}`;return`(!${_})`}generateBitwiseNot(U,A,$,E){let[R]=A;return`(~${this.generate(R,"value")})`}generateIncDec(U,A,$,E){let[R,_]=A,X=this.generate(R,"value");if(_)return`(${X}${U})`;else return`(${U}${X})`}generateTypeof(U,A,$,E){let[R]=A;return`typeof ${this.generate(R,"value")}`}generateDelete(U,A,$,E){let[R]=A;return`(delete ${this.generate(R,"value")})`}generateInstanceof(U,A,$,E){let[R,_]=A,X=E[0]?.invert,Y=`(${this.generate(R,"value")} instanceof ${this.generate(_,"value")})`;return X?`(!${Y})`:Y}generateIn(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=E[0]?.invert;if(Array.isArray(_)&&_[0]==="object"){let Z=this.generate(_,"value"),M=`(${X} in ${Z})`;return Y?`(!${M})`:M}let F=this.generate(_,"value"),D=`(Array.isArray(${F}) || typeof ${F} === 'string' ? ${F}.includes(${X}) : (${X} in ${F}))`;return Y?`(!${D})`:D}generateOf(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value"),F=E[0]?.invert,D=`(${X} in ${Y})`;return F?`(!${D})`:D}generateRegexMatch(U,A,$,E){let[R,_]=A;this.helpers.add("toSearchable"),this.programVars.add("_");let X=this.generate(_,"value"),F=X.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(R,"value")}${F}).match(${X}))`}generateNew(U,A,$,E){let[R]=A;if(Array.isArray(R)&&(R[0]==="."||R[0]==="?.")){let[_,X,Y]=R;if(Array.isArray(X)&&!X[0].startsWith)return`(${this.generate(["new",X],"value")}).${Y}`;return`new ${this.generate(X,"value")}.${Y}`}if(Array.isArray(R)){let[_,...X]=R,Y=this.generate(_,"value"),F=X.map((D)=>this.unwrap(this.generate(D,"value"))).join(", ");return`new ${Y}(${F})`}return`new ${this.generate(R,"value")}()`}generateLogicalAnd(U,A,$,E){let _=this.flattenBinaryChain(E).slice(1);if(_.length===0)return"true";if(_.length===1)return this.generate(_[0],"value");return`(${_.map((Y)=>this.generate(Y,"value")).join(" && ")})`}generateLogicalOr(U,A,$,E){let _=this.flattenBinaryChain(E).slice(1);if(_.length===0)return"true";if(_.length===1)return this.generate(_[0],"value");return`(${_.map((Y)=>this.generate(Y,"value")).join(" || ")})`}generateArray(U,A,$,E){let R=A.length>0&&A[A.length-1]===",",_=A.map((X)=>{if(X===",")return"";if(X==="...")return"";if(Array.isArray(X)&&X[0]==="...")return`...${this.generate(X[1],"value")}`;return this.generate(X,"value")}).join(", ");return R?`[${_},]`:`[${_}]`}generateObject(U,A,$,E){if(A.length===1&&Array.isArray(A[0])&&Array.isArray(A[0][1])&&A[0][1][0]==="comprehension"){let[_,X]=A[0],[,Y,F,D]=X;return this.generate(["object-comprehension",_,Y,F,D],$)}return`{${A.map((_)=>{if(Array.isArray(_)&&_[0]==="...")return`...${this.generate(_[1],"value")}`;let[X,Y,F]=_,D;if(Array.isArray(X)&&X[0]==="computed"){let M=X[1];D=`[${this.generate(M,"value")}]`}else D=this.generate(X,"value");let Z=this.generate(Y,"value");if(F==="=")return`${D} = ${Z}`;else if(F===":")return`${D}: ${Z}`;else{if(D===Z&&!Array.isArray(X))return D;return`${D}: ${Z}`}}).join(", ")}}`}generateBlock(U,A,$,E){if($==="statement")return`{
|
|
109
109
|
${this.withIndent(()=>this.formatStatements(A)).join(`
|
|
@@ -113,21 +113,21 @@ ${this.indent()} ${W};
|
|
|
113
113
|
${this.indent()}}`;else return`if (${J}) {
|
|
114
114
|
${this.indent()} ${W};
|
|
115
115
|
${this.indent()}}`}}let X=`throw ${this.generate(R,"value")}`;if($==="value")return`(() => { ${X}; })()`;return X}generateSwitch(U,A,$,E){let[R,_,X]=A;if(R===null)return this.generateSwitchAsIfChain(_,X,$);let Y=`switch (${this.generate(R,"value")}) {
|
|
116
|
-
`;this.indentLevel++;let F=(D)=>D instanceof String?D.valueOf():D;for(let D of _){let[,Z,M]=D,Q=F(Array.isArray(Z)&&Z.length>0?Z[0]:null),J=Array.isArray(Z)&&Z.length>0&&typeof Q==="string"&&!Q.match(/^[-+*\/%<>=!&|^~]$|^(typeof|delete|new|not|await|yield)$/)?Z:[Z];for(let W of J){let
|
|
116
|
+
`;this.indentLevel++;let F=(D)=>D instanceof String?D.valueOf():D;for(let D of _){let[,Z,M]=D,Q=F(Array.isArray(Z)&&Z.length>0?Z[0]:null),J=Array.isArray(Z)&&Z.length>0&&typeof Q==="string"&&!Q.match(/^[-+*\/%<>=!&|^~]$|^(typeof|delete|new|not|await|yield)$/)?Z:[Z];for(let W of J){let H=F(W),q;if(Array.isArray(H))q=this.generate(H,"value");else if(typeof H==="string"&&(H.startsWith('"')||H.startsWith("'")))q=`'${H.slice(1,-1)}'`;else q=this.generate(H,"value");Y+=this.indent()+`case ${q}:
|
|
117
117
|
`}this.indentLevel++,Y+=this.generateSwitchCaseBody(M,$),this.indentLevel--}if(X)Y+=this.indent()+`default:
|
|
118
118
|
`,this.indentLevel++,Y+=this.generateSwitchCaseBody(X,$),this.indentLevel--;if(this.indentLevel--,Y+=this.indent()+"}",$==="value")return`(${_.some((M)=>this.containsAwait(M[2]))||X&&this.containsAwait(X)?"async ":""}() => { ${Y} })()`;return Y}generateWhen(U,A,$,E){throw Error("when clause should be handled by switch")}generateComprehension(U,A,$,E){let[R,_,X]=A;if($==="statement")return this.generateComprehensionAsLoop(R,_,X);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(R,_,X,this.comprehensionTarget);let D=`(${this.containsAwait(R)?"async ":""}() => {
|
|
119
119
|
`;this.indentLevel++,this.comprehensionDepth++,D+=this.indent()+`const result = [];
|
|
120
|
-
`;for(let M of _){let[Q,G,J,W]=M;if(Q==="for-in"){let
|
|
121
|
-
`,this.indentLevel++}else{let z=this.generate(J,"value"),S=P||"_i",I=this.generate(
|
|
120
|
+
`;for(let M of _){let[Q,G,J,W]=M;if(Q==="for-in"){let H=W,q=Array.isArray(G)?G:[G],O=q.length===0,[N,P]=O?["_i",null]:q,K=N;if(Array.isArray(N)&&(N[0]==="array"||N[0]==="object"))K=this.generateDestructuringPattern(N);if(H&&H!==null){let w=Array.isArray(J)&&J[0];if(w instanceof String)w=w.valueOf();if(w===".."||w==="..."){let z=w==="...",[S,I]=J.slice(1),L=this.generate(S,"value"),T=this.generate(I,"value"),V=this.generate(H,"value"),y=z?"<":"<=";D+=this.indent()+`for (let ${K} = ${L}; ${K} ${y} ${T}; ${K} += ${V}) {
|
|
121
|
+
`,this.indentLevel++}else{let z=this.generate(J,"value"),S=P||"_i",I=this.generate(H,"value");if(this.isNegativeStep(H))D+=this.indent()+`for (let ${S} = ${z}.length - 1; ${S} >= 0; ${S} += ${I}) {
|
|
122
122
|
`;else D+=this.indent()+`for (let ${S} = 0; ${S} < ${z}.length; ${S} += ${I}) {
|
|
123
123
|
`;if(this.indentLevel++,!O)D+=this.indent()+`const ${K} = ${z}[${S}];
|
|
124
124
|
`}}else if(P){let w=this.generate(J,"value");D+=this.indent()+`for (let ${P} = 0; ${P} < ${w}.length; ${P}++) {
|
|
125
125
|
`,this.indentLevel++,D+=this.indent()+`const ${K} = ${w}[${P}];
|
|
126
126
|
`}else D+=this.indent()+`for (const ${K} of ${this.generate(J,"value")}) {
|
|
127
|
-
`,this.indentLevel++}else if(Q==="for-of"){let
|
|
128
|
-
`,this.indentLevel++,
|
|
127
|
+
`,this.indentLevel++}else if(Q==="for-of"){let H=W,q=Array.isArray(G)?G:[G],[O,N]=q,P=O;if(Array.isArray(O)&&(O[0]==="array"||O[0]==="object"))P=this.generateDestructuringPattern(O);let K=this.generate(J,"value");if(D+=this.indent()+`for (const ${P} in ${K}) {
|
|
128
|
+
`,this.indentLevel++,H)D+=this.indent()+`if (!Object.hasOwn(${K}, ${P})) continue;
|
|
129
129
|
`;if(N)D+=this.indent()+`const ${N} = ${K}[${P}];
|
|
130
|
-
`}else if(Q==="for-from"){let
|
|
130
|
+
`}else if(Q==="for-from"){let H=M[3],q=Array.isArray(G)?G:[G],[O]=q,N=O;if(Array.isArray(O)&&(O[0]==="array"||O[0]==="object"))N=this.generateDestructuringPattern(O);let P=H?"await ":"";D+=this.indent()+`for ${P}(const ${N} of ${this.generate(J,"value")}) {
|
|
131
131
|
`,this.indentLevel++}}for(let M of X)D+=this.indent()+`if (${this.generate(M,"value")}) {
|
|
132
132
|
`,this.indentLevel++;let Z=(M)=>{if(typeof M==="string"&&(M==="break"||M==="continue"))return!0;if(!Array.isArray(M))return!1;if(M[0]==="break"||M[0]==="continue"||M[0]==="break-if"||M[0]==="continue-if"||M[0]==="return"||M[0]==="throw")return!0;if(M[0]==="if"||M[0]==="unless")return M.slice(1).some((Q)=>Z(Q));return M.some((Q)=>Z(Q))};if(Array.isArray(R)&&R[0]==="block"){let M=R.slice(1);for(let Q=0;Q<M.length;Q++){let G=M[Q],J=Q===M.length-1,W=Z(G);if(!J||W)D+=this.indent()+this.generate(G,"statement")+`;
|
|
133
133
|
`;else if(Array.isArray(G)&&["for-in","for-of","for-from","while","until","loop"].includes(G[0]))D+=this.indent()+this.generate(G,"statement")+`;
|
|
@@ -140,40 +140,40 @@ ${this.indent()}}`}}let X=`throw ${this.generate(R,"value")}`;if($==="value")ret
|
|
|
140
140
|
`;return D+=this.indent()+`return result;
|
|
141
141
|
`,this.indentLevel--,this.comprehensionDepth--,D+=this.indent()+"})()",D}generateObjectComprehension(U,A,$,E){let[R,_,X,Y]=A,F=`(() => {
|
|
142
142
|
`;this.indentLevel++,F+=this.indent()+`const result = {};
|
|
143
|
-
`;for(let M of X){let[Q,G,J,W]=M;if(Q==="for-of"){let[q
|
|
144
|
-
`,this.indentLevel++,W)F+=this.indent()+`if (!Object.hasOwn(${O}, ${
|
|
145
|
-
`;if(
|
|
143
|
+
`;for(let M of X){let[Q,G,J,W]=M;if(Q==="for-of"){let[H,q]=G,O=this.generate(J,"value");if(F+=this.indent()+`for (const ${H} in ${O}) {
|
|
144
|
+
`,this.indentLevel++,W)F+=this.indent()+`if (!Object.hasOwn(${O}, ${H})) continue;
|
|
145
|
+
`;if(q)F+=this.indent()+`const ${q} = ${O}[${H}];
|
|
146
146
|
`}}for(let M of Y)F+=this.indent()+`if (${this.generate(M,"value")}) {
|
|
147
147
|
`,this.indentLevel++;let D=this.generate(R,"value"),Z=this.generate(_,"value");F+=this.indent()+`result[${D}] = ${Z};
|
|
148
148
|
`;for(let M=0;M<Y.length;M++)this.indentLevel--,F+=this.indent()+`}
|
|
149
149
|
`;for(let M=0;M<X.length;M++)this.indentLevel--,F+=this.indent()+`}
|
|
150
150
|
`;return F+=this.indent()+`return result;
|
|
151
151
|
`,this.indentLevel--,F+=this.indent()+"})()",F}generateClass(U,A,$,E){let[R,_,...X]=A,Y=R?`class ${R}`:"class";if(_)Y+=` extends ${this.generate(_,"value")}`;if(Y+=` {
|
|
152
|
-
`,X.length>0&&Array.isArray(X[0])){let F=X[0];if(F[0]==="block"){let D=F.slice(1),Z=D.length>0&&Array.isArray(D[0])&&D[0][0]==="object";if(Z&&D.length===1){let Q=D[0].slice(1);this.indentLevel++;let G=[];for(let[J,W]of Q){let
|
|
153
|
-
`}else if(
|
|
152
|
+
`,X.length>0&&Array.isArray(X[0])){let F=X[0];if(F[0]==="block"){let D=F.slice(1),Z=D.length>0&&Array.isArray(D[0])&&D[0][0]==="object";if(Z&&D.length===1){let Q=D[0].slice(1);this.indentLevel++;let G=[];for(let[J,W]of Q){let H=this.isStaticMember(J),q=this.isComputedMember(J),O=this.extractMemberName(J);if(this.isBoundMethod(W)&&!H&&!q&&O!=="constructor")G.push(O)}for(let[J,W]of Q){let H=this.isStaticMember(J),q=this.isComputedMember(J),O=this.extractMemberName(J);if(Array.isArray(W)&&(W[0]==="->"||W[0]==="=>")){let[N,P,K]=W,w=this.containsAwait(K),B=this.containsYield(K),z=P,S=[];if(O==="constructor"){z=P.map((y)=>{if(Array.isArray(y)&&y[0]==="."&&y[1]==="this"){let u=y[2];return S.push(`this.${u} = ${u}`),u}return y});for(let y of G)S.unshift(`this.${y} = this.${y}.bind(this)`)}let I=this.generateParamList(z),L=w?"async ":"",T=B?"*":"";if(H)Y+=this.indent()+`static ${L}${T}${O}(${I}) `;else Y+=this.indent()+`${L}${T}${O}(${I}) `;let V=O==="constructor";if(!q)this.currentMethodName=O;Y+=this.generateMethodBody(K,S,V,z),this.currentMethodName=null,Y+=`
|
|
153
|
+
`}else if(H){let N=this.generate(W,"value");Y+=this.indent()+`static ${O} = ${N};
|
|
154
154
|
`}else{let N=this.generate(W,"value");Y+=this.indent()+`${O} = ${N};
|
|
155
|
-
`}}this.indentLevel--}else if(Z){let Q=D[0].slice(1),G=D.slice(1);this.indentLevel++;for(let[J,W]of Q){let
|
|
156
|
-
`}else if(
|
|
155
|
+
`}}this.indentLevel--}else if(Z){let Q=D[0].slice(1),G=D.slice(1);this.indentLevel++;for(let[J,W]of Q){let H=this.isStaticMember(J),q=this.isComputedMember(J),O=this.extractMemberName(J);if(Array.isArray(W)&&(W[0]==="->"||W[0]==="=>")){let[N,P,K]=W,w=this.containsAwait(K),B=this.containsYield(K),z=this.generateParamList(P),S=w?"async ":"",I=B?"*":"";if(H)Y+=this.indent()+`static ${S}${I}${O}(${z}) `;else Y+=this.indent()+`${S}${I}${O}(${z}) `;this.currentMethodName=O,Y+=this.generateMethodBody(K,[],O==="constructor",P),this.currentMethodName=null,Y+=`
|
|
156
|
+
`}else if(H){let N=this.generate(W,"value");Y+=this.indent()+`static ${O} = ${N};
|
|
157
157
|
`}else{let N=this.generate(W,"value");Y+=this.indent()+`${O} = ${N};
|
|
158
|
-
`}}for(let J of G)if(Array.isArray(J)&&J[0]==="class"){let[,W,q
|
|
158
|
+
`}}for(let J of G)if(Array.isArray(J)&&J[0]==="class"){let[,W,H,...q]=J;if(Array.isArray(W)&&W[0]==="."&&W[1]==="this"){let O=W[2];Y+=this.indent()+`static ${O} = `;let N=this.generate(["class",null,H,...q],"value");Y+=N+`;
|
|
159
159
|
`}}else Y+=this.indent()+this.generate(J,"statement")+`;
|
|
160
160
|
`;this.indentLevel--}else{this.indentLevel++;for(let M of D)if(Array.isArray(M)&&M[0]==="="&&Array.isArray(M[1])&&M[1][0]==="."&&M[1][1]==="this"){let Q=M[1][2],G=this.generate(M[2],"value");Y+=this.indent()+`static ${Q} = ${G};
|
|
161
161
|
`}else Y+=this.indent()+this.generate(M,"statement")+`;
|
|
162
162
|
`;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper(U,A,$,E){if(A.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let R=A.map((_)=>this.unwrap(this.generate(_,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${R})`;return`super(${R})`}generateSoakCall(U,A,$,E){let[R,..._]=A,X=this.generate(R,"value"),Y=_.map((F)=>this.generate(F,"value")).join(", ");return`(typeof ${X} === 'function' ? ${X}(${Y}) : undefined)`}generateImport(U,A,$,E){if(A.length===1){let[Y]=A;return`import(${this.generate(Y,"value")})`}let[R,_]=A,X=this.addJsExtensionAndAssertions(_);if(typeof R==="string")return`import ${R} from ${X}`;if(Array.isArray(R)){if(R[0]==="*"&&R.length===2)return`import * as ${R[1]} from ${X}`;if(typeof R[0]==="string"&&Array.isArray(R[1])){let F=R[0],D=R[1];if(D[0]==="*"&&D.length===2)return`import ${F}, * as ${D[1]} from ${X}`;let Z=(Array.isArray(D)?D:[D]).map((M)=>{if(Array.isArray(M)&&M.length===2)return`${M[0]} as ${M[1]}`;return M}).join(", ");return`import ${F}, { ${Z} } from ${X}`}return`import { ${R.map((F)=>{if(Array.isArray(F)&&F.length===2)return`${F[0]} as ${F[1]}`;return F}).join(", ")} } from ${X}`}return`import ${this.generate(R,"value")} from ${X}`}generateExport(U,A,$,E){let[R]=A;if(Array.isArray(R)&&R.every((_)=>typeof _==="string"))return`export { ${R.join(", ")} }`;if(Array.isArray(R)&&R[0]==="="){let[,_,X]=R;return`export const ${_} = ${this.generate(X,"value")}`}return`export ${this.generate(R,"statement")}`}generateExportDefault(U,A,$,E){let[R]=A;if(Array.isArray(R)&&R[0]==="="){let[,_,X]=R;return`${`const ${_} = ${this.generate(X,"value")}`};
|
|
163
|
-
export default ${_}`}return`export default ${this.generate(R,"statement")}`}generateExportAll(U,A,$,E){let[R]=A;return`export * from ${this.addJsExtensionAndAssertions(R)}`}generateExportFrom(U,A,$,E){let[R,_]=A,X=this.addJsExtensionAndAssertions(_);if(Array.isArray(R))return`export { ${R.map((F)=>{if(Array.isArray(F)&&F.length===2)return`${F[0]} as ${F[1]}`;return F}).join(", ")} } from ${X}`;return`export ${R} from ${X}`}generateDoIIFE(U,A,$,E){let[R]=A;return`(${this.generate(R,"statement")})()`}generateRegex(U,A,$,E){if(A.length===0)return U;let[R]=A;return this.generate(R,"value")}generateTaggedTemplate(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");if(Y.startsWith("`"))return`${X}${Y}`;if(Y.startsWith('"')||Y.startsWith("'")){let F=Y.slice(1,-1);return`${X}\`${F}\``}return`${X}\`${Y}\``}generateString(U,A,$,E){let R="`";for(let _=0;_<A.length;_++){let X=A[_];if(X instanceof String)R+=this.extractStringContent(X);else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str interpolation:",X);R+=X.slice(1,-1)}else R+=X;else if(Array.isArray(X))if(X.length===1&&typeof X[0]==="string"&&!Array.isArray(X[0])){let Y=X[0];if(/^[\d"']/.test(Y))R+="${"+this.generate(Y,"value")+"}";else R+="${"+Y+"}"}else{let Y=X;if(X.length===1&&Array.isArray(X[0]))Y=X[0];R+="${"+this.generate(Y,"value")+"}"}}return R+="`",R}findPostfixConditional(U){if(!Array.isArray(U))return null;let A=U[0];if((A==="unless"||A==="if")&&U.length===3)return{type:A,condition:U[1],value:U[2]};if(A==="+"||A==="-"||A==="*"||A==="/")for(let $=1;$<U.length;$++){let E=this.findPostfixConditional(U[$]);if(E)return E.parentOp=A,E.operandIndex=$,E.otherOperands=U.slice(1).filter((R,_)=>_!==$-1),E}return null}generateDestructuringPattern(U){return this.formatParam(U)}generateParamList(U){let A=U.findIndex((E)=>Array.isArray(E)&&E[0]==="expansion");if(A!==-1){let E=U.slice(0,A),R=U.slice(A+1),_=E.map((Y)=>this.formatParam(Y)).join(", "),X=_?`${_}, ..._rest`:"..._rest";return this.expansionAfterParams=R,X}let $=U.findIndex((E)=>Array.isArray(E)&&E[0]==="rest");if($!==-1&&$<U.length-1){let E=U.slice(0,$),R=U[$],_=U.slice($+1),X=E.map((F)=>this.formatParam(F)),Y=X.length>0?`${X.join(", ")}, ...${R[1]}`:`...${R[1]}`;return this.restMiddleParam={restName:R[1],afterParams:_,beforeCount:E.length},Y}return this.expansionAfterParams=null,this.restMiddleParam=null,U.map((E)=>this.formatParam(E)).join(", ")}formatParam(U){if(typeof U==="string")return U;if(Array.isArray(U)&&U[0]==="rest")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="default"){let[,A,$]=U;return`${A} = ${this.generate($,"value")}`}if(Array.isArray(U)&&U[0]==="."&&U[1]==="this")return U[2];if(Array.isArray(U)&&U[0]==="array")return`[${U.slice(1).map(($)=>{if($===",")return"";if($==="...")return"";if(Array.isArray($)&&$[0]==="...")return`...${$[1]}`;if(Array.isArray($)&&$[0]==="="&&typeof $[1]==="string"){let[,E,R]=$;return`${E} = ${this.generate(R,"value")}`}if(typeof $==="string")return $;return this.formatParam($)}).join(", ")}]`;if(Array.isArray(U)&&U[0]==="object")return`{${U.slice(1).map(($)=>{if(Array.isArray($)&&$[0]==="...")return`...${$[1]}`;if(Array.isArray($)&&$[0]==="default"){let[,_,X]=$,Y=this.generate(X,"value");return`${_} = ${Y}`}let[E,R]=$;if(E===R)return E;return`${E}: ${R}`}).join(", ")}}`;return JSON.stringify(U)}generateBodyWithReturns(U,A=[],$={}){let{sideEffectOnly:E=!1,autoAssignments:R=[],isConstructor:_=!1,hasExpansionParams:X=!1}=$,Y=this.sideEffectOnly;this.sideEffectOnly=E;let F=new Set,D=(J)=>{if(typeof J==="string")F.add(J);else if(Array.isArray(J)){if(J[0]==="rest"||J[0]==="..."){if(typeof J[1]==="string")F.add(J[1])}else if(J[0]==="default"){if(typeof J[1]==="string")F.add(J[1])}else if(J[0]==="array"||J[0]==="object")this.collectVarsFromArray(J,F)}};if(Array.isArray(A))A.forEach(D);let Z=this.collectFunctionVariables(U),M=new Set([...Z].filter((J)=>!this.programVars.has(J)&&!this.reactiveVars?.has(J)&&!F.has(J))),Q=["return","throw","break","continue"],G=["for-in","for-of","for-from","while","until","loop"];if(Array.isArray(U)&&U[0]==="block"){let J=this.unwrapBlock(U);if(X&&this.expansionAfterParams&&this.expansionAfterParams.length>0)J=[...this.expansionAfterParams.map((O,N)=>{return`const ${typeof O==="string"?O:JSON.stringify(O)} = _rest[_rest.length - ${this.expansionAfterParams.length-N}]`}),...J],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:
|
|
164
|
-
`;if(M.size>0){let
|
|
163
|
+
export default ${_}`}return`export default ${this.generate(R,"statement")}`}generateExportAll(U,A,$,E){let[R]=A;return`export * from ${this.addJsExtensionAndAssertions(R)}`}generateExportFrom(U,A,$,E){let[R,_]=A,X=this.addJsExtensionAndAssertions(_);if(Array.isArray(R))return`export { ${R.map((F)=>{if(Array.isArray(F)&&F.length===2)return`${F[0]} as ${F[1]}`;return F}).join(", ")} } from ${X}`;return`export ${R} from ${X}`}generateDoIIFE(U,A,$,E){let[R]=A;return`(${this.generate(R,"statement")})()`}generateRegex(U,A,$,E){if(A.length===0)return U;let[R]=A;return this.generate(R,"value")}generateTaggedTemplate(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");if(Y.startsWith("`"))return`${X}${Y}`;if(Y.startsWith('"')||Y.startsWith("'")){let F=Y.slice(1,-1);return`${X}\`${F}\``}return`${X}\`${Y}\``}generateString(U,A,$,E){let R="`";for(let _=0;_<A.length;_++){let X=A[_];if(X instanceof String)R+=this.extractStringContent(X);else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str interpolation:",X);R+=X.slice(1,-1)}else R+=X;else if(Array.isArray(X))if(X.length===1&&typeof X[0]==="string"&&!Array.isArray(X[0])){let Y=X[0];if(/^[\d"']/.test(Y))R+="${"+this.generate(Y,"value")+"}";else R+="${"+Y+"}"}else{let Y=X;if(X.length===1&&Array.isArray(X[0]))Y=X[0];R+="${"+this.generate(Y,"value")+"}"}}return R+="`",R}findPostfixConditional(U){if(!Array.isArray(U))return null;let A=U[0];if((A==="unless"||A==="if")&&U.length===3)return{type:A,condition:U[1],value:U[2]};if(A==="+"||A==="-"||A==="*"||A==="/")for(let $=1;$<U.length;$++){let E=this.findPostfixConditional(U[$]);if(E)return E.parentOp=A,E.operandIndex=$,E.otherOperands=U.slice(1).filter((R,_)=>_!==$-1),E}return null}generateDestructuringPattern(U){return this.formatParam(U)}generateParamList(U){let A=U.findIndex((E)=>Array.isArray(E)&&E[0]==="expansion");if(A!==-1){let E=U.slice(0,A),R=U.slice(A+1),_=E.map((Y)=>this.formatParam(Y)).join(", "),X=_?`${_}, ..._rest`:"..._rest";return this.expansionAfterParams=R,X}let $=U.findIndex((E)=>Array.isArray(E)&&E[0]==="rest");if($!==-1&&$<U.length-1){let E=U.slice(0,$),R=U[$],_=U.slice($+1),X=E.map((F)=>this.formatParam(F)),Y=X.length>0?`${X.join(", ")}, ...${R[1]}`:`...${R[1]}`;return this.restMiddleParam={restName:R[1],afterParams:_,beforeCount:E.length},Y}return this.expansionAfterParams=null,this.restMiddleParam=null,U.map((E)=>this.formatParam(E)).join(", ")}formatParam(U){if(typeof U==="string")return U;if(Array.isArray(U)&&U[0]==="rest")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="default"){let[,A,$]=U;return`${A} = ${this.generate($,"value")}`}if(Array.isArray(U)&&U[0]==="."&&U[1]==="this")return U[2];if(Array.isArray(U)&&U[0]==="array")return`[${U.slice(1).map(($)=>{if($===",")return"";if($==="...")return"";if(Array.isArray($)&&$[0]==="...")return`...${$[1]}`;if(Array.isArray($)&&$[0]==="="&&typeof $[1]==="string"){let[,E,R]=$;return`${E} = ${this.generate(R,"value")}`}if(typeof $==="string")return $;return this.formatParam($)}).join(", ")}]`;if(Array.isArray(U)&&U[0]==="object")return`{${U.slice(1).map(($)=>{if(Array.isArray($)&&$[0]==="...")return`...${$[1]}`;if(Array.isArray($)&&$[0]==="default"){let[,_,X]=$,Y=this.generate(X,"value");return`${_} = ${Y}`}let[E,R]=$;if(E===R)return E;return`${E}: ${R}`}).join(", ")}}`;return JSON.stringify(U)}generateBodyWithReturns(U,A=[],$={}){let{sideEffectOnly:E=!1,autoAssignments:R=[],isConstructor:_=!1,hasExpansionParams:X=!1}=$,Y=this.sideEffectOnly;this.sideEffectOnly=E;let F=new Set,D=(J)=>{if(typeof J==="string")F.add(J);else if(Array.isArray(J)){if(J[0]==="rest"||J[0]==="..."){if(typeof J[1]==="string")F.add(J[1])}else if(J[0]==="default"){if(typeof J[1]==="string")F.add(J[1])}else if(J[0]==="array"||J[0]==="object")this.collectVarsFromArray(J,F)}};if(Array.isArray(A))A.forEach(D);let Z=this.collectFunctionVariables(U),M=new Set([...Z].filter((J)=>!this.programVars.has(J)&&!this.reactiveVars?.has(J)&&!F.has(J))),Q=["return","throw","break","continue"],G=["for-in","for-of","for-from","while","until","loop"];if(Array.isArray(U)&&U[0]==="block"){let J=this.unwrapBlock(U);if(X&&this.expansionAfterParams&&this.expansionAfterParams.length>0)J=[...this.expansionAfterParams.map((O,N)=>{return`const ${typeof O==="string"?O:JSON.stringify(O)} = _rest[_rest.length - ${this.expansionAfterParams.length-N}]`}),...J],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:q,afterParams:O}=this.restMiddleParam,N=O.length,P=[];if(O.forEach((K,w)=>{let B=typeof K==="string"?K:Array.isArray(K)&&K[0]==="default"?K[1]:JSON.stringify(K),z=N-w;P.push(`const ${B} = ${q}[${q}.length - ${z}]`)}),N>0)P.push(`${q} = ${q}.slice(0, -${N})`);J=[...P,...J],this.restMiddleParam=null}this.indentLevel++;let W=`{
|
|
164
|
+
`;if(M.size>0){let q=Array.from(M).sort().join(", ");W+=this.indent()+`let ${q};
|
|
165
165
|
`}if(R.length>0&&J.length>0&&Array.isArray(J[0])&&J[0][0]==="super"){if(J.length===1&&!_)W+=this.indent()+"return "+this.generate(J[0],"value")+`;
|
|
166
166
|
`;else W+=this.indent()+this.generate(J[0],"statement")+`;
|
|
167
167
|
`;for(let O of R)W+=this.indent()+O+`;
|
|
168
168
|
`;J.slice(1).forEach((O,N)=>{let P=N===J.length-2,K=Array.isArray(O)?O[0]:null;if(!P&&K==="comprehension"){let[,S,I,L]=O;W+=this.indent()+this.generateComprehensionAsLoop(S,I,L)+`
|
|
169
169
|
`;return}if(!_&&P&&(K==="if"||K==="unless")){let[S,I,...L]=O.slice(1),T=(V)=>{return Array.isArray(V)&&V[0]==="block"&&V.length>2};if(T(I)||L.some(T)){W+=this.generateIfElseWithEarlyReturns(O);return}}let w=!_&&!E&&P&&!Q.includes(K)&&!G.includes(K)&&!this.hasExplicitControlFlow(O),B=w?"value":"statement",z=this.generate(O,B);if(w)W+=this.indent()+"return "+z+`;
|
|
170
170
|
`;else W+=this.indent()+this.addSemicolon(O,z)+`
|
|
171
|
-
`})}else{for(let
|
|
172
|
-
`;J.forEach((
|
|
173
|
-
`;return}if(!_&&!E&&N&&(P==="if"||P==="unless")){let[z,S,...I]=
|
|
174
|
-
`;return}}}let K=!_&&!E&&N&&!Q.includes(P)&&!G.includes(P)&&!this.hasExplicitControlFlow(
|
|
175
|
-
`;else W+=this.indent()+this.addSemicolon(
|
|
176
|
-
`})}if(E&&J.length>0){let
|
|
171
|
+
`})}else{for(let q of R)W+=this.indent()+q+`;
|
|
172
|
+
`;J.forEach((q,O)=>{let N=O===J.length-1,P=Array.isArray(q)?q[0]:null;if(!N&&P==="comprehension"){let[,z,S,I]=q;W+=this.indent()+this.generateComprehensionAsLoop(z,S,I)+`
|
|
173
|
+
`;return}if(!_&&!E&&N&&(P==="if"||P==="unless")){let[z,S,...I]=q.slice(1),L=(T)=>{return Array.isArray(T)&&T[0]==="block"&&T.length>2};if(L(S)||I.some(L)){W+=this.generateIfElseWithEarlyReturns(q);return}}if(!_&&!E&&N&&P==="="){let[z,S]=q.slice(1);if(typeof z==="string"&&Array.isArray(S)){let I=S[0];if(I==="comprehension"||I==="for-in"){this.comprehensionTarget=z,W+=this.generate(S,"value"),this.comprehensionTarget=null,W+=this.indent()+`return ${z};
|
|
174
|
+
`;return}}}let K=!_&&!E&&N&&!Q.includes(P)&&!G.includes(P)&&!this.hasExplicitControlFlow(q),w=K?"value":"statement",B=this.generate(q,w);if(K)W+=this.indent()+"return "+B+`;
|
|
175
|
+
`;else W+=this.indent()+this.addSemicolon(q,B)+`
|
|
176
|
+
`})}if(E&&J.length>0){let q=J[J.length-1],O=Array.isArray(q)?q[0]:null;if(!Q.includes(O))W+=this.indent()+`return;
|
|
177
177
|
`}return this.indentLevel--,W+=this.indent()+"}",this.sideEffectOnly=Y,W}if(_||this.hasExplicitControlFlow(U))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(Array.isArray(U)&&(Q.includes(U[0])||G.includes(U[0])))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(this.sideEffectOnly=Y,E)return`{ ${this.generate(U,"statement")}; return; }`;return`{ return ${this.generate(U,"value")}; }`}generateFunctionBody(U,A=[],$=!1){let E=this.expansionAfterParams?.length>0;return this.generateBodyWithReturns(U,A,{sideEffectOnly:$,hasExpansionParams:E})}generateBlockWithReturns(U){if(!Array.isArray(U)||U[0]!=="block")return this.generate(U,"statement");let A=this.unwrapBlock(U);return`{
|
|
178
178
|
${this.withIndent(()=>{return A.map((E,R)=>{let _=R===A.length-1,X=Array.isArray(E)?E[0]:null,F=_&&!["return","throw","break","continue"].includes(X),D=F?"value":"statement",Z=this.generate(E,D);if(F)return this.indent()+"return "+Z+";";return this.indent()+Z+";"})}).join(`
|
|
179
179
|
`)}
|
|
@@ -192,8 +192,8 @@ ${this.indent()}}`}return`{ if (${this.generate(A,"value")}) ${this.generate(U,"
|
|
|
192
192
|
`)E++;continue}A+=R,E++}return A}collectVarsFromArray(U,A){U.slice(1).forEach(($)=>{if($===",")return;if($==="...")return;if(typeof $==="string")A.add($);else if(Array.isArray($)){if($[0]==="..."){if(typeof $[1]==="string")A.add($[1])}else if($[0]==="array")this.collectVarsFromArray($,A);else if($[0]==="object")this.collectVarsFromObject($,A)}})}collectVarsFromObject(U,A){U.slice(1).forEach(($)=>{if(Array.isArray($)){if($[0]==="..."){if(typeof $[1]==="string")A.add($[1])}else if($.length>=2){let[E,R,_]=$;if(_==="="){if(typeof E==="string")A.add(E)}else if(typeof R==="string")A.add(R);else if(Array.isArray(R)){if(R[0]==="array")this.collectVarsFromArray(R,A);else if(R[0]==="object")this.collectVarsFromObject(R,A)}}}})}indent(){return this.indentString.repeat(this.indentLevel)}unwrapBlock(U){if(!Array.isArray(U))return[U];if(U[0]==="block")return U.slice(1);if(Array.isArray(U[0]))return U;return[U]}needsSemicolon(U,A){if(!A||A.endsWith(";"))return!1;if(!A.endsWith("}"))return!0;let $=Array.isArray(U)?U[0]:null;return!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes($)}addSemicolon(U,A){return A+(this.needsSemicolon(U,A)?";":"")}formatStatements(U,A="statement"){return U.map(($)=>this.indent()+this.addSemicolon($,this.generate($,A)))}hasExplicitControlFlow(U){if(!Array.isArray(U))return!1;let A=U[0];if(A==="return"||A==="throw"||A==="break"||A==="continue")return!0;if(A==="block"){let $=U.slice(1);if($.length===0)return!1;return $.some((E)=>Array.isArray(E)&&(E[0]==="return"||E[0]==="throw"||E[0]==="break"||E[0]==="continue"))}if(A==="switch"){let[,,$]=U;return $&&$.some((E)=>{let R=E[2];return this.unwrapBlock(R).some((X)=>Array.isArray(X)&&(X[0]==="return"||X[0]==="throw"||X[0]==="break"||X[0]==="continue"))})}if(A==="if"||A==="unless"){let[,,$,E]=U,R=this.branchHasControlFlow($),_=E&&this.branchHasControlFlow(E);return R&&_}return!1}branchHasControlFlow(U){if(!Array.isArray(U))return!1;let A=this.unwrapBlock(U);if(A.length===0)return!1;let $=A[A.length-1];return Array.isArray($)&&($[0]==="return"||$[0]==="throw"||$[0]==="break"||$[0]==="continue")}withIndent(U){this.indentLevel++;let A=U();return this.indentLevel--,A}isNegativeStep(U){if(!Array.isArray(U))return!1;if(U.length!==2)return!1;return(U[0]instanceof String?U[0].valueOf():U[0])==="-"}generateBranchWithReturn(U){let A=this.unwrapBlock(U),$="";for(let E=0;E<A.length;E++){let R=E===A.length-1,_=A[E],X=Array.isArray(_)?_[0]:null;if(R&&!(X==="return"||X==="throw"||X==="break"||X==="continue"))$+=this.indent()+`return ${this.generate(_,"value")};
|
|
193
193
|
`;else $+=this.indent()+this.generate(_,"statement")+`;
|
|
194
194
|
`}return $}generateComprehensionWithTarget(U,A,$,E){let R="";R+=this.indent()+`${E} = [];
|
|
195
|
-
`;let _=U;if(Array.isArray(U)&&U[0]==="block"&&U.length===2)_=U[1];if(A.length===1){let F=A[0],[D,Z,M,Q]=F;if(D==="for-in"){let G=Q,J=Array.isArray(Z)?Z:[Z],W=J.length===0,[q
|
|
196
|
-
`}else{let w=this.generate(M,"value"),B=
|
|
195
|
+
`;let _=U;if(Array.isArray(U)&&U[0]==="block"&&U.length===2)_=U[1];if(A.length===1){let F=A[0],[D,Z,M,Q]=F;if(D==="for-in"){let G=Q,J=Array.isArray(Z)?Z:[Z],W=J.length===0,[H,q]=W?["_i",null]:J,O=H;if(Array.isArray(H)&&(H[0]==="array"||H[0]==="object"))O=this.generateDestructuringPattern(H);if(G&&G!==null){let P=Array.isArray(M)&&M[0];if(P instanceof String)P=P.valueOf();if(P===".."||P==="..."){let w=P==="...",[B,z]=M.slice(1),S=this.generate(B,"value"),I=this.generate(z,"value"),L=this.generate(G,"value"),T=w?"<":"<=";R+=this.indent()+`for (let ${O} = ${S}; ${O} ${T} ${I}; ${O} += ${L}) {
|
|
196
|
+
`}else{let w=this.generate(M,"value"),B=q||"_i",z=this.generate(G,"value");if(this.isNegativeStep(G))R+=this.indent()+`for (let ${B} = ${w}.length - 1; ${B} >= 0; ${B} += ${z}) {
|
|
197
197
|
`;else R+=this.indent()+`for (let ${B} = 0; ${B} < ${w}.length; ${B} += ${z}) {
|
|
198
198
|
`;if(this.indentLevel++,!W)R+=this.indent()+`const ${O} = ${w}[${B}];
|
|
199
199
|
`}}else{let P=this.generate(M,"value");R+=this.indent()+`for (const ${O} of ${P}) {
|
|
@@ -202,15 +202,15 @@ ${this.indent()}}`}return`{ if (${this.generate(A,"value")}) ${this.generate(U,"
|
|
|
202
202
|
`,$&&$.length>0)this.indentLevel--,R+=this.indent()+`}
|
|
203
203
|
`;return this.indentLevel--,R+=this.indent()+`}
|
|
204
204
|
`,R}}let Y=this.containsAwait(U)?"async ":"";return this.indent()+`${E} = (${Y}() => { /* complex comprehension */ })();
|
|
205
|
-
`}generateComprehensionAsLoop(U,A,$){let E="";if(A.length===1){let R=A[0],[_,X,Y,F]=R;if(_==="for-in"){let D=F,Z=Array.isArray(X)?X:[X],M=Z.length===0,[Q,G]=M?["_i",null]:Z,J=Q;if(Array.isArray(Q)&&(Q[0]==="array"||Q[0]==="object"))J=this.generateDestructuringPattern(Q);if(D&&D!==null){let W=Array.isArray(Y)&&Y[0];if(W instanceof String)W=W.valueOf();let
|
|
206
|
-
`,this.indentLevel++,!M)E+=this.indent()+`const ${J} = ${
|
|
207
|
-
`}if($&&$.length>0){if(!
|
|
208
|
-
`,this.indentLevel++,E+=this.indent()+`if (${$.map((
|
|
205
|
+
`}generateComprehensionAsLoop(U,A,$){let E="";if(A.length===1){let R=A[0],[_,X,Y,F]=R;if(_==="for-in"){let D=F,Z=Array.isArray(X)?X:[X],M=Z.length===0,[Q,G]=M?["_i",null]:Z,J=Q;if(Array.isArray(Q)&&(Q[0]==="array"||Q[0]==="object"))J=this.generateDestructuringPattern(Q);if(D&&D!==null){let W=Array.isArray(Y)&&Y[0];if(W instanceof String)W=W.valueOf();let H=W===".."||W==="...";if(H){let q=W==="...",[O,N]=Y.slice(1),P=this.generate(O,"value"),K=this.generate(N,"value"),w=this.generate(D,"value");E+=`for (let ${J} = ${P}; ${J} ${q?"<":"<="} ${K}; ${J} += ${w}) `}else{let q=this.generate(Y,"value"),O=G||"_i",N=this.generate(D,"value"),P=this.isNegativeStep(D),K=P&&(D[1]==="1"||D[1]===1||D[1]instanceof String&&D[1].valueOf()==="1"),w=!P&&(D==="1"||D===1||D instanceof String&&D.valueOf()==="1");if(K)E+=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O}--) `;else if(w)E+=`for (let ${O} = 0; ${O} < ${q}.length; ${O}++) `;else if(P)E+=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O} += ${N}) `;else E+=`for (let ${O} = 0; ${O} < ${q}.length; ${O} += ${N}) `;if(E+=`{
|
|
206
|
+
`,this.indentLevel++,!M)E+=this.indent()+`const ${J} = ${q}[${O}];
|
|
207
|
+
`}if($&&$.length>0){if(!H)E+=this.indent();E+=`{
|
|
208
|
+
`,this.indentLevel++,E+=this.indent()+`if (${$.map((q)=>this.generate(q,"value")).join(" && ")}) {
|
|
209
209
|
`,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
|
|
210
210
|
`,this.indentLevel--,E+=this.indent()+`}
|
|
211
|
-
`,this.indentLevel--,E+=this.indent()+"}"}else{if(!
|
|
211
|
+
`,this.indentLevel--,E+=this.indent()+"}"}else{if(!H)E+=this.indent();E+=`{
|
|
212
212
|
`,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
|
|
213
|
-
`,this.indentLevel--,E+=this.indent()+"}"}if(!
|
|
213
|
+
`,this.indentLevel--,E+=this.indent()+"}"}if(!H)this.indentLevel--,E+=`
|
|
214
214
|
`+this.indent()+"}";return E}else if(G){let W=this.generate(Y,"value");E+=`for (let ${G} = 0; ${G} < ${W}.length; ${G}++) `,E+=`{
|
|
215
215
|
`,this.indentLevel++,E+=this.indent()+`const ${J} = ${W}[${indexVarName}];
|
|
216
216
|
`}else{if(E+=`for (const ${J} of ${this.generate(Y,"value")}) `,$&&$.length>0)E+=`{
|
|
@@ -252,7 +252,7 @@ ${this.indent()}}`}return`{ if (${this.generate(A,"value")}) ${this.generate(U,"
|
|
|
252
252
|
`,_+=this.withIndent(()=>this.generateBranchWithReturn(E)),_+=this.indent()+"}";for(let Y of R)if(_+=" else ",Array.isArray(Y)&&Y[0]==="if"){let[,F,D,...Z]=Y;if(_+=`if (${this.generate(F,"value")}) {
|
|
253
253
|
`,_+=this.withIndent(()=>this.generateBranchWithReturn(D)),_+=this.indent()+"}",Z.length>0)for(let M of Z)_+=` else {
|
|
254
254
|
`,_+=this.withIndent(()=>this.generateBranchWithReturn(M)),_+=this.indent()+"}"}else _+=`{
|
|
255
|
-
`,_+=this.withIndent(()=>this.generateBranchWithReturn(Y)),_+=this.indent()+"}";return _}unwrap(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let A=0,$=!0;for(let E=0;E<U.length;E++){if(U[E]==="(")A++;if(U[E]===")")A--;if(A===0&&E<U.length-1){$=!1;break}}if($)U=U.slice(1,-1);else break}return U}flattenBinaryChain(U){if(!Array.isArray(U)||U.length<3)return U;let[A,...$]=U;if(A!=="&&"&&A!=="||")return U;let E=[],R=(_)=>{if(Array.isArray(_)&&_[0]===A)for(let X=1;X<_.length;X++)R(_[X]);else E.push(_)};for(let _ of $)R(_);return[A,...E]}unwrapLogical(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let A=0,$=1/0;for(let E=1;E<U.length-1;E++){if(U[E]==="(")A++;if(U[E]===")")A--;$=Math.min($,A)}if($>=0)U=U.slice(1,-1);else break}return U}unwrapIfBranch(U){if(Array.isArray(U)&&U.length===1){let A=U[0];if(!Array.isArray(A)||A[0]!=="block")return A}return U}isNegativeOneLiteral(U){return Array.isArray(U)&&U[0]==="-"&&U.length===2&&(U[1]==="1"||U[1]===1||U[1]instanceof String&&U[1].valueOf()==="1")}hasStatementInBranch(U){if(!Array.isArray(U))return!1;let A=U[0];if(A==="return"||A==="throw"||A==="break"||A==="continue")return!0;if(A==="block")return U.slice(1).some((E)=>this.hasStatementInBranch(E));return!1}isMultiStatementBlock(U){return Array.isArray(U)&&U[0]==="block"&&U.length>2}hasNestedMultiStatement(U){if(!Array.isArray(U))return!1;if(U[0]==="if"){let[A,$,E,...R]=U;return this.isMultiStatementBlock(E)||R.some((_)=>this.hasNestedMultiStatement(_))}return!1}buildTernaryChain(U){if(U.length===0)return"undefined";if(U.length===1)return this.extractExpression(this.unwrapIfBranch(U[0]));let A=U[0];if(Array.isArray(A)&&A[0]==="if"){let[$,E,R,..._]=A,X=this.extractExpression(this.unwrapIfBranch(R)),Y=this.buildTernaryChain([..._,...U.slice(1)]);return`(${this.generate(E,"value")} ? ${X} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(A))}generateIfAsExpression(U,A,$){if(this.isMultiStatementBlock(A)||this.hasStatementInBranch(A)||$.some((Y)=>this.isMultiStatementBlock(Y)||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait(U)||this.containsAwait(A)||$.some((M)=>this.containsAwait(M)),Z=`${Y?"await ":""}(${Y?"async ":""}() => { `;Z+=`if (${this.generate(U,"value")}) `,Z+=this.generateBlockWithReturns(A);for(let M of $)if(Z+=" else ",Array.isArray(M)&&M[0]==="if"){let[Q,G,J,...W]=M;Z+=`if (${this.generate(G,"value")}) `,Z+=this.generateBlockWithReturns(J);for(let
|
|
255
|
+
`,_+=this.withIndent(()=>this.generateBranchWithReturn(Y)),_+=this.indent()+"}";return _}unwrap(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let A=0,$=!0;for(let E=0;E<U.length;E++){if(U[E]==="(")A++;if(U[E]===")")A--;if(A===0&&E<U.length-1){$=!1;break}}if($)U=U.slice(1,-1);else break}return U}flattenBinaryChain(U){if(!Array.isArray(U)||U.length<3)return U;let[A,...$]=U;if(A!=="&&"&&A!=="||")return U;let E=[],R=(_)=>{if(Array.isArray(_)&&_[0]===A)for(let X=1;X<_.length;X++)R(_[X]);else E.push(_)};for(let _ of $)R(_);return[A,...E]}unwrapLogical(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let A=0,$=1/0;for(let E=1;E<U.length-1;E++){if(U[E]==="(")A++;if(U[E]===")")A--;$=Math.min($,A)}if($>=0)U=U.slice(1,-1);else break}return U}unwrapIfBranch(U){if(Array.isArray(U)&&U.length===1){let A=U[0];if(!Array.isArray(A)||A[0]!=="block")return A}return U}isNegativeOneLiteral(U){return Array.isArray(U)&&U[0]==="-"&&U.length===2&&(U[1]==="1"||U[1]===1||U[1]instanceof String&&U[1].valueOf()==="1")}hasStatementInBranch(U){if(!Array.isArray(U))return!1;let A=U[0];if(A==="return"||A==="throw"||A==="break"||A==="continue")return!0;if(A==="block")return U.slice(1).some((E)=>this.hasStatementInBranch(E));return!1}isMultiStatementBlock(U){return Array.isArray(U)&&U[0]==="block"&&U.length>2}hasNestedMultiStatement(U){if(!Array.isArray(U))return!1;if(U[0]==="if"){let[A,$,E,...R]=U;return this.isMultiStatementBlock(E)||R.some((_)=>this.hasNestedMultiStatement(_))}return!1}buildTernaryChain(U){if(U.length===0)return"undefined";if(U.length===1)return this.extractExpression(this.unwrapIfBranch(U[0]));let A=U[0];if(Array.isArray(A)&&A[0]==="if"){let[$,E,R,..._]=A,X=this.extractExpression(this.unwrapIfBranch(R)),Y=this.buildTernaryChain([..._,...U.slice(1)]);return`(${this.generate(E,"value")} ? ${X} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(A))}generateIfAsExpression(U,A,$){if(this.isMultiStatementBlock(A)||this.hasStatementInBranch(A)||$.some((Y)=>this.isMultiStatementBlock(Y)||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait(U)||this.containsAwait(A)||$.some((M)=>this.containsAwait(M)),Z=`${Y?"await ":""}(${Y?"async ":""}() => { `;Z+=`if (${this.generate(U,"value")}) `,Z+=this.generateBlockWithReturns(A);for(let M of $)if(Z+=" else ",Array.isArray(M)&&M[0]==="if"){let[Q,G,J,...W]=M;Z+=`if (${this.generate(G,"value")}) `,Z+=this.generateBlockWithReturns(J);for(let H of W)if(Z+=" else ",Array.isArray(H)&&H[0]==="if"){let[q,O,N,...P]=H;Z+=`if (${this.generate(O,"value")}) `,Z+=this.generateBlockWithReturns(N),$.push(...P)}else Z+=this.generateBlockWithReturns(H)}else Z+=this.generateBlockWithReturns(M);return Z+=" })()",Z}let R=this.extractExpression(this.unwrapIfBranch(A)),_=this.buildTernaryChain($),X=this.generate(U,"value");if(Array.isArray(U)&&(U[0]==="yield"||U[0]==="await"))X=`(${X})`;return`(${X} ? ${R} : ${_})`}generateIfAsStatement(U,A,$){let R=`if (${this.unwrap(this.generate(U,"value"))}) `;R+=this.generate(this.unwrapIfBranch(A),"statement");for(let _ of $)R+=" else ",R+=this.generate(this.unwrapIfBranch(_),"statement");return R}isStaticMember(U){return Array.isArray(U)&&U[0]==="."&&U[1]==="this"}isComputedMember(U){return Array.isArray(U)&&U[0]==="computed"}extractMemberName(U){if(this.isStaticMember(U))return U[2];else if(this.isComputedMember(U))return`[${this.generate(U[1],"value")}]`;else return U}isBoundMethod(U){return Array.isArray(U)&&U[0]==="=>"}generateSwitchCaseBody(U,A){let $="";if(this.hasExplicitControlFlow(U)){let R=this.unwrapBlock(U);for(let _ of R)$+=this.indent()+this.generate(_,"statement")+`;
|
|
256
256
|
`}else if(A==="value")if(Array.isArray(U)&&U[0]==="block"&&U.length>2){let R=U.slice(1);for(let _=0;_<R.length;_++)if(_===R.length-1){let Y=this.generate(R[_],"value");$+=this.indent()+`return ${Y};
|
|
257
257
|
`}else $+=this.indent()+this.generate(R[_],"statement")+`;
|
|
258
258
|
`}else{let R=this.extractExpression(U);$+=this.indent()+`return ${R};
|
|
@@ -603,4 +603,4 @@ function __catchErrors(fn) {
|
|
|
603
603
|
`),E=$.findIndex((D)=>D==="__DATA__");if(E!==-1){let D=$.slice(E+1);A=D.length>0?D.join(`
|
|
604
604
|
`)+`
|
|
605
605
|
`:"",U=$.slice(0,E).join(`
|
|
606
|
-
`)}let _=new k1().tokenize(U);if(this.options.showTokens)_.forEach((D)=>console.log(`${D[0].padEnd(12)} ${JSON.stringify(D[1])}`)),console.log();A1.lexer={tokens:_,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let D=this.tokens[this.pos++];return this.yytext=D[1],this.yylloc=D[2],D[0]}};let X;try{X=A1.parse(U)}catch(D){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(U)||/\?\s+\w+\s+\?\s+/.test(U))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw D}if(this.options.showSExpr)console.log(r(X,0,!0)),console.log();let Y=new f({dataSection:A,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),F=Y.compile(X);return{tokens:_,sexpr:X,code:F,data:A,reactiveVars:Y.reactiveVars}}compileToJS(U){return this.compile(U).code}compileToSExpr(U){return this.compile(U).sexpr}}function R2(U,A={}){return new q1(A).compile(U)}function H1(U,A={}){return new q1(A).compileToJS(U)}var Q2="2.5.
|
|
606
|
+
`)}let _=new k1().tokenize(U);if(this.options.showTokens)_.forEach((D)=>console.log(`${D[0].padEnd(12)} ${JSON.stringify(D[1])}`)),console.log();A1.lexer={tokens:_,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let D=this.tokens[this.pos++];return this.yytext=D[1],this.yylloc=D[2],D[0]}};let X;try{X=A1.parse(U)}catch(D){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(U)||/\?\s+\w+\s+\?\s+/.test(U))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw D}if(this.options.showSExpr)console.log(r(X,0,!0)),console.log();let Y=new f({dataSection:A,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),F=Y.compile(X);return{tokens:_,sexpr:X,code:F,data:A,reactiveVars:Y.reactiveVars}}compileToJS(U){return this.compile(U).code}compileToSExpr(U){return this.compile(U).sexpr}}function R2(U,A={}){return new q1(A).compile(U)}function H1(U,A={}){return new q1(A).compileToJS(U)}var Q2="2.5.1",G2="2026-01-16@07:47:41GMT",_2=(U)=>{let A=U.match(/^[ \t]*(?=\S)/gm),$=Math.min(...(A||[]).map((E)=>E.length));return U.replace(RegExp(`^[ ]{${$}}`,"gm"),"").trim()};async function f3(){let U=document.querySelectorAll('script[type="text/rip"]');for(let A of U){if(A.hasAttribute("data-rip-processed"))continue;try{let $=_2(A.textContent),E=H1($);(0,eval)(E),A.setAttribute("data-rip-processed","true")}catch($){console.error("Error compiling Rip script:",$),console.error("Script content:",A.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",f3);else f3();function A2(U){try{let $=H1(U).replace(/^let\s+[^;]+;\s*\n\s*/m,"");$=$.replace(/^const\s+/gm,"var ");let E=(0,eval)($);if(E!==void 0)globalThis._=E;return E}catch(A){console.error("Rip compilation error:",A.message);return}}if(typeof globalThis<"u")globalThis.rip=A2;export{A2 as rip,f3 as processRipScripts,A1 as parser,r as formatSExpr,H1 as compileToJS,R2 as compile,Q2 as VERSION,k1 as Lexer,q1 as Compiler,f as CodeGenerator,G2 as BUILD_DATE};
|