rip-lang 2.9.2 → 3.0.0
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 +45 -2
- package/README.md +55 -42
- package/docs/RIP-INTERNALS.md +576 -0
- package/docs/RIP-LANG.md +1126 -0
- package/docs/{TYPES.md → RIP-TYPES.md} +3 -3
- package/docs/dist/rip.browser.js +3278 -5474
- package/docs/dist/rip.browser.min.js +248 -332
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/package.json +1 -1
- package/src/browser.js +3 -20
- package/src/compiler.js +1683 -4550
- package/src/grammar/grammar.rip +529 -488
- package/src/lexer.js +1318 -3035
- package/src/parser.js +212 -220
- package/src/repl.js +16 -9
- package/docs/BROWSER.md +0 -990
- package/docs/GUIDE.md +0 -636
- package/docs/INTERNALS.md +0 -857
- package/docs/RATIONALE.md +0 -180
- package/docs/examples/README.md +0 -33
- package/docs/examples/arrows.rip +0 -74
- package/docs/examples/async-await.rip +0 -59
- package/docs/examples/existential.rip +0 -86
- package/docs/examples/fibonacci.rip +0 -12
- package/docs/examples/module.rip +0 -48
- package/docs/examples/ranges.rip +0 -45
- package/docs/examples/reactivity.rip +0 -48
- package/docs/examples/switch.rip +0 -50
- package/docs/examples/ternary.rip +0 -36
- /package/docs/{REACTIVITY.md → RIP-REACTIVITY.md} +0 -0
|
@@ -1,266 +1,240 @@
|
|
|
1
|
-
var
|
|
2
|
-
`)
|
|
3
|
-
${
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
`).
|
|
7
|
-
|
|
8
|
-
`);if(D
|
|
9
|
-
`)))return 0;if(X=this.prev(),X)X[_?"spaced":"newLine"]=!0;if(_)return _[0].length;else return 0}lineToken({chunk:_=this.chunk,offset:E=0}={}){var X,R,A,$,Y,F,G,Z,M,D,Q;if(!(Y=N2.exec(_)))return 0;if($=Y[0],M=this.prev(),X=(M!=null?M[0]:void 0)==="\\",!((X||((D=this.seenFor)!=null?D.endsLength:void 0)<this.ends.length)&&this.seenFor))this.seenFor=!1;if(!(X&&this.seenImport||this.importSpecifierList))this.seenImport=!1;if(!(X&&this.seenExport||this.exportSpecifierList))this.seenExport=!1;if(Q=$.length-1-$.lastIndexOf(`
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
`)
|
|
13
|
-
`)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`)
|
|
17
|
-
`),
|
|
18
|
-
`),[A]=d.call(F,-1),E=A.length,Y=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+_-E),Y<0)Y=0;X=this.getLocationDataCompensation(this.chunkOffset+_+Y-E,this.chunkOffset+_+Y)}else E+=G.length,X=R;return[this.chunkLine+$,E+X,this.chunkOffset+_+R]}makeLocationData({offsetInChunk:_,length:E}){var X,R,A;return A={range:[]},[A.first_line,A.first_column,A.range[0]]=this.getLineAndColumnFromChunk(_),R=E>0?E-1:0,[A.last_line,A.last_column,X]=this.getLineAndColumnFromChunk(_+R),[A.last_line_exclusive,A.last_column_exclusive]=this.getLineAndColumnFromChunk(_+R+(E>0?1:0)),A.range[1]=E>0?X+1:X,A}makeToken(_,E,{offset:X=0,length:R=E.length,origin:A,generated:$,indentSize:Y}={}){var F=[_,E,this.makeLocationData({offsetInChunk:X,length:R})];if(A)F.origin=A;if($)F.generated=!0;if(Y!=null)F.indentSize=Y;return F}token(_,E,{offset:X,length:R,origin:A,data:$,generated:Y,indentSize:F}={}){var G=this.makeToken(_,E,{offset:X,length:R,origin:A,generated:Y,indentSize:F});if($)r(G,$);return this.tokens.push(G),G}tag(){var _,E;return _=this.tokens,[E]=d.call(_,-1),E!=null?E[0]:void 0}value(_=!1){var E,X;if(E=this.tokens,[X]=d.call(E,-1),_&&(X!=null?X.origin:void 0)!=null)return X.origin[1];else return X!=null?X[1]:void 0}prev(){return this.tokens[this.tokens.length-1]}unfinished(){var _;return K2.test(this.chunk)||(_=this.tag(),I.call(G1,_)>=0)}validateUnicodeCodePointEscapes(_,E){return e2(_,i2(E,{error:this.error}))}validateEscapes(_,E={}){var X,R,A,$,Y,F,G,Z,M,D;if($=E.isRegex?B2:u2,Y=$.exec(_),!Y)return;return Y[0],X=Y[1],G=Y[2],R=Y[3],D=Y[4],M=Y[5],F=G?"octal escape sequences are not allowed":"invalid escape sequence",A=`\\${G||R||D||M}`,this.error(`${F} ${A}`,{offset:((Z=E.offsetInChunk)!=null?Z:0)+Y.index+X.length,length:A.length})}suppressSemicolons(){var _,E,X;X=[];while(this.value()===";")if(this.tokens.pop(),_=(E=this.prev())!=null?E[0]:void 0,I.call(["=",...G1],_)>=0)X.push(this.error("unexpected ;"));else X.push(void 0);return X}error(_,E={}){var X,R,A,$,Y;return A="first_line"in E?E:([R,X]=this.getLineAndColumnFromChunk(($=E.offset)!=null?$:0),{first_line:R,first_column:X,last_column:X+((Y=E.length)!=null?Y:1)-1}),a2(_,A)}},R3=function(U,_=U){switch(!1){case I.call([...N1,...m],U)<0:return`keyword '${_}' can't be assigned`;case I.call(p1,U)<0:return`'${_}' can't be assigned`;case I.call(q1,U)<0:return`reserved word '${_}' can't be assigned`;default:return!1}};g2=function(U){var _;if(U[0]==="IDENTIFIER")return!0;else if(U[0]==="FOR")return!1;else if((_=U[1])==="{"||_==="["||_===","||_===":")return!1;else return!0};r=function(U,_){return Object.assign(U.data!=null?U.data:U.data={},_)};N1=["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"];m=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def"];l1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"};c1=function(){var U=[];for(E1 in l1)U.push(E1);return U}();m=m.concat(c1);q1=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"];p1=["arguments","eval"];var Y3=N1.concat(q1).concat(p1);R2=65279;Z2=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;z2=/^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;O2=/^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;h1=/^[^\n\S]+/;_2=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;A2=/^[-=]>/;N2=/^(?:\n[^\n\S]*)+/;Q2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;M2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;f2=/^(?:'''|"""|'|")/;v2=/^(?:[^\\']|\\[\s\S])*/;y2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/;Y2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;$2=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/;X2=/\n+([^\n\S]*)(?=\S)/g;P2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;L2=/^\w*/;b2=/^(?!.*(.).*\1)[gimsuy]*$/;F2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/;G2=/(\s+)(#(?!{).*)/gm;T2=/^(\/|\/{3}\s*)(\*)/;S2=/^\/=?\s/;U2=/\*\//;K2=/^\s*(?:,|\??\.(?![.\d])|\??::)/;u2=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;B2=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d)|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;C2=/\s+$/;V1=["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="];C1=["NEW","TYPEOF","DELETE"];h2=["!","~"];j2=["<<",">>",">>>"];E2=["==","!=","===","!==","<",">","<=",">=","=~"];H2=["*","/","%","//","%%"];I2=["IN","OF","INSTANCEOF"];c2=["TRUE","FALSE"];F1=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER","DYNAMIC_IMPORT","?."];k1=F1.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::","?."]);l2=["IDENTIFIER",")","]","NUMBER"];q2=k1.concat(["++","--"]);W2=["INDENT","OUTDENT","TERMINATOR"];D2=[")","}","]"];U1=function(U,_){var E,X,R,A,$;if(!U.comments)return;if(_.comments&&_.comments.length!==0){$=[],A=U.comments;for(X=0,R=A.length;X<R;X++)if(E=A[X],E.unshift)$.push(E);else _.comments.push(E);_.comments=$.concat(_.comments)}else _.comments=U.comments;return delete U.comments};x=function(U,_,E,X){var R=[U,_];if(R.generated=!0,E)R.origin=E;if(X)U1(X,R);return R};w2=function(){class U{rewrite(_){var E,X,R;if(this.tokens=_,typeof process<"u"&&process!==null?(E=process.env)!=null?E.DEBUG_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_REWRITTEN_TOKEN_STREAM)console.log("Initial token stream:");console.log(function(){var A,$,Y,F;Y=this.tokens,F=[];for(A=0,$=Y.length;A<$;A++)R=Y[A],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}if(this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.convertPostfixSpreadRest(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.rescueStowawayComments(),this.addLocationDataToGeneratedTokens(),this.fixIndentationLocationData(),this.exposeTokenDataToGrammar(),typeof process<"u"&&process!==null?(X=process.env)!=null?X.DEBUG_REWRITTEN_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_TOKEN_STREAM)console.log("Rewritten token stream:");console.log(function(){var A,$,Y,F;Y=this.tokens,F=[];for(A=0,$=Y.length;A<$;A++)R=Y[A],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}return this.tokens}scanTokens(_){var E,X,R;({tokens:R}=this),E=0;while(X=R[E])E+=_.call(this,X,E,R);return!0}detectEnd(_,E,X,R={}){var A,$,Y,F,G;({tokens:G}=this),A=0;while(F=G[_]){if(A===0&&E.call(this,F,_))return X.call(this,F,_);if($=F[0],I.call(a,$)>=0)A+=1;else if(Y=F[0],I.call(p,Y)>=0)A-=1;if(A<0){if(R.returnOnNegativeLevel)return;return X.call(this,F,_)}_+=1}return _-1}removeLeadingNewlines(){var _,E,X,R,A,$,Y,F,G;Y=this.tokens;for(_=E=0,A=Y.length;E<A;_=++E)if([G]=Y[_],G!=="TERMINATOR")break;if(_===0)return;F=this.tokens.slice(0,_);for(X=0,$=F.length;X<$;X++)R=F[X],U1(R,this.tokens[_]);return this.tokens.splice(0,_)}closeOpenCalls(){var _,E;return E=function(X,R){var A;return(A=X[0])===")"||A==="CALL_END"},_=function(X,R){return X[0]="CALL_END"},this.scanTokens(function(X,R){if(X[0]==="CALL_START")this.detectEnd(R+1,E,_);return 1})}closeOpenIndexes(){var _,E,X;return X=null,E=function(R,A){var $;return($=R[0])==="]"||$==="INDEX_END"},_=function(R,A){if(this.tokens.length>=A&&this.tokens[A+1][0]===":")return X[0]="[",R[0]="]";else return R[0]="INDEX_END"},this.scanTokens(function(R,A){if(R[0]==="INDEX_START")X=R,this.detectEnd(A+1,E,_);return 1})}indexOfTag(_,...E){var X,R,A,$,Y;X=0;for(R=A=0,$=E.length;0<=$?A<$:A>$;R=0<=$?++A:--A){if(E[R]==null)continue;if(typeof E[R]==="string")E[R]=[E[R]];if(Y=this.tag(_+R+X),I.call(E[R],Y)<0)return-1}return _+R+X-1}looksObjectish(_){var E,X;if(this.indexOfTag(_,"@",null,":")!==-1||this.indexOfTag(_,null,":")!==-1)return!0;if(X=this.indexOfTag(_,a),X!==-1){if(E=null,this.detectEnd(X+1,function(R){var A;return A=R[0],I.call(p,A)>=0},function(R,A){return E=A}),this.tag(E+1)===":")return!0}return!1}findTagsBackwards(_,E){var X,R,A,$,Y,F,G;X=[];while(_>=0&&(X.length||($=this.tag(_),I.call(E,$)<0)&&((Y=this.tag(_),I.call(a,Y)<0)||this.tokens[_].generated)&&(F=this.tag(_),I.call(Y1,F)<0))){if(R=this.tag(_),I.call(p,R)>=0)X.push(this.tag(_));if((A=this.tag(_),I.call(a,A)>=0)&&X.length)X.pop();_-=1}return G=this.tag(_),I.call(E,G)>=0}addImplicitBracesAndParens(){var _,E,X;return _=[],E=null,X=!1,this.scanTokens(function(R,A,$){var Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O,S,T,B,L,j,w,P,V,v,f,c,C,t,g,Z1,P1,J1,D1,Q1,h,i1,L1,s1,e,d1,R1,y;if([y]=R,[w]=P=A>0?$[A-1]:[],[S]=T=A<$.length-1?$[A+1]:[],h=function(){return _[_.length-1]},i1=A,G=function(u){return A-i1+u},N=function(u){var b;return u!=null?(b=u[2])!=null?b.ours:void 0:void 0},z=function(u){return N(u)&&(u!=null?u[0]:void 0)==="{"},W=function(u){return N(u)&&(u!=null?u[0]:void 0)==="("},Q=function(){return N(h())},J=function(){return W(h())},q=function(){return z(h())},K=function(){var u;return Q()&&((u=h())!=null?u[0]:void 0)==="CONTROL"},L1=function(u){return _.push(["(",u,{ours:!0}]),$.splice(u,0,x("CALL_START","(",["","implicit function call",R[2]],P))},Y=function(){return _.pop(),$.splice(A,0,x("CALL_END",")",["","end of input",R[2]],P)),A+=1},s1=function(u,{startsLine:b=!0,continuationLineIndent:s}={}){var l;return _.push(["{",u,{sameLine:!0,startsLine:b,ours:!0,continuationLineIndent:s}]),l=new String("{"),l.generated=!0,$.splice(u,0,x("{",l,R,P))},F=function(u){return u=u!=null?u:A,_.pop(),$.splice(u,0,x("}","}",R,P)),A+=1},Z=(u)=>{var b=null;if(this.detectEnd(u,function(s){return s[0]==="TERMINATOR"},function(s,l){return b=l},{returnOnNegativeLevel:!0}),b==null)return!1;return this.looksObjectish(b+1)},(J()||q())&&I.call(b1,y)>=0||q()&&w===":"&&y==="FOR")return _.push(["CONTROL",A,{ours:!0}]),G(1);if(y==="INDENT"&&Q()){if(w!=="=>"&&w!=="->"&&w!=="["&&w!=="("&&w!==","&&w!=="{"&&w!=="ELSE"&&w!=="=")while(J()||q()&&w!==":")if(J())Y();else F();if(K())_.pop();return _.push([y,A]),G(1)}if(I.call(a,y)>=0)return _.push([y,A]),G(1);if(I.call(p,y)>=0){while(Q())if(J())Y();else if(q())F();else _.pop();E=_.pop()}if(D=()=>{var u,b,s,l;if(s=this.findTagsBackwards(A,["FOR"])&&this.findTagsBackwards(A,["FORIN","FOROF","FORFROM"]),u=s||this.findTagsBackwards(A,["WHILE","UNTIL","LOOP","LEADING_WHEN"]),!u)return!1;return b=!1,l=R[2].first_line,this.detectEnd(A,function(r1,a1){var X1;return X1=r1[0],I.call(Y1,X1)>=0},function(r1,a1){var X1;return[w,,{first_line:X1}]=$[a1-1]||[],b=l===X1&&(w==="->"||w==="=>")},{returnOnNegativeLevel:!0}),b},(I.call(v1,y)>=0&&R.spaced||y==="?"&&A>0&&!$[A-1].spaced)&&(I.call(u1,S)>=0||S==="..."&&(V=this.tag(A+2),I.call(u1,V)>=0)&&!this.findTagsBackwards(A,["INDEX_START","["])||I.call(x1,S)>=0&&!T.spaced&&!T.newLine)&&!D()&&!((y==="]"||y==="}")&&(S==="->"||S==="=>"))){if(y==="?")y=R[0]="FUNC_EXIST";return L1(A+1),G(2)}if(I.call(v1,y)>=0&&this.indexOfTag(A+1,"INDENT")>-1&&this.looksObjectish(A+2)&&!this.findTagsBackwards(A,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"])&&!(((v=g=(f=h())!=null?f[0]:void 0)==="{"||v==="[")&&!N(h())&&this.findTagsBackwards(A,g)))return L1(A+1),_.push(["INDENT",A+2]),G(3);if(y==="SPACE?")X=!0;if(y===":"){if(X)return X=!1,G(1);if(g=function(){var u;switch(!1){case(u=this.tag(A-1),I.call(p,u)<0):if([d1,e]=E,d1==="["&&e>0&&this.tag(e-1)==="@"&&!$[e-1].spaced)return e-1;else return e;break;case this.tag(A-2)!=="@":return A-2;default:return A-1}}.call(this),R1=g<=0||(c=this.tag(g-1),I.call(Y1,c)>=0)||$[g-1].newLine,h()){if([Q1,P1]=h(),D1=_[_.length-2],(Q1==="{"||Q1==="INDENT"&&(D1!=null?D1[0]:void 0)==="{"&&!N(D1)&&this.findTagsBackwards(P1-1,["{"]))&&(R1||this.tag(g-1)===","||this.tag(g-1)==="{")&&(C=this.tag(g-1),I.call(G1,C)<0))return G(1)}return j=A>1?$[A-2]:[],s1(g,{startsLine:!!R1,continuationLineIndent:j.continuationLineIndent}),G(2)}if(I.call(Y1,y)>=0)for(H=_.length-1;H>=0;H+=-1){if(J1=_[H],!N(J1))break;if(z(J1))J1[2].sameLine=!1}if(y==="TERMINATOR"&&R.endsContinuationLineIndentation){({preContinuationLineIndent:L}=R.endsContinuationLineIndentation);while(q()&&(M=h()[2].continuationLineIndent)!=null&&M>L)F()}O=w==="OUTDENT"||P.newLine;var T1=y==="||"||y==="&&",n1=!1;if(T1&&A+1<$.length){var A1=$[A+1][0],i=A+1;if(A1==="("||A1==="["||A1==="{"){var B1=1;i++;while(i<$.length&&B1>0){var _1=$[i][0];if(_1==="("||_1==="["||_1==="{")B1++;else if(_1===")"||_1==="]"||_1==="}")B1--;i++}}else if(A1!=="TERMINATOR"&&A1!=="OUTDENT"&&A1!==",")i++;if(i<$.length&&$[i][0]===",")n1=!0}if(I.call(g1,y)>=0&&!(T1&&n1)||I.call(K1,y)>=0&&O||(y===".."||y==="...")&&this.findTagsBackwards(A,["INDEX_START"]))while(Q())if([Q1,P1,{sameLine:Z1,startsLine:R1}]=h(),J()&&w!==","||w===","&&y==="TERMINATOR"&&S==null)Y();else if(q()&&!T1&&Z1&&y!=="TERMINATOR"&&w!==":"&&!((y==="POST_IF"||y==="POST_UNLESS"||y==="FOR"||y==="WHILE"||y==="UNTIL")&&R1&&Z(A+1)))F();else if(q()&&y==="TERMINATOR"&&w!==","&&!(R1&&this.looksObjectish(A+1)))F();else if(K()&&$[h()[1]][0]==="CLASS"&&y==="TERMINATOR")_.pop();else break;if(y===","&&!this.looksObjectish(A+1)&&q()&&!((t=this.tag(A+2))==="FOROF"||t==="FORIN")&&(S!=="TERMINATOR"||!this.looksObjectish(A+2))){B=S==="OUTDENT"?1:0;while(q())F(A+B)}return G(1)})}addImplicitCallCommas(){var _,E,X,R,A,$;$=this.tokens,_=0,E=0;while(E<$.length){if(A=$[E][0],X=E>0?$[E-1][0]:null,A==="CALL_START"||A==="(")_++;else if(A==="CALL_END"||A===")")_--;if(_>0&&(A==="->"||A==="=>")&&(R=X,I.call(J2,R)>=0))$.splice(E,0,x(",",",",$[E],$[E-1])),E++;E++}}rescueStowawayComments(){var _,E,X,R;return E=function(A,$,Y,F){if(Y[$][0]!=="TERMINATOR")Y[F](x("TERMINATOR",`
|
|
19
|
-
`,Y[$]));return Y[F](x("JS","",Y[$],A))},_=function(A,$){var Y,F;Y=A+1;while(Y!==$.length&&(F=$[Y][0],I.call(n,F)>=0)){if($[Y][0]==="INTERPOLATION_END")return!0;Y++}return!1},R=function(A,$,Y){var F,G,Z,M,D,Q,J;G=$;while(G!==Y.length&&(D=Y[G][0],I.call(n,D)>=0))G++;if(!(G===Y.length||(Q=Y[G][0],I.call(n,Q)>=0))){J=A.comments;for(Z=0,M=J.length;Z<M;Z++)F=J[Z],F.unshift=!0;return U1(A,Y[G]),1}else return G=Y.length-1,E(A,G,Y,"push"),1},X=function(A,$,Y){var F,G,Z;F=$;while(F!==-1&&(G=Y[F][0],I.call(n,G)>=0))F--;if(!(F===-1||(Z=Y[F][0],I.call(n,Z)>=0)))return U1(A,Y[F]),1;else return E(A,0,Y,"unshift"),3},this.scanTokens(function(A,$,Y){var F,G,Z,M,D;if(!A.comments)return 1;if(D=1,Z=A[0],I.call(n,Z)>=0){F={comments:[]},G=A.comments.length-1;while(G!==-1){if(A.comments[G].newLine===!1&&A.comments[G].here===!1)F.comments.unshift(A.comments[G]),A.comments.splice(G,1);G--}if(F.comments.length!==0)D=X(F,$-1,Y);if(A.comments.length!==0)R(A,$,Y)}else if(!_($,Y)){F={comments:[]},G=A.comments.length-1;while(G!==-1){if(A.comments[G].newLine&&!A.comments[G].unshift&&!(A[0]==="JS"&&A.generated))F.comments.unshift(A.comments[G]),A.comments.splice(G,1);G--}if(F.comments.length!==0)D=R(F,$+1,Y)}if(((M=A.comments)!=null?M.length:void 0)===0)delete A.comments;return D})}addLocationDataToGeneratedTokens(){return this.scanTokens(function(_,E,X){var R,A,$,Y,F,G,Z;if(_[2])return 1;if(!(_.generated||_.explicit))return 1;if(_.fromThen&&_[0]==="INDENT")return _[2]=_.origin[2],1;if(_[0]==="{"&&($=(G=X[E+1])!=null?G[2]:void 0))({first_line:A,first_column:R,range:[F]}=$);else if(Y=(Z=X[E-1])!=null?Z[2]:void 0)({last_line:A,last_column:R,range:[,F]}=Y),R+=1;else A=R=0,F=0;return _[2]={first_line:A,first_column:R,last_line:A,last_column:R,last_line_exclusive:A,last_column_exclusive:R,range:[F,F]},1})}fixIndentationLocationData(){var _;if(this.allComments==null)this.allComments=d2(this.tokens);return _=(E,{afterPosition:X,indentSize:R,first:A,indented:$})=>{var Y,F,G,Z,M,D,Q,J;if(J=E[2].range[0],M=function(K){if(K.outdented){if(!(R!=null&&K.indentSize>R))return!1}if($&&!K.indented)return!1;if(!(K.locationData.range[0]<J))return!1;if(!(K.locationData.range[0]>X))return!1;return!0},A){Z=null,D=this.allComments;for(F=D.length-1;F>=0;F+=-1)if(Y=D[F],M(Y))Z=Y;else if(Z)return Z;return Z}Q=this.allComments;for(G=Q.length-1;G>=0;G+=-1)if(Y=Q[G],M(Y))return Y;return null},this.scanTokens(function(E,X,R){var A,$,Y,F,G,Z,M,D,Q,J;if(!((M=E[0])==="INDENT"||M==="OUTDENT"||E.generated&&E[0]==="CALL_END"&&!((D=E.data)!=null?D.closingTagNameToken:void 0)||E.generated&&E[0]==="}"))return 1;if(A=E[0]==="INDENT",Z=(Q=E.prevToken)!=null?Q:R[X-1],G=Z[2],J=E.explicit||E.generated,J){$=E,Y=X;while(($.explicit||$.generated)&&Y!==R.length-1)$=R[Y++]}if(F=_(J?$:E,{afterPosition:G.range[0],indentSize:E.indentSize,first:A,indented:J}),A){if(!(F!=null?F.newLine:void 0))return 1}if(E.generated&&E[0]==="CALL_END"&&(F!=null?F.indented:void 0))return 1;if(F!=null)G=F.locationData;return E[2]={first_line:F!=null?G.first_line:G.last_line,first_column:F!=null?A?0:G.first_column:G.last_column,last_line:G.last_line,last_column:G.last_column,last_line_exclusive:G.last_line_exclusive,last_column_exclusive:G.last_column_exclusive,range:A&&F!=null?[G.range[0]-F.indentSize,G.range[1]]:G.range},1})}normalizeLines(){var _,E,X,R,A,$,Y,F,G;return G=A=F=null,Y=null,$=null,R=[],X=function(Z,M){var D,Q,J,K;return Z[1]!==";"&&(D=Z[0],I.call(V2,D)>=0)&&!(Z[0]==="TERMINATOR"&&(Q=this.tag(M+1),I.call(y1,Q)>=0))&&!(Z[0]==="ELSE"&&(G!=="THEN"||($||Y)))&&!(((J=Z[0])==="CATCH"||J==="FINALLY")&&(G==="->"||G==="=>"))||(K=Z[0],I.call(K1,K)>=0)&&(this.tokens[M-1].newLine||this.tokens[M-1][0]==="OUTDENT")},_=function(Z,M){if(Z[0]==="ELSE"&&G==="THEN")R.pop();return this.tokens.splice(this.tag(M-1)===","?M-1:M,0,F)},E=(Z,M)=>{var D,Q,J;if(J=R.length,!(J>0))return M;return D=R.pop(),[,Q]=this.indentation(Z[D]),Q[1]=J*2,Z.splice(M,0,Q),Q[1]=2,Z.splice(M+1,0,Q),this.detectEnd(M+2,function(K,q){var N;return(N=K[0])==="OUTDENT"||N==="TERMINATOR"},function(K,q){if(this.tag(q)==="OUTDENT"&&this.tag(q+1)==="OUTDENT")return Z.splice(q,2)}),M+2},this.scanTokens(function(Z,M,D){var Q,J,K,q,N,W,z;if([z]=Z,Q=(z==="->"||z==="=>")&&this.findTagsBackwards(M,["IF","WHILE","FOR","UNTIL","SWITCH","WHEN","LEADING_WHEN","[","INDEX_START"])&&!this.findTagsBackwards(M,["THEN","..","..."]),z==="TERMINATOR"){if(this.tag(M+1)==="ELSE"&&this.tag(M-1)!=="OUTDENT")return D.splice(M,1,...this.indentation()),1;if(q=this.tag(M+1),I.call(y1,q)>=0){if(Z[1]===";"&&this.tag(M+1)==="OUTDENT")D[M+1].prevToken=Z,U1(Z,D[M+1]);return D.splice(M,1),0}}if(z==="CATCH")for(J=K=1;K<=2;J=++K){if(!((N=this.tag(M+J))==="OUTDENT"||N==="TERMINATOR"||N==="FINALLY"))continue;return D.splice(M+J,0,...this.indentation()),2+J}if((z==="->"||z==="=>")&&((W=this.tag(M+1))===","||W==="]"||this.tag(M+1)==="."&&Z.newLine))return[A,F]=this.indentation(D[M]),D.splice(M+1,0,A,F),1;if(I.call(f1,z)>=0&&this.tag(M+1)!=="INDENT"&&!(z==="ELSE"&&this.tag(M+1)==="IF")&&!Q){if(G=z,[A,F]=this.indentation(D[M]),G==="THEN")A.fromThen=!0;if(z==="THEN")Y=this.findTagsBackwards(M,["LEADING_WHEN"])&&this.tag(M+1)==="IF",$=this.findTagsBackwards(M,["IF"])&&this.tag(M+1)==="IF";if(z==="THEN"&&this.findTagsBackwards(M,["IF"]))R.push(M);if(z==="ELSE"&&this.tag(M-1)!=="OUTDENT")M=E(D,M);if(D.splice(M+1,0,A),this.detectEnd(M+2,X,_),z==="THEN")D.splice(M,1);return 1}return 1})}convertPostfixSpreadRest(){return this.scanTokens(function(_,E,X){var R,A,$,Y,F,G,Z,M,D,Q;if(_[0]!=="..."&&_[0]!=="..")return 1;let J=0;for(let K=E-1;K>=0;K--){if(X[K][0]==="INDEX_END")J++;if(X[K][0]==="INDEX_START")J--}if(A=J<0,A)return 1;if(Z=X[E-1],F=X[E+1],!Z||!F)return 1;if(M=Z[0],G=F[0],M===","&&G===",")return 1;if(M==="NUMBER")return 1;if(Q=["IDENTIFIER","PROPERTY",")","]","THIS","@"],D=M,I.call(Q,D)>=0){if(R=[",","]",")","}","CALL_END","INDEX_END","PARAM_END","TERMINATOR","OUTDENT"],D=G,I.call(R,D)>=0)return X[E-1]=_,X[E]=Z,1}return 1})}tagPostfixConditionals(){var _,E,X;return X=null,E=function(R,A){var $,Y;return[Y]=R,[$]=this.tokens[A-1],Y==="TERMINATOR"||Y==="INDENT"&&I.call(f1,$)<0},_=function(R,A){if(R[0]!=="INDENT"||R.generated&&!R.fromThen)return X[0]="POST_"+X[0]},this.scanTokens(function(R,A){if(R[0]!=="IF"&&R[0]!=="UNLESS")return 1;return X=R,this.detectEnd(A+1,E,_),1})}exposeTokenDataToGrammar(){return this.scanTokens(function(_,E){var X,R,A;if(_.generated||_.data&&Object.keys(_.data).length!==0){_[1]=new String(_[1]),R=(X=_.data)!=null?X:{};for(E1 in R){if(!p2.call(R,E1))continue;A=R[E1],_[1][E1]=A}if(_.generated)_[1].generated=!0}return 1})}indentation(_){var E,X;if(E=["INDENT",2],X=["OUTDENT",2],_)E.generated=X.generated=!0,E.origin=X.origin=_;else E.explicit=X.explicit=!0;return[E,X]}tag(_){var E;return(E=this.tokens[_])!=null?E[0]:void 0}}return U.prototype.generate=x,U}.call(null);j1=[["(",")"],["[","]"],["{","}"],["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"]];H1={};a=[];p=[];for(W1=0,o1=j1.length;W1<o1;W1++)[I1,w1]=j1[W1],a.push(H1[w1]=I1),p.push(H1[I1]=w1);y1=["CATCH","THEN","ELSE","FINALLY"].concat(p);v1=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"];u1=["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","@","->","=>","[","(","{","--","++"];x1=["+","-"];g1=["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&"];J2=["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"];f1=["ELSE","->","=>","TRY","FINALLY","THEN"];V2=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"];Y1=["TERMINATOR","INDENT","OUTDENT"];K1=[".","?.","::","?::"];b1=["IF","TRY","FINALLY","CATCH","CLASS","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(x1.concat(g1.concat(K1.concat(b1))));G1=["\\",".","?.","?::","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,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Throw:28,Yield:29,Def:30,DEF:31,Identifier:32,CALL_START:33,ParamList:34,CALL_END:35,Block:36,Assignable:37,REACTIVE_ASSIGN:38,INDENT:39,OUTDENT:40,COMPUTED_ASSIGN:41,READONLY_ASSIGN:42,REACT_ASSIGN:43,CodeLine:44,OperationLine:45,YIELD:46,Object:47,FROM:48,IDENTIFIER:49,Property:50,PROPERTY:51,AlphaNumeric:52,NUMBER:53,String:54,STRING:55,STRING_START:56,Interpolations:57,STRING_END:58,InterpolationChunk:59,INTERPOLATION_START:60,INTERPOLATION_END:61,Regex:62,REGEX:63,REGEX_START:64,Invocation:65,REGEX_END:66,RegexWithIndex:67,",":68,Literal:69,JS:70,UNDEFINED:71,NULL:72,BOOL:73,INFINITY:74,NAN:75,"=":76,AssignObj:77,ObjAssignable:78,ObjRestValue:79,":":80,SimpleObjAssignable:81,ThisProperty:82,"[":83,"]":84,"@":85,"...":86,ObjSpreadExpr:87,Parenthetical:88,Super:89,This:90,SUPER:91,OptFuncExist:92,Arguments:93,DYNAMIC_IMPORT:94,".":95,"?.":96,"::":97,"?::":98,INDEX_START:99,INDEX_END:100,INDEX_SOAK:101,RETURN:102,PARAM_START:103,PARAM_END:104,FuncGlyph:105,"->":106,"=>":107,OptComma:108,Param:109,ParamVar:110,Array:111,Splat:112,SimpleAssignable:113,Slice:114,ES6_OPTIONAL_INDEX:115,Range:116,DoIife:117,MetaProperty:118,NEW_TARGET:119,IMPORT_META:120,"{":121,FOR:122,ForVariables:123,FOROF:124,"}":125,WHEN:126,OWN:127,AssignList:128,CLASS:129,EXTENDS:130,IMPORT:131,ImportDefaultSpecifier:132,ImportNamespaceSpecifier:133,ImportSpecifierList:134,ImportSpecifier:135,AS:136,DEFAULT:137,IMPORT_ALL:138,EXPORT:139,ExportSpecifierList:140,EXPORT_ALL:141,ExportSpecifier:142,ES6_OPTIONAL_CALL:143,FUNC_EXIST:144,ArgList:145,THIS:146,Elisions:147,ArgElisionList:148,OptElisions:149,RangeDots:150,"..":151,Arg:152,ArgElision:153,Elision:154,SimpleArgs:155,TRY:156,Catch:157,FINALLY:158,CATCH:159,THROW:160,"(":161,")":162,WhileSource:163,WHILE:164,UNTIL:165,Loop:166,LOOP:167,FORIN:168,BY:169,FORFROM:170,AWAIT:171,ForValue:172,SWITCH:173,Whens:174,ELSE:175,When:176,LEADING_WHEN:177,IfBlock:178,IF:179,UnlessBlock:180,UNLESS:181,POST_IF:182,POST_UNLESS:183,UNARY:184,DO:185,DO_IIFE:186,UNARY_MATH:187,"-":188,"+":189,"--":190,"++":191,"?":192,MATH:193,"**":194,SHIFT:195,COMPARE:196,"&":197,"^":198,"|":199,"||":200,"??":201,"&&":202,"!?":203,RELATION:204,"SPACE?":205,COMPOUND_ASSIGN:206},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",31:"DEF",33:"CALL_START",35:"CALL_END",38:"REACTIVE_ASSIGN",39:"INDENT",40:"OUTDENT",41:"COMPUTED_ASSIGN",42:"READONLY_ASSIGN",43:"REACT_ASSIGN",46:"YIELD",48:"FROM",49:"IDENTIFIER",51:"PROPERTY",53:"NUMBER",55:"STRING",56:"STRING_START",58:"STRING_END",60:"INTERPOLATION_START",61:"INTERPOLATION_END",63:"REGEX",64:"REGEX_START",66:"REGEX_END",68:",",70:"JS",71:"UNDEFINED",72:"NULL",73:"BOOL",74:"INFINITY",75:"NAN",76:"=",80:":",83:"[",84:"]",85:"@",86:"...",91:"SUPER",94:"DYNAMIC_IMPORT",95:".",96:"?.",97:"::",98:"?::",99:"INDEX_START",100:"INDEX_END",101:"INDEX_SOAK",102:"RETURN",103:"PARAM_START",104:"PARAM_END",106:"->",107:"=>",115:"ES6_OPTIONAL_INDEX",119:"NEW_TARGET",120:"IMPORT_META",121:"{",122:"FOR",124:"FOROF",125:"}",126:"WHEN",127:"OWN",129:"CLASS",130:"EXTENDS",131:"IMPORT",136:"AS",137:"DEFAULT",138:"IMPORT_ALL",139:"EXPORT",141:"EXPORT_ALL",143:"ES6_OPTIONAL_CALL",144:"FUNC_EXIST",146:"THIS",151:"..",156:"TRY",158:"FINALLY",159:"CATCH",160:"THROW",161:"(",162:")",164:"WHILE",165:"UNTIL",167:"LOOP",168:"FORIN",169:"BY",170:"FORFROM",171:"AWAIT",173:"SWITCH",175:"ELSE",177:"LEADING_WHEN",179:"IF",181:"UNLESS",182:"POST_IF",183:"POST_UNLESS",184:"UNARY",185:"DO",186:"DO_IIFE",187:"UNARY_MATH",188:"-",189:"+",190:"--",191:"++",192:"?",193:"MATH",194:"**",195:"SHIFT",196:"COMPARE",197:"&",198:"^",199:"|",200:"||",201:"??",202:"&&",203:"!?",204:"RELATION",205:"SPACE?",206:"COMPOUND_ASSIGN"},parseTable:(()=>{let U=[101,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,1,1,0,2,1,5,-2,101,5,1,5,34,21,101,-3,-3,-3,-3,-3,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,-6,-6,121,-6,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,9,1,5,29,4,1,21,7,16,78,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,29,4,1,21,7,16,78,1,1,1,17,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,124,90,91,122,123,54,1,5,27,2,4,1,15,1,5,7,12,4,2,6,3,1,1,1,1,1,1,3,11,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,1,-13,-13,-250,-13,-13,-13,-250,-250,-13,-13,-13,-13,-13,125,127,128,129,130,131,-13,132,-13,133,-13,-13,-13,-13,126,134,-13,-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,29,4,1,21,7,12,4,2,9,1,1,1,1,1,1,3,18,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,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,135,136,137,138,139,-14,140,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,9,1,5,29,4,1,21,7,16,78,-47,-47,-47,-47,-47,-47,-47,-47,-47,9,1,5,29,4,1,21,7,16,78,-48,-48,-48,-48,-48,-48,-48,-48,-48,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-173,-173,-173,-173,142,-173,-173,143,144,145,-173,-173,-173,-173,141,-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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-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,-177,-177,-177,-177,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-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,-178,-178,-178,-178,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,146,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,100,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,4,1,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,157,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,156,30,158,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,97,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,159,160,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,97,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,163,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,170,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,171,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,172,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,173,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,174,33,35,38,82,83,93,80,76,169,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,178,33,35,38,82,83,93,80,76,169,61,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,179,180,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,181,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,183,182,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,184,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,185,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,2,36,3,186,158,2,36,3,187,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,191,93,188,189,190,192,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,194,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,195,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,88,1,5,8,1,17,3,1,1,2,1,7,2,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,5,2,1,1,1,1,2,1,1,1,3,6,3,1,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,1,-197,-197,175,176,86,-197,196,177,158,-197,67,98,68,94,95,99,100,-197,70,96,97,34,-197,31,69,71,72,73,74,75,-197,87,77,-197,81,-197,32,37,36,78,79,-197,165,-197,166,84,85,66,198,33,35,38,82,83,93,-197,-197,-197,-197,197,80,-197,76,-197,-197,-197,-197,-197,-197,-197,-197,169,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,199,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,200,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,131,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,3,2,2,1,3,3,1,1,1,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,5,2,1,1,1,1,2,1,1,1,3,6,2,1,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,1,-49,-49,201,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-49,30,202,-49,50,60,67,203,98,68,94,95,99,100,-49,70,96,97,34,-49,31,69,71,72,73,74,75,-49,87,77,-49,81,-49,32,37,36,78,79,-49,63,165,-49,166,84,85,66,49,33,35,38,82,83,93,-49,-49,-49,-49,58,64,65,80,-49,53,59,76,-49,54,-49,-49,55,92,-49,-49,-49,46,57,51,88,52,89,-49,-49,167,168,169,43,44,45,47,48,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,2,32,17,204,98,6,15,29,59,2,1,1,206,205,39,40,84,85,130,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,3,2,2,1,3,3,1,2,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,5,2,1,1,1,1,2,1,1,1,3,6,2,1,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,1,-118,-118,207,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-118,30,208,-118,50,60,67,98,68,94,95,99,100,-118,70,96,97,34,-118,31,69,71,72,73,74,75,-118,87,77,-118,81,-118,32,37,36,78,79,-118,63,165,-118,166,84,85,66,49,33,35,38,82,83,93,-118,-118,-118,-118,58,64,65,80,-118,53,59,76,-118,54,-118,-118,55,92,-118,-118,-118,46,57,51,88,52,89,-118,-118,167,168,169,43,44,45,47,48,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,9,32,17,5,1,1,65,11,1,5,213,98,209,99,100,212,210,211,214,9,27,3,1,1,17,72,8,8,4,216,217,61,218,98,215,58,219,220,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,100,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,221,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,222,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,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,223,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,224,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,225,226,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,33,60,2,4,238,235,236,237,2,33,60,238,239,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,55,1,5,27,2,4,1,10,1,4,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-255,-255,-255,-255,-255,-255,240,241,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,1,95,242,1,95,243,51,11,20,8,4,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,8,1,3,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,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,51,11,20,8,4,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,8,1,3,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,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,244,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,245,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,246,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,247,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,249,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,248,30,158,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,6,26,7,1,9,1,1,1,1,1,1,1,12,9,1,1,2,1,1,2,1,39,3,-192,257,-192,-192,98,258,241,255,94,95,99,100,-192,256,250,260,252,259,253,254,261,-192,251,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,262,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,263,33,35,38,82,83,93,80,76,169,64,1,5,27,2,3,1,1,1,1,1,5,7,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,56,1,5,27,2,4,1,15,1,2,2,1,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,6,54,1,1,1,2,1,267,99,100,264,265,266,103,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,5,3,3,1,1,1,1,2,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,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,268,-5,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-5,50,24,25,60,67,98,68,94,95,99,100,-5,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,-5,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,269,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,270,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,271,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,272,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,273,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,274,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,275,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,278,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,279,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,281,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,282,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,284,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,285,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,295,93,292,293,294,192,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,296,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,5,33,21,1,1,37,238,298,99,100,299,2,33,60,238,300,2,50,1,301,241,2,50,1,302,241,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,303,241,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,304,241,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,100,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,2,2,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,305,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,306,50,60,67,98,68,94,95,99,100,310,96,97,34,308,31,69,71,72,73,74,75,87,77,81,312,32,37,36,78,79,63,165,166,84,85,66,49,307,33,35,38,82,83,93,56,58,64,65,80,309,311,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,313,1,99,314,3,33,22,1,-251,-251,-251,2,50,1,315,241,2,50,1,316,241,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,317,241,-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,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,318,241,-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,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,319,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,320,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,321,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,323,322,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,324,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,326,325,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,327,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,329,328,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,330,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,332,331,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,333,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,335,334,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,336,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,9,6,29,4,1,28,16,20,4,17,-125,-125,-125,-125,338,-125,337,339,-125,6,6,29,4,1,28,36,-128,-128,-128,-128,-128,-128,7,6,29,4,1,28,8,28,-132,-132,-132,-132,-132,340,-132,15,6,26,3,4,1,7,2,19,14,1,2,19,6,1,10,-135,150,-135,-135,-135,153,98,-135,151,155,154,-135,341,152,93,10,6,29,4,1,28,8,28,20,44,2,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,10,6,29,4,1,28,8,28,20,44,2,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,10,6,29,4,1,28,8,28,20,44,2,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,10,6,29,4,1,28,8,28,20,44,2,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,2,50,1,240,241,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,224,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,225,226,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,9,1,5,29,4,1,21,7,16,78,-122,-122,-122,-122,-122,-122,-122,-122,-122,100,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,5,3,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,344,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,343,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,120,-368,-368,-368,-368,-368,-368,119,-368,-368,102,-368,-368,-368,-368,-368,-368,-368,-368,113,-368,115,-368,-368,9,1,5,29,4,1,21,7,16,78,-365,-365,-365,-365,-365,-365,-365,-365,-365,5,163,1,1,17,1,124,90,91,122,123,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,120,-369,-369,-369,-369,-369,-369,119,-369,-369,102,-369,-369,-369,-369,-369,-369,-369,-369,113,-369,115,-369,-369,9,1,5,29,4,1,21,7,16,78,-366,-366,-366,-366,-366,-366,-366,-366,-366,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,120,-370,-370,-370,-370,-370,-370,119,-370,-370,102,-370,106,-370,-370,-370,-370,-370,-370,113,-370,115,-370,-370,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,345,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,2,36,3,156,158,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,159,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,5,15,88,2,1,1,206,165,166,84,85,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,120,-371,-371,-371,-371,-371,-371,119,-371,-371,102,-371,106,-371,-371,-371,-371,-371,-371,113,-371,115,-371,-371,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,120,-372,-372,-372,-372,-372,-372,119,-372,-372,102,-372,106,-372,-372,-372,-372,-372,-372,113,-372,115,-372,-372,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,120,-373,-373,-373,-373,-373,-373,119,-373,-373,102,-373,-373,-373,-373,-373,-373,-373,-373,113,-373,115,-373,-373,2,47,74,346,93,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-375,-375,-170,-375,-170,-375,-375,-170,-170,-170,-170,-170,-375,-375,-170,-375,-375,-375,-170,-170,-170,-170,-170,-375,-170,-375,-170,-375,-375,-375,-375,-170,-170,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,13,33,22,1,36,3,1,1,1,1,2,14,28,1,-250,-250,-250,125,127,128,129,130,131,132,133,126,134,6,95,1,1,1,1,2,135,136,137,138,139,140,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-376,-376,-170,-376,-170,-376,-376,-170,-170,-170,-170,-170,-376,-376,-170,-376,-376,-376,-170,-170,-170,-170,-170,-376,-170,-376,-170,-376,-376,-376,-376,-170,-170,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,349,347,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,348,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,121,-44,-44,-44,-44,-44,120,90,91,-44,-44,-44,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,350,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,351,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,36,3,140,352,158,353,44,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,354,355,356,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,3,124,44,2,358,357,359,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,360,192,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,361,192,3,36,3,130,362,158,363,4,68,56,44,2,364,-344,-344,-344,5,68,8,48,44,2,-342,365,-342,-342,-342,23,39,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,366,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,174,2,1,367,368,369,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,370,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,60,1,5,27,2,1,2,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-201,-201,-170,-201,371,-170,158,-201,-170,-170,-170,-170,-170,-201,-201,-170,-201,-201,-201,-170,-170,-170,-170,-170,-201,-170,-201,-170,-201,-201,-201,-201,372,-170,-170,-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,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,120,-298,-298,-298,-298,-298,-298,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,373,93,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,120,-50,-50,-50,-50,-50,-50,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,374,93,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,375,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,33,3,3,376,377,158,9,1,5,29,4,1,21,7,16,78,-367,-367,-367,-367,-367,-367,-367,-367,-367,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,120,-116,-116,-116,-116,-116,-116,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,378,93,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,2,48,20,379,380,1,48,381,7,32,7,10,76,9,1,2,386,385,98,382,383,384,387,2,48,20,-221,-221,1,136,388,7,32,7,10,76,12,3,2,393,392,98,389,394,390,391,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,1,76,395,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,396,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,397,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,48,398,2,6,156,101,399,99,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,400,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,31,6,29,4,1,28,16,2,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,312,121,401,311,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,402,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,403,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,406,-125,407,-125,405,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,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,408,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,5,6,33,1,28,16,-276,-276,-276,-276,-276,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,410,409,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,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,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,5,6,33,1,28,16,-281,-281,-281,-281,-281,6,6,29,4,1,28,16,-273,-273,-273,-273,-273,-273,6,6,29,4,1,28,16,-274,-274,-274,-274,-274,-274,100,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,3,2,2,1,3,3,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-275,411,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-275,30,-275,-275,50,60,67,98,68,94,95,99,100,70,96,97,34,-275,31,69,71,72,73,74,75,87,77,-275,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,2,50,1,412,241,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,413,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,414,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,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,3,2,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,415,30,418,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,416,80,417,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,2,50,1,419,241,2,50,1,420,241,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,421,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,422,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,121,-302,-302,423,-302,-302,120,90,91,-302,-302,-302,-302,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,121,-304,-304,424,-304,-304,120,90,91,-304,-304,-304,-304,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,121,-311,-311,-311,-311,-311,120,90,91,-311,-311,-311,-311,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,6,6,33,1,28,12,45,-82,-82,-82,-82,425,-82,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,427,-125,426,-125,7,6,33,1,28,8,4,45,-91,-91,-91,-91,428,-91,-91,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,429,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,50,1,32,240,241,430,6,6,33,1,28,12,45,-94,-94,-94,-94,-94,-94,5,6,33,1,28,57,-193,-193,-193,-193,-193,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,5,6,33,1,28,57,-83,-83,-83,-83,-83,17,32,15,2,1,1,30,1,3,2,1,1,1,1,3,27,25,15,257,433,98,258,241,431,259,81,432,434,435,436,437,438,93,80,76,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,439,-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,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,6,54,1,1,2,1,1,267,99,100,440,441,266,4,55,1,2,2,-61,-61,-61,-61,101,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,5,2,4,1,1,1,1,2,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,442,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,443,50,24,25,60,67,98,68,94,95,99,100,444,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,55,1,2,2,-66,-66,-66,-66,5,1,5,34,21,101,-4,-4,-4,-4,-4,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,120,-380,-380,-380,-380,-380,-380,119,-380,-380,102,105,106,-380,-380,-380,-380,-380,-380,113,-380,115,-380,-380,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,120,-381,-381,-381,-381,-381,-381,119,-381,-381,102,105,106,-381,-381,-381,-381,-381,-381,113,-381,115,-381,-381,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,120,-382,-382,-382,-382,-382,-382,119,-382,-382,102,-382,106,-382,-382,-382,-382,-382,-382,113,-382,115,-382,-382,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,120,-383,-383,-383,-383,-383,-383,119,-383,-383,102,-383,106,-383,-383,-383,-383,-383,-383,113,-383,115,-383,-383,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,120,-384,-384,-384,-384,-384,-384,119,104,103,102,105,106,-384,-384,-384,-384,-384,-384,113,-384,115,-384,-384,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,120,-385,-385,-385,-385,-385,-385,119,104,103,102,105,106,107,-385,-385,-385,-385,-385,113,-385,115,116,-385,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,120,-386,-386,-386,-386,-386,-386,119,104,103,102,105,106,107,108,-386,-386,-386,-386,113,-386,115,116,-386,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,120,-387,-387,-387,-387,-387,-387,119,104,103,102,105,106,107,108,109,-387,-387,-387,113,-387,115,116,-387,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,120,-388,-388,-388,-388,-388,-388,119,104,103,102,105,106,107,108,109,110,-388,-388,113,-388,115,116,-388,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-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,29,4,1,21,7,12,4,2,14,4,18,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,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,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,120,-396,-396,-396,-396,-396,-396,119,104,103,102,105,106,107,108,109,110,111,-396,113,114,115,116,-396,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,121,-397,-397,-397,-397,-397,120,90,91,-397,-397,-397,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,120,-395,-395,-395,-395,-395,-395,119,104,103,102,105,106,107,108,109,110,111,-395,113,-395,115,116,-395,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,121,-398,-398,-398,-398,-398,120,90,91,-398,-398,-398,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,120,-399,-399,-399,-399,-399,-399,119,104,103,102,105,106,107,-399,-399,-399,-399,-399,113,-399,115,-399,-399,23,80,42,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,445,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,121,-362,-362,-362,-362,-362,120,90,91,-362,-362,-362,-362,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,121,-364,-364,-364,-364,-364,120,90,91,-364,-364,-364,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,124,44,2,447,446,448,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,449,192,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,450,192,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,451,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,121,-361,-361,-361,-361,-361,120,90,91,-361,-361,-361,-361,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,121,-363,-363,-363,-363,-363,120,90,91,-363,-363,-363,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,26,86,14,22,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,312,452,121,453,311,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,98,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,454,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,312,32,37,36,78,79,63,165,166,84,85,66,49,455,33,35,38,82,83,93,56,58,64,65,80,309,311,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,100,456,1,100,457,96,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,6,2,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,458,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-266,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,-266,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,459,-73,-73,-73,-73,-73,-73,-73,-73,-70,-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,52,11,20,9,3,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,6,2,1,3,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,-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,52,11,20,9,3,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,6,2,1,3,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,-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,99,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,460,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,461,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,312,32,37,36,78,79,63,165,166,84,85,66,49,462,33,35,38,82,83,93,56,58,64,65,80,309,311,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,463,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,464,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-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,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-162,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-163,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,465,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,466,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,468,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,120,-79,-79,-79,-79,-79,-79,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,121,-32,-32,-32,-32,-32,120,90,91,-32,-32,-32,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,121,-35,-35,-35,-35,-35,120,90,91,-35,-35,-35,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,121,-38,-38,-38,-38,-38,120,90,91,-38,-38,-38,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,475,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,476,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,121,-41,-41,-41,-41,-41,120,90,91,-41,-41,-41,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,477,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,478,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,105,1,1,479,84,85,17,6,26,3,4,1,7,2,33,1,1,1,1,23,1,1,10,4,-126,150,-126,-126,-126,153,98,151,155,-126,154,149,480,148,152,93,-126,2,6,33,481,482,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,29,4,1,28,36,-134,-134,-134,-134,-134,-134,28,6,29,4,1,28,16,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,57,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,2,6,34,101,484,9,6,29,4,1,28,16,20,4,17,-125,-125,-125,-125,338,-125,485,339,-125,1,40,486,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,120,-401,-401,-401,-401,-401,-401,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,488,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,121,-45,-45,-45,-45,-45,120,90,91,-45,-45,-45,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,489,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,490,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,491,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,2,36,3,492,158,6,32,4,3,8,2,72,493,495,158,494,98,93,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,496,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,497,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,499,1,170,500,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,501,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,10,32,15,2,33,1,2,25,1,10,51,150,153,98,151,155,154,193,152,93,502,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,174,2,1,504,368,369,4,40,135,1,1,505,506,507,369,3,40,135,2,-350,-350,-350,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,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,509,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,508,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,43,1,5,29,1,3,1,21,7,12,4,2,14,4,18,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,1,-199,-199,-199,510,158,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,120,-199,-199,-199,-199,-199,-199,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,511,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,512,1,40,513,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,120,-52,-52,-52,-52,-52,-52,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,514,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,1,40,515,3,54,1,1,516,99,100,3,121,12,5,518,517,214,3,54,1,1,519,99,100,1,48,520,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,522,-125,521,-125,5,6,33,1,28,57,-212,-212,-212,-212,-212,6,32,7,10,85,1,2,386,385,98,523,384,387,6,6,33,1,28,57,11,-217,-217,-217,-217,-217,524,6,6,33,1,28,57,11,-219,-219,-219,-219,-219,525,2,32,17,526,98,14,1,5,29,4,1,8,13,7,16,78,2,1,17,1,-223,-223,-223,-223,-223,527,-223,-223,-223,-223,-223,-223,-223,-223,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,529,-125,528,-125,5,6,33,1,28,57,-235,-235,-235,-235,-235,6,32,7,10,88,3,2,393,392,98,394,530,391,6,6,33,1,28,57,11,-240,-240,-240,-240,-240,531,6,6,33,1,28,57,11,-243,-243,-243,-243,-243,532,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,534,533,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,535,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,121,-230,120,90,91,-230,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,536,93,3,54,1,1,537,99,100,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,2,6,34,101,538,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,539,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-258,-258,-258,-258,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,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,408,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,5,6,33,1,28,16,-282,-282,-282,-282,-282,2,39,45,541,540,110,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,3,2,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,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,-126,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-126,30,-126,-126,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,-126,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,-126,58,64,65,80,543,231,542,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,6,33,1,44,544,-283,-283,-283,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,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,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,406,-125,407,-125,545,102,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,403,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,28,6,29,4,1,28,16,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-140,-140,-140,-140,-140,-140,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,546,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,547,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,549,-125,548,-125,5,6,29,4,1,28,-267,-267,-267,-267,-267,102,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,418,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,550,80,417,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,551,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,552,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,553,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,555,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,6,33,86,557,558,556,23,6,26,3,4,1,9,1,1,1,1,1,1,1,21,1,1,2,1,1,1,1,1,39,-126,257,-126,-126,-126,98,258,241,255,94,95,99,100,559,560,260,252,259,253,-126,254,261,-126,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,561,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,562,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,563,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,564,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,16,6,27,6,1,15,1,12,24,3,1,1,1,1,2,24,19,-95,-97,-95,-95,-250,-250,-95,565,-97,-97,-97,-97,-97,-97,-95,134,16,6,27,6,1,15,1,12,24,3,1,1,1,1,2,24,19,-96,-250,-96,-96,-250,-250,-96,566,567,568,569,570,571,572,-96,134,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,7,33,22,1,36,3,4,45,-250,-250,-250,573,236,237,134,2,33,60,238,574,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,56,1,5,27,2,4,1,15,1,2,2,1,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,4,55,1,2,2,-62,-62,-62,-62,2,6,55,101,575,99,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,576,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,55,1,2,2,-65,-65,-65,-65,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,577,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,581,1,170,582,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,583,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,96,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,6,2,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,584,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-264,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,-264,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,26,40,46,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,585,312,121,453,311,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,40,586,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,24,40,60,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,587,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,26,86,14,22,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,312,588,121,453,311,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,98,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,589,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,312,32,37,36,78,79,63,165,166,84,85,66,49,590,33,35,38,82,83,93,56,58,64,65,80,309,311,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,100,591,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,592,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,593,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-166,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,594,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,595,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,596,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,120,-80,-80,-80,-80,-80,-80,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,597,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,121,-33,-33,-33,-33,-33,120,90,91,-33,-33,-33,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,598,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,121,-36,-36,-36,-36,-36,120,90,91,-36,-36,-36,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,599,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,121,-39,-39,-39,-39,-39,120,90,91,-39,-39,-39,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,600,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,121,-42,-42,-42,-42,-42,120,90,91,-42,-42,-42,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,601,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,100,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,4,1,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,603,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,602,30,158,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,6,6,29,4,1,28,36,-129,-129,-129,-129,-129,-129,11,32,15,2,33,1,2,1,23,1,1,10,150,153,98,151,155,154,149,604,148,152,93,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,605,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,28,6,29,4,1,28,36,18,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,57,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,3,105,1,1,606,84,85,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,607,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,120,-403,-403,-403,-403,-403,-403,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,608,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,36,3,609,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,2,36,3,610,158,2,36,3,611,158,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,26,36,3,83,4,37,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,612,158,121,613,120,90,91,614,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,615,158,121,616,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,617,158,121,618,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,619,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,620,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,621,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,124,44,2,-345,-345,-345,26,68,54,2,39,1,1,3,2,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-343,121,-343,120,90,91,-343,-343,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,4,40,135,1,1,622,623,507,369,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,2,36,3,624,158,3,40,135,2,-351,-351,-351,3,36,3,29,625,158,626,24,39,29,54,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,43,1,5,29,1,3,1,21,7,12,4,2,14,4,18,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,1,-203,-203,-203,627,158,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,120,-203,-203,-203,-203,-203,-203,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,8,6,29,4,1,28,16,24,17,-125,628,-125,-125,338,-125,339,-125,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,48,629,6,32,7,10,85,1,2,386,385,98,630,384,387,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,3,54,1,1,631,99,100,3,6,33,86,633,634,632,10,6,26,3,4,1,9,35,41,10,2,-126,386,-126,-126,-126,98,-126,-126,635,387,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,522,-125,636,-125,2,32,17,637,98,2,32,17,638,98,1,48,-222,3,54,1,1,639,99,100,3,6,33,86,641,642,640,10,6,26,3,4,1,9,35,41,12,5,-126,393,-126,-126,-126,98,-126,-126,394,643,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,529,-125,644,-125,3,32,17,88,645,98,646,2,32,17,647,98,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,121,-227,120,-227,-227,-227,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,648,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,649,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,650,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,1,162,651,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,652,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-259,-259,-259,-259,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,410,653,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,5,6,33,1,28,16,-277,-277,-277,-277,-277,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-284,-284,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,-284,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,403,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,104,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,410,231,654,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,2,39,1,541,655,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,656,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,6,29,4,658,657,659,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,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,-126,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-126,30,-126,-126,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,-126,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,-126,58,64,65,80,660,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,549,-125,661,-125,2,36,3,662,158,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,120,-303,-303,-303,-303,-303,-303,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,120,-305,-305,-305,-305,-305,-305,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,663,-84,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,664,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,17,32,17,1,1,1,1,1,1,1,21,1,1,2,1,1,2,1,257,98,258,241,255,94,95,99,100,665,560,260,252,259,253,254,261,23,6,26,7,1,9,1,1,1,1,1,1,1,12,9,1,1,2,1,1,2,1,39,3,-192,257,-192,-192,98,258,241,255,94,95,99,100,-192,256,560,260,252,259,253,254,261,-192,666,5,6,33,1,28,57,-194,-194,-194,-194,-194,6,6,33,1,28,12,45,-82,-82,-82,-82,667,-82,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,121,-86,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,668,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,33,1,28,12,45,-92,-92,-92,-92,-92,-92,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,669,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,33,60,238,670,2,33,60,238,671,2,50,1,672,241,2,50,1,673,241,15,6,27,6,1,10,1,17,27,1,1,1,1,2,24,19,-110,-110,-110,-110,674,241,-110,-110,-110,-110,-110,-110,-110,-110,-110,15,6,27,6,1,10,1,17,27,1,1,1,1,2,24,19,-111,-111,-111,-111,675,241,-111,-111,-111,-111,-111,-111,-111,-111,-111,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,676,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,677,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,678,2,33,60,238,679,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,4,55,1,2,2,-63,-63,-63,-63,2,6,34,101,680,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,120,-400,-400,-400,-400,-400,-400,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,681,-327,-327,120,-327,-327,-327,682,-327,-327,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,683,-332,-332,120,-332,-332,-332,-332,-332,-332,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,684,-336,-336,120,-336,-336,-336,-336,-336,-336,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,685,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,686,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,120,-341,-341,-341,-341,-341,-341,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,40,60,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,100,687,1,100,688,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-154,26,40,46,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,689,312,121,453,311,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,40,690,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-156,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-158,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,691,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,100,692,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-168,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,693,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,29,4,1,21,7,12,4,2,14,4,18,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,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,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,9,1,5,29,4,1,21,7,16,78,-121,-121,-121,-121,-121,-121,-121,-121,-121,6,6,29,4,1,28,36,-130,-130,-130,-130,-130,-130,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,338,-125,694,-125,2,36,3,602,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,695,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,696,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,697,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,698,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,699,158,121,700,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,701,158,121,702,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,2,36,3,703,158,1,40,704,4,6,34,135,2,705,-352,-352,-352,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,2,36,3,707,158,3,54,1,1,708,99,100,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,522,-125,709,-125,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,1,48,710,4,32,17,86,2,386,98,711,387,6,32,7,10,85,1,2,386,385,98,712,384,387,5,6,33,1,28,57,-213,-213,-213,-213,-213,3,6,33,1,633,634,713,5,6,33,1,28,57,-218,-218,-218,-218,-218,5,6,33,1,28,57,-220,-220,-220,-220,-220,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,14,1,5,29,4,1,8,13,7,16,78,2,1,17,1,-224,-224,-224,-224,-224,714,-224,-224,-224,-224,-224,-224,-224,-224,4,32,17,88,5,393,98,394,715,6,32,7,10,88,3,2,393,392,98,394,716,391,5,6,33,1,28,57,-236,-236,-236,-236,-236,3,6,33,1,641,642,717,5,6,33,1,28,57,-241,-241,-241,-241,-241,5,6,33,1,28,57,-242,-242,-242,-242,-242,5,6,33,1,28,57,-244,-244,-244,-244,-244,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,121,-228,120,-228,-228,-228,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,718,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,406,-125,407,-125,719,5,6,33,1,28,16,-278,-278,-278,-278,-278,5,6,33,1,28,16,-279,-279,-279,-279,-279,1,100,720,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,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,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,100,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,721,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,102,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,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,342,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,418,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,722,80,417,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,5,6,29,4,1,28,-268,-268,-268,-268,-268,3,6,33,1,658,659,723,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,295,93,724,725,294,192,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,726,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,5,6,33,1,28,57,-195,-195,-195,-195,-195,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,427,-125,727,-125,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,728,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,555,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,729,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,6,6,33,1,28,12,45,-93,-93,-93,-93,-93,-93,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,730,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,731,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,732,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,733,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,1,61,734,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,735,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,736,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,738,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,739,-334,-334,120,-334,-334,-334,-334,-334,-334,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,740,-338,-338,120,-338,-338,-338,-338,-338,-338,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,1,100,741,1,100,742,1,100,743,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-167,1,100,744,3,6,33,1,481,482,745,25,36,3,83,41,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,746,158,121,120,90,91,747,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,748,158,121,749,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,750,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,751,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,752,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,753,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,754,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,3,40,135,2,-353,-353,-353,24,39,29,54,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,3,6,33,86,633,634,755,3,54,1,1,756,99,100,5,6,33,1,28,57,-214,-214,-214,-214,-214,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,522,-125,757,-125,5,6,33,1,28,57,-215,-215,-215,-215,-215,3,54,1,1,758,99,100,5,6,33,1,28,57,-237,-237,-237,-237,-237,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,529,-125,759,-125,5,6,33,1,28,57,-238,-238,-238,-238,-238,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,2,39,1,541,760,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,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,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,5,6,29,4,1,28,-269,-269,-269,-269,-269,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,549,-125,761,-125,5,6,29,4,1,28,-270,-270,-270,-270,-270,3,124,44,2,762,446,448,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,763,192,5,6,33,1,28,57,-85,-85,-85,-85,-85,3,6,33,1,557,558,764,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,121,-84,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,5,6,33,1,28,57,-87,-87,-87,-87,-87,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,765,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,766,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,767,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,4,55,1,2,2,-64,-64,-64,-64,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,120,-328,-328,-328,768,-328,-328,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,769,-329,-329,120,-329,-329,-329,-329,-329,-329,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,120,-333,-333,-333,-333,-333,-333,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,120,-337,-337,-337,-337,-337,-337,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,770,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,771,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-155,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-157,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-159,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,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,-169,6,6,29,4,1,28,36,-131,-131,-131,-131,-131,-131,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,772,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,773,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,774,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,775,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,1,48,776,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,3,6,33,1,633,634,777,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,3,6,33,1,641,642,778,5,6,33,1,28,16,-280,-280,-280,-280,-280,3,6,33,1,658,659,779,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,781,5,6,33,1,28,57,-196,-196,-196,-196,-196,1,100,782,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,783,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,784,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,785,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,120,-335,-335,-335,-335,-335,-335,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,120,-339,-339,-339,-339,-339,-339,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,786,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,787,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,54,1,1,788,99,100,5,6,33,1,28,57,-216,-216,-216,-216,-216,5,6,33,1,28,57,-239,-239,-239,-239,-239,5,6,29,4,1,28,-271,-271,-271,-271,-271,43,1,5,29,4,1,21,7,12,4,2,14,4,4,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,1,-332,-332,-332,-332,-332,-332,791,-332,-332,-332,-332,-332,789,-332,-332,-332,790,-332,-332,120,-332,-332,-332,-332,-332,-332,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,792,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,1,100,793,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,120,-330,-330,-330,-330,-330,-330,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,120,-331,-331,-331,-331,-331,-331,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,41,1,5,29,4,1,21,7,12,4,2,14,4,18,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,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,1,125,794,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,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,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,29,4,1,44,41,-126,-126,-126,-126,-126,-126,43,1,5,29,4,1,21,7,12,4,2,14,4,4,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,1,-334,-334,-334,-334,-334,-334,791,-334,-334,-334,-334,-334,796,-334,-334,-334,797,-334,-334,120,-334,-334,-334,-334,-334,-334,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,43,1,5,29,4,1,21,7,12,4,2,14,4,4,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,1,-333,-333,-333,-333,-333,-333,791,-333,-333,-333,-333,-333,798,-333,-333,-333,-333,-333,-333,120,-333,-333,-333,-333,-333,-333,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,125,799,94,7,2,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,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,800,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,125,801,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,43,1,5,29,4,1,21,7,12,4,2,14,4,4,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,1,-335,-335,-335,-335,-335,-335,791,-335,-335,-335,-335,-335,802,-335,-335,-335,-335,-335,-335,120,-335,-335,-335,-335,-335,-335,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,1,125,803,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,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,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190],_=[],E=0,X,R,A,$;while(E<U.length){X=U[E++],R={},A=0,$=[];while(X--)A+=U[E++],$.push(A);for(A of $)R[A]=U[E++];_.push(R)}return _})(),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,30,6,30,3,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,8,1,8,1,29,1,29,2,29,4,29,3,36,2,36,3,32,1,50,1,52,1,52,1,54,1,54,3,57,1,57,2,59,3,59,5,59,2,59,1,62,1,62,3,67,3,67,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,17,3,17,4,17,5,77,1,77,1,77,3,77,5,77,3,77,5,81,1,81,1,81,1,78,1,78,3,78,4,78,1,79,2,79,2,87,1,87,1,87,1,87,1,87,1,87,3,87,2,87,3,87,3,87,3,87,3,87,3,87,3,87,2,87,2,87,4,87,6,87,5,87,7,10,2,10,4,10,1,15,5,15,2,44,5,44,2,105,1,105,1,108,0,108,1,34,0,34,1,34,3,34,4,34,6,109,1,109,3,109,2,109,1,110,1,110,1,110,1,110,1,112,2,113,1,113,1,113,3,113,3,113,3,113,3,113,2,113,2,113,4,113,6,113,4,113,6,113,4,113,5,113,7,113,5,113,7,113,5,113,7,113,3,113,3,113,3,113,3,113,2,113,2,113,4,113,6,113,5,113,7,37,1,37,1,37,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,89,3,89,4,89,6,118,3,118,3,47,10,47,12,47,11,47,13,47,4,128,0,128,1,128,3,128,4,128,6,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,134,1,134,3,134,4,134,4,134,6,135,1,135,3,135,1,135,3,132,1,133,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,140,1,140,3,140,4,140,4,140,6,142,1,142,3,142,3,142,1,142,3,65,3,65,3,65,3,65,2,65,2,92,0,92,1,93,2,93,4,90,1,90,1,82,2,111,2,111,3,111,4,150,1,150,1,116,5,114,3,114,2,114,2,114,1,145,1,145,3,145,4,145,4,145,6,152,1,152,1,152,1,152,1,148,1,148,3,148,4,148,4,148,6,153,1,153,2,149,1,149,2,147,1,147,2,154,1,154,2,155,1,155,3,23,2,23,3,23,4,23,5,157,3,157,3,157,2,28,2,28,4,88,3,88,5,163,2,163,4,163,2,163,4,24,2,24,2,24,2,24,1,166,2,166,2,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,3,25,5,172,1,172,3,123,1,123,3,26,5,26,7,26,4,26,6,174,1,174,2,176,3,176,4,178,3,178,5,180,3,180,5,22,1,22,3,22,1,22,3,22,3,22,3,22,3,45,2,45,2,45,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,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,117,2],ruleActions:(U,_,E,X)=>{let R=_,A=_.length-1;switch(U){case 1:return["program"];case 2:return["program",...R[A]];case 3:case 61:case 128:case 193:case 212:case 235:case 267:case 281:case 285:case 289:case 344:case 350:return[R[A]];case 4:case 129:case 194:case 213:case 236:case 268:case 290:return[...R[A-2],R[A]];case 5:case 63:case 288:return R[A-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 47:case 48:case 55:case 56:case 57:case 58:case 59:case 66:case 67:case 71:case 72:case 73:case 76:case 77:case 78:case 83:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 99:case 100:case 101:case 123:case 124:case 125:case 126:case 132:case 136:case 137:case 138:case 139:case 141:case 142:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 178:case 179:case 180:case 181:case 217:case 219:case 221:case 240:case 243:case 272:case 273:case 274:case 276:case 309:case 342:case 358:case 360:return R[A];case 30:return["def",R[A-4],R[A-2],R[A]];case 31:return["def",R[A-1],[],R[A]];case 32:return["state",R[A-2],R[A]];case 33:return["state",R[A-3],R[A]];case 34:return["state",R[A-4],R[A-1]];case 35:return["computed",R[A-2],R[A]];case 36:return["computed",R[A-3],R[A]];case 37:return["computed",R[A-4],R[A-1]];case 38:return["readonly",R[A-2],R[A]];case 39:return["readonly",R[A-3],R[A]];case 40:return["readonly",R[A-4],R[A-1]];case 41:return["effect",R[A-2],R[A]];case 42:return["effect",R[A-3],R[A]];case 43:return["effect",R[A-4],R[A-1]];case 44:case 45:return["effect",null,R[A]];case 46:return["effect",null,R[A-1]];case 49:return["yield"];case 50:return["yield",R[A]];case 51:return["yield",R[A-1]];case 52:return["yield-from",R[A]];case 53:return["block"];case 54:return["block",...R[A-1]];case 60:return["str",...R[A-1]];case 62:case 282:case 286:case 351:return[...R[A-1],R[A]];case 64:case 215:case 238:case 253:case 270:return R[A-2];case 65:return"";case 68:return["regex",R[A-1]];case 69:return["regex-index",R[A-2],R[A]];case 70:return["regex-index",R[A],null];case 74:return"undefined";case 75:return"null";case 79:return["=",R[A-2],R[A]];case 80:return["=",R[A-3],R[A]];case 81:return["=",R[A-4],R[A-1]];case 82:return[R[A],R[A],null];case 84:return[R[A-2],R[A],":"];case 85:return[R[A-4],R[A-1],":"];case 86:return[R[A-2],R[A],"="];case 87:return[R[A-4],R[A-1],"="];case 92:return["dynamicKey",R[A-1]];case 93:return["[]","this",R[A-1]];case 95:case 96:case 140:return["...",R[A]];case 102:case 248:return["super",...R[A]];case 103:case 249:return[R[A-1],...R[A]];case 104:case 105:return[R[A-2],...R[A]];case 106:case 143:case 160:return[".",R[A-2],R[A]];case 107:case 144:case 161:return["?.",R[A-2],R[A]];case 108:case 145:case 162:return["::",R[A-2],R[A]];case 109:case 146:case 163:return["?::",R[A-2],R[A]];case 110:case 147:case 164:return["::",R[A-1],"prototype"];case 111:case 148:case 165:return["?::",R[A-1],"prototype"];case 112:case 149:case 151:case 166:return["[]",R[A-3],R[A-1]];case 113:case 150:case 152:case 167:return["[]",R[A-5],R[A-2]];case 114:case 154:case 156:case 168:return["?[]",R[A-4],R[A-1]];case 115:case 155:case 157:case 169:return["?[]",R[A-6],R[A-2]];case 116:return["return",R[A]];case 117:return["return",R[A-1]];case 118:return["return"];case 119:case 121:return[R[A-1],R[A-3],R[A]];case 120:case 122:return[R[A-1],[],R[A]];case 127:case 192:case 252:case 283:return[];case 130:case 195:case 214:case 237:case 269:return[...R[A-3],R[A]];case 131:case 196:case 216:case 239:case 271:return[...R[A-5],...R[A-2]];case 133:case 343:return["default",R[A-2],R[A]];case 134:return["rest",R[A]];case 135:return["expansion"];case 153:return[R[A-1][0],R[A-3],...R[A-1].slice(1)];case 158:return["optindex",R[A-4],R[A-1]];case 159:return["optindex",R[A-6],R[A-2]];case 182:return[".","super",R[A]];case 183:return["[]","super",R[A-1]];case 184:return["[]","super",R[A-2]];case 185:return[".","new",R[A]];case 186:return[".","import",R[A]];case 187:return["object-comprehension",R[A-8],R[A-6],[["for-of",R[A-4],R[A-2],!1]],[]];case 188:return["object-comprehension",R[A-10],R[A-8],[["for-of",R[A-6],R[A-4],!1]],[R[A-2]]];case 189:return["object-comprehension",R[A-9],R[A-7],[["for-of",R[A-4],R[A-2],!0]],[]];case 190:return["object-comprehension",R[A-11],R[A-9],[["for-of",R[A-6],R[A-4],!0]],[R[A-2]]];case 191:return["object",...R[A-2]];case 197:return["class",null,null];case 198:return["class",null,null,R[A]];case 199:return["class",null,R[A]];case 200:return["class",null,R[A-1],R[A]];case 201:return["class",R[A],null];case 202:return["class",R[A-1],null,R[A]];case 203:return["class",R[A-2],R[A]];case 204:return["class",R[A-3],R[A-1],R[A]];case 205:case 208:return["import","{}",R[A]];case 206:case 207:return["import",R[A-2],R[A]];case 209:return["import",R[A-4],R[A]];case 210:return["import",[R[A-4],R[A-2]],R[A]];case 211:return["import",[R[A-7],R[A-4]],R[A]];case 218:case 220:case 241:case 242:case 244:case 345:return[R[A-2],R[A]];case 222:return["*",R[A]];case 223:return["export","{}"];case 224:return["export",R[A-2]];case 225:case 226:return["export",R[A]];case 227:return["export",["=",R[A-2],R[A]]];case 228:return["export",["=",R[A-3],R[A]]];case 229:return["export",["=",R[A-4],R[A-1]]];case 230:return["export-default",R[A]];case 231:return["export-default",R[A-1]];case 232:return["export-all",R[A]];case 233:return["export-from","{}",R[A]];case 234:return["export-from",R[A-4],R[A]];case 245:return["tagged-template",R[A-2],R[A]];case 246:return R[A-1]?["?call",R[A-2],...R[A]]:[R[A-2],...R[A]];case 247:return["optcall",R[A-2],...R[A]];case 250:case 287:return null;case 251:return!0;case 254:case 255:return"this";case 256:return[".","this",R[A]];case 257:return["array"];case 258:return["array",...R[A-1]];case 259:return["array",...R[A-2],...R[A-1]];case 260:return"..";case 261:case 275:return"...";case 262:return[R[A-2],R[A-3],R[A-1]];case 263:case 382:case 384:case 385:case 399:case 401:return[R[A-1],R[A-2],R[A]];case 264:return[R[A],R[A-1],null];case 265:return[R[A-1],null,R[A]];case 266:return[R[A],null,null];case 277:return[...R[A-2],...R[A]];case 278:return[...R[A-3],...R[A]];case 279:return[...R[A-2],...R[A-1]];case 280:return[...R[A-5],...R[A-4],...R[A-2],...R[A-1]];case 284:return[...R[A]];case 291:return["try",R[A]];case 292:return["try",R[A-1],R[A]];case 293:return["try",R[A-2],R[A]];case 294:return["try",R[A-3],R[A-2],R[A]];case 295:case 296:case 365:case 368:case 370:return[R[A-1],R[A]];case 297:return[null,R[A]];case 298:return["throw",R[A]];case 299:return["throw",R[A-1]];case 300:return R[A-1].length===1?R[A-1][0]:["block",...R[A-1]];case 301:return R[A-2].length===1?R[A-2][0]:["block",...R[A-2]];case 302:return["while",R[A]];case 303:return["while",R[A-2],R[A]];case 304:return["until",R[A]];case 305:return["until",R[A-2],R[A]];case 306:return R[A-1].length===2?[R[A-1][0],R[A-1][1],R[A]]:[R[A-1][0],R[A-1][1],R[A-1][2],R[A]];case 307:case 308:return R[A].length===2?[R[A][0],R[A][1],[R[A-1]]]:[R[A][0],R[A][1],R[A][2],[R[A-1]]];case 310:return["loop",R[A]];case 311:return["loop",[R[A]]];case 312:return["for-in",R[A-3],R[A-1],null,null,R[A]];case 313:return["for-in",R[A-5],R[A-3],null,R[A-1],R[A]];case 314:return["for-in",R[A-5],R[A-3],R[A-1],null,R[A]];case 315:return["for-in",R[A-7],R[A-5],R[A-1],R[A-3],R[A]];case 316:return["for-in",R[A-7],R[A-5],R[A-3],R[A-1],R[A]];case 317:return["for-of",R[A-3],R[A-1],!1,null,R[A]];case 318:return["for-of",R[A-5],R[A-3],!1,R[A-1],R[A]];case 319:return["for-of",R[A-3],R[A-1],!0,null,R[A]];case 320:return["for-of",R[A-5],R[A-3],!0,R[A-1],R[A]];case 321:return["for-from",R[A-3],R[A-1],!1,null,R[A]];case 322:return["for-from",R[A-5],R[A-3],!1,R[A-1],R[A]];case 323:return["for-from",R[A-3],R[A-1],!0,null,R[A]];case 324:return["for-from",R[A-5],R[A-3],!0,R[A-1],R[A]];case 325:return["for-in",[],R[A-1],null,null,R[A]];case 326:return["for-in",[],R[A-3],R[A-1],null,R[A]];case 327:return["comprehension",R[A-4],[["for-in",R[A-2],R[A],null]],[]];case 328:return["comprehension",R[A-6],[["for-in",R[A-4],R[A-2],null]],[R[A]]];case 329:return["comprehension",R[A-6],[["for-in",R[A-4],R[A-2],R[A]]],[]];case 330:return["comprehension",R[A-8],[["for-in",R[A-6],R[A-4],R[A]]],[R[A-2]]];case 331:return["comprehension",R[A-8],[["for-in",R[A-6],R[A-4],R[A-2]]],[R[A]]];case 332:return["comprehension",R[A-4],[["for-of",R[A-2],R[A],!1]],[]];case 333:return["comprehension",R[A-6],[["for-of",R[A-4],R[A-2],!1]],[R[A]]];case 334:return["comprehension",R[A-5],[["for-of",R[A-2],R[A],!0]],[]];case 335:return["comprehension",R[A-7],[["for-of",R[A-4],R[A-2],!0]],[R[A]]];case 336:return["comprehension",R[A-4],[["for-from",R[A-2],R[A],!1,null]],[]];case 337:return["comprehension",R[A-6],[["for-from",R[A-4],R[A-2],!1,null]],[R[A]]];case 338:return["comprehension",R[A-5],[["for-from",R[A-2],R[A],!0,null]],[]];case 339:return["comprehension",R[A-7],[["for-from",R[A-4],R[A-2],!0,null]],[R[A]]];case 340:return["comprehension",R[A-2],[["for-in",[],R[A],null]],[]];case 341:return["comprehension",R[A-4],[["for-in",[],R[A-2],R[A]]],[]];case 346:return["switch",R[A-3],R[A-1],null];case 347:return["switch",R[A-5],R[A-3],R[A-1]];case 348:return["switch",null,R[A-1],null];case 349:return["switch",null,R[A-3],R[A-1]];case 352:return["when",R[A-1],R[A]];case 353:return["when",R[A-2],R[A-1]];case 354:return["if",R[A-1],R[A]];case 355:return R[A-4].length===3?["if",R[A-4][1],R[A-4][2],["if",R[A-1],R[A]]]:[...R[A-4],["if",R[A-1],R[A]]];case 356:return["unless",R[A-1],R[A]];case 357:return["if",["!",R[A-3]],R[A-2],R[A]];case 359:return R[A-2].length===3?["if",R[A-2][1],R[A-2][2],R[A]]:[...R[A-2],R[A]];case 361:case 362:return["if",R[A],[R[A-2]]];case 363:case 364:return["unless",R[A],[R[A-2]]];case 366:case 367:case 369:case 404:return["do-iife",R[A]];case 371:return["-",R[A]];case 372:return["+",R[A]];case 373:return["await",R[A]];case 374:return["await",R[A-1]];case 375:return["--",R[A],!1];case 376:return["++",R[A],!1];case 377:return["--",R[A-1],!0];case 378:return["++",R[A-1],!0];case 379:return["?",R[A-1]];case 380:return["+",R[A-2],R[A]];case 381:return["-",R[A-2],R[A]];case 383:return["**",R[A-2],R[A]];case 386:return["&",R[A-2],R[A]];case 387:return["^",R[A-2],R[A]];case 388:return["|",R[A-2],R[A]];case 389:case 390:case 391:case 392:case 393:case 394:return["control",R[A-1],R[A-2],R[A]];case 395:return["&&",R[A-2],R[A]];case 396:return["||",R[A-2],R[A]];case 397:return["??",R[A-2],R[A]];case 398:return["!?",R[A-2],R[A]];case 400:return["?:",R[A-4],R[A-2],R[A]];case 402:return[R[A-3],R[A-4],R[A-1]];case 403:return[R[A-2],R[A-3],R[A]]}},parseError(U,_){let E,X,R,A,$,Y,F;if(_.recoverable)return this.trace(U);else throw R=(_.line||0)+1,E=_.loc?.first_column||0,F=_.token?` (token: ${_.token})`:"",Y=_.text?` near '${_.text}'`:"",A=`line ${R}, column ${E}`,$=`Parse error at ${A}${F}${Y}: ${U}`,X=Error($),X.hash=_,X},parse(U){let _,E,X,R,A,$,Y,F,G,Z,M,D,Q,J,K,q,N,W,z,H,O,S,T,B,L,j,w,P;[O,T,G]=[[0],[null],[]],[J,w,L,B,W]=[this.parseTable,"",0,0,0],[E,_]=[2,1],F=Object.create(this.lexer),z={yy:{}};for(let V in this.yy)if(Object.hasOwn(this.yy,V)){let v=this.yy[V];z.yy[V]=v}if(F.setInput(U,z.yy),[z.yy.lexer,z.yy.parser]=[F,this],F.yylloc==null)F.yylloc={};j=F.yylloc,G.push(j),N=F.options?.ranges,this.parseError=typeof z.yy.parseError==="function"?z.yy.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let V;if(V=F.lex()||_,typeof V!=="number")V=this.symbolIds[V]||V;return V},[S,K,H,X,q,P,Q,$,D,A]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(H=O[O.length-1],S==null)S=Y();if(X=J[H]!=null?J[H][S]:void 0,X==null){if(R="",!W)A=(()=>{let V=[];for(let v in J[H]){if(!Object.hasOwn(J[H],v))continue;if(this.tokenNames[v]&&v>E)V.push(`'${this.tokenNames[v]}'`)}return V})();throw R=(()=>{if(F.showPosition)return`Parse error on line ${L+1}:
|
|
20
|
-
${F.
|
|
21
|
-
|
|
22
|
-
`)
|
|
23
|
-
`)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
`,
|
|
36
|
-
`,
|
|
37
|
-
`,
|
|
38
|
-
`,
|
|
39
|
-
`,
|
|
40
|
-
`,
|
|
41
|
-
`,
|
|
42
|
-
|
|
43
|
-
`,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
`,R+=` try { return v.toString(); } catch { return ""; }
|
|
48
|
-
`,R+=` }
|
|
49
|
-
`,R+=` return "";
|
|
50
|
-
`,R+=`};
|
|
51
|
-
`,G=!0;if(this.usesReactivity&&!this.options.skipReactiveRuntime)R+=this.getReactiveRuntime(),G=!0;if(this.dataSection!==null&&this.dataSection!==void 0)R+=`var DATA;
|
|
52
|
-
`,R+=`_setDataSection();
|
|
53
|
-
`,G=!0;if(G&&R.length>0)R+=`
|
|
54
|
-
`;if(R+=F,$.length>0)R+=`
|
|
55
|
-
`+$.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
|
|
56
|
-
`);if(this.dataSection!==null&&this.dataSection!==void 0)R+=`
|
|
1
|
+
var a=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),o=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def"]),s={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},d=new Set(Object.keys(s)),D1=new Set(["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"]),Q1=new Set(["break","continue","debugger"]),Z1=new Set(["NEW","TYPEOF","DELETE"]),X1=new Set(["IN","OF","INSTANCEOF"]),c=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),Y1=new Set([...c,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),r=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),J1=new Set(["+","-"]),G1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&"]),z1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),b=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),v=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),R1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START"},t=new Set(["CATCH","THEN","ELSE","FINALLY",...v]),e=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),K1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH"]),A1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),_1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),m=new Set(["INDENT","OUTDENT","TERMINATOR"]),F1=new Set([".","?."]),H1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),O1=new Set([...Y1,"++","--"]),$1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),P1=new Set(["*","/","%","//","%%"]),q1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),u1=new Set(["<<",">>",">>>"]),L1=new Set(["!","~"]),I1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,N1=/^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,w1=/^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,E1=/^[^\n\S]+/,B1=/^(?:\n[^\n\S]*)+/,j1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,f1=/^[-=]>/,S1=/^(?:~[=>]|=!)/,V1=/^(?:'''|"""|'|")/,C1=/^(?:[^\\']|\\[\s\S])*/,y1=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,k1=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,h1=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,T1=/\n+([^\n\S]*)(?=\S)/g,v1=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,U1=/^\w*/,g1=/^(?!.*(.).*\1)[gimsuy]*$/,b1=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,x1=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,l1=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,m1=/\s+$/,c1=/^\s*(?:,|\??\.(?![.\d]))/,n1=65279;function W1($,T,{pre:Y=0,row:U=0,col:A=0,len:F=0,data:W=null}={}){let M=[$,T];return M.pre=Y,M.data=W,M.loc={r:U,c:A,n:F},M.spaced=Y>0,M.newLine=!1,M}function k($,T,Y){let U=W1($,T);if(U.generated=!0,Y)U.origin=Y;return U}function C($,{row:T=0,col:Y=0,len:U=1}={}){let A=SyntaxError($);throw A.location={first_line:T,first_column:Y,last_column:Y+U-1},A}function p1($){if($==null)return NaN;switch($.charAt(1)){case"b":return parseInt($.slice(2).replace(/_/g,""),2);case"o":return parseInt($.slice(2).replace(/_/g,""),8);case"x":return parseInt($.slice(2).replace(/_/g,""),16);default:return parseFloat($.replace(/_/g,""))}}class x{tokenize($,T={}){this.code=$,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=T.row||0,this.col=T.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,$=this.clean($),this.code=$;while(this.pos<$.length){this.chunk=$.slice(this.pos);let Y=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(Y===0)C(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(Y),T.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let Y=this.ends[this.ends.length-1];C(`missing ${Y.tag}`,{row:this.row,col:this.col})}if(T.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean($){if($.charCodeAt(0)===n1)$=$.slice(1);if($=$.replace(/\r\n?/g,`
|
|
2
|
+
`),$=$.replace(m1,""),/^[^\n\S]/.test($))$=`
|
|
3
|
+
`+$;return $}advance($){let T=this.code.slice(this.pos,this.pos+$);for(let Y=0;Y<T.length;Y++)if(T[Y]===`
|
|
4
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=$}emit($,T,{len:Y,data:U,pre:A}={}){let F=W1($,T,{pre:A??0,row:this.row,col:this.col,len:Y??(typeof T==="string"?T.length:0),data:U});return this.tokens.push(F),F}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let $=this.prev();return $?$[0]:void 0}prevVal(){let $=this.prev();return $?$[1]:void 0}identifierToken(){if(S1.test(this.chunk))return 0;let $=I1.exec(this.chunk);if(!$)return 0;let[T,Y,U]=$,A=Y.length,F={},W;if(Y==="own"&&this.prevTag()==="FOR")return this.emit("OWN",Y,{len:A}),A;if(Y==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",Y,{len:A}),A;if(Y==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let Q=this.prevTag();if(Q==="DEFAULT"||Q==="IMPORT_ALL"||Q==="IDENTIFIER")return this.emit("AS",Y,{len:A}),A}if((Y==="as"||Y==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(Y==="as!"?"FORASAWAIT":"FORAS","as",{len:A}),A;if(Y==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",Y,{len:A}),A;if(Y==="do"&&/^(\s*super)(?!\(\))/.test(this.chunk.slice(3))){let Q=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3));return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Q[1].length+3}let M=this.prev();if(U&&M&&M[0]==="SPACE?")U=null;if(U||M&&(M[0]==="."||M[0]==="?."||!M.spaced&&M[0]==="@"))W="PROPERTY";else W="IDENTIFIER";let D=Y.endsWith("!")||Y.endsWith("?")?Y.slice(0,-1):Y;if(W==="IDENTIFIER"&&!Y.endsWith("!")&&!Y.endsWith("?")&&(a.has(Y)||o.has(Y)||d.has(Y))&&!(this.exportSpecifierList&&d.has(Y))){if(s[Y]!==void 0)F.original=Y,Y=s[Y];W=this.classifyKeyword(Y,W,F)}if(W==="IDENTIFIER"&&D1.has(D))C(`reserved word '${D}'`,{row:this.row,col:this.col,len:A});if(W==="PROPERTY"&&M){if(M[0]==="."&&this.tokens.length>1){let Q=this.tokens[this.tokens.length-2];if(Q[0]==="UNARY"&&Q[1]==="new")Q[0]="NEW_TARGET";if(Q[0]==="IMPORT"&&Q[1]==="import")this.seenImport=!1,Q[0]="IMPORT_META"}}if(Y.length>1&&Y.endsWith("!"))F.await=!0,Y=Y.slice(0,-1);if(Y.length>1&&Y.endsWith("?"))F.predicate=!0,Y=Y.slice(0,-1);let Z=this.emit(W,Y,{len:A,data:Object.keys(F).length?F:null});if(U)return this.emit(":",":",{len:1}),A+U.length;return A}classifyKeyword($,T,Y){switch($){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return $}if(Q1.has($))return"STATEMENT";let U=$.toUpperCase();if(U==="WHEN"&&m.has(this.prevTag()))return"LEADING_WHEN";if(U==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(U==="UNLESS")return"UNLESS";if(U==="IMPORT")return this.seenImport=!0,"IMPORT";if(U==="EXPORT")return this.seenExport=!0,"EXPORT";if(Z1.has(U))return"UNARY";if(X1.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let A=this.tokens.pop();Y.invert=A.data?.original||A[1]}return"RELATION"}if(a.has($)||o.has($))return U;return T}commentToken(){let $=j1.exec(this.chunk);if(!$)return 0;return $[0].length}whitespaceToken(){let $=E1.exec(this.chunk);if(!$&&this.chunk[0]!==`
|
|
5
|
+
`)return 0;let T=this.prev();if(T)if($)T.spaced=!0,T.pre=$[0].length;else T.newLine=!0;return $?$[0].length:0}lineToken(){let $=B1.exec(this.chunk);if(!$)return 0;let T=$[0],Y=T.length-1-T.lastIndexOf(`
|
|
6
|
+
`);if(this.isUnfinished())return T.length;if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(Y===this.indent)return this.emitNewline(),T.length;if(Y>this.indent){if(!this.tokens.length)return this.indent=Y,T.length;let U=Y-this.indent;return this.emit("INDENT",U,{len:Y}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=Y,T.length}return this.outdentTo(Y,T.length),T.length}outdentTo($,T=0){let Y=this.indent-$;while(Y>0){let U=this.indents[this.indents.length-1];if(!U)Y=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",Y,{len:T}),Y-=U}this.emitNewline(),this.indent=$}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
7
|
+
`,{len:0})}isUnfinished(){return c1.test(this.chunk)||H1.has(this.prevTag())}pair($){let T=this.ends[this.ends.length-1];if(!T||$!==T.tag){if(T?.tag==="OUTDENT"){let Y=this.indents[this.indents.length-1];if(Y)this.outdentTo(this.indent-Y);return this.pair($)}C(`unmatched ${$}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let $=V1.exec(this.chunk);if(!$)return 0;let T=$[0],Y=this.prev();if(Y&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))Y[0]="FROM";let U;switch(T){case"'":U=C1;break;case'"':U=y1;break;case"'''":U=k1;break;case'"""':U=h1;break}let{tokens:A,index:F}=this.matchWithInterpolations(U,T),W=T.length===3,M=null;if(W)M=this.processHeredocIndent(F,T,A);return this.mergeInterpolationTokens(A,{quote:T,indent:M,endOffset:F}),F}processHeredocIndent($,T,Y){let U=$-T.length,A=U-1;while(A>=0&&this.chunk[A]!==`
|
|
8
|
+
`)A--;A++;let F=this.chunk.slice(A,U),W=/^\s*$/.test(F)?F.length:null,M="";for(let Q of Y)if(Q[0]==="NEOSTRING")M+=Q[1];let D=null,Z;T1.lastIndex=0;while(Z=T1.exec(M))if(D===null||Z[1].length>0&&Z[1].length<D.length)D=Z[1];if(W===null)return D;if(D===null)return" ".repeat(W);if(W<=D.length)return" ".repeat(W);return D}matchWithInterpolations($,T,Y,U){if(!Y)Y=T;if(!U)U=/^[#$]\{/;let A=[],F=T.length;if(this.chunk.slice(0,F)!==T)return null;let W=this.chunk.slice(F);while(!0){let[M]=$.exec(W);A.push(["NEOSTRING",M,{offset:F}]),W=W.slice(M.length),F+=M.length;let D=U.exec(W);if(!D)break;let Q=D[0].length-1,X=W.slice(Q),J=new x().tokenize(X,{row:this.row,col:this.col+F+Q,untilBalanced:!0,rewrite:!1}),z=J.index+Q;if(W[z-1]==="}"){let R=J.tokens[0],_=J.tokens[J.tokens.length-1];R[0]="INTERPOLATION_START",R[1]="(",_[0]="INTERPOLATION_END",_[1]=")"}if(J.tokens[1]?.[0]==="TERMINATOR")J.tokens.splice(1,1);let G=J.tokens.length;if(G>2&&J.tokens[G-3]?.[0]==="INDENT"&&J.tokens[G-2]?.[0]==="OUTDENT")J.tokens.splice(G-3,2);A.push(["TOKENS",J.tokens]),W=W.slice(z),F+=z}if(W.slice(0,Y.length)!==Y)C(`missing ${Y}`,{row:this.row,col:this.col});return{tokens:A,index:F+Y.length}}mergeInterpolationTokens($,{quote:T,indent:Y,endOffset:U}){if($.length>1)this.emit("STRING_START","(",{len:T?.length||0,data:{quote:T}});for(let A=0;A<$.length;A++){let[F,W]=$[A];if(F==="TOKENS")for(let M of W)this.tokens.push(M);else if(F==="NEOSTRING"){let M=W;if(Y){let D=new RegExp("\\n"+Y,"g");M=M.replace(D,`
|
|
9
|
+
`)}if(A===0&&T?.length===3)M=M.replace(/^\n/,"");if(A===$.length-1&&T?.length===3)M=M.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${M}"`,{len:W.length,data:{quote:T}})}}if($.length>1)this.emit("STRING_END",")",{len:T?.length||0});return U}numberToken(){let $=N1.exec(this.chunk);if(!$)return 0;let T=$[0],Y=T.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(T))C(`radix prefix in '${T}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(T))C(`decimal literal '${T}' must not be prefixed with '0'`,{...U,len:Y});if(/^0\d+/.test(T))C(`octal literal '${T}' must be prefixed with '0o'`,{...U,len:Y});let A=p1(T),F=A===1/0?"INFINITY":"NUMBER",W={parsedValue:A};if(F==="INFINITY")W.original=T;return this.emit(F,T,{len:Y,data:W}),Y}regexToken(){let $=this.matchWithInterpolations(b1,"///");if($){let{tokens:Z,index:Q}=$,[X]=U1.exec(this.chunk.slice(Q)),J=Q+X.length;if(Z.length===1||!Z.some((z)=>z[0]==="TOKENS")){let z=Z[0]?.[1]||"";this.emit("REGEX",`/${z}/${X}`,{len:J,data:{delimiter:"///",heregex:{flags:X}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(Z,{quote:"///",endOffset:J-X.length}),X)this.emit(",",",",{len:0}),this.emit("STRING",`"${X}"`,{len:X.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return J}let T=v1.exec(this.chunk);if(!T)return 0;let[Y,U,A]=T,F=this.prev();if(F){if(F.spaced&&c.has(F[0])&&(!A||/^\/=?\s/.test(Y)))return 0;if(O1.has(F[0])&&!(F.spaced&&c.has(F[0])))return 0}if(!A)C("missing / (unclosed regex)",{row:this.row,col:this.col});let W=Y.length,[M]=U1.exec(this.chunk.slice(W)),D=W+M.length;if(!g1.test(M))C(`invalid regular expression flags ${M}`,{row:this.row,col:this.col+W,len:M.length});return this.emit("REGEX",`/${U}/${M}`,{len:D,data:{delimiter:"/"}}),D}jsToken(){if(this.chunk[0]!=="`")return 0;let $=l1.exec(this.chunk)||x1.exec(this.chunk);if(!$)return 0;let T=$[1],Y=$[0].length;return this.emit("JS",T,{len:Y,data:{here:$[0].startsWith("```")}}),Y}literalToken(){let $=w1.exec(this.chunk),T=$?$[0]:this.chunk.charAt(0),Y=T,U=this.prev();if(f1.test(T))this.tagParameters();if(U&&(T==="="||$1.has(T))){if(T==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",T.length}if(T==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(T==="{"&&this.seenImport)this.importSpecifierList=!0;if(T==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(T==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(T==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(T===";")this.seenFor=this.seenImport=this.seenExport=!1,Y="TERMINATOR";else if(T==="~=")Y="COMPUTED_ASSIGN";else if(T===":=")Y="REACTIVE_ASSIGN";else if(T==="~>")Y="REACT_ASSIGN";else if(T==="=!")Y="READONLY_ASSIGN";else if(T==="*"&&U?.[0]==="EXPORT")Y="EXPORT_ALL";else if(P1.has(T))Y="MATH";else if(q1.has(T))Y="COMPARE";else if($1.has(T))Y="COMPOUND_ASSIGN";else if(L1.has(T))Y="UNARY_MATH";else if(u1.has(T))Y="SHIFT";else if(T==="?"&&U?.spaced)Y="SPACE?";else if(U){if(T==="("&&!U.spaced&&c.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";Y="CALL_START"}if(T==="["&&!U.spaced&&Y1.has(U[0])){if(Y="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(T==="("||T==="{"||T==="[")this.ends.push({tag:R1[T],origin:[Y,T]});else if(T===")"||T==="}"||T==="]")this.pair(T);return this.emit(Y,T,{len:T.length}),T.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let $=this.tokens.length-1,T=[];this.tokens[$][0]="PARAM_END";while($-- >0){let Y=this.tokens[$];if(Y[0]===")")T.push(Y);else if(Y[0]==="("||Y[0]==="CALL_START")if(T.length)T.pop();else if(Y[0]==="(")return Y[0]="PARAM_START",this.tagDoIife($-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife($){let T=this.tokens[$??this.tokens.length-1];if(T?.[0]==="DO")T[0]="DO_IIFE"}rewrite($){return this.tokens=$,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let $=0;while(this.tokens[$]?.[0]==="TERMINATOR")$++;if($>0)this.tokens.splice(0,$)}closeOpenCalls(){this.scanTokens(($,T)=>{if($[0]==="CALL_START")this.detectEnd(T+1,(Y)=>Y[0]===")"||Y[0]==="CALL_END",(Y)=>Y[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens(($,T)=>{if($[0]==="INDEX_START")this.detectEnd(T+1,(Y)=>Y[0]==="]"||Y[0]==="INDEX_END",(Y,U)=>{if(this.tokens[U+1]?.[0]===":")$[0]="[",Y[0]="]";else Y[0]="INDEX_END"});return 1})}normalizeLines(){let $=null,T=null,Y=null,U=(F,W)=>{return F[1]!==";"&&_1.has(F[0])&&!(F[0]==="TERMINATOR"&&t.has(this.tokens[W+1]?.[0]))&&!(F[0]==="ELSE"&&$!=="THEN")||F[0]===","&&($==="->"||$==="=>")||F1.has(F[0])&&(this.tokens[W-1]?.newLine||this.tokens[W-1]?.[0]==="OUTDENT")},A=(F,W)=>{let M=this.tokens[W-1]?.[0]===","?W-1:W;this.tokens.splice(M,0,Y)};this.scanTokens((F,W,M)=>{let[D]=F;if(D==="TERMINATOR"){if(this.tokens[W+1]?.[0]==="ELSE"&&this.tokens[W-1]?.[0]!=="OUTDENT")return M.splice(W,1,...this.makeIndentation()),1;if(t.has(this.tokens[W+1]?.[0]))return M.splice(W,1),0}if(D==="CATCH")for(let Z=1;Z<=2;Z++){let Q=this.tokens[W+Z]?.[0];if(Q==="OUTDENT"||Q==="TERMINATOR"||Q==="FINALLY")return M.splice(W+Z,0,...this.makeIndentation()),2+Z}if((D==="->"||D==="=>")&&(this.tokens[W+1]?.[0]===","||this.tokens[W+1]?.[0]==="]"))return[T,Y]=this.makeIndentation(),M.splice(W+1,0,T,Y),1;if(A1.has(D)&&this.tokens[W+1]?.[0]!=="INDENT"&&!(D==="ELSE"&&this.tokens[W+1]?.[0]==="IF")){if($=D,[T,Y]=this.makeIndentation(),D==="THEN")T.fromThen=!0;if(M.splice(W+1,0,T),this.detectEnd(W+2,U,A),D==="THEN")M.splice(W,1);return 1}return 1})}tagPostfixConditionals(){let $=null,T=(U,A)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!A1.has(this.tokens[A-1]?.[0])},Y=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)$[0]="POST_"+$[0]};this.scanTokens((U,A)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;return $=U,this.detectEnd(A+1,T,Y),1})}addImplicitBracesAndParens(){let $=[],T=!1;this.scanTokens((Y,U,A)=>{let[F]=Y,W=A[U-1]||[],M=A[U+1]||[],[D]=W,[Z]=M,Q=U,X=(O)=>U-Q+O,J=()=>$[$.length-1],z=(O)=>O?.[2]?.ours,G=()=>z(J())&&J()?.[0]==="(",R=()=>z(J())&&J()?.[0]==="{",_=(O)=>{$.push(["(",O,{ours:!0}]),A.splice(O,0,k("CALL_START","("))},K=()=>{$.pop(),A.splice(U,0,k("CALL_END",")")),U+=1},P=(O,I={})=>{$.push(["{",O,{sameLine:!0,startsLine:I.startsLine??!0,ours:!0}]);let w=k("{","{");if(!w.data)w.data={};w.data.generated=!0,A.splice(O,0,w)},H=(O)=>{O=O??U,$.pop(),A.splice(O,0,k("}","}")),U+=1};if((G()||R())&&K1.has(F))return $.push(["CONTROL",U,{ours:!0}]),X(1);if(F==="INDENT"&&z(J())){if(D!=="=>"&&D!=="->"&&D!=="["&&D!=="("&&D!==","&&D!=="{"&&D!=="ELSE"&&D!=="=")while(G()||R()&&D!==":")if(G())K();else H();if(J()?.[2]?.ours&&J()[0]==="CONTROL")$.pop();return $.push([F,U]),X(1)}if(b.has(F))return $.push([F,U]),X(1);if(v.has(F)){while(z(J()))if(G())K();else if(R())H();else $.pop();$.pop()}if(e.has(F)&&Y.spaced&&(r.has(Z)||Z==="..."&&r.has(A[U+2]?.[0])||J1.has(Z)&&!M.spaced&&!M.newLine)&&!((F==="]"||F==="}")&&(Z==="->"||Z==="=>")))return _(U+1),X(2);if(e.has(F)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return _(U+1),$.push(["INDENT",U+2]),X(3);if(F==="SPACE?")T=!0;if(F===":"){if(T)return T=!1,X(1);let O=v.has(this.tokens[U-1]?.[0])?$[$.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")O=U-2;let I=O<=0||m.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(J()){let[w,N]=J(),S=$[$.length-2];if((w==="{"||w==="INDENT"&&S?.[0]==="{"&&!z(S))&&(I||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return X(1)}return P(O,{startsLine:!!I}),X(2)}if(m.has(F))for(let O=$.length-1;O>=0;O--){if(!z($[O]))break;if($[O][0]==="{")$[O][2].sameLine=!1}let u=D==="OUTDENT"||W.newLine,q=F==="||"||F==="&&",L=!1;if(q){let O=U+1,I=A[O]?.[0];if(I==="("||I==="["||I==="{"){for(let w=1;++O<A.length&&w>0;)if(I=A[O][0],I==="("||I==="["||I==="{")w++;else if(I===")"||I==="]"||I==="}")w--}else if(I&&I!=="TERMINATOR"&&I!=="OUTDENT"&&I!==",")O++;L=A[O]?.[0]===","}if(G1.has(F)&&!L||F1.has(F)&&u)while(z(J())){let[O,,{sameLine:I,startsLine:w}]=J();if(G()&&D!==",")K();else if(R()&&!q&&I&&F!=="TERMINATOR"&&D!==":")H();else if(R()&&F==="TERMINATOR"&&D!==","&&!(w&&this.looksObjectish(U+1)))H();else if(J()?.[2]?.ours&&J()[0]==="CONTROL"&&A[J()[1]]?.[0]==="CLASS"&&F==="TERMINATOR")$.pop();else break}if(F===","&&!this.looksObjectish(U+1)&&R()&&(Z!=="TERMINATOR"||!this.looksObjectish(U+2))){let O=Z==="OUTDENT"?1:0;while(R())H(U+O)}return X(1)})}addImplicitCallCommas(){let $=0,T=0,Y=this.tokens;while(T<Y.length){let U=Y[T][0],A=T>0?Y[T-1][0]:null;if(U==="CALL_START"||U==="(")$++;if(U==="CALL_END"||U===")")$--;if($>0&&(U==="->"||U==="=>")&&z1.has(A))Y.splice(T,0,k(",",",")),T++;T++}}scanTokens($){let T=0;while(T<this.tokens.length)T+=$.call(this,this.tokens[T],T,this.tokens)}detectEnd($,T,Y,U={}){let A=0;while($<this.tokens.length){let F=this.tokens[$];if(A===0&&T.call(this,F,$))return Y.call(this,F,$);if(b.has(F[0]))A++;if(v.has(F[0]))A--;if(A<0){if(U.returnOnNegativeLevel)return;return Y.call(this,F,$)}$++}}looksObjectish($){if(!this.tokens[$])return!1;if(this.tokens[$]?.[0]==="@"&&this.tokens[$+2]?.[0]===":")return!0;if(this.tokens[$+1]?.[0]===":")return!0;if(b.has(this.tokens[$]?.[0])){let T=null;if(this.detectEnd($+1,(Y)=>v.has(Y[0]),(Y,U)=>T=U),T&&this.tokens[T+1]?.[0]===":")return!0}return!1}findTagsBackwards($,T){let Y=new Set(T),U=[];while($>=0){let A=this.tokens[$]?.[0];if(!U.length&&Y.has(A))return!0;if(v.has(A))U.push(A);if(b.has(A)&&U.length)U.pop();if(!U.length&&(b.has(A)&&!this.tokens[$]?.generated||m.has(A)))break;$--}return!1}makeIndentation($){let T=k("INDENT",2),Y=k("OUTDENT",2);if($)T.generated=Y.generated=!0,T.origin=Y.origin=$;else T.explicit=Y.explicit=!0;return[T,Y]}}var i1={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Throw:28,Yield:29,Def:30,CodeLine:31,OperationLine:32,Assignable:33,Literal:34,Parenthetical:35,Range:36,Invocation:37,DoIife:38,This:39,Super:40,MetaProperty:41,AlphaNumeric:42,JS:43,Regex:44,UNDEFINED:45,NULL:46,BOOL:47,INFINITY:48,NAN:49,NUMBER:50,String:51,Identifier:52,IDENTIFIER:53,Property:54,PROPERTY:55,STRING:56,STRING_START:57,Interpolations:58,STRING_END:59,InterpolationChunk:60,INTERPOLATION_START:61,INTERPOLATION_END:62,INDENT:63,OUTDENT:64,REGEX:65,REGEX_START:66,REGEX_END:67,RegexWithIndex:68,",":69,"=":70,REACTIVE_ASSIGN:71,COMPUTED_ASSIGN:72,READONLY_ASSIGN:73,REACT_ASSIGN:74,SimpleAssignable:75,Array:76,Object:77,ThisProperty:78,".":79,"?.":80,INDEX_START:81,INDEX_END:82,Slice:83,ES6_OPTIONAL_INDEX:84,"{":85,ObjAssignable:86,":":87,FOR:88,ForVariables:89,FOROF:90,OptComma:91,"}":92,WHEN:93,OWN:94,AssignList:95,AssignObj:96,ObjRestValue:97,SimpleObjAssignable:98,"[":99,"]":100,"@":101,"...":102,ObjSpreadExpr:103,SUPER:104,Arguments:105,DYNAMIC_IMPORT:106,Elisions:107,ArgElisionList:108,OptElisions:109,ArgElision:110,Arg:111,Elision:112,RangeDots:113,"..":114,DEF:115,CALL_START:116,ParamList:117,CALL_END:118,Block:119,PARAM_START:120,PARAM_END:121,FuncGlyph:122,"->":123,"=>":124,Param:125,ParamVar:126,Splat:127,ES6_OPTIONAL_CALL:128,ArgList:129,SimpleArgs:130,THIS:131,NEW_TARGET:132,IMPORT_META:133,"(":134,")":135,RETURN:136,THROW:137,YIELD:138,FROM:139,IfBlock:140,IF:141,ELSE:142,UnlessBlock:143,UNLESS:144,POST_IF:145,POST_UNLESS:146,TRY:147,Catch:148,FINALLY:149,CATCH:150,SWITCH:151,Whens:152,When:153,LEADING_WHEN:154,WhileSource:155,WHILE:156,UNTIL:157,Loop:158,LOOP:159,FORIN:160,BY:161,FORAS:162,AWAIT:163,FORASAWAIT:164,ForValue:165,CLASS:166,EXTENDS:167,IMPORT:168,ImportDefaultSpecifier:169,ImportNamespaceSpecifier:170,ImportSpecifierList:171,ImportSpecifier:172,AS:173,DEFAULT:174,IMPORT_ALL:175,EXPORT:176,ExportSpecifierList:177,EXPORT_ALL:178,ExportSpecifier:179,UNARY:180,DO:181,DO_IIFE:182,UNARY_MATH:183,"-":184,"+":185,"--":186,"++":187,MATH:188,"**":189,SHIFT:190,COMPARE:191,"&":192,"^":193,"|":194,"||":195,"??":196,"&&":197,"!?":198,RELATION:199,"SPACE?":200,COMPOUND_ASSIGN:201},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",43:"JS",45:"UNDEFINED",46:"NULL",47:"BOOL",48:"INFINITY",49:"NAN",50:"NUMBER",53:"IDENTIFIER",55:"PROPERTY",56:"STRING",57:"STRING_START",59:"STRING_END",61:"INTERPOLATION_START",62:"INTERPOLATION_END",63:"INDENT",64:"OUTDENT",65:"REGEX",66:"REGEX_START",67:"REGEX_END",69:",",70:"=",71:"REACTIVE_ASSIGN",72:"COMPUTED_ASSIGN",73:"READONLY_ASSIGN",74:"REACT_ASSIGN",79:".",80:"?.",81:"INDEX_START",82:"INDEX_END",84:"ES6_OPTIONAL_INDEX",85:"{",87:":",88:"FOR",90:"FOROF",92:"}",93:"WHEN",94:"OWN",99:"[",100:"]",101:"@",102:"...",104:"SUPER",106:"DYNAMIC_IMPORT",114:"..",115:"DEF",116:"CALL_START",118:"CALL_END",120:"PARAM_START",121:"PARAM_END",123:"->",124:"=>",128:"ES6_OPTIONAL_CALL",131:"THIS",132:"NEW_TARGET",133:"IMPORT_META",134:"(",135:")",136:"RETURN",137:"THROW",138:"YIELD",139:"FROM",141:"IF",142:"ELSE",144:"UNLESS",145:"POST_IF",146:"POST_UNLESS",147:"TRY",149:"FINALLY",150:"CATCH",151:"SWITCH",154:"LEADING_WHEN",156:"WHILE",157:"UNTIL",159:"LOOP",160:"FORIN",161:"BY",162:"FORAS",163:"AWAIT",164:"FORASAWAIT",166:"CLASS",167:"EXTENDS",168:"IMPORT",173:"AS",174:"DEFAULT",175:"IMPORT_ALL",176:"EXPORT",178:"EXPORT_ALL",180:"UNARY",181:"DO",182:"DO_IIFE",183:"UNARY_MATH",184:"-",185:"+",186:"--",187:"++",188:"MATH",189:"**",190:"SHIFT",191:"COMPARE",192:"&",193:"^",194:"|",195:"||",196:"??",197:"&&",198:"!?",199:"RELATION",200:"SPACE?",201:"COMPOUND_ASSIGN"},parseTable:(()=>{let $=[101,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-1,1,2,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,1,1,0,2,1,5,-2,101,5,1,5,56,2,71,-3,-3,-3,-3,-3,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,120,-6,-6,-6,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,9,1,5,56,1,1,5,31,18,17,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,56,1,1,5,31,18,17,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,121,122,123,90,91,51,1,5,45,5,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,124,99,100,-13,-13,-13,-13,127,128,129,-13,130,-13,-13,-13,-13,-13,-13,-13,125,-13,131,-13,-13,126,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,44,1,5,56,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,132,133,134,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,9,1,5,56,1,1,5,31,18,17,-30,-30,-30,-30,-30,-30,-30,-30,-30,9,1,5,56,1,1,5,31,18,17,-31,-31,-31,-31,-31,-31,-31,-31,-31,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,135,136,137,138,139,-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,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-33,-33,-33,-33,-33,-33,-33,-33,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-34,-34,-34,-34,-34,-34,-34,-34,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-37,-37,-37,-37,-37,-37,-37,-37,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-40,-40,-40,-40,-40,-40,-40,-40,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,144,98,-170,-170,-170,146,147,145,93,149,148,143,140,-170,-170,141,142,100,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,151,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,152,96,97,50,49,66,67,87,93,56,77,81,78,79,61,150,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,97,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,153,154,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,97,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,156,157,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,158,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,164,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,165,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,166,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,167,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,169,170,171,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,168,66,67,87,93,77,81,78,79,159,160,84,85,80,82,83,76,163,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,169,170,171,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,172,66,67,87,93,77,81,78,79,159,160,84,85,80,82,83,76,163,57,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,173,174,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,175,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,177,176,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,178,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,179,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,2,63,56,152,180,2,63,56,152,181,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,185,144,98,146,147,145,93,182,183,77,148,187,184,186,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,188,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,189,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,88,1,5,8,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,1,7,1,1,1,1,10,1,10,1,3,1,1,2,3,15,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,169,170,171,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-299,152,-299,96,97,-299,192,66,67,87,-299,93,-299,-299,-299,-299,-299,77,-299,81,-299,78,79,-299,-299,190,159,-299,160,84,85,80,82,83,76,-299,-299,-299,-299,-299,-299,-299,-299,-299,191,163,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,193,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,194,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,131,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,8,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,195,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-221,196,-221,96,97,-221,50,49,66,67,87,-221,93,-221,-221,-221,-221,-221,77,-221,81,-221,78,79,-221,61,-221,159,-221,160,84,85,80,82,83,76,-221,63,59,60,197,51,88,52,89,-221,-221,53,57,54,-221,-221,55,92,-221,-221,-221,46,-221,58,64,65,161,162,163,43,44,45,47,48,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,2,52,1,198,98,6,15,16,89,2,1,1,200,199,39,40,84,85,130,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,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,2,1,2,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,8,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,201,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-218,202,-218,96,97,-218,50,49,66,67,87,-218,93,-218,-218,-218,-218,-218,77,-218,81,-218,78,79,-218,61,-218,159,-218,160,84,85,80,82,83,76,-218,63,59,60,51,88,52,89,-218,-218,53,57,54,-218,-218,55,92,-218,-218,-218,46,-218,58,64,65,161,162,163,43,44,45,47,48,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,9,51,1,1,3,1,28,84,1,5,203,207,98,99,100,206,204,205,208,9,27,3,22,1,32,30,51,8,4,210,211,212,98,209,61,58,213,214,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-84,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-85,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-43,-43,-43,-43,-43,-43,-43,-43,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-44,-44,-44,-44,-44,-44,-44,-44,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-45,-45,-45,-45,-45,-45,-45,-45,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-46,-46,-46,-46,-46,-46,-46,-46,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-47,-47,-47,-47,-47,-47,-47,-47,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-48,-48,-48,-48,-48,-48,-48,-48,100,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,215,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,216,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,217,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,223,96,97,224,50,49,66,67,87,93,56,77,218,81,228,78,79,219,220,222,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,79,2,24,11,230,231,229,131,2,105,11,232,131,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,51,1,5,48,1,1,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,233,234,-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,1,79,235,1,79,236,51,11,32,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,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,51,11,32,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,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,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,237,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,238,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,239,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,240,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,242,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,152,96,97,50,49,66,67,87,93,56,77,81,78,79,61,241,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,23,6,36,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-106,248,94,95,250,98,251,234,99,100,-106,-106,-106,252,243,-106,244,249,253,245,246,247,254,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,45,14,1,18,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,48,169,170,171,31,32,33,255,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,256,66,67,87,93,77,81,78,79,159,160,84,85,80,82,83,76,163,60,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,4,6,1,10,1,3,1,1,2,3,6,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,52,1,5,50,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,6,51,5,1,1,2,1,260,99,100,257,258,259,103,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-5,261,-5,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-5,-5,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,-5,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,262,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,263,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,264,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,265,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,266,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,267,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,268,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,269,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,270,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,273,155,271,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,272,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,276,155,274,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,275,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,279,155,277,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,278,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,280,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,281,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,282,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,283,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,284,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,288,144,98,146,147,145,93,285,286,77,148,187,287,186,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,289,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,290,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,2,105,11,291,131,2,54,1,292,234,2,54,1,293,234,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,6,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,294,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,299,71,72,73,74,75,94,95,86,98,99,100,295,96,97,297,50,49,66,67,87,296,93,56,77,81,301,78,79,298,300,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,81,302,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,3,2,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,306,96,97,50,49,66,67,87,93,56,77,81,228,78,79,305,61,303,39,40,84,85,227,304,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,2,54,1,308,234,2,54,1,309,234,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,310,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,311,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,313,312,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,314,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,316,315,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,317,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,319,318,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,320,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,322,321,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,323,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,325,324,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,326,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,9,6,57,1,5,22,1,8,18,3,-214,-214,-214,328,329,-214,-214,-214,327,6,6,57,1,5,49,3,-171,-171,-171,-171,-171,-171,7,6,57,1,5,1,48,3,-175,-175,-175,-175,330,-175,-175,15,6,46,1,10,1,5,7,1,1,7,14,2,17,3,5,-178,144,98,-178,-178,-178,146,147,145,93,149,148,-178,-178,331,11,6,57,1,5,1,20,28,3,39,2,2,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,11,6,57,1,5,1,20,28,3,39,2,2,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,11,6,57,1,5,1,20,28,3,39,2,2,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,11,6,57,1,5,1,20,28,3,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,2,54,1,233,234,107,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,223,96,97,224,50,49,66,67,87,93,56,77,218,81,228,78,79,219,220,222,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,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,9,1,5,56,1,1,5,31,18,17,-167,-167,-167,-167,-167,-167,-167,-167,-167,100,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,333,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,332,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,118,119,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,112,-350,114,-350,-350,9,1,5,56,1,1,5,31,18,17,-347,-347,-347,-347,-347,-347,-347,-347,-347,5,145,1,9,1,1,121,122,123,90,91,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,118,119,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,112,-351,114,-351,-351,9,1,5,56,1,1,5,31,18,17,-348,-348,-348,-348,-348,-348,-348,-348,-348,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,118,119,-352,-352,-352,-352,-352,-352,-352,-352,-352,105,-352,-352,-352,-352,-352,-352,112,-352,114,-352,-352,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,144,98,-170,-170,-170,146,147,145,93,149,148,143,334,-170,-170,141,142,2,63,56,152,150,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,153,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,156,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,5,15,105,2,1,1,200,159,160,84,85,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,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,118,119,-353,-353,-353,-353,-353,-353,-353,-353,-353,105,-353,-353,-353,-353,-353,-353,112,-353,114,-353,-353,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,118,119,-354,-354,-354,-354,-354,-354,-354,-354,-354,105,-354,-354,-354,-354,-354,-354,112,-354,114,-354,-354,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,118,119,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,112,-355,114,-355,-355,2,77,8,335,93,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-83,-83,-357,-357,-357,-357,-83,-83,-83,-83,-83,-83,-83,-83,-357,-83,-357,-357,-357,-357,-357,-357,-357,-357,-83,-357,-357,-83,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,10,51,5,1,22,1,1,3,21,11,12,124,99,100,127,128,129,130,125,131,126,3,79,1,1,132,133,134,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-32,-32,-32,-32,-32,-32,-32,-32,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-83,-83,-358,-358,-358,-358,-83,-83,-83,-83,-83,-83,-83,-83,-358,-83,-358,-358,-358,-358,-358,-358,-358,-358,-83,-358,-358,-83,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,338,336,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,337,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,120,-80,-80,-80,-80,-80,-80,-80,-80,-80,117,118,119,90,91,-80,-80,-80,-80,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,339,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,340,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,63,56,22,152,341,342,44,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,2,1,1,6,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,343,344,345,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,4,90,70,2,2,347,346,348,349,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,350,149,148,187,186,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,351,149,148,187,186,3,63,56,42,152,352,353,5,69,21,70,2,2,354,-297,-297,-297,-297,6,69,1,20,70,2,2,-295,355,-295,-295,-295,-295,22,63,25,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,356,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,3,152,1,1,357,358,359,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,360,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,56,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,1,2,7,7,10,1,10,1,3,1,1,2,3,17,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-83,-83,-303,152,-303,-303,-83,-83,-83,-83,-83,-83,-83,-83,-303,-83,-303,-303,-303,-303,-303,-303,-303,-303,-83,-303,361,-303,-83,-303,-303,-303,-303,-303,-303,-303,-303,-303,362,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,118,119,-219,-219,-219,-219,-219,-219,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,363,93,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,118,119,-222,-222,-222,-222,-222,-222,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,364,93,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,365,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,63,53,3,152,366,367,9,1,5,56,1,1,5,31,18,17,-349,-349,-349,-349,-349,-349,-349,-349,-349,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,118,119,-216,-216,-216,-216,-216,-216,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,368,93,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,2,69,70,370,369,1,139,371,7,52,1,10,29,79,1,2,376,98,375,372,373,374,377,2,69,70,-323,-323,1,173,378,7,52,1,10,29,82,3,2,383,98,382,379,384,380,381,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,1,70,385,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,386,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,387,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,139,388,2,6,129,101,389,99,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,390,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,30,6,57,1,5,19,12,2,11,1,4,27,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,120,-196,301,391,300,-196,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,224,50,49,66,67,87,93,56,77,392,81,228,78,79,394,393,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,396,397,-214,-214,395,-214,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,1,1,398,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,5,6,57,1,5,31,-142,-142,-142,-142,-142,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,223,96,97,224,50,49,66,67,87,93,56,77,81,228,78,79,400,399,222,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,5,6,57,1,5,31,-147,-147,-147,-147,-147,6,6,57,1,5,31,18,-197,-197,-197,-197,-197,-197,6,6,57,1,5,31,18,-198,-198,-198,-198,-198,-198,100,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,3,2,9,3,2,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-199,401,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-199,-199,96,97,-199,50,49,66,67,87,93,56,77,-199,81,78,79,61,-199,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,2,54,1,402,234,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,403,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,404,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,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,-204,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,2,54,1,405,234,2,54,1,406,234,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,407,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,408,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,120,-251,-251,409,-251,-251,-251,-251,-251,-251,-251,118,119,90,91,-251,-251,-251,-251,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,120,-253,-253,410,-253,-253,-253,-253,-253,-253,-253,118,119,90,91,-253,-253,-253,-253,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,120,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,118,119,90,91,-260,-260,-260,-260,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,6,6,57,1,5,18,5,-111,-111,-111,-111,411,-111,8,6,57,1,5,22,1,8,18,-214,-214,-214,413,412,-214,-214,-214,7,6,57,1,5,1,17,5,-120,-120,-120,-120,414,-120,-120,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,415,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,54,1,44,233,234,416,6,6,57,1,5,18,5,-123,-123,-123,-123,-123,-123,5,6,57,1,5,23,-107,-107,-107,-107,-107,11,6,57,1,5,1,9,1,1,6,5,24,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,11,6,57,1,5,1,9,1,1,6,5,24,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,11,6,57,1,5,1,9,1,1,6,5,24,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,5,6,57,1,5,23,-112,-112,-112,-112,-112,17,35,4,1,12,1,1,1,22,1,7,13,3,2,1,2,25,3,420,422,421,250,98,251,234,419,252,93,417,81,418,423,424,80,76,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,425,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,6,51,5,1,2,1,1,260,99,100,426,427,259,4,56,1,2,2,-55,-55,-55,-55,101,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,428,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,430,429,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,56,1,2,2,-60,-60,-60,-60,5,1,5,56,2,71,-4,-4,-4,-4,-4,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,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,118,119,-361,-361,-361,-361,-361,-361,-361,-361,104,105,-361,-361,-361,-361,-361,-361,112,-361,114,-361,-361,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,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,118,119,-362,-362,-362,-362,-362,-362,-362,-362,104,105,-362,-362,-362,-362,-362,-362,112,-362,114,-362,-362,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,118,119,-363,-363,-363,-363,-363,-363,-363,-363,-363,105,-363,-363,-363,-363,-363,-363,112,-363,114,-363,-363,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,118,119,-364,-364,-364,-364,-364,-364,-364,-364,-364,105,-364,-364,-364,-364,-364,-364,112,-364,114,-364,-364,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,118,119,-365,-365,-365,-365,-365,-365,103,102,104,105,-365,-365,-365,-365,-365,-365,112,-365,114,-365,-365,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,118,119,-366,-366,-366,-366,-366,-366,103,102,104,105,106,-366,-366,-366,-366,-366,112,-366,114,115,-366,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,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,118,119,-367,-367,-367,-367,-367,-367,103,102,104,105,106,107,-367,-367,-367,-367,112,-367,114,115,-367,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,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,118,119,-368,-368,-368,-368,-368,-368,103,102,104,105,106,107,108,-368,-368,-368,112,-368,114,115,-368,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,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,118,119,-369,-369,-369,-369,-369,-369,103,102,104,105,106,107,108,109,-369,-369,112,-369,114,115,-369,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,118,119,-377,-377,-377,-377,-377,-377,103,102,104,105,106,107,108,109,110,-377,112,113,114,115,-377,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,120,-378,-378,-378,-378,-378,-378,-378,-378,-378,117,118,119,90,91,-378,-378,-378,-378,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,118,119,-376,-376,-376,-376,-376,-376,103,102,104,105,106,107,108,109,110,-376,112,-376,114,115,-376,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,120,-379,-379,-379,-379,-379,-379,-379,-379,-379,117,118,119,90,91,-379,-379,-379,-379,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,118,119,-380,-380,-380,-380,-380,-380,103,102,104,105,106,-380,-380,-380,-380,-380,112,-380,114,-380,-380,22,87,1,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,431,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,120,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,118,119,90,91,-233,-233,-233,-233,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,120,-235,-235,-235,-235,-235,-235,-235,-235,-235,117,118,119,90,91,-235,-235,-235,-235,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,90,70,2,2,433,432,434,435,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,436,149,148,187,186,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,437,149,148,187,186,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,438,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,120,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,118,119,90,91,-232,-232,-232,-232,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,120,-234,-234,-234,-234,-234,-234,-234,-234,-234,117,118,119,90,91,-234,-234,-234,-234,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,25,82,6,14,11,1,31,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,439,120,301,440,300,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,98,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,441,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,442,93,56,77,81,301,78,79,298,300,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,82,443,1,82,444,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,445,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-161,96,97,50,49,66,67,87,-161,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,446,-43,-43,-43,-64,-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,52,11,32,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,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,52,11,32,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,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,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,447,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,448,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,8,6,57,1,5,22,1,8,18,-214,-214,-214,450,449,-214,-214,-214,5,6,57,1,5,49,-191,-191,-191,-191,-191,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,306,96,97,50,49,66,67,87,93,56,77,81,228,78,79,305,61,39,40,84,85,227,451,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,27,6,57,1,5,19,12,18,27,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,120,-196,-196,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,452,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,453,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,118,119,-65,-65,-65,-65,-65,-65,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,454,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,455,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,120,-68,-68,-68,-68,-68,-68,-68,-68,-68,117,118,119,90,91,-68,-68,-68,-68,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,456,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,457,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,120,-71,-71,-71,-71,-71,-71,-71,-71,-71,117,118,119,90,91,-71,-71,-71,-71,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,458,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,459,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,120,-74,-74,-74,-74,-74,-74,-74,-74,-74,117,118,119,90,91,-74,-74,-74,-74,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,460,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,461,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,120,-77,-77,-77,-77,-77,-77,-77,-77,-77,117,118,119,90,91,-77,-77,-77,-77,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,462,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,463,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,122,1,1,464,84,85,17,6,46,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-215,144,98,-215,-215,146,147,145,93,-215,149,-215,148,143,-215,465,142,2,6,57,466,467,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,468,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,6,6,57,1,5,49,3,-177,-177,-177,-177,-177,-177,53,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,2,6,58,101,469,9,6,57,1,5,22,1,8,18,3,-214,-214,-214,328,329,-214,-214,-214,470,1,64,471,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,118,119,-382,-382,-382,-382,-382,-382,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,472,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,473,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,120,-81,-81,-81,-81,-81,-81,-81,-81,-81,117,118,119,90,91,-81,-81,-81,-81,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,474,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,475,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,476,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,2,63,56,152,477,6,52,1,10,14,8,34,478,98,152,479,93,480,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,481,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,482,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,483,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,484,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,90,485,1,162,486,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,487,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,10,52,1,23,1,1,7,14,2,25,39,144,98,146,147,145,93,149,148,187,488,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,489,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,152,1,1,490,358,359,4,64,78,11,1,491,492,493,359,3,64,78,12,-247,-247,-247,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,495,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,494,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,43,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,152,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,496,-301,-301,-301,118,119,-301,-301,-301,-301,-301,-301,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,497,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,64,498,1,64,499,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,118,119,-224,-224,-224,-224,-224,-224,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,144,98,-170,-170,-170,146,147,145,93,149,148,143,500,-170,-170,141,142,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,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,1,64,501,3,51,5,1,502,99,100,3,85,85,5,504,503,208,3,51,5,1,505,99,100,1,139,506,8,6,57,1,5,22,1,8,18,-214,-214,-214,508,507,-214,-214,-214,5,6,57,1,5,23,-314,-314,-314,-314,-314,6,52,1,10,108,1,2,376,98,375,509,374,377,6,6,57,1,5,23,81,-319,-319,-319,-319,-319,510,6,6,57,1,5,23,81,-321,-321,-321,-321,-321,511,2,52,1,512,98,14,1,5,56,1,1,5,31,18,17,4,6,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,513,-325,-325,-325,-325,8,6,57,1,5,22,1,8,18,-214,-214,-214,515,514,-214,-214,-214,5,6,57,1,5,23,-337,-337,-337,-337,-337,6,52,1,10,111,3,2,383,98,382,384,516,381,6,6,57,1,5,23,81,-342,-342,-342,-342,-342,517,6,6,57,1,5,23,81,-345,-345,-345,-345,-345,518,96,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,520,519,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,521,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,120,-332,-332,-332,-332,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,77,8,522,93,3,51,5,1,523,99,100,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,2,6,58,101,524,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,525,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,1,1,1,1,1,1,1,398,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,5,6,57,1,5,31,-148,-148,-148,-148,-148,2,63,37,527,526,110,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-215,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-215,-215,96,97,224,50,49,66,67,87,93,56,-215,77,-215,81,228,78,79,529,528,225,221,61,-215,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,6,57,1,36,530,-149,-149,-149,56,6,5,32,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,8,4,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,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,396,397,-214,-214,531,-214,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,224,50,49,66,67,87,93,56,77,81,228,78,79,394,393,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,27,6,57,1,5,19,12,18,27,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,120,-183,-183,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,532,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,533,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,534,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,535,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,536,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,537,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,538,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,6,57,29,540,541,539,23,6,36,8,1,1,1,1,1,1,1,6,1,14,8,6,4,1,1,1,1,1,1,16,-215,248,94,95,250,98,251,234,99,100,-215,-215,252,543,-215,542,253,245,246,-215,247,254,-215,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,544,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,545,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,22,88,12,45,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,120,546,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,547,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,10,6,57,1,5,10,1,1,11,13,11,-124,-124,-124,-124,-126,-126,-126,-124,548,131,10,6,57,1,5,10,1,1,11,13,11,-125,-125,-125,-125,550,551,552,-125,549,131,9,6,57,1,5,10,1,1,11,24,-127,-127,-127,-127,-127,-127,-127,-127,-127,9,6,57,1,5,10,1,1,11,24,-128,-128,-128,-128,-128,-128,-128,-128,-128,9,6,57,1,5,10,1,1,11,24,-129,-129,-129,-129,-129,-129,-129,-129,-129,9,6,57,1,5,10,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,4,79,2,24,11,230,231,553,131,2,105,11,554,131,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,52,1,5,50,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,4,56,1,2,2,-56,-56,-56,-56,2,6,56,101,555,99,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,556,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,4,56,1,2,2,-59,-59,-59,-59,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,557,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,558,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,559,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,560,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,561,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,90,562,1,162,563,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,564,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,96,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,565,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-159,96,97,50,49,66,67,87,-159,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,25,64,24,14,11,1,31,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,566,120,301,440,300,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,64,567,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,23,64,18,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,568,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,569,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,570,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,3,6,57,55,572,573,571,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,8,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,-215,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-215,-215,96,97,50,49,66,67,87,93,56,-215,77,-215,81,228,78,79,574,61,-215,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,8,6,57,1,5,22,1,8,18,-214,-214,-214,450,575,-214,-214,-214,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,576,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,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,118,119,-66,-66,-66,-66,-66,-66,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,577,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,120,-69,-69,-69,-69,-69,-69,-69,-69,-69,117,118,119,90,91,-69,-69,-69,-69,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,578,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,120,-72,-72,-72,-72,-72,-72,-72,-72,-72,117,118,119,90,91,-72,-72,-72,-72,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,579,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,120,-75,-75,-75,-75,-75,-75,-75,-75,-75,117,118,119,90,91,-75,-75,-75,-75,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,580,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,120,-78,-78,-78,-78,-78,-78,-78,-78,-78,117,118,119,90,91,-78,-78,-78,-78,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,581,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,100,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,583,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,152,96,97,50,49,66,67,87,93,56,77,81,78,79,61,582,39,40,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,6,6,57,1,5,49,3,-172,-172,-172,-172,-172,-172,11,52,1,23,1,1,7,14,2,1,23,1,144,98,146,147,145,93,149,148,143,584,142,18,6,46,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-170,144,98,-170,-170,-170,146,147,145,93,149,148,143,585,-170,-170,141,142,27,6,57,1,5,19,30,3,24,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,120,-176,-176,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,53,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,20,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,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,3,122,1,1,586,84,85,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,587,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,118,119,-384,-384,-384,-384,-384,-384,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,588,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,63,56,152,589,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,2,63,56,152,590,2,63,56,152,591,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,25,63,25,5,26,26,1,9,1,1,4,23,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,593,592,117,118,119,90,91,594,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,596,595,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,598,597,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,600,599,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,601,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,602,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,603,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,90,70,2,2,-298,-298,-298,-298,26,69,19,2,55,1,9,1,1,3,2,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-296,120,-296,117,118,119,90,91,-296,-296,-296,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,64,78,11,1,604,605,493,359,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,2,63,56,152,606,3,64,78,12,-248,-248,-248,3,63,6,50,152,608,607,23,63,6,19,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,43,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,152,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,609,-305,-305,-305,118,119,-305,-305,-305,-305,-305,-305,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,8,6,57,1,5,22,1,8,18,-214,-214,-214,328,329,-214,-214,610,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,1,139,611,6,52,1,10,108,1,2,376,98,375,612,374,377,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,3,51,5,1,613,99,100,3,6,57,29,615,616,614,10,6,46,1,10,1,28,8,18,54,2,-215,376,98,-215,-215,-215,-215,-215,617,377,8,6,57,1,5,22,1,8,18,-214,-214,-214,508,618,-214,-214,-214,2,52,1,619,98,2,52,1,620,98,1,139,-324,3,51,5,1,621,99,100,3,6,57,29,623,624,622,10,6,46,1,10,1,28,8,18,56,5,-215,383,98,-215,-215,-215,-215,-215,384,625,8,6,57,1,5,22,1,8,18,-214,-214,-214,515,626,-214,-214,-214,3,52,1,121,627,98,628,2,52,1,629,98,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,120,-329,-329,-329,-329,118,119,-329,-329,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,630,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,631,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,64,632,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,1,135,633,22,88,12,45,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,120,634,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,223,96,97,224,50,49,66,67,87,93,56,77,81,228,78,79,400,635,222,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,5,6,57,1,5,31,-143,-143,-143,-143,-143,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,-150,-150,96,97,224,50,49,66,67,87,93,56,77,-150,81,228,78,79,394,393,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,104,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,224,50,49,66,67,87,93,56,77,81,228,78,79,400,636,225,221,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,2,63,1,527,637,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,638,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,2,63,56,152,639,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,118,119,-252,-252,-252,-252,-252,-252,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,118,119,-254,-254,-254,-254,-254,-254,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,26,6,57,1,5,19,4,53,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,640,-113,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,641,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,17,42,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,248,94,95,250,98,251,234,99,100,252,543,642,253,245,246,247,254,23,6,36,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-106,248,94,95,250,98,251,234,99,100,-106,-106,-106,252,543,-106,643,249,253,245,246,247,254,5,6,57,1,5,23,-108,-108,-108,-108,-108,6,6,57,1,5,18,5,-111,-111,-111,-111,644,-111,26,6,57,1,5,19,4,53,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,120,-115,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,645,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,6,6,57,1,5,18,5,-121,-121,-121,-121,-121,-121,22,88,12,45,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,120,646,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,9,6,57,1,5,10,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,6,57,1,5,10,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,2,54,1,647,234,2,54,1,648,234,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,649,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,650,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,9,6,57,1,5,10,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,57,1,5,10,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,4,56,1,2,2,-57,-57,-57,-57,2,6,58,101,651,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,118,119,-381,-381,-381,-381,-381,-381,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,652,-278,-278,-278,-278,-278,-278,-278,118,119,-278,-278,-278,653,-278,-278,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,654,-283,-283,-283,-283,-283,-283,-283,118,119,-283,-283,-283,-283,-283,-283,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,655,-287,-287,-287,-287,-287,-287,-287,118,119,-287,-287,-287,-287,-287,-287,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,656,-291,-291,-291,-291,-291,-291,-291,118,119,-291,-291,-291,-291,-291,-291,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,657,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,658,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,118,119,-294,-294,-294,-294,-294,-294,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,64,18,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,82,659,1,82,660,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-63,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,661,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,50,1,5,50,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,100,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,228,78,79,662,61,39,40,84,85,227,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,102,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,307,226,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,306,96,97,50,49,66,67,87,93,56,77,81,228,78,79,305,61,39,40,84,85,227,663,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,41,42,62,43,44,45,47,48,5,6,57,1,5,49,-192,-192,-192,-192,-192,3,6,57,1,572,573,664,1,82,665,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,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,9,1,5,56,1,1,5,31,18,17,-166,-166,-166,-166,-166,-166,-166,-166,-166,6,6,57,1,5,49,3,-173,-173,-173,-173,-173,-173,8,6,57,1,5,22,1,8,18,-214,-214,-214,328,666,-214,-214,-214,2,63,56,152,582,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,3,7,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,667,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,668,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,669,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,670,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,671,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,673,672,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,675,674,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,2,63,56,152,676,1,64,677,4,6,58,78,12,678,-249,-249,-249,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,679,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,63,56,152,680,3,51,5,1,681,99,100,8,6,57,1,5,22,1,8,18,-214,-214,-214,508,682,-214,-214,-214,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,1,139,683,4,52,1,119,2,376,98,684,377,6,52,1,10,108,1,2,376,98,375,685,374,377,5,6,57,1,5,23,-315,-315,-315,-315,-315,3,6,57,1,615,616,686,5,6,57,1,5,23,-320,-320,-320,-320,-320,5,6,57,1,5,23,-322,-322,-322,-322,-322,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,14,1,5,56,1,1,5,31,18,17,4,6,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,687,-326,-326,-326,-326,4,52,1,121,5,383,98,384,688,6,52,1,10,111,3,2,383,98,382,384,689,381,5,6,57,1,5,23,-338,-338,-338,-338,-338,3,6,57,1,623,624,690,5,6,57,1,5,23,-343,-343,-343,-343,-343,5,6,57,1,5,23,-344,-344,-344,-344,-344,5,6,57,1,5,23,-346,-346,-346,-346,-346,30,1,5,56,1,1,5,19,12,18,17,10,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,120,-330,-330,-330,-330,118,119,-330,-330,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,691,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,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,-213,-213,-213,-213,-213,-213,-213,-213,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,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,9,6,57,1,5,22,1,8,9,9,-214,-214,-214,396,397,-214,-214,692,-214,5,6,57,1,5,31,-144,-144,-144,-144,-144,5,6,57,1,5,31,-145,-145,-145,-145,-145,1,82,693,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,14,36,16,1,23,1,1,7,4,5,5,2,25,37,2,288,144,98,146,147,145,93,694,695,77,148,187,287,186,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,696,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,23,-109,-109,-109,-109,-109,8,6,57,1,5,22,1,8,18,-214,-214,-214,413,697,-214,-214,-214,95,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,698,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,538,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,699,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,6,6,57,1,5,18,5,-122,-122,-122,-122,-122,-122,9,6,57,1,5,10,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,9,6,57,1,5,10,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,22,82,6,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,700,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,701,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,62,702,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,703,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,704,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,705,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,706,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,707,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,708,-285,-285,-285,-285,-285,-285,-285,118,119,-285,-285,-285,-285,-285,-285,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,709,-289,-289,-289,-289,-289,-289,-289,118,119,-289,-289,-289,-289,-289,-289,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,1,82,710,5,6,57,1,5,49,-193,-193,-193,-193,-193,8,6,57,1,5,22,1,8,18,-214,-214,-214,450,711,-214,-214,-214,5,6,57,1,5,49,-194,-194,-194,-194,-194,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,3,6,57,1,466,467,712,24,63,25,31,26,1,9,1,1,4,23,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,713,117,118,119,90,91,714,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,24,63,25,5,26,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,716,715,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,717,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,718,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,719,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,720,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,721,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,64,722,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,3,64,78,12,-250,-250,-250,23,63,6,19,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,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,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,3,6,57,29,615,616,723,3,51,5,1,724,99,100,5,6,57,1,5,23,-316,-316,-316,-316,-316,8,6,57,1,5,22,1,8,18,-214,-214,-214,508,725,-214,-214,-214,5,6,57,1,5,23,-317,-317,-317,-317,-317,3,51,5,1,726,99,100,5,6,57,1,5,23,-339,-339,-339,-339,-339,8,6,57,1,5,22,1,8,18,-214,-214,-214,515,727,-214,-214,-214,5,6,57,1,5,23,-340,-340,-340,-340,-340,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,2,63,1,527,728,49,1,5,50,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,4,90,70,2,2,729,432,434,435,11,52,1,23,1,1,7,4,10,2,25,39,144,98,146,147,145,93,730,149,148,187,186,5,6,57,1,5,23,-114,-114,-114,-114,-114,3,6,57,1,540,541,731,26,6,57,1,5,19,4,53,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,120,-113,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,23,-116,-116,-116,-116,-116,9,6,57,1,5,10,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,22,64,24,57,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,732,120,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,4,56,1,2,2,-58,-58,-58,-58,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,118,119,-279,-279,-279,733,-279,-279,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,734,-280,-280,-280,-280,-280,-280,-280,118,119,-280,-280,-280,-280,-280,-280,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,118,119,-284,-284,-284,-284,-284,-284,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,118,119,-288,-288,-288,-288,-288,-288,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,118,119,-292,-292,-292,-292,-292,-292,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,735,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,736,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,58,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,3,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,3,6,57,1,572,573,737,6,6,57,1,5,49,3,-174,-174,-174,-174,-174,-174,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,738,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,739,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,740,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,741,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,1,139,742,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,3,6,57,1,615,616,743,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,3,6,57,1,623,624,744,5,6,57,1,5,31,-146,-146,-146,-146,-146,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,745,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,90,746,5,6,57,1,5,23,-110,-110,-110,-110,-110,1,82,747,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,748,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,749,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,118,119,-286,-286,-286,-286,-286,-286,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,118,119,-290,-290,-290,-290,-290,-290,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,5,6,57,1,5,49,-195,-195,-195,-195,-195,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,750,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,23,63,25,31,26,1,9,1,1,27,1,3,1,1,1,1,1,1,1,1,1,1,1,1,152,120,751,117,118,119,90,91,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,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,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,3,51,5,1,752,99,100,5,6,57,1,5,23,-318,-318,-318,-318,-318,5,6,57,1,5,23,-341,-341,-341,-341,-341,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,755,-283,-283,-283,-283,753,-283,754,-283,-283,-283,-283,-283,-283,-283,118,119,-283,-283,-283,-283,-283,-283,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,756,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,9,6,57,1,5,10,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,118,119,-281,-281,-281,-281,-281,-281,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,42,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,118,119,-282,-282,-282,-282,-282,-282,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,41,1,5,56,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,10,1,10,1,3,1,1,2,20,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,13,1,5,56,1,1,5,31,18,17,10,1,10,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,1,92,757,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,758,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,6,6,57,1,28,8,18,-215,-215,-215,-215,-215,-215,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,755,-285,-285,-285,-285,759,-285,760,-285,-285,-285,-285,-285,-285,-285,118,119,-285,-285,-285,-285,-285,-285,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,755,-284,-284,-284,-284,761,-284,-284,-284,-284,-284,-284,-284,-284,-284,118,119,-284,-284,-284,-284,-284,-284,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,1,92,762,94,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,8,4,1,1,1,1,1,1,1,763,155,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,68,69,70,71,72,73,74,75,94,95,86,98,99,100,96,97,50,49,66,67,87,93,56,77,81,78,79,61,159,160,84,85,80,82,83,76,63,59,60,51,88,52,89,53,57,54,90,91,55,92,46,58,64,65,161,162,163,43,44,45,47,48,1,92,764,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,43,1,5,56,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,10,1,9,1,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,755,-286,-286,-286,-286,765,-286,-286,-286,-286,-286,-286,-286,-286,-286,118,119,-286,-286,-286,-286,-286,-286,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,1,92,766,54,1,5,50,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,10,1,10,1,3,1,1,2,20,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104],T=[],Y=0,U,A,F,W;while(Y<$.length){U=$[Y++],A={},F=0,W=[];while(U--)F+=$[Y++],W.push(F);for(F of W)A[F]=$[Y++];T.push(A)}return T})(),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,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,42,1,42,1,52,1,54,1,51,1,51,3,58,1,58,2,60,3,60,5,60,2,60,1,44,1,44,3,68,3,68,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,33,1,33,1,33,1,75,1,75,1,75,3,75,3,75,4,75,6,75,4,75,6,75,4,75,5,75,7,75,3,75,3,75,4,75,6,77,10,77,12,77,11,77,13,77,4,95,0,95,1,95,3,95,4,95,6,96,1,96,1,96,3,96,5,96,3,96,5,98,1,98,1,98,1,86,1,86,3,86,4,86,1,97,2,97,2,103,1,103,1,103,1,103,1,103,1,103,2,103,2,103,2,103,2,103,3,103,3,103,4,103,6,76,2,76,3,76,4,108,1,108,3,108,4,108,4,108,6,110,1,110,2,109,1,109,2,107,1,107,2,112,1,112,2,113,1,113,1,36,5,83,3,83,2,83,2,83,1,30,6,30,3,15,5,15,2,31,5,31,2,122,1,122,1,117,0,117,1,117,3,117,4,117,6,125,1,125,3,125,2,125,1,126,1,126,1,126,1,126,1,127,2,37,2,37,2,37,3,37,2,37,2,105,2,105,4,129,1,129,3,129,4,129,4,129,6,111,1,111,1,111,1,111,1,130,1,130,3,39,1,39,1,78,2,40,3,40,4,40,6,41,3,41,3,119,2,119,3,35,3,35,5,91,0,91,1,10,2,10,4,10,1,28,2,28,4,29,1,29,2,29,4,29,3,140,3,140,5,143,3,143,5,22,1,22,3,22,1,22,3,22,3,22,3,22,3,23,2,23,3,23,4,23,5,148,3,148,3,148,2,26,5,26,7,26,4,26,6,152,1,152,2,153,3,153,4,155,2,155,4,155,2,155,4,24,2,24,2,24,2,24,1,158,2,158,2,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,165,1,165,3,89,1,89,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,171,1,171,3,171,4,171,4,171,6,172,1,172,3,172,1,172,3,169,1,170,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,177,1,177,3,177,4,177,4,177,6,179,1,179,3,179,3,179,1,179,3,32,2,32,2,32,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,38,2],ruleActions:($,T,Y,U)=>{let A=T,F=T.length-1;switch($){case 1:return["program"];case 2:return["program",...A[F]];case 3:case 55:case 107:case 147:case 151:case 171:case 191:case 200:case 247:case 297:case 314:case 337:return[A[F]];case 4:case 108:case 172:case 192:case 201:case 315:case 338:return[...A[F-2],A[F]];case 5:case 57:case 154:return A[F-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 60:case 61:case 83:case 84:case 85:case 86:case 87:case 112:case 117:case 118:case 119:case 120:case 123:case 126:case 127:case 128:case 129:case 130:case 142:case 168:case 169:case 175:case 179:case 180:case 181:case 182:case 196:case 197:case 198:case 214:case 215:case 229:case 231:case 258:case 295:case 319:case 321:case 323:case 342:case 345:return A[F];case 44:return"undefined";case 45:return"null";case 54:return["str",...A[F-1]];case 56:case 148:case 152:case 248:return[...A[F-1],A[F]];case 58:case 190:case 194:case 317:case 340:return A[F-2];case 59:return"";case 62:return["regex",A[F-1]];case 63:return["regex-index",A[F-2],A[F]];case 64:return["regex-index",A[F],null];case 65:return["=",A[F-2],A[F]];case 66:return["=",A[F-3],A[F]];case 67:return["=",A[F-4],A[F-1]];case 68:return["state",A[F-2],A[F]];case 69:return["state",A[F-3],A[F]];case 70:return["state",A[F-4],A[F-1]];case 71:return["computed",A[F-2],A[F]];case 72:return["computed",A[F-3],A[F]];case 73:return["computed",A[F-4],A[F-1]];case 74:return["readonly",A[F-2],A[F]];case 75:return["readonly",A[F-3],A[F]];case 76:return["readonly",A[F-4],A[F-1]];case 77:return["effect",A[F-2],A[F]];case 78:return["effect",A[F-3],A[F]];case 79:return["effect",A[F-4],A[F-1]];case 80:case 81:return["effect",null,A[F]];case 82:return["effect",null,A[F-1]];case 88:case 97:case 135:return[".",A[F-2],A[F]];case 89:case 98:case 136:return["?.",A[F-2],A[F]];case 90:case 92:case 99:case 137:return["[]",A[F-3],A[F-1]];case 91:case 93:case 100:case 138:return["[]",A[F-5],A[F-2]];case 94:return[A[F-1][0],A[F-3],...A[F-1].slice(1)];case 95:return["optindex",A[F-4],A[F-1]];case 96:return["optindex",A[F-6],A[F-2]];case 101:return["object-comprehension",A[F-8],A[F-6],[["for-of",A[F-4],A[F-2],!1]],[]];case 102:return["object-comprehension",A[F-10],A[F-8],[["for-of",A[F-6],A[F-4],!1]],[A[F-2]]];case 103:return["object-comprehension",A[F-9],A[F-7],[["for-of",A[F-4],A[F-2],!0]],[]];case 104:return["object-comprehension",A[F-11],A[F-9],[["for-of",A[F-6],A[F-4],!0]],[A[F-2]]];case 105:return["object",...A[F-2]];case 106:case 149:case 170:case 189:return[];case 109:case 173:case 193:case 316:case 339:return[...A[F-3],A[F]];case 110:case 174:case 195:case 318:case 341:return[...A[F-5],...A[F-2]];case 111:return[A[F],A[F],null];case 113:return[A[F-2],A[F],":"];case 114:return[A[F-4],A[F-1],":"];case 115:return[A[F-2],A[F],"="];case 116:return[A[F-4],A[F-1],"="];case 121:return["dynamicKey",A[F-1]];case 122:return["[]","this",A[F-1]];case 124:case 125:case 183:return["...",A[F]];case 131:case 187:return["super",...A[F]];case 132:case 133:case 134:case 185:case 188:return[A[F-1],...A[F]];case 139:return["array"];case 140:return["array",...A[F-1]];case 141:return["array",...A[F-2],...A[F-1]];case 143:return[...A[F-2],...A[F]];case 144:return[...A[F-3],...A[F]];case 145:return[...A[F-2],...A[F-1]];case 146:return[...A[F-5],...A[F-4],...A[F-2],...A[F-1]];case 150:return[...A[F]];case 153:return null;case 155:return"..";case 156:case 199:return"...";case 157:return[A[F-2],A[F-3],A[F-1]];case 158:case 363:case 365:case 366:case 380:case 382:return[A[F-1],A[F-2],A[F]];case 159:return[A[F],A[F-1],null];case 160:return[A[F-1],null,A[F]];case 161:return[A[F],null,null];case 162:return["def",A[F-4],A[F-2],A[F]];case 163:return["def",A[F-1],[],A[F]];case 164:case 166:return[A[F-1],A[F-3],A[F]];case 165:case 167:return[A[F-1],[],A[F]];case 176:case 296:return["default",A[F-2],A[F]];case 177:return["rest",A[F]];case 178:return["expansion"];case 184:return["tagged-template",A[F-1],A[F]];case 186:return["optcall",A[F-2],...A[F]];case 202:case 203:return"this";case 204:return[".","this",A[F]];case 205:return[".","super",A[F]];case 206:return["[]","super",A[F-1]];case 207:return["[]","super",A[F-2]];case 208:return[".","new",A[F]];case 209:return[".","import",A[F]];case 210:return["block"];case 211:return["block",...A[F-1]];case 212:return A[F-1].length===1?A[F-1][0]:["block",...A[F-1]];case 213:return A[F-2].length===1?A[F-2][0]:["block",...A[F-2]];case 216:return["return",A[F]];case 217:return["return",A[F-1]];case 218:return["return"];case 219:return["throw",A[F]];case 220:return["throw",A[F-1]];case 221:return["yield"];case 222:return["yield",A[F]];case 223:return["yield",A[F-1]];case 224:return["yield-from",A[F]];case 225:return["if",A[F-1],A[F]];case 226:return A[F-4].length===3?["if",A[F-4][1],A[F-4][2],["if",A[F-1],A[F]]]:[...A[F-4],["if",A[F-1],A[F]]];case 227:return["unless",A[F-1],A[F]];case 228:return["if",["!",A[F-3]],A[F-2],A[F]];case 230:return A[F-2].length===3?["if",A[F-2][1],A[F-2][2],A[F]]:[...A[F-2],A[F]];case 232:case 233:return["if",A[F],[A[F-2]]];case 234:case 235:return["unless",A[F],[A[F-2]]];case 236:return["try",A[F]];case 237:return["try",A[F-1],A[F]];case 238:return["try",A[F-2],A[F]];case 239:return["try",A[F-3],A[F-2],A[F]];case 240:case 241:case 347:case 350:case 352:return[A[F-1],A[F]];case 242:return[null,A[F]];case 243:return["switch",A[F-3],A[F-1],null];case 244:return["switch",A[F-5],A[F-3],A[F-1]];case 245:return["switch",null,A[F-1],null];case 246:return["switch",null,A[F-3],A[F-1]];case 249:return["when",A[F-1],A[F]];case 250:return["when",A[F-2],A[F-1]];case 251:return["while",A[F]];case 252:return["while",A[F-2],A[F]];case 253:return["until",A[F]];case 254:return["until",A[F-2],A[F]];case 255:return A[F-1].length===2?[A[F-1][0],A[F-1][1],A[F]]:[A[F-1][0],A[F-1][1],A[F-1][2],A[F]];case 256:case 257:return A[F].length===2?[A[F][0],A[F][1],[A[F-1]]]:[A[F][0],A[F][1],A[F][2],[A[F-1]]];case 259:return["loop",A[F]];case 260:return["loop",[A[F]]];case 261:return["for-in",A[F-3],A[F-1],null,null,A[F]];case 262:return["for-in",A[F-5],A[F-3],null,A[F-1],A[F]];case 263:return["for-in",A[F-5],A[F-3],A[F-1],null,A[F]];case 264:return["for-in",A[F-7],A[F-5],A[F-1],A[F-3],A[F]];case 265:return["for-in",A[F-7],A[F-5],A[F-3],A[F-1],A[F]];case 266:return["for-of",A[F-3],A[F-1],!1,null,A[F]];case 267:return["for-of",A[F-5],A[F-3],!1,A[F-1],A[F]];case 268:return["for-of",A[F-3],A[F-1],!0,null,A[F]];case 269:return["for-of",A[F-5],A[F-3],!0,A[F-1],A[F]];case 270:return["for-as",A[F-3],A[F-1],!1,null,A[F]];case 271:return["for-as",A[F-5],A[F-3],!1,A[F-1],A[F]];case 272:case 274:return["for-as",A[F-3],A[F-1],!0,null,A[F]];case 273:case 275:return["for-as",A[F-5],A[F-3],!0,A[F-1],A[F]];case 276:return["for-in",[],A[F-1],null,null,A[F]];case 277:return["for-in",[],A[F-3],A[F-1],null,A[F]];case 278:return["comprehension",A[F-4],[["for-in",A[F-2],A[F],null]],[]];case 279:return["comprehension",A[F-6],[["for-in",A[F-4],A[F-2],null]],[A[F]]];case 280:return["comprehension",A[F-6],[["for-in",A[F-4],A[F-2],A[F]]],[]];case 281:return["comprehension",A[F-8],[["for-in",A[F-6],A[F-4],A[F]]],[A[F-2]]];case 282:return["comprehension",A[F-8],[["for-in",A[F-6],A[F-4],A[F-2]]],[A[F]]];case 283:return["comprehension",A[F-4],[["for-of",A[F-2],A[F],!1]],[]];case 284:return["comprehension",A[F-6],[["for-of",A[F-4],A[F-2],!1]],[A[F]]];case 285:return["comprehension",A[F-5],[["for-of",A[F-2],A[F],!0]],[]];case 286:return["comprehension",A[F-7],[["for-of",A[F-4],A[F-2],!0]],[A[F]]];case 287:return["comprehension",A[F-4],[["for-as",A[F-2],A[F],!1,null]],[]];case 288:return["comprehension",A[F-6],[["for-as",A[F-4],A[F-2],!1,null]],[A[F]]];case 289:return["comprehension",A[F-5],[["for-as",A[F-2],A[F],!0,null]],[]];case 290:return["comprehension",A[F-7],[["for-as",A[F-4],A[F-2],!0,null]],[A[F]]];case 291:return["comprehension",A[F-4],[["for-as",A[F-2],A[F],!0,null]],[]];case 292:return["comprehension",A[F-6],[["for-as",A[F-4],A[F-2],!0,null]],[A[F]]];case 293:return["comprehension",A[F-2],[["for-in",[],A[F],null]],[]];case 294:return["comprehension",A[F-4],[["for-in",[],A[F-2],A[F]]],[]];case 298:case 320:case 322:case 343:case 344:case 346:return[A[F-2],A[F]];case 299:return["class",null,null];case 300:return["class",null,null,A[F]];case 301:return["class",null,A[F]];case 302:return["class",null,A[F-1],A[F]];case 303:return["class",A[F],null];case 304:return["class",A[F-1],null,A[F]];case 305:return["class",A[F-2],A[F]];case 306:return["class",A[F-3],A[F-1],A[F]];case 307:case 310:return["import","{}",A[F]];case 308:case 309:return["import",A[F-2],A[F]];case 311:return["import",A[F-4],A[F]];case 312:return["import",[A[F-4],A[F-2]],A[F]];case 313:return["import",[A[F-7],A[F-4]],A[F]];case 324:return["*",A[F]];case 325:return["export","{}"];case 326:return["export",A[F-2]];case 327:case 328:return["export",A[F]];case 329:return["export",["=",A[F-2],A[F]]];case 330:return["export",["=",A[F-3],A[F]]];case 331:return["export",["=",A[F-4],A[F-1]]];case 332:return["export-default",A[F]];case 333:return["export-default",A[F-1]];case 334:return["export-all",A[F]];case 335:return["export-from","{}",A[F]];case 336:return["export-from",A[F-4],A[F]];case 348:case 349:case 351:case 385:return["do-iife",A[F]];case 353:return["-",A[F]];case 354:return["+",A[F]];case 355:return["await",A[F]];case 356:return["await",A[F-1]];case 357:return["--",A[F],!1];case 358:return["++",A[F],!1];case 359:return["--",A[F-1],!0];case 360:return["++",A[F-1],!0];case 361:return["+",A[F-2],A[F]];case 362:return["-",A[F-2],A[F]];case 364:return["**",A[F-2],A[F]];case 367:return["&",A[F-2],A[F]];case 368:return["^",A[F-2],A[F]];case 369:return["|",A[F-2],A[F]];case 370:case 371:case 372:case 373:case 374:case 375:return["control",A[F-1],A[F-2],A[F]];case 376:return["&&",A[F-2],A[F]];case 377:return["||",A[F-2],A[F]];case 378:return["??",A[F-2],A[F]];case 379:return["!?",A[F-2],A[F]];case 381:return["?:",A[F-4],A[F-2],A[F]];case 383:return[A[F-3],A[F-4],A[F-1]];case 384:return[A[F-2],A[F-3],A[F]]}},parseError($,T){let Y,U,A,F,W,M,D;if(T.recoverable)return this.trace($);else throw A=(T.line||0)+1,Y=T.loc?.first_column||0,D=T.token?` (token: ${T.token})`:"",M=T.text?` near '${T.text}'`:"",F=`line ${A}, column ${Y}`,W=`Parse error at ${F}${D}${M}: ${$}`,U=Error(W),U.hash=T,U},parse($){let T,Y,U,A,F,W,M,D,Z,Q,X,J,z,G,R,_,K,P,H,u,q,L,O,I,w,N,S,j;[q,O,Z]=[[0],[null],[]],[G,S,w,I,P]=[this.parseTable,"",0,0,0],[Y,T]=[2,1],D=Object.create(this.lexer),H={yy:{}};for(let f in this.yy)if(Object.hasOwn(this.yy,f)){let V=this.yy[f];H.yy[f]=V}if(D.setInput($,H.yy),[H.yy.lexer,H.yy.parser]=[D,this],D.yylloc==null)D.yylloc={};N=D.yylloc,Z.push(N),K=D.options?.ranges,this.parseError=typeof H.yy.parseError==="function"?H.yy.parseError:Object.getPrototypeOf(this).parseError,M=()=>{let f;if(f=D.lex()||T,typeof f!=="number")f=this.symbolIds[f]||f;return f},[L,R,u,U,_,j,z,W,J,F]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(u=q[q.length-1],L==null)L=M();if(U=G[u]!=null?G[u][L]:void 0,U==null){if(A="",!P)F=(()=>{let f=[];for(let V in G[u]){if(!Object.hasOwn(G[u],V))continue;if(this.tokenNames[V]&&V>Y)f.push(`'${this.tokenNames[V]}'`)}return f})();throw A=(()=>{if(D.showPosition)return`Parse error on line ${w+1}:
|
|
10
|
+
${D.showPosition()}
|
|
11
|
+
Expecting ${F.join(", ")}, got '${this.tokenNames[L]||L}'`;else return`Parse error on line ${w+1}: Unexpected ${L===T?"end of input":`'${this.tokenNames[L]||L}'`}`,this.parseError(A,{text:D.match,token:this.tokenNames[L]||L,line:D.yylineno,loc:N,expected:F})})(),Error(A)}if(U>0)if(q.push(L,U),O.push(D.yytext),Z.push(D.yylloc),L=null,!R){if([I,S,w,N]=[D.yyleng,D.yytext,D.yylineno,D.yylloc],P>0)P--}else[L,R]=[R,null];else if(U<0){if(W=this.ruleTable[-U*2+1],j.$=O[O.length-W],[Q,X]=[Z[Z.length-(W||1)],Z[Z.length-1]],j._$={first_line:Q.first_line,last_line:X.last_line,first_column:Q.first_column,last_column:X.last_column},K)j._$.range=[Q.range[0],X.range[1]];if(_=this.ruleActions.apply(j,[-U,O,Z,H.yy]),_!=null)j.$=_;if(W)q.length-=W*2,O.length-=W,Z.length-=W;q.push(this.ruleTable[-U*2]),O.push(j.$),Z.push(j._$),J=G[q[q.length-2]][q[q.length-1]],q.push(J)}else if(U===0)return O[O.length-1]}},trace(){},yy:{}},s1=($={})=>{let T=Object.create(i1);return Object.defineProperty(T,"yy",{value:{...$},enumerable:!1,writable:!0,configurable:!0}),T},g=s1();var e1=g.parse.bind(g);var B=($,T)=>$ instanceof String?$[T]:void 0,E=($)=>$ instanceof String?$.valueOf():$,a1=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function n($){if(!Array.isArray($)||$.length===0)return!1;let T=$[0]?.valueOf?.()??$[0];if(a1.has(T))return!0;return $.length<=4&&!$.some(Array.isArray)}function l($){if(Array.isArray($))return"(???)";if(typeof $==="number")return String($);if($===null)return"null";if($==="")return'""';let T=String($);if(T[0]==="/"&&T.indexOf(`
|
|
12
|
+
`)>=0){let Y=T.match(/\/([gimsuvy]*)$/),U=Y?Y[1]:"",A=T.slice(1);return A=U?A.slice(0,-U.length-1):A.slice(0,-1),`"/${A.split(`
|
|
13
|
+
`).map((M)=>M.replace(/#.*$/,"").trim()).join("")}/${U}"`}return T}function h($,T=0,Y=!1){if(!Array.isArray($))return l($);if(Y&&$[0]==="program"){let Z=$[1],X=[Array.isArray(Z)?"(program":"(program "+l(Z)],J=Array.isArray(Z)?1:2;for(let z=J;z<$.length;z++){let G=h($[z],2,!1);X.push(G[0]==="("?" "+G:G)}return X.push(")"),X.join(`
|
|
14
|
+
`)}let U=$[0];if(n($)&&$.slice(1).every((Z)=>!Array.isArray(Z)||n(Z))){let Q=`(${$.map((X)=>Array.isArray(X)?h(X,0,!1):l(X)).join(" ")})`;if(!Q.includes(`
|
|
15
|
+
`))return" ".repeat(T)+Q}let F=" ".repeat(T),W;if(Array.isArray(U)){if(W=h(U,0,!1),W.includes(`
|
|
16
|
+
`))W=W.split(`
|
|
17
|
+
`).map((Q,X)=>X===0?Q:" ".repeat(T+2)+Q).join(`
|
|
18
|
+
`)}else W=l(U);let M=[`${F}(${W}`],D=U==="block";for(let Z=1;Z<$.length;Z++){let Q=$[Z];if(!Array.isArray(Q))M[M.length-1]+=" "+l(Q);else{let X=n(Q)&&Q.every((J)=>!Array.isArray(J)||n(J));if(!D&&X){let J=h(Q,0,!1);if(!J.includes(`
|
|
19
|
+
`)){M[M.length-1]+=" "+J;continue}}M.push(h(Q,T+2,!1))}}return M[M.length-1]+=")",M.join(`
|
|
20
|
+
`)}class y{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak","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-as":"generateForAs",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor($={}){if(this.options=$,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=$.dataSection,$.reactiveVars)this.reactiveVars=new Set($.reactiveVars)}compile($){return this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables($),this.generate($)}collectProgramVariables($){if(!Array.isArray($))return;let[T,...Y]=$;if(T=E(T),Array.isArray(T)){$.forEach((U)=>this.collectProgramVariables(U));return}if(T==="export"||T==="export-default"||T==="export-all"||T==="export-from")return;if(T==="state"||T==="computed"){let[U]=Y,A=E(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(A);return}if(T==="readonly")return;if(y.ASSIGNMENT_OPS.has(T)){let[U,A]=Y;if(typeof U==="string"||U instanceof String){let F=E(U);if(!this.reactiveVars?.has(F))this.programVars.add(F)}else if(Array.isArray(U)&&U[0]==="array")this.collectVarsFromArray(U,this.programVars);else if(Array.isArray(U)&&U[0]==="object")this.collectVarsFromObject(U,this.programVars);this.collectProgramVariables(A);return}if(T==="def"||T==="->"||T==="=>")return;if(T==="if"){let[U,A,F]=Y;if(this.collectProgramVariables(U),this.collectProgramVariables(A),F)this.collectProgramVariables(F);return}if(T==="unless"){let[U,A]=Y;this.collectProgramVariables(U),this.collectProgramVariables(A);return}if(T==="try"){if(this.collectProgramVariables(Y[0]),Y.length>=2&&Array.isArray(Y[1])&&Y[1].length===2&&Y[1][0]!=="block"){let[U,A]=Y[1];if(U&&Array.isArray(U)&&U[0]==="object")U.slice(1).forEach((F)=>{if(Array.isArray(F)&&F.length===2&&typeof F[1]==="string")this.programVars.add(F[1])});else if(U&&Array.isArray(U)&&U[0]==="array")U.slice(1).forEach((F)=>{if(typeof F==="string")this.programVars.add(F)});this.collectProgramVariables(A)}if(Y.length===3)this.collectProgramVariables(Y[2]);else if(Y.length===2&&(!Array.isArray(Y[1])||Y[1][0]==="block"))this.collectProgramVariables(Y[1]);return}Y.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables($){let T=new Set,Y=(U)=>{if(!Array.isArray(U))return;let[A,...F]=U;if(A=E(A),Array.isArray(A)){U.forEach((W)=>Y(W));return}if(y.ASSIGNMENT_OPS.has(A)){let[W,M]=F;if(typeof W==="string")T.add(W);else if(Array.isArray(W)&&W[0]==="array")this.collectVarsFromArray(W,T);else if(Array.isArray(W)&&W[0]==="object")this.collectVarsFromObject(W,T);Y(M);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(Y(F[0]),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[W,M]=F[1];if(W&&Array.isArray(W)&&W[0]==="object")W.slice(1).forEach((D)=>{if(Array.isArray(D)&&D.length===2&&typeof D[1]==="string")T.add(D[1])});else if(W&&Array.isArray(W)&&W[0]==="array")W.slice(1).forEach((D)=>{if(typeof D==="string")T.add(D)});Y(M)}if(F.length===3)Y(F[2]);else if(F.length===2&&(!Array.isArray(F[1])||F[1][0]==="block"))Y(F[1]);return}F.forEach((W)=>Y(W))};return Y($),T}generate($,T="statement"){if($ instanceof String){if(B($,"await")===!0)return`await ${E($)}()`;if(B($,"predicate"))return`(${E($)} != null)`;if(B($,"delimiter")==="///"&&B($,"heregex")){let M=E($),D=M.match(/^\/(.*)\/([gimsuvy]*)$/s);if(D){let[,Z,Q]=D;return`/${this.processHeregex(Z)}/${Q}`}return M}let W=B($,"quote");if(W){let M=E($);if(W==='"""'||W==="'''"){let Z=this.extractStringContent($);return Z=Z.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${Z}\``}if(M[0]===W)return M;let D=M.slice(1,-1);return`${W}${D}${W}`}$=E($)}if(typeof $==="string"){if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",$);let W=$.slice(1,-1);if(W.includes(`
|
|
21
|
+
`))return`\`${W.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let M=W.includes("'")&&!W.includes('"')?'"':"'",D=W.replace(new RegExp(M,"g"),`\\${M}`);return`${M}${D}${M}`}if(this.reactiveVars?.has($)&&!this.suppressReactiveUnwrap)return`${$}.value`;return $}if(typeof $==="number")return String($);if($===null||$===void 0)return"null";if(!Array.isArray($))throw Error(`Invalid s-expression: ${JSON.stringify($)}`);let[Y,...U]=$,A=B(Y,"await");Y=E(Y);let F=y.GENERATORS[Y];if(F)return this[F](Y,U,T,$);if(typeof Y==="string"&&!Y.startsWith('"')&&!Y.startsWith("'")){if(y.NUMBER_START_RE.test(Y))return Y;if(Y==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let Q=U.map((X)=>this.unwrap(this.generate(X,"value"))).join(", ");return`super.${this.currentMethodName}(${Q})`}if(T==="statement"&&U.length===1){let Q=this.findPostfixConditional(U[0]);if(Q){let X=this.rebuildWithoutConditional(Q),J=this.generate(Y,"value"),z=this.generate(Q.condition,"value"),G=this.generate(X,"value"),R=`${J}(${G})`;return Q.type==="unless"?`if (!${z}) ${R}`:`if (${z}) ${R}`}}let W=A===!0,M=this.generate(Y,"value"),D=U.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", "),Z=`${M}(${D})`;return W?`await ${Z}`:Z}if(Array.isArray(Y)&&typeof Y[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(Y[0]))return`(${$.map((D)=>this.generate(D,"value")).join(", ")})`}if(Array.isArray(Y)){if(Y[0]==="."&&(Y[2]==="new"||E(Y[2])==="new")){let Q=Y[1],X=this.generate(Q,"value"),J=U.map((G)=>this.unwrap(this.generate(G,"value"))).join(", ");return`new ${Array.isArray(Q)?`(${X})`:X}(${J})`}if(T==="statement"&&U.length===1){let Q=this.findPostfixConditional(U[0]);if(Q){let X=this.rebuildWithoutConditional(Q),J=this.generate(Y,"value"),z=this.generate(Q.condition,"value"),G=this.generate(X,"value"),R=`${J}(${G})`;return Q.type==="unless"?`if (!${z}) ${R}`:`if (${z}) ${R}`}}let W=!1,M;if(Y[0]==="."&&B(Y[2],"await")===!0){W=!0;let[Q,X]=Y.slice(1),J=this.generate(Q,"value");M=`${y.NUMBER_LITERAL_RE.test(J)||Array.isArray(Q)&&(Q[0]==="object"||Q[0]==="await"||Q[0]==="yield")?`(${J})`:J}.${E(X)}`}else M=this.generate(Y,"value");let D=U.map((Q)=>this.unwrap(this.generate(Q,"value"))).join(", "),Z=`${M}(${D})`;return W?`await ${Z}`:Z}throw Error(`Unknown s-expression type: ${Y}`)}generateProgram($,T,Y,U){let A="",F=[],W=[],M=[];for(let X of T){if(!Array.isArray(X)){M.push(X);continue}let J=X[0];if(J==="import")F.push(X);else if(J==="export"||J==="export-default"||J==="export-all"||J==="export-from")W.push(X);else M.push(X)}let D=["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"],Z=M.map((X,J)=>{let z=M.length===1&&F.length===0&&W.length===0,G=Array.isArray(X)&&X[0]==="object",R=G&&X.length===2&&Array.isArray(X[1])&&Array.isArray(X[1][1])&&X[1][1][0]==="comprehension",_=Array.isArray(X)&&(X[0]==="comprehension"||X[0]==="object-comprehension"||X[0]==="do-iife"),K=this.programVars.size===0,P=z&&G&&K&&!_&&!R,u=J===M.length-1&&_,q;if(P)q=`(${this.generate(X,"value")})`;else if(u)q=this.generate(X,"value");else q=this.generate(X,"statement");if(q&&!q.endsWith(";")){let L=Array.isArray(X)?X[0]:null;if(!D.includes(L)||!q.endsWith("}"))return q+";"}return q}).join(`
|
|
22
|
+
`),Q=!1;if(F.length>0)A+=F.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))).join(`
|
|
23
|
+
`),Q=!0;if(this.programVars.size>0){let X=Array.from(this.programVars).sort().join(", ");if(Q)A+=`
|
|
24
|
+
`;A+=`let ${X};
|
|
25
|
+
`,Q=!0}if(this.helpers.has("slice"))A+=`const slice = [].slice;
|
|
26
|
+
`,Q=!0;if(this.helpers.has("modulo"))A+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
27
|
+
`,Q=!0;if(this.helpers.has("toSearchable"))A+=`const toSearchable = (v, allowNewlines) => {
|
|
28
|
+
`,A+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
29
|
+
`,A+=` if (v == null) return "";
|
|
30
|
+
`,A+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
31
|
+
`,A+=` if (typeof v === "symbol") return v.description || "";
|
|
32
|
+
`,A+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
33
|
+
`,A+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
34
|
+
`,A+=` }
|
|
35
|
+
`,A+=` if (Array.isArray(v)) return v.join(",");
|
|
36
|
+
`,A+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
37
|
+
`,A+=` try { return v.toString(); } catch { return ""; }
|
|
38
|
+
`,A+=` }
|
|
39
|
+
`,A+=` return "";
|
|
40
|
+
`,A+=`};
|
|
41
|
+
`,Q=!0;if(this.usesReactivity&&!this.options.skipReactiveRuntime)A+=this.getReactiveRuntime(),Q=!0;if(this.dataSection!==null&&this.dataSection!==void 0)A+=`var DATA;
|
|
42
|
+
_setDataSection();
|
|
43
|
+
`,Q=!0;if(Q&&A.length>0)A+=`
|
|
44
|
+
`;if(A+=Z,W.length>0)A+=`
|
|
45
|
+
`+W.map((X)=>this.addSemicolon(X,this.generate(X,"statement"))).join(`
|
|
46
|
+
`);if(this.dataSection!==null&&this.dataSection!==void 0)A+=`
|
|
57
47
|
|
|
58
48
|
function _setDataSection() {
|
|
59
49
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
60
|
-
}`;return
|
|
61
|
-
${this.withIndent(()=>this.formatStatements(
|
|
50
|
+
}`;return A}generateBinaryOp($,T,Y,U){if(($==="+"||$==="-")&&T.length===1)return`(${$}${this.generate(T[0],"value")})`;let[A,F]=T;if($==="!?"){let W=this.generate(A,"value"),M=this.generate(F,"value");return`(${W} !== undefined ? ${W} : ${M})`}if($==="==")$="===";if($==="!=")$="!==";return`(${this.generate(A,"value")} ${$} ${this.generate(F,"value")})`}generateModulo($,T){let[Y,U]=T;return this.helpers.add("modulo"),`modulo(${this.generate(Y,"value")}, ${this.generate(U,"value")})`}generateFloorDiv($,T){let[Y,U]=T;return`Math.floor(${this.generate(Y,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign($,T){let[Y,U]=T,A=this.generate(Y,"value"),F=this.generate(U,"value");return`${A} = Math.floor(${A} / ${F})`}generateAssignment($,T,Y,U){let[A,F]=T,W=$==="?="?"??=":$,M=Array.isArray(F)&&(F[0]==="->"||F[0]==="=>"||F[0]==="def");if(A instanceof String&&B(A,"await")!==void 0&&!M){let R=B(A,"await")===!0?"!":"&";throw Error(`Cannot use ${R} sigil in variable declaration '${E(A)}'.`)}if(A instanceof String&&B(A,"await")===!0&&M)this.nextFunctionIsVoid=!0;let D=Array.isArray(A)&&A[0]==="array"&&A.length===1,Z=Array.isArray(A)&&A[0]==="object"&&A.length===1;if(D||Z){let R=this.generate(F,"value");return Z&&Y==="statement"?`(${R})`:R}if(Array.isArray(F)&&W==="="&&F[0]==="control"){let[,R,_,K]=F,P=E(R),H=K[0]==="return",u=this.generate(A,"value");if(typeof A==="string")this.programVars.add(A);let q=this.generate(_,"value"),L=K.length>1?K[1]:null,O=H?L?`return ${this.generate(L,"value")}`:"return":L?`throw ${this.generate(L,"value")}`:"throw new Error()";if(Y==="value"){if(P==="??")return`(() => { const __v = ${q}; if (__v == null) ${O}; return (${u} = __v); })()`;if(P==="||")return`(() => { const __v = ${q}; if (!__v) ${O}; return (${u} = __v); })()`;return`(() => { const __v = ${q}; if (__v) ${O}; return (${u} = __v); })()`}if(P==="??")return`if ((${u} = ${q}) == null) ${O}`;if(P==="||")return`if (!(${u} = ${q})) ${O}`;return`if ((${u} = ${q})) ${O}`}if(Array.isArray(A)&&A[0]==="array"){let R=A.slice(1).findIndex((_)=>Array.isArray(_)&&_[0]==="..."||_==="...");if(R!==-1&&R<A.length-2){let _=A.slice(1),K=_.slice(R+1),P=K.length;if(P>0){let H=this.generate(F,"value"),q=_.slice(0,R).map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),L=K.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");this.helpers.add("slice"),_.forEach((N)=>{if(N===","||N==="...")return;if(typeof N==="string")this.programVars.add(N);else if(Array.isArray(N)&&N[0]==="..."&&typeof N[1]==="string")this.programVars.add(N[1])});let O=_[R],I=Array.isArray(O)&&O[0]==="..."?O[1]:null,w=[];if(q)w.push(`[${q}] = ${H}`);if(I)w.push(`[...${I}] = ${H}.slice(${R}, -${P})`);return w.push(`[${L}] = slice.call(${H}, -${P})`),w.join(", ")}}}if(Y==="statement"&&$==="="&&Array.isArray(F)&&(F[0]==="||"||F[0]==="&&")&&F.length===3){let[R,_,K]=F;if(Array.isArray(K)&&(K[0]==="unless"||K[0]==="if")&&K.length===3){let[P,H,u]=K,q=Array.isArray(u)&&u.length===1?u[0]:u,L=[R,_,q],O=this.generate(A,"value"),I=this.generate(H,"value"),w=this.generate(L,"value");return P==="unless"?`if (!${I}) ${O} = ${w}`:`if (${I}) ${O} = ${w}`}}if(Y==="statement"&&$==="="&&Array.isArray(F)&&F.length===3){let[R,_,K]=F,P=Array.isArray(K)&&K.length===1&&(!Array.isArray(K[0])||K[0][0]!=="block");if((R==="unless"||R==="if")&&P){let H=Array.isArray(K)&&K.length===1?K[0]:K,u=this.generate(A,"value"),q=this.unwrapLogical(this.generate(_,"value")),L=this.generate(H,"value");if(R==="unless"){if(q.includes(" ")||/[<>=&|]/.test(q))q=`(${q})`;return`if (!${q}) ${u} = ${L}`}return`if (${q}) ${u} = ${L}`}}let Q;if(A instanceof String&&B(A,"await")!==void 0)Q=E(A);else if(typeof A==="string"&&this.reactiveVars?.has(A))Q=`${A}.value`;else this.suppressReactiveUnwrap=!0,Q=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let X=this.generate(F,"value");if(!(Array.isArray(F)&&F[0]==="object"))X=this.unwrap(X);let z=Y==="value",G=Y==="statement"&&Array.isArray(A)&&A[0]==="object";if(z||G)return`(${Q} ${W} ${X})`;return`${Q} ${W} ${X}`}generatePropertyAccess($,T,Y,U){let[A,F]=T;this.suppressReactiveUnwrap=!0;let W=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let D=y.NUMBER_LITERAL_RE.test(W)||Array.isArray(A)&&(A[0]==="object"||A[0]==="await"||A[0]==="yield")?`(${W})`:W;if(B(F,"await")===!0)return`await ${D}.${E(F)}()`;if(B(F,"predicate"))return`(${D}.${E(F)} != null)`;return`${D}.${E(F)}`}generateOptionalProperty($,T){let[Y,U]=T;return`${this.generate(Y,"value")}?.${U}`}generateRegexIndex($,T){let[Y,U,A]=T;this.helpers.add("toSearchable"),this.programVars.add("_");let F=this.generate(Y,"value"),W=this.generate(U,"value"),M=A!==null?this.generate(A,"value"):"0",D=W.includes("/m")?", true":"";return`(_ = toSearchable(${F}${D}).match(${W})) && _[${M}]`}generateIndexAccess($,T){let[Y,U]=T;if(Array.isArray(U)&&(U[0]===".."||U[0]==="...")){let A=U[0]==="..",F=this.generate(Y,"value"),[W,M]=U.slice(1);if(W===null&&M===null)return`${F}.slice()`;if(W===null){if(A&&this.isNegativeOneLiteral(M))return`${F}.slice(0)`;let Q=this.generate(M,"value");return A?`${F}.slice(0, +${Q} + 1 || 9e9)`:`${F}.slice(0, ${Q})`}if(M===null)return`${F}.slice(${this.generate(W,"value")})`;let D=this.generate(W,"value");if(A&&this.isNegativeOneLiteral(M))return`${F}.slice(${D})`;let Z=this.generate(M,"value");return A?`${F}.slice(${D}, +${Z} + 1 || 9e9)`:`${F}.slice(${D}, ${Z})`}return`${this.generate(Y,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex($,T){let[Y,U]=T;return`${this.generate(Y,"value")}?.[${this.generate(U,"value")}]`}generateOptCall($,T){let[Y,...U]=T;return`${this.generate(Y,"value")}?.(${U.map((A)=>this.generate(A,"value")).join(", ")})`}generateDef($,T,Y,U){let[A,F,W]=T,M=B(A,"await")===!0,D=E(A),Z=this.generateParamList(F),Q=this.generateFunctionBody(W,F,M),X=this.containsAwait(W),J=this.containsYield(W);return`${X?"async ":""}function${J?"*":""} ${D}(${Z}) ${Q}`}generateThinArrow($,T,Y,U){let[A,F]=T,W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let M=this.generateParamList(A),D=this.generateFunctionBody(F,A,W),Z=this.containsAwait(F),Q=this.containsYield(F),X=`${Z?"async ":""}function${Q?"*":""}(${M}) ${D}`;return Y==="value"?`(${X})`:X}generateFatArrow($,T,Y,U){let[A,F]=T,W=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let M=this.generateParamList(A),Z=A.length===1&&typeof A[0]==="string"&&!M.includes("=")&&!M.includes("...")&&!M.includes("[")&&!M.includes("{")?M:`(${M})`,X=this.containsAwait(F)?"async ":"";if(!W){if(Array.isArray(F)&&F[0]==="block"&&F.length===2){let z=F[1];if(!Array.isArray(z)||z[0]!=="return")return`${X}${Z} => ${this.generate(z,"value")}`}if(!Array.isArray(F)||F[0]!=="block")return`${X}${Z} => ${this.generate(F,"value")}`}let J=this.generateFunctionBody(F,A,W);return`${X}${Z} => ${J}`}generateReturn($,T,Y,U){if(T.length===0)return"return";let[A]=T;if(this.sideEffectOnly)return"return";if(Array.isArray(A)&&A[0]==="unless"){let[,F,W]=A,M=Array.isArray(W)&&W.length===1?W[0]:W;return`if (!${this.generate(F,"value")}) return ${this.generate(M,"value")}`}if(Array.isArray(A)&&A[0]==="if"){let[,F,W,...M]=A;if(M.length===0){let D=Array.isArray(W)&&W.length===1?W[0]:W;return`if (${this.generate(F,"value")}) return ${this.generate(D,"value")}`}}if(Array.isArray(A)&&A[0]==="new"&&Array.isArray(A[1])&&A[1][0]==="unless"){let[,F]=A,[,W,M]=F,D=Array.isArray(M)&&M.length===1?M[0]:M;return`if (!${this.generate(W,"value")}) return ${this.generate(["new",D],"value")}`}return`return ${this.generate(A,"value")}`}generateState($,T){let[Y,U]=T;this.usesReactivity=!0;let A=E(Y)??Y;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(A),`const ${A} = __state(${this.generate(U,"value")})`}generateComputed($,T){let[Y,U]=T;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let A=E(Y)??Y;return this.reactiveVars.add(A),`const ${A} = __computed(() => ${this.generate(U,"value")})`}generateReadonly($,T){let[Y,U]=T;return`const ${E(Y)??Y} = ${this.generate(U,"value")}`}generateEffect($,T){let[Y,U]=T;this.usesReactivity=!0;let A;if(Array.isArray(U)&&U[0]==="block")A=`{
|
|
51
|
+
${this.withIndent(()=>this.formatStatements(U.slice(1))).join(`
|
|
62
52
|
`)}
|
|
63
|
-
${this.indent()}}
|
|
64
|
-
${
|
|
53
|
+
${this.indent()}}`;else if(Array.isArray(U)&&(U[0]==="->"||U[0]==="=>")){let W=this.generate(U,"value");if(Y)return`const ${E(Y)??this.generate(Y,"value")} = __effect(${W})`;return`__effect(${W})`}else A=`{ ${this.generate(U,"value")}; }`;let F=`__effect(() => ${A})`;if(Y)return`const ${E(Y)??this.generate(Y,"value")} = ${F}`;return F}generateBreak(){return"break"}generateBreakIf($,T){return`if (${this.generate(T[0],"value")}) break`}generateContinue(){return"continue"}generateContinueIf($,T){return`if (${this.generate(T[0],"value")}) continue`}generateExistential($,T){return`(${this.generate(T[0],"value")} != null)`}generateTernary($,T){let[Y,U,A]=T;return`(${this.unwrap(this.generate(Y,"value"))} ? ${this.generate(U,"value")} : ${this.generate(A,"value")})`}generateLoop($,T){return`while (true) ${this.generateLoopBody(T[0])}`}generateAwait($,T){return`await ${this.generate(T[0],"value")}`}generateYield($,T){return T.length===0?"yield":`yield ${this.generate(T[0],"value")}`}generateYieldFrom($,T){return`yield* ${this.generate(T[0],"value")}`}generateIf($,T,Y,U){if($==="unless"){let[M,D]=T;if(Array.isArray(D)&&D.length===1&&(!Array.isArray(D[0])||D[0][0]!=="block"))D=D[0];if(Y==="value")return`(!${this.generate(M,"value")} ? ${this.extractExpression(D)} : undefined)`;let Z=this.unwrap(this.generate(M,"value"));if(/[ <>=&|]/.test(Z))Z=`(${Z})`;return`if (!${Z}) `+this.generate(D,"statement")}let[A,F,...W]=T;return Y==="value"?this.generateIfAsExpression(A,F,W):this.generateIfAsStatement(A,F,W)}generateForIn($,T,Y,U){let[A,F,W,M,D]=T;if(Y==="value"&&this.comprehensionDepth===0){let _=["for-in",A,F,W];return this.generate(["comprehension",D,[_],M?[M]:[]],Y)}let Z=Array.isArray(A)?A:[A],Q=Z.length===0,[X,J]=Q?["_i",null]:Z,z=Array.isArray(X)&&(X[0]==="array"||X[0]==="object")?this.generateDestructuringPattern(X):X;if(W&&W!==null){let _=this.generate(F,"value"),K=J||"_i",P=this.generate(W,"value"),H=this.isNegativeStep(W),u=H&&(W[1]==="1"||W[1]===1||E(W[1])==="1"),q=!H&&(W==="1"||W===1||E(W)==="1"),L;if(u)L=`for (let ${K} = ${_}.length - 1; ${K} >= 0; ${K}--) `;else if(q)L=`for (let ${K} = 0; ${K} < ${_}.length; ${K}++) `;else if(H)L=`for (let ${K} = ${_}.length - 1; ${K} >= 0; ${K} += ${P}) `;else L=`for (let ${K} = 0; ${K} < ${_}.length; ${K} += ${P}) `;if(Array.isArray(D)&&D[0]==="block"){let O=D.slice(1);this.indentLevel++;let I=[];if(!Q)I.push(`const ${z} = ${_}[${K}];`);if(M)I.push(`if (${this.generate(M,"value")}) {`),this.indentLevel++,I.push(...this.formatStatements(O)),this.indentLevel--,I.push(this.indent()+"}");else I.push(...O.map((w)=>this.addSemicolon(w,this.generate(w,"statement"))));return this.indentLevel--,L+`{
|
|
54
|
+
${I.map((w)=>this.indent()+w).join(`
|
|
65
55
|
`)}
|
|
66
|
-
${this.indent()}}`}
|
|
67
|
-
`,this.indentLevel++,
|
|
68
|
-
`,
|
|
69
|
-
`,this.indentLevel++,
|
|
56
|
+
${this.indent()}}`}if(Q)return M?L+`{ if (${this.generate(M,"value")}) ${this.generate(D,"statement")}; }`:L+`{ ${this.generate(D,"statement")}; }`;return M?L+`{ const ${z} = ${_}[${K}]; if (${this.generate(M,"value")}) ${this.generate(D,"statement")}; }`:L+`{ const ${z} = ${_}[${K}]; ${this.generate(D,"statement")}; }`}if(J){let _=this.generate(F,"value"),K=`for (let ${J} = 0; ${J} < ${_}.length; ${J}++) `;if(Array.isArray(D)&&D[0]==="block"){if(K+=`{
|
|
57
|
+
`,this.indentLevel++,K+=this.indent()+`const ${z} = ${_}[${J}];
|
|
58
|
+
`,M)K+=this.indent()+`if (${this.unwrap(this.generate(M,"value"))}) {
|
|
59
|
+
`,this.indentLevel++,K+=this.formatStatements(D.slice(1)).join(`
|
|
70
60
|
`)+`
|
|
71
|
-
`,this.indentLevel--,
|
|
72
|
-
|
|
61
|
+
`,this.indentLevel--,K+=this.indent()+`}
|
|
62
|
+
`;else K+=this.formatStatements(D.slice(1)).join(`
|
|
73
63
|
`)+`
|
|
74
|
-
`;this.indentLevel--,
|
|
75
|
-
${
|
|
64
|
+
`;this.indentLevel--,K+=this.indent()+"}"}else K+=M?`{ const ${z} = ${_}[${J}]; if (${this.unwrap(this.generate(M,"value"))}) ${this.generate(D,"statement")}; }`:`{ const ${z} = ${_}[${J}]; ${this.generate(D,"statement")}; }`;return K}let G=Array.isArray(F)&&F[0];if(G instanceof String)G=E(G);if(G===".."||G==="..."){let _=G==="...",[K,P]=F.slice(1),H=(u)=>typeof u==="number"||typeof u==="string"&&!u.includes("(")||u instanceof String&&!E(u).includes("(")||Array.isArray(u)&&u[0]===".";if(H(K)&&H(P)){let u=this.generate(K,"value"),q=this.generate(P,"value"),L=_?"<":"<=",O=W?`${z} += ${this.generate(W,"value")}`:`${z}++`,I=`for (let ${z} = ${u}; ${z} ${L} ${q}; ${O}) `;return I+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),I}}let R=`for (const ${z} of ${this.generate(F,"value")}) `;return R+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),R}generateForOf($,T,Y,U){let[A,F,W,M,D]=T,[Z,Q]=Array.isArray(A)?A:[A],X=this.generate(F,"value"),J=`for (const ${Z} in ${X}) `;if(W&&!Q&&!M){if(Array.isArray(D)&&D[0]==="block"){this.indentLevel++;let z=[`if (!Object.hasOwn(${X}, ${Z})) continue;`,...D.slice(1).map((G)=>this.addSemicolon(G,this.generate(G,"statement")))];return this.indentLevel--,J+`{
|
|
65
|
+
${z.map((G)=>this.indent()+G).join(`
|
|
76
66
|
`)}
|
|
77
|
-
${this.indent()}}`}
|
|
78
|
-
${
|
|
79
|
-
${J}const ${Z} = ${M}[${G}];
|
|
80
|
-
${J}if (${K}) {
|
|
81
|
-
${N.join(`
|
|
67
|
+
${this.indent()}}`}return J+`{ if (!Object.hasOwn(${X}, ${Z})) continue; ${this.generate(D,"statement")}; }`}if(Q){if(Array.isArray(D)&&D[0]==="block"){let G=D.slice(1);this.indentLevel++;let R=[];if(W)R.push(`if (!Object.hasOwn(${X}, ${Z})) continue;`);if(R.push(`const ${Q} = ${X}[${Z}];`),M)R.push(`if (${this.generate(M,"value")}) {`),this.indentLevel++,R.push(...G.map((_)=>this.addSemicolon(_,this.generate(_,"statement")))),this.indentLevel--,R.push(this.indent()+"}");else R.push(...G.map((_)=>this.addSemicolon(_,this.generate(_,"statement"))));return this.indentLevel--,J+`{
|
|
68
|
+
${R.map((_)=>this.indent()+_).join(`
|
|
82
69
|
`)}
|
|
83
|
-
${J}}
|
|
84
|
-
${
|
|
85
|
-
${J.map((K)=>this.indent()+K).join(`
|
|
70
|
+
${this.indent()}}`}let z="";if(W)z+=`if (!Object.hasOwn(${X}, ${Z})) continue; `;if(z+=`const ${Q} = ${X}[${Z}]; `,M)z+=`if (${this.generate(M,"value")}) `;return z+=`${this.generate(D,"statement")};`,J+`{ ${z} }`}return J+=M?this.generateLoopBodyWithGuard(D,M):this.generateLoopBody(D),J}generateForAs($,T,Y,U){let A=Array.isArray(T[0])?T[0]:[T[0]],[F]=A,W=T[1],M=T[2],D=T[3],Z=T[4],Q=!1,X=[];if(Array.isArray(F)&&F[0]==="array"){let _=F.slice(1),K=_.findIndex((P)=>Array.isArray(P)&&P[0]==="..."||P==="...");if(K!==-1&&K<_.length-1){Q=!0;let P=_.slice(K+1),H=P.length,u=_.slice(0,K),q=_[K],L=Array.isArray(q)&&q[0]==="..."?q[1]:"_rest",O=u.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", "),I=O?`${O}, ...${L}`:`...${L}`,w=P.map((N)=>N===","?"":typeof N==="string"?N:this.generate(N,"value")).join(", ");X.push(`[${I}] = _item`),X.push(`[${w}] = ${L}.splice(-${H})`),this.helpers.add("slice"),_.forEach((N)=>{if(N===","||N==="...")return;if(typeof N==="string")this.programVars.add(N);else if(Array.isArray(N)&&N[0]==="..."&&typeof N[1]==="string")this.programVars.add(N[1])})}}let J=this.generate(W,"value"),z=M?"await ":"",G;if(Q)G="_item";else if(Array.isArray(F)&&(F[0]==="array"||F[0]==="object"))G=this.generateDestructuringPattern(F);else G=F;let R=`for ${z}(const ${G} of ${J}) `;if(Q&&X.length>0){let _=this.unwrapBlock(Z),K=this.withIndent(()=>[...X.map((P)=>this.indent()+P+";"),...this.formatStatements(_)]);R+=`{
|
|
71
|
+
${K.join(`
|
|
86
72
|
`)}
|
|
87
|
-
${this.indent()}}`}else D
|
|
88
|
-
${
|
|
89
|
-
${J}if (${K}) {
|
|
90
|
-
${N.join(`
|
|
73
|
+
${this.indent()}}`}else R+=D?this.generateLoopBodyWithGuard(Z,D):this.generateLoopBody(Z);return R}generateWhile($,T){let Y=T[0],U=T.length===3?T[1]:null,A=T[T.length-1];return`while (${this.unwrap(this.generate(Y,"value"))}) `+(U?this.generateLoopBodyWithGuard(A,U):this.generateLoopBody(A))}generateUntil($,T){let[Y,U]=T;return`while (!(${this.unwrap(this.generate(Y,"value"))})) `+this.generateLoopBody(U)}generateRange($,T){if($==="..."){if(T.length===1)return`...${this.generate(T[0],"value")}`;let[W,M]=T,D=this.generate(W,"value"),Z=this.generate(M,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${D}, ${Z})`}let[Y,U]=T,A=this.generate(Y,"value"),F=this.generate(U,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${F})`}generateNot($,T){let[Y]=T;if(typeof Y==="string"||Y instanceof String)return`!${this.generate(Y,"value")}`;if(Array.isArray(Y)){if([".","?.","[]","optindex","optcall"].includes(Y[0]))return`!${this.generate(Y,"value")}`}let U=this.generate(Y,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot($,T){return`(~${this.generate(T[0],"value")})`}generateIncDec($,T){let[Y,U]=T,A=this.generate(Y,"value");return U?`(${A}${$})`:`(${$}${A})`}generateTypeof($,T){return`typeof ${this.generate(T[0],"value")}`}generateDelete($,T){return`(delete ${this.generate(T[0],"value")})`}generateInstanceof($,T,Y,U){let[A,F]=T,W=B(U[0],"invert"),M=`(${this.generate(A,"value")} instanceof ${this.generate(F,"value")})`;return W?`(!${M})`:M}generateIn($,T,Y,U){let[A,F]=T,W=this.generate(A,"value"),M=B(U[0],"invert");if(Array.isArray(F)&&F[0]==="object"){let Q=`(${W} in ${this.generate(F,"value")})`;return M?`(!${Q})`:Q}let D=this.generate(F,"value"),Z=`(Array.isArray(${D}) || typeof ${D} === 'string' ? ${D}.includes(${W}) : (${W} in ${D}))`;return M?`(!${Z})`:Z}generateOf($,T,Y,U){let[A,F]=T,W=this.generate(A,"value"),M=this.generate(F,"value"),D=B(U[0],"invert"),Z=`(${W} in ${M})`;return D?`(!${Z})`:Z}generateRegexMatch($,T){let[Y,U]=T;this.helpers.add("toSearchable"),this.programVars.add("_");let A=this.generate(U,"value"),F=A.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(Y,"value")}${F}).match(${A}))`}generateNew($,T){let[Y]=T;if(Array.isArray(Y)&&(Y[0]==="."||Y[0]==="?.")){let[U,A,F]=Y;if(Array.isArray(A)&&!A[0].startsWith)return`(${this.generate(["new",A],"value")}).${F}`;return`new ${this.generate(A,"value")}.${F}`}if(Array.isArray(Y)){let[U,...A]=Y;return`new ${this.generate(U,"value")}(${A.map((F)=>this.unwrap(this.generate(F,"value"))).join(", ")})`}return`new ${this.generate(Y,"value")}()`}generateLogicalAnd($,T,Y,U){let A=this.flattenBinaryChain(U).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map((F)=>this.generate(F,"value")).join(" && ")})`}generateLogicalOr($,T,Y,U){let A=this.flattenBinaryChain(U).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map((F)=>this.generate(F,"value")).join(" || ")})`}generateArray($,T){let Y=T.length>0&&T[T.length-1]===",",U=T.map((A)=>{if(A===",")return"";if(A==="...")return"";if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;return this.generate(A,"value")}).join(", ");return Y?`[${U},]`:`[${U}]`}generateObject($,T,Y){if(T.length===1&&Array.isArray(T[0])&&Array.isArray(T[0][1])&&T[0][1][0]==="comprehension"){let[A,F]=T[0],[,W,M,D]=F;return this.generate(["object-comprehension",A,W,M,D],Y)}return`{${T.map((A)=>{if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;let[F,W,M]=A,D;if(Array.isArray(F)&&F[0]==="dynamicKey")D=`[${this.generate(F[1],"value")}]`;else if(Array.isArray(F)&&F[0]==="str")D=`[${this.generate(F,"value")}]`;else D=this.generate(F,"value");let Z=this.generate(W,"value");if(M==="=")return`${D} = ${Z}`;if(M===":")return`${D}: ${Z}`;if(D===Z&&!Array.isArray(F))return D;return`${D}: ${Z}`}).join(", ")}}`}generateBlock($,T,Y){if(Y==="statement")return`{
|
|
74
|
+
${this.withIndent(()=>this.formatStatements(T)).join(`
|
|
91
75
|
`)}
|
|
92
|
-
${
|
|
93
|
-
${this.
|
|
94
|
-
${J.map((K)=>this.indent()+K).join(`
|
|
95
|
-
`)}
|
|
96
|
-
${this.indent()}}`}else D+=`{ const ${Z} = ${M}[${G}]; ${this.generate(F,"statement")}; }`;else if(Y)D+=this.generateLoopBodyWithGuard(F,Y);else D+=this.generateLoopBody(F);return D}generateForFrom(U,_,E,X){let R=Array.isArray(_[0])?_[0]:[_[0]],[A]=R,$=_[1],Y=_[2],F=_[3],G=_[4],Z=!1,M=[];if(Array.isArray(A)&&A[0]==="array"){let q=A.slice(1),N=q.findIndex((W)=>Array.isArray(W)&&W[0]==="..."||W==="...");if(N!==-1&&N<q.length-1){Z=!0;let W=q.slice(N+1),z=W.length,H=q.slice(0,N),O=q[N],S=Array.isArray(O)&&O[0]==="..."?O[1]:"_rest",T=H.map((w)=>{if(w===",")return"";if(typeof w==="string")return w;return this.generate(w,"value")}).join(", "),B=T?`${T}, ...${S}`:`...${S}`,L=W.map((w)=>{if(w===",")return"";if(typeof w==="string")return w;return this.generate(w,"value")}).join(", ");M.push(`[${B}] = _item`),M.push(`[${L}] = ${S}.splice(-${z})`),this.helpers.add("slice"),((w)=>{w.slice(1).forEach((P)=>{if(P===","||P==="...")return;if(typeof P==="string")this.programVars.add(P);else if(Array.isArray(P)&&P[0]==="..."){if(typeof P[1]==="string")this.programVars.add(P[1])}})})(A)}}let D=this.generate($,"value"),Q=Y?"await ":"",J;if(Z)J="_item";else if(Array.isArray(A)&&(A[0]==="array"||A[0]==="object"))J=this.generateDestructuringPattern(A);else J=A;let K=`for ${Q}(const ${J} of ${D}) `;if(Z&&M.length>0){let q=this.unwrapBlock(G),N=this.withIndent(()=>[...M.map((W)=>this.indent()+W+";"),...this.formatStatements(q)]);K+=`{
|
|
97
|
-
${N.join(`
|
|
98
|
-
`)}
|
|
99
|
-
${this.indent()}}`}else if(F)K+=this.generateLoopBodyWithGuard(G,F);else K+=this.generateLoopBody(G);return K}generateWhile(U,_,E,X){let R=_[0],A=_.length===3?_[1]:null,$=_[_.length-1],F=`while (${this.unwrap(this.generate(R,"value"))}) `;if(A)F+=this.generateLoopBodyWithGuard($,A);else F+=this.generateLoopBody($);return F}generateUntil(U,_,E,X){let[R,A]=_,Y=`while (!(${this.unwrap(this.generate(R,"value"))})) `;return Y+=this.generateLoopBody(A),Y}generateRange(U,_,E,X){if(U==="..."){if(_.length===1){let[D]=_;return`...${this.generate(D,"value")}`}let[F,G]=_,Z=this.generate(F,"value"),M=this.generate(G,"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]=_,$=this.generate(R,"value"),Y=this.generate(A,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${$}, ${Y})`}generateNot(U,_,E,X){let[R]=_;if(typeof R==="string"||R instanceof String)return`!${this.generate(R,"value")}`;if(Array.isArray(R)){let $=R[0];if([".","?.","::","?::","[]","?[]","optindex","optcall"].includes($))return`!${this.generate(R,"value")}`}let A=this.generate(R,"value");if(A.startsWith("("))return`!${A}`;return`(!${A})`}generateBitwiseNot(U,_,E,X){let[R]=_;return`(~${this.generate(R,"value")})`}generateIncDec(U,_,E,X){let[R,A]=_,$=this.generate(R,"value");if(A)return`(${$}${U})`;else return`(${U}${$})`}generateTypeof(U,_,E,X){let[R]=_;return`typeof ${this.generate(R,"value")}`}generateDelete(U,_,E,X){let[R]=_;return`(delete ${this.generate(R,"value")})`}generateInstanceof(U,_,E,X){let[R,A]=_,$=X[0]?.invert,Y=`(${this.generate(R,"value")} instanceof ${this.generate(A,"value")})`;return $?`(!${Y})`:Y}generateIn(U,_,E,X){let[R,A]=_,$=this.generate(R,"value"),Y=X[0]?.invert;if(Array.isArray(A)&&A[0]==="object"){let Z=this.generate(A,"value"),M=`(${$} in ${Z})`;return Y?`(!${M})`:M}let F=this.generate(A,"value"),G=`(Array.isArray(${F}) || typeof ${F} === 'string' ? ${F}.includes(${$}) : (${$} in ${F}))`;return Y?`(!${G})`:G}generateOf(U,_,E,X){let[R,A]=_,$=this.generate(R,"value"),Y=this.generate(A,"value"),F=X[0]?.invert,G=`(${$} in ${Y})`;return F?`(!${G})`:G}generateRegexMatch(U,_,E,X){let[R,A]=_;this.helpers.add("toSearchable"),this.programVars.add("_");let $=this.generate(A,"value"),F=$.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(R,"value")}${F}).match(${$}))`}generateNew(U,_,E,X){let[R]=_;if(Array.isArray(R)&&(R[0]==="."||R[0]==="?.")){let[A,$,Y]=R;if(Array.isArray($)&&!$[0].startsWith)return`(${this.generate(["new",$],"value")}).${Y}`;return`new ${this.generate($,"value")}.${Y}`}if(Array.isArray(R)){let[A,...$]=R,Y=this.generate(A,"value"),F=$.map((G)=>this.unwrap(this.generate(G,"value"))).join(", ");return`new ${Y}(${F})`}return`new ${this.generate(R,"value")}()`}generateLogicalAnd(U,_,E,X){let A=this.flattenBinaryChain(X).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map((Y)=>this.generate(Y,"value")).join(" && ")})`}generateLogicalOr(U,_,E,X){let A=this.flattenBinaryChain(X).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map((Y)=>this.generate(Y,"value")).join(" || ")})`}generateArray(U,_,E,X){let R=_.length>0&&_[_.length-1]===",",A=_.map(($)=>{if($===",")return"";if($==="...")return"";if(Array.isArray($)&&$[0]==="...")return`...${this.generate($[1],"value")}`;return this.generate($,"value")}).join(", ");return R?`[${A},]`:`[${A}]`}generateObject(U,_,E,X){if(_.length===1&&Array.isArray(_[0])&&Array.isArray(_[0][1])&&_[0][1][0]==="comprehension"){let[A,$]=_[0],[,Y,F,G]=$;return this.generate(["object-comprehension",A,Y,F,G],E)}return`{${_.map((A)=>{if(Array.isArray(A)&&A[0]==="...")return`...${this.generate(A[1],"value")}`;let[$,Y,F]=A,G;if(Array.isArray($)&&$[0]==="dynamicKey"){let M=$[1];G=`[${this.generate(M,"value")}]`}else if(Array.isArray($)&&$[0]==="str")G=`[${this.generate($,"value")}]`;else G=this.generate($,"value");let Z=this.generate(Y,"value");if(F==="=")return`${G} = ${Z}`;else if(F===":")return`${G}: ${Z}`;else{if(G===Z&&!Array.isArray($))return G;return`${G}: ${Z}`}}).join(", ")}}`}generateBlock(U,_,E,X){if(E==="statement")return`{
|
|
100
|
-
${this.withIndent(()=>this.formatStatements(_)).join(`
|
|
101
|
-
`)}
|
|
102
|
-
${this.indent()}}`;if(_.length===0)return"undefined";if(_.length===1)return this.generate(_[0],E);let R=_[_.length-1];if(Array.isArray(R)&&["break","continue","return","throw"].includes(R[0])){let Y=_.map((F)=>this.addSemicolon(F,this.generate(F,"statement")));return`{
|
|
103
|
-
${this.withIndent(()=>Y.map((F)=>this.indent()+F).join(`
|
|
76
|
+
${this.indent()}}`;if(T.length===0)return"undefined";if(T.length===1)return this.generate(T[0],Y);let U=T[T.length-1];if(Array.isArray(U)&&["break","continue","return","throw"].includes(U[0])){let F=T.map((W)=>this.addSemicolon(W,this.generate(W,"statement")));return`{
|
|
77
|
+
${this.withIndent(()=>F.map((W)=>this.indent()+W).join(`
|
|
104
78
|
`))}
|
|
105
|
-
${this.indent()}}`}return`(${
|
|
106
|
-
${this.indent()} ${
|
|
107
|
-
${this.indent()}}
|
|
108
|
-
${this.indent()} ${
|
|
109
|
-
${this.indent()}}`}}let
|
|
110
|
-
`;this.indentLevel++;
|
|
111
|
-
`}this.indentLevel++,
|
|
112
|
-
`,this.indentLevel++,
|
|
113
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
114
|
-
`;for(let
|
|
115
|
-
`,this.indentLevel++}else{let
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
`}}else if(H){let
|
|
119
|
-
`,this.indentLevel++,
|
|
120
|
-
`}else
|
|
121
|
-
`,this.indentLevel++}else if(
|
|
122
|
-
`,this.indentLevel++,
|
|
123
|
-
`;if(
|
|
124
|
-
`}else if(
|
|
125
|
-
`,this.indentLevel++}}for(let
|
|
126
|
-
`,this.indentLevel++;let
|
|
127
|
-
`;else if(Array.isArray(
|
|
128
|
-
`;else
|
|
129
|
-
`}
|
|
130
|
-
`;else if(Array.isArray(
|
|
131
|
-
`;else
|
|
132
|
-
`;for(let
|
|
133
|
-
`;for(let
|
|
134
|
-
`;return
|
|
135
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
136
|
-
`;this.indentLevel++,
|
|
137
|
-
`;for(let
|
|
138
|
-
`,this.indentLevel++,
|
|
139
|
-
`;if(
|
|
140
|
-
`}}for(let
|
|
141
|
-
`,this.indentLevel++;
|
|
142
|
-
`;for(let
|
|
143
|
-
`;for(let
|
|
144
|
-
`;return
|
|
145
|
-
`,this.indentLevel--,
|
|
146
|
-
|
|
147
|
-
`}else if(
|
|
148
|
-
|
|
149
|
-
`}
|
|
150
|
-
`}else if(
|
|
151
|
-
|
|
152
|
-
`}
|
|
153
|
-
`}
|
|
154
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
155
|
-
|
|
156
|
-
`;this.indentLevel--}}}return
|
|
157
|
-
export default ${
|
|
158
|
-
`;if(
|
|
159
|
-
|
|
160
|
-
`;
|
|
161
|
-
`;
|
|
162
|
-
`;
|
|
163
|
-
|
|
164
|
-
`;else
|
|
165
|
-
|
|
166
|
-
`;
|
|
167
|
-
`;
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
`})}if(X&&J.length>0){let N=J[J.length-1],W=Array.isArray(N)?N[0]:null;if(!D.includes(W))K+=this.indent()+`return;
|
|
171
|
-
`}return this.indentLevel--,K+=this.indent()+"}",this.sideEffectOnly=Y,K}if(A||this.hasExplicitControlFlow(U))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(Array.isArray(U)&&(D.includes(U[0])||Q.includes(U[0])))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(this.sideEffectOnly=Y,X)return`{ ${this.generate(U,"statement")}; return; }`;return`{ return ${this.generate(U,"value")}; }`}generateFunctionBody(U,_=[],E=!1){let X=this.expansionAfterParams?.length>0;return this.generateBodyWithReturns(U,_,{sideEffectOnly:E,hasExpansionParams:X})}generateBlockWithReturns(U){if(!Array.isArray(U)||U[0]!=="block")return this.generate(U,"statement");let _=this.unwrapBlock(U);return`{
|
|
172
|
-
${this.withIndent(()=>{return _.map((X,R)=>{let A=R===_.length-1,$=Array.isArray(X)?X[0]:null,F=A&&!["return","throw","break","continue"].includes($),G=F?"value":"statement",Z=this.generate(X,G);if(F)return this.indent()+"return "+Z+";";return this.indent()+Z+";"})}).join(`
|
|
79
|
+
${this.indent()}}`}return`(${T.map((F)=>this.generate(F,"value")).join(", ")})`}generateTry($,T,Y){let U=Y==="value",A="try ",F=T[0];if(A+=U&&Array.isArray(F)&&F[0]==="block"?this.generateBlockWithReturns(F):this.generate(F,"statement"),T.length>=2&&Array.isArray(T[1])&&T[1].length===2&&T[1][0]!=="block"){let[W,M]=T[1];if(A+=" catch",W&&Array.isArray(W)&&(W[0]==="object"||W[0]==="array")){A+=" (error)";let D=`(${this.generate(W,"value")} = error)`;M=Array.isArray(M)&&M[0]==="block"?["block",D,...M.slice(1)]:["block",D,M]}else if(W)A+=` (${W})`;A+=" "+(U&&Array.isArray(M)&&M[0]==="block"?this.generateBlockWithReturns(M):this.generate(M,"statement"))}else if(T.length===2)A+=" finally "+this.generate(T[1],"statement");if(T.length===3)A+=" finally "+this.generate(T[2],"statement");if(U)return`(${this.containsAwait(T[0])||T[1]&&this.containsAwait(T[1])?"async ":""}() => { ${A} })()`;return A}generateThrow($,T,Y){let[U]=T;if(Array.isArray(U)){let F=U,W=null;if(U[0]==="new"&&Array.isArray(U[1])&&(U[1][0]==="if"||U[1][0]==="unless"))W="new",F=U[1];else if(U[0]==="if"||U[0]==="unless")F=U;if(F[0]==="if"||F[0]==="unless"){let[M,D,Z]=F,Q=Array.isArray(Z)&&Z.length===1?Z[0]:Z;U=W==="new"?["new",Q]:Q;let X=this.generate(D,"value"),J=`throw ${this.generate(U,"value")}`;return M==="unless"?`if (!(${X})) {
|
|
80
|
+
${this.indent()} ${J};
|
|
81
|
+
${this.indent()}}`:`if (${X}) {
|
|
82
|
+
${this.indent()} ${J};
|
|
83
|
+
${this.indent()}}`}}let A=`throw ${this.generate(U,"value")}`;return Y==="value"?`(() => { ${A}; })()`:A}generateControl($,T,Y){let[U,A,F]=T,W=E(U),M=F[0]==="return",D=this.generate(A,"value"),Z=F.length>1?F[1]:null,Q=M?Z?`return ${this.generate(Z,"value")}`:"return":Z?`throw ${this.generate(Z,"value")}`:"throw new Error()",X=this.wrapForCondition(D);if(Y==="value"){if(W==="??")return`(() => { const __v = ${D}; if (__v == null) ${Q}; return __v; })()`;if(W==="||")return`(() => { const __v = ${D}; if (!__v) ${Q}; return __v; })()`;return`(() => { const __v = ${D}; if (__v) ${Q}; return __v; })()`}if(W==="??")return`if (${X} == null) ${Q}`;if(W==="||")return`if (!${X}) ${Q}`;return`if (${X}) ${Q}`}generateSwitch($,T,Y){let[U,A,F]=T;if(U===null)return this.generateSwitchAsIfChain(A,F,Y);let W=`switch (${this.generate(U,"value")}) {
|
|
84
|
+
`;this.indentLevel++;for(let M of A){let[,D,Z]=M;for(let Q of D){let X=E(Q)??Q,J;if(Array.isArray(X))J=this.generate(X,"value");else if(typeof X==="string"&&(X.startsWith('"')||X.startsWith("'")))J=`'${X.slice(1,-1)}'`;else J=this.generate(X,"value");W+=this.indent()+`case ${J}:
|
|
85
|
+
`}this.indentLevel++,W+=this.generateSwitchCaseBody(Z,Y),this.indentLevel--}if(F)W+=this.indent()+`default:
|
|
86
|
+
`,this.indentLevel++,W+=this.generateSwitchCaseBody(F,Y),this.indentLevel--;if(this.indentLevel--,W+=this.indent()+"}",Y==="value")return`(${A.some((D)=>this.containsAwait(D[2]))||F&&this.containsAwait(F)?"async ":""}() => { ${W} })()`;return W}generateWhen(){throw Error("when clause should be handled by switch")}generateComprehension($,T,Y){let[U,A,F]=T;if(Y==="statement")return this.generateComprehensionAsLoop(U,A,F);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(U,A,F,this.comprehensionTarget);let M=`(${this.containsAwait(U)?"async ":""}() => {
|
|
87
|
+
`;this.indentLevel++,this.comprehensionDepth++,M+=this.indent()+`const result = [];
|
|
88
|
+
`;for(let Q of A){let[X,J,z,G]=Q;if(X==="for-in"){let R=G,_=Array.isArray(J)?J:[J],K=_.length===0,[P,H]=K?["_i",null]:_,u=Array.isArray(P)&&(P[0]==="array"||P[0]==="object")?this.generateDestructuringPattern(P):P;if(R&&R!==null){let q=Array.isArray(z)&&z[0];if(q instanceof String)q=E(q);if(q===".."||q==="..."){let O=q==="...",[I,w]=z.slice(1),N=this.generate(I,"value"),S=this.generate(w,"value"),j=this.generate(R,"value");M+=this.indent()+`for (let ${u} = ${N}; ${u} ${O?"<":"<="} ${S}; ${u} += ${j}) {
|
|
89
|
+
`,this.indentLevel++}else{let O=this.generate(z,"value"),I=H||"_i",w=this.generate(R,"value"),N=this.isNegativeStep(R);if(M+=N?this.indent()+`for (let ${I} = ${O}.length - 1; ${I} >= 0; ${I} += ${w}) {
|
|
90
|
+
`:this.indent()+`for (let ${I} = 0; ${I} < ${O}.length; ${I} += ${w}) {
|
|
91
|
+
`,this.indentLevel++,!K)M+=this.indent()+`const ${u} = ${O}[${I}];
|
|
92
|
+
`}}else if(H){let q=this.generate(z,"value");M+=this.indent()+`for (let ${H} = 0; ${H} < ${q}.length; ${H}++) {
|
|
93
|
+
`,this.indentLevel++,M+=this.indent()+`const ${u} = ${q}[${H}];
|
|
94
|
+
`}else M+=this.indent()+`for (const ${u} of ${this.generate(z,"value")}) {
|
|
95
|
+
`,this.indentLevel++}else if(X==="for-of"){let R=G,_=Array.isArray(J)?J:[J],[K,P]=_,H=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K,u=this.generate(z,"value");if(M+=this.indent()+`for (const ${H} in ${u}) {
|
|
96
|
+
`,this.indentLevel++,R)M+=this.indent()+`if (!Object.hasOwn(${u}, ${H})) continue;
|
|
97
|
+
`;if(P)M+=this.indent()+`const ${P} = ${u}[${H}];
|
|
98
|
+
`}else if(X==="for-as"){let R=Q[3],_=Array.isArray(J)?J:[J],[K]=_,P=Array.isArray(K)&&(K[0]==="array"||K[0]==="object")?this.generateDestructuringPattern(K):K;M+=this.indent()+`for ${R?"await ":""}(const ${P} of ${this.generate(z,"value")}) {
|
|
99
|
+
`,this.indentLevel++}}for(let Q of F)M+=this.indent()+`if (${this.generate(Q,"value")}) {
|
|
100
|
+
`,this.indentLevel++;let D=(Q)=>{if(typeof Q==="string"&&(Q==="break"||Q==="continue"))return!0;if(!Array.isArray(Q))return!1;if(["break","continue","break-if","continue-if","return","throw"].includes(Q[0]))return!0;if(Q[0]==="if"||Q[0]==="unless")return Q.slice(1).some(D);return Q.some(D)},Z=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray(U)&&U[0]==="block")for(let Q=0;Q<U.length-1;Q++){let X=U[Q+1];if(Q!==U.length-2||D(X))M+=this.indent()+this.generate(X,"statement")+`;
|
|
101
|
+
`;else if(Array.isArray(X)&&Z.includes(X[0]))M+=this.indent()+this.generate(X,"statement")+`;
|
|
102
|
+
`;else M+=this.indent()+`result.push(${this.generate(X,"value")});
|
|
103
|
+
`}else if(D(U))M+=this.indent()+this.generate(U,"statement")+`;
|
|
104
|
+
`;else if(Array.isArray(U)&&Z.includes(U[0]))M+=this.indent()+this.generate(U,"statement")+`;
|
|
105
|
+
`;else M+=this.indent()+`result.push(${this.generate(U,"value")});
|
|
106
|
+
`;for(let Q=0;Q<F.length;Q++)this.indentLevel--,M+=this.indent()+`}
|
|
107
|
+
`;for(let Q=0;Q<A.length;Q++)this.indentLevel--,M+=this.indent()+`}
|
|
108
|
+
`;return M+=this.indent()+`return result;
|
|
109
|
+
`,this.indentLevel--,this.comprehensionDepth--,M+=this.indent()+"})()",M}generateObjectComprehension($,T,Y){let[U,A,F,W]=T,M=`(() => {
|
|
110
|
+
`;this.indentLevel++,M+=this.indent()+`const result = {};
|
|
111
|
+
`;for(let D of F){let[Z,Q,X,J]=D;if(Z==="for-of"){let[z,G]=Q,R=this.generate(X,"value");if(M+=this.indent()+`for (const ${z} in ${R}) {
|
|
112
|
+
`,this.indentLevel++,J)M+=this.indent()+`if (!Object.hasOwn(${R}, ${z})) continue;
|
|
113
|
+
`;if(G)M+=this.indent()+`const ${G} = ${R}[${z}];
|
|
114
|
+
`}}for(let D of W)M+=this.indent()+`if (${this.generate(D,"value")}) {
|
|
115
|
+
`,this.indentLevel++;M+=this.indent()+`result[${this.generate(U,"value")}] = ${this.generate(A,"value")};
|
|
116
|
+
`;for(let D=0;D<W.length;D++)this.indentLevel--,M+=this.indent()+`}
|
|
117
|
+
`;for(let D=0;D<F.length;D++)this.indentLevel--,M+=this.indent()+`}
|
|
118
|
+
`;return M+=this.indent()+`return result;
|
|
119
|
+
`,this.indentLevel--,M+=this.indent()+"})()",M}generateClass($,T,Y){let[U,A,...F]=T,W=U?`class ${U}`:"class";if(A)W+=` extends ${this.generate(A,"value")}`;if(W+=` {
|
|
120
|
+
`,F.length>0&&Array.isArray(F[0])){let M=F[0];if(M[0]==="block"){let D=M.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 X=[];for(let[J,z]of Q){let G=this.isStaticMember(J),R=this.isComputedMember(J),_=this.extractMemberName(J);if(this.isBoundMethod(z)&&!G&&!R&&_!=="constructor")X.push(_)}for(let[J,z]of Q){let G=this.isStaticMember(J),R=this.isComputedMember(J),_=this.extractMemberName(J);if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let[,K,P]=z,H=this.containsAwait(P),u=this.containsYield(P),q=K,L=[];if(_==="constructor"){q=K.map((w)=>{if(Array.isArray(w)&&w[0]==="."&&w[1]==="this")return L.push(`this.${w[2]} = ${w[2]}`),w[2];return w});for(let w of X)L.unshift(`this.${w} = this.${w}.bind(this)`)}let O=this.generateParamList(q),I=(G?"static ":"")+(H?"async ":"")+(u?"*":"");if(W+=this.indent()+`${I}${_}(${O}) `,!R)this.currentMethodName=_;W+=this.generateMethodBody(P,L,_==="constructor",q),this.currentMethodName=null,W+=`
|
|
121
|
+
`}else if(G)W+=this.indent()+`static ${_} = ${this.generate(z,"value")};
|
|
122
|
+
`;else W+=this.indent()+`${_} = ${this.generate(z,"value")};
|
|
123
|
+
`}this.indentLevel--}else if(Z){let Q=D[0].slice(1),X=D.slice(1);this.indentLevel++;for(let[J,z]of Q){let G=this.isStaticMember(J),R=this.extractMemberName(J);if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let[,_,K]=z,P=this.generateParamList(_),H=(G?"static ":"")+(this.containsAwait(K)?"async ":"")+(this.containsYield(K)?"*":"");W+=this.indent()+`${H}${R}(${P}) `,this.currentMethodName=R,W+=this.generateMethodBody(K,[],R==="constructor",_),this.currentMethodName=null,W+=`
|
|
124
|
+
`}else if(G)W+=this.indent()+`static ${R} = ${this.generate(z,"value")};
|
|
125
|
+
`;else W+=this.indent()+`${R} = ${this.generate(z,"value")};
|
|
126
|
+
`}for(let J of X)if(Array.isArray(J)&&J[0]==="class"){let[,z,G,...R]=J;if(Array.isArray(z)&&z[0]==="."&&z[1]==="this")W+=this.indent()+`static ${z[2]} = ${this.generate(["class",null,G,...R],"value")};
|
|
127
|
+
`}else W+=this.indent()+this.generate(J,"statement")+`;
|
|
128
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let Q of D)if(Array.isArray(Q)&&Q[0]==="="&&Array.isArray(Q[1])&&Q[1][0]==="."&&Q[1][1]==="this")W+=this.indent()+`static ${Q[1][2]} = ${this.generate(Q[2],"value")};
|
|
129
|
+
`;else W+=this.indent()+this.generate(Q,"statement")+`;
|
|
130
|
+
`;this.indentLevel--}}}return W+=this.indent()+"}",W}generateSuper($,T){if(T.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let Y=T.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${Y})`;return`super(${Y})`}generateImport($,T,Y,U){if(T.length===1){let M=`import(${this.generate(T[0],"value")})`;if(B(U[0],"await")===!0)return`(await ${M})`;return M}let[A,F]=T,W=this.addJsExtensionAndAssertions(F);if(typeof A==="string")return`import ${A} from ${W}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${W}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let D=A[0],Z=A[1];if(Z[0]==="*"&&Z.length===2)return`import ${D}, * as ${Z[1]} from ${W}`;let Q=(Array.isArray(Z)?Z:[Z]).map((X)=>Array.isArray(X)&&X.length===2?`${X[0]} as ${X[1]}`:X).join(", ");return`import ${D}, { ${Q} } from ${W}`}return`import { ${A.map((D)=>Array.isArray(D)&&D.length===2?`${D[0]} as ${D[1]}`:D).join(", ")} } from ${W}`}return`import ${this.generate(A,"value")} from ${W}`}generateExport($,T){let[Y]=T;if(Array.isArray(Y)&&Y.every((U)=>typeof U==="string"))return`export { ${Y.join(", ")} }`;if(Array.isArray(Y)&&Y[0]==="=")return`export const ${Y[1]} = ${this.generate(Y[2],"value")}`;return`export ${this.generate(Y,"statement")}`}generateExportDefault($,T){let[Y]=T;if(Array.isArray(Y)&&Y[0]==="=")return`const ${Y[1]} = ${this.generate(Y[2],"value")};
|
|
131
|
+
export default ${Y[1]}`;return`export default ${this.generate(Y,"statement")}`}generateExportAll($,T){return`export * from ${this.addJsExtensionAndAssertions(T[0])}`}generateExportFrom($,T){let[Y,U]=T,A=this.addJsExtensionAndAssertions(U);if(Array.isArray(Y))return`export { ${Y.map((W)=>Array.isArray(W)&&W.length===2?`${W[0]} as ${W[1]}`:W).join(", ")} } from ${A}`;return`export ${Y} from ${A}`}generateDoIIFE($,T){return`(${this.generate(T[0],"statement")})()`}generateRegex($,T){return T.length===0?$:this.generate(T[0],"value")}generateTaggedTemplate($,T){let[Y,U]=T,A=this.generate(Y,"value"),F=this.generate(U,"value");if(F.startsWith("`"))return`${A}${F}`;if(F.startsWith('"')||F.startsWith("'"))return`${A}\`${F.slice(1,-1)}\``;return`${A}\`${F}\``}generateString($,T){let Y="`";for(let U of T)if(U instanceof String)Y+=this.extractStringContent(U);else if(typeof U==="string")if(U.startsWith('"')||U.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",U);Y+=U.slice(1,-1)}else Y+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let A=U[0];Y+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=U.length===1&&Array.isArray(U[0])?U[0]:U;Y+="${"+this.generate(A,"value")+"}"}return Y+"`"}findPostfixConditional($){if(!Array.isArray($))return null;let T=$[0];if((T==="unless"||T==="if")&&$.length===3)return{type:T,condition:$[1],value:$[2]};if(T==="+"||T==="-"||T==="*"||T==="/")for(let Y=1;Y<$.length;Y++){let U=this.findPostfixConditional($[Y]);if(U)return U.parentOp=T,U.operandIndex=Y,U.otherOperands=$.slice(1).filter((A,F)=>F!==Y-1),U}return null}rebuildWithoutConditional($){let T=Array.isArray($.value)&&$.value.length===1?$.value[0]:$.value;if($.parentOp)return[$.parentOp,...$.otherOperands,T];return T}generateDestructuringPattern($){return this.formatParam($)}generateParamList($){let T=$.findIndex((U)=>Array.isArray(U)&&U[0]==="expansion");if(T!==-1){let U=$.slice(0,T),A=$.slice(T+1),F=U.map((W)=>this.formatParam(W)).join(", ");return this.expansionAfterParams=A,F?`${F}, ..._rest`:"..._rest"}let Y=$.findIndex((U)=>Array.isArray(U)&&U[0]==="rest");if(Y!==-1&&Y<$.length-1){let U=$.slice(0,Y),A=$[Y],F=$.slice(Y+1),W=U.map((M)=>this.formatParam(M));return this.restMiddleParam={restName:A[1],afterParams:F,beforeCount:U.length},W.length>0?`${W.join(", ")}, ...${A[1]}`:`...${A[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,$.map((U)=>this.formatParam(U)).join(", ")}formatParam($){if(typeof $==="string")return $;if(Array.isArray($)&&$[0]==="rest")return`...${$[1]}`;if(Array.isArray($)&&$[0]==="default")return`${$[1]} = ${this.generate($[2],"value")}`;if(Array.isArray($)&&$[0]==="."&&$[1]==="this")return $[2];if(Array.isArray($)&&$[0]==="array")return`[${$.slice(1).map((Y)=>{if(Y===",")return"";if(Y==="...")return"";if(Array.isArray(Y)&&Y[0]==="...")return`...${Y[1]}`;if(Array.isArray(Y)&&Y[0]==="="&&typeof Y[1]==="string")return`${Y[1]} = ${this.generate(Y[2],"value")}`;if(typeof Y==="string")return Y;return this.formatParam(Y)}).join(", ")}]`;if(Array.isArray($)&&$[0]==="object")return`{${$.slice(1).map((Y)=>{if(Array.isArray(Y)&&Y[0]==="...")return`...${Y[1]}`;if(Array.isArray(Y)&&Y[0]==="default")return`${Y[1]} = ${this.generate(Y[2],"value")}`;let[U,A]=Y;if(U===A)return U;return`${U}: ${A}`}).join(", ")}}`;return JSON.stringify($)}generateBodyWithReturns($,T=[],Y={}){let{sideEffectOnly:U=!1,autoAssignments:A=[],isConstructor:F=!1,hasExpansionParams:W=!1}=Y,M=this.sideEffectOnly;this.sideEffectOnly=U;let D=new Set,Z=(G)=>{if(typeof G==="string")D.add(G);else if(Array.isArray(G)){if(G[0]==="rest"||G[0]==="..."){if(typeof G[1]==="string")D.add(G[1])}else if(G[0]==="default"){if(typeof G[1]==="string")D.add(G[1])}else if(G[0]==="array"||G[0]==="object")this.collectVarsFromArray(G,D)}};if(Array.isArray(T))T.forEach(Z);let Q=this.collectFunctionVariables($),X=new Set([...Q].filter((G)=>!this.programVars.has(G)&&!this.reactiveVars?.has(G)&&!D.has(G))),J=["return","throw","break","continue"],z=["for-in","for-of","for-as","while","until","loop"];if(Array.isArray($)&&$[0]==="block"){let G=this.unwrapBlock($);if(W&&this.expansionAfterParams?.length>0)G=[...this.expansionAfterParams.map((H,u)=>{return`const ${typeof H==="string"?H:JSON.stringify(H)} = _rest[_rest.length - ${this.expansionAfterParams.length-u}]`}),...G],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:P,afterParams:H}=this.restMiddleParam,u=H.length,q=[];if(H.forEach((L,O)=>{let I=typeof L==="string"?L:Array.isArray(L)&&L[0]==="default"?L[1]:JSON.stringify(L);q.push(`const ${I} = ${P}[${P}.length - ${u-O}]`)}),u>0)q.push(`${P} = ${P}.slice(0, -${u})`);G=[...q,...G],this.restMiddleParam=null}this.indentLevel++;let R=`{
|
|
132
|
+
`;if(X.size>0)R+=this.indent()+`let ${Array.from(X).sort().join(", ")};
|
|
133
|
+
`;let _=A.length>0&&G.length>0&&Array.isArray(G[0])&&G[0][0]==="super",K=(P)=>{P.forEach((H,u)=>{let q=u===P.length-1,L=Array.isArray(H)?H[0]:null;if(!q&&L==="comprehension"){let[,N,S,j]=H;R+=this.indent()+this.generateComprehensionAsLoop(N,S,j)+`
|
|
134
|
+
`;return}if(!F&&!U&&q&&(L==="if"||L==="unless")){let[N,S,...j]=H.slice(1),f=(V)=>Array.isArray(V)&&V[0]==="block"&&V.length>2;if(f(S)||j.some(f)){R+=this.generateIfElseWithEarlyReturns(H);return}}if(!F&&!U&&q&&L==="="){let[N,S]=H.slice(1);if(typeof N==="string"&&Array.isArray(S)){let j=S[0];if(j==="comprehension"||j==="for-in"){this.comprehensionTarget=N,R+=this.generate(S,"value"),this.comprehensionTarget=null,R+=this.indent()+`return ${N};
|
|
135
|
+
`;return}}}let O=!F&&!U&&q&&!J.includes(L)&&!z.includes(L)&&!this.hasExplicitControlFlow(H),I=O?"value":"statement",w=this.generate(H,I);if(O)R+=this.indent()+"return "+w+`;
|
|
136
|
+
`;else R+=this.indent()+this.addSemicolon(H,w)+`
|
|
137
|
+
`})};if(_){if(G.length===1&&!F)R+=this.indent()+"return "+this.generate(G[0],"value")+`;
|
|
138
|
+
`;else R+=this.indent()+this.generate(G[0],"statement")+`;
|
|
139
|
+
`;for(let H of A)R+=this.indent()+H+`;
|
|
140
|
+
`;K(G.slice(1))}else{for(let P of A)R+=this.indent()+P+`;
|
|
141
|
+
`;K(G)}if(U&&G.length>0){let P=Array.isArray(G[G.length-1])?G[G.length-1][0]:null;if(!J.includes(P))R+=this.indent()+`return;
|
|
142
|
+
`}return this.indentLevel--,R+=this.indent()+"}",this.sideEffectOnly=M,R}if(this.sideEffectOnly=M,F||this.hasExplicitControlFlow($))return`{ ${this.generate($,"statement")}; }`;if(Array.isArray($)&&(J.includes($[0])||z.includes($[0])))return`{ ${this.generate($,"statement")}; }`;if(U)return`{ ${this.generate($,"statement")}; return; }`;return`{ return ${this.generate($,"value")}; }`}generateFunctionBody($,T=[],Y=!1){return this.generateBodyWithReturns($,T,{sideEffectOnly:Y,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody($,T=[],Y=!1,U=[]){return this.generateBodyWithReturns($,U,{autoAssignments:T,isConstructor:Y})}generateBlockWithReturns($){if(!Array.isArray($)||$[0]!=="block")return this.generate($,"statement");let T=this.unwrapBlock($);return`{
|
|
143
|
+
${this.withIndent(()=>T.map((U,A)=>{let F=A===T.length-1,W=Array.isArray(U)?U[0]:null,M=F&&!["return","throw","break","continue"].includes(W),D=this.generate(U,M?"value":"statement");return M?this.indent()+"return "+D+";":this.indent()+D+";"})).join(`
|
|
173
144
|
`)}
|
|
174
|
-
${this.indent()}}`}
|
|
175
|
-
${this.withIndent(()=>
|
|
145
|
+
${this.indent()}}`}generateLoopBody($){if(!Array.isArray($))return`{ ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let T=$[0]==="block"?$.slice(1):$;return`{
|
|
146
|
+
${this.withIndent(()=>T.map((U)=>{if(Array.isArray(U)&&U[0]==="comprehension"){let[,A,F,W]=U;return this.indent()+this.generateComprehensionAsLoop(A,F,W)}return this.indent()+this.addSemicolon(U,this.generate(U,"statement"))})).join(`
|
|
176
147
|
`)}
|
|
177
|
-
${this.indent()}}`}return`{ ${this.generate(
|
|
178
|
-
|
|
179
|
-
${
|
|
148
|
+
${this.indent()}}`}return`{ ${this.generate($,"statement")}; }`}generateLoopBodyWithGuard($,T){let Y=this.unwrap(this.generate(T,"value"));if(!Array.isArray($))return`{ if (${Y}) ${this.generate($,"statement")}; }`;if($[0]==="block"||Array.isArray($[0])){let U=$[0]==="block"?$.slice(1):$,A=this.withIndent(()=>this.indent()),F=`if (${Y}) {
|
|
149
|
+
`,W=this.withIndent(()=>{this.indentLevel++;let D=this.formatStatements(U);return this.indentLevel--,D}),M=this.withIndent(()=>this.indent()+"}");return`{
|
|
150
|
+
${A}${F}${W.join(`
|
|
180
151
|
`)}
|
|
181
|
-
${
|
|
182
|
-
${this.indent()}}`}return`{ if (${this.generate(
|
|
183
|
-
|
|
184
|
-
`))
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
`;
|
|
192
|
-
|
|
193
|
-
`}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
`,
|
|
197
|
-
|
|
198
|
-
`,
|
|
199
|
-
|
|
200
|
-
`,this.indentLevel
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
`,this.indentLevel++,
|
|
204
|
-
|
|
205
|
-
`,this.indentLevel
|
|
206
|
-
`,this.indentLevel++,
|
|
207
|
-
`,this.indentLevel--,
|
|
208
|
-
|
|
209
|
-
`,this.indentLevel++,
|
|
210
|
-
|
|
211
|
-
`,this.indentLevel++,
|
|
212
|
-
`,this.indentLevel
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
`,this.indentLevel++,
|
|
216
|
-
`,this.indentLevel
|
|
217
|
-
`,this.indentLevel
|
|
218
|
-
`,this.indentLevel
|
|
219
|
-
`,this.indentLevel
|
|
220
|
-
`,this.indentLevel--,
|
|
221
|
-
`,this.indentLevel++,X+=this.indent()
|
|
222
|
-
`,
|
|
223
|
-
|
|
224
|
-
`,
|
|
225
|
-
|
|
226
|
-
`,this.indentLevel++,
|
|
227
|
-
`,
|
|
228
|
-
`,this.indentLevel
|
|
229
|
-
|
|
230
|
-
`,this.indentLevel
|
|
231
|
-
|
|
232
|
-
`,this.indentLevel
|
|
233
|
-
|
|
234
|
-
`,
|
|
235
|
-
|
|
236
|
-
`,
|
|
237
|
-
|
|
238
|
-
`,
|
|
239
|
-
`;else if(
|
|
240
|
-
`,
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
`,
|
|
247
|
-
`,
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
`}else
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
`}return
|
|
257
|
-
|
|
258
|
-
`;
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
`}
|
|
263
|
-
`
|
|
152
|
+
${M}
|
|
153
|
+
${this.indent()}}`}return`{ if (${this.generate(T,"value")}) ${this.generate($,"statement")}; }`}generateComprehensionWithTarget($,T,Y,U){let A="";A+=this.indent()+`${U} = [];
|
|
154
|
+
`;let F=Array.isArray($)&&$[0]==="block"&&$.length===2?$[1]:$;if(T.length===1){let[W,M,D,Z]=T[0];if(W==="for-in"){let Q=Z,X=Array.isArray(M)?M:[M],J=X.length===0,[z,G]=J?["_i",null]:X,R=Array.isArray(z)&&(z[0]==="array"||z[0]==="object")?this.generateDestructuringPattern(z):z;if(Q&&Q!==null){let _=Array.isArray(D)&&D[0];if(_ instanceof String)_=E(_);if(_===".."||_==="..."){let P=_==="...",[H,u]=D.slice(1);A+=this.indent()+`for (let ${R} = ${this.generate(H,"value")}; ${R} ${P?"<":"<="} ${this.generate(u,"value")}; ${R} += ${this.generate(Q,"value")}) {
|
|
155
|
+
`}else{let P=this.generate(D,"value"),H=G||"_i",u=this.generate(Q,"value"),q=this.isNegativeStep(Q);if(A+=q?this.indent()+`for (let ${H} = ${P}.length - 1; ${H} >= 0; ${H} += ${u}) {
|
|
156
|
+
`:this.indent()+`for (let ${H} = 0; ${H} < ${P}.length; ${H} += ${u}) {
|
|
157
|
+
`,this.indentLevel++,!J)A+=this.indent()+`const ${R} = ${P}[${H}];
|
|
158
|
+
`}}else A+=this.indent()+`for (const ${R} of ${this.generate(D,"value")}) {
|
|
159
|
+
`;if(this.indentLevel++,Y&&Y.length>0)A+=this.indent()+`if (${Y.map((_)=>this.generate(_,"value")).join(" && ")}) {
|
|
160
|
+
`,this.indentLevel++;if(A+=this.indent()+`${U}.push(${this.unwrap(this.generate(F,"value"))});
|
|
161
|
+
`,Y&&Y.length>0)this.indentLevel--,A+=this.indent()+`}
|
|
162
|
+
`;return this.indentLevel--,A+=this.indent()+`}
|
|
163
|
+
`,A}}return this.indent()+`${U} = (() => { /* complex comprehension */ })();
|
|
164
|
+
`}generateComprehensionAsLoop($,T,Y){let U="";if(T.length===1){let[A,F,W,M]=T[0];if(A==="for-in"){let D=M,Z=Array.isArray(F)?F:[F],Q=Z.length===0,[X,J]=Q?["_i",null]:Z,z=Array.isArray(X)&&(X[0]==="array"||X[0]==="object")?this.generateDestructuringPattern(X):X;if(D&&D!==null){let G=Array.isArray(W)&&W[0];if(G instanceof String)G=E(G);let R=G===".."||G==="...";if(R){let _=G==="...",[K,P]=W.slice(1);U+=`for (let ${z} = ${this.generate(K,"value")}; ${z} ${_?"<":"<="} ${this.generate(P,"value")}; ${z} += ${this.generate(D,"value")}) `}else{let _=this.generate(W,"value"),K=J||"_i",P=this.generate(D,"value"),H=this.isNegativeStep(D),u=H&&(D[1]==="1"||D[1]===1||E(D[1])==="1"),q=!H&&(D==="1"||D===1||E(D)==="1");if(u)U+=`for (let ${K} = ${_}.length - 1; ${K} >= 0; ${K}--) `;else if(q)U+=`for (let ${K} = 0; ${K} < ${_}.length; ${K}++) `;else if(H)U+=`for (let ${K} = ${_}.length - 1; ${K} >= 0; ${K} += ${P}) `;else U+=`for (let ${K} = 0; ${K} < ${_}.length; ${K} += ${P}) `;if(U+=`{
|
|
165
|
+
`,this.indentLevel++,!Q)U+=this.indent()+`const ${z} = ${_}[${K}];
|
|
166
|
+
`}if(Y?.length){if(!R)U+=this.indent();U+=`{
|
|
167
|
+
`,this.indentLevel++,U+=this.indent()+`if (${Y.map((_)=>this.generate(_,"value")).join(" && ")}) {
|
|
168
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
169
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
170
|
+
`,this.indentLevel--,U+=this.indent()+"}"}else{if(!R)U+=this.indent();U+=`{
|
|
171
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
172
|
+
`,this.indentLevel--,U+=this.indent()+"}"}if(!R)this.indentLevel--,U+=`
|
|
173
|
+
`+this.indent()+"}";return U}if(J){let G=this.generate(W,"value");U+=`for (let ${J} = 0; ${J} < ${G}.length; ${J}++) `,U+=`{
|
|
174
|
+
`,this.indentLevel++,U+=this.indent()+`const ${z} = ${G}[${J}];
|
|
175
|
+
`}else{if(U+=`for (const ${z} of ${this.generate(W,"value")}) `,Y?.length)U+=`{
|
|
176
|
+
`,this.indentLevel++,U+=this.indent()+`if (${Y.map((G)=>this.generate(G,"value")).join(" && ")}) {
|
|
177
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
178
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
179
|
+
`,this.indentLevel--,U+=this.indent()+"}";else U+=`{
|
|
180
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
181
|
+
`,this.indentLevel--,U+=this.indent()+"}";return U}if(Y?.length)U+=this.indent()+`if (${Y.map((G)=>this.generate(G,"value")).join(" && ")}) {
|
|
182
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
183
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
184
|
+
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
185
|
+
`;return this.indentLevel--,U+=this.indent()+"}",U}if(A==="for-as"){let D=Array.isArray(F)?F:[F],[Z]=D,Q=Array.isArray(Z)&&(Z[0]==="array"||Z[0]==="object")?this.generateDestructuringPattern(Z):Z;if(U+=`for (const ${Q} of ${this.generate(W,"value")}) `,Y?.length)U+=`{
|
|
186
|
+
`,this.indentLevel++,U+=this.indent()+`if (${Y.map((X)=>this.generate(X,"value")).join(" && ")}) {
|
|
187
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
188
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
189
|
+
`,this.indentLevel--,U+=this.indent()+"}";else U+=`{
|
|
190
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
191
|
+
`,this.indentLevel--,U+=this.indent()+"}";return U}if(A==="for-of"){let D=Array.isArray(F)?F:[F],[Z,Q]=D,X=M,J=this.generate(W,"value");if(U+=`for (const ${Z} in ${J}) {
|
|
192
|
+
`,this.indentLevel++,X&&!Q&&!Y?.length)U+=this.indent()+`if (!Object.hasOwn(${J}, ${Z})) continue;
|
|
193
|
+
`,U+=this.indent()+this.generate($,"statement")+`;
|
|
194
|
+
`;else if(X&&Q&&Y?.length)U+=this.indent()+`if (Object.hasOwn(${J}, ${Z})) {
|
|
195
|
+
`,this.indentLevel++,U+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
196
|
+
`,U+=this.indent()+`if (${Y.map((z)=>this.generate(z,"value")).join(" && ")}) {
|
|
197
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
198
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
199
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
200
|
+
`;else if(X&&Q)U+=this.indent()+`if (Object.hasOwn(${J}, ${Z})) {
|
|
201
|
+
`,this.indentLevel++,U+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
202
|
+
`,U+=this.indent()+this.generate($,"statement")+`;
|
|
203
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
204
|
+
`;else if(Q&&Y?.length)U+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
205
|
+
`,U+=this.indent()+`if (${Y.map((z)=>this.generate(z,"value")).join(" && ")}) {
|
|
206
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
207
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
208
|
+
`;else if(Q)U+=this.indent()+`const ${Q} = ${J}[${Z}];
|
|
209
|
+
`,U+=this.indent()+this.generate($,"statement")+`;
|
|
210
|
+
`;else if(Y?.length)U+=this.indent()+`if (${Y.map((z)=>this.generate(z,"value")).join(" && ")}) {
|
|
211
|
+
`,this.indentLevel++,U+=this.indent()+this.generate($,"statement")+`;
|
|
212
|
+
`,this.indentLevel--,U+=this.indent()+`}
|
|
213
|
+
`;else U+=this.indent()+this.generate($,"statement")+`;
|
|
214
|
+
`;return this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",$,T,Y],"value")}generateIfElseWithEarlyReturns($){let[T,Y,U,...A]=$,F="",W=T==="unless"?`!${this.generate(Y,"value")}`:this.generate(Y,"value");F+=this.indent()+`if (${W}) {
|
|
215
|
+
`,F+=this.withIndent(()=>this.generateBranchWithReturn(U)),F+=this.indent()+"}";for(let M of A)if(F+=" else ",Array.isArray(M)&&M[0]==="if"){let[,D,Z,...Q]=M;F+=`if (${this.generate(D,"value")}) {
|
|
216
|
+
`,F+=this.withIndent(()=>this.generateBranchWithReturn(Z)),F+=this.indent()+"}";for(let X of Q)F+=` else {
|
|
217
|
+
`,F+=this.withIndent(()=>this.generateBranchWithReturn(X)),F+=this.indent()+"}"}else F+=`{
|
|
218
|
+
`,F+=this.withIndent(()=>this.generateBranchWithReturn(M)),F+=this.indent()+"}";return F}generateBranchWithReturn($){let T=this.unwrapBlock($),Y="";for(let U=0;U<T.length;U++){let A=U===T.length-1,F=T[U],W=Array.isArray(F)?F[0]:null;if(A&&!(W==="return"||W==="throw"||W==="break"||W==="continue"))Y+=this.indent()+`return ${this.generate(F,"value")};
|
|
219
|
+
`;else Y+=this.indent()+this.generate(F,"statement")+`;
|
|
220
|
+
`}return Y}generateIfAsExpression($,T,Y){if(this.isMultiStatementBlock(T)||this.hasStatementInBranch(T)||Y.some((M)=>this.isMultiStatementBlock(M)||this.hasStatementInBranch(M)||this.hasNestedMultiStatement(M))){let M=this.containsAwait($)||this.containsAwait(T)||Y.some((Z)=>this.containsAwait(Z)),D=`${M?"await ":""}(${M?"async ":""}() => { `;D+=`if (${this.generate($,"value")}) `,D+=this.generateBlockWithReturns(T);for(let Z of Y)if(D+=" else ",Array.isArray(Z)&&Z[0]==="if"){let[Q,X,J,...z]=Z;D+=`if (${this.generate(X,"value")}) `,D+=this.generateBlockWithReturns(J);for(let G of z)if(D+=" else ",Array.isArray(G)&&G[0]==="if"){let[R,_,K,...P]=G;D+=`if (${this.generate(_,"value")}) `,D+=this.generateBlockWithReturns(K),Y.push(...P)}else D+=this.generateBlockWithReturns(G)}else D+=this.generateBlockWithReturns(Z);return D+" })()"}let A=this.extractExpression(this.unwrapIfBranch(T)),F=this.buildTernaryChain(Y),W=this.generate($,"value");if(Array.isArray($)&&($[0]==="yield"||$[0]==="await"))W=`(${W})`;return`(${W} ? ${A} : ${F})`}generateIfAsStatement($,T,Y){let U=`if (${this.unwrap(this.generate($,"value"))}) `;U+=this.generate(this.unwrapIfBranch(T),"statement");for(let A of Y)U+=" else "+this.generate(this.unwrapIfBranch(A),"statement");return U}generateSwitchCaseBody($,T){let Y="";if(this.hasExplicitControlFlow($))for(let A of this.unwrapBlock($))Y+=this.indent()+this.generate(A,"statement")+`;
|
|
221
|
+
`;else if(T==="value")if(Array.isArray($)&&$[0]==="block"&&$.length>2){let A=$.slice(1);for(let F=0;F<A.length;F++)if(F===A.length-1)Y+=this.indent()+`return ${this.generate(A[F],"value")};
|
|
222
|
+
`;else Y+=this.indent()+this.generate(A[F],"statement")+`;
|
|
223
|
+
`}else Y+=this.indent()+`return ${this.extractExpression($)};
|
|
224
|
+
`;else{if(Array.isArray($)&&$[0]==="block"&&$.length>1)for(let A of $.slice(1))Y+=this.indent()+this.generate(A,"statement")+`;
|
|
225
|
+
`;else Y+=this.indent()+this.generate($,"statement")+`;
|
|
226
|
+
`;Y+=this.indent()+`break;
|
|
227
|
+
`}return Y}generateSwitchAsIfChain($,T,Y){let U="";for(let A=0;A<$.length;A++){let[,F,W]=$[A],M=Array.isArray(F)?F[0]:F;if(U+=(A===0?"":" else ")+`if (${this.generate(M,"value")}) {
|
|
228
|
+
`,this.indentLevel++,Y==="value")U+=this.indent()+`return ${this.extractExpression(W)};
|
|
229
|
+
`;else for(let D of this.unwrapBlock(W))U+=this.indent()+this.generate(D,"statement")+`;
|
|
230
|
+
`;this.indentLevel--,U+=this.indent()+"}"}if(T){if(U+=` else {
|
|
231
|
+
`,this.indentLevel++,Y==="value")U+=this.indent()+`return ${this.extractExpression(T)};
|
|
232
|
+
`;else for(let A of this.unwrapBlock(T))U+=this.indent()+this.generate(A,"statement")+`;
|
|
233
|
+
`;this.indentLevel--,U+=this.indent()+"}"}return Y==="value"?`(() => { ${U} })()`:U}extractExpression($){let T=this.unwrapBlock($);return T.length>0?this.generate(T[T.length-1],"value"):"undefined"}unwrapBlock($){if(!Array.isArray($))return[$];if($[0]==="block")return $.slice(1);if(Array.isArray($[0]))return $;return[$]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon($,T){if(!T||T.endsWith(";"))return!1;if(!T.endsWith("}"))return!0;let Y=Array.isArray($)?$[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(Y)}addSemicolon($,T){return T+(this.needsSemicolon($,T)?";":"")}formatStatements($,T="statement"){return $.map((Y)=>this.indent()+this.addSemicolon(Y,this.generate(Y,T)))}wrapForCondition($){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($))return $;if($.startsWith("(")&&$.endsWith(")"))return $;return`(${$})`}hasExplicitControlFlow($){if(!Array.isArray($))return!1;let T=$[0];if(T==="return"||T==="throw"||T==="break"||T==="continue")return!0;if(T==="block")return $.slice(1).some((Y)=>Array.isArray(Y)&&["return","throw","break","continue"].includes(Y[0]));if(T==="switch"){let[,,Y]=$;return Y?.some((U)=>{return this.unwrapBlock(U[2]).some((F)=>Array.isArray(F)&&["return","throw","break","continue"].includes(F[0]))})}if(T==="if"||T==="unless"){let[,,Y,U]=$;return this.branchHasControlFlow(Y)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow($){if(!Array.isArray($))return!1;let T=this.unwrapBlock($);if(T.length===0)return!1;let Y=T[T.length-1];return Array.isArray(Y)&&["return","throw","break","continue"].includes(Y[0])}withIndent($){this.indentLevel++;let T=$();return this.indentLevel--,T}isNegativeStep($){if(!Array.isArray($)||$.length!==2)return!1;return(E($[0])??$[0])==="-"}isNegativeOneLiteral($){return Array.isArray($)&&$[0]==="-"&&$.length===2&&($[1]==="1"||$[1]===1||E($[1])==="1")}unwrap($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let T=0,Y=0,U=!0,A=!1;for(let F=0;F<$.length;F++){if($[F]==="(")T++;if($[F]===")")T--;if($[F]==="["||$[F]==="{")Y++;if($[F]==="]"||$[F]==="}")Y--;if($[F]===","&&T===1&&Y===0)A=!0;if(T===0&&F<$.length-1){U=!1;break}}if(A)U=!1;if(U)$=$.slice(1,-1);else break}return $}unwrapLogical($){if(typeof $!=="string")return $;while($.startsWith("(")&&$.endsWith(")")){let T=0,Y=1/0;for(let U=1;U<$.length-1;U++){if($[U]==="(")T++;if($[U]===")")T--;Y=Math.min(Y,T)}if(Y>=0)$=$.slice(1,-1);else break}return $}unwrapIfBranch($){if(Array.isArray($)&&$.length===1&&(!Array.isArray($[0])||$[0][0]!=="block"))return $[0];return $}flattenBinaryChain($){if(!Array.isArray($)||$.length<3)return $;let[T,...Y]=$;if(T!=="&&"&&T!=="||")return $;let U=[],A=(F)=>{if(Array.isArray(F)&&F[0]===T)for(let W=1;W<F.length;W++)A(F[W]);else U.push(F)};for(let F of Y)A(F);return[T,...U]}hasStatementInBranch($){if(!Array.isArray($))return!1;let T=$[0];if(T==="return"||T==="throw"||T==="break"||T==="continue")return!0;if(T==="block")return $.slice(1).some((Y)=>this.hasStatementInBranch(Y));return!1}isMultiStatementBlock($){return Array.isArray($)&&$[0]==="block"&&$.length>2}hasNestedMultiStatement($){if(!Array.isArray($))return!1;if($[0]==="if"){let[T,Y,U,...A]=$;return this.isMultiStatementBlock(U)||A.some((F)=>this.hasNestedMultiStatement(F))}return!1}buildTernaryChain($){if($.length===0)return"undefined";if($.length===1)return this.extractExpression(this.unwrapIfBranch($[0]));let T=$[0];if(Array.isArray(T)&&T[0]==="if"){let[Y,U,A,...F]=T,W=this.extractExpression(this.unwrapIfBranch(A)),M=this.buildTernaryChain([...F,...$.slice(1)]);return`(${this.generate(U,"value")} ? ${W} : ${M})`}return this.extractExpression(this.unwrapIfBranch(T))}collectVarsFromArray($,T){$.slice(1).forEach((Y)=>{if(Y===","||Y==="...")return;if(typeof Y==="string"){T.add(Y);return}if(Array.isArray(Y)){if(Y[0]==="..."&&typeof Y[1]==="string")T.add(Y[1]);else if(Y[0]==="array")this.collectVarsFromArray(Y,T);else if(Y[0]==="object")this.collectVarsFromObject(Y,T)}})}collectVarsFromObject($,T){$.slice(1).forEach((Y)=>{if(!Array.isArray(Y))return;if(Y[0]==="..."&&typeof Y[1]==="string"){T.add(Y[1]);return}if(Y.length>=2){let[U,A,F]=Y;if(F==="="){if(typeof U==="string")T.add(U)}else if(typeof A==="string")T.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,T);else if(A[0]==="object")this.collectVarsFromObject(A,T)}}})}extractStringContent($){let T=E($).slice(1,-1),Y=B($,"indent");if(Y)T=T.replace(new RegExp(`\\n${Y}`,"g"),`
|
|
234
|
+
`);if(B($,"initialChunk")&&T.startsWith(`
|
|
235
|
+
`))T=T.slice(1);if(B($,"finalChunk")&&T.endsWith(`
|
|
236
|
+
`))T=T.slice(0,-1);return T}processHeregex($){let T="",Y=!1,U=0,A=()=>{let F=0,W=U-1;while(W>=0&&$[W]==="\\")F++,W--;return F%2===1};while(U<$.length){let F=$[U];if(F==="["&&!A()){Y=!0,T+=F,U++;continue}if(F==="]"&&Y&&!A()){Y=!1,T+=F,U++;continue}if(Y){T+=F,U++;continue}if(/\s/.test(F)){U++;continue}if(F==="#"){if(A()){T+=F,U++;continue}let W=U-1;while(W>=0&&$[W]==="\\")W--;if(W<U-1){T+=F,U++;continue}while(U<$.length&&$[U]!==`
|
|
237
|
+
`)U++;continue}T+=F,U++}return T}addJsExtensionAndAssertions($){if($ instanceof String)$=E($);if(typeof $!=="string")return $;let Y=$.startsWith('"')||$.startsWith("'")?$.slice(1,-1):$,U=Y.startsWith("./")||Y.startsWith("../"),A=Y,F="";if(U){let W=Y.lastIndexOf("/"),M=W>=0?Y.substring(W+1):Y;if(M.includes(".")){if(M.endsWith(".json"))F=" with { type: 'json' }"}else A=Y+".js"}return`'${A}'`+F}containsAwait($){if(!$)return!1;if($ instanceof String&&B($,"await")===!0)return!0;if(typeof $!=="object")return!1;if(Array.isArray($)&&$[0]==="await")return!0;if(Array.isArray($)&&$[0]==="for-as"&&$[3]===!0)return!0;if(Array.isArray($)&&($[0]==="def"||$[0]==="->"||$[0]==="=>"||$[0]==="class"))return!1;if(Array.isArray($))return $.some((T)=>this.containsAwait(T));return!1}containsYield($){if(!$)return!1;if(typeof $!=="object")return!1;if(Array.isArray($)&&($[0]==="yield"||$[0]==="yield-from"))return!0;if(Array.isArray($)&&($[0]==="def"||$[0]==="->"||$[0]==="=>"||$[0]==="class"))return!1;if(Array.isArray($))return $.some((T)=>this.containsYield(T));return!1}isStaticMember($){return Array.isArray($)&&$[0]==="."&&$[1]==="this"}isComputedMember($){return Array.isArray($)&&$[0]==="computed"}extractMemberName($){if(this.isStaticMember($))return $[2];if(this.isComputedMember($))return`[${this.generate($[1],"value")}]`;return $}isBoundMethod($){return Array.isArray($)&&$[0]==="=>"}getReactiveRuntime(){return`// ============================================================================
|
|
264
238
|
// Rip Reactive Runtime
|
|
265
239
|
// A minimal, fine-grained reactivity system
|
|
266
240
|
//
|
|
@@ -300,24 +274,16 @@ const __primitiveCoercion = {
|
|
|
300
274
|
[Symbol.toPrimitive](hint) { return hint === 'string' ? this.toString() : this.valueOf(); }
|
|
301
275
|
};
|
|
302
276
|
|
|
303
|
-
/**
|
|
304
|
-
* Create a reactive state container
|
|
305
|
-
* @param {*} initialValue - The initial value
|
|
306
|
-
* @returns {object} State with .value getter/setter
|
|
307
|
-
*/
|
|
308
277
|
function __state(initialValue) {
|
|
309
278
|
let value = initialValue;
|
|
310
|
-
const subscribers = new Set();
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
let
|
|
314
|
-
let locked = false; // Prevents writes (used during SSR/hydration)
|
|
315
|
-
let dead = false; // State has been killed (cleanup)
|
|
279
|
+
const subscribers = new Set();
|
|
280
|
+
let notifying = false;
|
|
281
|
+
let locked = false;
|
|
282
|
+
let dead = false;
|
|
316
283
|
|
|
317
284
|
const state = {
|
|
318
285
|
get value() {
|
|
319
286
|
if (dead) return value;
|
|
320
|
-
// Track this state as a dependency of the current effect/computed
|
|
321
287
|
if (__currentEffect) {
|
|
322
288
|
subscribers.add(__currentEffect);
|
|
323
289
|
__currentEffect.dependencies.add(subscribers);
|
|
@@ -326,54 +292,40 @@ function __state(initialValue) {
|
|
|
326
292
|
},
|
|
327
293
|
|
|
328
294
|
set value(newValue) {
|
|
329
|
-
// Skip if: dead, locked, same value, or already notifying
|
|
330
295
|
if (dead || locked || newValue === value || notifying) return;
|
|
331
296
|
value = newValue;
|
|
332
297
|
notifying = true;
|
|
333
|
-
|
|
334
|
-
// Notify subscribers: computeds mark dirty, effects get queued
|
|
335
298
|
for (const sub of subscribers) {
|
|
336
|
-
if (sub.markDirty) sub.markDirty();
|
|
337
|
-
else __pendingEffects.add(sub);
|
|
299
|
+
if (sub.markDirty) sub.markDirty();
|
|
300
|
+
else __pendingEffects.add(sub);
|
|
338
301
|
}
|
|
339
|
-
|
|
340
|
-
// Flush immediately unless we're batching
|
|
341
302
|
if (!__batching) __flushEffects();
|
|
342
303
|
notifying = false;
|
|
343
304
|
},
|
|
344
305
|
|
|
345
|
-
read() { return value; },
|
|
346
|
-
lock() { locked = true; return state; },
|
|
347
|
-
free() { subscribers.clear(); return state; },
|
|
348
|
-
kill() { dead = true; subscribers.clear(); return value; },
|
|
306
|
+
read() { return value; },
|
|
307
|
+
lock() { locked = true; return state; },
|
|
308
|
+
free() { subscribers.clear(); return state; },
|
|
309
|
+
kill() { dead = true; subscribers.clear(); return value; },
|
|
349
310
|
|
|
350
311
|
...__primitiveCoercion
|
|
351
312
|
};
|
|
352
313
|
return state;
|
|
353
314
|
}
|
|
354
315
|
|
|
355
|
-
/**
|
|
356
|
-
* Create a computed value (lazy & cached)
|
|
357
|
-
* @param {function} fn - Function that computes the value
|
|
358
|
-
* @returns {object} Computed with .value getter
|
|
359
|
-
*/
|
|
360
316
|
function __computed(fn) {
|
|
361
317
|
let value;
|
|
362
|
-
let dirty = true;
|
|
363
|
-
const subscribers = new Set();
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
let locked = false; // Prevents recomputation
|
|
367
|
-
let dead = false; // Computed has been killed
|
|
318
|
+
let dirty = true;
|
|
319
|
+
const subscribers = new Set();
|
|
320
|
+
let locked = false;
|
|
321
|
+
let dead = false;
|
|
368
322
|
|
|
369
323
|
const computed = {
|
|
370
|
-
dependencies: new Set(),
|
|
324
|
+
dependencies: new Set(),
|
|
371
325
|
|
|
372
|
-
// Called by dependencies when they change
|
|
373
326
|
markDirty() {
|
|
374
327
|
if (dead || locked || dirty) return;
|
|
375
328
|
dirty = true;
|
|
376
|
-
// Propagate dirty status to our subscribers
|
|
377
329
|
for (const sub of subscribers) {
|
|
378
330
|
if (sub.markDirty) sub.markDirty();
|
|
379
331
|
else __pendingEffects.add(sub);
|
|
@@ -382,17 +334,13 @@ function __computed(fn) {
|
|
|
382
334
|
|
|
383
335
|
get value() {
|
|
384
336
|
if (dead) return value;
|
|
385
|
-
// Track this computed as a dependency
|
|
386
337
|
if (__currentEffect) {
|
|
387
338
|
subscribers.add(__currentEffect);
|
|
388
339
|
__currentEffect.dependencies.add(subscribers);
|
|
389
340
|
}
|
|
390
|
-
// Recompute if dirty (lazy evaluation)
|
|
391
341
|
if (dirty && !locked) {
|
|
392
|
-
// Clear old dependencies
|
|
393
342
|
for (const dep of computed.dependencies) dep.delete(computed);
|
|
394
343
|
computed.dependencies.clear();
|
|
395
|
-
// Evaluate with this computed as the current effect (to track deps)
|
|
396
344
|
const prev = __currentEffect;
|
|
397
345
|
__currentEffect = computed;
|
|
398
346
|
try { value = fn(); } finally { __currentEffect = prev; }
|
|
@@ -401,8 +349,8 @@ function __computed(fn) {
|
|
|
401
349
|
return value;
|
|
402
350
|
},
|
|
403
351
|
|
|
404
|
-
read() { return value; },
|
|
405
|
-
lock() { locked = true; computed.value; return computed; },
|
|
352
|
+
read() { return value; },
|
|
353
|
+
lock() { locked = true; computed.value; return computed; },
|
|
406
354
|
free() {
|
|
407
355
|
for (const dep of computed.dependencies) dep.delete(computed);
|
|
408
356
|
computed.dependencies.clear();
|
|
@@ -421,20 +369,13 @@ function __computed(fn) {
|
|
|
421
369
|
return computed;
|
|
422
370
|
}
|
|
423
371
|
|
|
424
|
-
/**
|
|
425
|
-
* Create a reactive effect (side effect that re-runs on dependency changes)
|
|
426
|
-
* @param {function} fn - The effect function
|
|
427
|
-
* @returns {function} Dispose function to stop the effect
|
|
428
|
-
*/
|
|
429
372
|
function __effect(fn) {
|
|
430
373
|
const effect = {
|
|
431
|
-
dependencies: new Set(),
|
|
374
|
+
dependencies: new Set(),
|
|
432
375
|
|
|
433
376
|
run() {
|
|
434
|
-
// Clear old dependencies before re-running
|
|
435
377
|
for (const dep of effect.dependencies) dep.delete(effect);
|
|
436
378
|
effect.dependencies.clear();
|
|
437
|
-
// Run with this effect as current (to track deps)
|
|
438
379
|
const prev = __currentEffect;
|
|
439
380
|
__currentEffect = effect;
|
|
440
381
|
try { fn(); } finally { __currentEffect = prev; }
|
|
@@ -446,57 +387,37 @@ function __effect(fn) {
|
|
|
446
387
|
}
|
|
447
388
|
};
|
|
448
389
|
|
|
449
|
-
effect.run();
|
|
390
|
+
effect.run();
|
|
450
391
|
return () => effect.dispose();
|
|
451
392
|
}
|
|
452
393
|
|
|
453
|
-
/**
|
|
454
|
-
* Batch multiple state updates into a single effect flush
|
|
455
|
-
* @param {function} fn - Function containing multiple state updates
|
|
456
|
-
* @returns {*} The return value of fn
|
|
457
|
-
*/
|
|
458
394
|
function __batch(fn) {
|
|
459
|
-
if (__batching) return fn();
|
|
395
|
+
if (__batching) return fn();
|
|
460
396
|
__batching = true;
|
|
461
397
|
try {
|
|
462
398
|
return fn();
|
|
463
399
|
} finally {
|
|
464
400
|
__batching = false;
|
|
465
|
-
__flushEffects();
|
|
401
|
+
__flushEffects();
|
|
466
402
|
}
|
|
467
403
|
}
|
|
468
404
|
|
|
469
|
-
/**
|
|
470
|
-
* Create a readonly value (immutable, no reactivity)
|
|
471
|
-
* @param {*} value - The value to wrap
|
|
472
|
-
* @returns {object} Frozen object with .value property
|
|
473
|
-
*/
|
|
474
405
|
function __readonly(value) {
|
|
475
406
|
return Object.freeze({ value });
|
|
476
407
|
}
|
|
477
408
|
|
|
478
409
|
// ============================================================================
|
|
479
410
|
// Error Handling
|
|
480
|
-
// Catch and handle errors gracefully
|
|
481
411
|
// ============================================================================
|
|
482
412
|
|
|
483
|
-
let __errorHandler = null;
|
|
413
|
+
let __errorHandler = null;
|
|
484
414
|
|
|
485
|
-
/**
|
|
486
|
-
* Set the current error handler
|
|
487
|
-
* @param {function} handler - Error handler function
|
|
488
|
-
* @returns {function} Previous handler (for restoration)
|
|
489
|
-
*/
|
|
490
415
|
function __setErrorHandler(handler) {
|
|
491
416
|
const prev = __errorHandler;
|
|
492
417
|
__errorHandler = handler;
|
|
493
418
|
return prev;
|
|
494
419
|
}
|
|
495
420
|
|
|
496
|
-
/**
|
|
497
|
-
* Handle an error - calls nearest error boundary or rethrows
|
|
498
|
-
* @param {Error} error - The error to handle
|
|
499
|
-
*/
|
|
500
421
|
function __handleError(error) {
|
|
501
422
|
if (__errorHandler) {
|
|
502
423
|
try {
|
|
@@ -510,11 +431,6 @@ function __handleError(error) {
|
|
|
510
431
|
}
|
|
511
432
|
}
|
|
512
433
|
|
|
513
|
-
/**
|
|
514
|
-
* Wrap a function to catch errors and route to error boundary
|
|
515
|
-
* @param {function} fn - Function to wrap
|
|
516
|
-
* @returns {function} Wrapped function
|
|
517
|
-
*/
|
|
518
434
|
function __catchErrors(fn) {
|
|
519
435
|
return function(...args) {
|
|
520
436
|
try {
|
|
@@ -526,8 +442,8 @@ function __catchErrors(fn) {
|
|
|
526
442
|
}
|
|
527
443
|
|
|
528
444
|
// === End Reactive Runtime ===
|
|
529
|
-
`}}class
|
|
530
|
-
`),
|
|
445
|
+
`}}class p{constructor($={}){this.options={showTokens:!1,showSExpr:!1,...$}}compile($){let T=null,Y=$.split(`
|
|
446
|
+
`),U=Y.findIndex((Z)=>Z==="__DATA__");if(U!==-1){let Z=Y.slice(U+1);T=Z.length>0?Z.join(`
|
|
531
447
|
`)+`
|
|
532
|
-
`:""
|
|
533
|
-
`)}let
|
|
448
|
+
`:"",$=Y.slice(0,U).join(`
|
|
449
|
+
`)}let F=new x().tokenize($);if(this.options.showTokens)F.forEach((Z)=>console.log(`${Z[0].padEnd(12)} ${JSON.stringify(Z[1])}`)),console.log();g.lexer={tokens:F,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let Z=this.tokens[this.pos++],Q=Z[1];if(Z.data)Q=new String(Q),Object.assign(Q,Z.data);return this.yytext=Q,this.yylloc=Z.loc,Z[0]}};let W;try{W=g.parse($)}catch(Z){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test($)||/\?\s+\w+\s+\?\s+/.test($))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw Z}if(this.options.showSExpr)console.log(h(W,0,!0)),console.log();let M=new y({dataSection:T,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),D=M.compile(W);return{tokens:F,sexpr:W,code:D,data:T,reactiveVars:M.reactiveVars}}compileToJS($){return this.compile($).code}compileToSExpr($){return this.compile($).sexpr}}function o1($,T={}){return new p(T).compile($)}function i($,T={}){return new p(T).compileToJS($)}var U2="3.0.0",Y2="2026-02-07@13:13:24GMT",d1=($)=>{let T=$.match(/^[ \t]*(?=\S)/gm),Y=Math.min(...(T||[]).map((U)=>U.length));return $.replace(RegExp(`^[ ]{${Y}}`,"gm"),"").trim()};async function M1(){let $=document.querySelectorAll('script[type="text/rip"]');for(let T of $){if(T.hasAttribute("data-rip-processed"))continue;try{let Y=d1(T.textContent),U=i(Y);(0,eval)(U),T.setAttribute("data-rip-processed","true")}catch(Y){console.error("Error compiling Rip script:",Y),console.error("Script content:",T.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",M1);else M1();function r1($){try{let Y=i($).replace(/^let\s+[^;]+;\s*\n\s*/m,"");Y=Y.replace(/^const\s+/gm,"var ");let U=(0,eval)(Y);if(U!==void 0)globalThis._=U;return U}catch(T){console.error("Rip compilation error:",T.message);return}}if(typeof globalThis<"u")globalThis.rip=r1;export{r1 as rip,M1 as processRipScripts,g as parser,h as formatSExpr,i as compileToJS,o1 as compile,U2 as VERSION,x as Lexer,p as Compiler,y as CodeGenerator,Y2 as BUILD_DATE};
|