rip-lang 3.6.1 → 3.7.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.
@@ -208,7 +208,7 @@ function installTypeSupport(Lexer) {
208
208
  if (isDef || isAlias) {
209
209
  if (!token.data)
210
210
  token.data = {};
211
- token.data.typeParams = genTokens.map((t) => t[1]).join("");
211
+ token.data.typeParams = buildTypeString(genTokens);
212
212
  tokens2.splice(i + 1, genTokens.length);
213
213
  if (isDef && tokens2[i + 1]?.[0] === "(") {
214
214
  tokens2[i + 1][0] = "CALL_START";
@@ -373,8 +373,10 @@ function collectTypeExpression(tokens, j) {
373
373
  function buildTypeString(typeTokens) {
374
374
  if (typeTokens.length === 0)
375
375
  return "";
376
+ if (typeTokens[0]?.[0] === "=>")
377
+ typeTokens.unshift(["", "()"]);
376
378
  let typeStr = typeTokens.map((t) => t[1]).join(" ").replace(/\s+/g, " ").trim();
377
- typeStr = typeStr.replace(/\s*<\s*/g, "<").replace(/\s*>\s*/g, ">").replace(/\s*\[\s*/g, "[").replace(/\s*\]\s*/g, "]").replace(/\s*\(\s*/g, "(").replace(/\s*\)\s*/g, ")").replace(/\s*,\s*/g, ", ");
379
+ typeStr = typeStr.replace(/\s*<\s*/g, "<").replace(/\s*>\s*/g, ">").replace(/\s*\[\s*/g, "[").replace(/\s*\]\s*/g, "]").replace(/\s*\(\s*/g, "(").replace(/\s*\)\s*/g, ")").replace(/\s*,\s*/g, ", ").replace(/\s*=>\s*/g, " => ").replace(/ :: /g, ": ").replace(/:: /g, ": ");
378
380
  return typeStr;
379
381
  }
380
382
  function collectBalancedAngles(tokens, j) {
@@ -440,9 +442,23 @@ function collectStructuralType(tokens, indentIdx) {
440
442
  if (tokens[j]?.[1] === ":")
441
443
  j++;
442
444
  let propTypeTokens = [];
445
+ let typeDepth = 0;
443
446
  while (j < tokens.length) {
444
447
  let pt = tokens[j];
445
- if (pt[0] === "TERMINATOR" || pt[0] === "OUTDENT" || pt[0] === "INDENT")
448
+ if (pt[0] === "INDENT") {
449
+ typeDepth++;
450
+ j++;
451
+ continue;
452
+ }
453
+ if (pt[0] === "OUTDENT") {
454
+ if (typeDepth > 0) {
455
+ typeDepth--;
456
+ j++;
457
+ continue;
458
+ }
459
+ break;
460
+ }
461
+ if (pt[0] === "TERMINATOR" && typeDepth === 0)
446
462
  break;
447
463
  propTypeTokens.push(pt);
448
464
  j++;
@@ -525,12 +541,14 @@ function collectBlockUnion(tokens, startIdx) {
525
541
  let endIdx = findMatchingOutdent(tokens, indentIdx);
526
542
  return { typeText: members.join(" | "), endIdx };
527
543
  }
528
- function emitTypes(tokens) {
544
+ function emitTypes(tokens, sexpr = null) {
529
545
  let lines = [];
530
546
  let indentLevel = 0;
531
547
  let indentStr = " ";
532
548
  let indent = () => indentStr.repeat(indentLevel);
533
549
  let inClass = false;
550
+ let usesSignal = false;
551
+ let usesComputed = false;
534
552
  let emitBlock = (prefix, body, suffix) => {
535
553
  if (body.startsWith("{ ") && body.endsWith(" }")) {
536
554
  let props = body.slice(2, -2).split("; ").filter((p) => p.trim());
@@ -546,6 +564,99 @@ function emitTypes(tokens) {
546
564
  }
547
565
  lines.push(`${indent()}${prefix}${body}${suffix}`);
548
566
  };
567
+ let collectParams = (tokens2, startIdx) => {
568
+ let params = [];
569
+ let j = startIdx;
570
+ let openTag = tokens2[j]?.[0];
571
+ if (openTag !== "CALL_START" && openTag !== "PARAM_START")
572
+ return { params, endIdx: j };
573
+ let closeTag = openTag === "CALL_START" ? "CALL_END" : "PARAM_END";
574
+ j++;
575
+ let depth = 0;
576
+ while (j < tokens2.length && !(tokens2[j][0] === closeTag && depth === 0)) {
577
+ let tok = tokens2[j];
578
+ if (tok[1] === "," && depth === 0) {
579
+ j++;
580
+ continue;
581
+ }
582
+ if (tok[0] === "{" || tok[0] === "[" || tok[0] === "CALL_START" || tok[0] === "PARAM_START" || tok[0] === "INDEX_START")
583
+ depth++;
584
+ if (tok[0] === "}" || tok[0] === "]" || tok[0] === "CALL_END" || tok[0] === "PARAM_END" || tok[0] === "INDEX_END") {
585
+ depth--;
586
+ j++;
587
+ continue;
588
+ }
589
+ if (tok[0] === "@") {
590
+ j++;
591
+ if (tokens2[j]?.[0] === "PROPERTY" || tokens2[j]?.[0] === "IDENTIFIER") {
592
+ let name = tokens2[j][1];
593
+ let type = tokens2[j].data?.type;
594
+ params.push(type ? `${name}: ${expandSuffixes(type)}` : name);
595
+ j++;
596
+ }
597
+ continue;
598
+ }
599
+ if (tok[0] === "SPREAD" || tok[1] === "...") {
600
+ j++;
601
+ if (tokens2[j]?.[0] === "IDENTIFIER") {
602
+ let name = tokens2[j][1];
603
+ let type = tokens2[j].data?.type;
604
+ params.push(type ? `...${name}: ${expandSuffixes(type)}` : `...${name}: any[]`);
605
+ j++;
606
+ }
607
+ continue;
608
+ }
609
+ if (tok[0] === "{") {
610
+ let pattern = "{";
611
+ j++;
612
+ let d = 1;
613
+ while (j < tokens2.length && d > 0) {
614
+ if (tokens2[j][0] === "{")
615
+ d++;
616
+ if (tokens2[j][0] === "}")
617
+ d--;
618
+ if (d > 0)
619
+ pattern += tokens2[j][1] + (tokens2[j + 1]?.[0] === "}" ? "" : ", ");
620
+ j++;
621
+ }
622
+ pattern += "}";
623
+ let type = tokens2[j - 1]?.data?.type;
624
+ params.push(type ? `${pattern}: ${expandSuffixes(type)}` : pattern);
625
+ continue;
626
+ }
627
+ if (tok[0] === "IDENTIFIER") {
628
+ let paramName = tok[1];
629
+ let paramType = tok.data?.type;
630
+ let hasDefault = false;
631
+ if (tokens2[j + 1]?.[0] === "=") {
632
+ hasDefault = true;
633
+ }
634
+ if (paramType) {
635
+ params.push(`${paramName}${hasDefault ? "?" : ""}: ${expandSuffixes(paramType)}`);
636
+ } else {
637
+ params.push(paramName);
638
+ }
639
+ j++;
640
+ if (hasDefault) {
641
+ j++;
642
+ let dd = 0;
643
+ while (j < tokens2.length) {
644
+ let dt = tokens2[j];
645
+ if (dt[0] === "(" || dt[0] === "[" || dt[0] === "{")
646
+ dd++;
647
+ if (dt[0] === ")" || dt[0] === "]" || dt[0] === "}")
648
+ dd--;
649
+ if (dd === 0 && (dt[1] === "," || dt[0] === "CALL_END"))
650
+ break;
651
+ j++;
652
+ }
653
+ }
654
+ continue;
655
+ }
656
+ j++;
657
+ }
658
+ return { params, endIdx: j };
659
+ };
549
660
  for (let i = 0;i < tokens.length; i++) {
550
661
  let t = tokens[i];
551
662
  let tag = t[0];
@@ -557,6 +668,30 @@ function emitTypes(tokens) {
557
668
  break;
558
669
  t = tokens[i];
559
670
  tag = t[0];
671
+ if (tag === "DEFAULT") {
672
+ i++;
673
+ if (i >= tokens.length)
674
+ break;
675
+ t = tokens[i];
676
+ tag = t[0];
677
+ if (tag === "IDENTIFIER") {
678
+ lines.push(`${indent()}export default ${t[1]};`);
679
+ }
680
+ continue;
681
+ }
682
+ }
683
+ if (tag === "IMPORT") {
684
+ let importTokens = [];
685
+ let j = i + 1;
686
+ while (j < tokens.length && tokens[j][0] !== "TERMINATOR") {
687
+ importTokens.push(tokens[j]);
688
+ j++;
689
+ }
690
+ let raw = "import " + importTokens.map((tk) => tk[1]).join(" ");
691
+ raw = raw.replace(/\s+/g, " ").replace(/\s*,\s*/g, ", ").replace(/\{\s*/g, "{ ").replace(/\s*\}/g, " }").trim();
692
+ lines.push(`${indent()}${raw};`);
693
+ i = j;
694
+ continue;
560
695
  }
561
696
  if (tag === "TYPE_DECL") {
562
697
  let data = t.data;
@@ -651,32 +786,76 @@ function emitTypes(tokens) {
651
786
  let fnName = nameToken[1];
652
787
  let returnType = nameToken.data?.returnType;
653
788
  let typeParams = nameToken.data?.typeParams || "";
654
- let j = i + 2;
655
- let params = [];
656
- if (tokens[j]?.[0] === "CALL_START") {
657
- j++;
658
- while (j < tokens.length && tokens[j][0] !== "CALL_END") {
659
- if (tokens[j][0] === "IDENTIFIER") {
660
- let paramName = tokens[j][1];
661
- let paramType = tokens[j].data?.type;
662
- if (paramType) {
663
- params.push(`${paramName}: ${expandSuffixes(paramType)}`);
664
- } else {
665
- params.push(paramName);
666
- }
667
- }
668
- j++;
669
- }
670
- }
789
+ let { params, endIdx } = collectParams(tokens, i + 2);
671
790
  if (returnType || params.some((p) => p.includes(":"))) {
672
791
  let exp = exported ? "export " : "";
673
792
  let declare = inClass ? "" : exported ? "" : "declare ";
674
793
  let ret = returnType ? `: ${expandSuffixes(returnType)}` : "";
675
794
  let paramStr = params.join(", ");
676
- lines.push(`${indent()}${exp}${declare}function ${fnName}${typeParams}(${paramStr})${ret};`);
795
+ if (inClass) {
796
+ lines.push(`${indent()}${fnName}${typeParams}(${paramStr})${ret};`);
797
+ } else {
798
+ lines.push(`${indent()}${exp}${declare}function ${fnName}${typeParams}(${paramStr})${ret};`);
799
+ }
677
800
  }
678
801
  continue;
679
802
  }
803
+ if (tag === "{" && inClass) {
804
+ let j = i + 1;
805
+ let braceDepth = 1;
806
+ while (j < tokens.length && braceDepth > 0) {
807
+ let tok = tokens[j];
808
+ if (tok[0] === "{") {
809
+ braceDepth++;
810
+ j++;
811
+ continue;
812
+ }
813
+ if (tok[0] === "}") {
814
+ braceDepth--;
815
+ j++;
816
+ continue;
817
+ }
818
+ if (tok[0] === "TERMINATOR") {
819
+ j++;
820
+ continue;
821
+ }
822
+ if (tok[0] === "PROPERTY" && braceDepth === 1) {
823
+ let methodName = tok[1];
824
+ let returnType = tok.data?.returnType;
825
+ j++;
826
+ if (tokens[j]?.[1] === ":")
827
+ j++;
828
+ let params = [];
829
+ if (tokens[j]?.[0] === "PARAM_START") {
830
+ let result = collectParams(tokens, j);
831
+ params = result.params;
832
+ j = result.endIdx + 1;
833
+ }
834
+ if (tokens[j]?.[0] === "->" || tokens[j]?.[0] === "=>")
835
+ j++;
836
+ if (tokens[j]?.[0] === "INDENT") {
837
+ let d = 1;
838
+ j++;
839
+ while (j < tokens.length && d > 0) {
840
+ if (tokens[j][0] === "INDENT")
841
+ d++;
842
+ if (tokens[j][0] === "OUTDENT")
843
+ d--;
844
+ j++;
845
+ }
846
+ }
847
+ if (returnType || params.some((p) => p.includes(":"))) {
848
+ let ret = returnType ? `: ${expandSuffixes(returnType)}` : "";
849
+ let paramStr = params.join(", ");
850
+ lines.push(`${indent()}${methodName}(${paramStr})${ret};`);
851
+ }
852
+ continue;
853
+ }
854
+ j++;
855
+ }
856
+ i = j - 1;
857
+ continue;
858
+ }
680
859
  if (tag === "INDENT") {
681
860
  continue;
682
861
  }
@@ -688,6 +867,31 @@ function emitTypes(tokens) {
688
867
  }
689
868
  continue;
690
869
  }
870
+ if (tag === "IDENTIFIER" && !inClass && tokens[i + 1]?.[0] === "=" && (tokens[i + 2]?.[0] === "PARAM_START" || tokens[i + 2]?.[0] === "(")) {
871
+ let fnName = t[1];
872
+ let j = i + 2;
873
+ let { params } = collectParams(tokens, j);
874
+ let k = j;
875
+ let depth = 0;
876
+ while (k < tokens.length) {
877
+ if (tokens[k][0] === "PARAM_START" || tokens[k][0] === "(")
878
+ depth++;
879
+ if (tokens[k][0] === "PARAM_END" || tokens[k][0] === ")")
880
+ depth--;
881
+ if (depth === 0 && (tokens[k][0] === "->" || tokens[k][0] === "=>"))
882
+ break;
883
+ k++;
884
+ }
885
+ let returnType = tokens[k]?.data?.returnType;
886
+ if (returnType || params.some((p) => p.includes(":"))) {
887
+ let exp = exported ? "export " : "";
888
+ let declare = exported ? "" : "declare ";
889
+ let ret = returnType ? `: ${expandSuffixes(returnType)}` : "";
890
+ let paramStr = params.join(", ");
891
+ lines.push(`${indent()}${exp}${declare}function ${fnName}(${paramStr})${ret};`);
892
+ continue;
893
+ }
894
+ }
691
895
  if (tag === "IDENTIFIER" && t.data?.type) {
692
896
  let varName = t[1];
693
897
  let type = expandSuffixes(t.data.type);
@@ -698,11 +902,33 @@ function emitTypes(tokens) {
698
902
  if (next[0] === "READONLY_ASSIGN") {
699
903
  lines.push(`${indent()}${exp}${declare}const ${varName}: ${type};`);
700
904
  } else if (next[0] === "REACTIVE_ASSIGN") {
905
+ usesSignal = true;
701
906
  lines.push(`${indent()}${exp}${declare}const ${varName}: Signal<${type}>;`);
702
907
  } else if (next[0] === "COMPUTED_ASSIGN") {
908
+ usesComputed = true;
703
909
  lines.push(`${indent()}${exp}${declare}const ${varName}: Computed<${type}>;`);
910
+ } else if (next[0] === "REACT_ASSIGN") {
911
+ lines.push(`${indent()}${exp}${declare}const ${varName}: () => void;`);
704
912
  } else if (next[0] === "=") {
705
- if (inClass) {
913
+ let arrowIdx = i + 2;
914
+ if (tokens[arrowIdx]?.[0] === "PARAM_START") {
915
+ let d = 1, k = arrowIdx + 1;
916
+ while (k < tokens.length && d > 0) {
917
+ if (tokens[k][0] === "PARAM_START")
918
+ d++;
919
+ if (tokens[k][0] === "PARAM_END")
920
+ d--;
921
+ k++;
922
+ }
923
+ arrowIdx = k;
924
+ }
925
+ let arrowToken = tokens[arrowIdx];
926
+ if (arrowToken && (arrowToken[0] === "->" || arrowToken[0] === "=>") && arrowToken.data?.returnType) {
927
+ let returnType = expandSuffixes(arrowToken.data.returnType);
928
+ let { params } = collectParams(tokens, i + 2);
929
+ let paramStr = params.join(", ");
930
+ lines.push(`${indent()}${exp}${declare}function ${varName}(${paramStr}): ${returnType};`);
931
+ } else if (inClass) {
706
932
  lines.push(`${indent()}${varName}: ${type};`);
707
933
  } else {
708
934
  lines.push(`${indent()}${exp}let ${varName}: ${type};`);
@@ -715,9 +941,30 @@ function emitTypes(tokens) {
715
941
  }
716
942
  }
717
943
  }
944
+ let componentVars = new Set;
945
+ if (sexpr) {
946
+ emitComponentTypes(sexpr, lines, indent, indentLevel, componentVars);
947
+ if (componentVars.size > 0) {
948
+ for (let k = lines.length - 1;k >= 0; k--) {
949
+ let match = lines[k].match(/(?:declare |export )*(?:const|let) (\w+)/);
950
+ if (match && componentVars.has(match[1]))
951
+ lines.splice(k, 1);
952
+ }
953
+ }
954
+ }
718
955
  if (lines.length === 0)
719
956
  return null;
720
- return lines.join(`
957
+ let preamble = [];
958
+ if (usesSignal) {
959
+ preamble.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");
960
+ }
961
+ if (usesComputed) {
962
+ preamble.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");
963
+ }
964
+ if (preamble.length > 0) {
965
+ preamble.push("");
966
+ }
967
+ return preamble.concat(lines).join(`
721
968
  `) + `
722
969
  `;
723
970
  }
@@ -730,6 +977,86 @@ function expandSuffixes(typeStr) {
730
977
  typeStr = typeStr.replace(/(\w+(?:<[^>]+>)?)\!/g, "NonNullable<$1>");
731
978
  return typeStr;
732
979
  }
980
+ function emitComponentTypes(sexpr, lines, indent, indentLevel, componentVars) {
981
+ if (!Array.isArray(sexpr))
982
+ return;
983
+ let head = sexpr[0]?.valueOf?.() ?? sexpr[0];
984
+ let exported = false;
985
+ let name = null;
986
+ let compNode = null;
987
+ if (head === "export" && Array.isArray(sexpr[1])) {
988
+ exported = true;
989
+ let inner = sexpr[1];
990
+ let innerHead = inner[0]?.valueOf?.() ?? inner[0];
991
+ if (innerHead === "=" && Array.isArray(inner[2]) && (inner[2][0]?.valueOf?.() ?? inner[2][0]) === "component") {
992
+ name = inner[1]?.valueOf?.() ?? inner[1];
993
+ compNode = inner[2];
994
+ }
995
+ } else if (head === "=" && Array.isArray(sexpr[2]) && (sexpr[2][0]?.valueOf?.() ?? sexpr[2][0]) === "component") {
996
+ name = sexpr[1]?.valueOf?.() ?? sexpr[1];
997
+ compNode = sexpr[2];
998
+ }
999
+ if (name && compNode) {
1000
+ let exp = exported ? "export " : "";
1001
+ let body = compNode[2];
1002
+ let members = Array.isArray(body) && (body[0]?.valueOf?.() ?? body[0]) === "block" ? body.slice(1) : body ? [body] : [];
1003
+ let props = [];
1004
+ let methods = [];
1005
+ for (let member of members) {
1006
+ if (!Array.isArray(member))
1007
+ continue;
1008
+ let mHead = member[0]?.valueOf?.() ?? member[0];
1009
+ if (mHead === "state") {
1010
+ let propName = member[1]?.valueOf?.() ?? member[1];
1011
+ let type = member[1]?.type;
1012
+ props.push(` ${propName}: ${type ? expandSuffixes(type) : "any"};`);
1013
+ componentVars.add(propName);
1014
+ } else if (mHead === "computed") {
1015
+ let propName = member[1]?.valueOf?.() ?? member[1];
1016
+ let type = member[1]?.type;
1017
+ props.push(` readonly ${propName}: ${type ? expandSuffixes(type) : "any"};`);
1018
+ componentVars.add(propName);
1019
+ } else if (mHead === "object") {
1020
+ for (let j = 1;j < member.length; j++) {
1021
+ let entry = member[j];
1022
+ if (!Array.isArray(entry))
1023
+ continue;
1024
+ let methodName = entry[0]?.valueOf?.() ?? entry[0];
1025
+ if (methodName === "render")
1026
+ continue;
1027
+ let fn = entry[1];
1028
+ if (Array.isArray(fn)) {
1029
+ let fnHead = fn[0]?.valueOf?.() ?? fn[0];
1030
+ if (fnHead === "->" || fnHead === "=>") {
1031
+ methods.push(` ${methodName}(): void;`);
1032
+ }
1033
+ }
1034
+ }
1035
+ } else if (mHead === "render") {
1036
+ continue;
1037
+ }
1038
+ }
1039
+ lines.push(`${exp}declare class ${name} {`);
1040
+ lines.push(` constructor(props?: Record<string, any>);`);
1041
+ for (let p of props)
1042
+ lines.push(p);
1043
+ for (let m of methods)
1044
+ lines.push(m);
1045
+ lines.push(` mount(target: Element | string): ${name};`);
1046
+ lines.push(` unmount(): void;`);
1047
+ lines.push(`}`);
1048
+ }
1049
+ if (head === "program" || head === "block") {
1050
+ for (let i = 1;i < sexpr.length; i++) {
1051
+ if (Array.isArray(sexpr[i])) {
1052
+ emitComponentTypes(sexpr[i], lines, indent, indentLevel, componentVars);
1053
+ }
1054
+ }
1055
+ }
1056
+ if (head === "export" && Array.isArray(sexpr[1]) && !compNode) {
1057
+ emitComponentTypes(sexpr[1], lines, indent, indentLevel, componentVars);
1058
+ }
1059
+ }
733
1060
  function generateEnum(head, rest, context) {
734
1061
  let [name, body] = rest;
735
1062
  let enumName = name?.valueOf?.() ?? name;
@@ -913,7 +1240,8 @@ var IMPLICIT_END = new Set([
913
1240
  "LOOP",
914
1241
  "TERMINATOR",
915
1242
  "||",
916
- "&&"
1243
+ "&&",
1244
+ "PIPE"
917
1245
  ]);
918
1246
  var IMPLICIT_COMMA_BEFORE_ARROW = new Set([
919
1247
  "STRING",
@@ -1020,7 +1348,7 @@ var SHIFT = new Set(["<<", ">>", ">>>"]);
1020
1348
  var UNARY_MATH = new Set(["!", "~"]);
1021
1349
  var IDENTIFIER_RE = /^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/;
1022
1350
  var NUMBER_RE = /^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;
1023
- var OPERATOR_RE = /^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/;
1351
+ var OPERATOR_RE = /^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/;
1024
1352
  var WHITESPACE_RE = /^[^\n\S]+/;
1025
1353
  var NEWLINE_RE = /^(?:\n[^\n\S]*)+/;
1026
1354
  var COMMENT_RE = /^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;
@@ -1172,7 +1500,7 @@ class Lexer {
1172
1500
  let match = IDENTIFIER_RE.exec(this.chunk);
1173
1501
  if (!match)
1174
1502
  return 0;
1175
- let [input, id, colon] = match;
1503
+ let [, id, colon] = match;
1176
1504
  let idLen = id.length;
1177
1505
  let data = {};
1178
1506
  let tag;
@@ -1204,8 +1532,8 @@ class Lexer {
1204
1532
  this.emit("DEFAULT", id, { len: idLen });
1205
1533
  return idLen;
1206
1534
  }
1207
- if (id === "do" && /^(\s*super)(?!\(\))/.test(this.chunk.slice(3))) {
1208
- let m = /^(\s*super)(?!\(\))/.exec(this.chunk.slice(3));
1535
+ let m;
1536
+ if (id === "do" && (m = /^(\s*super)(?!\(\))/.exec(this.chunk.slice(3)))) {
1209
1537
  this.emit("SUPER", "super");
1210
1538
  this.emit("CALL_START", "(");
1211
1539
  this.emit("CALL_END", ")");
@@ -1219,11 +1547,11 @@ class Lexer {
1219
1547
  if (this.inRenderBlock && prev && prev[0] === "." && !colon) {
1220
1548
  let rest = this.chunk.slice(idLen);
1221
1549
  while (rest[0] === "-" && /^-[a-zA-Z]/.test(rest)) {
1222
- let m = /^-([a-zA-Z][\w]*)/.exec(rest);
1223
- if (!m)
1550
+ let m2 = /^-([a-zA-Z][\w]*)/.exec(rest);
1551
+ if (!m2)
1224
1552
  break;
1225
- id += "-" + m[1];
1226
- idLen += 1 + m[1].length;
1553
+ id += "-" + m2[1];
1554
+ idLen += 1 + m2[1].length;
1227
1555
  rest = this.chunk.slice(idLen);
1228
1556
  }
1229
1557
  }
@@ -1664,6 +1992,17 @@ class Lexer {
1664
1992
  let prev = this.prev();
1665
1993
  if (CODE_RE.test(val))
1666
1994
  this.tagParameters();
1995
+ if (val === "=" && prev && prev[1] === "." && !prev.spaced) {
1996
+ let target = this.tokens[this.tokens.length - 2];
1997
+ if (target && (target[0] === "IDENTIFIER" || target[0] === "PROPERTY" || target[0] === ")" || target[0] === "]")) {
1998
+ prev[0] = "=";
1999
+ prev[1] = "=";
2000
+ let targetClone = tok(target[0], target[1], { pre: 0, row: target[2], col: target[3], len: target[4] });
2001
+ let dot = tok(".", ".", { pre: 0, row: this.row, col: this.col, len: 1 });
2002
+ this.tokens.push(targetClone, dot);
2003
+ return val.length;
2004
+ }
2005
+ }
1667
2006
  if (prev && (val === "=" || COMPOUND_ASSIGN.has(val))) {
1668
2007
  if (val === "=" && (prev[1] === "||" || prev[1] === "&&" || prev[1] === "??") && !prev.spaced) {
1669
2008
  prev[0] = "COMPOUND_ASSIGN";
@@ -1684,9 +2023,16 @@ class Lexer {
1684
2023
  if (val === ";") {
1685
2024
  this.seenFor = this.seenImport = this.seenExport = false;
1686
2025
  tag = "TERMINATOR";
1687
- } else if (val === "::=")
2026
+ } else if (val === "|>")
2027
+ tag = "PIPE";
2028
+ else if (val === "::=")
1688
2029
  tag = "TYPE_ALIAS";
1689
- else if (val === "::")
2030
+ else if (val === "::" && /^[a-zA-Z_$]/.test(this.chunk[2] || "")) {
2031
+ this.emit(".", ".");
2032
+ this.emit("PROPERTY", "prototype");
2033
+ this.emit(".", ".");
2034
+ return 2;
2035
+ } else if (val === "::")
1690
2036
  tag = "TYPE_ANNOTATION";
1691
2037
  else if (val === "~=")
1692
2038
  tag = "COMPUTED_ASSIGN";
@@ -1698,7 +2044,27 @@ class Lexer {
1698
2044
  tag = "REACT_ASSIGN";
1699
2045
  else if (val === "=!")
1700
2046
  tag = "READONLY_ASSIGN";
1701
- else if (val === "*" && prev?.[0] === "EXPORT")
2047
+ else if (val === "*" && (!prev || prev[0] === "TERMINATOR" || prev[0] === "INDENT" || prev[0] === "OUTDENT") && /^[a-zA-Z_$]/.test(this.chunk[1] || "")) {
2048
+ let rest = this.chunk.slice(1);
2049
+ let m = /^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(rest);
2050
+ if (m) {
2051
+ let target = m[1], space = m[2];
2052
+ this.emit("IDENTIFIER", "Object");
2053
+ this.emit(".", ".");
2054
+ this.emit("PROPERTY", "assign");
2055
+ this.emit("CALL_START", "(");
2056
+ let parts = target.split(".");
2057
+ this.emit("IDENTIFIER", parts[0]);
2058
+ for (let i = 1;i < parts.length; i++) {
2059
+ this.emit(".", ".");
2060
+ this.emit("PROPERTY", parts[i]);
2061
+ }
2062
+ this.emit(",", ",");
2063
+ let comma = this.prev();
2064
+ comma.mergeClose = true;
2065
+ return 1 + target.length + space.length + 1;
2066
+ }
2067
+ } else if (val === "*" && prev?.[0] === "EXPORT")
1702
2068
  tag = "EXPORT_ALL";
1703
2069
  else if (MATH.has(val))
1704
2070
  tag = "MATH";
@@ -1773,6 +2139,7 @@ class Lexer {
1773
2139
  this.tagPostfixConditionals();
1774
2140
  this.addImplicitBracesAndParens();
1775
2141
  this.addImplicitCallCommas();
2142
+ this.closeMergeAssignments();
1776
2143
  return this.tokens;
1777
2144
  }
1778
2145
  removeLeadingNewlines() {
@@ -2250,6 +2617,29 @@ class Lexer {
2250
2617
  i++;
2251
2618
  }
2252
2619
  }
2620
+ closeMergeAssignments() {
2621
+ let tokens = this.tokens;
2622
+ for (let i = 0;i < tokens.length; i++) {
2623
+ if (!tokens[i].mergeClose)
2624
+ continue;
2625
+ let depth = 0;
2626
+ for (let j = i + 1;j < tokens.length; j++) {
2627
+ let tag = tokens[j][0];
2628
+ if (tag === "(" || tag === "[" || tag === "{" || tag === "CALL_START" || tag === "INDEX_START" || tag === "INDENT")
2629
+ depth++;
2630
+ if (tag === ")" || tag === "]" || tag === "}" || tag === "CALL_END" || tag === "INDEX_END" || tag === "OUTDENT")
2631
+ depth--;
2632
+ if (depth < 0 || depth === 0 && tag === "TERMINATOR") {
2633
+ tokens.splice(j, 0, gen("CALL_END", ")", tokens[j - 1]));
2634
+ break;
2635
+ }
2636
+ if (j === tokens.length - 1) {
2637
+ tokens.splice(j + 1, 0, gen("CALL_END", ")", tokens[j]));
2638
+ break;
2639
+ }
2640
+ }
2641
+ }
2642
+ }
2253
2643
  commaInImplicitCall(i) {
2254
2644
  let levels = 0;
2255
2645
  for (let j = i - 1;j >= 0; j--) {
@@ -2346,10 +2736,10 @@ class Lexer {
2346
2736
  installTypeSupport(Lexer);
2347
2737
  // src/parser.js
2348
2738
  var parserInstance = {
2349
- symbolIds: { $accept: 0, $end: 1, error: 2, Root: 3, Body: 4, Line: 5, TERMINATOR: 6, Expression: 7, ExpressionLine: 8, Statement: 9, Return: 10, STATEMENT: 11, Import: 12, Export: 13, Value: 14, Code: 15, Operation: 16, Assign: 17, ReactiveAssign: 18, ComputedAssign: 19, ReadonlyAssign: 20, ReactAssign: 21, If: 22, Try: 23, While: 24, For: 25, Switch: 26, Class: 27, Component: 28, Render: 29, Throw: 30, Yield: 31, Def: 32, Enum: 33, CodeLine: 34, OperationLine: 35, Assignable: 36, Literal: 37, Parenthetical: 38, Range: 39, Invocation: 40, DoIife: 41, This: 42, Super: 43, MetaProperty: 44, AlphaNumeric: 45, JS: 46, Regex: 47, UNDEFINED: 48, NULL: 49, BOOL: 50, INFINITY: 51, NAN: 52, NUMBER: 53, String: 54, Identifier: 55, IDENTIFIER: 56, Property: 57, PROPERTY: 58, STRING: 59, STRING_START: 60, Interpolations: 61, STRING_END: 62, InterpolationChunk: 63, INTERPOLATION_START: 64, INTERPOLATION_END: 65, INDENT: 66, OUTDENT: 67, REGEX: 68, REGEX_START: 69, REGEX_END: 70, RegexWithIndex: 71, ",": 72, "=": 73, REACTIVE_ASSIGN: 74, COMPUTED_ASSIGN: 75, READONLY_ASSIGN: 76, REACT_ASSIGN: 77, SimpleAssignable: 78, Array: 79, Object: 80, ThisProperty: 81, ".": 82, "?.": 83, INDEX_START: 84, INDEX_END: 85, Slice: 86, ES6_OPTIONAL_INDEX: 87, "{": 88, ObjAssignable: 89, ":": 90, FOR: 91, ForVariables: 92, FOROF: 93, OptComma: 94, "}": 95, WHEN: 96, OWN: 97, AssignList: 98, AssignObj: 99, ObjRestValue: 100, SimpleObjAssignable: 101, "[": 102, "]": 103, "@": 104, "...": 105, ObjSpreadExpr: 106, SUPER: 107, Arguments: 108, DYNAMIC_IMPORT: 109, Elisions: 110, ArgElisionList: 111, OptElisions: 112, ArgElision: 113, Arg: 114, Elision: 115, RangeDots: 116, "..": 117, DEF: 118, CALL_START: 119, ParamList: 120, CALL_END: 121, Block: 122, PARAM_START: 123, PARAM_END: 124, FuncGlyph: 125, "->": 126, "=>": 127, Param: 128, ParamVar: 129, Splat: 130, ES6_OPTIONAL_CALL: 131, ArgList: 132, SimpleArgs: 133, THIS: 134, NEW_TARGET: 135, IMPORT_META: 136, "(": 137, ")": 138, RETURN: 139, THROW: 140, YIELD: 141, FROM: 142, IfBlock: 143, IF: 144, ELSE: 145, UnlessBlock: 146, UNLESS: 147, POST_IF: 148, POST_UNLESS: 149, TRY: 150, Catch: 151, FINALLY: 152, CATCH: 153, SWITCH: 154, Whens: 155, When: 156, LEADING_WHEN: 157, WhileSource: 158, WHILE: 159, UNTIL: 160, Loop: 161, LOOP: 162, FORIN: 163, BY: 164, FORAS: 165, AWAIT: 166, FORASAWAIT: 167, ForValue: 168, CLASS: 169, EXTENDS: 170, ENUM: 171, COMPONENT: 172, ComponentBody: 173, ComponentLine: 174, RENDER: 175, IMPORT: 176, ImportDefaultSpecifier: 177, ImportNamespaceSpecifier: 178, ImportSpecifierList: 179, ImportSpecifier: 180, AS: 181, DEFAULT: 182, IMPORT_ALL: 183, EXPORT: 184, ExportSpecifierList: 185, EXPORT_ALL: 186, ExportSpecifier: 187, UNARY: 188, DO: 189, DO_IIFE: 190, UNARY_MATH: 191, "-": 192, "+": 193, "?": 194, "--": 195, "++": 196, MATH: 197, "**": 198, SHIFT: 199, COMPARE: 200, "&": 201, "^": 202, "|": 203, "||": 204, "??": 205, "&&": 206, "!?": 207, RELATION: 208, "SPACE?": 209, COMPOUND_ASSIGN: 210 },
2350
- tokenNames: { 2: "error", 6: "TERMINATOR", 11: "STATEMENT", 46: "JS", 48: "UNDEFINED", 49: "NULL", 50: "BOOL", 51: "INFINITY", 52: "NAN", 53: "NUMBER", 56: "IDENTIFIER", 58: "PROPERTY", 59: "STRING", 60: "STRING_START", 62: "STRING_END", 64: "INTERPOLATION_START", 65: "INTERPOLATION_END", 66: "INDENT", 67: "OUTDENT", 68: "REGEX", 69: "REGEX_START", 70: "REGEX_END", 72: ",", 73: "=", 74: "REACTIVE_ASSIGN", 75: "COMPUTED_ASSIGN", 76: "READONLY_ASSIGN", 77: "REACT_ASSIGN", 82: ".", 83: "?.", 84: "INDEX_START", 85: "INDEX_END", 87: "ES6_OPTIONAL_INDEX", 88: "{", 90: ":", 91: "FOR", 93: "FOROF", 95: "}", 96: "WHEN", 97: "OWN", 102: "[", 103: "]", 104: "@", 105: "...", 107: "SUPER", 109: "DYNAMIC_IMPORT", 117: "..", 118: "DEF", 119: "CALL_START", 121: "CALL_END", 123: "PARAM_START", 124: "PARAM_END", 126: "->", 127: "=>", 131: "ES6_OPTIONAL_CALL", 134: "THIS", 135: "NEW_TARGET", 136: "IMPORT_META", 137: "(", 138: ")", 139: "RETURN", 140: "THROW", 141: "YIELD", 142: "FROM", 144: "IF", 145: "ELSE", 147: "UNLESS", 148: "POST_IF", 149: "POST_UNLESS", 150: "TRY", 152: "FINALLY", 153: "CATCH", 154: "SWITCH", 157: "LEADING_WHEN", 159: "WHILE", 160: "UNTIL", 162: "LOOP", 163: "FORIN", 164: "BY", 165: "FORAS", 166: "AWAIT", 167: "FORASAWAIT", 169: "CLASS", 170: "EXTENDS", 171: "ENUM", 172: "COMPONENT", 175: "RENDER", 176: "IMPORT", 181: "AS", 182: "DEFAULT", 183: "IMPORT_ALL", 184: "EXPORT", 186: "EXPORT_ALL", 188: "UNARY", 189: "DO", 190: "DO_IIFE", 191: "UNARY_MATH", 192: "-", 193: "+", 194: "?", 195: "--", 196: "++", 197: "MATH", 198: "**", 199: "SHIFT", 200: "COMPARE", 201: "&", 202: "^", 203: "|", 204: "||", 205: "??", 206: "&&", 207: "!?", 208: "RELATION", 209: "SPACE?", 210: "COMPOUND_ASSIGN" },
2739
+ symbolIds: { $accept: 0, $end: 1, error: 2, Root: 3, Body: 4, Line: 5, TERMINATOR: 6, Expression: 7, ExpressionLine: 8, Statement: 9, Return: 10, STATEMENT: 11, Import: 12, Export: 13, Value: 14, Code: 15, Operation: 16, Assign: 17, ReactiveAssign: 18, ComputedAssign: 19, ReadonlyAssign: 20, ReactAssign: 21, If: 22, Try: 23, While: 24, For: 25, Switch: 26, Class: 27, Component: 28, Render: 29, Throw: 30, Yield: 31, Def: 32, Enum: 33, CodeLine: 34, OperationLine: 35, Assignable: 36, Literal: 37, Parenthetical: 38, Range: 39, Invocation: 40, DoIife: 41, This: 42, Super: 43, MetaProperty: 44, AlphaNumeric: 45, JS: 46, Regex: 47, UNDEFINED: 48, NULL: 49, BOOL: 50, INFINITY: 51, NAN: 52, NUMBER: 53, String: 54, Identifier: 55, IDENTIFIER: 56, Property: 57, PROPERTY: 58, STRING: 59, STRING_START: 60, Interpolations: 61, STRING_END: 62, InterpolationChunk: 63, INTERPOLATION_START: 64, INTERPOLATION_END: 65, INDENT: 66, OUTDENT: 67, REGEX: 68, REGEX_START: 69, REGEX_END: 70, RegexWithIndex: 71, ",": 72, "=": 73, REACTIVE_ASSIGN: 74, COMPUTED_ASSIGN: 75, READONLY_ASSIGN: 76, REACT_ASSIGN: 77, SimpleAssignable: 78, Array: 79, Object: 80, ThisProperty: 81, ".": 82, "?.": 83, INDEX_START: 84, INDEX_END: 85, Slice: 86, ES6_OPTIONAL_INDEX: 87, "{": 88, ObjAssignable: 89, ":": 90, FOR: 91, ForVariables: 92, FOROF: 93, OptComma: 94, "}": 95, WHEN: 96, OWN: 97, AssignList: 98, AssignObj: 99, ObjRestValue: 100, SimpleObjAssignable: 101, "[": 102, "]": 103, "@": 104, "...": 105, ObjSpreadExpr: 106, SUPER: 107, Arguments: 108, DYNAMIC_IMPORT: 109, Elisions: 110, ArgElisionList: 111, OptElisions: 112, ArgElision: 113, Arg: 114, Elision: 115, RangeDots: 116, "..": 117, DEF: 118, CALL_START: 119, ParamList: 120, CALL_END: 121, Block: 122, PARAM_START: 123, PARAM_END: 124, FuncGlyph: 125, "->": 126, "=>": 127, Param: 128, ParamVar: 129, Splat: 130, ES6_OPTIONAL_CALL: 131, ArgList: 132, SimpleArgs: 133, THIS: 134, NEW_TARGET: 135, IMPORT_META: 136, "(": 137, ")": 138, RETURN: 139, THROW: 140, YIELD: 141, FROM: 142, IfBlock: 143, IF: 144, ELSE: 145, UnlessBlock: 146, UNLESS: 147, POST_IF: 148, POST_UNLESS: 149, TRY: 150, Catch: 151, FINALLY: 152, CATCH: 153, SWITCH: 154, Whens: 155, When: 156, LEADING_WHEN: 157, WhileSource: 158, WHILE: 159, UNTIL: 160, Loop: 161, LOOP: 162, FORIN: 163, BY: 164, FORAS: 165, AWAIT: 166, FORASAWAIT: 167, ForValue: 168, CLASS: 169, EXTENDS: 170, ENUM: 171, COMPONENT: 172, ComponentBody: 173, ComponentLine: 174, RENDER: 175, IMPORT: 176, ImportDefaultSpecifier: 177, ImportNamespaceSpecifier: 178, ImportSpecifierList: 179, ImportSpecifier: 180, AS: 181, DEFAULT: 182, IMPORT_ALL: 183, EXPORT: 184, ExportSpecifierList: 185, EXPORT_ALL: 186, ExportSpecifier: 187, UNARY: 188, DO: 189, DO_IIFE: 190, UNARY_MATH: 191, "-": 192, "+": 193, "?": 194, "--": 195, "++": 196, MATH: 197, "**": 198, SHIFT: 199, COMPARE: 200, "&": 201, "^": 202, "|": 203, "||": 204, "??": 205, "&&": 206, "!?": 207, PIPE: 208, RELATION: 209, "SPACE?": 210, COMPOUND_ASSIGN: 211 },
2740
+ tokenNames: { 2: "error", 6: "TERMINATOR", 11: "STATEMENT", 46: "JS", 48: "UNDEFINED", 49: "NULL", 50: "BOOL", 51: "INFINITY", 52: "NAN", 53: "NUMBER", 56: "IDENTIFIER", 58: "PROPERTY", 59: "STRING", 60: "STRING_START", 62: "STRING_END", 64: "INTERPOLATION_START", 65: "INTERPOLATION_END", 66: "INDENT", 67: "OUTDENT", 68: "REGEX", 69: "REGEX_START", 70: "REGEX_END", 72: ",", 73: "=", 74: "REACTIVE_ASSIGN", 75: "COMPUTED_ASSIGN", 76: "READONLY_ASSIGN", 77: "REACT_ASSIGN", 82: ".", 83: "?.", 84: "INDEX_START", 85: "INDEX_END", 87: "ES6_OPTIONAL_INDEX", 88: "{", 90: ":", 91: "FOR", 93: "FOROF", 95: "}", 96: "WHEN", 97: "OWN", 102: "[", 103: "]", 104: "@", 105: "...", 107: "SUPER", 109: "DYNAMIC_IMPORT", 117: "..", 118: "DEF", 119: "CALL_START", 121: "CALL_END", 123: "PARAM_START", 124: "PARAM_END", 126: "->", 127: "=>", 131: "ES6_OPTIONAL_CALL", 134: "THIS", 135: "NEW_TARGET", 136: "IMPORT_META", 137: "(", 138: ")", 139: "RETURN", 140: "THROW", 141: "YIELD", 142: "FROM", 144: "IF", 145: "ELSE", 147: "UNLESS", 148: "POST_IF", 149: "POST_UNLESS", 150: "TRY", 152: "FINALLY", 153: "CATCH", 154: "SWITCH", 157: "LEADING_WHEN", 159: "WHILE", 160: "UNTIL", 162: "LOOP", 163: "FORIN", 164: "BY", 165: "FORAS", 166: "AWAIT", 167: "FORASAWAIT", 169: "CLASS", 170: "EXTENDS", 171: "ENUM", 172: "COMPONENT", 175: "RENDER", 176: "IMPORT", 181: "AS", 182: "DEFAULT", 183: "IMPORT_ALL", 184: "EXPORT", 186: "EXPORT_ALL", 188: "UNARY", 189: "DO", 190: "DO_IIFE", 191: "UNARY_MATH", 192: "-", 193: "+", 194: "?", 195: "--", 196: "++", 197: "MATH", 198: "**", 199: "SHIFT", 200: "COMPARE", 201: "&", 202: "^", 203: "|", 204: "||", 205: "??", 206: "&&", 207: "!?", 208: "PIPE", 209: "RELATION", 210: "SPACE?", 211: "COMPOUND_ASSIGN" },
2351
2741
  parseTable: (() => {
2352
- let d = [107, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -1, 1, 2, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 1, 1, 0, 2, 1, 5, -2, 107, 5, 1, 5, 59, 2, 71, -3, -3, -3, -3, -3, 30, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -6, -6, -6, -6, -6, -6, 126, -6, -6, -6, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -7, -7, -7, -7, -7, -7, -7, -7, -7, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 9, 1, 1, -8, -8, -8, -8, -8, -8, -8, -8, -8, 127, 128, 129, 96, 97, 52, 1, 5, 48, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -13, -13, 131, 105, 106, -13, -13, -13, -13, 134, 135, 136, -13, 137, -13, -13, -13, -13, -13, -13, -13, 132, -13, 138, -13, -13, 133, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 130, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 44, 1, 5, 59, 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, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -14, -14, -14, -14, -14, -14, 139, 140, 141, -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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -33, -33, -33, -33, -33, -33, -33, -33, -33, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -34, -34, -34, -34, -34, -34, -34, -34, -34, 13, 1, 5, 59, 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, 59, 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, 59, 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, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, 142, 143, 144, 145, 146, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 50, 1, 5, 53, 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, 25, 1, 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, -36, 50, 1, 5, 53, 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, 25, 1, 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, -37, 50, 1, 5, 53, 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, 25, 1, 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, -38, 50, 1, 5, 53, 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, 25, 1, 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, -39, 50, 1, 5, 53, 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, 25, 1, 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, -40, 50, 1, 5, 53, 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, 25, 1, 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, -41, 50, 1, 5, 53, 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, 25, 1, 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, -42, 50, 1, 5, 53, 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, 25, 1, 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, -43, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 151, 104, -173, -173, -173, 153, 154, 152, 99, 156, 155, 150, 147, -173, -173, 148, 149, 106, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 158, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 159, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 157, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 160, 161, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 163, 164, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 165, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 171, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 172, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 173, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 174, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 176, 177, 178, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 175, 72, 73, 93, 99, 83, 87, 84, 85, 166, 167, 90, 91, 86, 88, 89, 82, 170, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 176, 177, 178, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 179, 72, 73, 93, 99, 83, 87, 84, 85, 166, 167, 90, 91, 86, 88, 89, 82, 170, 58, 1, 5, 53, 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, 25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 180, 181, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 182, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 184, 183, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 185, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 186, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, 2, 66, 56, 159, 187, 2, 66, 56, 159, 188, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 192, 151, 104, 153, 154, 152, 99, 189, 190, 83, 155, 194, 191, 193, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 195, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 196, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 88, 1, 5, 8, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 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, 20, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -302, -302, 176, 177, 178, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -302, 159, -302, 102, 103, -302, 199, 72, 73, 93, -302, 99, -302, -302, -302, -302, -302, 83, -302, 87, -302, 84, 85, -302, -302, 197, 166, -302, 167, 90, 91, 86, 88, 89, 82, -302, -302, -302, -302, -302, -302, -302, -302, -302, 198, 170, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1, 66, 200, 2, 66, 56, 159, 201, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 202, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 203, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 137, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -224, -224, 204, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -224, 205, -224, 102, 103, -224, 53, 52, 72, 73, 93, -224, 99, -224, -224, -224, -224, -224, 83, -224, 87, -224, 84, 85, -224, 66, -224, 166, -224, 167, 90, 91, 86, 88, 89, 82, -224, 69, 64, 65, 206, 54, 94, 55, 95, -224, -224, 56, 60, 57, -224, -224, 58, 98, -224, -224, -224, 49, -224, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, 2, 55, 1, 207, 104, 2, 55, 1, 208, 104, 6, 15, 19, 89, 2, 1, 1, 210, 209, 42, 43, 90, 91, 136, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -221, -221, 211, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -221, 212, -221, 102, 103, -221, 53, 52, 72, 73, 93, -221, 99, -221, -221, -221, -221, -221, 83, -221, 87, -221, 84, 85, -221, 66, -221, 166, -221, 167, 90, 91, 86, 88, 89, 82, -221, 69, 64, 65, 54, 94, 55, 95, -221, -221, 56, 60, 57, -221, -221, 58, 98, -221, -221, -221, 49, -221, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, 9, 54, 1, 1, 3, 1, 28, 89, 1, 5, 213, 217, 104, 105, 106, 216, 214, 215, 218, 13, 27, 1, 4, 1, 22, 1, 32, 30, 51, 2, 1, 10, 4, 220, 221, 222, 223, 224, 104, 219, 66, 61, 67, 62, 225, 226, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 50, 1, 5, 53, 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, 25, 1, 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, -44, 50, 1, 5, 53, 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, 25, 1, 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, -45, 50, 1, 5, 53, 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, 25, 1, 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, -46, 50, 1, 5, 53, 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, 25, 1, 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, -47, 50, 1, 5, 53, 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, 25, 1, 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, -48, 50, 1, 5, 53, 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, 25, 1, 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, 50, 1, 5, 53, 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, 25, 1, 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, -50, 50, 1, 5, 53, 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, 25, 1, 1, 3, 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, 106, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 227, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 228, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 113, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 229, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 230, 87, 240, 84, 85, 231, 232, 234, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 82, 2, 24, 11, 242, 243, 241, 138, 2, 108, 11, 244, 138, 50, 1, 5, 53, 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, 25, 1, 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, -205, 52, 1, 5, 51, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -206, -206, 245, 246, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, 1, 82, 247, 1, 82, 248, 54, 11, 35, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, 54, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 249, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 250, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 251, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 252, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 254, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 159, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 253, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, -109, 260, 100, 101, 262, 104, 263, 246, 105, 106, -109, -109, -109, 264, 255, -109, 256, 261, 265, 257, 258, 259, 266, 50, 1, 5, 53, 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, 25, 1, 1, 3, 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, 50, 1, 5, 53, 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, 25, 1, 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, 50, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 176, 177, 178, 34, 35, 36, 267, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 268, 72, 73, 93, 99, 83, 87, 84, 85, 166, 167, 90, 91, 86, 88, 89, 82, 170, 61, 1, 5, 53, 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, 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 53, 1, 5, 53, 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, 25, 1, 1, 3, 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, 6, 54, 5, 1, 1, 2, 1, 272, 105, 106, 269, 270, 271, 109, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 2, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -5, 273, -5, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -5, -5, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, -5, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 274, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 275, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 276, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 277, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 278, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 279, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 280, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 281, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 282, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 285, 162, 283, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 284, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 288, 162, 286, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 287, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 291, 162, 289, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 290, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 292, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 293, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 294, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 295, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 296, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 300, 151, 104, 153, 154, 152, 99, 297, 298, 83, 155, 194, 299, 193, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 301, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 302, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 51, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, 51, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, 2, 108, 11, 303, 138, 2, 57, 1, 304, 246, 2, 57, 1, 305, 246, 106, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 2, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 306, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 311, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 307, 102, 103, 309, 53, 52, 72, 73, 93, 308, 99, 59, 83, 87, 313, 84, 85, 310, 312, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 84, 314, 109, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 318, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 317, 66, 315, 42, 43, 90, 91, 239, 316, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 2, 57, 1, 320, 246, 2, 57, 1, 321, 246, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 322, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 323, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 325, 324, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 326, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 328, 327, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 329, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 331, 330, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 332, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 334, 333, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 335, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 337, 336, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 338, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 22, 1, 8, 18, 3, -217, -217, -217, 340, 341, -217, -217, -217, 339, 6, 6, 60, 1, 5, 49, 3, -174, -174, -174, -174, -174, -174, 7, 6, 60, 1, 5, 1, 48, 3, -178, -178, -178, -178, 342, -178, -178, 15, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 17, 3, 5, -181, 151, 104, -181, -181, -181, 153, 154, 152, 99, 156, 155, -181, -181, 343, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 2, 57, 1, 245, 246, 113, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 230, 87, 240, 84, 85, 231, 232, 234, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 50, 1, 5, 53, 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, 25, 1, 1, 3, 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, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -170, -170, -170, -170, -170, -170, -170, -170, -170, 106, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 345, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 344, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, 118, -364, 120, -364, -364, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -361, -361, -361, -361, -361, -361, -361, -361, -361, 5, 148, 1, 9, 1, 1, 127, 128, 129, 96, 97, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, 118, -365, 120, -365, -365, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -362, -362, -362, -362, -362, -362, -362, -362, -362, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -366, -366, -366, -366, -366, -366, -366, -366, -366, 111, -366, -366, -366, -366, -366, -366, 118, -366, 120, -366, -366, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 151, 104, -173, -173, -173, 153, 154, 152, 99, 156, 155, 150, 346, -173, -173, 148, 149, 2, 66, 56, 159, 157, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 160, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 163, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 5, 15, 108, 2, 1, 1, 210, 166, 167, 90, 91, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -367, -367, -367, -367, -367, -367, -367, -367, -367, 111, -367, -367, -367, -367, -367, -367, 118, -367, 120, -367, -367, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -368, -368, -368, -368, -368, -368, -368, -368, -368, 111, -368, -368, -368, -368, -368, -368, 118, -368, 120, -368, -368, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 118, -370, 120, -370, -370, 2, 80, 8, 347, 99, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -372, -372, -86, -86, -372, -372, -372, -372, -86, -86, -86, -86, -86, -86, -86, -86, -372, -86, -372, -372, -372, -372, -372, -372, -372, -372, -86, -372, -372, -86, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -86, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, 10, 54, 5, 1, 22, 1, 1, 3, 21, 11, 12, 131, 105, 106, 134, 135, 136, 137, 132, 138, 133, 3, 82, 1, 1, 139, 140, 141, 50, 1, 5, 53, 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, 25, 1, 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, -35, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -373, -373, -86, -86, -373, -373, -373, -373, -86, -86, -86, -86, -86, -86, -86, -86, -373, -86, -373, -373, -373, -373, -373, -373, -373, -373, -86, -373, -373, -86, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -86, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 350, 348, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 349, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -83, -83, -83, -83, -83, -83, -83, -83, 126, -83, -83, -83, -83, -83, -83, -83, -83, -83, 123, 124, 125, 96, 97, -83, -83, -83, -83, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 351, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 352, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 66, 56, 22, 159, 353, 354, 44, 1, 5, 59, 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, 25, 1, 4, 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, 355, 356, 357, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 4, 93, 70, 2, 2, 359, 358, 360, 361, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 362, 156, 155, 194, 193, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 363, 156, 155, 194, 193, 3, 66, 56, 42, 159, 364, 365, 5, 72, 21, 70, 2, 2, 366, -300, -300, -300, -300, 6, 72, 1, 20, 70, 2, 2, -298, 367, -298, -298, -298, -298, 22, 66, 25, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 368, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 3, 155, 1, 1, 369, 370, 371, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 372, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 57, 1, 5, 53, 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, 22, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -306, -306, -86, -86, -306, 159, -306, -306, -86, -86, -86, -86, -86, -86, -86, -86, -306, -86, -306, -306, -306, -306, -306, -306, -306, -306, -86, -306, 373, -306, -86, -306, -306, -306, -306, -306, -306, -306, -306, -306, 374, -306, -306, -86, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 105, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 1, 1, 1, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 377, 378, 379, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 375, 376, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -222, -222, -222, -222, -222, -222, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 80, 8, 380, 99, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -225, -225, -225, -225, -225, -225, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 80, 8, 381, 99, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 382, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 66, 53, 3, 159, 383, 384, 2, 66, 56, 159, 385, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -363, -363, -363, -363, -363, -363, -363, -363, -363, 50, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -219, -219, -219, -219, -219, -219, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 80, 8, 386, 99, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, 2, 72, 70, 388, 387, 1, 142, 389, 7, 55, 1, 10, 29, 84, 1, 2, 394, 104, 393, 390, 391, 392, 395, 2, 72, 70, -335, -335, 1, 181, 396, 7, 55, 1, 10, 29, 87, 3, 2, 401, 104, 400, 397, 402, 398, 399, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 1, 73, 403, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 404, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 405, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 142, 406, 2, 6, 132, 107, 407, 105, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 408, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 30, 6, 60, 1, 5, 19, 12, 2, 11, 1, 4, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, 126, -199, 313, 409, 312, -199, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 55, 1, 5, 53, 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, 25, 1, 1, 3, 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, 109, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 410, 87, 240, 84, 85, 412, 411, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 414, 415, -217, -217, 413, -217, 59, 6, 5, 35, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 416, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, 5, 6, 60, 1, 5, 31, -145, -145, -145, -145, -145, 112, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 418, 417, 234, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, 5, 6, 60, 1, 5, 31, -150, -150, -150, -150, -150, 6, 6, 60, 1, 5, 31, 18, -200, -200, -200, -200, -200, -200, 6, 6, 60, 1, 5, 31, 18, -201, -201, -201, -201, -201, -201, 106, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -202, 419, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -202, -202, 102, 103, -202, 53, 52, 72, 73, 93, 99, 59, 83, -202, 87, 84, 85, 66, -202, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 51, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, 2, 57, 1, 420, 246, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 421, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 422, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 51, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, 59, 1, 5, 53, 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, 22, 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, 2, 57, 1, 423, 246, 2, 57, 1, 424, 246, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 425, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 426, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -254, -254, -254, -254, -254, -254, -254, -254, 126, -254, -254, 427, -254, -254, -254, -254, -254, -254, -254, 124, 125, 96, 97, -254, -254, -254, -254, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -256, -256, -256, -256, -256, -256, -256, -256, 126, -256, -256, 428, -256, -256, -256, -256, -256, -256, -256, 124, 125, 96, 97, -256, -256, -256, -256, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -263, -263, -263, -263, -263, -263, -263, -263, 126, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, 124, 125, 96, 97, -263, -263, -263, -263, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 6, 6, 60, 1, 5, 18, 5, -114, -114, -114, -114, 429, -114, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 431, 430, -217, -217, -217, 7, 6, 60, 1, 5, 1, 17, 5, -123, -123, -123, -123, 432, -123, -123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 433, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 57, 1, 44, 245, 246, 434, 6, 6, 60, 1, 5, 18, 5, -126, -126, -126, -126, -126, -126, 5, 6, 60, 1, 5, 23, -110, -110, -110, -110, -110, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, 5, 6, 60, 1, 5, 23, -115, -115, -115, -115, -115, 17, 38, 4, 1, 12, 1, 1, 1, 22, 1, 7, 13, 3, 2, 1, 2, 25, 3, 438, 440, 439, 262, 104, 263, 246, 437, 264, 99, 435, 87, 436, 441, 442, 86, 82, 51, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, -39, -39, 443, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 6, 54, 5, 1, 2, 1, 1, 272, 105, 106, 444, 445, 271, 4, 59, 1, 2, 2, -58, -58, -58, -58, 107, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 446, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 448, 447, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 59, 1, 2, 2, -63, -63, -63, -63, 5, 1, 5, 59, 2, 71, -4, -4, -4, -4, -4, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -376, -376, -376, -376, -376, -376, -376, -376, 110, 111, -376, -376, -376, -376, -376, -376, 118, -376, 120, -376, -376, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -377, -377, -377, -377, -377, -377, -377, -377, 110, 111, -377, -377, -377, -377, -377, -377, 118, -377, 120, -377, -377, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -378, -378, -378, -378, -378, -378, -378, -378, -378, 111, -378, -378, -378, -378, -378, -378, 118, -378, 120, -378, -378, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -379, -379, -379, -379, -379, -379, -379, -379, -379, 111, -379, -379, -379, -379, -379, -379, 118, -379, 120, -379, -379, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -380, -380, -380, -380, -380, -380, 109, 108, 110, 111, -380, -380, -380, -380, -380, -380, 118, -380, 120, -380, -380, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -381, -381, -381, -381, -381, -381, 109, 108, 110, 111, 112, -381, -381, -381, -381, -381, 118, -381, 120, 121, -381, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -382, -382, -382, -382, -382, -382, 109, 108, 110, 111, 112, 113, -382, -382, -382, -382, 118, -382, 120, 121, -382, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -383, -383, -383, -383, -383, -383, 109, 108, 110, 111, 112, 113, 114, -383, -383, -383, 118, -383, 120, 121, -383, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -384, -384, -384, -384, -384, -384, 109, 108, 110, 111, 112, 113, 114, 115, -384, -384, 118, -384, 120, 121, -384, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -392, -392, -392, -392, -392, -392, 109, 108, 110, 111, 112, 113, 114, 115, 116, -392, 118, 119, 120, 121, -392, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -393, -393, -393, -393, -393, -393, -393, -393, 126, -393, -393, -393, -393, -393, -393, -393, -393, -393, 123, 124, 125, 96, 97, -393, -393, -393, -393, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -391, -391, -391, -391, -391, -391, 109, 108, 110, 111, 112, 113, 114, 115, 116, -391, 118, -391, 120, 121, -391, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -394, -394, -394, -394, -394, -394, -394, -394, 126, -394, -394, -394, -394, -394, -394, -394, -394, -394, 123, 124, 125, 96, 97, -394, -394, -394, -394, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, 124, 125, -395, -395, -395, -395, -395, -395, 109, 108, 110, 111, 112, -395, -395, -395, -395, -395, 118, -395, 120, -395, -395, 22, 90, 1, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 449, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -236, -236, -236, -236, -236, -236, -236, -236, 126, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, 124, 125, 96, 97, -236, -236, -236, -236, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -238, -238, -238, -238, -238, -238, -238, -238, 126, -238, -238, -238, -238, -238, -238, -238, -238, -238, 123, 124, 125, 96, 97, -238, -238, -238, -238, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 4, 93, 70, 2, 2, 451, 450, 452, 453, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 454, 156, 155, 194, 193, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 455, 156, 155, 194, 193, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 456, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -235, -235, -235, -235, -235, -235, -235, -235, 126, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, 124, 125, 96, 97, -235, -235, -235, -235, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -237, -237, -237, -237, -237, -237, -237, -237, 126, -237, -237, -237, -237, -237, -237, -237, -237, -237, 123, 124, 125, 96, 97, -237, -237, -237, -237, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 51, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 25, 85, 6, 14, 11, 1, 31, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 457, 126, 313, 458, 312, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 104, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 459, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 460, 99, 59, 83, 87, 313, 84, 85, 310, 312, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 85, 461, 1, 85, 462, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 463, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -164, 102, 103, 53, 52, 72, 73, 93, -164, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 50, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, 464, -46, -46, -46, -67, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 55, 11, 35, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, 55, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 465, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 466, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 51, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 468, 467, -217, -217, -217, 5, 6, 60, 1, 5, 49, -194, -194, -194, -194, -194, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 318, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 317, 66, 42, 43, 90, 91, 239, 469, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 27, 6, 60, 1, 5, 19, 12, 18, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, 126, -199, -199, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 470, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 471, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -68, -68, -68, -68, -68, -68, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 472, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 473, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -71, -71, -71, -71, -71, -71, -71, -71, 126, -71, -71, -71, -71, -71, -71, -71, -71, -71, 123, 124, 125, 96, 97, -71, -71, -71, -71, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 474, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 475, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -74, -74, -74, -74, -74, -74, -74, -74, 126, -74, -74, -74, -74, -74, -74, -74, -74, -74, 123, 124, 125, 96, 97, -74, -74, -74, -74, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 476, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 477, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -77, -77, -77, -77, -77, -77, -77, -77, 126, -77, -77, -77, -77, -77, -77, -77, -77, -77, 123, 124, 125, 96, 97, -77, -77, -77, -77, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 478, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 479, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -80, -80, -80, -80, -80, -80, -80, -80, 126, -80, -80, -80, -80, -80, -80, -80, -80, -80, 123, 124, 125, 96, 97, -80, -80, -80, -80, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 480, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 481, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 125, 1, 1, 482, 90, 91, 17, 6, 49, 1, 10, 1, 12, 1, 1, 7, 7, 7, 1, 1, 1, 16, 7, 1, -218, 151, 104, -218, -218, 153, 154, 152, 99, -218, 156, -218, 155, 150, -218, 483, 149, 2, 6, 60, 484, 485, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 486, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 49, 3, -180, -180, -180, -180, -180, -180, 54, 1, 5, 53, 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, 25, 1, 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, -213, -213, -213, -213, -213, 2, 6, 61, 107, 487, 9, 6, 60, 1, 5, 22, 1, 8, 18, 3, -217, -217, -217, 340, 341, -217, -217, -217, 488, 1, 67, 489, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, 124, 125, -397, -397, -397, -397, -397, -397, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 490, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 491, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, -84, -84, -84, -84, 126, -84, -84, -84, -84, -84, -84, -84, -84, -84, 123, 124, 125, 96, 97, -84, -84, -84, -84, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 492, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 493, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 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, 494, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, 2, 66, 56, 159, 495, 6, 55, 1, 10, 14, 8, 34, 496, 104, 159, 497, 99, 498, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 499, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 500, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 501, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 502, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 93, 503, 1, 165, 504, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 505, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 10, 55, 1, 23, 1, 1, 7, 14, 2, 25, 39, 151, 104, 153, 154, 152, 99, 156, 155, 194, 506, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 507, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 155, 1, 1, 508, 370, 371, 4, 67, 78, 11, 1, 509, 510, 511, 371, 3, 67, 78, 12, -250, -250, -250, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 513, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 512, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 43, 1, 5, 59, 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, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -304, -304, -304, 159, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 514, -304, -304, -304, 124, 125, -304, -304, -304, -304, -304, -304, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 515, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 2, 6, 61, 517, 516, 2, 6, 61, -312, -312, 23, 6, 61, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -315, -315, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 6, 61, -316, -316, 7, 6, 61, 81, 1, 9, 1, 1, -317, -317, 127, 128, 129, 96, 97, 1, 67, 518, 1, 67, 519, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, 124, 125, -227, -227, -227, -227, -227, -227, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 151, 104, -173, -173, -173, 153, 154, 152, 99, 156, 155, 150, 520, -173, -173, 148, 149, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 1, 67, 521, 3, 54, 5, 1, 522, 105, 106, 3, 88, 90, 5, 524, 523, 218, 3, 54, 5, 1, 525, 105, 106, 1, 142, 526, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 528, 527, -217, -217, -217, 5, 6, 60, 1, 5, 23, -326, -326, -326, -326, -326, 6, 55, 1, 10, 113, 1, 2, 394, 104, 393, 529, 392, 395, 6, 6, 60, 1, 5, 23, 86, -331, -331, -331, -331, -331, 530, 6, 6, 60, 1, 5, 23, 86, -333, -333, -333, -333, -333, 531, 2, 55, 1, 532, 104, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 4, 6, 1, 10, 1, -337, -337, -337, -337, -337, -337, -337, -337, -337, 533, -337, -337, -337, -337, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 535, 534, -217, -217, -217, 5, 6, 60, 1, 5, 23, -351, -351, -351, -351, -351, 6, 55, 1, 10, 116, 3, 2, 401, 104, 400, 402, 536, 399, 6, 6, 60, 1, 5, 23, 86, -356, -356, -356, -356, -356, 537, 6, 6, 60, 1, 5, 23, 86, -359, -359, -359, -359, -359, 538, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 540, 539, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 541, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 30, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, -346, 126, -346, -346, -346, -346, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 80, 8, 542, 99, 3, 54, 5, 1, 543, 105, 106, 50, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, 2, 6, 61, 107, 544, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 545, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 55, 1, 5, 53, 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, 25, 1, 1, 3, 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, 59, 6, 5, 35, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 416, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, 5, 6, 60, 1, 5, 31, -151, -151, -151, -151, -151, 2, 66, 37, 547, 546, 116, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -218, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -218, -218, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, -218, 83, -218, 87, 240, 84, 85, 549, 548, 237, 233, 66, -218, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 6, 60, 1, 36, 550, -152, -152, -152, 59, 6, 5, 35, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 414, 415, -217, -217, 551, -217, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 412, 411, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 27, 6, 60, 1, 5, 19, 12, 18, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, 126, -186, -186, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 50, 1, 5, 53, 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, 25, 1, 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, -208, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 552, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 553, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 50, 1, 5, 53, 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, 25, 1, 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, 50, 1, 5, 53, 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, 25, 1, 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, -212, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, 554, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 555, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 556, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 557, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 558, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 6, 60, 29, 560, 561, 559, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 14, 8, 6, 4, 1, 1, 1, 1, 1, 1, 16, -218, 260, 100, 101, 262, 104, 263, 246, 105, 106, -218, -218, 264, 563, -218, 562, 265, 257, 258, -218, 259, 266, -218, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 564, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 565, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 22, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 126, 566, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 567, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 10, 6, 60, 1, 5, 10, 1, 1, 11, 13, 11, -127, -127, -127, -127, -129, -129, -129, -127, 568, 138, 10, 6, 60, 1, 5, 10, 1, 1, 11, 13, 11, -128, -128, -128, -128, 570, 571, 572, -128, 569, 138, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -130, -130, -130, -130, -130, -130, -130, -130, -130, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -131, -131, -131, -131, -131, -131, -131, -131, -131, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -132, -132, -132, -132, -132, -132, -132, -132, -132, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -133, -133, -133, -133, -133, -133, -133, -133, -133, 4, 82, 2, 24, 11, 242, 243, 573, 138, 2, 108, 11, 574, 138, 50, 1, 5, 53, 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, 25, 1, 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, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, 53, 1, 5, 53, 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, 25, 1, 1, 3, 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, 4, 59, 1, 2, 2, -59, -59, -59, -59, 2, 6, 59, 107, 575, 105, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 576, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 59, 1, 2, 2, -62, -62, -62, -62, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 577, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 578, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 579, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 580, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 581, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 93, 582, 1, 165, 583, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 584, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 585, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -162, 102, 103, 53, 52, 72, 73, 93, -162, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 25, 67, 24, 14, 11, 1, 31, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 586, 126, 313, 458, 312, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 1, 67, 587, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, 23, 67, 18, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -163, -163, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 588, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 589, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 590, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 6, 60, 55, 592, 593, 591, 112, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -218, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -218, -218, 102, 103, 53, 52, 72, 73, 93, 99, 59, -218, 83, -218, 87, 240, 84, 85, 594, 66, -218, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 468, 595, -217, -217, -217, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 596, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, 124, 125, -69, -69, -69, -69, -69, -69, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 597, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -72, -72, -72, -72, -72, -72, -72, -72, 126, -72, -72, -72, -72, -72, -72, -72, -72, -72, 123, 124, 125, 96, 97, -72, -72, -72, -72, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 598, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -75, -75, -75, -75, -75, -75, -75, -75, 126, -75, -75, -75, -75, -75, -75, -75, -75, -75, 123, 124, 125, 96, 97, -75, -75, -75, -75, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 599, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -78, -78, -78, -78, -78, -78, -78, -78, 126, -78, -78, -78, -78, -78, -78, -78, -78, -78, 123, 124, 125, 96, 97, -78, -78, -78, -78, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 600, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -81, -81, -81, -81, -81, -81, -81, -81, 126, -81, -81, -81, -81, -81, -81, -81, -81, -81, 123, 124, 125, 96, 97, -81, -81, -81, -81, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 601, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 106, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 603, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 159, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 602, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 49, 3, -175, -175, -175, -175, -175, -175, 11, 55, 1, 23, 1, 1, 7, 14, 2, 1, 23, 1, 151, 104, 153, 154, 152, 99, 156, 155, 150, 604, 149, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 151, 104, -173, -173, -173, 153, 154, 152, 99, 156, 155, 150, 605, -173, -173, 148, 149, 27, 6, 60, 1, 5, 19, 30, 3, 24, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -179, -179, -179, -179, 126, -179, -179, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 54, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, 3, 125, 1, 1, 606, 90, 91, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 607, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, 124, 125, -399, -399, -399, -399, -399, -399, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 608, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 66, 56, 159, 609, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 66, 56, 159, 610, 2, 66, 56, 159, 611, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 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, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 4, 28, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 613, 612, 123, 124, 125, 96, 97, 614, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 616, 615, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 618, 617, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 620, 619, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 621, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 622, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 623, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 4, 93, 70, 2, 2, -301, -301, -301, -301, 26, 72, 19, 2, 55, 1, 9, 1, 1, 3, 2, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -299, 126, -299, 123, 124, 125, 96, 97, -299, -299, -299, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 4, 67, 78, 11, 1, 624, 625, 511, 371, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 66, 56, 159, 626, 3, 67, 78, 12, -251, -251, -251, 3, 66, 6, 50, 159, 628, 627, 23, 66, 6, 19, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -203, -203, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 43, 1, 5, 59, 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, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -308, -308, -308, 159, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 629, -308, -308, -308, 124, 125, -308, -308, -308, -308, -308, -308, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, 106, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 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, 1, 2, 1, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -314, 377, 378, 379, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -314, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 630, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 340, 341, -217, -217, 631, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, 1, 142, 632, 6, 55, 1, 10, 113, 1, 2, 394, 104, 393, 633, 392, 395, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, 3, 54, 5, 1, 634, 105, 106, 3, 6, 60, 29, 636, 637, 635, 10, 6, 49, 1, 10, 1, 28, 8, 18, 59, 2, -218, 394, 104, -218, -218, -218, -218, -218, 638, 395, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 528, 639, -217, -217, -217, 2, 55, 1, 640, 104, 2, 55, 1, 641, 104, 1, 142, -336, 3, 54, 5, 1, 642, 105, 106, 3, 6, 60, 29, 644, 645, 643, 10, 6, 49, 1, 10, 1, 28, 8, 18, 61, 5, -218, 401, 104, -218, -218, -218, -218, -218, 402, 646, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 535, 647, -217, -217, -217, 3, 55, 1, 126, 648, 104, 649, 2, 55, 1, 650, 104, 30, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -343, -343, -343, -343, -343, -343, 126, -343, -343, -343, -343, 124, 125, -343, -343, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 651, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 652, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 67, 653, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, 1, 138, 654, 22, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 126, 655, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 55, 1, 5, 53, 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, 25, 1, 1, 3, 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, 112, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 418, 656, 234, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 60, 1, 5, 31, -146, -146, -146, -146, -146, 111, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -153, -153, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, -153, 87, 240, 84, 85, 412, 411, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 110, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 418, 657, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 2, 66, 1, 547, 658, 50, 1, 5, 53, 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, 25, 1, 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, -209, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 659, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 66, 56, 159, 660, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -255, -255, -255, -255, -255, -255, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -257, -257, -257, -257, -257, -257, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 26, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, 661, -116, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 662, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, 17, 45, 8, 1, 1, 1, 1, 1, 1, 1, 21, 8, 10, 1, 1, 1, 2, 1, 260, 100, 101, 262, 104, 263, 246, 105, 106, 264, 563, 663, 265, 257, 258, 259, 266, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, -109, 260, 100, 101, 262, 104, 263, 246, 105, 106, -109, -109, -109, 264, 563, -109, 664, 261, 265, 257, 258, 259, 266, 5, 6, 60, 1, 5, 23, -111, -111, -111, -111, -111, 6, 6, 60, 1, 5, 18, 5, -114, -114, -114, -114, 665, -114, 26, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -118, -118, -118, -118, 126, -118, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 666, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 18, 5, -124, -124, -124, -124, -124, -124, 22, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 126, 667, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -136, -136, -136, -136, -136, -136, -136, -136, -136, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -137, -137, -137, -137, -137, -137, -137, -137, -137, 2, 57, 1, 668, 246, 2, 57, 1, 669, 246, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 670, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 671, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -134, -134, -134, -134, -134, -134, -134, -134, -134, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -135, -135, -135, -135, -135, -135, -135, -135, -135, 4, 59, 1, 2, 2, -60, -60, -60, -60, 2, 6, 61, 107, 672, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, 124, 125, -396, -396, -396, -396, -396, -396, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, 673, -281, -281, -281, -281, -281, -281, -281, 124, 125, -281, -281, -281, 674, -281, -281, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, 675, -286, -286, -286, -286, -286, -286, -286, 124, 125, -286, -286, -286, -286, -286, -286, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, 676, -290, -290, -290, -290, -290, -290, -290, 124, 125, -290, -290, -290, -290, -290, -290, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, 677, -294, -294, -294, -294, -294, -294, -294, 124, 125, -294, -294, -294, -294, -294, -294, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 678, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 679, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -297, -297, -297, -297, -297, -297, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 67, 18, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -161, -161, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 1, 85, 680, 1, 85, 681, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -66, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 682, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 51, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 683, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 318, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 317, 66, 42, 43, 90, 91, 239, 684, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 60, 1, 5, 49, -195, -195, -195, -195, -195, 3, 6, 60, 1, 592, 593, 685, 1, 85, 686, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 50, 1, 5, 53, 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, 25, 1, 1, 3, 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, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -169, -169, -169, -169, -169, -169, -169, -169, -169, 6, 6, 60, 1, 5, 49, 3, -176, -176, -176, -176, -176, -176, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 340, 687, -217, -217, -217, 2, 66, 56, 159, 602, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 688, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 689, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 690, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 691, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 692, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 694, 693, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 696, 695, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 66, 56, 159, 697, 1, 67, 698, 4, 6, 61, 78, 12, 699, -252, -252, -252, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 700, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 6, 61, -313, -313, 2, 66, 56, 159, 701, 3, 54, 5, 1, 702, 105, 106, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 528, 703, -217, -217, -217, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, 1, 142, 704, 4, 55, 1, 124, 2, 394, 104, 705, 395, 6, 55, 1, 10, 113, 1, 2, 394, 104, 393, 706, 392, 395, 5, 6, 60, 1, 5, 23, -327, -327, -327, -327, -327, 3, 6, 60, 1, 636, 637, 707, 5, 6, 60, 1, 5, 23, -332, -332, -332, -332, -332, 5, 6, 60, 1, 5, 23, -334, -334, -334, -334, -334, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 4, 6, 1, 10, 1, -338, -338, -338, -338, -338, -338, -338, -338, -338, 708, -338, -338, -338, -338, 4, 55, 1, 126, 5, 401, 104, 402, 709, 6, 55, 1, 10, 116, 3, 2, 401, 104, 400, 402, 710, 399, 5, 6, 60, 1, 5, 23, -352, -352, -352, -352, -352, 3, 6, 60, 1, 644, 645, 711, 5, 6, 60, 1, 5, 23, -357, -357, -357, -357, -357, 5, 6, 60, 1, 5, 23, -358, -358, -358, -358, -358, 5, 6, 60, 1, 5, 23, -360, -360, -360, -360, -360, 30, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -344, -344, -344, -344, -344, -344, 126, -344, -344, -344, -344, 124, 125, -344, -344, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 712, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, 50, 1, 5, 53, 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, 25, 1, 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, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, 50, 1, 5, 53, 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, 25, 1, 1, 3, 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, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 414, 415, -217, -217, 713, -217, 5, 6, 60, 1, 5, 31, -147, -147, -147, -147, -147, 5, 6, 60, 1, 5, 31, -148, -148, -148, -148, -148, 1, 85, 714, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 300, 151, 104, 153, 154, 152, 99, 715, 716, 83, 155, 194, 299, 193, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 717, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 5, 6, 60, 1, 5, 23, -112, -112, -112, -112, -112, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 431, 718, -217, -217, -217, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 719, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 558, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 720, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 6, 6, 60, 1, 5, 18, 5, -125, -125, -125, -125, -125, -125, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -138, -138, -138, -138, -138, -138, -138, -138, -138, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -139, -139, -139, -139, -139, -139, -139, -139, -139, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 721, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 722, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 65, 723, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 724, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 725, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 726, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 727, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 728, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, 729, -288, -288, -288, -288, -288, -288, -288, 124, 125, -288, -288, -288, -288, -288, -288, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, 730, -292, -292, -292, -292, -292, -292, -292, 124, 125, -292, -292, -292, -292, -292, -292, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, 1, 85, 731, 5, 6, 60, 1, 5, 49, -196, -196, -196, -196, -196, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 468, 732, -217, -217, -217, 5, 6, 60, 1, 5, 49, -197, -197, -197, -197, -197, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 3, 6, 60, 1, 484, 485, 733, 24, 66, 25, 31, 26, 1, 9, 1, 1, 4, 28, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 734, 123, 124, 125, 96, 97, 735, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 737, 736, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 738, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 739, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 740, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 741, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 742, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 67, 743, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 3, 67, 78, 12, -253, -253, -253, 23, 66, 6, 19, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -204, -204, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, 3, 6, 60, 29, 636, 637, 744, 3, 54, 5, 1, 745, 105, 106, 5, 6, 60, 1, 5, 23, -328, -328, -328, -328, -328, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 528, 746, -217, -217, -217, 5, 6, 60, 1, 5, 23, -329, -329, -329, -329, -329, 3, 54, 5, 1, 747, 105, 106, 5, 6, 60, 1, 5, 23, -353, -353, -353, -353, -353, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 535, 748, -217, -217, -217, 5, 6, 60, 1, 5, 23, -354, -354, -354, -354, -354, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 2, 66, 1, 547, 749, 50, 1, 5, 53, 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, 25, 1, 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, 4, 93, 70, 2, 2, 750, 450, 452, 453, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 751, 156, 155, 194, 193, 5, 6, 60, 1, 5, 23, -117, -117, -117, -117, -117, 3, 6, 60, 1, 560, 561, 752, 26, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, 126, -116, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 5, 6, 60, 1, 5, 23, -119, -119, -119, -119, -119, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -140, -140, -140, -140, -140, -140, -140, -140, -140, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 753, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 4, 59, 1, 2, 2, -61, -61, -61, -61, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -282, -282, -282, 754, -282, -282, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, 755, -283, -283, -283, -283, -283, -283, -283, 124, 125, -283, -283, -283, -283, -283, -283, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, 124, 125, -287, -287, -287, -287, -287, -287, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, 124, 125, -291, -291, -291, -291, -291, -291, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -295, -295, -295, -295, -295, -295, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 756, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 757, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 59, 1, 5, 53, 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, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 3, 6, 60, 1, 592, 593, 758, 6, 6, 60, 1, 5, 49, 3, -177, -177, -177, -177, -177, -177, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 759, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 760, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 761, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 762, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 1, 142, 763, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, 3, 6, 60, 1, 636, 637, 764, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, 3, 6, 60, 1, 644, 645, 765, 5, 6, 60, 1, 5, 31, -149, -149, -149, -149, -149, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 766, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 93, 767, 5, 6, 60, 1, 5, 23, -113, -113, -113, -113, -113, 1, 85, 768, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 769, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 770, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, 124, 125, -289, -289, -289, -289, -289, -289, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -293, -293, -293, -293, -293, -293, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 5, 6, 60, 1, 5, 49, -198, -198, -198, -198, -198, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 771, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 772, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 3, 54, 5, 1, 773, 105, 106, 5, 6, 60, 1, 5, 23, -330, -330, -330, -330, -330, 5, 6, 60, 1, 5, 23, -355, -355, -355, -355, -355, 43, 1, 5, 59, 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, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -286, -286, -286, -286, -286, 776, -286, -286, -286, -286, 774, -286, 775, -286, -286, -286, -286, -286, -286, -286, 124, 125, -286, -286, -286, -286, -286, -286, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 777, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -141, -141, -141, -141, -141, -141, -141, -141, -141, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -284, -284, -284, -284, -284, -284, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, 124, 125, -285, -285, -285, -285, -285, -285, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, 1, 95, 778, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 779, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 6, 6, 60, 1, 28, 8, 18, -218, -218, -218, -218, -218, -218, 43, 1, 5, 59, 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, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, 776, -288, -288, -288, -288, 780, -288, 781, -288, -288, -288, -288, -288, -288, -288, 124, 125, -288, -288, -288, -288, -288, -288, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 55, 1, 5, 53, 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, 25, 1, 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, -104, 43, 1, 5, 59, 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, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -287, -287, -287, -287, -287, 776, -287, -287, -287, -287, 782, -287, -287, -287, -287, -287, -287, -287, -287, -287, 124, 125, -287, -287, -287, -287, -287, -287, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 1, 95, 783, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 784, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 95, 785, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 43, 1, 5, 59, 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, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, -289, -289, -289, 776, -289, -289, -289, -289, 786, -289, -289, -289, -289, -289, -289, -289, -289, -289, 124, 125, -289, -289, -289, -289, -289, -289, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 55, 1, 5, 53, 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, 25, 1, 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, -105, 1, 95, 787, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107], t = [], p = 0, n, o, k, a;
2742
+ let d = [107, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -1, 1, 2, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 1, 1, 0, 2, 1, 5, -2, 107, 5, 1, 5, 59, 2, 71, -3, -3, -3, -3, -3, 31, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -6, -6, -6, -6, -6, -6, 127, -6, -6, -6, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -7, -7, -7, -7, -7, -7, -7, -7, -7, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 9, 1, 1, -8, -8, -8, -8, -8, -8, -8, -8, -8, 128, 129, 130, 96, 97, 54, 1, 5, 48, 5, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 3, 9, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -13, -13, 132, 105, 106, -13, -13, -13, -13, 135, 136, 137, -13, 138, -13, -13, -13, -13, -13, -13, -13, 133, -13, 139, -13, -13, 134, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 131, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 46, 1, 5, 59, 1, 1, 5, 10, 1, 1, 1, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -14, -14, -14, -14, -14, -14, 140, 141, 142, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -33, -33, -33, -33, -33, -33, -33, -33, -33, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -34, -34, -34, -34, -34, -34, -34, -34, -34, 13, 1, 5, 59, 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, 59, 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, 59, 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, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, 143, 144, 145, 146, 147, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 152, 104, -173, -173, -173, 154, 155, 153, 99, 157, 156, 151, 148, -173, -173, 149, 150, 106, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 159, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 160, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 158, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 161, 162, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 164, 165, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 166, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 172, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 173, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 174, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 175, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 177, 178, 179, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 176, 72, 73, 93, 99, 83, 87, 84, 85, 167, 168, 90, 91, 86, 88, 89, 82, 171, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 177, 178, 179, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 180, 72, 73, 93, 99, 83, 87, 84, 85, 167, 168, 90, 91, 86, 88, 89, 82, 171, 60, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 181, 182, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 183, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 185, 184, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 186, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 187, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, 2, 66, 56, 160, 188, 2, 66, 56, 160, 189, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 193, 152, 104, 154, 155, 153, 99, 190, 191, 83, 156, 195, 192, 194, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 196, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 197, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 90, 1, 5, 8, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 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, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 20, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -304, -304, 177, 178, 179, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -304, 160, -304, 102, 103, -304, 200, 72, 73, 93, -304, 99, -304, -304, -304, -304, -304, 83, -304, 87, -304, 84, 85, -304, -304, 198, 167, -304, 168, 90, 91, 86, 88, 89, 82, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 199, 171, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 1, 66, 201, 2, 66, 56, 160, 202, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 203, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 204, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 139, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 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, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -224, -224, 205, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -224, 206, -224, 102, 103, -224, 53, 52, 72, 73, 93, -224, 99, -224, -224, -224, -224, -224, 83, -224, 87, -224, 84, 85, -224, 66, -224, 167, -224, 168, 90, 91, 86, 88, 89, 82, -224, 69, 64, 65, 207, 54, 94, -224, 55, 95, -224, -224, 56, 60, 57, -224, -224, 58, 98, -224, -224, -224, 49, -224, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, 2, 55, 1, 208, 104, 2, 55, 1, 209, 104, 6, 15, 19, 89, 2, 1, 1, 211, 210, 42, 43, 90, 91, 138, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 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, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -221, -221, 212, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -221, 213, -221, 102, 103, -221, 53, 52, 72, 73, 93, -221, 99, -221, -221, -221, -221, -221, 83, -221, 87, -221, 84, 85, -221, 66, -221, 167, -221, 168, 90, 91, 86, 88, 89, 82, -221, 69, 64, 65, 54, 94, -221, 55, 95, -221, -221, 56, 60, 57, -221, -221, 58, 98, -221, -221, -221, 49, -221, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, 9, 54, 1, 1, 3, 1, 28, 89, 1, 5, 214, 218, 104, 105, 106, 217, 215, 216, 219, 60, 14, 1, 3, 1, 1, 1, 6, 1, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 14, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 32, 2, 1, 10, 4, 4, 177, 178, 226, 227, 228, 229, 221, 222, 223, 224, 232, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 225, 104, 105, 106, 102, 103, 53, 233, 72, 73, 93, 220, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 61, 67, 62, 230, 231, 171, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, 106, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 234, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 113, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 236, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 242, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 237, 87, 247, 84, 85, 238, 239, 241, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 82, 2, 24, 11, 249, 250, 248, 139, 2, 108, 11, 251, 139, 52, 1, 5, 53, 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, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, 54, 1, 5, 51, 1, 1, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -206, -206, 252, 253, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, 1, 82, 254, 1, 82, 255, 54, 11, 35, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, 54, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 256, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 257, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 258, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 259, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 261, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 160, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 260, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, -109, 267, 100, 101, 269, 104, 270, 253, 105, 106, -109, -109, -109, 271, 262, -109, 263, 268, 272, 264, 265, 266, 273, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 177, 178, 179, 34, 35, 36, 274, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 233, 72, 73, 93, 99, 83, 87, 84, 85, 167, 168, 90, 91, 86, 88, 89, 82, 171, 63, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 4, 3, 3, 1, 10, 1, 3, 1, 1, 2, 3, 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 55, 1, 5, 53, 1, 2, 2, 1, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 6, 54, 5, 1, 1, 2, 1, 278, 105, 106, 275, 276, 277, 109, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 2, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -5, 279, -5, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -5, -5, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, -5, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 280, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 281, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 282, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 283, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 284, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 285, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 286, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 287, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 288, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 291, 163, 289, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 290, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 294, 163, 292, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 293, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 297, 163, 295, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 296, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 298, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 299, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 300, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 301, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 302, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 303, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 307, 152, 104, 154, 155, 153, 99, 304, 305, 83, 156, 195, 306, 194, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 308, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 309, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, 2, 108, 11, 310, 139, 2, 57, 1, 311, 253, 2, 57, 1, 312, 253, 106, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 2, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 313, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 318, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 314, 102, 103, 316, 53, 52, 72, 73, 93, 315, 99, 59, 83, 87, 320, 84, 85, 317, 319, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 84, 321, 109, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 325, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 324, 66, 322, 42, 43, 90, 91, 246, 323, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 2, 57, 1, 327, 253, 2, 57, 1, 328, 253, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 329, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 330, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 332, 331, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 333, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 335, 334, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 336, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 338, 337, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 339, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 341, 340, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 342, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 344, 343, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 345, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 22, 1, 8, 18, 3, -217, -217, -217, 347, 348, -217, -217, -217, 346, 6, 6, 60, 1, 5, 49, 3, -174, -174, -174, -174, -174, -174, 7, 6, 60, 1, 5, 1, 48, 3, -178, -178, -178, -178, 349, -178, -178, 15, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 17, 3, 5, -181, 152, 104, -181, -181, -181, 154, 155, 153, 99, 157, 156, -181, -181, 350, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 2, 57, 1, 252, 253, 113, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 242, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 237, 87, 247, 84, 85, 238, 239, 241, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -170, -170, -170, -170, -170, -170, -170, -170, -170, 106, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 352, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 351, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 125, 126, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 118, -370, 120, -370, -370, -370, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -367, -367, -367, -367, -367, -367, -367, -367, -367, 5, 148, 1, 9, 1, 1, 128, 129, 130, 96, 97, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 125, 126, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 118, -371, 120, -371, -371, -371, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -368, -368, -368, -368, -368, -368, -368, -368, -368, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, 125, 126, -372, -372, -372, -372, -372, -372, -372, -372, -372, 111, -372, -372, -372, -372, -372, -372, 118, -372, 120, -372, -372, -372, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 152, 104, -173, -173, -173, 154, 155, 153, 99, 157, 156, 151, 353, -173, -173, 149, 150, 2, 66, 56, 160, 158, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 161, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 164, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 5, 15, 108, 2, 1, 1, 211, 167, 168, 90, 91, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, 125, 126, -373, -373, -373, -373, -373, -373, -373, -373, -373, 111, -373, -373, -373, -373, -373, -373, 118, -373, 120, -373, -373, -373, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, 125, 126, -374, -374, -374, -374, -374, -374, -374, -374, -374, 111, -374, -374, -374, -374, -374, -374, 118, -374, 120, -374, -374, -374, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 125, 126, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 118, -376, 120, -376, -376, -376, 2, 80, 8, 354, 99, 57, 1, 5, 53, 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, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -378, -378, -86, -86, -378, -378, -378, -378, -86, -86, -86, -86, -86, -86, -86, -86, -378, -86, -378, -378, -378, -378, -378, -378, -378, -378, -86, -378, -378, -86, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -86, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, 10, 54, 5, 1, 22, 1, 1, 3, 21, 11, 12, 132, 105, 106, 135, 136, 137, 138, 133, 139, 134, 3, 82, 1, 1, 140, 141, 142, 52, 1, 5, 53, 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, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -379, -379, -86, -86, -379, -379, -379, -379, -86, -86, -86, -86, -86, -86, -86, -86, -379, -86, -379, -379, -379, -379, -379, -379, -379, -379, -86, -379, -379, -86, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -86, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 357, 355, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 356, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -83, -83, -83, -83, -83, -83, -83, -83, 127, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, 124, 125, 126, 96, 97, -83, -83, -83, -83, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 358, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 359, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 66, 56, 22, 160, 360, 361, 46, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 2, 1, 1, 6, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, 362, 363, 364, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, 4, 93, 70, 2, 2, 366, 365, 367, 368, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 369, 157, 156, 195, 194, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 370, 157, 156, 195, 194, 3, 66, 56, 42, 160, 371, 372, 5, 72, 21, 70, 2, 2, 373, -302, -302, -302, -302, 6, 72, 1, 20, 70, 2, 2, -300, 374, -300, -300, -300, -300, 23, 66, 25, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 375, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 155, 1, 1, 376, 377, 378, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 379, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 1, 2, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -308, -308, -86, -86, -308, 160, -308, -308, -86, -86, -86, -86, -86, -86, -86, -86, -308, -86, -308, -308, -308, -308, -308, -308, -308, -308, -86, -308, 380, -308, -86, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 381, -308, -308, -86, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 105, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 1, 1, 1, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 384, 385, 386, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 382, 383, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, 125, 126, -222, -222, -222, -222, -222, -222, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 80, 8, 387, 99, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, 125, 126, -225, -225, -225, -225, -225, -225, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 80, 8, 388, 99, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 389, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 66, 53, 3, 160, 390, 391, 2, 66, 56, 160, 392, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -369, -369, -369, -369, -369, -369, -369, -369, -369, 52, 1, 5, 53, 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, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, 125, 126, -219, -219, -219, -219, -219, -219, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 80, 8, 393, 99, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, 2, 72, 70, 395, 394, 1, 142, 396, 7, 55, 1, 10, 29, 84, 1, 2, 401, 104, 400, 397, 398, 399, 402, 2, 72, 70, -337, -337, 1, 181, 403, 26, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, 77, 3, 2, -109, 267, 100, 101, 408, 104, 270, 253, 105, 106, 407, -109, -109, 271, 262, 404, 263, 268, 272, 264, 265, 266, 273, 409, 405, 406, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -89, -89, -89, -89, -89, -89, -89, -89, 410, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 411, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 412, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 142, 413, 56, 1, 5, 53, 1, 5, 1, 1, 5, 2, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, 144, 145, 146, 147, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 2, 6, 132, 107, 414, 105, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 415, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 31, 6, 60, 1, 5, 19, 12, 2, 11, 1, 4, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, 127, -199, 320, 416, 319, -199, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, 109, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 417, 87, 247, 84, 85, 419, 418, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 421, 422, -217, -217, 420, -217, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 423, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, 5, 6, 60, 1, 5, 31, -145, -145, -145, -145, -145, 112, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 242, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 425, 424, 241, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, 5, 6, 60, 1, 5, 31, -150, -150, -150, -150, -150, 6, 6, 60, 1, 5, 31, 18, -200, -200, -200, -200, -200, -200, 6, 6, 60, 1, 5, 31, 18, -201, -201, -201, -201, -201, -201, 106, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -202, 426, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -202, -202, 102, 103, -202, 53, 52, 72, 73, 93, 99, 59, 83, -202, 87, 84, 85, 66, -202, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, 2, 57, 1, 427, 253, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 428, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 429, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 2, 57, 1, 430, 253, 2, 57, 1, 431, 253, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 432, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 433, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -255, -255, -255, -255, -255, -255, -255, -255, 127, -255, -255, 434, -255, -255, -255, -255, -255, -255, -255, -255, 125, 126, 96, 97, -255, -255, -255, -255, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -257, -257, -257, -257, -257, -257, -257, -257, 127, -257, -257, 435, -257, -257, -257, -257, -257, -257, -257, -257, 125, 126, 96, 97, -257, -257, -257, -257, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 1, 2, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -264, -264, -264, 160, -264, -264, -264, -264, 127, -264, -264, -264, -264, -264, -264, -264, 436, -264, -264, -264, -264, 125, 126, 96, 97, -264, -264, -264, -264, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 6, 6, 60, 1, 5, 18, 5, -114, -114, -114, -114, 437, -114, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 439, 438, -217, -217, -217, 7, 6, 60, 1, 5, 1, 17, 5, -123, -123, -123, -123, 440, -123, -123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 441, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 57, 1, 44, 252, 253, 442, 6, 6, 60, 1, 5, 18, 5, -126, -126, -126, -126, -126, -126, 5, 6, 60, 1, 5, 23, -110, -110, -110, -110, -110, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, 5, 6, 60, 1, 5, 23, -115, -115, -115, -115, -115, 17, 38, 4, 1, 12, 1, 1, 1, 22, 1, 7, 13, 3, 2, 1, 2, 25, 3, 446, 448, 447, 269, 104, 270, 253, 445, 271, 99, 443, 87, 444, 449, 450, 86, 82, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, -39, -39, 451, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 6, 54, 5, 1, 2, 1, 1, 278, 105, 106, 452, 453, 277, 4, 59, 1, 2, 2, -58, -58, -58, -58, 107, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 454, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 456, 455, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 59, 1, 2, 2, -63, -63, -63, -63, 5, 1, 5, 59, 2, 71, -4, -4, -4, -4, -4, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, 125, 126, -382, -382, -382, -382, -382, -382, -382, -382, 110, 111, -382, -382, -382, -382, -382, -382, 118, -382, 120, -382, -382, -382, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, 125, 126, -383, -383, -383, -383, -383, -383, -383, -383, 110, 111, -383, -383, -383, -383, -383, -383, 118, -383, 120, -383, -383, -383, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, 125, 126, -384, -384, -384, -384, -384, -384, -384, -384, -384, 111, -384, -384, -384, -384, -384, -384, 118, -384, 120, -384, -384, -384, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, 125, 126, -385, -385, -385, -385, -385, -385, -385, -385, -385, 111, -385, -385, -385, -385, -385, -385, 118, -385, 120, -385, -385, -385, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 125, 126, -386, -386, -386, -386, -386, -386, 109, 108, 110, 111, -386, -386, -386, -386, -386, -386, 118, -386, 120, -386, -386, -386, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, 125, 126, -387, -387, -387, -387, -387, -387, 109, 108, 110, 111, 112, -387, -387, -387, -387, -387, 118, -387, 120, -387, 122, -387, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, 125, 126, -388, -388, -388, -388, -388, -388, 109, 108, 110, 111, 112, 113, -388, -388, -388, -388, 118, -388, 120, -388, 122, -388, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, 125, 126, -389, -389, -389, -389, -389, -389, 109, 108, 110, 111, 112, 113, 114, -389, -389, -389, 118, -389, 120, -389, 122, -389, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, 125, 126, -390, -390, -390, -390, -390, -390, 109, 108, 110, 111, 112, 113, 114, 115, -390, -390, 118, -390, 120, -390, 122, -390, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, 125, 126, -398, -398, -398, -398, -398, -398, 109, 108, 110, 111, 112, 113, 114, 115, 116, -398, 118, 119, 120, -398, 122, -398, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -399, -399, -399, -399, -399, -399, -399, -399, 127, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, 124, 125, 126, 96, 97, -399, -399, -399, -399, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, 125, 126, -397, -397, -397, -397, -397, -397, 109, 108, 110, 111, 112, 113, 114, 115, 116, -397, 118, -397, 120, -397, 122, -397, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -400, -400, -400, -400, -400, -400, -400, -400, 127, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, 124, 125, 126, 96, 97, -400, -400, -400, -400, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, 125, 126, -401, -401, -401, -401, -401, -401, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -401, 122, -401, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, 125, 126, -402, -402, -402, -402, -402, -402, 109, 108, 110, 111, 112, -402, -402, -402, -402, -402, 118, -402, 120, -402, -402, -402, 23, 90, 1, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 457, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -236, -236, -236, -236, -236, -236, -236, -236, 127, -236, -236, -236, -236, -236, -236, -236, -236, -236, 458, -236, 125, 126, 96, 97, -236, -236, -236, -236, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -239, -239, -239, -239, -239, -239, -239, -239, 127, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, 124, 125, 126, 96, 97, -239, -239, -239, -239, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 93, 70, 2, 2, 460, 459, 461, 462, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 463, 157, 156, 195, 194, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 464, 157, 156, 195, 194, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, 465, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -235, -235, -235, -235, -235, -235, -235, -235, 127, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, 125, 126, 96, 97, -235, -235, -235, -235, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -238, -238, -238, -238, -238, -238, -238, -238, 127, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, 124, 125, 126, 96, 97, -238, -238, -238, -238, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 26, 85, 6, 14, 11, 1, 31, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 466, 127, 320, 467, 319, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 104, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 468, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 469, 99, 59, 83, 87, 320, 84, 85, 317, 319, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 85, 470, 1, 85, 471, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 472, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -164, 102, 103, 53, 52, 72, 73, 93, -164, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, 473, -46, -46, -46, -67, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 55, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, 55, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 474, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 475, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 477, 476, -217, -217, -217, 5, 6, 60, 1, 5, 49, -194, -194, -194, -194, -194, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 325, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 324, 66, 42, 43, 90, 91, 246, 478, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 28, 6, 60, 1, 5, 19, 12, 18, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, 127, -199, -199, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 479, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 480, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, 125, 126, -68, -68, -68, -68, -68, -68, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 481, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 482, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -71, -71, -71, -71, -71, -71, -71, -71, 127, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, 124, 125, 126, 96, 97, -71, -71, -71, -71, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 483, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 484, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -74, -74, -74, -74, -74, -74, -74, -74, 127, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, 124, 125, 126, 96, 97, -74, -74, -74, -74, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 485, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 486, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -77, -77, -77, -77, -77, -77, -77, -77, 127, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, 124, 125, 126, 96, 97, -77, -77, -77, -77, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 487, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 488, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -80, -80, -80, -80, -80, -80, -80, -80, 127, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, 124, 125, 126, 96, 97, -80, -80, -80, -80, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 489, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 490, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 125, 1, 1, 491, 90, 91, 17, 6, 49, 1, 10, 1, 12, 1, 1, 7, 7, 7, 1, 1, 1, 16, 7, 1, -218, 152, 104, -218, -218, 154, 155, 153, 99, -218, 157, -218, 156, 151, -218, 492, 150, 2, 6, 60, 493, 494, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 495, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 49, 3, -180, -180, -180, -180, -180, -180, 55, 1, 5, 53, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, 2, 6, 61, 107, 496, 9, 6, 60, 1, 5, 22, 1, 8, 18, 3, -217, -217, -217, 347, 348, -217, -217, -217, 497, 1, 67, 498, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, 125, 126, -404, -404, -404, -404, -404, -404, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 499, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 500, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, -84, -84, -84, -84, 127, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, 124, 125, 126, 96, 97, -84, -84, -84, -84, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 501, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 502, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, 503, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, 2, 66, 56, 160, 504, 6, 55, 1, 10, 14, 8, 34, 505, 104, 160, 506, 99, 507, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 508, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 509, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 510, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 511, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 93, 512, 1, 165, 513, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 514, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 10, 55, 1, 23, 1, 1, 7, 14, 2, 25, 39, 152, 104, 154, 155, 153, 99, 157, 156, 195, 515, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 516, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 155, 1, 1, 517, 377, 378, 4, 67, 78, 11, 1, 518, 519, 520, 378, 3, 67, 78, 12, -251, -251, -251, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 522, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 521, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 1, 2, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -306, -306, -306, 160, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 523, -306, -306, -306, -306, 125, 126, -306, -306, -306, -306, -306, -306, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 524, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 2, 6, 61, 526, 525, 2, 6, 61, -314, -314, 24, 6, 61, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -317, -317, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 6, 61, -318, -318, 7, 6, 61, 81, 1, 9, 1, 1, -319, -319, 128, 129, 130, 96, 97, 1, 67, 527, 1, 67, 528, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, 125, 126, -227, -227, -227, -227, -227, -227, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 152, 104, -173, -173, -173, 154, 155, 153, 99, 157, 156, 151, 529, -173, -173, 149, 150, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, 1, 67, 530, 3, 54, 5, 1, 531, 105, 106, 3, 88, 90, 5, 533, 532, 219, 3, 54, 5, 1, 534, 105, 106, 1, 142, 535, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 537, 536, -217, -217, -217, 5, 6, 60, 1, 5, 23, -328, -328, -328, -328, -328, 6, 55, 1, 10, 113, 1, 2, 401, 104, 400, 538, 399, 402, 6, 6, 60, 1, 5, 23, 86, -333, -333, -333, -333, -333, 539, 6, 6, 60, 1, 5, 23, 86, -335, -335, -335, -335, -335, 540, 2, 55, 1, 541, 104, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 4, 6, 1, 10, 1, -339, -339, -339, -339, -339, -339, -339, -339, -339, 542, -339, -339, -339, -339, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 544, 543, -217, -217, -217, 5, 6, 60, 1, 5, 23, -357, -357, -357, -357, -357, 6, 55, 1, 10, 116, 3, 2, 546, 104, 407, 409, 545, 406, 12, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, 62, -362, -362, -362, -362, -120, -120, -120, -120, -120, -362, -120, 547, 6, 6, 60, 1, 5, 23, 86, -365, -365, -365, -365, -365, 548, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 550, 549, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 551, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 31, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -352, -352, -352, -352, -352, -352, 127, -352, -352, -352, -352, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 80, 8, 552, 99, 3, 54, 5, 1, 553, 105, 106, 52, 1, 5, 53, 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, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, 2, 6, 61, 107, 554, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 555, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 423, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, 5, 6, 60, 1, 5, 31, -151, -151, -151, -151, -151, 2, 66, 37, 557, 556, 116, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -218, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -218, -218, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, -218, 83, -218, 87, 247, 84, 85, 559, 558, 244, 240, 66, -218, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 6, 60, 1, 36, 560, -152, -152, -152, 59, 6, 5, 35, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 421, 422, -217, -217, 561, -217, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 419, 418, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 28, 6, 60, 1, 5, 19, 12, 18, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, 127, -186, -186, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 562, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 563, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, 564, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 565, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 566, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 567, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 568, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 6, 60, 29, 570, 571, 569, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 14, 8, 6, 4, 1, 1, 1, 1, 1, 1, 16, -218, 267, 100, 101, 269, 104, 270, 253, 105, 106, -218, -218, 271, 573, -218, 572, 272, 264, 265, -218, 266, 273, -218, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 574, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 575, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 23, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 127, 576, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 577, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 10, 6, 60, 1, 5, 10, 1, 1, 11, 13, 11, -127, -127, -127, -127, -129, -129, -129, -127, 578, 139, 10, 6, 60, 1, 5, 10, 1, 1, 11, 13, 11, -128, -128, -128, -128, 580, 581, 582, -128, 579, 139, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -130, -130, -130, -130, -130, -130, -130, -130, -130, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -131, -131, -131, -131, -131, -131, -131, -131, -131, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -132, -132, -132, -132, -132, -132, -132, -132, -132, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -133, -133, -133, -133, -133, -133, -133, -133, -133, 4, 82, 2, 24, 11, 249, 250, 583, 139, 2, 108, 11, 584, 139, 52, 1, 5, 53, 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, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, 55, 1, 5, 53, 1, 2, 2, 1, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 4, 59, 1, 2, 2, -59, -59, -59, -59, 2, 6, 59, 107, 585, 105, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 586, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 59, 1, 2, 2, -62, -62, -62, -62, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 587, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 66, 588, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 589, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 590, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 591, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 592, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 93, 593, 1, 165, 594, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 595, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 596, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -162, 102, 103, 53, 52, 72, 73, 93, -162, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 26, 67, 24, 14, 11, 1, 31, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 597, 127, 320, 467, 319, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 67, 598, 61, 1, 5, 53, 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, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, 24, 67, 18, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -163, -163, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 599, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 600, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 601, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 6, 60, 55, 603, 604, 602, 112, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -218, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -218, -218, 102, 103, 53, 52, 72, 73, 93, 99, 59, -218, 83, -218, 87, 247, 84, 85, 605, 66, -218, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 477, 606, -217, -217, -217, 61, 1, 5, 53, 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, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 607, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, 125, 126, -69, -69, -69, -69, -69, -69, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 608, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -72, -72, -72, -72, -72, -72, -72, -72, 127, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, 124, 125, 126, 96, 97, -72, -72, -72, -72, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 609, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -75, -75, -75, -75, -75, -75, -75, -75, 127, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, 124, 125, 126, 96, 97, -75, -75, -75, -75, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 610, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -78, -78, -78, -78, -78, -78, -78, -78, 127, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, 124, 125, 126, 96, 97, -78, -78, -78, -78, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 611, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -81, -81, -81, -81, -81, -81, -81, -81, 127, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, 124, 125, 126, 96, 97, -81, -81, -81, -81, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 612, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 106, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 614, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 160, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 613, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 49, 3, -175, -175, -175, -175, -175, -175, 11, 55, 1, 23, 1, 1, 7, 14, 2, 1, 23, 1, 152, 104, 154, 155, 153, 99, 157, 156, 151, 615, 150, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 152, 104, -173, -173, -173, 154, 155, 153, 99, 157, 156, 151, 616, -173, -173, 149, 150, 28, 6, 60, 1, 5, 19, 30, 3, 24, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -179, -179, -179, -179, 127, -179, -179, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 55, 1, 5, 53, 1, 5, 1, 1, 5, 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, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, 3, 125, 1, 1, 617, 90, 91, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 618, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, 125, 126, -406, -406, -406, -406, -406, -406, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 619, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 66, 56, 160, 620, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, 2, 66, 56, 160, 621, 2, 66, 56, 160, 622, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, 26, 66, 25, 5, 26, 26, 1, 9, 1, 1, 4, 28, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 624, 623, 124, 125, 126, 96, 97, 625, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 627, 626, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 629, 628, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 631, 630, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 632, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 633, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 634, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 93, 70, 2, 2, -303, -303, -303, -303, 27, 72, 19, 2, 55, 1, 9, 1, 1, 3, 2, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -301, 127, -301, 124, 125, 126, 96, 97, -301, -301, -301, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 67, 78, 11, 1, 635, 636, 520, 378, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, 2, 66, 56, 160, 637, 3, 67, 78, 12, -252, -252, -252, 3, 66, 6, 50, 160, 639, 638, 24, 66, 6, 19, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -203, -203, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 1, 2, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -310, -310, -310, 160, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, 640, -310, -310, -310, -310, 125, 126, -310, -310, -310, -310, -310, -310, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, 106, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 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, 1, 2, 1, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -316, 384, 385, 386, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -316, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 641, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 347, 348, -217, -217, 642, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, 1, 142, 643, 6, 55, 1, 10, 113, 1, 2, 401, 104, 400, 644, 399, 402, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, 3, 54, 5, 1, 645, 105, 106, 3, 6, 60, 29, 647, 648, 646, 10, 6, 49, 1, 10, 1, 28, 8, 18, 59, 2, -218, 401, 104, -218, -218, -218, -218, -218, 649, 402, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 537, 650, -217, -217, -217, 2, 55, 1, 651, 104, 2, 55, 1, 652, 104, 1, 142, -338, 3, 54, 5, 1, 653, 105, 106, 3, 6, 60, 29, 655, 656, 654, 10, 6, 49, 1, 10, 1, 28, 8, 18, 61, 5, -218, 546, 104, -218, -218, -218, -218, -218, 409, 657, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 544, 658, -217, -217, -217, 6, 6, 60, 1, 5, 23, 86, -362, -362, -362, -362, -362, 547, 3, 55, 1, 126, 659, 104, 660, 2, 55, 1, 661, 104, 31, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -345, -345, -345, -345, -345, -345, 127, -345, -345, -345, -345, 125, 126, -345, -345, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 662, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 663, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 67, 664, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, 1, 138, 665, 23, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 127, 666, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, 112, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 242, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 425, 667, 241, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 60, 1, 5, 31, -146, -146, -146, -146, -146, 111, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -153, -153, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, -153, 87, 247, 84, 85, 419, 418, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 110, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 425, 668, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 2, 66, 1, 557, 669, 52, 1, 5, 53, 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, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 670, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 66, 56, 160, 671, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, 125, 126, -256, -256, -256, -256, -256, -256, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, 125, 126, -258, -258, -258, -258, -258, -258, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 27, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, 672, -116, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 673, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, 17, 45, 8, 1, 1, 1, 1, 1, 1, 1, 21, 8, 10, 1, 1, 1, 2, 1, 267, 100, 101, 269, 104, 270, 253, 105, 106, 271, 573, 674, 272, 264, 265, 266, 273, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, -109, 267, 100, 101, 269, 104, 270, 253, 105, 106, -109, -109, -109, 271, 573, -109, 675, 268, 272, 264, 265, 266, 273, 5, 6, 60, 1, 5, 23, -111, -111, -111, -111, -111, 6, 6, 60, 1, 5, 18, 5, -114, -114, -114, -114, 676, -114, 27, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -118, -118, -118, -118, 127, -118, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 677, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 18, 5, -124, -124, -124, -124, -124, -124, 23, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 127, 678, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -136, -136, -136, -136, -136, -136, -136, -136, -136, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -137, -137, -137, -137, -137, -137, -137, -137, -137, 2, 57, 1, 679, 253, 2, 57, 1, 680, 253, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 681, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 682, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -134, -134, -134, -134, -134, -134, -134, -134, -134, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -135, -135, -135, -135, -135, -135, -135, -135, -135, 4, 59, 1, 2, 2, -60, -60, -60, -60, 2, 6, 61, 107, 683, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, 125, 126, -403, -403, -403, -403, -403, -403, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 684, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, 685, -283, -283, -283, -283, -283, -283, -283, -283, 125, 126, -283, -283, -283, 686, -283, -283, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, 687, -288, -288, -288, -288, -288, -288, -288, -288, 125, 126, -288, -288, -288, -288, -288, -288, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, 688, -292, -292, -292, -292, -292, -292, -292, -292, 125, 126, -292, -292, -292, -292, -292, -292, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, 689, -296, -296, -296, -296, -296, -296, -296, -296, 125, 126, -296, -296, -296, -296, -296, -296, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 690, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 691, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, 125, 126, -299, -299, -299, -299, -299, -299, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 67, 18, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -161, -161, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 85, 692, 1, 85, 693, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -66, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 694, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 695, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 325, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 324, 66, 42, 43, 90, 91, 246, 696, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 60, 1, 5, 49, -195, -195, -195, -195, -195, 3, 6, 60, 1, 603, 604, 697, 1, 85, 698, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -169, -169, -169, -169, -169, -169, -169, -169, -169, 6, 6, 60, 1, 5, 49, 3, -176, -176, -176, -176, -176, -176, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 347, 699, -217, -217, -217, 2, 66, 56, 160, 613, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 700, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 701, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 702, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 703, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 704, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 706, 705, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 708, 707, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, 2, 66, 56, 160, 709, 1, 67, 710, 4, 6, 61, 78, 12, 711, -253, -253, -253, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 712, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, 2, 6, 61, -315, -315, 2, 66, 56, 160, 713, 3, 54, 5, 1, 714, 105, 106, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 537, 715, -217, -217, -217, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, 1, 142, 716, 4, 55, 1, 124, 2, 401, 104, 717, 402, 6, 55, 1, 10, 113, 1, 2, 401, 104, 400, 718, 399, 402, 5, 6, 60, 1, 5, 23, -329, -329, -329, -329, -329, 3, 6, 60, 1, 647, 648, 719, 5, 6, 60, 1, 5, 23, -334, -334, -334, -334, -334, 5, 6, 60, 1, 5, 23, -336, -336, -336, -336, -336, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 4, 6, 1, 10, 1, -340, -340, -340, -340, -340, -340, -340, -340, -340, 720, -340, -340, -340, -340, 4, 55, 1, 126, 5, 546, 104, 409, 721, 6, 55, 1, 10, 116, 3, 2, 546, 104, 407, 409, 722, 406, 5, 6, 60, 1, 5, 23, -358, -358, -358, -358, -358, 3, 6, 60, 1, 655, 656, 723, 5, 6, 60, 1, 5, 23, -363, -363, -363, -363, -363, 5, 6, 60, 1, 5, 23, -364, -364, -364, -364, -364, 5, 6, 60, 1, 5, 23, -366, -366, -366, -366, -366, 31, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, -346, 127, -346, -346, -346, -346, 125, 126, -346, -346, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 724, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 421, 422, -217, -217, 725, -217, 5, 6, 60, 1, 5, 31, -147, -147, -147, -147, -147, 5, 6, 60, 1, 5, 31, -148, -148, -148, -148, -148, 1, 85, 726, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 307, 152, 104, 154, 155, 153, 99, 727, 728, 83, 156, 195, 306, 194, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 729, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 60, 1, 5, 23, -112, -112, -112, -112, -112, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 439, 730, -217, -217, -217, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 731, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 568, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 732, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 6, 6, 60, 1, 5, 18, 5, -125, -125, -125, -125, -125, -125, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -138, -138, -138, -138, -138, -138, -138, -138, -138, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -139, -139, -139, -139, -139, -139, -139, -139, -139, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 733, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 734, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 65, 735, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 736, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 737, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 738, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 739, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 740, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 741, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, 742, -290, -290, -290, -290, -290, -290, -290, -290, 125, 126, -290, -290, -290, -290, -290, -290, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, 743, -294, -294, -294, -294, -294, -294, -294, -294, 125, 126, -294, -294, -294, -294, -294, -294, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, 1, 85, 744, 5, 6, 60, 1, 5, 49, -196, -196, -196, -196, -196, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 477, 745, -217, -217, -217, 5, 6, 60, 1, 5, 49, -197, -197, -197, -197, -197, 61, 1, 5, 53, 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, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 3, 6, 60, 1, 493, 494, 746, 25, 66, 25, 31, 26, 1, 9, 1, 1, 4, 28, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 747, 124, 125, 126, 96, 97, 748, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 750, 749, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 751, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 752, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 753, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 754, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 755, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 67, 756, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, 3, 67, 78, 12, -254, -254, -254, 24, 66, 6, 19, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -204, -204, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, 3, 6, 60, 29, 647, 648, 757, 3, 54, 5, 1, 758, 105, 106, 5, 6, 60, 1, 5, 23, -330, -330, -330, -330, -330, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 537, 759, -217, -217, -217, 5, 6, 60, 1, 5, 23, -331, -331, -331, -331, -331, 3, 54, 5, 1, 760, 105, 106, 5, 6, 60, 1, 5, 23, -359, -359, -359, -359, -359, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 544, 761, -217, -217, -217, 5, 6, 60, 1, 5, 23, -360, -360, -360, -360, -360, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, 2, 66, 1, 557, 762, 52, 1, 5, 53, 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, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, 4, 93, 70, 2, 2, 763, 459, 461, 462, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 764, 157, 156, 195, 194, 5, 6, 60, 1, 5, 23, -117, -117, -117, -117, -117, 3, 6, 60, 1, 570, 571, 765, 27, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, 127, -116, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 60, 1, 5, 23, -119, -119, -119, -119, -119, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -140, -140, -140, -140, -140, -140, -140, -140, -140, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 766, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 59, 1, 2, 2, -61, -61, -61, -61, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, 125, 126, -284, -284, -284, 767, -284, -284, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, 768, -285, -285, -285, -285, -285, -285, -285, -285, 125, 126, -285, -285, -285, -285, -285, -285, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, 125, 126, -289, -289, -289, -289, -289, -289, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, 125, 126, -293, -293, -293, -293, -293, -293, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, 125, 126, -297, -297, -297, -297, -297, -297, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 769, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 770, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 61, 1, 5, 53, 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, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 3, 6, 60, 1, 603, 604, 771, 6, 6, 60, 1, 5, 49, 3, -177, -177, -177, -177, -177, -177, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 772, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 773, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 774, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 775, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, 1, 142, 776, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, 3, 6, 60, 1, 647, 648, 777, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, 3, 6, 60, 1, 655, 656, 778, 5, 6, 60, 1, 5, 31, -149, -149, -149, -149, -149, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 779, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 93, 780, 5, 6, 60, 1, 5, 23, -113, -113, -113, -113, -113, 1, 85, 781, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 782, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 783, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, 125, 126, -291, -291, -291, -291, -291, -291, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, 125, 126, -295, -295, -295, -295, -295, -295, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 60, 1, 5, 49, -198, -198, -198, -198, -198, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 784, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 785, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, 3, 54, 5, 1, 786, 105, 106, 5, 6, 60, 1, 5, 23, -332, -332, -332, -332, -332, 5, 6, 60, 1, 5, 23, -361, -361, -361, -361, -361, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, 789, -288, -288, -288, -288, 787, -288, 788, -288, -288, -288, -288, -288, -288, -288, -288, 125, 126, -288, -288, -288, -288, -288, -288, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 790, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -141, -141, -141, -141, -141, -141, -141, -141, -141, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, 125, 126, -286, -286, -286, -286, -286, -286, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, 125, 126, -287, -287, -287, -287, -287, -287, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, 1, 95, 791, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 792, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 6, 6, 60, 1, 28, 8, 18, -218, -218, -218, -218, -218, -218, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -290, -290, -290, -290, -290, 789, -290, -290, -290, -290, 793, -290, 794, -290, -290, -290, -290, -290, -290, -290, -290, 125, 126, -290, -290, -290, -290, -290, -290, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, -289, -289, -289, 789, -289, -289, -289, -289, 795, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, 125, 126, -289, -289, -289, -289, -289, -289, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 95, 796, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 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, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 797, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 95, 798, 57, 1, 5, 53, 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, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -291, -291, -291, -291, -291, 789, -291, -291, -291, -291, 799, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, 125, 126, -291, -291, -291, -291, -291, -291, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, 1, 95, 800, 57, 1, 5, 53, 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, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107], t = [], p = 0, n, o, k, a;
2353
2743
  while (p < d.length) {
2354
2744
  n = d[p++];
2355
2745
  o = {};
@@ -2363,7 +2753,7 @@ var parserInstance = {
2363
2753
  }
2364
2754
  return t;
2365
2755
  })(),
2366
- ruleTable: [0, 0, 3, 0, 3, 1, 4, 1, 4, 3, 4, 2, 5, 1, 5, 1, 5, 1, 9, 1, 9, 1, 9, 1, 9, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 45, 1, 45, 1, 55, 1, 57, 1, 54, 1, 54, 3, 61, 1, 61, 2, 63, 3, 63, 5, 63, 2, 63, 1, 47, 1, 47, 3, 71, 3, 71, 1, 17, 3, 17, 4, 17, 5, 18, 3, 18, 4, 18, 5, 19, 3, 19, 4, 19, 5, 20, 3, 20, 4, 20, 5, 21, 3, 21, 4, 21, 5, 21, 2, 21, 3, 21, 4, 36, 1, 36, 1, 36, 1, 78, 1, 78, 1, 78, 3, 78, 3, 78, 4, 78, 6, 78, 4, 78, 6, 78, 4, 78, 5, 78, 7, 78, 3, 78, 3, 78, 4, 78, 6, 80, 10, 80, 12, 80, 11, 80, 13, 80, 4, 98, 0, 98, 1, 98, 3, 98, 4, 98, 6, 99, 1, 99, 1, 99, 3, 99, 5, 99, 3, 99, 5, 101, 1, 101, 1, 101, 1, 89, 1, 89, 3, 89, 4, 89, 1, 100, 2, 100, 2, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 2, 106, 2, 106, 2, 106, 2, 106, 3, 106, 3, 106, 4, 106, 6, 79, 2, 79, 3, 79, 4, 111, 1, 111, 3, 111, 4, 111, 4, 111, 6, 113, 1, 113, 2, 112, 1, 112, 2, 110, 1, 110, 2, 115, 1, 115, 2, 116, 1, 116, 1, 39, 5, 86, 3, 86, 2, 86, 2, 86, 1, 32, 6, 32, 3, 15, 5, 15, 2, 34, 5, 34, 2, 125, 1, 125, 1, 120, 0, 120, 1, 120, 3, 120, 4, 120, 6, 128, 1, 128, 3, 128, 2, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 2, 40, 2, 40, 2, 40, 3, 40, 2, 40, 2, 108, 2, 108, 4, 132, 1, 132, 3, 132, 4, 132, 4, 132, 6, 114, 1, 114, 1, 114, 1, 114, 1, 133, 1, 133, 3, 42, 1, 42, 1, 81, 2, 43, 3, 43, 4, 43, 6, 44, 3, 44, 3, 122, 2, 122, 3, 38, 3, 38, 5, 94, 0, 94, 1, 10, 2, 10, 4, 10, 1, 30, 2, 30, 4, 31, 1, 31, 2, 31, 4, 31, 3, 143, 3, 143, 5, 146, 3, 146, 5, 22, 1, 22, 3, 22, 1, 22, 3, 22, 3, 22, 3, 22, 3, 23, 2, 23, 3, 23, 4, 23, 5, 151, 3, 151, 3, 151, 2, 26, 5, 26, 7, 26, 4, 26, 6, 155, 1, 155, 2, 156, 3, 156, 4, 158, 2, 158, 4, 158, 2, 158, 4, 24, 2, 24, 2, 24, 2, 24, 1, 161, 2, 161, 2, 25, 5, 25, 7, 25, 7, 25, 9, 25, 9, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 3, 25, 5, 25, 5, 25, 7, 25, 7, 25, 9, 25, 9, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 3, 25, 5, 168, 1, 168, 3, 92, 1, 92, 3, 27, 1, 27, 2, 27, 3, 27, 4, 27, 2, 27, 3, 27, 4, 27, 5, 33, 3, 28, 4, 173, 1, 173, 3, 173, 2, 174, 1, 174, 1, 174, 1, 29, 2, 12, 2, 12, 4, 12, 4, 12, 5, 12, 7, 12, 6, 12, 9, 179, 1, 179, 3, 179, 4, 179, 4, 179, 6, 180, 1, 180, 3, 180, 1, 180, 3, 177, 1, 178, 3, 13, 3, 13, 5, 13, 2, 13, 2, 13, 2, 13, 2, 13, 4, 13, 5, 13, 6, 13, 3, 13, 5, 13, 4, 13, 5, 13, 7, 185, 1, 185, 3, 185, 4, 185, 4, 185, 6, 187, 1, 187, 3, 187, 3, 187, 1, 187, 3, 35, 2, 35, 2, 35, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 4, 16, 2, 16, 2, 16, 2, 16, 2, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 3, 16, 5, 16, 4, 41, 2],
2756
+ ruleTable: [0, 0, 3, 0, 3, 1, 4, 1, 4, 3, 4, 2, 5, 1, 5, 1, 5, 1, 9, 1, 9, 1, 9, 1, 9, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 45, 1, 45, 1, 55, 1, 57, 1, 54, 1, 54, 3, 61, 1, 61, 2, 63, 3, 63, 5, 63, 2, 63, 1, 47, 1, 47, 3, 71, 3, 71, 1, 17, 3, 17, 4, 17, 5, 18, 3, 18, 4, 18, 5, 19, 3, 19, 4, 19, 5, 20, 3, 20, 4, 20, 5, 21, 3, 21, 4, 21, 5, 21, 2, 21, 3, 21, 4, 36, 1, 36, 1, 36, 1, 78, 1, 78, 1, 78, 3, 78, 3, 78, 4, 78, 6, 78, 4, 78, 6, 78, 4, 78, 5, 78, 7, 78, 3, 78, 3, 78, 4, 78, 6, 80, 10, 80, 12, 80, 11, 80, 13, 80, 4, 98, 0, 98, 1, 98, 3, 98, 4, 98, 6, 99, 1, 99, 1, 99, 3, 99, 5, 99, 3, 99, 5, 101, 1, 101, 1, 101, 1, 89, 1, 89, 3, 89, 4, 89, 1, 100, 2, 100, 2, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 2, 106, 2, 106, 2, 106, 2, 106, 3, 106, 3, 106, 4, 106, 6, 79, 2, 79, 3, 79, 4, 111, 1, 111, 3, 111, 4, 111, 4, 111, 6, 113, 1, 113, 2, 112, 1, 112, 2, 110, 1, 110, 2, 115, 1, 115, 2, 116, 1, 116, 1, 39, 5, 86, 3, 86, 2, 86, 2, 86, 1, 32, 6, 32, 3, 15, 5, 15, 2, 34, 5, 34, 2, 125, 1, 125, 1, 120, 0, 120, 1, 120, 3, 120, 4, 120, 6, 128, 1, 128, 3, 128, 2, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 2, 40, 2, 40, 2, 40, 3, 40, 2, 40, 2, 108, 2, 108, 4, 132, 1, 132, 3, 132, 4, 132, 4, 132, 6, 114, 1, 114, 1, 114, 1, 114, 1, 133, 1, 133, 3, 42, 1, 42, 1, 81, 2, 43, 3, 43, 4, 43, 6, 44, 3, 44, 3, 122, 2, 122, 3, 38, 3, 38, 5, 94, 0, 94, 1, 10, 2, 10, 4, 10, 1, 30, 2, 30, 4, 31, 1, 31, 2, 31, 4, 31, 3, 143, 3, 143, 5, 146, 3, 146, 5, 22, 1, 22, 3, 22, 1, 22, 3, 22, 3, 22, 7, 22, 3, 22, 3, 23, 2, 23, 3, 23, 4, 23, 5, 151, 3, 151, 3, 151, 2, 26, 5, 26, 7, 26, 4, 26, 6, 155, 1, 155, 2, 156, 3, 156, 4, 158, 2, 158, 4, 158, 2, 158, 4, 24, 2, 24, 2, 24, 2, 24, 1, 161, 2, 161, 2, 161, 3, 25, 5, 25, 7, 25, 7, 25, 9, 25, 9, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 3, 25, 5, 25, 5, 25, 7, 25, 7, 25, 9, 25, 9, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 3, 25, 5, 168, 1, 168, 3, 92, 1, 92, 3, 27, 1, 27, 2, 27, 3, 27, 4, 27, 2, 27, 3, 27, 4, 27, 5, 33, 3, 28, 4, 173, 1, 173, 3, 173, 2, 174, 1, 174, 1, 174, 1, 29, 2, 12, 2, 12, 4, 12, 4, 12, 5, 12, 7, 12, 6, 12, 9, 179, 1, 179, 3, 179, 4, 179, 4, 179, 6, 180, 1, 180, 3, 180, 1, 180, 3, 177, 1, 178, 3, 13, 3, 13, 5, 13, 2, 13, 2, 13, 2, 13, 2, 13, 4, 13, 5, 13, 6, 13, 2, 13, 2, 13, 2, 13, 2, 13, 3, 13, 5, 13, 4, 13, 5, 13, 7, 185, 1, 185, 3, 185, 4, 185, 4, 185, 6, 187, 1, 187, 3, 187, 3, 187, 1, 187, 3, 35, 2, 35, 2, 35, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 4, 16, 2, 16, 2, 16, 2, 16, 2, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 3, 16, 5, 16, 4, 41, 2],
2367
2757
  ruleActions: (rule, vals, locs, shared) => {
2368
2758
  const $ = vals;
2369
2759
  const $0 = vals.length - 1;
@@ -2380,25 +2770,25 @@ var parserInstance = {
2380
2770
  case 174:
2381
2771
  case 194:
2382
2772
  case 203:
2383
- case 250:
2384
- case 300:
2385
- case 312:
2386
- case 326:
2387
- case 351:
2773
+ case 251:
2774
+ case 302:
2775
+ case 314:
2776
+ case 328:
2777
+ case 357:
2388
2778
  return [$[$0]];
2389
2779
  case 4:
2390
2780
  case 111:
2391
2781
  case 175:
2392
2782
  case 195:
2393
2783
  case 204:
2394
- case 313:
2395
- case 327:
2396
- case 352:
2784
+ case 315:
2785
+ case 329:
2786
+ case 358:
2397
2787
  return [...$[$0 - 2], $[$0]];
2398
2788
  case 5:
2399
2789
  case 60:
2400
2790
  case 157:
2401
- case 314:
2791
+ case 316:
2402
2792
  return $[$0 - 1];
2403
2793
  case 6:
2404
2794
  case 7:
@@ -2482,16 +2872,16 @@ var parserInstance = {
2482
2872
  case 218:
2483
2873
  case 232:
2484
2874
  case 234:
2485
- case 261:
2486
- case 298:
2487
- case 315:
2488
- case 316:
2875
+ case 262:
2876
+ case 300:
2489
2877
  case 317:
2490
- case 331:
2878
+ case 318:
2879
+ case 319:
2491
2880
  case 333:
2492
2881
  case 335:
2493
- case 356:
2494
- case 359:
2882
+ case 337:
2883
+ case 362:
2884
+ case 365:
2495
2885
  return $[$0];
2496
2886
  case 47:
2497
2887
  return "undefined";
@@ -2502,13 +2892,13 @@ var parserInstance = {
2502
2892
  case 59:
2503
2893
  case 151:
2504
2894
  case 155:
2505
- case 251:
2895
+ case 252:
2506
2896
  return [...$[$0 - 1], $[$0]];
2507
2897
  case 61:
2508
2898
  case 193:
2509
2899
  case 197:
2510
- case 329:
2511
- case 354:
2900
+ case 331:
2901
+ case 360:
2512
2902
  return $[$0 - 2];
2513
2903
  case 62:
2514
2904
  return "";
@@ -2595,14 +2985,14 @@ var parserInstance = {
2595
2985
  case 112:
2596
2986
  case 176:
2597
2987
  case 196:
2598
- case 328:
2599
- case 353:
2988
+ case 330:
2989
+ case 359:
2600
2990
  return [...$[$0 - 3], $[$0]];
2601
2991
  case 113:
2602
2992
  case 177:
2603
2993
  case 198:
2604
- case 330:
2605
- case 355:
2994
+ case 332:
2995
+ case 361:
2606
2996
  return [...$[$0 - 5], ...$[$0 - 2]];
2607
2997
  case 114:
2608
2998
  return [$[$0], $[$0], null];
@@ -2657,11 +3047,11 @@ var parserInstance = {
2657
3047
  case 160:
2658
3048
  return [$[$0 - 2], $[$0 - 3], $[$0 - 1]];
2659
3049
  case 161:
2660
- case 378:
2661
- case 380:
2662
- case 381:
2663
- case 395:
2664
- case 397:
3050
+ case 384:
3051
+ case 386:
3052
+ case 387:
3053
+ case 402:
3054
+ case 404:
2665
3055
  return [$[$0 - 1], $[$0 - 2], $[$0]];
2666
3056
  case 162:
2667
3057
  return [$[$0], $[$0 - 1], null];
@@ -2680,7 +3070,7 @@ var parserInstance = {
2680
3070
  case 170:
2681
3071
  return [$[$0 - 1], [], $[$0]];
2682
3072
  case 179:
2683
- case 299:
3073
+ case 301:
2684
3074
  return ["default", $[$0 - 2], $[$0]];
2685
3075
  case 180:
2686
3076
  return ["rest", $[$0]];
@@ -2745,242 +3135,252 @@ var parserInstance = {
2745
3135
  case 236:
2746
3136
  return ["if", $[$0], [$[$0 - 2]]];
2747
3137
  case 237:
3138
+ return ["?:", $[$0 - 4], $[$0 - 6], $[$0 - 1]];
2748
3139
  case 238:
2749
- return ["unless", $[$0], [$[$0 - 2]]];
2750
3140
  case 239:
2751
- return ["try", $[$0]];
3141
+ return ["unless", $[$0], [$[$0 - 2]]];
2752
3142
  case 240:
2753
- return ["try", $[$0 - 1], $[$0]];
3143
+ return ["try", $[$0]];
2754
3144
  case 241:
2755
- return ["try", $[$0 - 2], $[$0]];
3145
+ return ["try", $[$0 - 1], $[$0]];
2756
3146
  case 242:
2757
- return ["try", $[$0 - 3], $[$0 - 2], $[$0]];
3147
+ return ["try", $[$0 - 2], $[$0]];
2758
3148
  case 243:
3149
+ return ["try", $[$0 - 3], $[$0 - 2], $[$0]];
2759
3150
  case 244:
2760
- case 361:
2761
- case 364:
2762
- case 366:
2763
- return [$[$0 - 1], $[$0]];
2764
3151
  case 245:
2765
- return [null, $[$0]];
3152
+ case 367:
3153
+ case 370:
3154
+ case 372:
3155
+ return [$[$0 - 1], $[$0]];
2766
3156
  case 246:
2767
- return ["switch", $[$0 - 3], $[$0 - 1], null];
3157
+ return [null, $[$0]];
2768
3158
  case 247:
2769
- return ["switch", $[$0 - 5], $[$0 - 3], $[$0 - 1]];
3159
+ return ["switch", $[$0 - 3], $[$0 - 1], null];
2770
3160
  case 248:
2771
- return ["switch", null, $[$0 - 1], null];
3161
+ return ["switch", $[$0 - 5], $[$0 - 3], $[$0 - 1]];
2772
3162
  case 249:
3163
+ return ["switch", null, $[$0 - 1], null];
3164
+ case 250:
2773
3165
  return ["switch", null, $[$0 - 3], $[$0 - 1]];
2774
- case 252:
2775
- return ["when", $[$0 - 1], $[$0]];
2776
3166
  case 253:
2777
- return ["when", $[$0 - 2], $[$0 - 1]];
3167
+ return ["when", $[$0 - 1], $[$0]];
2778
3168
  case 254:
2779
- return ["while", $[$0]];
3169
+ return ["when", $[$0 - 2], $[$0 - 1]];
2780
3170
  case 255:
2781
- return ["while", $[$0 - 2], $[$0]];
3171
+ return ["while", $[$0]];
2782
3172
  case 256:
2783
- return ["until", $[$0]];
3173
+ return ["while", $[$0 - 2], $[$0]];
2784
3174
  case 257:
2785
- return ["until", $[$0 - 2], $[$0]];
3175
+ return ["until", $[$0]];
2786
3176
  case 258:
2787
- return $[$0 - 1].length === 2 ? [$[$0 - 1][0], $[$0 - 1][1], $[$0]] : [$[$0 - 1][0], $[$0 - 1][1], $[$0 - 1][2], $[$0]];
3177
+ return ["until", $[$0 - 2], $[$0]];
2788
3178
  case 259:
3179
+ return $[$0 - 1].length === 2 ? [$[$0 - 1][0], $[$0 - 1][1], $[$0]] : [$[$0 - 1][0], $[$0 - 1][1], $[$0 - 1][2], $[$0]];
2789
3180
  case 260:
3181
+ case 261:
2790
3182
  return $[$0].length === 2 ? [$[$0][0], $[$0][1], [$[$0 - 1]]] : [$[$0][0], $[$0][1], $[$0][2], [$[$0 - 1]]];
2791
- case 262:
2792
- return ["loop", $[$0]];
2793
3183
  case 263:
2794
- return ["loop", [$[$0]]];
3184
+ return ["loop", $[$0]];
2795
3185
  case 264:
2796
- return ["for-in", $[$0 - 3], $[$0 - 1], null, null, $[$0]];
3186
+ return ["loop", [$[$0]]];
2797
3187
  case 265:
2798
- return ["for-in", $[$0 - 5], $[$0 - 3], null, $[$0 - 1], $[$0]];
3188
+ return ["loop-n", $[$0 - 1], $[$0]];
2799
3189
  case 266:
2800
- return ["for-in", $[$0 - 5], $[$0 - 3], $[$0 - 1], null, $[$0]];
3190
+ return ["for-in", $[$0 - 3], $[$0 - 1], null, null, $[$0]];
2801
3191
  case 267:
2802
- return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 1], $[$0 - 3], $[$0]];
3192
+ return ["for-in", $[$0 - 5], $[$0 - 3], null, $[$0 - 1], $[$0]];
2803
3193
  case 268:
2804
- return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 3], $[$0 - 1], $[$0]];
3194
+ return ["for-in", $[$0 - 5], $[$0 - 3], $[$0 - 1], null, $[$0]];
2805
3195
  case 269:
2806
- return ["for-of", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
3196
+ return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 1], $[$0 - 3], $[$0]];
2807
3197
  case 270:
2808
- return ["for-of", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
3198
+ return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 3], $[$0 - 1], $[$0]];
2809
3199
  case 271:
2810
- return ["for-of", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
3200
+ return ["for-of", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
2811
3201
  case 272:
2812
- return ["for-of", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
3202
+ return ["for-of", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
2813
3203
  case 273:
2814
- return ["for-as", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
3204
+ return ["for-of", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
2815
3205
  case 274:
2816
- return ["for-as", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
3206
+ return ["for-of", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
2817
3207
  case 275:
3208
+ return ["for-as", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
3209
+ case 276:
3210
+ return ["for-as", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
2818
3211
  case 277:
3212
+ case 279:
2819
3213
  return ["for-as", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
2820
- case 276:
2821
3214
  case 278:
3215
+ case 280:
2822
3216
  return ["for-as", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
2823
- case 279:
3217
+ case 281:
2824
3218
  return ["for-in", [], $[$0 - 1], null, null, $[$0]];
2825
- case 280:
3219
+ case 282:
2826
3220
  return ["for-in", [], $[$0 - 3], $[$0 - 1], null, $[$0]];
2827
- case 281:
3221
+ case 283:
2828
3222
  return ["comprehension", $[$0 - 4], [["for-in", $[$0 - 2], $[$0], null]], []];
2829
- case 282:
3223
+ case 284:
2830
3224
  return ["comprehension", $[$0 - 6], [["for-in", $[$0 - 4], $[$0 - 2], null]], [$[$0]]];
2831
- case 283:
3225
+ case 285:
2832
3226
  return ["comprehension", $[$0 - 6], [["for-in", $[$0 - 4], $[$0 - 2], $[$0]]], []];
2833
- case 284:
3227
+ case 286:
2834
3228
  return ["comprehension", $[$0 - 8], [["for-in", $[$0 - 6], $[$0 - 4], $[$0]]], [$[$0 - 2]]];
2835
- case 285:
3229
+ case 287:
2836
3230
  return ["comprehension", $[$0 - 8], [["for-in", $[$0 - 6], $[$0 - 4], $[$0 - 2]]], [$[$0]]];
2837
- case 286:
3231
+ case 288:
2838
3232
  return ["comprehension", $[$0 - 4], [["for-of", $[$0 - 2], $[$0], false]], []];
2839
- case 287:
3233
+ case 289:
2840
3234
  return ["comprehension", $[$0 - 6], [["for-of", $[$0 - 4], $[$0 - 2], false]], [$[$0]]];
2841
- case 288:
3235
+ case 290:
2842
3236
  return ["comprehension", $[$0 - 5], [["for-of", $[$0 - 2], $[$0], true]], []];
2843
- case 289:
3237
+ case 291:
2844
3238
  return ["comprehension", $[$0 - 7], [["for-of", $[$0 - 4], $[$0 - 2], true]], [$[$0]]];
2845
- case 290:
3239
+ case 292:
2846
3240
  return ["comprehension", $[$0 - 4], [["for-as", $[$0 - 2], $[$0], false, null]], []];
2847
- case 291:
3241
+ case 293:
2848
3242
  return ["comprehension", $[$0 - 6], [["for-as", $[$0 - 4], $[$0 - 2], false, null]], [$[$0]]];
2849
- case 292:
3243
+ case 294:
2850
3244
  return ["comprehension", $[$0 - 5], [["for-as", $[$0 - 2], $[$0], true, null]], []];
2851
- case 293:
3245
+ case 295:
2852
3246
  return ["comprehension", $[$0 - 7], [["for-as", $[$0 - 4], $[$0 - 2], true, null]], [$[$0]]];
2853
- case 294:
3247
+ case 296:
2854
3248
  return ["comprehension", $[$0 - 4], [["for-as", $[$0 - 2], $[$0], true, null]], []];
2855
- case 295:
3249
+ case 297:
2856
3250
  return ["comprehension", $[$0 - 6], [["for-as", $[$0 - 4], $[$0 - 2], true, null]], [$[$0]]];
2857
- case 296:
3251
+ case 298:
2858
3252
  return ["comprehension", $[$0 - 2], [["for-in", [], $[$0], null]], []];
2859
- case 297:
3253
+ case 299:
2860
3254
  return ["comprehension", $[$0 - 4], [["for-in", [], $[$0 - 2], $[$0]]], []];
2861
- case 301:
2862
- case 332:
3255
+ case 303:
2863
3256
  case 334:
2864
- case 357:
2865
- case 358:
2866
- case 360:
3257
+ case 336:
3258
+ case 363:
3259
+ case 364:
3260
+ case 366:
2867
3261
  return [$[$0 - 2], $[$0]];
2868
- case 302:
3262
+ case 304:
2869
3263
  return ["class", null, null];
2870
- case 303:
3264
+ case 305:
2871
3265
  return ["class", null, null, $[$0]];
2872
- case 304:
3266
+ case 306:
2873
3267
  return ["class", null, $[$0]];
2874
- case 305:
3268
+ case 307:
2875
3269
  return ["class", null, $[$0 - 1], $[$0]];
2876
- case 306:
3270
+ case 308:
2877
3271
  return ["class", $[$0], null];
2878
- case 307:
3272
+ case 309:
2879
3273
  return ["class", $[$0 - 1], null, $[$0]];
2880
- case 308:
3274
+ case 310:
2881
3275
  return ["class", $[$0 - 2], $[$0]];
2882
- case 309:
3276
+ case 311:
2883
3277
  return ["class", $[$0 - 3], $[$0 - 1], $[$0]];
2884
- case 310:
3278
+ case 312:
2885
3279
  return ["enum", $[$0 - 1], $[$0]];
2886
- case 311:
3280
+ case 313:
2887
3281
  return ["component", null, ["block", ...$[$0 - 1]]];
2888
- case 318:
2889
- return ["render", $[$0]];
2890
- case 319:
2891
- case 322:
2892
- return ["import", "{}", $[$0]];
2893
3282
  case 320:
3283
+ return ["render", $[$0]];
2894
3284
  case 321:
2895
- return ["import", $[$0 - 2], $[$0]];
3285
+ case 324:
3286
+ return ["import", "{}", $[$0]];
3287
+ case 322:
2896
3288
  case 323:
3289
+ return ["import", $[$0 - 2], $[$0]];
3290
+ case 325:
2897
3291
  return ["import", $[$0 - 4], $[$0]];
2898
- case 324:
3292
+ case 326:
2899
3293
  return ["import", [$[$0 - 4], $[$0 - 2]], $[$0]];
2900
- case 325:
3294
+ case 327:
2901
3295
  return ["import", [$[$0 - 7], $[$0 - 4]], $[$0]];
2902
- case 336:
2903
- return ["*", $[$0]];
2904
- case 337:
2905
- return ["export", "{}"];
2906
3296
  case 338:
2907
- return ["export", $[$0 - 2]];
3297
+ return ["*", $[$0]];
2908
3298
  case 339:
3299
+ return ["export", "{}"];
2909
3300
  case 340:
3301
+ return ["export", $[$0 - 2]];
2910
3302
  case 341:
2911
3303
  case 342:
2912
- return ["export", $[$0]];
2913
3304
  case 343:
2914
- return ["export", ["=", $[$0 - 2], $[$0]]];
2915
3305
  case 344:
2916
- return ["export", ["=", $[$0 - 3], $[$0]]];
3306
+ case 348:
3307
+ case 349:
3308
+ case 350:
3309
+ case 351:
3310
+ return ["export", $[$0]];
2917
3311
  case 345:
2918
- return ["export", ["=", $[$0 - 4], $[$0 - 1]]];
3312
+ return ["export", ["=", $[$0 - 2], $[$0]]];
2919
3313
  case 346:
2920
- return ["export-default", $[$0]];
3314
+ return ["export", ["=", $[$0 - 3], $[$0]]];
2921
3315
  case 347:
3316
+ return ["export", ["=", $[$0 - 4], $[$0 - 1]]];
3317
+ case 352:
3318
+ return ["export-default", $[$0]];
3319
+ case 353:
2922
3320
  return ["export-default", $[$0 - 1]];
2923
- case 348:
3321
+ case 354:
2924
3322
  return ["export-all", $[$0]];
2925
- case 349:
3323
+ case 355:
2926
3324
  return ["export-from", "{}", $[$0]];
2927
- case 350:
3325
+ case 356:
2928
3326
  return ["export-from", $[$0 - 4], $[$0]];
2929
- case 362:
2930
- case 363:
2931
- case 365:
2932
- case 400:
3327
+ case 368:
3328
+ case 369:
3329
+ case 371:
3330
+ case 407:
2933
3331
  return ["do-iife", $[$0]];
2934
- case 367:
3332
+ case 373:
2935
3333
  return ["-", $[$0]];
2936
- case 368:
3334
+ case 374:
2937
3335
  return ["+", $[$0]];
2938
- case 369:
3336
+ case 375:
2939
3337
  return ["?", $[$0 - 1]];
2940
- case 370:
3338
+ case 376:
2941
3339
  return ["await", $[$0]];
2942
- case 371:
3340
+ case 377:
2943
3341
  return ["await", $[$0 - 1]];
2944
- case 372:
3342
+ case 378:
2945
3343
  return ["--", $[$0], false];
2946
- case 373:
3344
+ case 379:
2947
3345
  return ["++", $[$0], false];
2948
- case 374:
3346
+ case 380:
2949
3347
  return ["--", $[$0 - 1], true];
2950
- case 375:
3348
+ case 381:
2951
3349
  return ["++", $[$0 - 1], true];
2952
- case 376:
2953
- return ["+", $[$0 - 2], $[$0]];
2954
- case 377:
2955
- return ["-", $[$0 - 2], $[$0]];
2956
- case 379:
2957
- return ["**", $[$0 - 2], $[$0]];
2958
3350
  case 382:
2959
- return ["&", $[$0 - 2], $[$0]];
3351
+ return ["+", $[$0 - 2], $[$0]];
2960
3352
  case 383:
2961
- return ["^", $[$0 - 2], $[$0]];
2962
- case 384:
2963
- return ["|", $[$0 - 2], $[$0]];
3353
+ return ["-", $[$0 - 2], $[$0]];
2964
3354
  case 385:
2965
- case 386:
2966
- case 387:
3355
+ return ["**", $[$0 - 2], $[$0]];
2967
3356
  case 388:
3357
+ return ["&", $[$0 - 2], $[$0]];
2968
3358
  case 389:
3359
+ return ["^", $[$0 - 2], $[$0]];
2969
3360
  case 390:
2970
- return ["control", $[$0 - 1], $[$0 - 2], $[$0]];
3361
+ return ["|", $[$0 - 2], $[$0]];
2971
3362
  case 391:
2972
- return ["&&", $[$0 - 2], $[$0]];
2973
3363
  case 392:
2974
- return ["||", $[$0 - 2], $[$0]];
2975
3364
  case 393:
2976
- return ["??", $[$0 - 2], $[$0]];
2977
3365
  case 394:
2978
- return ["!?", $[$0 - 2], $[$0]];
3366
+ case 395:
2979
3367
  case 396:
2980
- return ["?:", $[$0 - 4], $[$0 - 2], $[$0]];
3368
+ return ["control", $[$0 - 1], $[$0 - 2], $[$0]];
3369
+ case 397:
3370
+ return ["&&", $[$0 - 2], $[$0]];
2981
3371
  case 398:
2982
- return [$[$0 - 3], $[$0 - 4], $[$0 - 1]];
3372
+ return ["||", $[$0 - 2], $[$0]];
2983
3373
  case 399:
3374
+ return ["??", $[$0 - 2], $[$0]];
3375
+ case 400:
3376
+ return ["!?", $[$0 - 2], $[$0]];
3377
+ case 401:
3378
+ return ["|>", $[$0 - 2], $[$0]];
3379
+ case 403:
3380
+ return ["?:", $[$0 - 4], $[$0 - 2], $[$0]];
3381
+ case 405:
3382
+ return [$[$0 - 3], $[$0 - 4], $[$0 - 1]];
3383
+ case 406:
2984
3384
  return [$[$0 - 2], $[$0 - 3], $[$0]];
2985
3385
  }
2986
3386
  },
@@ -3111,7 +3511,7 @@ var parse = parser.parse.bind(parser);
3111
3511
  // src/components.js
3112
3512
  var BIND_PREFIX = "__bind_";
3113
3513
  var BIND_SUFFIX = "__";
3114
- var LIFECYCLE_HOOKS = new Set(["mounted", "unmounted", "updated"]);
3514
+ var LIFECYCLE_HOOKS = new Set(["beforeMount", "mounted", "updated", "beforeUnmount", "unmounted"]);
3115
3515
  function extractInputType(pairs) {
3116
3516
  for (const pair of pairs) {
3117
3517
  if (!Array.isArray(pair))
@@ -3134,6 +3534,11 @@ function getMemberName(target) {
3134
3534
  }
3135
3535
  function installComponentSupport(CodeGenerator) {
3136
3536
  const proto = CodeGenerator.prototype;
3537
+ proto.localizeVar = function(line) {
3538
+ let result = line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g, "$1");
3539
+ result = result.replace(/\bthis\./g, "ctx.");
3540
+ return result;
3541
+ };
3137
3542
  proto.isHtmlTag = function(name) {
3138
3543
  const tagPart = name.split("#")[0];
3139
3544
  return TEMPLATE_TAGS.has(tagPart.toLowerCase());
@@ -3146,7 +3551,7 @@ function installComponentSupport(CodeGenerator) {
3146
3551
  proto.collectTemplateClasses = function(sexpr) {
3147
3552
  const classes = [];
3148
3553
  let current = sexpr;
3149
- while (Array.isArray(current) && current[0] === ".") {
3554
+ while (this.is(current, ".")) {
3150
3555
  const prop = current[2];
3151
3556
  if (typeof prop === "string" || prop instanceof String) {
3152
3557
  classes.unshift(prop.valueOf());
@@ -3179,7 +3584,7 @@ function installComponentSupport(CodeGenerator) {
3179
3584
  const [, body] = rest;
3180
3585
  this.usesTemplates = true;
3181
3586
  this.usesReactivity = true;
3182
- const statements = Array.isArray(body) && body[0] === "block" ? body.slice(1) : [];
3587
+ const statements = this.is(body, "block") ? body.slice(1) : [];
3183
3588
  const stateVars = [];
3184
3589
  const derivedVars = [];
3185
3590
  const readonlyVars = [];
@@ -3359,192 +3764,192 @@ ${blockFactoriesCode}return ${lines.join(`
3359
3764
  throw new Error("render blocks can only be used inside a component");
3360
3765
  };
3361
3766
  proto.buildRender = function(body) {
3362
- this._emitElementCount = 0;
3363
- this._emitTextCount = 0;
3364
- this._emitBlockCount = 0;
3365
- this._emitCreateLines = [];
3366
- this._emitSetupLines = [];
3367
- this._emitBlockFactories = [];
3368
- const statements = Array.isArray(body) && body[0] === "block" ? body.slice(1) : [body];
3767
+ this._elementCount = 0;
3768
+ this._textCount = 0;
3769
+ this._blockCount = 0;
3770
+ this._createLines = [];
3771
+ this._setupLines = [];
3772
+ this._blockFactories = [];
3773
+ const statements = this.is(body, "block") ? body.slice(1) : [body];
3369
3774
  let rootVar;
3370
3775
  if (statements.length === 0) {
3371
3776
  rootVar = "null";
3372
3777
  } else if (statements.length === 1) {
3373
- rootVar = this.emitNode(statements[0]);
3778
+ rootVar = this.generateNode(statements[0]);
3374
3779
  } else {
3375
3780
  rootVar = this.newElementVar("frag");
3376
- this._emitCreateLines.push(`${rootVar} = document.createDocumentFragment();`);
3781
+ this._createLines.push(`${rootVar} = document.createDocumentFragment();`);
3377
3782
  for (const stmt of statements) {
3378
- const childVar = this.emitNode(stmt);
3379
- this._emitCreateLines.push(`${rootVar}.appendChild(${childVar});`);
3783
+ const childVar = this.generateNode(stmt);
3784
+ this._createLines.push(`${rootVar}.appendChild(${childVar});`);
3380
3785
  }
3381
3786
  }
3382
3787
  return {
3383
- createLines: this._emitCreateLines,
3384
- setupLines: this._emitSetupLines,
3385
- blockFactories: this._emitBlockFactories,
3788
+ createLines: this._createLines,
3789
+ setupLines: this._setupLines,
3790
+ blockFactories: this._blockFactories,
3386
3791
  rootVar
3387
3792
  };
3388
3793
  };
3389
3794
  proto.newBlockVar = function() {
3390
- return `create_block_${this._emitBlockCount++}`;
3795
+ return `create_block_${this._blockCount++}`;
3391
3796
  };
3392
3797
  proto.newElementVar = function(hint = "el") {
3393
- return `this._${hint}${this._emitElementCount++}`;
3798
+ return `this._${hint}${this._elementCount++}`;
3394
3799
  };
3395
3800
  proto.newTextVar = function() {
3396
- return `this._t${this._emitTextCount++}`;
3801
+ return `this._t${this._textCount++}`;
3397
3802
  };
3398
- proto.emitNode = function(sexpr) {
3803
+ proto.generateNode = function(sexpr) {
3399
3804
  if (typeof sexpr === "string" || sexpr instanceof String) {
3400
3805
  const str = sexpr.valueOf();
3401
3806
  if (str.startsWith('"') || str.startsWith("'") || str.startsWith("`")) {
3402
3807
  const textVar2 = this.newTextVar();
3403
- this._emitCreateLines.push(`${textVar2} = document.createTextNode(${str});`);
3808
+ this._createLines.push(`${textVar2} = document.createTextNode(${str});`);
3404
3809
  return textVar2;
3405
3810
  }
3406
3811
  if (this.reactiveMembers && this.reactiveMembers.has(str)) {
3407
3812
  const textVar2 = this.newTextVar();
3408
- this._emitCreateLines.push(`${textVar2} = document.createTextNode('');`);
3409
- this._emitSetupLines.push(`__effect(() => { ${textVar2}.data = this.${str}.value; });`);
3813
+ this._createLines.push(`${textVar2} = document.createTextNode('');`);
3814
+ this._setupLines.push(`__effect(() => { ${textVar2}.data = this.${str}.value; });`);
3410
3815
  return textVar2;
3411
3816
  }
3412
3817
  const elVar = this.newElementVar();
3413
- this._emitCreateLines.push(`${elVar} = document.createElement('${str}');`);
3818
+ this._createLines.push(`${elVar} = document.createElement('${str}');`);
3414
3819
  return elVar;
3415
3820
  }
3416
3821
  if (!Array.isArray(sexpr)) {
3417
3822
  const commentVar = this.newElementVar("c");
3418
- this._emitCreateLines.push(`${commentVar} = document.createComment('unknown');`);
3823
+ this._createLines.push(`${commentVar} = document.createComment('unknown');`);
3419
3824
  return commentVar;
3420
3825
  }
3421
3826
  const [head, ...rest] = sexpr;
3422
3827
  const headStr = typeof head === "string" ? head : head instanceof String ? head.valueOf() : null;
3423
3828
  if (headStr && this.isComponent(headStr)) {
3424
- return this.emitChildComponent(headStr, rest);
3829
+ return this.generateChildComponent(headStr, rest);
3425
3830
  }
3426
3831
  if (headStr && this.isHtmlTag(headStr)) {
3427
- return this.emitTag(headStr, [], rest);
3832
+ return this.generateTag(headStr, [], rest);
3428
3833
  }
3429
3834
  if (headStr === ".") {
3430
3835
  const [, obj, prop] = sexpr;
3431
3836
  if (obj === "this" && typeof prop === "string") {
3432
3837
  if (this.reactiveMembers && this.reactiveMembers.has(prop)) {
3433
3838
  const textVar3 = this.newTextVar();
3434
- this._emitCreateLines.push(`${textVar3} = document.createTextNode('');`);
3435
- this._emitSetupLines.push(`__effect(() => { ${textVar3}.data = this.${prop}.value; });`);
3839
+ this._createLines.push(`${textVar3} = document.createTextNode('');`);
3840
+ this._setupLines.push(`__effect(() => { ${textVar3}.data = this.${prop}.value; });`);
3436
3841
  return textVar3;
3437
3842
  }
3438
3843
  if (this.componentMembers && this.componentMembers.has(prop)) {
3439
3844
  const slotVar = this.newElementVar("slot");
3440
- this._emitCreateLines.push(`${slotVar} = this.${prop} instanceof Node ? this.${prop} : (this.${prop} != null ? document.createTextNode(String(this.${prop})) : document.createComment(''));`);
3845
+ this._createLines.push(`${slotVar} = this.${prop} instanceof Node ? this.${prop} : (this.${prop} != null ? document.createTextNode(String(this.${prop})) : document.createComment(''));`);
3441
3846
  return slotVar;
3442
3847
  }
3443
3848
  }
3444
3849
  const { tag, classes } = this.collectTemplateClasses(sexpr);
3445
3850
  if (tag && this.isHtmlTag(tag)) {
3446
- return this.emitTag(tag, classes, []);
3851
+ return this.generateTag(tag, classes, []);
3447
3852
  }
3448
3853
  const textVar2 = this.newTextVar();
3449
3854
  const exprCode2 = this.generateInComponent(sexpr, "value");
3450
- this._emitCreateLines.push(`${textVar2} = document.createTextNode(String(${exprCode2}));`);
3855
+ this._createLines.push(`${textVar2} = document.createTextNode(String(${exprCode2}));`);
3451
3856
  return textVar2;
3452
3857
  }
3453
3858
  if (Array.isArray(head)) {
3454
3859
  if (Array.isArray(head[0]) && head[0][0] === "." && (head[0][2] === "__cx__" || head[0][2] instanceof String && head[0][2].valueOf() === "__cx__")) {
3455
3860
  const tag2 = typeof head[0][1] === "string" ? head[0][1] : head[0][1].valueOf();
3456
3861
  const classExprs = head.slice(1);
3457
- return this.emitDynamicTag(tag2, classExprs, rest);
3862
+ return this.generateDynamicTag(tag2, classExprs, rest);
3458
3863
  }
3459
3864
  const { tag, classes } = this.collectTemplateClasses(head);
3460
3865
  if (tag && this.isHtmlTag(tag)) {
3461
3866
  if (classes.length === 1 && classes[0] === "__cx__") {
3462
- return this.emitDynamicTag(tag, rest, []);
3867
+ return this.generateDynamicTag(tag, rest, []);
3463
3868
  }
3464
- return this.emitTag(tag, classes, rest);
3869
+ return this.generateTag(tag, classes, rest);
3465
3870
  }
3466
3871
  }
3467
3872
  if (headStr === "->" || headStr === "=>") {
3468
- return this.emitBlock(rest[1]);
3873
+ return this.generateTemplateBlock(rest[1]);
3469
3874
  }
3470
3875
  if (headStr === "if") {
3471
- return this.emitConditional(sexpr);
3876
+ return this.generateConditional(sexpr);
3472
3877
  }
3473
3878
  if (headStr === "for" || headStr === "for-in" || headStr === "for-of" || headStr === "for-as") {
3474
- return this.emitLoop(sexpr);
3879
+ return this.generateTemplateLoop(sexpr);
3475
3880
  }
3476
3881
  const textVar = this.newTextVar();
3477
3882
  const exprCode = this.generateInComponent(sexpr, "value");
3478
3883
  if (this.hasReactiveDeps(sexpr)) {
3479
- this._emitCreateLines.push(`${textVar} = document.createTextNode('');`);
3480
- this._emitSetupLines.push(`__effect(() => { ${textVar}.data = ${exprCode}; });`);
3884
+ this._createLines.push(`${textVar} = document.createTextNode('');`);
3885
+ this._setupLines.push(`__effect(() => { ${textVar}.data = ${exprCode}; });`);
3481
3886
  } else {
3482
- this._emitCreateLines.push(`${textVar} = document.createTextNode(String(${exprCode}));`);
3887
+ this._createLines.push(`${textVar} = document.createTextNode(String(${exprCode}));`);
3483
3888
  }
3484
3889
  return textVar;
3485
3890
  };
3486
- proto.emitTag = function(tag, classes, args) {
3891
+ proto.generateTag = function(tag, classes, args) {
3487
3892
  const elVar = this.newElementVar();
3488
- this._emitCreateLines.push(`${elVar} = document.createElement('${tag}');`);
3893
+ this._createLines.push(`${elVar} = document.createElement('${tag}');`);
3489
3894
  if (classes.length > 0) {
3490
- this._emitCreateLines.push(`${elVar}.className = '${classes.join(" ")}';`);
3895
+ this._createLines.push(`${elVar}.className = '${classes.join(" ")}';`);
3491
3896
  }
3492
3897
  for (const arg of args) {
3493
3898
  if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
3494
3899
  const block = arg[2];
3495
- if (Array.isArray(block) && block[0] === "block") {
3900
+ if (this.is(block, "block")) {
3496
3901
  for (const child of block.slice(1)) {
3497
- const childVar = this.emitNode(child);
3498
- this._emitCreateLines.push(`${elVar}.appendChild(${childVar});`);
3902
+ const childVar = this.generateNode(child);
3903
+ this._createLines.push(`${elVar}.appendChild(${childVar});`);
3499
3904
  }
3500
3905
  } else if (block) {
3501
- const childVar = this.emitNode(block);
3502
- this._emitCreateLines.push(`${elVar}.appendChild(${childVar});`);
3906
+ const childVar = this.generateNode(block);
3907
+ this._createLines.push(`${elVar}.appendChild(${childVar});`);
3503
3908
  }
3504
- } else if (Array.isArray(arg) && arg[0] === "object") {
3505
- this.emitAttributes(elVar, arg);
3909
+ } else if (this.is(arg, "object")) {
3910
+ this.generateAttributes(elVar, arg);
3506
3911
  } else if (typeof arg === "string") {
3507
3912
  const textVar = this.newTextVar();
3508
3913
  if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
3509
- this._emitCreateLines.push(`${textVar} = document.createTextNode(${arg});`);
3914
+ this._createLines.push(`${textVar} = document.createTextNode(${arg});`);
3510
3915
  } else if (this.reactiveMembers && this.reactiveMembers.has(arg)) {
3511
- this._emitCreateLines.push(`${textVar} = document.createTextNode('');`);
3512
- this._emitSetupLines.push(`__effect(() => { ${textVar}.data = this.${arg}.value; });`);
3916
+ this._createLines.push(`${textVar} = document.createTextNode('');`);
3917
+ this._setupLines.push(`__effect(() => { ${textVar}.data = this.${arg}.value; });`);
3513
3918
  } else if (this.componentMembers && this.componentMembers.has(arg)) {
3514
- this._emitCreateLines.push(`${textVar} = document.createTextNode(String(this.${arg}));`);
3919
+ this._createLines.push(`${textVar} = document.createTextNode(String(this.${arg}));`);
3515
3920
  } else {
3516
- this._emitCreateLines.push(`${textVar} = document.createTextNode(String(${arg}));`);
3921
+ this._createLines.push(`${textVar} = document.createTextNode(String(${arg}));`);
3517
3922
  }
3518
- this._emitCreateLines.push(`${elVar}.appendChild(${textVar});`);
3923
+ this._createLines.push(`${elVar}.appendChild(${textVar});`);
3519
3924
  } else if (arg instanceof String) {
3520
3925
  const val = arg.valueOf();
3521
3926
  const textVar = this.newTextVar();
3522
3927
  if (val.startsWith('"') || val.startsWith("'") || val.startsWith("`")) {
3523
- this._emitCreateLines.push(`${textVar} = document.createTextNode(${val});`);
3928
+ this._createLines.push(`${textVar} = document.createTextNode(${val});`);
3524
3929
  } else if (this.reactiveMembers && this.reactiveMembers.has(val)) {
3525
- this._emitCreateLines.push(`${textVar} = document.createTextNode('');`);
3526
- this._emitSetupLines.push(`__effect(() => { ${textVar}.data = this.${val}.value; });`);
3930
+ this._createLines.push(`${textVar} = document.createTextNode('');`);
3931
+ this._setupLines.push(`__effect(() => { ${textVar}.data = this.${val}.value; });`);
3527
3932
  } else {
3528
- this._emitCreateLines.push(`${textVar} = document.createTextNode(String(${val}));`);
3933
+ this._createLines.push(`${textVar} = document.createTextNode(String(${val}));`);
3529
3934
  }
3530
- this._emitCreateLines.push(`${elVar}.appendChild(${textVar});`);
3935
+ this._createLines.push(`${elVar}.appendChild(${textVar});`);
3531
3936
  } else if (arg) {
3532
- const childVar = this.emitNode(arg);
3533
- this._emitCreateLines.push(`${elVar}.appendChild(${childVar});`);
3937
+ const childVar = this.generateNode(arg);
3938
+ this._createLines.push(`${elVar}.appendChild(${childVar});`);
3534
3939
  }
3535
3940
  }
3536
3941
  return elVar;
3537
3942
  };
3538
- proto.emitDynamicTag = function(tag, classExprs, children) {
3943
+ proto.generateDynamicTag = function(tag, classExprs, children) {
3539
3944
  const elVar = this.newElementVar();
3540
- this._emitCreateLines.push(`${elVar} = document.createElement('${tag}');`);
3945
+ this._createLines.push(`${elVar} = document.createElement('${tag}');`);
3541
3946
  if (classExprs.length > 0) {
3542
3947
  const classArgs = classExprs.map((e) => this.generateInComponent(e, "value")).join(", ");
3543
3948
  const hasReactive = classExprs.some((e) => this.hasReactiveDeps(e));
3544
3949
  if (hasReactive) {
3545
- this._emitSetupLines.push(`__effect(() => { ${elVar}.className = __cx__(${classArgs}); });`);
3950
+ this._setupLines.push(`__effect(() => { ${elVar}.className = __cx__(${classArgs}); });`);
3546
3951
  } else {
3547
- this._emitCreateLines.push(`${elVar}.className = __cx__(${classArgs});`);
3952
+ this._createLines.push(`${elVar}.className = __cx__(${classArgs});`);
3548
3953
  }
3549
3954
  }
3550
3955
  for (const arg of children) {
@@ -3554,42 +3959,42 @@ ${blockFactoriesCode}return ${lines.join(`
3554
3959
  const blockHead = Array.isArray(block) ? block[0] instanceof String ? block[0].valueOf() : block[0] : null;
3555
3960
  if (blockHead === "block") {
3556
3961
  for (const child of block.slice(1)) {
3557
- const childVar = this.emitNode(child);
3558
- this._emitCreateLines.push(`${elVar}.appendChild(${childVar});`);
3962
+ const childVar = this.generateNode(child);
3963
+ this._createLines.push(`${elVar}.appendChild(${childVar});`);
3559
3964
  }
3560
3965
  } else if (block) {
3561
- const childVar = this.emitNode(block);
3562
- this._emitCreateLines.push(`${elVar}.appendChild(${childVar});`);
3966
+ const childVar = this.generateNode(block);
3967
+ this._createLines.push(`${elVar}.appendChild(${childVar});`);
3563
3968
  }
3564
- } else if (Array.isArray(arg) && arg[0] === "object") {
3565
- this.emitAttributes(elVar, arg);
3969
+ } else if (this.is(arg, "object")) {
3970
+ this.generateAttributes(elVar, arg);
3566
3971
  } else if (typeof arg === "string" || arg instanceof String) {
3567
3972
  const textVar = this.newTextVar();
3568
3973
  const argStr = arg.valueOf();
3569
3974
  if (argStr.startsWith('"') || argStr.startsWith("'") || argStr.startsWith("`")) {
3570
- this._emitCreateLines.push(`${textVar} = document.createTextNode(${argStr});`);
3975
+ this._createLines.push(`${textVar} = document.createTextNode(${argStr});`);
3571
3976
  } else if (this.reactiveMembers && this.reactiveMembers.has(argStr)) {
3572
- this._emitCreateLines.push(`${textVar} = document.createTextNode('');`);
3573
- this._emitSetupLines.push(`__effect(() => { ${textVar}.data = this.${argStr}.value; });`);
3977
+ this._createLines.push(`${textVar} = document.createTextNode('');`);
3978
+ this._setupLines.push(`__effect(() => { ${textVar}.data = this.${argStr}.value; });`);
3574
3979
  } else {
3575
- this._emitCreateLines.push(`${textVar} = document.createTextNode(${this.generateInComponent(arg, "value")});`);
3980
+ this._createLines.push(`${textVar} = document.createTextNode(${this.generateInComponent(arg, "value")});`);
3576
3981
  }
3577
- this._emitCreateLines.push(`${elVar}.appendChild(${textVar});`);
3982
+ this._createLines.push(`${elVar}.appendChild(${textVar});`);
3578
3983
  } else {
3579
- const childVar = this.emitNode(arg);
3580
- this._emitCreateLines.push(`${elVar}.appendChild(${childVar});`);
3984
+ const childVar = this.generateNode(arg);
3985
+ this._createLines.push(`${elVar}.appendChild(${childVar});`);
3581
3986
  }
3582
3987
  }
3583
3988
  return elVar;
3584
3989
  };
3585
- proto.emitAttributes = function(elVar, objExpr) {
3990
+ proto.generateAttributes = function(elVar, objExpr) {
3586
3991
  const inputType = extractInputType(objExpr.slice(1));
3587
3992
  for (let i = 1;i < objExpr.length; i++) {
3588
3993
  let [key, value] = objExpr[i];
3589
- if (Array.isArray(key) && key[0] === "." && key[1] === "this") {
3994
+ if (this.is(key, ".") && key[1] === "this") {
3590
3995
  const eventName = key[2];
3591
3996
  const handlerCode = this.generateInComponent(value, "value");
3592
- this._emitCreateLines.push(`${elVar}.addEventListener('${eventName}', (e) => (${handlerCode})(e));`);
3997
+ this._createLines.push(`${elVar}.addEventListener('${eventName}', (e) => (${handlerCode})(e));`);
3593
3998
  continue;
3594
3999
  }
3595
4000
  if (typeof key === "string") {
@@ -3607,58 +4012,58 @@ ${blockFactoriesCode}return ${lines.join(`
3607
4012
  event = "input";
3608
4013
  valueAccessor = inputType === "number" || inputType === "range" ? "e.target.valueAsNumber" : "e.target.value";
3609
4014
  }
3610
- this._emitSetupLines.push(`__effect(() => { ${elVar}.${prop} = ${valueCode2}; });`);
3611
- this._emitCreateLines.push(`${elVar}.addEventListener('${event}', (e) => ${valueCode2} = ${valueAccessor});`);
4015
+ this._setupLines.push(`__effect(() => { ${elVar}.${prop} = ${valueCode2}; });`);
4016
+ this._createLines.push(`${elVar}.addEventListener('${event}', (e) => ${valueCode2} = ${valueAccessor});`);
3612
4017
  continue;
3613
4018
  }
3614
4019
  const valueCode = this.generateInComponent(value, "value");
3615
4020
  if ((key === "value" || key === "checked") && this.hasReactiveDeps(value)) {
3616
- this._emitSetupLines.push(`__effect(() => { ${elVar}.${key} = ${valueCode}; });`);
4021
+ this._setupLines.push(`__effect(() => { ${elVar}.${key} = ${valueCode}; });`);
3617
4022
  const event = key === "checked" ? "change" : "input";
3618
4023
  const accessor = key === "checked" ? "e.target.checked" : inputType === "number" || inputType === "range" ? "e.target.valueAsNumber" : "e.target.value";
3619
- this._emitCreateLines.push(`${elVar}.addEventListener('${event}', (e) => { ${valueCode} = ${accessor}; });`);
4024
+ this._createLines.push(`${elVar}.addEventListener('${event}', (e) => { ${valueCode} = ${accessor}; });`);
3620
4025
  continue;
3621
4026
  }
3622
4027
  if (this.hasReactiveDeps(value)) {
3623
- this._emitSetupLines.push(`__effect(() => { ${elVar}.setAttribute('${key}', ${valueCode}); });`);
4028
+ this._setupLines.push(`__effect(() => { ${elVar}.setAttribute('${key}', ${valueCode}); });`);
3624
4029
  } else {
3625
- this._emitCreateLines.push(`${elVar}.setAttribute('${key}', ${valueCode});`);
4030
+ this._createLines.push(`${elVar}.setAttribute('${key}', ${valueCode});`);
3626
4031
  }
3627
4032
  }
3628
4033
  }
3629
4034
  };
3630
- proto.emitBlock = function(body) {
4035
+ proto.generateTemplateBlock = function(body) {
3631
4036
  if (!Array.isArray(body) || body[0] !== "block") {
3632
- return this.emitNode(body);
4037
+ return this.generateNode(body);
3633
4038
  }
3634
4039
  const statements = body.slice(1);
3635
4040
  if (statements.length === 0) {
3636
4041
  const commentVar = this.newElementVar("empty");
3637
- this._emitCreateLines.push(`${commentVar} = document.createComment('');`);
4042
+ this._createLines.push(`${commentVar} = document.createComment('');`);
3638
4043
  return commentVar;
3639
4044
  }
3640
4045
  if (statements.length === 1) {
3641
- return this.emitNode(statements[0]);
4046
+ return this.generateNode(statements[0]);
3642
4047
  }
3643
4048
  const fragVar = this.newElementVar("frag");
3644
- this._emitCreateLines.push(`${fragVar} = document.createDocumentFragment();`);
4049
+ this._createLines.push(`${fragVar} = document.createDocumentFragment();`);
3645
4050
  for (const stmt of statements) {
3646
- const childVar = this.emitNode(stmt);
3647
- this._emitCreateLines.push(`${fragVar}.appendChild(${childVar});`);
4051
+ const childVar = this.generateNode(stmt);
4052
+ this._createLines.push(`${fragVar}.appendChild(${childVar});`);
3648
4053
  }
3649
4054
  return fragVar;
3650
4055
  };
3651
- proto.emitConditional = function(sexpr) {
4056
+ proto.generateConditional = function(sexpr) {
3652
4057
  const [, condition, thenBlock, elseBlock] = sexpr;
3653
4058
  const anchorVar = this.newElementVar("anchor");
3654
- this._emitCreateLines.push(`${anchorVar} = document.createComment('if');`);
4059
+ this._createLines.push(`${anchorVar} = document.createComment('if');`);
3655
4060
  const condCode = this.generateInComponent(condition, "value");
3656
4061
  const thenBlockName = this.newBlockVar();
3657
- this.emitConditionBranch(thenBlockName, thenBlock);
4062
+ this.generateConditionBranch(thenBlockName, thenBlock);
3658
4063
  let elseBlockName = null;
3659
4064
  if (elseBlock) {
3660
4065
  elseBlockName = this.newBlockVar();
3661
- this.emitConditionBranch(elseBlockName, elseBlock);
4066
+ this.generateConditionBranch(elseBlockName, elseBlock);
3662
4067
  }
3663
4068
  const setupLines = [];
3664
4069
  setupLines.push(`// Conditional: ${thenBlockName}${elseBlockName ? " / " + elseBlockName : ""}`);
@@ -3693,25 +4098,21 @@ ${blockFactoriesCode}return ${lines.join(`
3693
4098
  }
3694
4099
  setupLines.push(` });`);
3695
4100
  setupLines.push(`}`);
3696
- this._emitSetupLines.push(setupLines.join(`
4101
+ this._setupLines.push(setupLines.join(`
3697
4102
  `));
3698
4103
  return anchorVar;
3699
4104
  };
3700
- proto.emitConditionBranch = function(blockName, block) {
3701
- const savedCreateLines = this._emitCreateLines;
3702
- const savedSetupLines = this._emitSetupLines;
3703
- this._emitCreateLines = [];
3704
- this._emitSetupLines = [];
3705
- const rootVar = this.emitBlock(block);
3706
- const createLines = this._emitCreateLines;
3707
- const setupLines = this._emitSetupLines;
3708
- this._emitCreateLines = savedCreateLines;
3709
- this._emitSetupLines = savedSetupLines;
3710
- const localizeVar = (line) => {
3711
- let result = line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g, "$1");
3712
- result = result.replace(/\bthis\./g, "ctx.");
3713
- return result;
3714
- };
4105
+ proto.generateConditionBranch = function(blockName, block) {
4106
+ const savedCreateLines = this._createLines;
4107
+ const savedSetupLines = this._setupLines;
4108
+ this._createLines = [];
4109
+ this._setupLines = [];
4110
+ const rootVar = this.generateTemplateBlock(block);
4111
+ const createLines = this._createLines;
4112
+ const setupLines = this._setupLines;
4113
+ this._createLines = savedCreateLines;
4114
+ this._setupLines = savedSetupLines;
4115
+ const localizeVar = (line) => this.localizeVar(line);
3715
4116
  const factoryLines = [];
3716
4117
  factoryLines.push(`function ${blockName}(ctx) {`);
3717
4118
  const localVars = new Set;
@@ -3755,24 +4156,24 @@ ${blockFactoriesCode}return ${lines.join(`
3755
4156
  factoryLines.push(` }`);
3756
4157
  factoryLines.push(` };`);
3757
4158
  factoryLines.push(`}`);
3758
- this._emitBlockFactories.push(factoryLines.join(`
4159
+ this._blockFactories.push(factoryLines.join(`
3759
4160
  `));
3760
4161
  };
3761
- proto.emitLoop = function(sexpr) {
4162
+ proto.generateTemplateLoop = function(sexpr) {
3762
4163
  const [head, vars, collection, guard, step, body] = sexpr;
3763
4164
  const blockName = this.newBlockVar();
3764
4165
  const anchorVar = this.newElementVar("anchor");
3765
- this._emitCreateLines.push(`${anchorVar} = document.createComment('for');`);
4166
+ this._createLines.push(`${anchorVar} = document.createComment('for');`);
3766
4167
  const varNames = Array.isArray(vars) ? vars : [vars];
3767
4168
  const itemVar = varNames[0];
3768
4169
  const indexVar = varNames[1] || "i";
3769
4170
  const collectionCode = this.generateInComponent(collection, "value");
3770
4171
  let keyExpr = itemVar;
3771
- if (Array.isArray(body) && body[0] === "block" && body.length > 1) {
4172
+ if (this.is(body, "block") && body.length > 1) {
3772
4173
  const firstChild = body[1];
3773
4174
  if (Array.isArray(firstChild)) {
3774
4175
  for (const arg of firstChild) {
3775
- if (Array.isArray(arg) && arg[0] === "object") {
4176
+ if (this.is(arg, "object")) {
3776
4177
  for (let i = 1;i < arg.length; i++) {
3777
4178
  const [k, v] = arg[i];
3778
4179
  if (k === "key") {
@@ -3786,20 +4187,16 @@ ${blockFactoriesCode}return ${lines.join(`
3786
4187
  }
3787
4188
  }
3788
4189
  }
3789
- const savedCreateLines = this._emitCreateLines;
3790
- const savedSetupLines = this._emitSetupLines;
3791
- this._emitCreateLines = [];
3792
- this._emitSetupLines = [];
3793
- const itemNode = this.emitBlock(body);
3794
- const itemCreateLines = this._emitCreateLines;
3795
- const itemSetupLines = this._emitSetupLines;
3796
- this._emitCreateLines = savedCreateLines;
3797
- this._emitSetupLines = savedSetupLines;
3798
- const localizeVar = (line) => {
3799
- let result = line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g, "$1");
3800
- result = result.replace(/\bthis\./g, "ctx.");
3801
- return result;
3802
- };
4190
+ const savedCreateLines = this._createLines;
4191
+ const savedSetupLines = this._setupLines;
4192
+ this._createLines = [];
4193
+ this._setupLines = [];
4194
+ const itemNode = this.generateTemplateBlock(body);
4195
+ const itemCreateLines = this._createLines;
4196
+ const itemSetupLines = this._setupLines;
4197
+ this._createLines = savedCreateLines;
4198
+ this._setupLines = savedSetupLines;
4199
+ const localizeVar = (line) => this.localizeVar(line);
3803
4200
  const factoryLines = [];
3804
4201
  factoryLines.push(`function ${blockName}(ctx, ${itemVar}, ${indexVar}) {`);
3805
4202
  const localVars = new Set;
@@ -3843,7 +4240,7 @@ ${blockFactoriesCode}return ${lines.join(`
3843
4240
  factoryLines.push(` }`);
3844
4241
  factoryLines.push(` };`);
3845
4242
  factoryLines.push(`}`);
3846
- this._emitBlockFactories.push(factoryLines.join(`
4243
+ this._blockFactories.push(factoryLines.join(`
3847
4244
  `));
3848
4245
  const setupLines = [];
3849
4246
  setupLines.push(`// Loop: ${blockName}`);
@@ -3878,19 +4275,19 @@ ${blockFactoriesCode}return ${lines.join(`
3878
4275
  setupLines.push(` for (const [k, v] of newMap) map.set(k, v);`);
3879
4276
  setupLines.push(` });`);
3880
4277
  setupLines.push(`}`);
3881
- this._emitSetupLines.push(setupLines.join(`
4278
+ this._setupLines.push(setupLines.join(`
3882
4279
  `));
3883
4280
  return anchorVar;
3884
4281
  };
3885
- proto.emitChildComponent = function(componentName, args) {
4282
+ proto.generateChildComponent = function(componentName, args) {
3886
4283
  const instVar = this.newElementVar("inst");
3887
4284
  const elVar = this.newElementVar("el");
3888
4285
  const { propsCode, childrenSetupLines } = this.buildComponentProps(args);
3889
- this._emitCreateLines.push(`${instVar} = new ${componentName}(${propsCode});`);
3890
- this._emitCreateLines.push(`${elVar} = ${instVar}._create();`);
3891
- this._emitSetupLines.push(`if (${instVar}._setup) ${instVar}._setup();`);
4286
+ this._createLines.push(`${instVar} = new ${componentName}(${propsCode});`);
4287
+ this._createLines.push(`${elVar} = ${instVar}._create();`);
4288
+ this._setupLines.push(`if (${instVar}._setup) ${instVar}._setup();`);
3892
4289
  for (const line of childrenSetupLines) {
3893
- this._emitSetupLines.push(line);
4290
+ this._setupLines.push(line);
3894
4291
  }
3895
4292
  return elVar;
3896
4293
  };
@@ -3899,7 +4296,7 @@ ${blockFactoriesCode}return ${lines.join(`
3899
4296
  let childrenVar = null;
3900
4297
  const childrenSetupLines = [];
3901
4298
  for (const arg of args) {
3902
- if (Array.isArray(arg) && arg[0] === "object") {
4299
+ if (this.is(arg, "object")) {
3903
4300
  for (let i = 1;i < arg.length; i++) {
3904
4301
  const [key, value] = arg[i];
3905
4302
  if (typeof key === "string") {
@@ -3910,17 +4307,17 @@ ${blockFactoriesCode}return ${lines.join(`
3910
4307
  } else if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
3911
4308
  const block = arg[2];
3912
4309
  if (block) {
3913
- const savedCreateLines = this._emitCreateLines;
3914
- const savedSetupLines = this._emitSetupLines;
3915
- this._emitCreateLines = [];
3916
- this._emitSetupLines = [];
3917
- childrenVar = this.emitBlock(block);
3918
- const childCreateLines = this._emitCreateLines;
3919
- const childSetupLinesCopy = this._emitSetupLines;
3920
- this._emitCreateLines = savedCreateLines;
3921
- this._emitSetupLines = savedSetupLines;
4310
+ const savedCreateLines = this._createLines;
4311
+ const savedSetupLines = this._setupLines;
4312
+ this._createLines = [];
4313
+ this._setupLines = [];
4314
+ childrenVar = this.generateTemplateBlock(block);
4315
+ const childCreateLines = this._createLines;
4316
+ const childSetupLinesCopy = this._setupLines;
4317
+ this._createLines = savedCreateLines;
4318
+ this._setupLines = savedSetupLines;
3922
4319
  for (const line of childCreateLines) {
3923
- this._emitCreateLines.push(line);
4320
+ this._createLines.push(line);
3924
4321
  }
3925
4322
  childrenSetupLines.push(...childSetupLinesCopy);
3926
4323
  props.push(`children: ${childrenVar}`);
@@ -4337,7 +4734,9 @@ class CodeGenerator {
4337
4734
  "continue-if": "generateContinueIf",
4338
4735
  "?": "generateExistential",
4339
4736
  "?:": "generateTernary",
4737
+ "|>": "generatePipe",
4340
4738
  loop: "generateLoop",
4739
+ "loop-n": "generateLoopN",
4341
4740
  await: "generateAwait",
4342
4741
  yield: "generateYield",
4343
4742
  "yield-from": "generateYieldFrom",
@@ -4464,9 +4863,9 @@ class CodeGenerator {
4464
4863
  let varName = str(target);
4465
4864
  if (!this.reactiveVars?.has(varName))
4466
4865
  this.programVars.add(varName);
4467
- } else if (Array.isArray(target) && target[0] === "array") {
4866
+ } else if (this.is(target, "array")) {
4468
4867
  this.collectVarsFromArray(target, this.programVars);
4469
- } else if (Array.isArray(target) && target[0] === "object") {
4868
+ } else if (this.is(target, "object")) {
4470
4869
  this.collectVarsFromObject(target, this.programVars);
4471
4870
  }
4472
4871
  this.collectProgramVariables(value);
@@ -4492,13 +4891,13 @@ class CodeGenerator {
4492
4891
  this.collectProgramVariables(rest[0]);
4493
4892
  if (rest.length >= 2 && Array.isArray(rest[1]) && rest[1].length === 2 && rest[1][0] !== "block") {
4494
4893
  let [param, catchBlock] = rest[1];
4495
- if (param && Array.isArray(param) && param[0] === "object") {
4894
+ if (param && this.is(param, "object")) {
4496
4895
  param.slice(1).forEach((pair) => {
4497
4896
  if (Array.isArray(pair) && pair.length === 2 && typeof pair[1] === "string") {
4498
4897
  this.programVars.add(pair[1]);
4499
4898
  }
4500
4899
  });
4501
- } else if (param && Array.isArray(param) && param[0] === "array") {
4900
+ } else if (param && this.is(param, "array")) {
4502
4901
  param.slice(1).forEach((item) => {
4503
4902
  if (typeof item === "string")
4504
4903
  this.programVars.add(item);
@@ -4530,9 +4929,9 @@ class CodeGenerator {
4530
4929
  let [target, value] = rest;
4531
4930
  if (typeof target === "string")
4532
4931
  vars.add(target);
4533
- else if (Array.isArray(target) && target[0] === "array")
4932
+ else if (this.is(target, "array"))
4534
4933
  this.collectVarsFromArray(target, vars);
4535
- else if (Array.isArray(target) && target[0] === "object")
4934
+ else if (this.is(target, "object"))
4536
4935
  this.collectVarsFromObject(target, vars);
4537
4936
  collect(value);
4538
4937
  return;
@@ -4543,12 +4942,12 @@ class CodeGenerator {
4543
4942
  collect(rest[0]);
4544
4943
  if (rest.length >= 2 && Array.isArray(rest[1]) && rest[1].length === 2 && rest[1][0] !== "block") {
4545
4944
  let [param, catchBlock] = rest[1];
4546
- if (param && Array.isArray(param) && param[0] === "object") {
4945
+ if (param && this.is(param, "object")) {
4547
4946
  param.slice(1).forEach((pair) => {
4548
4947
  if (Array.isArray(pair) && pair.length === 2 && typeof pair[1] === "string")
4549
4948
  vars.add(pair[1]);
4550
4949
  });
4551
- } else if (param && Array.isArray(param) && param[0] === "array") {
4950
+ } else if (param && this.is(param, "array")) {
4552
4951
  param.slice(1).forEach((item) => {
4553
4952
  if (typeof item === "string")
4554
4953
  vars.add(item);
@@ -4685,7 +5084,7 @@ class CodeGenerator {
4685
5084
  needsAwait = true;
4686
5085
  let [obj, prop] = head.slice(1);
4687
5086
  let objCode = this.generate(obj, "value");
4688
- let needsParens = CodeGenerator.NUMBER_LITERAL_RE.test(objCode) || Array.isArray(obj) && (obj[0] === "object" || obj[0] === "await" || obj[0] === "yield");
5087
+ let needsParens = CodeGenerator.NUMBER_LITERAL_RE.test(objCode) || (this.is(obj, "object") || this.is(obj, "await") || this.is(obj, "yield"));
4689
5088
  let base = needsParens ? `(${objCode})` : objCode;
4690
5089
  calleeCode = `${base}.${str(prop)}`;
4691
5090
  } else {
@@ -4716,9 +5115,9 @@ class CodeGenerator {
4716
5115
  let blockStmts = ["def", "class", "if", "unless", "for-in", "for-of", "for-as", "while", "until", "loop", "switch", "try"];
4717
5116
  let statementsCode = other.map((stmt, index) => {
4718
5117
  let isSingle = other.length === 1 && imports.length === 0 && exports.length === 0;
4719
- let isObj = Array.isArray(stmt) && stmt[0] === "object";
5118
+ let isObj = this.is(stmt, "object");
4720
5119
  let isObjComp = isObj && stmt.length === 2 && Array.isArray(stmt[1]) && Array.isArray(stmt[1][1]) && stmt[1][1][0] === "comprehension";
4721
- let isAlreadyExpr = Array.isArray(stmt) && (stmt[0] === "comprehension" || stmt[0] === "object-comprehension" || stmt[0] === "do-iife");
5120
+ let isAlreadyExpr = this.is(stmt, "comprehension") || this.is(stmt, "object-comprehension") || this.is(stmt, "do-iife");
4722
5121
  let hasNoVars = this.programVars.size === 0;
4723
5122
  let needsParens = isSingle && isObj && hasNoVars && !isAlreadyExpr && !isObjComp;
4724
5123
  let isLast = index === other.length - 1;
@@ -4753,46 +5152,49 @@ class CodeGenerator {
4753
5152
  `;
4754
5153
  needsBlank = true;
4755
5154
  }
4756
- if (this.helpers.has("slice")) {
4757
- code += `const slice = [].slice;
5155
+ let skip = this.options.skipPreamble;
5156
+ if (!skip) {
5157
+ if (this.helpers.has("slice")) {
5158
+ code += `const slice = [].slice;
4758
5159
  `;
4759
- needsBlank = true;
4760
- }
4761
- if (this.helpers.has("modulo")) {
4762
- code += `const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
5160
+ needsBlank = true;
5161
+ }
5162
+ if (this.helpers.has("modulo")) {
5163
+ code += `const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
4763
5164
  `;
4764
- needsBlank = true;
4765
- }
4766
- if (this.helpers.has("toSearchable")) {
4767
- code += `const toSearchable = (v, allowNewlines) => {
5165
+ needsBlank = true;
5166
+ }
5167
+ if (this.helpers.has("toSearchable")) {
5168
+ code += `const toSearchable = (v, allowNewlines) => {
4768
5169
  `;
4769
- code += ` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
5170
+ code += ` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
4770
5171
  `;
4771
- code += ` if (v == null) return "";
5172
+ code += ` if (v == null) return "";
4772
5173
  `;
4773
- code += ` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
5174
+ code += ` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
4774
5175
  `;
4775
- code += ` if (typeof v === "symbol") return v.description || "";
5176
+ code += ` if (typeof v === "symbol") return v.description || "";
4776
5177
  `;
4777
- code += ` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
5178
+ code += ` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
4778
5179
  `;
4779
- code += ` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
5180
+ code += ` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
4780
5181
  `;
4781
- code += ` }
5182
+ code += ` }
4782
5183
  `;
4783
- code += ` if (Array.isArray(v)) return v.join(",");
5184
+ code += ` if (Array.isArray(v)) return v.join(",");
4784
5185
  `;
4785
- code += ` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
5186
+ code += ` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
4786
5187
  `;
4787
- code += ` try { return v.toString(); } catch { return ""; }
5188
+ code += ` try { return v.toString(); } catch { return ""; }
4788
5189
  `;
4789
- code += ` }
5190
+ code += ` }
4790
5191
  `;
4791
- code += ` return "";
5192
+ code += ` return "";
4792
5193
  `;
4793
- code += `};
5194
+ code += `};
4794
5195
  `;
4795
- needsBlank = true;
5196
+ needsBlank = true;
5197
+ }
4796
5198
  }
4797
5199
  let exportsCode = "";
4798
5200
  if (exports.length > 0) {
@@ -4800,7 +5202,7 @@ class CodeGenerator {
4800
5202
  ` + exports.map((s) => this.addSemicolon(s, this.generate(s, "statement"))).join(`
4801
5203
  `);
4802
5204
  }
4803
- if (this.usesReactivity && !this.options.skipReactiveRuntime) {
5205
+ if (this.usesReactivity && !skip) {
4804
5206
  if (typeof globalThis !== "undefined" && globalThis.__rip) {
4805
5207
  code += `const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
4806
5208
  `;
@@ -4809,7 +5211,7 @@ class CodeGenerator {
4809
5211
  }
4810
5212
  needsBlank = true;
4811
5213
  }
4812
- if (this.usesTemplates && !this.options.skipComponentRuntime) {
5214
+ if (this.usesTemplates && !skip) {
4813
5215
  if (typeof globalThis !== "undefined" && globalThis.__ripComponent) {
4814
5216
  code += `const { isSignal, __pushComponent, __popComponent, setContext, getContext, hasContext, __cx__ } = globalThis.__ripComponent;
4815
5217
  `;
@@ -4818,7 +5220,7 @@ class CodeGenerator {
4818
5220
  }
4819
5221
  needsBlank = true;
4820
5222
  }
4821
- if (this.dataSection !== null && this.dataSection !== undefined) {
5223
+ if (this.dataSection !== null && this.dataSection !== undefined && !skip) {
4822
5224
  code += `var DATA;
4823
5225
  _setDataSection();
4824
5226
  `;
@@ -4843,6 +5245,22 @@ function _setDataSection() {
4843
5245
  return `(${op}${this.generate(rest[0], "value")})`;
4844
5246
  }
4845
5247
  let [left, right] = rest;
5248
+ if (op === "*") {
5249
+ let leftStr = left?.valueOf?.() ?? left;
5250
+ if (typeof leftStr === "string" && /^["']/.test(leftStr)) {
5251
+ return `${this.generate(left, "value")}.repeat(${this.generate(right, "value")})`;
5252
+ }
5253
+ }
5254
+ let COMPARE_OPS = new Set(["<", ">", "<=", ">="]);
5255
+ if (COMPARE_OPS.has(op) && Array.isArray(left)) {
5256
+ let leftOp = left[0]?.valueOf?.() ?? left[0];
5257
+ if (COMPARE_OPS.has(leftOp)) {
5258
+ let a = this.generate(left[1], "value");
5259
+ let b = this.generate(left[2], "value");
5260
+ let c = this.generate(right, "value");
5261
+ return `((${a} ${leftOp} ${b}) && (${b} ${op} ${c}))`;
5262
+ }
5263
+ }
4846
5264
  if (op === "!?") {
4847
5265
  let l = this.generate(left, "value"), r = this.generate(right, "value");
4848
5266
  return `(${l} !== undefined ? ${l} : ${r})`;
@@ -4870,7 +5288,7 @@ function _setDataSection() {
4870
5288
  generateAssignment(head, rest, context, sexpr) {
4871
5289
  let [target, value] = rest;
4872
5290
  let op = head === "?=" ? "??=" : head;
4873
- let isFnValue = Array.isArray(value) && (value[0] === "->" || value[0] === "=>" || value[0] === "def");
5291
+ let isFnValue = this.is(value, "->") || this.is(value, "=>") || this.is(value, "def");
4874
5292
  if (target instanceof String && meta(target, "await") !== undefined && !isFnValue) {
4875
5293
  let sigil = meta(target, "await") === true ? "!" : "&";
4876
5294
  throw new Error(`Cannot use ${sigil} sigil in variable declaration '${str(target)}'.`);
@@ -4878,8 +5296,8 @@ function _setDataSection() {
4878
5296
  if (target instanceof String && meta(target, "await") === true && isFnValue) {
4879
5297
  this.nextFunctionIsVoid = true;
4880
5298
  }
4881
- let isEmptyArr = Array.isArray(target) && target[0] === "array" && target.length === 1;
4882
- let isEmptyObj = Array.isArray(target) && target[0] === "object" && target.length === 1;
5299
+ let isEmptyArr = this.is(target, "array", 0);
5300
+ let isEmptyObj = this.is(target, "object", 0);
4883
5301
  if (isEmptyArr || isEmptyObj) {
4884
5302
  let v = this.generate(value, "value");
4885
5303
  return isEmptyObj && context === "statement" ? `(${v})` : v;
@@ -4907,8 +5325,8 @@ function _setDataSection() {
4907
5325
  return `if (!(${targetCode2} = ${exprCode})) ${ctrlCode}`;
4908
5326
  return `if ((${targetCode2} = ${exprCode})) ${ctrlCode}`;
4909
5327
  }
4910
- if (Array.isArray(target) && target[0] === "array") {
4911
- let restIdx = target.slice(1).findIndex((el) => Array.isArray(el) && el[0] === "..." || el === "...");
5328
+ if (this.is(target, "array")) {
5329
+ let restIdx = target.slice(1).findIndex((el) => this.is(el, "...") || el === "...");
4912
5330
  if (restIdx !== -1 && restIdx < target.length - 2) {
4913
5331
  let elements = target.slice(1);
4914
5332
  let afterRest = elements.slice(restIdx + 1);
@@ -4924,11 +5342,11 @@ function _setDataSection() {
4924
5342
  return;
4925
5343
  if (typeof el === "string")
4926
5344
  this.programVars.add(el);
4927
- else if (Array.isArray(el) && el[0] === "..." && typeof el[1] === "string")
5345
+ else if (this.is(el, "...") && typeof el[1] === "string")
4928
5346
  this.programVars.add(el[1]);
4929
5347
  });
4930
5348
  let restEl = elements[restIdx];
4931
- let restVar = Array.isArray(restEl) && restEl[0] === "..." ? restEl[1] : null;
5349
+ let restVar = this.is(restEl, "...") ? restEl[1] : null;
4932
5350
  let stmts = [];
4933
5351
  if (beforePattern)
4934
5352
  stmts.push(`[${beforePattern}] = ${valueCode2}`);
@@ -4941,7 +5359,7 @@ function _setDataSection() {
4941
5359
  }
4942
5360
  if (context === "statement" && head === "=" && Array.isArray(value) && (value[0] === "||" || value[0] === "&&") && value.length === 3) {
4943
5361
  let [binOp, left, right] = value;
4944
- if (Array.isArray(right) && (right[0] === "unless" || right[0] === "if") && right.length === 3) {
5362
+ if ((this.is(right, "unless") || this.is(right, "if")) && right.length === 3) {
4945
5363
  let [condType, condition, wrappedValue] = right;
4946
5364
  let unwrapped = Array.isArray(wrappedValue) && wrappedValue.length === 1 ? wrappedValue[0] : wrappedValue;
4947
5365
  let fullValue = [binOp, left, unwrapped];
@@ -4976,11 +5394,11 @@ function _setDataSection() {
4976
5394
  this.suppressReactiveUnwrap = false;
4977
5395
  }
4978
5396
  let valueCode = this.generate(value, "value");
4979
- let isObjLit = Array.isArray(value) && value[0] === "object";
5397
+ let isObjLit = this.is(value, "object");
4980
5398
  if (!isObjLit)
4981
5399
  valueCode = this.unwrap(valueCode);
4982
5400
  let needsParensVal = context === "value";
4983
- let needsParensObj = context === "statement" && Array.isArray(target) && target[0] === "object";
5401
+ let needsParensObj = context === "statement" && this.is(target, "object");
4984
5402
  if (needsParensVal || needsParensObj)
4985
5403
  return `(${targetCode} ${op} ${valueCode})`;
4986
5404
  return `${targetCode} ${op} ${valueCode}`;
@@ -4990,7 +5408,7 @@ function _setDataSection() {
4990
5408
  this.suppressReactiveUnwrap = true;
4991
5409
  let objCode = this.generate(obj, "value");
4992
5410
  this.suppressReactiveUnwrap = false;
4993
- let needsParens = CodeGenerator.NUMBER_LITERAL_RE.test(objCode) || Array.isArray(obj) && (obj[0] === "object" || obj[0] === "await" || obj[0] === "yield");
5411
+ let needsParens = CodeGenerator.NUMBER_LITERAL_RE.test(objCode) || (this.is(obj, "object") || this.is(obj, "await") || this.is(obj, "yield"));
4994
5412
  let base = needsParens ? `(${objCode})` : objCode;
4995
5413
  if (meta(prop, "await") === true)
4996
5414
  return `await ${base}.${str(prop)}()`;
@@ -5013,14 +5431,14 @@ function _setDataSection() {
5013
5431
  }
5014
5432
  generateIndexAccess(head, rest) {
5015
5433
  let [arr, index] = rest;
5016
- if (Array.isArray(index) && (index[0] === ".." || index[0] === "...")) {
5434
+ if (this.is(index, "..") || this.is(index, "...")) {
5017
5435
  let isIncl = index[0] === "..";
5018
5436
  let arrCode = this.generate(arr, "value");
5019
5437
  let [start, end] = index.slice(1);
5020
5438
  if (start === null && end === null)
5021
5439
  return `${arrCode}.slice()`;
5022
5440
  if (start === null) {
5023
- if (isIncl && this.isNegativeOneLiteral(end))
5441
+ if (isIncl && this.is(end, "-", 1) && (str(end[1]) ?? end[1]) == 1)
5024
5442
  return `${arrCode}.slice(0)`;
5025
5443
  let e2 = this.generate(end, "value");
5026
5444
  return isIncl ? `${arrCode}.slice(0, +${e2} + 1 || 9e9)` : `${arrCode}.slice(0, ${e2})`;
@@ -5028,15 +5446,27 @@ function _setDataSection() {
5028
5446
  if (end === null)
5029
5447
  return `${arrCode}.slice(${this.generate(start, "value")})`;
5030
5448
  let s = this.generate(start, "value");
5031
- if (isIncl && this.isNegativeOneLiteral(end))
5449
+ if (isIncl && this.is(end, "-", 1) && (str(end[1]) ?? end[1]) == 1)
5032
5450
  return `${arrCode}.slice(${s})`;
5033
5451
  let e = this.generate(end, "value");
5034
5452
  return isIncl ? `${arrCode}.slice(${s}, +${e} + 1 || 9e9)` : `${arrCode}.slice(${s}, ${e})`;
5035
5453
  }
5454
+ if (this.is(index, "-", 1)) {
5455
+ let n = str(index[1]) ?? index[1];
5456
+ if (typeof n === "number" || typeof n === "string" && /^\d+$/.test(n)) {
5457
+ return `${this.generate(arr, "value")}.at(-${n})`;
5458
+ }
5459
+ }
5036
5460
  return `${this.generate(arr, "value")}[${this.unwrap(this.generate(index, "value"))}]`;
5037
5461
  }
5038
5462
  generateOptIndex(head, rest) {
5039
5463
  let [arr, index] = rest;
5464
+ if (this.is(index, "-", 1)) {
5465
+ let n = str(index[1]) ?? index[1];
5466
+ if (typeof n === "number" || typeof n === "string" && /^\d+$/.test(n)) {
5467
+ return `${this.generate(arr, "value")}?.at(-${n})`;
5468
+ }
5469
+ }
5040
5470
  return `${this.generate(arr, "value")}?.[${this.generate(index, "value")}]`;
5041
5471
  }
5042
5472
  generateOptCall(head, rest) {
@@ -5055,6 +5485,8 @@ function _setDataSection() {
5055
5485
  }
5056
5486
  generateThinArrow(head, rest, context, sexpr) {
5057
5487
  let [params, body] = rest;
5488
+ if ((!params || Array.isArray(params) && params.length === 0) && this.containsIt(body))
5489
+ params = ["it"];
5058
5490
  let sideEffectOnly = this.nextFunctionIsVoid || false;
5059
5491
  this.nextFunctionIsVoid = false;
5060
5492
  let paramList = this.generateParamList(params);
@@ -5066,6 +5498,8 @@ function _setDataSection() {
5066
5498
  }
5067
5499
  generateFatArrow(head, rest, context, sexpr) {
5068
5500
  let [params, body] = rest;
5501
+ if ((!params || Array.isArray(params) && params.length === 0) && this.containsIt(body))
5502
+ params = ["it"];
5069
5503
  let sideEffectOnly = this.nextFunctionIsVoid || false;
5070
5504
  this.nextFunctionIsVoid = false;
5071
5505
  let paramList = this.generateParamList(params);
@@ -5074,7 +5508,7 @@ function _setDataSection() {
5074
5508
  let isAsync = this.containsAwait(body);
5075
5509
  let prefix = isAsync ? "async " : "";
5076
5510
  if (!sideEffectOnly) {
5077
- if (Array.isArray(body) && body[0] === "block" && body.length === 2) {
5511
+ if (this.is(body, "block") && body.length === 2) {
5078
5512
  let expr = body[1];
5079
5513
  if (!Array.isArray(expr) || expr[0] !== "return") {
5080
5514
  return `${prefix}${paramSyntax} => ${this.generate(expr, "value")}`;
@@ -5093,19 +5527,19 @@ function _setDataSection() {
5093
5527
  let [expr] = rest;
5094
5528
  if (this.sideEffectOnly)
5095
5529
  return "return";
5096
- if (Array.isArray(expr) && expr[0] === "unless") {
5530
+ if (this.is(expr, "unless")) {
5097
5531
  let [, condition, body] = expr;
5098
5532
  let val = Array.isArray(body) && body.length === 1 ? body[0] : body;
5099
5533
  return `if (!${this.generate(condition, "value")}) return ${this.generate(val, "value")}`;
5100
5534
  }
5101
- if (Array.isArray(expr) && expr[0] === "if") {
5535
+ if (this.is(expr, "if")) {
5102
5536
  let [, condition, body, ...elseParts] = expr;
5103
5537
  if (elseParts.length === 0) {
5104
5538
  let val = Array.isArray(body) && body.length === 1 ? body[0] : body;
5105
5539
  return `if (${this.generate(condition, "value")}) return ${this.generate(val, "value")}`;
5106
5540
  }
5107
5541
  }
5108
- if (Array.isArray(expr) && expr[0] === "new" && Array.isArray(expr[1]) && expr[1][0] === "unless") {
5542
+ if (this.is(expr, "new") && Array.isArray(expr[1]) && expr[1][0] === "unless") {
5109
5543
  let [, unlessNode] = expr;
5110
5544
  let [, condition, body] = unlessNode;
5111
5545
  let val = Array.isArray(body) && body.length === 1 ? body[0] : body;
@@ -5139,13 +5573,13 @@ function _setDataSection() {
5139
5573
  let [target, body] = rest;
5140
5574
  this.usesReactivity = true;
5141
5575
  let bodyCode;
5142
- if (Array.isArray(body) && body[0] === "block") {
5576
+ if (this.is(body, "block")) {
5143
5577
  let stmts = this.withIndent(() => this.formatStatements(body.slice(1)));
5144
5578
  bodyCode = `{
5145
5579
  ${stmts.join(`
5146
5580
  `)}
5147
5581
  ${this.indent()}}`;
5148
- } else if (Array.isArray(body) && (body[0] === "->" || body[0] === "=>")) {
5582
+ } else if (this.is(body, "->") || this.is(body, "=>")) {
5149
5583
  let fnCode = this.generate(body, "value");
5150
5584
  if (target)
5151
5585
  return `const ${str(target) ?? this.generate(target, "value")} = __effect(${fnCode})`;
@@ -5173,13 +5607,39 @@ ${this.indent()}}`;
5173
5607
  generateExistential(head, rest) {
5174
5608
  return `(${this.generate(rest[0], "value")} != null)`;
5175
5609
  }
5176
- generateTernary(head, rest) {
5610
+ generateTernary(head, rest, context) {
5177
5611
  let [cond, then_, else_] = rest;
5612
+ let thenHead = then_?.[0]?.valueOf?.() ?? then_?.[0];
5613
+ if (thenHead === "=" && Array.isArray(then_)) {
5614
+ let target = this.generate(then_[1], "value");
5615
+ let thenVal = this.generate(then_[2], "value");
5616
+ let elseVal = this.generate(else_, "value");
5617
+ return `${target} = (${this.unwrap(this.generate(cond, "value"))} ? ${thenVal} : ${elseVal})`;
5618
+ }
5178
5619
  return `(${this.unwrap(this.generate(cond, "value"))} ? ${this.generate(then_, "value")} : ${this.generate(else_, "value")})`;
5179
5620
  }
5621
+ generatePipe(head, rest) {
5622
+ let [left, right] = rest;
5623
+ let leftCode = this.generate(left, "value");
5624
+ if (Array.isArray(right) && right.length > 1) {
5625
+ let fn = right[0];
5626
+ let isCall = Array.isArray(fn) || typeof fn === "string" && /^[a-zA-Z_$]/.test(fn);
5627
+ if (isCall) {
5628
+ let fnCode = this.generate(fn, "value");
5629
+ let args = right.slice(1).map((a) => this.generate(a, "value"));
5630
+ return `${fnCode}(${leftCode}, ${args.join(", ")})`;
5631
+ }
5632
+ }
5633
+ return `${this.generate(right, "value")}(${leftCode})`;
5634
+ }
5180
5635
  generateLoop(head, rest) {
5181
5636
  return `while (true) ${this.generateLoopBody(rest[0])}`;
5182
5637
  }
5638
+ generateLoopN(head, rest) {
5639
+ let [count, body] = rest;
5640
+ let n = this.generate(count, "value");
5641
+ return `for (let _i = 0; _i < ${n}; _i++) ${this.generateLoopBody(body)}`;
5642
+ }
5183
5643
  generateAwait(head, rest) {
5184
5644
  return `await ${this.generate(rest[0], "value")}`;
5185
5645
  }
@@ -5214,12 +5674,12 @@ ${this.indent()}}`;
5214
5674
  let varsArray = Array.isArray(vars) ? vars : [vars];
5215
5675
  let noVar = varsArray.length === 0;
5216
5676
  let [itemVar, indexVar] = noVar ? ["_i", null] : varsArray;
5217
- let itemVarPattern = Array.isArray(itemVar) && (itemVar[0] === "array" || itemVar[0] === "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
5677
+ let itemVarPattern = this.is(itemVar, "array") || this.is(itemVar, "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
5218
5678
  if (step && step !== null) {
5219
5679
  let iterCode = this.generate(iterable, "value");
5220
5680
  let idxName = indexVar || "_i";
5221
5681
  let stepCode = this.generate(step, "value");
5222
- let isNeg = this.isNegativeStep(step);
5682
+ let isNeg = this.is(step, "-", 1);
5223
5683
  let isMinus1 = isNeg && (step[1] === "1" || step[1] === 1 || str(step[1]) === "1");
5224
5684
  let isPlus1 = !isNeg && (step === "1" || step === 1 || str(step) === "1");
5225
5685
  let loopHeader;
@@ -5231,7 +5691,7 @@ ${this.indent()}}`;
5231
5691
  loopHeader = `for (let ${idxName} = ${iterCode}.length - 1; ${idxName} >= 0; ${idxName} += ${stepCode}) `;
5232
5692
  else
5233
5693
  loopHeader = `for (let ${idxName} = 0; ${idxName} < ${iterCode}.length; ${idxName} += ${stepCode}) `;
5234
- if (Array.isArray(body) && body[0] === "block") {
5694
+ if (this.is(body, "block")) {
5235
5695
  let stmts = body.slice(1);
5236
5696
  this.indentLevel++;
5237
5697
  let lines = [];
@@ -5260,7 +5720,7 @@ ${this.indent()}}`;
5260
5720
  if (indexVar) {
5261
5721
  let iterCode = this.generate(iterable, "value");
5262
5722
  let code2 = `for (let ${indexVar} = 0; ${indexVar} < ${iterCode}.length; ${indexVar}++) `;
5263
- if (Array.isArray(body) && body[0] === "block") {
5723
+ if (this.is(body, "block")) {
5264
5724
  code2 += `{
5265
5725
  `;
5266
5726
  this.indentLevel++;
@@ -5294,7 +5754,7 @@ ${this.indent()}}`;
5294
5754
  if (iterHead === ".." || iterHead === "...") {
5295
5755
  let isExcl = iterHead === "...";
5296
5756
  let [start, end] = iterable.slice(1);
5297
- let isSimple = (e) => typeof e === "number" || typeof e === "string" && !e.includes("(") || e instanceof String && !str(e).includes("(") || Array.isArray(e) && e[0] === ".";
5757
+ let isSimple = (e) => typeof e === "number" || typeof e === "string" && !e.includes("(") || e instanceof String && !str(e).includes("(") || this.is(e, ".");
5298
5758
  if (isSimple(start) && isSimple(end)) {
5299
5759
  let s = this.generate(start, "value"), e = this.generate(end, "value");
5300
5760
  let cmp = isExcl ? "<" : "<=";
@@ -5314,7 +5774,7 @@ ${this.indent()}}`;
5314
5774
  let objCode = this.generate(obj, "value");
5315
5775
  let code = `for (const ${keyVar} in ${objCode}) `;
5316
5776
  if (own && !valueVar && !guard) {
5317
- if (Array.isArray(body) && body[0] === "block") {
5777
+ if (this.is(body, "block")) {
5318
5778
  this.indentLevel++;
5319
5779
  let stmts = [`if (!Object.hasOwn(${objCode}, ${keyVar})) continue;`, ...body.slice(1).map((s) => this.addSemicolon(s, this.generate(s, "statement")))];
5320
5780
  this.indentLevel--;
@@ -5326,7 +5786,7 @@ ${this.indent()}}`;
5326
5786
  return code + `{ if (!Object.hasOwn(${objCode}, ${keyVar})) continue; ${this.generate(body, "statement")}; }`;
5327
5787
  }
5328
5788
  if (valueVar) {
5329
- if (Array.isArray(body) && body[0] === "block") {
5789
+ if (this.is(body, "block")) {
5330
5790
  let stmts = body.slice(1);
5331
5791
  this.indentLevel++;
5332
5792
  let lines = [];
@@ -5365,15 +5825,15 @@ ${this.indent()}}`;
5365
5825
  let [firstVar] = varsArray;
5366
5826
  let iterable = rest[1], isAwait = rest[2], guard = rest[3], body = rest[4];
5367
5827
  let needsTempVar = false, destructStmts = [];
5368
- if (Array.isArray(firstVar) && firstVar[0] === "array") {
5828
+ if (this.is(firstVar, "array")) {
5369
5829
  let elements = firstVar.slice(1);
5370
- let restIdx = elements.findIndex((el) => Array.isArray(el) && el[0] === "..." || el === "...");
5830
+ let restIdx = elements.findIndex((el) => this.is(el, "...") || el === "...");
5371
5831
  if (restIdx !== -1 && restIdx < elements.length - 1) {
5372
5832
  needsTempVar = true;
5373
5833
  let afterRest = elements.slice(restIdx + 1), afterCount = afterRest.length;
5374
5834
  let beforeRest = elements.slice(0, restIdx);
5375
5835
  let restEl = elements[restIdx];
5376
- let restVar = Array.isArray(restEl) && restEl[0] === "..." ? restEl[1] : "_rest";
5836
+ let restVar = this.is(restEl, "...") ? restEl[1] : "_rest";
5377
5837
  let beforePattern = beforeRest.map((el) => el === "," ? "" : typeof el === "string" ? el : this.generate(el, "value")).join(", ");
5378
5838
  let firstPattern = beforePattern ? `${beforePattern}, ...${restVar}` : `...${restVar}`;
5379
5839
  let afterPattern = afterRest.map((el) => el === "," ? "" : typeof el === "string" ? el : this.generate(el, "value")).join(", ");
@@ -5385,7 +5845,7 @@ ${this.indent()}}`;
5385
5845
  return;
5386
5846
  if (typeof el === "string")
5387
5847
  this.programVars.add(el);
5388
- else if (Array.isArray(el) && el[0] === "..." && typeof el[1] === "string")
5848
+ else if (this.is(el, "...") && typeof el[1] === "string")
5389
5849
  this.programVars.add(el[1]);
5390
5850
  });
5391
5851
  }
@@ -5395,7 +5855,7 @@ ${this.indent()}}`;
5395
5855
  let itemVarPattern;
5396
5856
  if (needsTempVar)
5397
5857
  itemVarPattern = "_item";
5398
- else if (Array.isArray(firstVar) && (firstVar[0] === "array" || firstVar[0] === "object"))
5858
+ else if (this.is(firstVar, "array") || this.is(firstVar, "object"))
5399
5859
  itemVarPattern = this.generateDestructuringPattern(firstVar);
5400
5860
  else
5401
5861
  itemVarPattern = firstVar;
@@ -5472,7 +5932,7 @@ ${this.indent()}}`;
5472
5932
  let [key, container] = rest;
5473
5933
  let keyCode = this.generate(key, "value");
5474
5934
  let isNeg = meta(sexpr[0], "invert");
5475
- if (Array.isArray(container) && container[0] === "object") {
5935
+ if (this.is(container, "object")) {
5476
5936
  let result2 = `(${keyCode} in ${this.generate(container, "value")})`;
5477
5937
  return isNeg ? `(!${result2})` : result2;
5478
5938
  }
@@ -5497,7 +5957,7 @@ ${this.indent()}}`;
5497
5957
  }
5498
5958
  generateNew(head, rest) {
5499
5959
  let [call] = rest;
5500
- if (Array.isArray(call) && (call[0] === "." || call[0] === "?.")) {
5960
+ if (this.is(call, ".") || this.is(call, "?.")) {
5501
5961
  let [accType, target, prop] = call;
5502
5962
  if (Array.isArray(target) && !target[0].startsWith) {
5503
5963
  return `(${this.generate(["new", target], "value")}).${prop}`;
@@ -5533,7 +5993,7 @@ ${this.indent()}}`;
5533
5993
  return "";
5534
5994
  if (el === "...")
5535
5995
  return "";
5536
- if (Array.isArray(el) && el[0] === "...")
5996
+ if (this.is(el, "..."))
5537
5997
  return `...${this.generate(el[1], "value")}`;
5538
5998
  return this.generate(el, "value");
5539
5999
  }).join(", ");
@@ -5546,13 +6006,13 @@ ${this.indent()}}`;
5546
6006
  return this.generate(["object-comprehension", keyVar, valueExpr, iterators, guards], context);
5547
6007
  }
5548
6008
  let codes = pairs.map((pair) => {
5549
- if (Array.isArray(pair) && pair[0] === "...")
6009
+ if (this.is(pair, "..."))
5550
6010
  return `...${this.generate(pair[1], "value")}`;
5551
6011
  let [key, value, operator] = pair;
5552
6012
  let keyCode;
5553
- if (Array.isArray(key) && key[0] === "dynamicKey")
6013
+ if (this.is(key, "dynamicKey"))
5554
6014
  keyCode = `[${this.generate(key[1], "value")}]`;
5555
- else if (Array.isArray(key) && key[0] === "str")
6015
+ else if (this.is(key, "str"))
5556
6016
  keyCode = `[${this.generate(key, "value")}]`;
5557
6017
  else
5558
6018
  keyCode = this.generate(key, "value");
@@ -5594,18 +6054,18 @@ ${this.indent()}}`;
5594
6054
  let needsReturns = context === "value";
5595
6055
  let tryCode = "try ";
5596
6056
  let tryBlock = rest[0];
5597
- tryCode += needsReturns && Array.isArray(tryBlock) && tryBlock[0] === "block" ? this.generateBlockWithReturns(tryBlock) : this.generate(tryBlock, "statement");
6057
+ tryCode += needsReturns && this.is(tryBlock, "block") ? this.generateBlockWithReturns(tryBlock) : this.generate(tryBlock, "statement");
5598
6058
  if (rest.length >= 2 && Array.isArray(rest[1]) && rest[1].length === 2 && rest[1][0] !== "block") {
5599
6059
  let [param, catchBlock] = rest[1];
5600
6060
  tryCode += " catch";
5601
- if (param && Array.isArray(param) && (param[0] === "object" || param[0] === "array")) {
6061
+ if (param && (this.is(param, "object") || this.is(param, "array"))) {
5602
6062
  tryCode += " (error)";
5603
6063
  let destructStmt = `(${this.generate(param, "value")} = error)`;
5604
- catchBlock = Array.isArray(catchBlock) && catchBlock[0] === "block" ? ["block", destructStmt, ...catchBlock.slice(1)] : ["block", destructStmt, catchBlock];
6064
+ catchBlock = this.is(catchBlock, "block") ? ["block", destructStmt, ...catchBlock.slice(1)] : ["block", destructStmt, catchBlock];
5605
6065
  } else if (param) {
5606
6066
  tryCode += ` (${param})`;
5607
6067
  }
5608
- tryCode += " " + (needsReturns && Array.isArray(catchBlock) && catchBlock[0] === "block" ? this.generateBlockWithReturns(catchBlock) : this.generate(catchBlock, "statement"));
6068
+ tryCode += " " + (needsReturns && this.is(catchBlock, "block") ? this.generateBlockWithReturns(catchBlock) : this.generate(catchBlock, "statement"));
5609
6069
  } else if (rest.length === 2) {
5610
6070
  tryCode += " finally " + this.generate(rest[1], "statement");
5611
6071
  }
@@ -5727,7 +6187,7 @@ ${this.indent()}}`;
5727
6187
  let va = Array.isArray(vars) ? vars : [vars];
5728
6188
  let noVar = va.length === 0;
5729
6189
  let [itemVar, indexVar] = noVar ? ["_i", null] : va;
5730
- let ivp = Array.isArray(itemVar) && (itemVar[0] === "array" || itemVar[0] === "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
6190
+ let ivp = this.is(itemVar, "array") || this.is(itemVar, "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
5731
6191
  if (step && step !== null) {
5732
6192
  let ih = Array.isArray(iterable) && iterable[0];
5733
6193
  if (ih instanceof String)
@@ -5742,7 +6202,7 @@ ${this.indent()}}`;
5742
6202
  this.indentLevel++;
5743
6203
  } else {
5744
6204
  let ic = this.generate(iterable, "value"), idxN = indexVar || "_i", stc = this.generate(step, "value");
5745
- let isNeg = this.isNegativeStep(step);
6205
+ let isNeg = this.is(step, "-", 1);
5746
6206
  code += isNeg ? this.indent() + `for (let ${idxN} = ${ic}.length - 1; ${idxN} >= 0; ${idxN} += ${stc}) {
5747
6207
  ` : this.indent() + `for (let ${idxN} = 0; ${idxN} < ${ic}.length; ${idxN} += ${stc}) {
5748
6208
  `;
@@ -5767,7 +6227,7 @@ ${this.indent()}}`;
5767
6227
  let own = stepOrOwn;
5768
6228
  let va = Array.isArray(vars) ? vars : [vars];
5769
6229
  let [kv, vv] = va;
5770
- let kvp = Array.isArray(kv) && (kv[0] === "array" || kv[0] === "object") ? this.generateDestructuringPattern(kv) : kv;
6230
+ let kvp = this.is(kv, "array") || this.is(kv, "object") ? this.generateDestructuringPattern(kv) : kv;
5771
6231
  let oc = this.generate(iterable, "value");
5772
6232
  code += this.indent() + `for (const ${kvp} in ${oc}) {
5773
6233
  `;
@@ -5782,7 +6242,7 @@ ${this.indent()}}`;
5782
6242
  let isAwait = iter[3];
5783
6243
  let va = Array.isArray(vars) ? vars : [vars];
5784
6244
  let [fv] = va;
5785
- let ivp = Array.isArray(fv) && (fv[0] === "array" || fv[0] === "object") ? this.generateDestructuringPattern(fv) : fv;
6245
+ let ivp = this.is(fv, "array") || this.is(fv, "object") ? this.generateDestructuringPattern(fv) : fv;
5786
6246
  code += this.indent() + `for ${isAwait ? "await " : ""}(const ${ivp} of ${this.generate(iterable, "value")}) {
5787
6247
  `;
5788
6248
  this.indentLevel++;
@@ -5805,7 +6265,7 @@ ${this.indent()}}`;
5805
6265
  return node.some(hasCtrl);
5806
6266
  };
5807
6267
  let loopStmts = ["for-in", "for-of", "for-as", "while", "until", "loop"];
5808
- if (Array.isArray(expr) && expr[0] === "block") {
6268
+ if (this.is(expr, "block")) {
5809
6269
  for (let i = 0;i < expr.length - 1; i++) {
5810
6270
  let s = expr[i + 1], isLast = i === expr.length - 2;
5811
6271
  if (!isLast || hasCtrl(s)) {
@@ -5911,23 +6371,23 @@ ${this.indent()}}`;
5911
6371
  this.indentLevel++;
5912
6372
  let boundMethods = [];
5913
6373
  for (let [mk, mv] of members) {
5914
- let isStatic = this.isStaticMember(mk);
5915
- let isComputed = this.isComputedMember(mk);
6374
+ let isStatic = this.is(mk, ".") && mk[1] === "this";
6375
+ let isComputed = this.is(mk, "computed");
5916
6376
  let mName = this.extractMemberName(mk);
5917
- if (this.isBoundMethod(mv) && !isStatic && !isComputed && mName !== "constructor")
6377
+ if (this.is(mv, "=>") && !isStatic && !isComputed && mName !== "constructor")
5918
6378
  boundMethods.push(mName);
5919
6379
  }
5920
6380
  for (let [mk, mv] of members) {
5921
- let isStatic = this.isStaticMember(mk);
5922
- let isComputed = this.isComputedMember(mk);
6381
+ let isStatic = this.is(mk, ".") && mk[1] === "this";
6382
+ let isComputed = this.is(mk, "computed");
5923
6383
  let mName = this.extractMemberName(mk);
5924
- if (Array.isArray(mv) && (mv[0] === "->" || mv[0] === "=>")) {
6384
+ if (this.is(mv, "->") || this.is(mv, "=>")) {
5925
6385
  let [, params, body] = mv;
5926
6386
  let hasAwait = this.containsAwait(body), hasYield = this.containsYield(body);
5927
6387
  let cleanParams = params, autoAssign = [];
5928
6388
  if (mName === "constructor") {
5929
6389
  cleanParams = params.map((p) => {
5930
- if (Array.isArray(p) && p[0] === "." && p[1] === "this") {
6390
+ if (this.is(p, ".") && p[1] === "this") {
5931
6391
  autoAssign.push(`this.${p[2]} = ${p[2]}`);
5932
6392
  return p[2];
5933
6393
  }
@@ -5959,8 +6419,8 @@ ${this.indent()}}`;
5959
6419
  let additionalStmts = bodyStmts.slice(1);
5960
6420
  this.indentLevel++;
5961
6421
  for (let [mk, mv] of members) {
5962
- let isStatic = this.isStaticMember(mk), mName = this.extractMemberName(mk);
5963
- if (Array.isArray(mv) && (mv[0] === "->" || mv[0] === "=>")) {
6422
+ let isStatic = this.is(mk, ".") && mk[1] === "this", mName = this.extractMemberName(mk);
6423
+ if (this.is(mv, "->") || this.is(mv, "=>")) {
5964
6424
  let [, params, body] = mv;
5965
6425
  let pList = this.generateParamList(params);
5966
6426
  let prefix = (isStatic ? "static " : "") + (this.containsAwait(body) ? "async " : "") + (this.containsYield(body) ? "*" : "");
@@ -5979,9 +6439,9 @@ ${this.indent()}}`;
5979
6439
  }
5980
6440
  }
5981
6441
  for (let stmt of additionalStmts) {
5982
- if (Array.isArray(stmt) && stmt[0] === "class") {
6442
+ if (this.is(stmt, "class")) {
5983
6443
  let [, nestedName, parent, ...nestedBody] = stmt;
5984
- if (Array.isArray(nestedName) && nestedName[0] === "." && nestedName[1] === "this") {
6444
+ if (this.is(nestedName, ".") && nestedName[1] === "this") {
5985
6445
  code += this.indent() + `static ${nestedName[2]} = ${this.generate(["class", null, parent, ...nestedBody], "value")};
5986
6446
  `;
5987
6447
  }
@@ -5994,7 +6454,7 @@ ${this.indent()}}`;
5994
6454
  } else {
5995
6455
  this.indentLevel++;
5996
6456
  for (let stmt of bodyStmts) {
5997
- if (Array.isArray(stmt) && stmt[0] === "=" && Array.isArray(stmt[1]) && stmt[1][0] === "." && stmt[1][1] === "this") {
6457
+ if (this.is(stmt, "=") && Array.isArray(stmt[1]) && stmt[1][0] === "." && stmt[1][1] === "this") {
5998
6458
  code += this.indent() + `static ${stmt[1][2]} = ${this.generate(stmt[2], "value")};
5999
6459
  `;
6000
6460
  } else {
@@ -6050,13 +6510,13 @@ ${this.indent()}}`;
6050
6510
  let [decl] = rest;
6051
6511
  if (Array.isArray(decl) && decl.every((i) => typeof i === "string"))
6052
6512
  return `export { ${decl.join(", ")} }`;
6053
- if (Array.isArray(decl) && decl[0] === "=")
6513
+ if (this.is(decl, "="))
6054
6514
  return `export const ${decl[1]} = ${this.generate(decl[2], "value")}`;
6055
6515
  return `export ${this.generate(decl, "statement")}`;
6056
6516
  }
6057
6517
  generateExportDefault(head, rest) {
6058
6518
  let [expr] = rest;
6059
- if (Array.isArray(expr) && expr[0] === "=") {
6519
+ if (this.is(expr, "=")) {
6060
6520
  return `const ${expr[1]} = ${this.generate(expr[2], "value")};
6061
6521
  export default ${expr[1]}`;
6062
6522
  }
@@ -6144,14 +6604,14 @@ export default ${expr[1]}`;
6144
6604
  return this.formatParam(pattern);
6145
6605
  }
6146
6606
  generateParamList(params) {
6147
- let expIdx = params.findIndex((p) => Array.isArray(p) && p[0] === "expansion");
6607
+ let expIdx = params.findIndex((p) => this.is(p, "expansion"));
6148
6608
  if (expIdx !== -1) {
6149
6609
  let before = params.slice(0, expIdx), after = params.slice(expIdx + 1);
6150
6610
  let regular = before.map((p) => this.formatParam(p)).join(", ");
6151
6611
  this.expansionAfterParams = after;
6152
6612
  return regular ? `${regular}, ..._rest` : "..._rest";
6153
6613
  }
6154
- let restIdx = params.findIndex((p) => Array.isArray(p) && p[0] === "rest");
6614
+ let restIdx = params.findIndex((p) => this.is(p, "rest"));
6155
6615
  if (restIdx !== -1 && restIdx < params.length - 1) {
6156
6616
  let before = params.slice(0, restIdx), restP = params[restIdx], after = params.slice(restIdx + 1);
6157
6617
  let beforeP = before.map((p) => this.formatParam(p));
@@ -6167,21 +6627,21 @@ export default ${expr[1]}`;
6167
6627
  return param;
6168
6628
  if (param instanceof String)
6169
6629
  return param.valueOf();
6170
- if (Array.isArray(param) && param[0] === "rest")
6630
+ if (this.is(param, "rest"))
6171
6631
  return `...${param[1]}`;
6172
- if (Array.isArray(param) && param[0] === "default")
6632
+ if (this.is(param, "default"))
6173
6633
  return `${param[1]} = ${this.generate(param[2], "value")}`;
6174
- if (Array.isArray(param) && param[0] === "." && param[1] === "this")
6634
+ if (this.is(param, ".") && param[1] === "this")
6175
6635
  return param[2];
6176
- if (Array.isArray(param) && param[0] === "array") {
6636
+ if (this.is(param, "array")) {
6177
6637
  let els = param.slice(1).map((el) => {
6178
6638
  if (el === ",")
6179
6639
  return "";
6180
6640
  if (el === "...")
6181
6641
  return "";
6182
- if (Array.isArray(el) && el[0] === "...")
6642
+ if (this.is(el, "..."))
6183
6643
  return `...${el[1]}`;
6184
- if (Array.isArray(el) && el[0] === "=" && typeof el[1] === "string")
6644
+ if (this.is(el, "=") && typeof el[1] === "string")
6185
6645
  return `${el[1]} = ${this.generate(el[2], "value")}`;
6186
6646
  if (typeof el === "string")
6187
6647
  return el;
@@ -6189,11 +6649,11 @@ export default ${expr[1]}`;
6189
6649
  });
6190
6650
  return `[${els.join(", ")}]`;
6191
6651
  }
6192
- if (Array.isArray(param) && param[0] === "object") {
6652
+ if (this.is(param, "object")) {
6193
6653
  let pairs = param.slice(1).map((pair) => {
6194
- if (Array.isArray(pair) && pair[0] === "...")
6654
+ if (this.is(pair, "..."))
6195
6655
  return `...${pair[1]}`;
6196
- if (Array.isArray(pair) && pair[0] === "default")
6656
+ if (this.is(pair, "default"))
6197
6657
  return `${pair[1]} = ${this.generate(pair[2], "value")}`;
6198
6658
  let [key, value] = pair;
6199
6659
  if (key === value)
@@ -6229,7 +6689,7 @@ export default ${expr[1]}`;
6229
6689
  let newVars = new Set([...bodyVars].filter((v) => !this.programVars.has(v) && !this.reactiveVars?.has(v) && !paramNames.has(v)));
6230
6690
  let noRetStmts = ["return", "throw", "break", "continue"];
6231
6691
  let loopStmts = ["for-in", "for-of", "for-as", "while", "until", "loop"];
6232
- if (Array.isArray(body) && body[0] === "block") {
6692
+ if (this.is(body, "block")) {
6233
6693
  let statements = this.unwrapBlock(body);
6234
6694
  if (hasExpansionParams && this.expansionAfterParams?.length > 0) {
6235
6695
  let extr = this.expansionAfterParams.map((p, i) => {
@@ -6244,7 +6704,7 @@ export default ${expr[1]}`;
6244
6704
  let afterCount = afterParams.length;
6245
6705
  let extr = [];
6246
6706
  afterParams.forEach((p, i) => {
6247
- let pn = typeof p === "string" ? p : Array.isArray(p) && p[0] === "default" ? p[1] : JSON.stringify(p);
6707
+ let pn = typeof p === "string" ? p : this.is(p, "default") ? p[1] : JSON.stringify(p);
6248
6708
  extr.push(`const ${pn} = ${restName}[${restName}.length - ${afterCount - i}]`);
6249
6709
  });
6250
6710
  if (afterCount > 0)
@@ -6271,7 +6731,7 @@ export default ${expr[1]}`;
6271
6731
  }
6272
6732
  if (!isConstructor && !sideEffectOnly && isLast && (h === "if" || h === "unless")) {
6273
6733
  let [cond, thenB, ...elseB] = stmt.slice(1);
6274
- let hasMulti = (b) => Array.isArray(b) && b[0] === "block" && b.length > 2;
6734
+ let hasMulti = (b) => this.is(b, "block") && b.length > 2;
6275
6735
  if (hasMulti(thenB) || elseB.some(hasMulti)) {
6276
6736
  code += this.generateIfElseWithEarlyReturns(stmt);
6277
6737
  return;
@@ -6368,7 +6828,7 @@ ${this.indent()}}`;
6368
6828
  if (body[0] === "block" || Array.isArray(body[0])) {
6369
6829
  let stmts = body[0] === "block" ? body.slice(1) : body;
6370
6830
  let lines = this.withIndent(() => stmts.map((s) => {
6371
- if (Array.isArray(s) && s[0] === "comprehension") {
6831
+ if (this.is(s, "comprehension")) {
6372
6832
  let [, expr, iters, guards] = s;
6373
6833
  return this.indent() + this.generateComprehensionAsLoop(expr, iters, guards);
6374
6834
  }
@@ -6409,7 +6869,7 @@ ${this.indent()}}`;
6409
6869
  let code = "";
6410
6870
  code += this.indent() + `${targetVar} = [];
6411
6871
  `;
6412
- let unwrappedExpr = Array.isArray(expr) && expr[0] === "block" && expr.length === 2 ? expr[1] : expr;
6872
+ let unwrappedExpr = this.is(expr, "block") && expr.length === 2 ? expr[1] : expr;
6413
6873
  if (iterators.length === 1) {
6414
6874
  let [iterType, vars, iterable, stepOrOwn] = iterators[0];
6415
6875
  if (iterType === "for-in") {
@@ -6417,7 +6877,7 @@ ${this.indent()}}`;
6417
6877
  let va = Array.isArray(vars) ? vars : [vars];
6418
6878
  let noVar = va.length === 0;
6419
6879
  let [itemVar, indexVar] = noVar ? ["_i", null] : va;
6420
- let ivp = Array.isArray(itemVar) && (itemVar[0] === "array" || itemVar[0] === "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
6880
+ let ivp = this.is(itemVar, "array") || this.is(itemVar, "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
6421
6881
  if (step && step !== null) {
6422
6882
  let ih = Array.isArray(iterable) && iterable[0];
6423
6883
  if (ih instanceof String)
@@ -6430,7 +6890,7 @@ ${this.indent()}}`;
6430
6890
  `;
6431
6891
  } else {
6432
6892
  let ic = this.generate(iterable, "value"), idxN = indexVar || "_i", stc = this.generate(step, "value");
6433
- let isNeg = this.isNegativeStep(step);
6893
+ let isNeg = this.is(step, "-", 1);
6434
6894
  code += isNeg ? this.indent() + `for (let ${idxN} = ${ic}.length - 1; ${idxN} >= 0; ${idxN} += ${stc}) {
6435
6895
  ` : this.indent() + `for (let ${idxN} = 0; ${idxN} < ${ic}.length; ${idxN} += ${stc}) {
6436
6896
  `;
@@ -6474,7 +6934,7 @@ ${this.indent()}}`;
6474
6934
  let va = Array.isArray(vars) ? vars : [vars];
6475
6935
  let noVar = va.length === 0;
6476
6936
  let [itemVar, indexVar] = noVar ? ["_i", null] : va;
6477
- let ivp = Array.isArray(itemVar) && (itemVar[0] === "array" || itemVar[0] === "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
6937
+ let ivp = this.is(itemVar, "array") || this.is(itemVar, "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
6478
6938
  if (step && step !== null) {
6479
6939
  let ih = Array.isArray(iterable) && iterable[0];
6480
6940
  if (ih instanceof String)
@@ -6486,7 +6946,7 @@ ${this.indent()}}`;
6486
6946
  code += `for (let ${ivp} = ${this.generate(s, "value")}; ${ivp} ${isExcl ? "<" : "<="} ${this.generate(e, "value")}; ${ivp} += ${this.generate(step, "value")}) `;
6487
6947
  } else {
6488
6948
  let ic = this.generate(iterable, "value"), idxN = indexVar || "_i", stc = this.generate(step, "value");
6489
- let isNeg = this.isNegativeStep(step);
6949
+ let isNeg = this.is(step, "-", 1);
6490
6950
  let isMinus1 = isNeg && (step[1] === "1" || step[1] === 1 || str(step[1]) === "1");
6491
6951
  let isPlus1 = !isNeg && (step === "1" || step === 1 || str(step) === "1");
6492
6952
  if (isMinus1)
@@ -6593,7 +7053,7 @@ ${this.indent()}}`;
6593
7053
  if (iterType === "for-as") {
6594
7054
  let va = Array.isArray(vars) ? vars : [vars];
6595
7055
  let [fv] = va;
6596
- let ivp = Array.isArray(fv) && (fv[0] === "array" || fv[0] === "object") ? this.generateDestructuringPattern(fv) : fv;
7056
+ let ivp = this.is(fv, "array") || this.is(fv, "object") ? this.generateDestructuringPattern(fv) : fv;
6597
7057
  code += `for (const ${ivp} of ${this.generate(iterable, "value")}) `;
6598
7058
  if (guards?.length) {
6599
7059
  code += `{
@@ -6707,7 +7167,7 @@ ${this.indent()}}`;
6707
7167
  code += this.indent() + "}";
6708
7168
  for (let branch of elseBranches) {
6709
7169
  code += " else ";
6710
- if (Array.isArray(branch) && branch[0] === "if") {
7170
+ if (this.is(branch, "if")) {
6711
7171
  let [, nc, nt, ...ne] = branch;
6712
7172
  code += `if (${this.generate(nc, "value")}) {
6713
7173
  `;
@@ -6745,7 +7205,7 @@ ${this.indent()}}`;
6745
7205
  return code;
6746
7206
  }
6747
7207
  generateIfAsExpression(condition, thenBranch, elseBranches) {
6748
- let needsIIFE = this.isMultiStatementBlock(thenBranch) || this.hasStatementInBranch(thenBranch) || elseBranches.some((b) => this.isMultiStatementBlock(b) || this.hasStatementInBranch(b) || this.hasNestedMultiStatement(b));
7208
+ let needsIIFE = this.is(thenBranch, "block") && thenBranch.length > 2 || this.hasStatementInBranch(thenBranch) || elseBranches.some((b) => this.is(b, "block") && b.length > 2 || this.hasStatementInBranch(b) || this.hasNestedMultiStatement(b));
6749
7209
  if (needsIIFE) {
6750
7210
  let hasAwait = this.containsAwait(condition) || this.containsAwait(thenBranch) || elseBranches.some((b) => this.containsAwait(b));
6751
7211
  let code = `${hasAwait ? "await " : ""}(${hasAwait ? "async " : ""}() => { `;
@@ -6753,13 +7213,13 @@ ${this.indent()}}`;
6753
7213
  code += this.generateBlockWithReturns(thenBranch);
6754
7214
  for (let branch of elseBranches) {
6755
7215
  code += " else ";
6756
- if (Array.isArray(branch) && branch[0] === "if") {
7216
+ if (this.is(branch, "if")) {
6757
7217
  let [_, nc, nt, ...ne] = branch;
6758
7218
  code += `if (${this.generate(nc, "value")}) `;
6759
7219
  code += this.generateBlockWithReturns(nt);
6760
7220
  for (let nb of ne) {
6761
7221
  code += " else ";
6762
- if (Array.isArray(nb) && nb[0] === "if") {
7222
+ if (this.is(nb, "if")) {
6763
7223
  let [__, nnc, nnt, ...nne] = nb;
6764
7224
  code += `if (${this.generate(nnc, "value")}) `;
6765
7225
  code += this.generateBlockWithReturns(nnt);
@@ -6777,7 +7237,7 @@ ${this.indent()}}`;
6777
7237
  let thenExpr = this.extractExpression(this.unwrapIfBranch(thenBranch));
6778
7238
  let elseExpr = this.buildTernaryChain(elseBranches);
6779
7239
  let condCode = this.generate(condition, "value");
6780
- if (Array.isArray(condition) && (condition[0] === "yield" || condition[0] === "await"))
7240
+ if (this.is(condition, "yield") || this.is(condition, "await"))
6781
7241
  condCode = `(${condCode})`;
6782
7242
  return `(${condCode} ? ${thenExpr} : ${elseExpr})`;
6783
7243
  }
@@ -6796,7 +7256,7 @@ ${this.indent()}}`;
6796
7256
  code += this.indent() + this.generate(s, "statement") + `;
6797
7257
  `;
6798
7258
  } else if (context === "value") {
6799
- if (Array.isArray(body) && body[0] === "block" && body.length > 2) {
7259
+ if (this.is(body, "block") && body.length > 2) {
6800
7260
  let stmts = body.slice(1);
6801
7261
  for (let i = 0;i < stmts.length; i++) {
6802
7262
  if (i === stmts.length - 1)
@@ -6811,7 +7271,7 @@ ${this.indent()}}`;
6811
7271
  `;
6812
7272
  }
6813
7273
  } else {
6814
- if (Array.isArray(body) && body[0] === "block" && body.length > 1) {
7274
+ if (this.is(body, "block") && body.length > 1) {
6815
7275
  for (let s of body.slice(1))
6816
7276
  code += this.indent() + this.generate(s, "statement") + `;
6817
7277
  `;
@@ -6931,13 +7391,15 @@ ${this.indent()}}`;
6931
7391
  this.indentLevel--;
6932
7392
  return result;
6933
7393
  }
6934
- isNegativeStep(step) {
6935
- if (!Array.isArray(step) || step.length !== 2)
6936
- return false;
6937
- return (str(step[0]) ?? step[0]) === "-";
6938
- }
6939
- isNegativeOneLiteral(sexpr) {
6940
- return Array.isArray(sexpr) && sexpr[0] === "-" && sexpr.length === 2 && (sexpr[1] === "1" || sexpr[1] === 1 || str(sexpr[1]) === "1");
7394
+ is(node, op, arity) {
7395
+ if (!Array.isArray(node))
7396
+ return null;
7397
+ if ((str(node[0]) ?? node[0]) !== op)
7398
+ return null;
7399
+ let args = node.slice(1);
7400
+ if (arity != null && args.length !== arity)
7401
+ return null;
7402
+ return args;
6941
7403
  }
6942
7404
  unwrap(code) {
6943
7405
  if (typeof code !== "string")
@@ -7021,15 +7483,12 @@ ${this.indent()}}`;
7021
7483
  return branch.slice(1).some((s) => this.hasStatementInBranch(s));
7022
7484
  return false;
7023
7485
  }
7024
- isMultiStatementBlock(branch) {
7025
- return Array.isArray(branch) && branch[0] === "block" && branch.length > 2;
7026
- }
7027
7486
  hasNestedMultiStatement(branch) {
7028
7487
  if (!Array.isArray(branch))
7029
7488
  return false;
7030
7489
  if (branch[0] === "if") {
7031
7490
  let [_, cond, then_, ...elseB] = branch;
7032
- return this.isMultiStatementBlock(then_) || elseB.some((b) => this.hasNestedMultiStatement(b));
7491
+ return this.is(then_, "block") && then_.length > 2 || elseB.some((b) => this.hasNestedMultiStatement(b));
7033
7492
  }
7034
7493
  return false;
7035
7494
  }
@@ -7039,7 +7498,7 @@ ${this.indent()}}`;
7039
7498
  if (branches.length === 1)
7040
7499
  return this.extractExpression(this.unwrapIfBranch(branches[0]));
7041
7500
  let first = branches[0];
7042
- if (Array.isArray(first) && first[0] === "if") {
7501
+ if (this.is(first, "if")) {
7043
7502
  let [_, cond, then_, ...rest] = first;
7044
7503
  let thenPart = this.extractExpression(this.unwrapIfBranch(then_));
7045
7504
  let elsePart = this.buildTernaryChain([...rest, ...branches.slice(1)]);
@@ -7183,6 +7642,19 @@ ${this.indent()}}`;
7183
7642
  }
7184
7643
  return `'${finalPath}'` + assertion;
7185
7644
  }
7645
+ containsIt(sexpr) {
7646
+ if (!sexpr)
7647
+ return false;
7648
+ if (sexpr === "it" || sexpr instanceof String && str(sexpr) === "it")
7649
+ return true;
7650
+ if (typeof sexpr !== "object")
7651
+ return false;
7652
+ if (this.is(sexpr, "def") || this.is(sexpr, "->") || this.is(sexpr, "=>"))
7653
+ return false;
7654
+ if (Array.isArray(sexpr))
7655
+ return sexpr.some((item) => this.containsIt(item));
7656
+ return false;
7657
+ }
7186
7658
  containsAwait(sexpr) {
7187
7659
  if (!sexpr)
7188
7660
  return false;
@@ -7190,11 +7662,11 @@ ${this.indent()}}`;
7190
7662
  return true;
7191
7663
  if (typeof sexpr !== "object")
7192
7664
  return false;
7193
- if (Array.isArray(sexpr) && sexpr[0] === "await")
7665
+ if (this.is(sexpr, "await"))
7194
7666
  return true;
7195
- if (Array.isArray(sexpr) && sexpr[0] === "for-as" && sexpr[3] === true)
7667
+ if (this.is(sexpr, "for-as") && sexpr[3] === true)
7196
7668
  return true;
7197
- if (Array.isArray(sexpr) && (sexpr[0] === "def" || sexpr[0] === "->" || sexpr[0] === "=>" || sexpr[0] === "class"))
7669
+ if (this.is(sexpr, "def") || this.is(sexpr, "->") || this.is(sexpr, "=>") || this.is(sexpr, "class"))
7198
7670
  return false;
7199
7671
  if (Array.isArray(sexpr))
7200
7672
  return sexpr.some((item) => this.containsAwait(item));
@@ -7205,30 +7677,21 @@ ${this.indent()}}`;
7205
7677
  return false;
7206
7678
  if (typeof sexpr !== "object")
7207
7679
  return false;
7208
- if (Array.isArray(sexpr) && (sexpr[0] === "yield" || sexpr[0] === "yield-from"))
7680
+ if (this.is(sexpr, "yield") || this.is(sexpr, "yield-from"))
7209
7681
  return true;
7210
- if (Array.isArray(sexpr) && (sexpr[0] === "def" || sexpr[0] === "->" || sexpr[0] === "=>" || sexpr[0] === "class"))
7682
+ if (this.is(sexpr, "def") || this.is(sexpr, "->") || this.is(sexpr, "=>") || this.is(sexpr, "class"))
7211
7683
  return false;
7212
7684
  if (Array.isArray(sexpr))
7213
7685
  return sexpr.some((item) => this.containsYield(item));
7214
7686
  return false;
7215
7687
  }
7216
- isStaticMember(mk) {
7217
- return Array.isArray(mk) && mk[0] === "." && mk[1] === "this";
7218
- }
7219
- isComputedMember(mk) {
7220
- return Array.isArray(mk) && mk[0] === "computed";
7221
- }
7222
7688
  extractMemberName(mk) {
7223
- if (this.isStaticMember(mk))
7689
+ if (this.is(mk, ".") && mk[1] === "this")
7224
7690
  return mk[2];
7225
- if (this.isComputedMember(mk))
7691
+ if (this.is(mk, "computed"))
7226
7692
  return `[${this.generate(mk[1], "value")}]`;
7227
7693
  return mk;
7228
7694
  }
7229
- isBoundMethod(mv) {
7230
- return Array.isArray(mv) && mv[0] === "=>";
7231
- }
7232
7695
  getReactiveRuntime() {
7233
7696
  return `// ============================================================================
7234
7697
  // Rip Reactive Runtime
@@ -7471,14 +7934,17 @@ class Compiler {
7471
7934
  console.log();
7472
7935
  }
7473
7936
  let dts = null;
7937
+ let typeTokens = null;
7474
7938
  if (this.options.types === "emit" || this.options.types === "check" || this.options.types === true) {
7475
- dts = emitTypes(tokens);
7939
+ typeTokens = [...tokens];
7476
7940
  }
7477
7941
  tokens = tokens.filter((t) => t[0] !== "TYPE_DECL");
7478
7942
  while (tokens.length > 0 && tokens[0][0] === "TERMINATOR") {
7479
7943
  tokens.shift();
7480
7944
  }
7481
7945
  if (tokens.every((t) => t[0] === "TERMINATOR")) {
7946
+ if (typeTokens)
7947
+ dts = emitTypes(typeTokens, ["program"]);
7482
7948
  return { tokens, sexpr: ["program"], code: "", dts, data: dataSection, reactiveVars: {} };
7483
7949
  }
7484
7950
  parser.lexer = {
@@ -7520,8 +7986,7 @@ class Compiler {
7520
7986
  }
7521
7987
  let generator = new CodeGenerator({
7522
7988
  dataSection,
7523
- skipReactiveRuntime: this.options.skipReactiveRuntime,
7524
- skipComponentRuntime: this.options.skipComponentRuntime,
7989
+ skipPreamble: this.options.skipPreamble,
7525
7990
  reactiveVars: this.options.reactiveVars,
7526
7991
  sourceMap
7527
7992
  });
@@ -7536,6 +8001,9 @@ class Compiler {
7536
8001
  code += `
7537
8002
  //# sourceMappingURL=${this.options.filename}.js.map`;
7538
8003
  }
8004
+ if (typeTokens) {
8005
+ dts = emitTypes(typeTokens, sexpr);
8006
+ }
7539
8007
  return { tokens, sexpr, code, dts, map, reverseMap, data: dataSection, reactiveVars: generator.reactiveVars };
7540
8008
  }
7541
8009
  compileToJS(source) {
@@ -7560,8 +8028,8 @@ function getComponentRuntime() {
7560
8028
  return new CodeGenerator({}).getComponentRuntime();
7561
8029
  }
7562
8030
  // src/browser.js
7563
- var VERSION = "3.6.1";
7564
- var BUILD_DATE = "2026-02-11@00:29:14GMT";
8031
+ var VERSION = "3.7.0";
8032
+ var BUILD_DATE = "2026-02-11@09:35:09GMT";
7565
8033
  if (typeof globalThis !== "undefined" && !globalThis.__rip) {
7566
8034
  new Function(getReactiveRuntime())();
7567
8035
  }