rip-lang 2.5.1 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -10
- package/README.md +133 -289
- package/docs/BROWSER.md +8 -11
- package/docs/GUIDE.md +101 -923
- package/docs/INTERNALS.md +1 -1
- package/docs/PHILOSOPHY.md +22 -77
- package/docs/REACTIVITY.md +288 -0
- package/docs/WHY-YES-RIP.md +39 -177
- package/docs/dist/rip.browser.js +605 -2453
- package/docs/dist/rip.browser.min.js +283 -359
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/docs/repl.html +94 -437
- package/package.json +4 -1
- package/scripts/serve.js +2 -0
- package/src/compiler.js +73 -2160
- package/src/grammar/grammar.rip +22 -57
- package/src/lexer.js +11 -333
- package/src/parser.js +220 -223
- package/src/repl.js +202 -128
- package/src/tags.js +0 -62
package/docs/dist/rip.browser.js
CHANGED
|
@@ -1,184 +1,3 @@
|
|
|
1
|
-
// src/tags.js
|
|
2
|
-
var HTML_TAGS = new Set([
|
|
3
|
-
"html",
|
|
4
|
-
"head",
|
|
5
|
-
"title",
|
|
6
|
-
"base",
|
|
7
|
-
"link",
|
|
8
|
-
"meta",
|
|
9
|
-
"style",
|
|
10
|
-
"body",
|
|
11
|
-
"address",
|
|
12
|
-
"article",
|
|
13
|
-
"aside",
|
|
14
|
-
"footer",
|
|
15
|
-
"header",
|
|
16
|
-
"h1",
|
|
17
|
-
"h2",
|
|
18
|
-
"h3",
|
|
19
|
-
"h4",
|
|
20
|
-
"h5",
|
|
21
|
-
"h6",
|
|
22
|
-
"main",
|
|
23
|
-
"nav",
|
|
24
|
-
"section",
|
|
25
|
-
"blockquote",
|
|
26
|
-
"dd",
|
|
27
|
-
"div",
|
|
28
|
-
"dl",
|
|
29
|
-
"dt",
|
|
30
|
-
"figcaption",
|
|
31
|
-
"figure",
|
|
32
|
-
"hr",
|
|
33
|
-
"li",
|
|
34
|
-
"ol",
|
|
35
|
-
"p",
|
|
36
|
-
"pre",
|
|
37
|
-
"ul",
|
|
38
|
-
"a",
|
|
39
|
-
"abbr",
|
|
40
|
-
"b",
|
|
41
|
-
"bdi",
|
|
42
|
-
"bdo",
|
|
43
|
-
"br",
|
|
44
|
-
"cite",
|
|
45
|
-
"code",
|
|
46
|
-
"data",
|
|
47
|
-
"dfn",
|
|
48
|
-
"em",
|
|
49
|
-
"i",
|
|
50
|
-
"kbd",
|
|
51
|
-
"mark",
|
|
52
|
-
"q",
|
|
53
|
-
"rp",
|
|
54
|
-
"rt",
|
|
55
|
-
"ruby",
|
|
56
|
-
"s",
|
|
57
|
-
"samp",
|
|
58
|
-
"small",
|
|
59
|
-
"span",
|
|
60
|
-
"strong",
|
|
61
|
-
"sub",
|
|
62
|
-
"sup",
|
|
63
|
-
"time",
|
|
64
|
-
"u",
|
|
65
|
-
"var",
|
|
66
|
-
"wbr",
|
|
67
|
-
"area",
|
|
68
|
-
"audio",
|
|
69
|
-
"img",
|
|
70
|
-
"map",
|
|
71
|
-
"track",
|
|
72
|
-
"video",
|
|
73
|
-
"embed",
|
|
74
|
-
"iframe",
|
|
75
|
-
"object",
|
|
76
|
-
"param",
|
|
77
|
-
"picture",
|
|
78
|
-
"portal",
|
|
79
|
-
"source",
|
|
80
|
-
"svg",
|
|
81
|
-
"math",
|
|
82
|
-
"canvas",
|
|
83
|
-
"noscript",
|
|
84
|
-
"script",
|
|
85
|
-
"del",
|
|
86
|
-
"ins",
|
|
87
|
-
"caption",
|
|
88
|
-
"col",
|
|
89
|
-
"colgroup",
|
|
90
|
-
"table",
|
|
91
|
-
"tbody",
|
|
92
|
-
"td",
|
|
93
|
-
"tfoot",
|
|
94
|
-
"th",
|
|
95
|
-
"thead",
|
|
96
|
-
"tr",
|
|
97
|
-
"button",
|
|
98
|
-
"datalist",
|
|
99
|
-
"fieldset",
|
|
100
|
-
"form",
|
|
101
|
-
"input",
|
|
102
|
-
"label",
|
|
103
|
-
"legend",
|
|
104
|
-
"meter",
|
|
105
|
-
"optgroup",
|
|
106
|
-
"option",
|
|
107
|
-
"output",
|
|
108
|
-
"progress",
|
|
109
|
-
"select",
|
|
110
|
-
"textarea",
|
|
111
|
-
"details",
|
|
112
|
-
"dialog",
|
|
113
|
-
"menu",
|
|
114
|
-
"summary",
|
|
115
|
-
"slot",
|
|
116
|
-
"template"
|
|
117
|
-
]);
|
|
118
|
-
var SVG_TAGS = new Set([
|
|
119
|
-
"svg",
|
|
120
|
-
"g",
|
|
121
|
-
"defs",
|
|
122
|
-
"symbol",
|
|
123
|
-
"use",
|
|
124
|
-
"marker",
|
|
125
|
-
"clipPath",
|
|
126
|
-
"mask",
|
|
127
|
-
"pattern",
|
|
128
|
-
"circle",
|
|
129
|
-
"ellipse",
|
|
130
|
-
"line",
|
|
131
|
-
"path",
|
|
132
|
-
"polygon",
|
|
133
|
-
"polyline",
|
|
134
|
-
"rect",
|
|
135
|
-
"text",
|
|
136
|
-
"textPath",
|
|
137
|
-
"tspan",
|
|
138
|
-
"linearGradient",
|
|
139
|
-
"radialGradient",
|
|
140
|
-
"stop",
|
|
141
|
-
"filter",
|
|
142
|
-
"feBlend",
|
|
143
|
-
"feColorMatrix",
|
|
144
|
-
"feComponentTransfer",
|
|
145
|
-
"feComposite",
|
|
146
|
-
"feConvolveMatrix",
|
|
147
|
-
"feDiffuseLighting",
|
|
148
|
-
"feDisplacementMap",
|
|
149
|
-
"feDistantLight",
|
|
150
|
-
"feDropShadow",
|
|
151
|
-
"feFlood",
|
|
152
|
-
"feFuncA",
|
|
153
|
-
"feFuncB",
|
|
154
|
-
"feFuncG",
|
|
155
|
-
"feFuncR",
|
|
156
|
-
"feGaussianBlur",
|
|
157
|
-
"feImage",
|
|
158
|
-
"feMerge",
|
|
159
|
-
"feMergeNode",
|
|
160
|
-
"feMorphology",
|
|
161
|
-
"feOffset",
|
|
162
|
-
"fePointLight",
|
|
163
|
-
"feSpecularLighting",
|
|
164
|
-
"feSpotLight",
|
|
165
|
-
"feTile",
|
|
166
|
-
"feTurbulence",
|
|
167
|
-
"animate",
|
|
168
|
-
"animateMotion",
|
|
169
|
-
"animateTransform",
|
|
170
|
-
"set",
|
|
171
|
-
"mpath",
|
|
172
|
-
"desc",
|
|
173
|
-
"foreignObject",
|
|
174
|
-
"image",
|
|
175
|
-
"metadata",
|
|
176
|
-
"switch",
|
|
177
|
-
"title",
|
|
178
|
-
"view"
|
|
179
|
-
]);
|
|
180
|
-
var TEMPLATE_TAGS = new Set([...HTML_TAGS, ...SVG_TAGS]);
|
|
181
|
-
|
|
182
1
|
// src/lexer.js
|
|
183
2
|
var BALANCED_PAIRS;
|
|
184
3
|
var BOM;
|
|
@@ -416,8 +235,6 @@ var Lexer = class Lexer2 {
|
|
|
416
235
|
this.seenExport = false;
|
|
417
236
|
this.importSpecifierList = false;
|
|
418
237
|
this.exportSpecifierList = false;
|
|
419
|
-
this.inRender = false;
|
|
420
|
-
this.renderIndent = 0;
|
|
421
238
|
this.chunkLine = opts.line || 0;
|
|
422
239
|
this.chunkColumn = opts.column || 0;
|
|
423
240
|
this.chunkOffset = opts.offset || 0;
|
|
@@ -521,8 +338,7 @@ ${code}`;
|
|
|
521
338
|
return sup.length + 3;
|
|
522
339
|
}
|
|
523
340
|
prev = this.prev();
|
|
524
|
-
|
|
525
|
-
tag = colon || prev != null && ((ref5 = prev[0]) === "." || ref5 === "?." || ref5 === "::" || ref5 === "?::" || !prev.spaced && prev[0] === "@") || isHashProperty ? "PROPERTY" : "IDENTIFIER";
|
|
341
|
+
tag = colon || prev != null && ((ref5 = prev[0]) === "." || ref5 === "?." || ref5 === "::" || ref5 === "?::" || !prev.spaced && prev[0] === "@") ? "PROPERTY" : "IDENTIFIER";
|
|
526
342
|
tokenData = {};
|
|
527
343
|
if (tag === "IDENTIFIER" && (indexOf.call(JS_KEYWORDS, id) >= 0 || indexOf.call(RIP_KEYWORDS, id) >= 0) && !(this.exportSpecifierList && indexOf.call(RIP_KEYWORDS, id) >= 0)) {
|
|
528
344
|
tag = id.toUpperCase();
|
|
@@ -536,9 +352,6 @@ ${code}`;
|
|
|
536
352
|
this.seenImport = true;
|
|
537
353
|
} else if (tag === "EXPORT") {
|
|
538
354
|
this.seenExport = true;
|
|
539
|
-
} else if (tag === "RENDER") {
|
|
540
|
-
this.inRender = true;
|
|
541
|
-
this.renderIndent = this.indent;
|
|
542
355
|
} else if (indexOf.call(UNARY, tag) >= 0) {
|
|
543
356
|
tag = "UNARY";
|
|
544
357
|
} else if (indexOf.call(RELATION, tag) >= 0) {
|
|
@@ -640,9 +453,6 @@ ${code}`;
|
|
|
640
453
|
}
|
|
641
454
|
commentToken(chunk = this.chunk, { heregex, returnCommentTokens = false, offsetInChunk = 0 } = {}) {
|
|
642
455
|
var commentAttachment, commentAttachments, commentWithSurroundingWhitespace, content, contents, getIndentSize, hasSeenFirstCommentLine, hereComment, hereLeadingWhitespace, hereTrailingWhitespace, i, indentSize, leadingNewline, leadingNewlineOffset, leadingNewlines, leadingWhitespace, length, lineComment, match, matchIllegal, noIndent, nonInitial, placeholderToken, precededByBlankLine, precedingNonCommentLines, prev;
|
|
643
|
-
if (this.inRender && chunk[0] === "#" && /^#[a-zA-Z_$]/.test(chunk)) {
|
|
644
|
-
return 0;
|
|
645
|
-
}
|
|
646
456
|
if (!(match = chunk.match(COMMENT))) {
|
|
647
457
|
return 0;
|
|
648
458
|
}
|
|
@@ -1224,9 +1034,11 @@ ${line}`;
|
|
|
1224
1034
|
} else if (value === "<=>") {
|
|
1225
1035
|
tag = "BIND";
|
|
1226
1036
|
} else if (value === "~=") {
|
|
1227
|
-
tag = "
|
|
1037
|
+
tag = "COMPUTED_ASSIGN";
|
|
1228
1038
|
} else if (value === ":=") {
|
|
1229
1039
|
tag = "REACTIVE_ASSIGN";
|
|
1040
|
+
} else if (value === "~>") {
|
|
1041
|
+
tag = "REACT_ASSIGN";
|
|
1230
1042
|
} else if (value === "=!") {
|
|
1231
1043
|
tag = "READONLY_ASSIGN";
|
|
1232
1044
|
} else if (indexOf.call(MATH, value) >= 0) {
|
|
@@ -1700,12 +1512,6 @@ ${line}`;
|
|
|
1700
1512
|
}
|
|
1701
1513
|
unfinished() {
|
|
1702
1514
|
var ref;
|
|
1703
|
-
if (this.tag() === "RENDER") {
|
|
1704
|
-
return false;
|
|
1705
|
-
}
|
|
1706
|
-
if (this.inRender && /^\s*\./.test(this.chunk)) {
|
|
1707
|
-
return false;
|
|
1708
|
-
}
|
|
1709
1515
|
return LINE_CONTINUER.test(this.chunk) || (ref = this.tag(), indexOf.call(UNFINISHED, ref) >= 0);
|
|
1710
1516
|
}
|
|
1711
1517
|
validateUnicodeCodePointEscapes(str, options) {
|
|
@@ -1777,7 +1583,7 @@ addTokenData = function(token, data) {
|
|
|
1777
1583
|
return Object.assign(token.data != null ? token.data : token.data = {}, data);
|
|
1778
1584
|
};
|
|
1779
1585
|
JS_KEYWORDS = ["true", "false", "null", "this", "new", "delete", "typeof", "in", "instanceof", "return", "throw", "break", "continue", "debugger", "yield", "await", "if", "else", "switch", "for", "while", "do", "try", "catch", "finally", "class", "extends", "super", "import", "export", "default"];
|
|
1780
|
-
RIP_KEYWORDS = ["undefined", "Infinity", "NaN", "then", "unless", "until", "loop", "of", "by", "when", "def"
|
|
1586
|
+
RIP_KEYWORDS = ["undefined", "Infinity", "NaN", "then", "unless", "until", "loop", "of", "by", "when", "def"];
|
|
1781
1587
|
RIP_ALIAS_MAP = {
|
|
1782
1588
|
and: "&&",
|
|
1783
1589
|
or: "||",
|
|
@@ -1804,7 +1610,7 @@ var JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED);
|
|
|
1804
1610
|
BOM = 65279;
|
|
1805
1611
|
IDENTIFIER = /^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;
|
|
1806
1612
|
NUMBER = /^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;
|
|
1807
|
-
OPERATOR = /^(?:<=>|[-=]
|
|
1613
|
+
OPERATOR = /^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;
|
|
1808
1614
|
WHITESPACE = /^[^\n\S]+/;
|
|
1809
1615
|
COMMENT = /^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;
|
|
1810
1616
|
CODE = /^[-=]>/;
|
|
@@ -1902,7 +1708,6 @@ Rewriter = function() {
|
|
|
1902
1708
|
this.closeOpenCalls();
|
|
1903
1709
|
this.closeOpenIndexes();
|
|
1904
1710
|
this.normalizeLines();
|
|
1905
|
-
this.processTemplateTokens();
|
|
1906
1711
|
this.convertLegacyExistential();
|
|
1907
1712
|
this.convertPostfixSpreadRest();
|
|
1908
1713
|
this.tagPostfixConditionals();
|
|
@@ -2230,7 +2035,7 @@ Rewriter = function() {
|
|
|
2230
2035
|
startImplicitCall(i + 1);
|
|
2231
2036
|
return forward(2);
|
|
2232
2037
|
}
|
|
2233
|
-
if (indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.indexOfTag(i + 1, "INDENT") > -1 && this.looksObjectish(i + 2) && !this.findTagsBackwards(i, ["CLASS", "
|
|
2038
|
+
if (indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.indexOfTag(i + 1, "INDENT") > -1 && this.looksObjectish(i + 2) && !this.findTagsBackwards(i, ["CLASS", "EXTENDS", "IF", "CATCH", "SWITCH", "LEADING_WHEN", "FOR", "WHILE", "UNTIL"]) && !(((ref1 = s = (ref2 = stackTop()) != null ? ref2[0] : undefined) === "{" || ref1 === "[") && !isImplicit(stackTop()) && this.findTagsBackwards(i, s))) {
|
|
2234
2039
|
startImplicitCall(i + 1);
|
|
2235
2040
|
stack.push(["INDENT", i + 2]);
|
|
2236
2041
|
return forward(3);
|
|
@@ -2648,197 +2453,6 @@ Rewriter = function() {
|
|
|
2648
2453
|
return 1;
|
|
2649
2454
|
});
|
|
2650
2455
|
}
|
|
2651
|
-
processTemplateTokens() {
|
|
2652
|
-
let inRender = false;
|
|
2653
|
-
let renderIndentLevel = 0;
|
|
2654
|
-
let currentIndent = 0;
|
|
2655
|
-
let pendingCallEnds = [];
|
|
2656
|
-
const isHtmlTag = (name) => {
|
|
2657
|
-
const tagPart = name.split("#")[0];
|
|
2658
|
-
return TEMPLATE_TAGS.has(tagPart);
|
|
2659
|
-
};
|
|
2660
|
-
const isComponent = (name) => {
|
|
2661
|
-
if (!name || typeof name !== "string")
|
|
2662
|
-
return false;
|
|
2663
|
-
return /^[A-Z]/.test(name);
|
|
2664
|
-
};
|
|
2665
|
-
const isTemplateTag = (name) => {
|
|
2666
|
-
return isHtmlTag(name) || isComponent(name);
|
|
2667
|
-
};
|
|
2668
|
-
const startsWithHtmlTag = (tokens, i) => {
|
|
2669
|
-
let j = i;
|
|
2670
|
-
while (j > 0) {
|
|
2671
|
-
const pt = tokens[j - 1][0];
|
|
2672
|
-
if (pt === "INDENT" || pt === "OUTDENT" || pt === "TERMINATOR" || pt === "RENDER" || pt === "CALL_END" || pt === ")") {
|
|
2673
|
-
break;
|
|
2674
|
-
}
|
|
2675
|
-
j--;
|
|
2676
|
-
}
|
|
2677
|
-
return tokens[j] && tokens[j][0] === "IDENTIFIER" && isHtmlTag(tokens[j][1]);
|
|
2678
|
-
};
|
|
2679
|
-
return this.scanTokens(function(token, i, tokens) {
|
|
2680
|
-
const tag = token[0];
|
|
2681
|
-
const nextToken = i < tokens.length - 1 ? tokens[i + 1] : null;
|
|
2682
|
-
if (tag === "RENDER") {
|
|
2683
|
-
inRender = true;
|
|
2684
|
-
renderIndentLevel = currentIndent + 1;
|
|
2685
|
-
return 1;
|
|
2686
|
-
}
|
|
2687
|
-
if (tag === "INDENT") {
|
|
2688
|
-
currentIndent++;
|
|
2689
|
-
return 1;
|
|
2690
|
-
}
|
|
2691
|
-
if (tag === "OUTDENT") {
|
|
2692
|
-
currentIndent--;
|
|
2693
|
-
let inserted = 0;
|
|
2694
|
-
while (pendingCallEnds.length > 0 && pendingCallEnds[pendingCallEnds.length - 1] > currentIndent) {
|
|
2695
|
-
const callEndToken = ["CALL_END", ")", token[2]];
|
|
2696
|
-
callEndToken.generated = true;
|
|
2697
|
-
tokens.splice(i + 1 + inserted, 0, callEndToken);
|
|
2698
|
-
pendingCallEnds.pop();
|
|
2699
|
-
inserted++;
|
|
2700
|
-
}
|
|
2701
|
-
if (inRender && currentIndent < renderIndentLevel) {
|
|
2702
|
-
inRender = false;
|
|
2703
|
-
}
|
|
2704
|
-
return 1 + inserted;
|
|
2705
|
-
}
|
|
2706
|
-
if (!inRender)
|
|
2707
|
-
return 1;
|
|
2708
|
-
if (tag === "IDENTIFIER" && !token.spaced) {
|
|
2709
|
-
let parts = [token[1]];
|
|
2710
|
-
let j = i + 1;
|
|
2711
|
-
while (j + 1 < tokens.length) {
|
|
2712
|
-
const hyphen = tokens[j];
|
|
2713
|
-
const nextPart = tokens[j + 1];
|
|
2714
|
-
if (hyphen[0] === "-" && !hyphen.spaced && (nextPart[0] === "IDENTIFIER" || nextPart[0] === "PROPERTY")) {
|
|
2715
|
-
parts.push(nextPart[1]);
|
|
2716
|
-
j += 2;
|
|
2717
|
-
if (nextPart[0] === "PROPERTY")
|
|
2718
|
-
break;
|
|
2719
|
-
} else {
|
|
2720
|
-
break;
|
|
2721
|
-
}
|
|
2722
|
-
}
|
|
2723
|
-
if (parts.length > 1 && j > i + 1 && tokens[j - 1][0] === "PROPERTY") {
|
|
2724
|
-
token[0] = "STRING";
|
|
2725
|
-
token[1] = `"${parts.join("-")}"`;
|
|
2726
|
-
tokens.splice(i + 1, j - i - 1);
|
|
2727
|
-
return 1;
|
|
2728
|
-
}
|
|
2729
|
-
}
|
|
2730
|
-
if (tag === ".") {
|
|
2731
|
-
const prevToken = i > 0 ? tokens[i - 1] : null;
|
|
2732
|
-
const prevTag = prevToken ? prevToken[0] : null;
|
|
2733
|
-
if (prevTag === "INDENT" || prevTag === "TERMINATOR") {
|
|
2734
|
-
if (nextToken && nextToken[0] === "PROPERTY") {
|
|
2735
|
-
const divToken = ["IDENTIFIER", "div", token[2]];
|
|
2736
|
-
divToken.generated = true;
|
|
2737
|
-
tokens.splice(i, 0, divToken);
|
|
2738
|
-
return 2;
|
|
2739
|
-
}
|
|
2740
|
-
}
|
|
2741
|
-
}
|
|
2742
|
-
if (tag === "IDENTIFIER" || tag === "PROPERTY") {
|
|
2743
|
-
const next = tokens[i + 1];
|
|
2744
|
-
const nextNext = tokens[i + 2];
|
|
2745
|
-
if (next && next[0] === "#" && nextNext && nextNext[0] === "PROPERTY") {
|
|
2746
|
-
token[1] = token[1] + "#" + nextNext[1];
|
|
2747
|
-
if (nextNext.spaced)
|
|
2748
|
-
token.spaced = true;
|
|
2749
|
-
tokens.splice(i + 1, 2);
|
|
2750
|
-
return 1;
|
|
2751
|
-
}
|
|
2752
|
-
}
|
|
2753
|
-
if (tag === "BIND") {
|
|
2754
|
-
const prevToken = i > 0 ? tokens[i - 1] : null;
|
|
2755
|
-
const nextBindToken = tokens[i + 1];
|
|
2756
|
-
if (prevToken && (prevToken[0] === "IDENTIFIER" || prevToken[0] === "PROPERTY") && nextBindToken && nextBindToken[0] === "IDENTIFIER") {
|
|
2757
|
-
prevToken[1] = `__bind_${prevToken[1]}__`;
|
|
2758
|
-
token[0] = ":";
|
|
2759
|
-
token[1] = ":";
|
|
2760
|
-
return 1;
|
|
2761
|
-
}
|
|
2762
|
-
}
|
|
2763
|
-
if (tag === "@") {
|
|
2764
|
-
let j = i + 1;
|
|
2765
|
-
if (j < tokens.length && tokens[j][0] === "PROPERTY") {
|
|
2766
|
-
j++;
|
|
2767
|
-
while (j + 1 < tokens.length && tokens[j][0] === "." && tokens[j + 1][0] === "PROPERTY") {
|
|
2768
|
-
j += 2;
|
|
2769
|
-
}
|
|
2770
|
-
if (j > i + 2 && j < tokens.length && tokens[j][0] === ":") {
|
|
2771
|
-
const openBracket = ["[", "[", token[2]];
|
|
2772
|
-
openBracket.generated = true;
|
|
2773
|
-
tokens.splice(i, 0, openBracket);
|
|
2774
|
-
const closeBracket = ["]", "]", tokens[j + 1][2]];
|
|
2775
|
-
closeBracket.generated = true;
|
|
2776
|
-
tokens.splice(j + 1, 0, closeBracket);
|
|
2777
|
-
return 2;
|
|
2778
|
-
}
|
|
2779
|
-
}
|
|
2780
|
-
}
|
|
2781
|
-
if (tag === "." && nextToken && nextToken[0] === "(") {
|
|
2782
|
-
const prevToken = i > 0 ? tokens[i - 1] : null;
|
|
2783
|
-
const prevTag = prevToken ? prevToken[0] : null;
|
|
2784
|
-
const atLineStart = prevTag === "INDENT" || prevTag === "TERMINATOR";
|
|
2785
|
-
const cxToken = ["PROPERTY", "__cx__", token[2]];
|
|
2786
|
-
cxToken.generated = true;
|
|
2787
|
-
nextToken[0] = "CALL_START";
|
|
2788
|
-
let depth = 1;
|
|
2789
|
-
for (let j = i + 2;j < tokens.length && depth > 0; j++) {
|
|
2790
|
-
if (tokens[j][0] === "(" || tokens[j][0] === "CALL_START")
|
|
2791
|
-
depth++;
|
|
2792
|
-
else if (tokens[j][0] === ")") {
|
|
2793
|
-
depth--;
|
|
2794
|
-
if (depth === 0)
|
|
2795
|
-
tokens[j][0] = "CALL_END";
|
|
2796
|
-
} else if (tokens[j][0] === "CALL_END")
|
|
2797
|
-
depth--;
|
|
2798
|
-
}
|
|
2799
|
-
if (atLineStart) {
|
|
2800
|
-
const divToken = ["IDENTIFIER", "div", token[2]];
|
|
2801
|
-
divToken.generated = true;
|
|
2802
|
-
tokens.splice(i, 0, divToken);
|
|
2803
|
-
tokens.splice(i + 2, 0, cxToken);
|
|
2804
|
-
return 3;
|
|
2805
|
-
} else {
|
|
2806
|
-
tokens.splice(i + 1, 0, cxToken);
|
|
2807
|
-
return 2;
|
|
2808
|
-
}
|
|
2809
|
-
}
|
|
2810
|
-
if (nextToken && nextToken[0] === "INDENT") {
|
|
2811
|
-
if (tag === "->" || tag === "=>" || tag === "CALL_START" || tag === "(") {
|
|
2812
|
-
return 1;
|
|
2813
|
-
}
|
|
2814
|
-
let isTemplateElement = false;
|
|
2815
|
-
if (tag === "IDENTIFIER" && isTemplateTag(token[1])) {
|
|
2816
|
-
isTemplateElement = true;
|
|
2817
|
-
} else if (tag === "PROPERTY" || tag === "STRING" || tag === "CALL_END" || tag === ")") {
|
|
2818
|
-
isTemplateElement = startsWithHtmlTag(tokens, i);
|
|
2819
|
-
} else if (tag === "IDENTIFIER" && i > 1 && tokens[i - 1][0] === "...") {
|
|
2820
|
-
if (startsWithHtmlTag(tokens, i)) {
|
|
2821
|
-
const commaToken = [",", ",", token[2]];
|
|
2822
|
-
commaToken.generated = true;
|
|
2823
|
-
const arrowToken = ["->", "->", token[2]];
|
|
2824
|
-
arrowToken.newLine = true;
|
|
2825
|
-
tokens.splice(i + 1, 0, commaToken, arrowToken);
|
|
2826
|
-
return 3;
|
|
2827
|
-
}
|
|
2828
|
-
}
|
|
2829
|
-
if (isTemplateElement) {
|
|
2830
|
-
const callStartToken = ["CALL_START", "(", token[2]];
|
|
2831
|
-
callStartToken.generated = true;
|
|
2832
|
-
const arrowToken = ["->", "->", token[2]];
|
|
2833
|
-
arrowToken.newLine = true;
|
|
2834
|
-
tokens.splice(i + 1, 0, callStartToken, arrowToken);
|
|
2835
|
-
pendingCallEnds.push(currentIndent + 1);
|
|
2836
|
-
return 3;
|
|
2837
|
-
}
|
|
2838
|
-
}
|
|
2839
|
-
return 1;
|
|
2840
|
-
});
|
|
2841
|
-
}
|
|
2842
2456
|
convertLegacyExistential() {
|
|
2843
2457
|
return this.scanTokens(function(token, i, tokens) {
|
|
2844
2458
|
var colonFound, j, nestLevel, ref, tag;
|
|
@@ -2993,15 +2607,15 @@ SINGLE_LINERS = ["ELSE", "->", "=>", "TRY", "FINALLY", "THEN"];
|
|
|
2993
2607
|
SINGLE_CLOSERS = ["TERMINATOR", "CATCH", "FINALLY", "ELSE", "OUTDENT", "LEADING_WHEN"];
|
|
2994
2608
|
LINEBREAKS = ["TERMINATOR", "INDENT", "OUTDENT"];
|
|
2995
2609
|
CALL_CLOSERS = [".", "?.", "::", "?::"];
|
|
2996
|
-
CONTROL_IN_IMPLICIT = ["IF", "TRY", "FINALLY", "CATCH", "CLASS", "
|
|
2610
|
+
CONTROL_IN_IMPLICIT = ["IF", "TRY", "FINALLY", "CATCH", "CLASS", "SWITCH"];
|
|
2997
2611
|
DISCARDED = ["(", ")", "[", "]", "{", "}", ":", ".", "..", "...", ",", "=", "++", "--", "?", "AS", "AWAIT", "CALL_START", "CALL_END", "DEFAULT", "DO", "DO_IIFE", "ELSE", "EXTENDS", "EXPORT", "FORIN", "FOROF", "FORFROM", "IMPORT", "INDENT", "INDEX_SOAK", "INTERPOLATION_START", "INTERPOLATION_END", "LEADING_WHEN", "OUTDENT", "PARAM_END", "REGEX_START", "REGEX_END", "RETURN", "STRING_END", "THROW", "UNARY", "YIELD"].concat(IMPLICIT_UNSPACED_CALL.concat(IMPLICIT_END.concat(CALL_CLOSERS.concat(CONTROL_IN_IMPLICIT))));
|
|
2998
2612
|
UNFINISHED = ["\\", ".", "?.", "?::", "UNARY", "DO", "DO_IIFE", "MATH", "UNARY_MATH", "+", "-", "**", "SHIFT", "RELATION", "COMPARE", "&", "^", "|", "&&", "||", "SPACE?", "EXTENDS"];
|
|
2999
2613
|
// src/parser.js
|
|
3000
2614
|
var parserInstance = {
|
|
3001
|
-
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,
|
|
3002
|
-
tokenNames: { 2: "error", 6: "TERMINATOR", 11: "STATEMENT",
|
|
2615
|
+
symbolIds: { $accept: 0, $end: 1, error: 2, Root: 3, Body: 4, Line: 5, TERMINATOR: 6, Expression: 7, ExpressionLine: 8, Statement: 9, Return: 10, STATEMENT: 11, Import: 12, Export: 13, Value: 14, Code: 15, Operation: 16, Assign: 17, ReactiveAssign: 18, ComputedAssign: 19, ReadonlyAssign: 20, ReactAssign: 21, If: 22, Try: 23, While: 24, For: 25, Switch: 26, Class: 27, Throw: 28, Yield: 29, Def: 30, DEF: 31, Identifier: 32, CALL_START: 33, ParamList: 34, CALL_END: 35, Block: 36, Assignable: 37, REACTIVE_ASSIGN: 38, INDENT: 39, OUTDENT: 40, COMPUTED_ASSIGN: 41, READONLY_ASSIGN: 42, REACT_ASSIGN: 43, CodeLine: 44, OperationLine: 45, YIELD: 46, Object: 47, FROM: 48, IDENTIFIER: 49, Property: 50, PROPERTY: 51, AlphaNumeric: 52, NUMBER: 53, String: 54, STRING: 55, STRING_START: 56, Interpolations: 57, STRING_END: 58, InterpolationChunk: 59, INTERPOLATION_START: 60, INTERPOLATION_END: 61, Regex: 62, REGEX: 63, REGEX_START: 64, Invocation: 65, REGEX_END: 66, RegexWithIndex: 67, ",": 68, Literal: 69, JS: 70, UNDEFINED: 71, NULL: 72, BOOL: 73, INFINITY: 74, NAN: 75, "=": 76, AssignObj: 77, ObjAssignable: 78, ObjRestValue: 79, ":": 80, SimpleObjAssignable: 81, ThisProperty: 82, "[": 83, "]": 84, "@": 85, "...": 86, ObjSpreadExpr: 87, Parenthetical: 88, Super: 89, This: 90, SUPER: 91, OptFuncExist: 92, Arguments: 93, DYNAMIC_IMPORT: 94, ".": 95, "?.": 96, "::": 97, "?::": 98, INDEX_START: 99, INDEX_END: 100, INDEX_SOAK: 101, RETURN: 102, PARAM_START: 103, PARAM_END: 104, FuncGlyph: 105, "->": 106, "=>": 107, OptComma: 108, Param: 109, ParamVar: 110, Array: 111, Splat: 112, SimpleAssignable: 113, Slice: 114, ES6_OPTIONAL_INDEX: 115, Range: 116, DoIife: 117, MetaProperty: 118, NEW_TARGET: 119, IMPORT_META: 120, "{": 121, FOR: 122, ForVariables: 123, FOROF: 124, "}": 125, WHEN: 126, OWN: 127, AssignList: 128, CLASS: 129, EXTENDS: 130, IMPORT: 131, ImportDefaultSpecifier: 132, ImportNamespaceSpecifier: 133, ImportSpecifierList: 134, ImportSpecifier: 135, AS: 136, DEFAULT: 137, IMPORT_ALL: 138, EXPORT: 139, ExportSpecifierList: 140, EXPORT_ALL: 141, ExportSpecifier: 142, ES6_OPTIONAL_CALL: 143, FUNC_EXIST: 144, ArgList: 145, THIS: 146, Elisions: 147, ArgElisionList: 148, OptElisions: 149, RangeDots: 150, "..": 151, Arg: 152, ArgElision: 153, Elision: 154, SimpleArgs: 155, TRY: 156, Catch: 157, FINALLY: 158, CATCH: 159, THROW: 160, "(": 161, ")": 162, WhileSource: 163, WHILE: 164, UNTIL: 165, Loop: 166, LOOP: 167, FORIN: 168, BY: 169, FORFROM: 170, AWAIT: 171, ForValue: 172, SWITCH: 173, Whens: 174, ELSE: 175, When: 176, LEADING_WHEN: 177, IfBlock: 178, IF: 179, UnlessBlock: 180, UNLESS: 181, POST_IF: 182, POST_UNLESS: 183, UNARY: 184, DO: 185, DO_IIFE: 186, UNARY_MATH: 187, "-": 188, "+": 189, "--": 190, "++": 191, "?": 192, MATH: 193, "**": 194, SHIFT: 195, COMPARE: 196, "&": 197, "^": 198, "|": 199, "&&": 200, "||": 201, "??": 202, "!?": 203, RELATION: 204, "SPACE?": 205, COMPOUND_ASSIGN: 206 },
|
|
2616
|
+
tokenNames: { 2: "error", 6: "TERMINATOR", 11: "STATEMENT", 31: "DEF", 33: "CALL_START", 35: "CALL_END", 38: "REACTIVE_ASSIGN", 39: "INDENT", 40: "OUTDENT", 41: "COMPUTED_ASSIGN", 42: "READONLY_ASSIGN", 43: "REACT_ASSIGN", 46: "YIELD", 48: "FROM", 49: "IDENTIFIER", 51: "PROPERTY", 53: "NUMBER", 55: "STRING", 56: "STRING_START", 58: "STRING_END", 60: "INTERPOLATION_START", 61: "INTERPOLATION_END", 63: "REGEX", 64: "REGEX_START", 66: "REGEX_END", 68: ",", 70: "JS", 71: "UNDEFINED", 72: "NULL", 73: "BOOL", 74: "INFINITY", 75: "NAN", 76: "=", 80: ":", 83: "[", 84: "]", 85: "@", 86: "...", 91: "SUPER", 94: "DYNAMIC_IMPORT", 95: ".", 96: "?.", 97: "::", 98: "?::", 99: "INDEX_START", 100: "INDEX_END", 101: "INDEX_SOAK", 102: "RETURN", 103: "PARAM_START", 104: "PARAM_END", 106: "->", 107: "=>", 115: "ES6_OPTIONAL_INDEX", 119: "NEW_TARGET", 120: "IMPORT_META", 121: "{", 122: "FOR", 124: "FOROF", 125: "}", 126: "WHEN", 127: "OWN", 129: "CLASS", 130: "EXTENDS", 131: "IMPORT", 136: "AS", 137: "DEFAULT", 138: "IMPORT_ALL", 139: "EXPORT", 141: "EXPORT_ALL", 143: "ES6_OPTIONAL_CALL", 144: "FUNC_EXIST", 146: "THIS", 151: "..", 156: "TRY", 158: "FINALLY", 159: "CATCH", 160: "THROW", 161: "(", 162: ")", 164: "WHILE", 165: "UNTIL", 167: "LOOP", 168: "FORIN", 169: "BY", 170: "FORFROM", 171: "AWAIT", 173: "SWITCH", 175: "ELSE", 177: "LEADING_WHEN", 179: "IF", 181: "UNLESS", 182: "POST_IF", 183: "POST_UNLESS", 184: "UNARY", 185: "DO", 186: "DO_IIFE", 187: "UNARY_MATH", 188: "-", 189: "+", 190: "--", 191: "++", 192: "?", 193: "MATH", 194: "**", 195: "SHIFT", 196: "COMPARE", 197: "&", 198: "^", 199: "|", 200: "&&", 201: "||", 202: "??", 203: "!?", 204: "RELATION", 205: "SPACE?", 206: "COMPOUND_ASSIGN" },
|
|
3003
2617
|
parseTable: (() => {
|
|
3004
|
-
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, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -1, 1, 2, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 1, 1, 0, 2, 1, 5, -2, 107, 5, 1, 5, 37, 32, 97, -3, -3, -3, -3, -3, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -6, -6, -6, -6, -6, 108, -6, -6, -6, 127, -6, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -7, -7, -7, -7, -7, -7, -7, -7, -7, 14, 1, 5, 32, 4, 1, 32, 7, 15, 75, 1, 1, 1, 17, 1, -8, -8, -8, -8, -8, -8, -8, -8, -8, 130, 96, 97, 128, 129, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 6, 3, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -13, -13, -263, -13, -13, -13, -13, -13, -263, -263, -13, -13, -13, -13, 131, 133, 134, 135, 136, 137, -13, 138, -13, 139, -13, -13, -13, -13, 132, 140, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 47, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 141, 142, 143, 144, 145, -14, 146, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -60, -60, -60, -60, -60, -60, -60, -60, -60, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -61, -61, -61, -61, -61, -61, -61, -61, -61, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, 148, -186, -186, 149, 150, -186, 147, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, 18, 6, 29, 2, 1, 4, 1, 11, 4, 1, 4, 19, 13, 1, 19, 4, 1, 1, 10, -140, 155, 151, -140, -140, -140, 159, 154, 104, 158, -140, 156, 160, -140, 152, 153, 157, 99, 106, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 162, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 161, 33, 163, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 164, 165, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 167, 168, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 169, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 175, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 176, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 177, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 178, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 45, 14, 1, 20, 5, 7, 7, 5, 4, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 9, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 180, 181, 92, 182, 171, 87, 104, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 170, 90, 91, 72, 179, 36, 38, 41, 88, 89, 99, 86, 82, 174, 45, 14, 1, 20, 5, 7, 7, 5, 4, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 9, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 180, 181, 92, 182, 171, 87, 104, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 170, 90, 91, 72, 183, 36, 38, 41, 88, 89, 99, 86, 82, 174, 60, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 184, 185, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 186, 5, 39, 3, 5, 69, 1, 188, 163, 187, 90, 91, 2, 39, 3, 189, 163, 2, 39, 3, 190, 163, 2, 35, 24, 191, 104, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 192, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, 2, 39, 3, 193, 163, 2, 39, 3, 194, 163, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, 14, 35, 19, 5, 4, 32, 1, 24, 1, 5, 5, 2, 4, 44, 1, 155, 159, 104, 158, 156, 83, 200, 157, 198, 99, 195, 196, 197, 199, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 201, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 202, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 88, 1, 5, 8, 1, 20, 3, 1, 1, 2, 1, 4, 7, 2, 2, 1, 4, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 4, 2, 1, 1, 2, 1, 1, 1, 3, 6, 3, 1, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 4, 16, 5, 10, 1, 2, 1, 3, 1, 1, 12, 1, 3, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -210, -210, 180, 181, 92, -210, 203, 182, 163, -210, 171, 87, -210, -210, 104, 73, 74, 100, 101, 105, 106, -210, 76, 102, 103, 37, -210, 34, 75, 77, 78, 79, 80, 81, -210, 93, 83, -210, 35, 40, 39, 84, 85, -210, 170, -210, 90, 91, 72, 205, 36, 38, 41, 88, 89, 99, -210, -210, -210, -210, 204, 86, -210, 82, -210, -210, -210, -210, -210, -210, -210, -210, 174, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 206, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 207, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 137, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 2, 2, 1, 3, 1, 1, 2, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 4, 2, 1, 1, 2, 1, 1, 1, 3, 6, 2, 1, 1, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3, 2, 8, 7, 5, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -62, -62, 208, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -62, 33, 209, -62, 53, 171, 54, 55, 56, 87, -62, -62, 104, 66, 73, 210, 74, 100, 101, 105, 106, -62, 76, 102, 103, 37, -62, 34, 75, 77, 78, 79, 80, 81, -62, 93, 83, -62, 35, 40, 39, 84, 85, -62, 69, 170, -62, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, -62, -62, -62, -62, 64, 70, 71, 86, -62, 59, 65, 82, -62, 60, -62, -62, 61, 98, -62, -62, -62, 49, 63, 57, 94, 58, 95, -62, -62, 172, 173, 174, 46, 47, 48, 50, 51, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 2, 35, 24, 211, 104, 6, 15, 32, 13, 54, 2, 1, 213, 43, 212, 42, 90, 91, 111, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 1, 1, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -131, -131, 214, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -131, 33, 215, -131, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, -131, 76, 102, 103, 37, -131, 34, 75, 77, 78, 79, 80, 81, 93, 83, -131, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, -131, 60, -131, -131, 61, 98, 49, 63, 57, 94, 58, 95, -131, -131, 172, 173, 174, 46, 47, 48, 50, 51, 9, 35, 24, 9, 1, 1, 61, 11, 1, 5, 220, 104, 216, 105, 106, 219, 217, 218, 221, 9, 30, 3, 1, 1, 24, 72, 8, 8, 4, 223, 224, 67, 225, 104, 222, 64, 226, 227, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, 106, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 228, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 229, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 113, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 230, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 236, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 231, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 232, 233, 238, 235, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 4, 36, 68, 2, 4, 245, 242, 243, 244, 2, 36, 68, 245, 246, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, 55, 1, 5, 30, 2, 4, 1, 12, 1, 2, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -268, -268, -268, -268, -268, -268, 248, -268, -268, 247, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, 1, 106, 249, 1, 106, 250, 54, 11, 23, 8, 4, 2, 1, 1, 4, 5, 3, 5, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 7, 6, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, 54, 11, 23, 8, 4, 2, 1, 1, 4, 5, 3, 5, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 7, 6, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 251, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 252, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 253, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 254, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 256, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 255, 33, 163, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 23, 6, 29, 7, 1, 11, 1, 3, 1, 6, 1, 1, 1, 1, 1, 12, 8, 1, 1, 2, 1, 1, 39, 3, -205, 264, -205, -205, 261, 248, 268, 104, 265, 262, 100, 101, 105, 106, -205, 263, 257, 267, 259, 266, 260, -205, 258, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, 45, 14, 1, 20, 5, 7, 7, 5, 4, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 9, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 180, 181, 92, 182, 171, 87, 104, 73, 74, 100, 101, 105, 106, 76, 102, 103, 269, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 170, 90, 91, 72, 270, 36, 38, 41, 88, 89, 99, 86, 82, 174, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 6, 5, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 6, 7, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, 56, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 2, 2, 1, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, 6, 68, 1, 1, 1, 2, 1, 274, 105, 106, 271, 272, 273, 109, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 1, 1, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -5, 275, -5, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -5, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, -5, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, -5, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 276, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 277, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 278, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 279, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 280, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 281, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 282, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 283, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 284, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 285, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 286, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 287, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 288, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 289, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 290, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 291, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 292, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, 14, 35, 19, 5, 4, 32, 1, 24, 1, 5, 5, 2, 4, 44, 1, 155, 159, 104, 158, 156, 83, 200, 157, 296, 99, 293, 294, 295, 199, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 297, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 298, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, 5, 36, 32, 1, 1, 34, 245, 299, 105, 106, 300, 2, 36, 68, 245, 301, 2, 55, 10, 248, 302, 2, 55, 10, 248, 303, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 10, 1, 1, 1, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -160, -160, -160, -160, -160, -160, -160, -160, -160, 248, -160, -160, -160, 304, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 10, 1, 1, 1, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -161, -161, -161, -161, -161, -161, -161, -161, -161, 248, -161, -161, -161, 305, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, 106, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 306, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 307, 53, 171, 54, 55, 56, 87, 313, 104, 66, 73, 74, 100, 101, 105, 106, 311, 102, 103, 37, 309, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 308, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 310, 312, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 110, 314, 1, 110, 315, 3, 36, 33, 1, -264, -264, -264, 2, 55, 10, 248, 316, 2, 55, 10, 248, 317, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 10, 1, 1, 1, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -177, -177, -177, -177, -177, -177, -177, -177, -177, 248, -177, -177, -177, 318, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 10, 1, 1, 1, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -178, -178, -178, -178, -178, -178, -178, -178, -178, 248, -178, -178, -178, 319, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 320, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 321, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 110, 322, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 324, 323, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 325, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 327, 326, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 328, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 330, 329, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 331, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 333, 332, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 334, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 9, 6, 32, 4, 1, 39, 15, 18, 3, 17, -138, -138, -138, -138, 336, -138, 335, 337, -138, 6, 6, 32, 4, 1, 39, 33, -141, -141, -141, -141, -141, -141, 7, 6, 32, 4, 1, 14, 25, 33, -145, -145, -145, -145, 338, -145, -145, 15, 6, 29, 3, 4, 1, 11, 5, 4, 19, 13, 1, 19, 5, 1, 10, -148, 155, -148, -148, -148, 159, 104, 158, -148, 156, 160, -148, 339, 157, 99, 10, 6, 32, 4, 1, 14, 25, 33, 19, 44, 2, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, 10, 6, 32, 4, 1, 14, 25, 33, 19, 44, 2, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, 10, 6, 32, 4, 1, 14, 25, 33, 19, 44, 2, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, 10, 6, 32, 4, 1, 14, 25, 33, 19, 44, 2, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, 2, 55, 10, 248, 247, 113, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 236, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 231, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 232, 233, 238, 235, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -135, -135, -135, -135, -135, -135, -135, -135, -135, 106, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 342, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 341, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -381, -381, -381, -381, -381, 108, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, 126, -381, -381, -381, -381, -381, -381, 125, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, 120, 121, -381, -381, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -378, -378, -378, -378, -378, -378, -378, -378, -378, 5, 173, 1, 1, 17, 1, 130, 96, 97, 128, 129, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -382, -382, -382, -382, -382, 108, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, 126, -382, -382, -382, -382, -382, -382, 125, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, 120, 121, -382, -382, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -379, -379, -379, -379, -379, -379, -379, -379, -379, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -383, -383, -383, -383, -383, 108, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, 126, -383, -383, -383, -383, -383, -383, 125, -383, -383, -383, 112, -383, -383, -383, -383, -383, -383, -383, 120, 121, -383, -383, 18, 6, 29, 2, 1, 4, 1, 11, 4, 1, 4, 19, 13, 1, 19, 4, 1, 1, 10, -140, 155, 343, -140, -140, -140, 159, 154, 104, 158, -140, 156, 160, -140, 152, 153, 157, 99, 2, 39, 3, 161, 163, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 164, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 167, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 5, 15, 32, 67, 2, 1, 213, 171, 170, 90, 91, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -384, -384, -384, -384, -384, 108, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, 126, -384, -384, -384, -384, -384, -384, 125, -384, -384, -384, 112, -384, -384, -384, -384, -384, -384, -384, 120, 121, -384, -384, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -385, -385, -385, -385, -385, 108, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, 126, -385, -385, -385, -385, -385, -385, 125, -385, -385, -385, 112, -385, -385, -385, -385, -385, -385, -385, 120, 121, -385, -385, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -386, -386, -386, -386, -386, 108, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 126, -386, -386, -386, -386, -386, -386, 125, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 120, 121, -386, -386, 2, 63, 68, 344, 99, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -388, -388, -183, -388, -183, -388, -388, -183, -183, -388, -183, -388, -183, -183, -388, -388, -388, -388, -183, -183, -183, -183, -183, -388, -183, -388, -183, -388, -388, -388, -388, -183, -183, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, 13, 36, 33, 1, 33, 3, 1, 1, 1, 1, 2, 13, 28, 1, -263, -263, -263, 131, 133, 134, 135, 136, 137, 138, 139, 132, 140, 6, 106, 1, 1, 1, 1, 2, 141, 142, 143, 144, 145, 146, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -389, -389, -183, -389, -183, -389, -389, -183, -183, -389, -183, -389, -183, -183, -389, -389, -389, -389, -183, -183, -183, -183, -183, -389, -183, -389, -183, -389, -389, -389, -389, -183, -183, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 347, 345, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 346, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 2, 39, 3, 348, 163, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 1, 42, 349, 3, 39, 3, 147, 350, 163, 351, 44, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 6, 1, 1, 3, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 352, 353, 354, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, 3, 134, 44, 2, 356, 355, 357, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 358, 199, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 359, 199, 3, 39, 3, 137, 360, 163, 361, 4, 82, 52, 44, 2, 362, -357, -357, -357, 5, 57, 25, 52, 44, 2, 363, -355, -355, -355, -355, 23, 42, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 364, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 184, 2, 1, 365, 366, 367, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 368, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 59, 1, 5, 30, 2, 1, 2, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -214, -214, -183, -214, 369, -183, 163, -214, -183, -183, -214, -183, -214, -183, -183, -214, -214, -214, -214, -183, -183, -183, -183, -183, -214, -183, -214, -183, -214, -214, -214, -214, 370, -183, -183, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -311, -311, -311, -311, -311, 108, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, 126, -311, -311, -311, -311, -311, -311, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 63, 68, 371, 99, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -63, -63, -63, -63, -63, 108, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 126, -63, -63, -63, -63, -63, -63, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 63, 68, 372, 99, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 373, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 36, 3, 3, 374, 375, 163, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -380, -380, -380, -380, -380, -380, -380, -380, -380, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -129, -129, -129, -129, -129, 108, -129, -129, -129, 127, -129, 126, -129, -129, -129, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 63, 68, 376, 99, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, 2, 64, 18, 377, 378, 1, 64, 379, 7, 35, 7, 17, 76, 9, 1, 2, 384, 383, 104, 380, 381, 382, 385, 2, 64, 18, -234, -234, 1, 146, 386, 7, 35, 7, 17, 76, 12, 3, 2, 391, 390, 104, 387, 392, 388, 389, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, 1, 57, 393, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 394, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 395, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 64, 396, 2, 6, 166, 107, 397, 105, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 398, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 31, 6, 32, 4, 1, 13, 2, 24, 15, 35, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -285, -285, -285, -285, 108, 313, -285, -285, 127, 399, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, 109, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 400, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 402, 401, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 9, 6, 32, 4, 1, 39, 15, 21, 17, 24, -138, -138, -138, -138, 404, -138, 405, -138, 403, 59, 6, 5, 23, 8, 1, 3, 2, 1, 1, 4, 4, 1, 3, 5, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 7, 1, 5, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, 406, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, 5, 6, 36, 1, 39, 15, -289, -289, -289, -289, -289, 112, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 236, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 408, 407, 238, 235, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 59, 6, 5, 23, 8, 1, 3, 2, 1, 1, 4, 4, 1, 3, 5, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 7, 1, 5, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, 5, 6, 36, 1, 39, 15, -294, -294, -294, -294, -294, 6, 6, 32, 4, 1, 39, 15, -286, -286, -286, -286, -286, -286, 6, 6, 32, 4, 1, 39, 15, -287, -287, -287, -287, -287, -287, 106, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -288, 409, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -288, 33, -288, -288, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, -288, 34, 75, 77, 78, 79, 80, 81, 93, 83, -288, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, 2, 55, 10, 248, 410, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 411, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 412, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 109, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 413, 33, 416, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 414, 86, 415, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, 2, 55, 10, 248, 417, 2, 55, 10, 248, 418, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 419, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 420, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -315, -315, -315, -315, -315, 108, -315, -315, -315, -315, -315, -315, -315, 127, -315, -315, 421, -315, -315, 126, 96, 97, -315, -315, -315, -315, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -317, -317, -317, -317, -317, 108, -317, -317, -317, -317, -317, -317, -317, 127, -317, -317, 422, -317, -317, 126, 96, 97, -317, -317, -317, -317, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -324, -324, -324, -324, -324, 108, -324, -324, -324, -324, -324, -324, -324, 127, -324, -324, -324, -324, -324, 126, 96, 97, -324, -324, -324, -324, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 6, 6, 36, 1, 39, 11, 42, -95, -95, -95, -95, 423, -95, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 425, -138, 424, -138, 7, 6, 36, 1, 14, 25, 11, 42, -104, -104, -104, 426, -104, -104, -104, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 427, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 55, 10, 31, 248, 247, 428, 6, 6, 36, 1, 39, 11, 42, -107, -107, -107, -107, -107, -107, 5, 6, 36, 1, 39, 53, -206, -206, -206, -206, -206, 15, 6, 30, 6, 1, 14, 25, 11, 13, 1, 1, 1, 1, 2, 23, 19, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 15, 6, 30, 6, 1, 14, 25, 11, 13, 1, 1, 1, 1, 2, 23, 19, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, 15, 6, 30, 6, 1, 14, 25, 11, 13, 1, 1, 1, 1, 2, 23, 19, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 5, 6, 36, 1, 39, 53, -96, -96, -96, -96, -96, 17, 35, 19, 1, 4, 4, 2, 29, 1, 3, 1, 1, 1, 1, 3, 26, 25, 15, 264, 87, 248, 104, 431, 265, 429, 266, 430, 432, 433, 434, 435, 436, 99, 86, 82, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, 437, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 6, 68, 1, 1, 2, 1, 1, 274, 105, 106, 438, 439, 273, 4, 69, 1, 2, 2, -74, -74, -74, -74, 107, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 440, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 441, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 442, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 4, 69, 1, 2, 2, -79, -79, -79, -79, 5, 1, 5, 37, 32, 97, -4, -4, -4, -4, -4, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -393, -393, -393, -393, -393, 108, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, 126, -393, -393, -393, -393, -393, -393, 125, -393, -393, 111, 112, -393, -393, -393, -393, -393, -393, -393, 120, 121, -393, -393, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -394, -394, -394, -394, -394, 108, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, 126, -394, -394, -394, -394, -394, -394, 125, -394, -394, 111, 112, -394, -394, -394, -394, -394, -394, -394, 120, 121, -394, -394, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -395, -395, -395, -395, -395, 108, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, 126, -395, -395, -395, -395, -395, -395, 125, -395, -395, -395, 112, -395, -395, -395, -395, -395, -395, -395, 120, 121, -395, -395, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -396, -396, -396, -396, -396, 108, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, 126, -396, -396, -396, -396, -396, -396, 125, -396, -396, -396, 112, -396, -396, -396, -396, -396, -396, -396, 120, 121, -396, -396, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -397, -397, -397, -397, -397, 108, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, 126, -397, -397, -397, -397, -397, -397, 125, 110, 109, 111, 112, -397, -397, -397, -397, -397, -397, -397, 120, 121, -397, -397, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -398, -398, -398, -398, -398, 108, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, 126, -398, -398, -398, -398, -398, -398, 125, 110, 109, 111, 112, 113, -398, -398, -398, -398, -398, -398, 120, 121, 122, -398, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -399, -399, -399, -399, -399, 108, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, 126, -399, -399, -399, -399, -399, -399, 125, 110, 109, 111, 112, 113, 114, -399, -399, -399, -399, -399, 120, 121, 122, -399, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -400, -400, -400, -400, -400, 108, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, 126, -400, -400, -400, -400, -400, -400, 125, 110, 109, 111, 112, 113, 114, 115, -400, -400, -400, -400, 120, 121, 122, -400, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -401, -401, -401, -401, -401, 108, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, 126, -401, -401, -401, -401, -401, -401, 125, 110, 109, 111, 112, 113, 114, 115, 116, -401, -401, -401, 120, 121, 122, -401, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -402, -402, -402, -402, -402, 108, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, 126, -402, -402, -402, -402, -402, -402, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, -402, -402, 120, 121, 122, -402, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -403, -403, -403, -403, -403, 108, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, 126, -403, -403, -403, -403, -403, -403, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, -403, 120, 121, 122, -403, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -404, -404, -404, -404, -404, 108, -404, -404, -404, -404, -404, -404, -404, 127, -404, -404, -404, -404, -404, 126, 96, 97, -404, -404, -404, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -405, -405, -405, -405, -405, 108, -405, -405, -405, -405, -405, -405, -405, 127, -405, -405, -405, -405, -405, 126, 96, 97, -405, -405, -405, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -406, -406, -406, -406, -406, 108, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, 126, -406, -406, -406, -406, -406, -406, 125, 110, 109, 111, 112, 113, -406, -406, -406, -406, -406, -406, 120, 121, -406, -406, 23, 56, 37, 39, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 443, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -375, -375, -375, -375, -375, 108, -375, -375, -375, -375, -375, -375, -375, 127, -375, -375, -375, -375, -375, 126, 96, 97, -375, -375, -375, -375, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -377, -377, -377, -377, -377, 108, -377, -377, -377, -377, -377, -377, -377, 127, -377, -377, -377, -377, -377, 126, 96, 97, -377, -377, -377, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 134, 44, 2, 445, 444, 446, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 447, 199, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 448, 199, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, 449, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -374, -374, -374, -374, -374, 108, -374, -374, -374, -374, -374, -374, -374, 127, -374, -374, -374, -374, -374, 126, 96, 97, -374, -374, -374, -374, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -376, -376, -376, -376, -376, 108, -376, -376, -376, -376, -376, -376, -376, 127, -376, -376, -376, -376, -376, 126, 96, 97, -376, -376, -376, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, 26, 56, 2, 53, 21, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 313, 450, 127, 451, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 104, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 452, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 313, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 453, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 310, 312, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 111, 454, 1, 111, 455, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 6, 2, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 456, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -279, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, -279, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 457, -86, -86, -86, -86, -86, -86, -86, -83, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 55, 11, 23, 9, 3, 2, 1, 1, 4, 5, 3, 5, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 7, 6, 3, 6, 2, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, 55, 11, 23, 9, 3, 2, 1, 1, 4, 5, 3, 5, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 7, 6, 3, 6, 2, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, 105, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 458, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 459, 53, 171, 54, 55, 56, 87, 313, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 460, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 310, 312, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 461, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 462, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 463, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 464, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 465, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 466, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -92, -92, -92, -92, -92, 108, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 126, -92, -92, -92, -92, -92, -92, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 467, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 468, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, 108, -35, -35, -35, -35, -35, -35, -35, 127, -35, -35, -35, -35, -35, 126, 96, 97, -35, -35, -35, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 469, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 470, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -38, -38, -38, -38, -38, 108, -38, -38, -38, -38, -38, -38, -38, 127, -38, -38, -38, -38, -38, 126, 96, 97, -38, -38, -38, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 471, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 472, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -41, -41, -41, -41, -41, 108, -41, -41, -41, -41, -41, -41, -41, 127, -41, -41, -41, -41, -41, 126, 96, 97, -41, -41, -41, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 473, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 474, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 47, 69, 1, 475, 90, 91, 17, 6, 29, 3, 4, 1, 11, 4, 1, 4, 32, 1, 1, 22, 1, 1, 10, 4, -139, 155, -139, -139, -139, 159, 154, 104, 158, 156, 160, -139, 476, 153, 157, 99, -139, 2, 6, 36, 477, 478, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 479, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 6, 6, 32, 4, 1, 39, 33, -147, -147, -147, -147, -147, -147, 28, 6, 32, 4, 1, 13, 26, 15, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -285, -285, -285, -285, 108, -285, -285, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 7, 1, 3, 2, 1, 3, 1, 1, 5, 2, 5, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, 2, 6, 37, 107, 480, 9, 6, 32, 4, 1, 39, 15, 18, 3, 17, -138, -138, -138, -138, 336, -138, 481, 337, -138, 1, 43, 482, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -408, -408, -408, -408, -408, 108, -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, 126, -408, -408, -408, -408, -408, -408, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 483, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 484, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 487, 488, 489, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 485, 486, 490, 491, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 492, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 493, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 2, 39, 3, 494, 163, 6, 35, 4, 3, 17, 4, 68, 495, 497, 163, 104, 496, 99, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 498, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 499, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 500, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 134, 501, 1, 180, 502, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 503, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 10, 35, 19, 5, 4, 32, 1, 24, 1, 10, 51, 155, 159, 104, 158, 156, 160, 200, 157, 99, 504, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 505, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 184, 2, 1, 506, 366, 367, 4, 43, 142, 1, 1, 507, 508, 509, 367, 3, 43, 142, 2, -363, -363, -363, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 9, 1, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 511, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 510, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 43, 1, 5, 32, 1, 3, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -212, -212, -212, 512, 163, -212, 108, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, 126, -212, -212, -212, -212, -212, -212, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 513, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 43, 514, 1, 43, 515, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -65, -65, -65, -65, -65, 108, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, 126, -65, -65, -65, -65, -65, -65, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 18, 6, 29, 2, 1, 4, 1, 11, 4, 1, 4, 19, 13, 1, 19, 4, 1, 1, 10, -140, 155, 516, -140, -140, -140, 159, 154, 104, 158, -140, 156, 160, -140, 152, 153, 157, 99, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 1, 43, 517, 3, 68, 1, 1, 518, 105, 106, 3, 131, 12, 5, 520, 519, 221, 3, 68, 1, 1, 521, 105, 106, 1, 64, 522, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 524, -138, 523, -138, 5, 6, 36, 1, 39, 53, -225, -225, -225, -225, -225, 6, 35, 7, 17, 85, 1, 2, 384, 383, 104, 525, 382, 385, 6, 6, 36, 1, 39, 53, 11, -230, -230, -230, -230, -230, 526, 6, 6, 36, 1, 39, 53, 11, -232, -232, -232, -232, -232, 527, 2, 35, 24, 528, 104, 14, 1, 5, 32, 4, 1, 21, 11, 7, 15, 75, 2, 1, 17, 1, -236, -236, -236, -236, -236, 529, -236, -236, -236, -236, -236, -236, -236, -236, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 531, -138, 530, -138, 5, 6, 36, 1, 39, 53, -248, -248, -248, -248, -248, 6, 35, 7, 17, 88, 3, 2, 391, 390, 104, 392, 532, 389, 6, 6, 36, 1, 39, 53, 11, -253, -253, -253, -253, -253, 533, 6, 6, 36, 1, 39, 53, 11, -256, -256, -256, -256, -256, 534, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 536, 535, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 537, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -243, -243, -243, -243, -243, 108, -243, -243, -243, 127, -243, 126, 96, 97, -243, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 63, 68, 538, 99, 3, 68, 1, 1, 539, 105, 106, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, 2, 6, 37, 107, 540, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 541, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, 59, 6, 5, 23, 8, 1, 3, 2, 1, 1, 4, 4, 1, 3, 5, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 7, 1, 5, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, 406, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, 5, 6, 36, 1, 39, 15, -295, -295, -295, -295, -295, 2, 42, 55, 543, 542, 116, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 8, 7, 1, 5, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -139, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -139, 33, -139, -139, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, -139, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, -139, 64, 70, 71, 86, 545, 238, 544, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 4, 6, 36, 1, 54, 546, -296, -296, -296, 59, 6, 5, 23, 8, 1, 3, 2, 1, 1, 4, 4, 1, 3, 5, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 7, 1, 5, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, 9, 6, 32, 4, 1, 39, 15, 21, 17, 24, -138, -138, -138, -138, 404, -138, 405, -138, 547, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 402, 401, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 28, 6, 32, 4, 1, 13, 26, 15, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -153, -153, -153, -153, 108, -153, -153, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 548, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 549, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 551, -138, 550, -138, 5, 6, 32, 4, 1, 39, -280, -280, -280, -280, -280, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 416, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 552, 86, 415, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 553, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 554, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 555, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 556, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 557, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 6, 36, 93, 559, 560, 558, 23, 6, 29, 3, 4, 1, 11, 1, 3, 1, 6, 1, 1, 1, 1, 1, 20, 1, 1, 2, 1, 1, 1, 38, -139, 264, -139, -139, -139, 261, 248, 268, 104, 265, 262, 100, 101, 105, 106, 561, 562, 267, 259, 266, 260, -139, -139, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 563, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 564, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 23, 56, 41, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 565, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 566, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 16, 6, 30, 6, 1, 26, 1, 12, 21, 3, 1, 1, 1, 1, 2, 23, 19, -108, -110, -108, -108, -263, -263, -108, 567, -110, -110, -110, -110, -110, -110, -108, 140, 16, 6, 30, 6, 1, 26, 1, 12, 21, 3, 1, 1, 1, 1, 2, 23, 19, -109, -263, -109, -109, -263, -263, -109, 568, 569, 570, 571, 572, 573, 574, -109, 140, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, 7, 36, 33, 1, 33, 3, 4, 44, -263, -263, -263, 575, 243, 244, 140, 2, 36, 68, 245, 576, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, 56, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 2, 2, 1, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 4, 69, 1, 2, 2, -75, -75, -75, -75, 2, 6, 69, 107, 577, 105, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 578, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 4, 69, 1, 2, 2, -78, -78, -78, -78, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 579, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 580, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 581, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 582, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 134, 583, 1, 180, 584, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 585, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 6, 2, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 586, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -277, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, -277, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 26, 43, 13, 2, 74, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 587, 108, 313, 127, 451, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 43, 588, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, 24, 43, 13, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -278, 108, -278, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 589, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 26, 56, 2, 53, 21, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 313, 590, 127, 451, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 104, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 591, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 313, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 592, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 310, 312, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 111, 593, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 594, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 595, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 596, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 597, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 598, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -93, -93, -93, -93, -93, 108, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, 126, -93, -93, -93, -93, -93, -93, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 599, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -36, -36, -36, -36, -36, 108, -36, -36, -36, -36, -36, -36, -36, 127, -36, -36, -36, -36, -36, 126, 96, 97, -36, -36, -36, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 600, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, 108, -39, -39, -39, -39, -39, -39, -39, 127, -39, -39, -39, -39, -39, 126, 96, 97, -39, -39, -39, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 601, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -42, -42, -42, -42, -42, 108, -42, -42, -42, -42, -42, -42, -42, 127, -42, -42, -42, -42, -42, 126, 96, 97, -42, -42, -42, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 602, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 106, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 604, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 603, 33, 163, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 6, 6, 32, 4, 1, 39, 33, -142, -142, -142, -142, -142, -142, 11, 35, 19, 4, 1, 4, 32, 1, 23, 1, 1, 10, 155, 159, 154, 104, 158, 156, 160, 605, 153, 157, 99, 18, 6, 29, 2, 1, 4, 1, 11, 4, 1, 4, 19, 13, 1, 19, 4, 1, 1, 10, -140, 155, 606, -140, -140, -140, 159, 154, 104, 158, -140, 156, 160, -140, 152, 153, 157, 99, 28, 6, 32, 4, 1, 13, 26, 33, 17, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -146, -146, -146, -146, 108, -146, -146, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 7, 1, 3, 2, 1, 3, 1, 1, 5, 2, 5, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, 3, 47, 69, 1, 607, 90, 91, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 608, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -410, -410, -410, -410, -410, 108, -410, -410, -410, -410, -410, -410, -410, -410, -410, -410, -410, -410, -410, 126, -410, -410, -410, -410, -410, -410, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 6, 37, 610, 609, 2, 6, 37, -49, -49, 24, 6, 37, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -52, -52, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 6, 37, -53, -53, 7, 6, 37, 130, 1, 1, 17, 1, -54, -54, 130, 96, 97, 128, 129, 2, 6, 37, -55, -55, 55, 1, 5, 30, 2, 4, 1, 12, 1, 2, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -268, -268, -268, -268, -268, -268, 611, -268, 612, 247, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 613, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 39, 3, 614, 163, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 2, 39, 3, 615, 163, 2, 39, 3, 616, 163, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, 26, 39, 3, 14, 76, 4, 37, 1, 1, 4, 13, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 617, 163, 108, 127, 618, 126, 96, 97, 619, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 620, 163, 108, 127, 621, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 622, 163, 108, 127, 623, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 624, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 625, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 626, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 134, 44, 2, -358, -358, -358, 26, 56, 26, 50, 2, 39, 1, 1, 3, 2, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, -356, 127, -356, 126, 96, 97, -356, -356, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 43, 142, 1, 1, 627, 628, 509, 367, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, 2, 39, 3, 629, 163, 3, 43, 142, 2, -364, -364, -364, 3, 39, 3, 40, 630, 163, 631, 24, 42, 14, 26, 50, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -302, 108, -302, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, 43, 1, 5, 32, 1, 3, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -216, -216, -216, 632, 163, -216, 108, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, 126, -216, -216, -216, -216, -216, -216, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, 633, -138, -138, 336, -138, 337, -138, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, 1, 64, 634, 6, 35, 7, 17, 85, 1, 2, 384, 383, 104, 635, 382, 385, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, 3, 68, 1, 1, 636, 105, 106, 3, 6, 36, 93, 638, 639, 637, 10, 6, 29, 3, 4, 1, 16, 38, 38, 10, 2, -139, 384, -139, -139, -139, 104, -139, -139, 640, 385, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 524, -138, 641, -138, 2, 35, 24, 642, 104, 2, 35, 24, 643, 104, 1, 64, -235, 3, 68, 1, 1, 644, 105, 106, 3, 6, 36, 93, 646, 647, 645, 10, 6, 29, 3, 4, 1, 16, 38, 38, 12, 5, -139, 391, -139, -139, -139, 104, -139, -139, 392, 648, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 531, -138, 649, -138, 3, 35, 24, 88, 650, 104, 651, 2, 35, 24, 652, 104, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -240, -240, -240, -240, -240, 108, -240, -240, -240, 127, -240, 126, -240, -240, -240, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 653, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 654, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 43, 655, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, 1, 172, 656, 23, 56, 41, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 657, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, 112, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 236, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 408, 658, 238, 235, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 36, 1, 39, 15, -290, -290, -290, -290, -290, 111, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 3, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -297, -297, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, -297, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 402, 401, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 110, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 5, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 408, 238, 659, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 2, 42, 1, 543, 660, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 661, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 6, 32, 4, 663, 662, 664, 112, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 8, 7, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -139, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -139, 33, -139, -139, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, -139, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, -139, 64, 70, 71, 86, 665, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 551, -138, 666, -138, 2, 39, 3, 667, 163, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -316, -316, -316, -316, -316, 108, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, 126, -316, -316, -316, -316, -316, -316, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -318, -318, -318, -318, -318, 108, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, 126, -318, -318, -318, -318, -318, -318, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 27, 6, 36, 1, 13, 26, 50, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -97, -97, -97, 108, -97, 668, -97, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 669, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, 17, 35, 19, 1, 3, 1, 6, 1, 1, 1, 1, 1, 20, 1, 1, 2, 1, 1, 264, 261, 248, 268, 104, 265, 262, 100, 101, 105, 106, 670, 562, 267, 259, 266, 260, 23, 6, 29, 7, 1, 11, 1, 3, 1, 6, 1, 1, 1, 1, 1, 12, 8, 1, 1, 2, 1, 1, 39, 3, -205, 264, -205, -205, 261, 248, 268, 104, 265, 262, 100, 101, 105, 106, -205, 263, 562, 267, 259, 266, 260, -205, 671, 5, 6, 36, 1, 39, 53, -207, -207, -207, -207, -207, 6, 6, 36, 1, 39, 11, 42, -95, -95, -95, -95, 672, -95, 27, 6, 36, 1, 13, 26, 50, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -99, -99, -99, 108, -99, 127, -99, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 673, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 6, 6, 36, 1, 39, 11, 42, -105, -105, -105, -105, -105, -105, 23, 56, 41, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 674, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 36, 68, 245, 675, 2, 36, 68, 245, 676, 2, 55, 10, 248, 677, 2, 55, 10, 248, 678, 15, 6, 30, 6, 1, 12, 10, 17, 24, 1, 1, 1, 1, 2, 23, 19, -123, -123, -123, -123, 248, 679, -123, -123, -123, -123, -123, -123, -123, -123, -123, 15, 6, 30, 6, 1, 12, 10, 17, 24, 1, 1, 1, 1, 2, 23, 19, -124, -124, -124, -124, 248, 680, -124, -124, -124, -124, -124, -124, -124, -124, -124, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 681, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 682, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 110, 683, 2, 36, 68, 245, 684, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, 4, 69, 1, 2, 2, -76, -76, -76, -76, 2, 6, 37, 107, 685, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -407, -407, -407, -407, -407, 108, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, 126, -407, -407, -407, -407, -407, -407, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -340, -340, -340, -340, -340, 108, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 686, -340, -340, 126, -340, -340, -340, 687, -340, -340, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -345, -345, -345, -345, -345, 108, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 688, -345, -345, 126, -345, -345, -345, -345, -345, -345, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -349, -349, -349, -349, -349, 108, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, 689, -349, -349, 126, -349, -349, -349, -349, -349, -349, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 690, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 691, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -354, -354, -354, -354, -354, 108, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, 126, -354, -354, -354, -354, -354, -354, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 43, 13, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -276, 108, -276, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 111, 692, 1, 111, 693, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, -82, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, 26, 43, 13, 2, 74, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 694, 108, 313, 127, 451, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 43, 695, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 696, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 111, 697, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 698, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -134, -134, -134, -134, -134, -134, -134, -134, -134, 6, 6, 32, 4, 1, 39, 33, -143, -143, -143, -143, -143, -143, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 336, -138, 699, -138, 2, 39, 3, 603, 163, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 107, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 2, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -51, 487, 488, 489, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -51, 53, 43, 54, 55, 56, 700, 490, 491, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, -56, -69, -69, -69, -69, -56, -69, -69, 701, 702, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, 1, 59, 703, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 704, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 705, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 706, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 707, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 708, 163, 108, 127, 709, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 710, 163, 108, 127, 711, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, 2, 39, 3, 712, 163, 1, 43, 713, 4, 6, 37, 142, 2, 714, -365, -365, -365, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 715, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, 2, 39, 3, 716, 163, 3, 68, 1, 1, 717, 105, 106, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 524, -138, 718, -138, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, 1, 64, 719, 4, 35, 24, 86, 2, 384, 104, 720, 385, 6, 35, 7, 17, 85, 1, 2, 384, 383, 104, 721, 382, 385, 5, 6, 36, 1, 39, 53, -226, -226, -226, -226, -226, 3, 6, 36, 1, 638, 639, 722, 5, 6, 36, 1, 39, 53, -231, -231, -231, -231, -231, 5, 6, 36, 1, 39, 53, -233, -233, -233, -233, -233, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, 14, 1, 5, 32, 4, 1, 21, 11, 7, 15, 75, 2, 1, 17, 1, -237, -237, -237, -237, -237, 723, -237, -237, -237, -237, -237, -237, -237, -237, 4, 35, 24, 88, 5, 391, 104, 392, 724, 6, 35, 7, 17, 88, 3, 2, 391, 390, 104, 392, 725, 389, 5, 6, 36, 1, 39, 53, -249, -249, -249, -249, -249, 3, 6, 36, 1, 646, 647, 726, 5, 6, 36, 1, 39, 53, -254, -254, -254, -254, -254, 5, 6, 36, 1, 39, 53, -255, -255, -255, -255, -255, 5, 6, 36, 1, 39, 53, -257, -257, -257, -257, -257, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -241, -241, -241, -241, -241, 108, -241, -241, -241, 127, -241, 126, -241, -241, -241, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 727, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, 9, 6, 32, 4, 1, 39, 15, 21, 17, 24, -138, -138, -138, -138, 404, -138, 405, -138, 728, 5, 6, 36, 1, 39, 15, -291, -291, -291, -291, -291, 5, 6, 36, 1, 39, 15, -292, -292, -292, -292, -292, 1, 111, 729, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 730, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 416, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 731, 86, 415, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 32, 4, 1, 39, -281, -281, -281, -281, -281, 3, 6, 36, 1, 663, 664, 732, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 14, 35, 19, 5, 4, 32, 1, 24, 1, 5, 5, 2, 4, 44, 1, 155, 159, 104, 158, 156, 83, 200, 157, 296, 99, 733, 734, 295, 199, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 735, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 36, 1, 39, 53, -208, -208, -208, -208, -208, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 425, -138, 736, -138, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 737, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 557, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 738, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 6, 6, 36, 1, 39, 11, 42, -106, -106, -106, -106, -106, -106, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 739, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 740, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 741, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 742, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, 1, 75, 743, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 744, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 745, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 746, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 747, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -347, -347, -347, -347, -347, 108, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, 748, -347, -347, 126, -347, -347, -347, -347, -347, -347, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -351, -351, -351, -351, -351, 108, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, 749, -351, -351, 126, -351, -351, -351, -351, -351, -351, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, 1, 111, 750, 1, 111, 751, 1, 111, 752, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, 1, 111, 753, 3, 6, 36, 1, 477, 478, 754, 2, 6, 37, -50, -50, 2, 6, 37, -57, -57, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 755, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 2, 6, 37, -59, -59, 25, 39, 3, 14, 76, 41, 1, 1, 4, 13, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 756, 163, 108, 127, 126, 96, 97, 757, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 758, 163, 108, 127, 759, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 760, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 761, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 762, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 763, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 43, 764, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, 3, 43, 142, 2, -366, -366, -366, 24, 42, 14, 26, 50, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -303, 108, -303, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, 3, 6, 36, 93, 638, 639, 765, 3, 68, 1, 1, 766, 105, 106, 5, 6, 36, 1, 39, 53, -227, -227, -227, -227, -227, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 524, -138, 767, -138, 5, 6, 36, 1, 39, 53, -228, -228, -228, -228, -228, 3, 68, 1, 1, 768, 105, 106, 5, 6, 36, 1, 39, 53, -250, -250, -250, -250, -250, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 531, -138, 769, -138, 5, 6, 36, 1, 39, 53, -251, -251, -251, -251, -251, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, 2, 42, 1, 543, 770, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, 5, 6, 32, 4, 1, 39, -282, -282, -282, -282, -282, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 551, -138, 771, -138, 5, 6, 32, 4, 1, 39, -283, -283, -283, -283, -283, 3, 134, 44, 2, 772, 444, 446, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 773, 199, 5, 6, 36, 1, 39, 53, -98, -98, -98, -98, -98, 3, 6, 36, 1, 559, 560, 774, 27, 6, 36, 1, 13, 26, 50, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -97, -97, -97, 108, -97, 127, -97, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 36, 1, 39, 53, -100, -100, -100, -100, -100, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 775, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 776, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 777, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 4, 69, 1, 2, 2, -77, -77, -77, -77, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -341, -341, -341, -341, -341, 108, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, 126, -341, -341, -341, 778, -341, -341, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -342, -342, -342, -342, -342, 108, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 779, -342, -342, 126, -342, -342, -342, -342, -342, -342, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, 108, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, 126, -346, -346, -346, -346, -346, -346, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -350, -350, -350, -350, -350, 108, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, 126, -350, -350, -350, -350, -350, -350, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 780, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 781, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, 6, 6, 32, 4, 1, 39, 33, -144, -144, -144, -144, -144, -144, 24, 6, 37, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -58, -58, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 782, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 783, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 784, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 785, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, 1, 64, 786, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, 3, 6, 36, 1, 638, 639, 787, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, 3, 6, 36, 1, 646, 647, 788, 5, 6, 36, 1, 39, 15, -293, -293, -293, -293, -293, 3, 6, 36, 1, 663, 664, 789, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 790, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 134, 791, 5, 6, 36, 1, 39, 53, -209, -209, -209, -209, -209, 1, 111, 792, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 793, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 794, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 795, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -348, -348, -348, -348, -348, 108, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, 126, -348, -348, -348, -348, -348, -348, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -352, -352, -352, -352, -352, 108, -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, 126, -352, -352, -352, -352, -352, -352, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 796, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 797, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, 3, 68, 1, 1, 798, 105, 106, 5, 6, 36, 1, 39, 53, -229, -229, -229, -229, -229, 5, 6, 36, 1, 39, 53, -252, -252, -252, -252, -252, 5, 6, 32, 4, 1, 39, -284, -284, -284, -284, -284, 43, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 3, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -345, -345, -345, -345, -345, 108, -345, -345, 801, -345, -345, -345, -345, 799, -345, -345, -345, 800, -345, -345, 126, -345, -345, -345, -345, -345, -345, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 802, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, 1, 111, 803, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -343, -343, -343, -343, -343, 108, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, 126, -343, -343, -343, -343, -343, -343, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -344, -344, -344, -344, -344, 108, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 126, -344, -344, -344, -344, -344, -344, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, 1, 135, 804, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 805, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 6, 6, 32, 4, 1, 54, 38, -139, -139, -139, -139, -139, -139, 43, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 3, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -347, -347, -347, -347, -347, 108, -347, -347, 801, -347, -347, -347, -347, 806, -347, -347, -347, 807, -347, -347, 126, -347, -347, -347, -347, -347, -347, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, 43, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 3, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, 108, -346, -346, 801, -346, -346, -346, -346, 808, -346, -346, -346, -346, -346, -346, 126, -346, -346, -346, -346, -346, -346, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 135, 809, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 810, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 135, 811, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, 43, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 3, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -348, -348, -348, -348, -348, 108, -348, -348, 801, -348, -348, -348, -348, 812, -348, -348, -348, -348, -348, -348, 126, -348, -348, -348, -348, -348, -348, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, 1, 135, 813, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203], t = [], p = 0, n, o, k2, a;
|
|
2618
|
+
let d = [101, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -1, 1, 2, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 1, 1, 0, 2, 1, 5, -2, 101, 5, 1, 5, 34, 21, 101, -3, -3, -3, -3, -3, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -6, -6, -6, -6, -6, -6, -6, -6, 121, -6, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -7, -7, -7, -7, -7, -7, -7, -7, -7, 14, 1, 5, 29, 4, 1, 21, 7, 16, 78, 1, 1, 1, 17, 1, -8, -8, -8, -8, -8, -8, -8, -8, -8, 124, 90, 91, 122, 123, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 6, 3, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -13, -13, -250, -13, -13, -13, -250, -250, -13, -13, -13, -13, -13, 125, 127, 128, 129, 130, 131, -13, 132, -13, 133, -13, -13, -13, -13, 126, 134, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 47, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 135, 136, 137, 138, 139, -14, 140, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -47, -47, -47, -47, -47, -47, -47, -47, -47, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -48, -48, -48, -48, -48, -48, -48, -48, -48, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -173, -173, -173, -173, 142, -173, -173, 143, 144, 145, -173, -173, -173, -173, 141, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, 18, 6, 26, 2, 1, 4, 1, 7, 2, 19, 14, 1, 2, 1, 18, 5, 1, 1, 10, -127, 150, 146, -127, -127, -127, 153, 98, -127, 151, 155, 154, 149, -127, 147, 148, 152, 93, 100, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 157, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 156, 30, 158, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 97, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 159, 160, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 97, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 162, 163, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 164, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 170, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 171, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 172, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 173, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 45, 14, 1, 17, 5, 10, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 9, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 175, 176, 86, 177, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 165, 166, 84, 85, 66, 174, 33, 35, 38, 82, 83, 93, 80, 76, 169, 45, 14, 1, 17, 5, 10, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 9, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 175, 176, 86, 177, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 165, 166, 84, 85, 66, 178, 33, 35, 38, 82, 83, 93, 80, 76, 169, 61, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, 179, 180, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, 181, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 183, 182, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 184, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, 185, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, 2, 36, 3, 186, 158, 2, 36, 3, 187, 158, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, 14, 32, 15, 2, 33, 1, 2, 25, 1, 5, 5, 2, 4, 44, 1, 150, 153, 98, 151, 77, 154, 193, 152, 191, 93, 188, 189, 190, 192, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 194, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 195, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 88, 1, 5, 8, 1, 17, 3, 1, 1, 2, 1, 7, 2, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 1, 1, 1, 2, 1, 1, 1, 3, 6, 3, 1, 1, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 4, 16, 5, 10, 1, 2, 1, 3, 1, 1, 12, 1, 3, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -197, -197, 175, 176, 86, -197, 196, 177, 158, -197, 67, 98, 68, 94, 95, 99, 100, -197, 70, 96, 97, 34, -197, 31, 69, 71, 72, 73, 74, 75, -197, 87, 77, -197, 81, -197, 32, 37, 36, 78, 79, -197, 165, -197, 166, 84, 85, 66, 198, 33, 35, 38, 82, 83, 93, -197, -197, -197, -197, 197, 80, -197, 76, -197, -197, -197, -197, -197, -197, -197, -197, 169, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 199, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 200, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 131, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 1, 1, 1, 2, 1, 1, 1, 3, 6, 2, 1, 1, 1, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3, 2, 8, 7, 5, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -49, -49, 201, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -49, 30, 202, -49, 50, 60, 67, 203, 98, 68, 94, 95, 99, 100, -49, 70, 96, 97, 34, -49, 31, 69, 71, 72, 73, 74, 75, -49, 87, 77, -49, 81, -49, 32, 37, 36, 78, 79, -49, 63, 165, -49, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, -49, -49, -49, -49, 58, 64, 65, 80, -49, 53, 59, 76, -49, 54, -49, -49, 55, 92, -49, -49, -49, 46, 57, 51, 88, 52, 89, -49, -49, 167, 168, 169, 43, 44, 45, 47, 48, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 2, 32, 17, 204, 98, 6, 15, 29, 59, 2, 1, 1, 206, 205, 39, 40, 84, 85, 105, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 3, 1, 2, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 1, 1, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -118, -118, 207, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -118, 30, 208, -118, 50, 60, 67, 98, 68, 94, 95, 99, 100, -118, 70, 96, 97, 34, -118, 31, 69, 71, 72, 73, 74, 75, 87, 77, -118, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, -118, 54, -118, -118, 55, 92, 46, 57, 51, 88, 52, 89, -118, -118, 167, 168, 169, 43, 44, 45, 47, 48, 9, 32, 17, 5, 1, 1, 65, 11, 1, 5, 213, 98, 209, 99, 100, 212, 210, 211, 214, 9, 27, 3, 1, 1, 17, 72, 8, 8, 4, 216, 217, 61, 218, 98, 215, 58, 219, 220, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, 100, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 221, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 222, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 107, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 223, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 229, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 224, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 225, 226, 231, 228, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 4, 33, 60, 2, 4, 238, 235, 236, 237, 2, 33, 60, 238, 239, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, 55, 1, 5, 27, 2, 4, 1, 10, 1, 4, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -255, -255, -255, -255, -255, -255, 240, 241, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, 1, 95, 242, 1, 95, 243, 51, 11, 20, 8, 4, 3, 3, 4, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 8, 2, 6, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, 51, 11, 20, 8, 4, 3, 3, 4, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 8, 2, 6, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 244, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 245, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 246, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 247, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 249, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 248, 30, 158, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 23, 6, 26, 7, 1, 9, 1, 1, 1, 1, 1, 1, 1, 12, 9, 1, 1, 2, 1, 1, 2, 1, 39, 3, -192, 257, -192, -192, 98, 258, 241, 255, 94, 95, 99, 100, -192, 256, 250, 260, 252, 259, 253, 254, 261, -192, 251, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, 45, 14, 1, 17, 5, 10, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 9, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 175, 176, 86, 177, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 262, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 165, 166, 84, 85, 66, 263, 33, 35, 38, 82, 83, 93, 80, 76, 169, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 5, 7, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 6, 7, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 56, 1, 5, 27, 2, 4, 1, 15, 1, 2, 2, 1, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, 6, 54, 1, 1, 1, 2, 1, 267, 99, 100, 264, 265, 266, 103, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 1, 1, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -5, 268, -5, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, -5, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, -5, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, -5, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 269, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 270, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 271, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 272, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 273, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 274, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 275, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 276, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 277, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 278, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 279, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 280, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 281, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 282, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 283, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 284, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 285, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 14, 32, 15, 2, 33, 1, 2, 25, 1, 5, 5, 2, 4, 44, 1, 150, 153, 98, 151, 77, 154, 193, 152, 289, 93, 286, 287, 288, 192, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 290, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 291, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, 5, 33, 21, 1, 1, 37, 238, 292, 99, 100, 293, 2, 33, 60, 238, 294, 2, 50, 1, 295, 241, 2, 50, 1, 296, 241, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 7, 1, 4, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, 297, 241, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 7, 1, 4, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, 298, 241, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 299, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 300, 50, 60, 67, 98, 68, 94, 95, 99, 100, 304, 96, 97, 34, 302, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 306, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 301, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 303, 305, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 99, 307, 1, 99, 308, 3, 33, 22, 1, -251, -251, -251, 2, 50, 1, 309, 241, 2, 50, 1, 310, 241, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 7, 1, 4, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, 311, 241, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 7, 1, 4, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, 312, 241, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 313, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 314, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 99, 315, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 317, 316, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 318, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 320, 319, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 321, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 323, 322, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 324, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 326, 325, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 327, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 329, 328, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 330, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 9, 6, 29, 4, 1, 28, 16, 20, 4, 17, -125, -125, -125, -125, 332, -125, 331, 333, -125, 6, 6, 29, 4, 1, 28, 36, -128, -128, -128, -128, -128, -128, 7, 6, 29, 4, 1, 28, 8, 28, -132, -132, -132, -132, -132, 334, -132, 15, 6, 26, 3, 4, 1, 7, 2, 19, 14, 1, 2, 19, 6, 1, 10, -135, 150, -135, -135, -135, 153, 98, -135, 151, 155, 154, -135, 335, 152, 93, 10, 6, 29, 4, 1, 28, 8, 28, 20, 44, 2, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, 10, 6, 29, 4, 1, 28, 8, 28, 20, 44, 2, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, 10, 6, 29, 4, 1, 28, 8, 28, 20, 44, 2, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, 10, 6, 29, 4, 1, 28, 8, 28, 20, 44, 2, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, 2, 50, 1, 240, 241, 107, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 229, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 224, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 225, 226, 231, 228, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -122, -122, -122, -122, -122, -122, -122, -122, -122, 100, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 338, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 337, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, 120, -368, -368, -368, -368, -368, -368, 119, -368, -368, 102, -368, -368, -368, -368, -368, -368, -368, -368, -368, 114, 115, -368, -368, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -365, -365, -365, -365, -365, -365, -365, -365, -365, 5, 163, 1, 1, 17, 1, 124, 90, 91, 122, 123, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 120, -369, -369, -369, -369, -369, -369, 119, -369, -369, 102, -369, -369, -369, -369, -369, -369, -369, -369, -369, 114, 115, -369, -369, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -366, -366, -366, -366, -366, -366, -366, -366, -366, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 120, -370, -370, -370, -370, -370, -370, 119, -370, -370, 102, -370, 106, -370, -370, -370, -370, -370, -370, -370, 114, 115, -370, -370, 18, 6, 26, 2, 1, 4, 1, 7, 2, 19, 14, 1, 2, 1, 18, 5, 1, 1, 10, -127, 150, 339, -127, -127, -127, 153, 98, -127, 151, 155, 154, 149, -127, 147, 148, 152, 93, 2, 36, 3, 156, 158, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 159, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 162, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 5, 15, 88, 2, 1, 1, 206, 165, 166, 84, 85, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 120, -371, -371, -371, -371, -371, -371, 119, -371, -371, 102, -371, 106, -371, -371, -371, -371, -371, -371, -371, 114, 115, -371, -371, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, 120, -372, -372, -372, -372, -372, -372, 119, -372, -372, 102, -372, 106, -372, -372, -372, -372, -372, -372, -372, 114, 115, -372, -372, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, 120, -373, -373, -373, -373, -373, -373, 119, -373, -373, 102, -373, -373, -373, -373, -373, -373, -373, -373, -373, 114, 115, -373, -373, 2, 47, 74, 340, 93, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -375, -375, -170, -375, -170, -375, -375, -170, -170, -170, -170, -170, -375, -375, -170, -375, -375, -375, -170, -170, -170, -170, -170, -375, -170, -375, -170, -375, -375, -375, -375, -170, -170, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, 13, 33, 22, 1, 36, 3, 1, 1, 1, 1, 2, 14, 28, 1, -250, -250, -250, 125, 127, 128, 129, 130, 131, 132, 133, 126, 134, 6, 95, 1, 1, 1, 1, 2, 135, 136, 137, 138, 139, 140, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -376, -376, -170, -376, -170, -376, -376, -170, -170, -170, -170, -170, -376, -376, -170, -376, -376, -376, -170, -170, -170, -170, -170, -376, -170, -376, -170, -376, -376, -376, -376, -170, -170, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 343, 341, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 342, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, 121, -44, -44, -44, -44, -44, 120, 90, 91, -44, -44, -44, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 344, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 345, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 36, 3, 140, 346, 158, 347, 44, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 6, 1, 1, 3, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, 348, 349, 350, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 3, 124, 44, 2, 352, 351, 353, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 354, 192, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 355, 192, 3, 36, 3, 130, 356, 158, 357, 4, 68, 56, 44, 2, 358, -344, -344, -344, 5, 68, 8, 48, 44, 2, -342, 359, -342, -342, -342, 23, 39, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 360, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3, 174, 2, 1, 361, 362, 363, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 364, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 60, 1, 5, 27, 2, 1, 2, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -201, -201, -170, -201, 365, -170, 158, -201, -170, -170, -170, -170, -170, -201, -201, -170, -201, -201, -201, -170, -170, -170, -170, -170, -201, -170, -201, -170, -201, -201, -201, -201, 366, -170, -170, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, 120, -298, -298, -298, -298, -298, -298, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 47, 74, 367, 93, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, 120, -50, -50, -50, -50, -50, -50, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 47, 74, 368, 93, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 369, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 33, 3, 3, 370, 371, 158, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -367, -367, -367, -367, -367, -367, -367, -367, -367, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, -116, -116, -116, -116, 121, -116, 120, -116, -116, -116, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 47, 74, 372, 93, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, 2, 48, 20, 373, 374, 1, 48, 375, 7, 32, 7, 10, 76, 9, 1, 2, 380, 379, 98, 376, 377, 378, 381, 2, 48, 20, -221, -221, 1, 136, 382, 7, 32, 7, 10, 76, 12, 3, 2, 387, 386, 98, 383, 388, 384, 385, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, 1, 76, 389, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 390, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 391, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 48, 392, 2, 6, 156, 101, 393, 99, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 394, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 31, 6, 29, 4, 1, 28, 16, 2, 36, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -272, -272, -272, -272, -272, -272, 306, 121, 395, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 396, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 398, 397, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 9, 6, 29, 4, 1, 28, 16, 24, 17, 24, -125, -125, -125, -125, 400, -125, 401, -125, 399, 56, 6, 5, 20, 8, 1, 3, 3, 3, 4, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 8, 1, 1, 1, 5, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, 402, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, 5, 6, 33, 1, 28, 16, -276, -276, -276, -276, -276, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 229, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 404, 403, 231, 228, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 56, 6, 5, 20, 8, 1, 3, 3, 3, 4, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 8, 1, 1, 1, 5, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, 5, 6, 33, 1, 28, 16, -281, -281, -281, -281, -281, 6, 6, 29, 4, 1, 28, 16, -273, -273, -273, -273, -273, -273, 6, 6, 29, 4, 1, 28, 16, -274, -274, -274, -274, -274, -274, 100, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -275, 405, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -275, 30, -275, -275, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, -275, 31, 69, 71, 72, 73, 74, 75, 87, 77, -275, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, 2, 50, 1, 406, 241, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 407, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 408, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 409, 30, 412, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 410, 80, 411, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 2, 50, 1, 413, 241, 2, 50, 1, 414, 241, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 415, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 416, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 121, -302, -302, 417, -302, -302, 120, 90, 91, -302, -302, -302, -302, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 121, -304, -304, 418, -304, -304, 120, 90, 91, -304, -304, -304, -304, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, 121, -311, -311, -311, -311, -311, 120, 90, 91, -311, -311, -311, -311, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 6, 6, 33, 1, 28, 12, 45, -82, -82, -82, -82, 419, -82, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 421, -125, 420, -125, 7, 6, 33, 1, 28, 8, 4, 45, -91, -91, -91, -91, 422, -91, -91, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 423, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 50, 1, 32, 240, 241, 424, 6, 6, 33, 1, 28, 12, 45, -94, -94, -94, -94, -94, -94, 5, 6, 33, 1, 28, 57, -193, -193, -193, -193, -193, 15, 6, 27, 6, 1, 28, 8, 4, 15, 1, 1, 1, 1, 2, 24, 19, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 15, 6, 27, 6, 1, 28, 8, 4, 15, 1, 1, 1, 1, 2, 24, 19, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, 15, 6, 27, 6, 1, 28, 8, 4, 15, 1, 1, 1, 1, 2, 24, 19, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, 5, 6, 33, 1, 28, 57, -83, -83, -83, -83, -83, 17, 32, 15, 2, 1, 1, 30, 1, 3, 2, 1, 1, 1, 1, 3, 27, 25, 15, 257, 427, 98, 258, 241, 425, 259, 81, 426, 428, 429, 430, 431, 432, 93, 80, 76, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -177, -177, -177, -177, -177, -177, -177, -177, -177, 433, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, 6, 54, 1, 1, 2, 1, 1, 267, 99, 100, 434, 435, 266, 4, 55, 1, 2, 2, -61, -61, -61, -61, 101, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 436, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 437, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 438, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 4, 55, 1, 2, 2, -66, -66, -66, -66, 5, 1, 5, 34, 21, 101, -4, -4, -4, -4, -4, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, 120, -380, -380, -380, -380, -380, -380, 119, -380, -380, 102, 105, 106, -380, -380, -380, -380, -380, -380, -380, 114, 115, -380, -380, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, 120, -381, -381, -381, -381, -381, -381, 119, -381, -381, 102, 105, 106, -381, -381, -381, -381, -381, -381, -381, 114, 115, -381, -381, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, 120, -382, -382, -382, -382, -382, -382, 119, -382, -382, 102, -382, 106, -382, -382, -382, -382, -382, -382, -382, 114, 115, -382, -382, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, 120, -383, -383, -383, -383, -383, -383, 119, -383, -383, 102, -383, 106, -383, -383, -383, -383, -383, -383, -383, 114, 115, -383, -383, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, 120, -384, -384, -384, -384, -384, -384, 119, 104, 103, 102, 105, 106, -384, -384, -384, -384, -384, -384, -384, 114, 115, -384, -384, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, 120, -385, -385, -385, -385, -385, -385, 119, 104, 103, 102, 105, 106, 107, -385, -385, -385, -385, -385, -385, 114, 115, 116, -385, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 120, -386, -386, -386, -386, -386, -386, 119, 104, 103, 102, 105, 106, 107, 108, -386, -386, -386, -386, -386, 114, 115, 116, -386, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, 120, -387, -387, -387, -387, -387, -387, 119, 104, 103, 102, 105, 106, 107, 108, 109, -387, -387, -387, -387, 114, 115, 116, -387, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, 120, -388, -388, -388, -388, -388, -388, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, -388, -388, -388, 114, 115, 116, -388, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, 120, -389, -389, -389, -389, -389, -389, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, -389, -389, 114, 115, 116, -389, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, 120, -390, -390, -390, -390, -390, -390, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, -390, 114, 115, 116, -390, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, 121, -391, -391, -391, -391, -391, 120, 90, 91, -391, -391, -391, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, 121, -392, -392, -392, -392, -392, 120, 90, 91, -392, -392, -392, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, 120, -393, -393, -393, -393, -393, -393, 119, 104, 103, 102, 105, 106, 107, -393, -393, -393, -393, -393, -393, 114, 115, -393, -393, 23, 80, 42, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 439, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, 121, -362, -362, -362, -362, -362, 120, 90, 91, -362, -362, -362, -362, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, 121, -364, -364, -364, -364, -364, 120, 90, 91, -364, -364, -364, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3, 124, 44, 2, 441, 440, 442, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 443, 192, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 444, 192, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 445, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, 121, -361, -361, -361, -361, -361, 120, 90, 91, -361, -361, -361, -361, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -363, -363, -363, -363, -363, -363, -363, -363, -363, -363, -363, -363, 121, -363, -363, -363, -363, -363, 120, 90, 91, -363, -363, -363, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, 26, 86, 14, 22, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 306, 446, 121, 447, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 98, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 448, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 306, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 449, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 303, 305, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 100, 450, 1, 100, 451, 96, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 6, 2, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 452, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, -266, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, -266, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -73, -73, -73, -73, -73, -73, -73, -73, -73, 453, -73, -73, -73, -73, -73, -73, -73, -73, -70, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 52, 11, 20, 9, 3, 3, 3, 4, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 8, 2, 6, 3, 6, 2, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, 52, 11, 20, 9, 3, 3, 3, 4, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 8, 2, 6, 3, 6, 2, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, 99, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 454, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 455, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 306, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 456, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 303, 305, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 457, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 458, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 459, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 460, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 461, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 462, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 120, -79, -79, -79, -79, -79, -79, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 463, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 464, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 121, -32, -32, -32, -32, -32, 120, 90, 91, -32, -32, -32, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 465, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 466, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 121, -35, -35, -35, -35, -35, 120, 90, 91, -35, -35, -35, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 467, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 468, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 121, -38, -38, -38, -38, -38, 120, 90, 91, -38, -38, -38, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 469, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 470, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, 121, -41, -41, -41, -41, -41, 120, 90, 91, -41, -41, -41, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 471, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 472, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 105, 1, 1, 473, 84, 85, 17, 6, 26, 3, 4, 1, 7, 2, 33, 1, 1, 1, 1, 23, 1, 1, 10, 4, -126, 150, -126, -126, -126, 153, 98, 151, 155, -126, 154, 149, 474, 148, 152, 93, -126, 2, 6, 33, 475, 476, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 477, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 6, 6, 29, 4, 1, 28, 36, -134, -134, -134, -134, -134, -134, 28, 6, 29, 4, 1, 28, 16, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -272, -272, -272, -272, -272, -272, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 57, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 7, 1, 3, 2, 1, 3, 1, 1, 5, 2, 5, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 2, 6, 34, 101, 478, 9, 6, 29, 4, 1, 28, 16, 20, 4, 17, -125, -125, -125, -125, 332, -125, 479, 333, -125, 1, 40, 480, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, 120, -395, -395, -395, -395, -395, -395, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 481, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 482, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, 121, -45, -45, -45, -45, -45, 120, 90, 91, -45, -45, -45, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 483, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 484, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, 485, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, 2, 36, 3, 486, 158, 6, 32, 4, 3, 8, 2, 72, 487, 489, 158, 488, 98, 93, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 490, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 491, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 492, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 124, 493, 1, 170, 494, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 495, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 10, 32, 15, 2, 33, 1, 2, 25, 1, 10, 51, 150, 153, 98, 151, 155, 154, 193, 152, 93, 496, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 497, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 174, 2, 1, 498, 362, 363, 4, 40, 135, 1, 1, 499, 500, 501, 363, 3, 40, 135, 2, -350, -350, -350, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 9, 1, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 503, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 502, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 43, 1, 5, 29, 1, 3, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, 504, 158, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, 120, -199, -199, -199, -199, -199, -199, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 505, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 40, 506, 1, 40, 507, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, 120, -52, -52, -52, -52, -52, -52, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 18, 6, 26, 2, 1, 4, 1, 7, 2, 19, 14, 1, 2, 1, 18, 5, 1, 1, 10, -127, 150, 508, -127, -127, -127, 153, 98, -127, 151, 155, 154, 149, -127, 147, 148, 152, 93, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 1, 40, 509, 3, 54, 1, 1, 510, 99, 100, 3, 121, 12, 5, 512, 511, 214, 3, 54, 1, 1, 513, 99, 100, 1, 48, 514, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 516, -125, 515, -125, 5, 6, 33, 1, 28, 57, -212, -212, -212, -212, -212, 6, 32, 7, 10, 85, 1, 2, 380, 379, 98, 517, 378, 381, 6, 6, 33, 1, 28, 57, 11, -217, -217, -217, -217, -217, 518, 6, 6, 33, 1, 28, 57, 11, -219, -219, -219, -219, -219, 519, 2, 32, 17, 520, 98, 14, 1, 5, 29, 4, 1, 8, 13, 7, 16, 78, 2, 1, 17, 1, -223, -223, -223, -223, -223, 521, -223, -223, -223, -223, -223, -223, -223, -223, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 523, -125, 522, -125, 5, 6, 33, 1, 28, 57, -235, -235, -235, -235, -235, 6, 32, 7, 10, 88, 3, 2, 387, 386, 98, 388, 524, 385, 6, 6, 33, 1, 28, 57, 11, -240, -240, -240, -240, -240, 525, 6, 6, 33, 1, 28, 57, 11, -243, -243, -243, -243, -243, 526, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 528, 527, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 529, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -230, -230, -230, -230, -230, -230, -230, -230, 121, -230, 120, 90, 91, -230, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 47, 74, 530, 93, 3, 54, 1, 1, 531, 99, 100, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, 2, 6, 34, 101, 532, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 533, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, 56, 6, 5, 20, 8, 1, 3, 3, 3, 4, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 8, 1, 1, 1, 5, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, 402, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, 5, 6, 33, 1, 28, 16, -282, -282, -282, -282, -282, 2, 39, 45, 535, 534, 110, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 8, 7, 1, 5, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -126, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -126, 30, -126, -126, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, -126, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, -126, 58, 64, 65, 80, 537, 231, 536, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 4, 6, 33, 1, 44, 538, -283, -283, -283, 56, 6, 5, 20, 8, 1, 3, 3, 3, 4, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 8, 1, 1, 1, 5, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, 9, 6, 29, 4, 1, 28, 16, 24, 17, 24, -125, -125, -125, -125, 400, -125, 401, -125, 539, 102, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 398, 397, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 28, 6, 29, 4, 1, 28, 16, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -140, -140, -140, -140, -140, -140, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 540, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 541, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 543, -125, 542, -125, 5, 6, 29, 4, 1, 28, -267, -267, -267, -267, -267, 102, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 412, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 544, 80, 411, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, 545, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 546, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 547, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 548, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 549, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 6, 33, 86, 551, 552, 550, 23, 6, 26, 3, 4, 1, 9, 1, 1, 1, 1, 1, 1, 1, 21, 1, 1, 2, 1, 1, 1, 1, 1, 39, -126, 257, -126, -126, -126, 98, 258, 241, 255, 94, 95, 99, 100, 553, 554, 260, 252, 259, 253, -126, 254, 261, -126, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 555, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 556, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 23, 84, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 557, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 558, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 16, 6, 27, 6, 1, 15, 1, 12, 24, 3, 1, 1, 1, 1, 2, 24, 19, -95, -97, -95, -95, -250, -250, -95, 559, -97, -97, -97, -97, -97, -97, -95, 134, 16, 6, 27, 6, 1, 15, 1, 12, 24, 3, 1, 1, 1, 1, 2, 24, 19, -96, -250, -96, -96, -250, -250, -96, 560, 561, 562, 563, 564, 565, 566, -96, 134, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 7, 33, 22, 1, 36, 3, 4, 45, -250, -250, -250, 567, 236, 237, 134, 2, 33, 60, 238, 568, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, 56, 1, 5, 27, 2, 4, 1, 15, 1, 2, 2, 1, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 4, 55, 1, 2, 2, -62, -62, -62, -62, 2, 6, 55, 101, 569, 99, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 570, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 4, 55, 1, 2, 2, -65, -65, -65, -65, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 571, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 572, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 573, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 574, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 124, 575, 1, 170, 576, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 577, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, 96, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 6, 2, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 578, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, -264, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, -264, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 26, 40, 46, 36, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 579, 306, 121, 447, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 40, 580, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, 24, 40, 60, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -265, -265, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 581, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 26, 86, 14, 22, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 306, 582, 121, 447, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 98, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 583, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 306, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 584, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 303, 305, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 100, 585, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 586, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 587, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 588, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 589, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 590, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, 120, -80, -80, -80, -80, -80, -80, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 591, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 121, -33, -33, -33, -33, -33, 120, 90, 91, -33, -33, -33, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 592, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 121, -36, -36, -36, -36, -36, 120, 90, 91, -36, -36, -36, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 593, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 121, -39, -39, -39, -39, -39, 120, 90, 91, -39, -39, -39, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 594, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 121, -42, -42, -42, -42, -42, 120, 90, 91, -42, -42, -42, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 595, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 100, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 597, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 596, 30, 158, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 6, 6, 29, 4, 1, 28, 36, -129, -129, -129, -129, -129, -129, 11, 32, 15, 2, 33, 1, 2, 1, 23, 1, 1, 10, 150, 153, 98, 151, 155, 154, 149, 598, 148, 152, 93, 18, 6, 26, 2, 1, 4, 1, 7, 2, 19, 14, 1, 2, 1, 18, 5, 1, 1, 10, -127, 150, 599, -127, -127, -127, 153, 98, -127, 151, 155, 154, 149, -127, 147, 148, 152, 93, 28, 6, 29, 4, 1, 28, 36, 18, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -133, -133, -133, -133, -133, -133, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 57, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 7, 1, 3, 2, 1, 3, 1, 1, 5, 2, 5, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 3, 105, 1, 1, 600, 84, 85, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 601, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, 120, -397, -397, -397, -397, -397, -397, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 602, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 36, 3, 603, 158, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, 2, 36, 3, 604, 158, 2, 36, 3, 605, 158, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, 26, 36, 3, 83, 4, 37, 1, 1, 4, 13, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 606, 158, 121, 607, 120, 90, 91, 608, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 609, 158, 121, 610, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 611, 158, 121, 612, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 613, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 614, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 615, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3, 124, 44, 2, -345, -345, -345, 26, 68, 54, 2, 39, 1, 1, 3, 2, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -343, 121, -343, 120, 90, 91, -343, -343, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 4, 40, 135, 1, 1, 616, 617, 501, 363, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, 2, 36, 3, 618, 158, 3, 40, 135, 2, -351, -351, -351, 3, 36, 3, 29, 619, 158, 620, 24, 39, 29, 54, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, 43, 1, 5, 29, 1, 3, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -203, -203, -203, 621, 158, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, 120, -203, -203, -203, -203, -203, -203, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, 622, -125, -125, 332, -125, 333, -125, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, 1, 48, 623, 6, 32, 7, 10, 85, 1, 2, 380, 379, 98, 624, 378, 381, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, 3, 54, 1, 1, 625, 99, 100, 3, 6, 33, 86, 627, 628, 626, 10, 6, 26, 3, 4, 1, 9, 35, 41, 10, 2, -126, 380, -126, -126, -126, 98, -126, -126, 629, 381, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 516, -125, 630, -125, 2, 32, 17, 631, 98, 2, 32, 17, 632, 98, 1, 48, -222, 3, 54, 1, 1, 633, 99, 100, 3, 6, 33, 86, 635, 636, 634, 10, 6, 26, 3, 4, 1, 9, 35, 41, 12, 5, -126, 387, -126, -126, -126, 98, -126, -126, 388, 637, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 523, -125, 638, -125, 3, 32, 17, 88, 639, 98, 640, 2, 32, 17, 641, 98, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -227, -227, -227, -227, -227, -227, -227, -227, 121, -227, 120, -227, -227, -227, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 642, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 643, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 40, 644, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 1, 162, 645, 23, 84, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 646, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 229, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 404, 647, 231, 228, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 5, 6, 33, 1, 28, 16, -277, -277, -277, -277, -277, 105, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, -284, -284, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, -284, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 398, 397, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 104, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 5, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 404, 231, 648, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 2, 39, 1, 535, 649, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 650, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3, 6, 29, 4, 652, 651, 653, 106, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 8, 7, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -126, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -126, 30, -126, -126, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, -126, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, -126, 58, 64, 65, 80, 654, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 543, -125, 655, -125, 2, 36, 3, 656, 158, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, 120, -303, -303, -303, -303, -303, -303, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 120, -305, -305, -305, -305, -305, -305, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 27, 6, 33, 1, 28, 54, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, 657, -84, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 658, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, 17, 32, 17, 1, 1, 1, 1, 1, 1, 1, 21, 1, 1, 2, 1, 1, 2, 1, 257, 98, 258, 241, 255, 94, 95, 99, 100, 659, 554, 260, 252, 259, 253, 254, 261, 23, 6, 26, 7, 1, 9, 1, 1, 1, 1, 1, 1, 1, 12, 9, 1, 1, 2, 1, 1, 2, 1, 39, 3, -192, 257, -192, -192, 98, 258, 241, 255, 94, 95, 99, 100, -192, 256, 554, 260, 252, 259, 253, 254, 261, -192, 660, 5, 6, 33, 1, 28, 57, -194, -194, -194, -194, -194, 6, 6, 33, 1, 28, 12, 45, -82, -82, -82, -82, 661, -82, 27, 6, 33, 1, 28, 54, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, 121, -86, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 662, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 6, 6, 33, 1, 28, 12, 45, -92, -92, -92, -92, -92, -92, 23, 84, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 663, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 33, 60, 238, 664, 2, 33, 60, 238, 665, 2, 50, 1, 666, 241, 2, 50, 1, 667, 241, 15, 6, 27, 6, 1, 10, 1, 17, 27, 1, 1, 1, 1, 2, 24, 19, -110, -110, -110, -110, 668, 241, -110, -110, -110, -110, -110, -110, -110, -110, -110, 15, 6, 27, 6, 1, 10, 1, 17, 27, 1, 1, 1, 1, 2, 24, 19, -111, -111, -111, -111, 669, 241, -111, -111, -111, -111, -111, -111, -111, -111, -111, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 670, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 671, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 99, 672, 2, 33, 60, 238, 673, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 4, 55, 1, 2, 2, -63, -63, -63, -63, 2, 6, 34, 101, 674, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, 120, -394, -394, -394, -394, -394, -394, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, 675, -327, -327, 120, -327, -327, -327, 676, -327, -327, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 677, -332, -332, 120, -332, -332, -332, -332, -332, -332, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, 678, -336, -336, 120, -336, -336, -336, -336, -336, -336, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 679, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 680, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, 120, -341, -341, -341, -341, -341, -341, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 40, 60, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -263, -263, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 100, 681, 1, 100, 682, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, 26, 40, 46, 36, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 683, 306, 121, 447, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 40, 684, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 685, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 100, 686, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 687, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -121, -121, -121, -121, -121, -121, -121, -121, -121, 6, 6, 29, 4, 1, 28, 36, -130, -130, -130, -130, -130, -130, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 332, -125, 688, -125, 2, 36, 3, 596, 158, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -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, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 689, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 690, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 691, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 692, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 693, 158, 121, 694, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 695, 158, 121, 696, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, 2, 36, 3, 697, 158, 1, 40, 698, 4, 6, 34, 135, 2, 699, -352, -352, -352, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 700, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, 2, 36, 3, 701, 158, 3, 54, 1, 1, 702, 99, 100, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 516, -125, 703, -125, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, 1, 48, 704, 4, 32, 17, 86, 2, 380, 98, 705, 381, 6, 32, 7, 10, 85, 1, 2, 380, 379, 98, 706, 378, 381, 5, 6, 33, 1, 28, 57, -213, -213, -213, -213, -213, 3, 6, 33, 1, 627, 628, 707, 5, 6, 33, 1, 28, 57, -218, -218, -218, -218, -218, 5, 6, 33, 1, 28, 57, -220, -220, -220, -220, -220, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, 14, 1, 5, 29, 4, 1, 8, 13, 7, 16, 78, 2, 1, 17, 1, -224, -224, -224, -224, -224, 708, -224, -224, -224, -224, -224, -224, -224, -224, 4, 32, 17, 88, 5, 387, 98, 388, 709, 6, 32, 7, 10, 88, 3, 2, 387, 386, 98, 388, 710, 385, 5, 6, 33, 1, 28, 57, -236, -236, -236, -236, -236, 3, 6, 33, 1, 635, 636, 711, 5, 6, 33, 1, 28, 57, -241, -241, -241, -241, -241, 5, 6, 33, 1, 28, 57, -242, -242, -242, -242, -242, 5, 6, 33, 1, 28, 57, -244, -244, -244, -244, -244, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -228, -228, -228, -228, -228, -228, -228, -228, 121, -228, 120, -228, -228, -228, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 712, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, 9, 6, 29, 4, 1, 28, 16, 24, 17, 24, -125, -125, -125, -125, 400, -125, 401, -125, 713, 5, 6, 33, 1, 28, 16, -278, -278, -278, -278, -278, 5, 6, 33, 1, 28, 16, -279, -279, -279, -279, -279, 1, 100, 714, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, 100, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 715, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 102, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 412, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 716, 80, 411, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 5, 6, 29, 4, 1, 28, -268, -268, -268, -268, -268, 3, 6, 33, 1, 652, 653, 717, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, 14, 32, 15, 2, 33, 1, 2, 25, 1, 5, 5, 2, 4, 44, 1, 150, 153, 98, 151, 77, 154, 193, 152, 289, 93, 718, 719, 288, 192, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 720, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 5, 6, 33, 1, 28, 57, -195, -195, -195, -195, -195, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 421, -125, 721, -125, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 722, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 549, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 723, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 6, 6, 33, 1, 28, 12, 45, -93, -93, -93, -93, -93, -93, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 724, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 725, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 726, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 727, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, 1, 61, 728, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 729, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 730, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 731, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 732, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, 733, -334, -334, 120, -334, -334, -334, -334, -334, -334, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 734, -338, -338, 120, -338, -338, -338, -338, -338, -338, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, 1, 100, 735, 1, 100, 736, 1, 100, 737, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, 1, 100, 738, 3, 6, 33, 1, 475, 476, 739, 25, 36, 3, 83, 41, 1, 1, 4, 13, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 740, 158, 121, 120, 90, 91, 741, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 742, 158, 121, 743, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 744, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 745, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 746, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 747, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 40, 748, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, 3, 40, 135, 2, -353, -353, -353, 24, 39, 29, 54, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -290, -290, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, 3, 6, 33, 86, 627, 628, 749, 3, 54, 1, 1, 750, 99, 100, 5, 6, 33, 1, 28, 57, -214, -214, -214, -214, -214, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 516, -125, 751, -125, 5, 6, 33, 1, 28, 57, -215, -215, -215, -215, -215, 3, 54, 1, 1, 752, 99, 100, 5, 6, 33, 1, 28, 57, -237, -237, -237, -237, -237, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 523, -125, 753, -125, 5, 6, 33, 1, 28, 57, -238, -238, -238, -238, -238, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, 2, 39, 1, 535, 754, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, 5, 6, 29, 4, 1, 28, -269, -269, -269, -269, -269, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 543, -125, 755, -125, 5, 6, 29, 4, 1, 28, -270, -270, -270, -270, -270, 3, 124, 44, 2, 756, 440, 442, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 757, 192, 5, 6, 33, 1, 28, 57, -85, -85, -85, -85, -85, 3, 6, 33, 1, 551, 552, 758, 27, 6, 33, 1, 28, 54, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, 121, -84, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 5, 6, 33, 1, 28, 57, -87, -87, -87, -87, -87, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 759, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 760, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 761, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 4, 55, 1, 2, 2, -64, -64, -64, -64, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, 120, -328, -328, -328, 762, -328, -328, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, 763, -329, -329, 120, -329, -329, -329, -329, -329, -329, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, 120, -333, -333, -333, -333, -333, -333, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, 120, -337, -337, -337, -337, -337, -337, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 764, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 765, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, 6, 6, 29, 4, 1, 28, 36, -131, -131, -131, -131, -131, -131, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 766, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 767, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 768, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 769, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, 1, 48, 770, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, 3, 6, 33, 1, 627, 628, 771, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, 3, 6, 33, 1, 635, 636, 772, 5, 6, 33, 1, 28, 16, -280, -280, -280, -280, -280, 3, 6, 33, 1, 652, 653, 773, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 774, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 124, 775, 5, 6, 33, 1, 28, 57, -196, -196, -196, -196, -196, 1, 100, 776, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 777, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 778, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 779, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, 120, -335, -335, -335, -335, -335, -335, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 120, -339, -339, -339, -339, -339, -339, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 780, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 781, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, 3, 54, 1, 1, 782, 99, 100, 5, 6, 33, 1, 28, 57, -216, -216, -216, -216, -216, 5, 6, 33, 1, 28, 57, -239, -239, -239, -239, -239, 5, 6, 29, 4, 1, 28, -271, -271, -271, -271, -271, 43, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 4, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -332, -332, -332, -332, -332, -332, 785, -332, -332, -332, -332, -332, 783, -332, -332, -332, 784, -332, -332, 120, -332, -332, -332, -332, -332, -332, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 786, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, 1, 100, 787, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, 120, -330, -330, -330, -330, -330, -330, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, 120, -331, -331, -331, -331, -331, -331, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, 1, 125, 788, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 789, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 6, 6, 29, 4, 1, 44, 41, -126, -126, -126, -126, -126, -126, 43, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 4, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -334, -334, -334, -334, -334, -334, 785, -334, -334, -334, -334, -334, 790, -334, -334, -334, 791, -334, -334, 120, -334, -334, -334, -334, -334, -334, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, 43, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 4, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -333, -333, -333, -333, -333, -333, 785, -333, -333, -333, -333, -333, 792, -333, -333, -333, -333, -333, -333, 120, -333, -333, -333, -333, -333, -333, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 125, 793, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 794, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 125, 795, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, 43, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 4, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -335, -335, -335, -335, -335, -335, 785, -335, -335, -335, -335, -335, 796, -335, -335, -335, -335, -335, -335, 120, -335, -335, -335, -335, -335, -335, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, 1, 125, 797, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190], t = [], p = 0, n, o, k2, a;
|
|
3005
2619
|
while (p < d.length) {
|
|
3006
2620
|
n = d[p++];
|
|
3007
2621
|
o = {};
|
|
@@ -3015,7 +2629,7 @@ var parserInstance = {
|
|
|
3015
2629
|
}
|
|
3016
2630
|
return t;
|
|
3017
2631
|
})(),
|
|
3018
|
-
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,
|
|
2632
|
+
ruleTable: [0, 0, 3, 0, 3, 1, 4, 1, 4, 3, 4, 2, 5, 1, 5, 1, 5, 1, 9, 1, 9, 1, 9, 1, 9, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 30, 6, 30, 3, 18, 3, 18, 4, 18, 5, 19, 3, 19, 4, 19, 5, 20, 3, 20, 4, 20, 5, 21, 3, 21, 4, 21, 5, 21, 2, 21, 3, 21, 4, 8, 1, 8, 1, 29, 1, 29, 2, 29, 4, 29, 3, 36, 2, 36, 3, 32, 1, 50, 1, 52, 1, 52, 1, 54, 1, 54, 3, 57, 1, 57, 2, 59, 3, 59, 5, 59, 2, 59, 1, 62, 1, 62, 3, 67, 3, 67, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 17, 3, 17, 4, 17, 5, 77, 1, 77, 1, 77, 3, 77, 5, 77, 3, 77, 5, 81, 1, 81, 1, 81, 1, 78, 1, 78, 3, 78, 4, 78, 1, 79, 2, 79, 2, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 2, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 2, 87, 2, 87, 4, 87, 6, 87, 5, 87, 7, 10, 2, 10, 4, 10, 1, 15, 5, 15, 2, 44, 5, 44, 2, 105, 1, 105, 1, 108, 0, 108, 1, 34, 0, 34, 1, 34, 3, 34, 4, 34, 6, 109, 1, 109, 3, 109, 2, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 112, 2, 113, 1, 113, 1, 113, 3, 113, 3, 113, 3, 113, 3, 113, 2, 113, 2, 113, 4, 113, 6, 113, 4, 113, 6, 113, 4, 113, 5, 113, 7, 113, 5, 113, 7, 113, 5, 113, 7, 113, 3, 113, 3, 113, 3, 113, 3, 113, 2, 113, 2, 113, 4, 113, 6, 113, 5, 113, 7, 37, 1, 37, 1, 37, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 89, 3, 89, 4, 89, 6, 118, 3, 118, 3, 47, 10, 47, 12, 47, 11, 47, 13, 47, 4, 128, 0, 128, 1, 128, 3, 128, 4, 128, 6, 27, 1, 27, 2, 27, 3, 27, 4, 27, 2, 27, 3, 27, 4, 27, 5, 12, 2, 12, 4, 12, 4, 12, 5, 12, 7, 12, 6, 12, 9, 134, 1, 134, 3, 134, 4, 134, 4, 134, 6, 135, 1, 135, 3, 135, 1, 135, 3, 132, 1, 133, 3, 13, 3, 13, 5, 13, 2, 13, 2, 13, 4, 13, 5, 13, 6, 13, 3, 13, 5, 13, 4, 13, 5, 13, 7, 140, 1, 140, 3, 140, 4, 140, 4, 140, 6, 142, 1, 142, 3, 142, 3, 142, 1, 142, 3, 65, 3, 65, 3, 65, 3, 65, 2, 65, 2, 92, 0, 92, 1, 93, 2, 93, 4, 90, 1, 90, 1, 82, 2, 111, 2, 111, 3, 111, 4, 150, 1, 150, 1, 116, 5, 114, 3, 114, 2, 114, 2, 114, 1, 145, 1, 145, 3, 145, 4, 145, 4, 145, 6, 152, 1, 152, 1, 152, 1, 152, 1, 148, 1, 148, 3, 148, 4, 148, 4, 148, 6, 153, 1, 153, 2, 149, 1, 149, 2, 147, 1, 147, 2, 154, 1, 154, 2, 155, 1, 155, 3, 23, 2, 23, 3, 23, 4, 23, 5, 157, 3, 157, 3, 157, 2, 28, 2, 28, 4, 88, 3, 88, 5, 163, 2, 163, 4, 163, 2, 163, 4, 24, 2, 24, 2, 24, 2, 24, 1, 166, 2, 166, 2, 25, 5, 25, 7, 25, 7, 25, 9, 25, 9, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 6, 25, 8, 25, 3, 25, 5, 25, 5, 25, 7, 25, 7, 25, 9, 25, 9, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 6, 25, 8, 25, 3, 25, 5, 172, 1, 172, 3, 123, 1, 123, 3, 26, 5, 26, 7, 26, 4, 26, 6, 174, 1, 174, 2, 176, 3, 176, 4, 178, 3, 178, 5, 180, 3, 180, 5, 22, 1, 22, 3, 22, 1, 22, 3, 22, 3, 22, 3, 22, 3, 45, 2, 45, 2, 45, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 4, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 3, 16, 5, 16, 4, 117, 2],
|
|
3019
2633
|
ruleActions: (rule, vals, locs, shared) => {
|
|
3020
2634
|
const $ = vals;
|
|
3021
2635
|
const $0 = vals.length - 1;
|
|
@@ -3025,30 +2639,27 @@ var parserInstance = {
|
|
|
3025
2639
|
case 2:
|
|
3026
2640
|
return ["program", ...$[$0]];
|
|
3027
2641
|
case 3:
|
|
3028
|
-
case
|
|
3029
|
-
case
|
|
3030
|
-
case
|
|
3031
|
-
case
|
|
3032
|
-
case
|
|
3033
|
-
case
|
|
3034
|
-
case
|
|
3035
|
-
case
|
|
3036
|
-
case
|
|
3037
|
-
case
|
|
3038
|
-
case 363:
|
|
2642
|
+
case 61:
|
|
2643
|
+
case 128:
|
|
2644
|
+
case 193:
|
|
2645
|
+
case 212:
|
|
2646
|
+
case 235:
|
|
2647
|
+
case 267:
|
|
2648
|
+
case 281:
|
|
2649
|
+
case 285:
|
|
2650
|
+
case 344:
|
|
2651
|
+
case 350:
|
|
3039
2652
|
return [$[$0]];
|
|
3040
2653
|
case 4:
|
|
3041
|
-
case
|
|
3042
|
-
case
|
|
3043
|
-
case
|
|
3044
|
-
case
|
|
3045
|
-
case
|
|
3046
|
-
case 281:
|
|
2654
|
+
case 129:
|
|
2655
|
+
case 194:
|
|
2656
|
+
case 213:
|
|
2657
|
+
case 236:
|
|
2658
|
+
case 268:
|
|
3047
2659
|
return [...$[$0 - 2], $[$0]];
|
|
3048
2660
|
case 5:
|
|
3049
|
-
case
|
|
3050
|
-
case
|
|
3051
|
-
case 301:
|
|
2661
|
+
case 63:
|
|
2662
|
+
case 288:
|
|
3052
2663
|
return $[$0 - 1];
|
|
3053
2664
|
case 6:
|
|
3054
2665
|
case 7:
|
|
@@ -3074,583 +2685,570 @@ var parserInstance = {
|
|
|
3074
2685
|
case 27:
|
|
3075
2686
|
case 28:
|
|
3076
2687
|
case 29:
|
|
3077
|
-
case
|
|
3078
|
-
case
|
|
3079
|
-
case 32:
|
|
3080
|
-
case 52:
|
|
3081
|
-
case 53:
|
|
3082
|
-
case 54:
|
|
2688
|
+
case 47:
|
|
2689
|
+
case 48:
|
|
3083
2690
|
case 55:
|
|
3084
|
-
case
|
|
3085
|
-
case
|
|
3086
|
-
case
|
|
3087
|
-
case
|
|
3088
|
-
case
|
|
2691
|
+
case 56:
|
|
2692
|
+
case 57:
|
|
2693
|
+
case 58:
|
|
2694
|
+
case 59:
|
|
2695
|
+
case 66:
|
|
2696
|
+
case 67:
|
|
3089
2697
|
case 71:
|
|
3090
2698
|
case 72:
|
|
3091
|
-
case
|
|
3092
|
-
case
|
|
3093
|
-
case
|
|
3094
|
-
case
|
|
3095
|
-
case
|
|
2699
|
+
case 73:
|
|
2700
|
+
case 76:
|
|
2701
|
+
case 77:
|
|
2702
|
+
case 78:
|
|
2703
|
+
case 83:
|
|
2704
|
+
case 88:
|
|
3096
2705
|
case 89:
|
|
3097
2706
|
case 90:
|
|
3098
2707
|
case 91:
|
|
3099
|
-
case
|
|
2708
|
+
case 94:
|
|
2709
|
+
case 97:
|
|
2710
|
+
case 98:
|
|
2711
|
+
case 99:
|
|
2712
|
+
case 100:
|
|
3100
2713
|
case 101:
|
|
3101
|
-
case
|
|
3102
|
-
case
|
|
3103
|
-
case
|
|
3104
|
-
case
|
|
3105
|
-
case
|
|
3106
|
-
case 111:
|
|
3107
|
-
case 112:
|
|
3108
|
-
case 113:
|
|
3109
|
-
case 114:
|
|
2714
|
+
case 123:
|
|
2715
|
+
case 124:
|
|
2716
|
+
case 125:
|
|
2717
|
+
case 126:
|
|
2718
|
+
case 132:
|
|
3110
2719
|
case 136:
|
|
3111
2720
|
case 137:
|
|
3112
2721
|
case 138:
|
|
3113
2722
|
case 139:
|
|
3114
|
-
case
|
|
3115
|
-
case
|
|
3116
|
-
case
|
|
3117
|
-
case
|
|
3118
|
-
case
|
|
3119
|
-
case
|
|
3120
|
-
case
|
|
3121
|
-
case
|
|
3122
|
-
case
|
|
3123
|
-
case
|
|
3124
|
-
case
|
|
3125
|
-
case
|
|
3126
|
-
case
|
|
3127
|
-
case
|
|
3128
|
-
case
|
|
3129
|
-
case
|
|
3130
|
-
case
|
|
3131
|
-
case
|
|
3132
|
-
case
|
|
3133
|
-
case
|
|
3134
|
-
case
|
|
3135
|
-
case
|
|
3136
|
-
case
|
|
3137
|
-
case 256:
|
|
3138
|
-
case 285:
|
|
3139
|
-
case 286:
|
|
3140
|
-
case 287:
|
|
2723
|
+
case 141:
|
|
2724
|
+
case 142:
|
|
2725
|
+
case 170:
|
|
2726
|
+
case 171:
|
|
2727
|
+
case 172:
|
|
2728
|
+
case 173:
|
|
2729
|
+
case 174:
|
|
2730
|
+
case 175:
|
|
2731
|
+
case 176:
|
|
2732
|
+
case 177:
|
|
2733
|
+
case 178:
|
|
2734
|
+
case 179:
|
|
2735
|
+
case 180:
|
|
2736
|
+
case 181:
|
|
2737
|
+
case 217:
|
|
2738
|
+
case 219:
|
|
2739
|
+
case 221:
|
|
2740
|
+
case 240:
|
|
2741
|
+
case 243:
|
|
2742
|
+
case 272:
|
|
2743
|
+
case 273:
|
|
2744
|
+
case 274:
|
|
2745
|
+
case 276:
|
|
3141
2746
|
case 289:
|
|
3142
|
-
case
|
|
3143
|
-
case
|
|
3144
|
-
case
|
|
3145
|
-
case
|
|
3146
|
-
case 373:
|
|
2747
|
+
case 309:
|
|
2748
|
+
case 342:
|
|
2749
|
+
case 358:
|
|
2750
|
+
case 360:
|
|
3147
2751
|
return $[$0];
|
|
3148
|
-
case
|
|
2752
|
+
case 30:
|
|
3149
2753
|
return ["def", $[$0 - 4], $[$0 - 2], $[$0]];
|
|
3150
|
-
case
|
|
2754
|
+
case 31:
|
|
3151
2755
|
return ["def", $[$0 - 1], [], $[$0]];
|
|
2756
|
+
case 32:
|
|
2757
|
+
return ["state", $[$0 - 2], $[$0]];
|
|
2758
|
+
case 33:
|
|
2759
|
+
return ["state", $[$0 - 3], $[$0]];
|
|
2760
|
+
case 34:
|
|
2761
|
+
return ["state", $[$0 - 4], $[$0 - 1]];
|
|
3152
2762
|
case 35:
|
|
3153
|
-
return ["
|
|
2763
|
+
return ["computed", $[$0 - 2], $[$0]];
|
|
3154
2764
|
case 36:
|
|
3155
|
-
return ["
|
|
2765
|
+
return ["computed", $[$0 - 3], $[$0]];
|
|
3156
2766
|
case 37:
|
|
3157
|
-
return ["
|
|
2767
|
+
return ["computed", $[$0 - 4], $[$0 - 1]];
|
|
3158
2768
|
case 38:
|
|
3159
|
-
return ["
|
|
2769
|
+
return ["readonly", $[$0 - 2], $[$0]];
|
|
3160
2770
|
case 39:
|
|
3161
|
-
return ["
|
|
2771
|
+
return ["readonly", $[$0 - 3], $[$0]];
|
|
3162
2772
|
case 40:
|
|
3163
|
-
return ["
|
|
2773
|
+
return ["readonly", $[$0 - 4], $[$0 - 1]];
|
|
3164
2774
|
case 41:
|
|
3165
|
-
return ["
|
|
2775
|
+
return ["effect", $[$0 - 2], $[$0]];
|
|
3166
2776
|
case 42:
|
|
3167
|
-
return ["
|
|
2777
|
+
return ["effect", $[$0 - 3], $[$0]];
|
|
3168
2778
|
case 43:
|
|
3169
|
-
return ["
|
|
2779
|
+
return ["effect", $[$0 - 4], $[$0 - 1]];
|
|
3170
2780
|
case 44:
|
|
3171
2781
|
case 45:
|
|
3172
|
-
return ["effect", $[$0]];
|
|
2782
|
+
return ["effect", null, $[$0]];
|
|
3173
2783
|
case 46:
|
|
3174
|
-
return ["
|
|
3175
|
-
case
|
|
3176
|
-
return ["style", $[$0]];
|
|
3177
|
-
case 48:
|
|
3178
|
-
return ["component", $[$0 - 3], ["block", ...$[$0 - 1]]];
|
|
3179
|
-
case 56:
|
|
3180
|
-
return ["prop", $[$0]];
|
|
3181
|
-
case 57:
|
|
3182
|
-
return ["prop", $[$0 - 1], "optional"];
|
|
3183
|
-
case 58:
|
|
3184
|
-
return ["prop", $[$0 - 2], $[$0]];
|
|
3185
|
-
case 59:
|
|
3186
|
-
return ["prop-rest", $[$0]];
|
|
3187
|
-
case 62:
|
|
2784
|
+
return ["effect", null, $[$0 - 1]];
|
|
2785
|
+
case 49:
|
|
3188
2786
|
return ["yield"];
|
|
3189
|
-
case
|
|
2787
|
+
case 50:
|
|
3190
2788
|
return ["yield", $[$0]];
|
|
3191
|
-
case
|
|
2789
|
+
case 51:
|
|
3192
2790
|
return ["yield", $[$0 - 1]];
|
|
3193
|
-
case
|
|
2791
|
+
case 52:
|
|
3194
2792
|
return ["yield-from", $[$0]];
|
|
3195
|
-
case
|
|
2793
|
+
case 53:
|
|
3196
2794
|
return ["block"];
|
|
3197
|
-
case
|
|
2795
|
+
case 54:
|
|
3198
2796
|
return ["block", ...$[$0 - 1]];
|
|
3199
|
-
case
|
|
2797
|
+
case 60:
|
|
3200
2798
|
return ["str", ...$[$0 - 1]];
|
|
3201
|
-
case
|
|
3202
|
-
case
|
|
3203
|
-
case
|
|
3204
|
-
case
|
|
2799
|
+
case 62:
|
|
2800
|
+
case 282:
|
|
2801
|
+
case 286:
|
|
2802
|
+
case 351:
|
|
3205
2803
|
return [...$[$0 - 1], $[$0]];
|
|
3206
|
-
case
|
|
3207
|
-
case
|
|
3208
|
-
case
|
|
3209
|
-
case
|
|
3210
|
-
case
|
|
3211
|
-
return $[$0 - 2];
|
|
3212
|
-
case
|
|
3213
|
-
return "";
|
|
3214
|
-
case
|
|
2804
|
+
case 64:
|
|
2805
|
+
case 215:
|
|
2806
|
+
case 238:
|
|
2807
|
+
case 253:
|
|
2808
|
+
case 270:
|
|
2809
|
+
return $[$0 - 2];
|
|
2810
|
+
case 65:
|
|
2811
|
+
return "";
|
|
2812
|
+
case 68:
|
|
3215
2813
|
return ["regex", $[$0 - 1]];
|
|
3216
|
-
case
|
|
2814
|
+
case 69:
|
|
3217
2815
|
return ["regex-index", $[$0 - 2], $[$0]];
|
|
3218
|
-
case
|
|
2816
|
+
case 70:
|
|
3219
2817
|
return ["regex-index", $[$0], null];
|
|
3220
|
-
case
|
|
2818
|
+
case 74:
|
|
3221
2819
|
return "undefined";
|
|
3222
|
-
case
|
|
2820
|
+
case 75:
|
|
3223
2821
|
return "null";
|
|
3224
|
-
case
|
|
2822
|
+
case 79:
|
|
3225
2823
|
return ["=", $[$0 - 2], $[$0]];
|
|
3226
|
-
case
|
|
2824
|
+
case 80:
|
|
3227
2825
|
return ["=", $[$0 - 3], $[$0]];
|
|
3228
|
-
case
|
|
2826
|
+
case 81:
|
|
3229
2827
|
return ["=", $[$0 - 4], $[$0 - 1]];
|
|
3230
|
-
case
|
|
2828
|
+
case 82:
|
|
3231
2829
|
return [$[$0], $[$0], null];
|
|
3232
|
-
case
|
|
2830
|
+
case 84:
|
|
3233
2831
|
return [$[$0 - 2], $[$0], ":"];
|
|
3234
|
-
case
|
|
2832
|
+
case 85:
|
|
3235
2833
|
return [$[$0 - 4], $[$0 - 1], ":"];
|
|
3236
|
-
case
|
|
2834
|
+
case 86:
|
|
3237
2835
|
return [$[$0 - 2], $[$0], "="];
|
|
3238
|
-
case
|
|
2836
|
+
case 87:
|
|
3239
2837
|
return [$[$0 - 4], $[$0 - 1], "="];
|
|
3240
|
-
case
|
|
3241
|
-
return ["
|
|
3242
|
-
case
|
|
2838
|
+
case 92:
|
|
2839
|
+
return ["dynamicKey", $[$0 - 1]];
|
|
2840
|
+
case 93:
|
|
3243
2841
|
return ["[]", "this", $[$0 - 1]];
|
|
3244
|
-
case
|
|
3245
|
-
case
|
|
3246
|
-
case
|
|
2842
|
+
case 95:
|
|
2843
|
+
case 96:
|
|
2844
|
+
case 140:
|
|
3247
2845
|
return ["...", $[$0]];
|
|
3248
|
-
case
|
|
3249
|
-
case
|
|
2846
|
+
case 102:
|
|
2847
|
+
case 248:
|
|
3250
2848
|
return ["super", ...$[$0]];
|
|
3251
|
-
case
|
|
3252
|
-
case
|
|
2849
|
+
case 103:
|
|
2850
|
+
case 249:
|
|
3253
2851
|
return ["import", ...$[$0]];
|
|
3254
|
-
case
|
|
3255
|
-
case
|
|
2852
|
+
case 104:
|
|
2853
|
+
case 105:
|
|
3256
2854
|
return [$[$0 - 2], ...$[$0]];
|
|
3257
|
-
case
|
|
3258
|
-
case
|
|
3259
|
-
case
|
|
2855
|
+
case 106:
|
|
2856
|
+
case 143:
|
|
2857
|
+
case 160:
|
|
3260
2858
|
return [".", $[$0 - 2], $[$0]];
|
|
3261
|
-
case
|
|
3262
|
-
case
|
|
3263
|
-
case
|
|
2859
|
+
case 107:
|
|
2860
|
+
case 144:
|
|
2861
|
+
case 161:
|
|
3264
2862
|
return ["?.", $[$0 - 2], $[$0]];
|
|
3265
|
-
case
|
|
3266
|
-
case
|
|
3267
|
-
case
|
|
2863
|
+
case 108:
|
|
2864
|
+
case 145:
|
|
2865
|
+
case 162:
|
|
3268
2866
|
return ["::", $[$0 - 2], $[$0]];
|
|
3269
|
-
case
|
|
3270
|
-
case
|
|
3271
|
-
case
|
|
2867
|
+
case 109:
|
|
2868
|
+
case 146:
|
|
2869
|
+
case 163:
|
|
3272
2870
|
return ["?::", $[$0 - 2], $[$0]];
|
|
3273
|
-
case
|
|
3274
|
-
case
|
|
3275
|
-
case
|
|
2871
|
+
case 110:
|
|
2872
|
+
case 147:
|
|
2873
|
+
case 164:
|
|
3276
2874
|
return ["::", $[$0 - 1], "prototype"];
|
|
3277
|
-
case
|
|
3278
|
-
case
|
|
3279
|
-
case
|
|
2875
|
+
case 111:
|
|
2876
|
+
case 148:
|
|
2877
|
+
case 165:
|
|
3280
2878
|
return ["?::", $[$0 - 1], "prototype"];
|
|
3281
|
-
case
|
|
3282
|
-
case
|
|
3283
|
-
case
|
|
3284
|
-
case
|
|
2879
|
+
case 112:
|
|
2880
|
+
case 149:
|
|
2881
|
+
case 151:
|
|
2882
|
+
case 166:
|
|
3285
2883
|
return ["[]", $[$0 - 3], $[$0 - 1]];
|
|
3286
|
-
case
|
|
3287
|
-
case
|
|
3288
|
-
case
|
|
3289
|
-
case 180:
|
|
3290
|
-
return ["[]", $[$0 - 5], $[$0 - 2]];
|
|
3291
|
-
case 127:
|
|
2884
|
+
case 113:
|
|
2885
|
+
case 150:
|
|
2886
|
+
case 152:
|
|
3292
2887
|
case 167:
|
|
3293
|
-
|
|
3294
|
-
case
|
|
3295
|
-
|
|
3296
|
-
case
|
|
2888
|
+
return ["[]", $[$0 - 5], $[$0 - 2]];
|
|
2889
|
+
case 114:
|
|
2890
|
+
case 154:
|
|
2891
|
+
case 156:
|
|
3297
2892
|
case 168:
|
|
3298
|
-
|
|
3299
|
-
case
|
|
2893
|
+
return ["?[]", $[$0 - 4], $[$0 - 1]];
|
|
2894
|
+
case 115:
|
|
2895
|
+
case 155:
|
|
2896
|
+
case 157:
|
|
2897
|
+
case 169:
|
|
3300
2898
|
return ["?[]", $[$0 - 6], $[$0 - 2]];
|
|
3301
|
-
case
|
|
2899
|
+
case 116:
|
|
3302
2900
|
return ["return", $[$0]];
|
|
3303
|
-
case
|
|
2901
|
+
case 117:
|
|
3304
2902
|
return ["return", $[$0 - 1]];
|
|
3305
|
-
case
|
|
2903
|
+
case 118:
|
|
3306
2904
|
return ["return"];
|
|
3307
|
-
case
|
|
3308
|
-
case
|
|
2905
|
+
case 119:
|
|
2906
|
+
case 121:
|
|
3309
2907
|
return [$[$0 - 1], $[$0 - 3], $[$0]];
|
|
3310
|
-
case
|
|
3311
|
-
case
|
|
2908
|
+
case 120:
|
|
2909
|
+
case 122:
|
|
3312
2910
|
return [$[$0 - 1], [], $[$0]];
|
|
3313
|
-
case
|
|
3314
|
-
case
|
|
3315
|
-
case
|
|
3316
|
-
case
|
|
2911
|
+
case 127:
|
|
2912
|
+
case 192:
|
|
2913
|
+
case 252:
|
|
2914
|
+
case 283:
|
|
3317
2915
|
return [];
|
|
3318
|
-
case
|
|
3319
|
-
case
|
|
3320
|
-
case
|
|
3321
|
-
case
|
|
3322
|
-
case
|
|
2916
|
+
case 130:
|
|
2917
|
+
case 195:
|
|
2918
|
+
case 214:
|
|
2919
|
+
case 237:
|
|
2920
|
+
case 269:
|
|
3323
2921
|
return [...$[$0 - 3], $[$0]];
|
|
3324
|
-
case
|
|
3325
|
-
case
|
|
3326
|
-
case
|
|
3327
|
-
case
|
|
3328
|
-
case
|
|
2922
|
+
case 131:
|
|
2923
|
+
case 196:
|
|
2924
|
+
case 216:
|
|
2925
|
+
case 239:
|
|
2926
|
+
case 271:
|
|
3329
2927
|
return [...$[$0 - 5], ...$[$0 - 2]];
|
|
3330
|
-
case
|
|
3331
|
-
case
|
|
2928
|
+
case 133:
|
|
2929
|
+
case 343:
|
|
3332
2930
|
return ["default", $[$0 - 2], $[$0]];
|
|
3333
|
-
case
|
|
2931
|
+
case 134:
|
|
3334
2932
|
return ["rest", $[$0]];
|
|
3335
|
-
case
|
|
2933
|
+
case 135:
|
|
3336
2934
|
return ["expansion"];
|
|
3337
|
-
case
|
|
2935
|
+
case 153:
|
|
3338
2936
|
return [$[$0 - 1][0], $[$0 - 3], ...$[$0 - 1].slice(1)];
|
|
3339
|
-
case
|
|
2937
|
+
case 158:
|
|
3340
2938
|
return ["optindex", $[$0 - 4], $[$0 - 1]];
|
|
3341
|
-
case
|
|
2939
|
+
case 159:
|
|
3342
2940
|
return ["optindex", $[$0 - 6], $[$0 - 2]];
|
|
3343
|
-
case
|
|
2941
|
+
case 182:
|
|
3344
2942
|
return [".", "super", $[$0]];
|
|
3345
|
-
case
|
|
2943
|
+
case 183:
|
|
3346
2944
|
return ["[]", "super", $[$0 - 1]];
|
|
3347
|
-
case
|
|
2945
|
+
case 184:
|
|
3348
2946
|
return ["[]", "super", $[$0 - 2]];
|
|
3349
|
-
case
|
|
2947
|
+
case 185:
|
|
3350
2948
|
return [".", "new", $[$0]];
|
|
3351
|
-
case
|
|
2949
|
+
case 186:
|
|
3352
2950
|
return [".", "import", $[$0]];
|
|
3353
|
-
case
|
|
2951
|
+
case 187:
|
|
3354
2952
|
return ["object-comprehension", $[$0 - 8], $[$0 - 6], [["for-of", $[$0 - 4], $[$0 - 2], false]], []];
|
|
3355
|
-
case
|
|
2953
|
+
case 188:
|
|
3356
2954
|
return ["object-comprehension", $[$0 - 10], $[$0 - 8], [["for-of", $[$0 - 6], $[$0 - 4], false]], [$[$0 - 2]]];
|
|
3357
|
-
case
|
|
2955
|
+
case 189:
|
|
3358
2956
|
return ["object-comprehension", $[$0 - 9], $[$0 - 7], [["for-of", $[$0 - 4], $[$0 - 2], true]], []];
|
|
3359
|
-
case
|
|
2957
|
+
case 190:
|
|
3360
2958
|
return ["object-comprehension", $[$0 - 11], $[$0 - 9], [["for-of", $[$0 - 6], $[$0 - 4], true]], [$[$0 - 2]]];
|
|
3361
|
-
case
|
|
2959
|
+
case 191:
|
|
3362
2960
|
return ["object", ...$[$0 - 2]];
|
|
3363
|
-
case
|
|
2961
|
+
case 197:
|
|
3364
2962
|
return ["class", null, null];
|
|
3365
|
-
case
|
|
2963
|
+
case 198:
|
|
3366
2964
|
return ["class", null, null, $[$0]];
|
|
3367
|
-
case
|
|
2965
|
+
case 199:
|
|
3368
2966
|
return ["class", null, $[$0]];
|
|
3369
|
-
case
|
|
2967
|
+
case 200:
|
|
3370
2968
|
return ["class", null, $[$0 - 1], $[$0]];
|
|
3371
|
-
case
|
|
2969
|
+
case 201:
|
|
3372
2970
|
return ["class", $[$0], null];
|
|
3373
|
-
case
|
|
2971
|
+
case 202:
|
|
3374
2972
|
return ["class", $[$0 - 1], null, $[$0]];
|
|
3375
|
-
case
|
|
2973
|
+
case 203:
|
|
3376
2974
|
return ["class", $[$0 - 2], $[$0]];
|
|
3377
|
-
case
|
|
2975
|
+
case 204:
|
|
3378
2976
|
return ["class", $[$0 - 3], $[$0 - 1], $[$0]];
|
|
3379
|
-
case
|
|
3380
|
-
case
|
|
2977
|
+
case 205:
|
|
2978
|
+
case 208:
|
|
3381
2979
|
return ["import", "{}", $[$0]];
|
|
3382
|
-
case
|
|
3383
|
-
case
|
|
2980
|
+
case 206:
|
|
2981
|
+
case 207:
|
|
3384
2982
|
return ["import", $[$0 - 2], $[$0]];
|
|
3385
|
-
case
|
|
2983
|
+
case 209:
|
|
3386
2984
|
return ["import", $[$0 - 4], $[$0]];
|
|
3387
|
-
case
|
|
2985
|
+
case 210:
|
|
3388
2986
|
return ["import", [$[$0 - 4], $[$0 - 2]], $[$0]];
|
|
3389
|
-
case
|
|
2987
|
+
case 211:
|
|
3390
2988
|
return ["import", [$[$0 - 7], $[$0 - 4]], $[$0]];
|
|
3391
|
-
case
|
|
3392
|
-
case
|
|
3393
|
-
case
|
|
3394
|
-
case
|
|
3395
|
-
case
|
|
3396
|
-
case
|
|
2989
|
+
case 218:
|
|
2990
|
+
case 220:
|
|
2991
|
+
case 241:
|
|
2992
|
+
case 242:
|
|
2993
|
+
case 244:
|
|
2994
|
+
case 345:
|
|
3397
2995
|
return [$[$0 - 2], $[$0]];
|
|
3398
|
-
case
|
|
2996
|
+
case 222:
|
|
3399
2997
|
return ["*", $[$0]];
|
|
3400
|
-
case
|
|
2998
|
+
case 223:
|
|
3401
2999
|
return ["export", "{}"];
|
|
3402
|
-
case
|
|
3000
|
+
case 224:
|
|
3403
3001
|
return ["export", $[$0 - 2]];
|
|
3404
|
-
case
|
|
3405
|
-
case
|
|
3002
|
+
case 225:
|
|
3003
|
+
case 226:
|
|
3406
3004
|
return ["export", $[$0]];
|
|
3407
|
-
case
|
|
3005
|
+
case 227:
|
|
3408
3006
|
return ["export", ["=", $[$0 - 2], $[$0]]];
|
|
3409
|
-
case
|
|
3007
|
+
case 228:
|
|
3410
3008
|
return ["export", ["=", $[$0 - 3], $[$0]]];
|
|
3411
|
-
case
|
|
3009
|
+
case 229:
|
|
3412
3010
|
return ["export", ["=", $[$0 - 4], $[$0 - 1]]];
|
|
3413
|
-
case
|
|
3011
|
+
case 230:
|
|
3414
3012
|
return ["export-default", $[$0]];
|
|
3415
|
-
case
|
|
3013
|
+
case 231:
|
|
3416
3014
|
return ["export-default", $[$0 - 1]];
|
|
3417
|
-
case
|
|
3015
|
+
case 232:
|
|
3418
3016
|
return ["export-all", $[$0]];
|
|
3419
|
-
case
|
|
3017
|
+
case 233:
|
|
3420
3018
|
return ["export-from", "{}", $[$0]];
|
|
3421
|
-
case
|
|
3019
|
+
case 234:
|
|
3422
3020
|
return ["export-from", $[$0 - 4], $[$0]];
|
|
3423
|
-
case
|
|
3021
|
+
case 245:
|
|
3424
3022
|
return ["tagged-template", $[$0 - 2], $[$0]];
|
|
3425
|
-
case
|
|
3023
|
+
case 246:
|
|
3426
3024
|
return $[$0 - 1] ? ["?call", $[$0 - 2], ...$[$0]] : [$[$0 - 2], ...$[$0]];
|
|
3427
|
-
case
|
|
3025
|
+
case 247:
|
|
3428
3026
|
return ["optcall", $[$0 - 2], ...$[$0]];
|
|
3429
|
-
case
|
|
3430
|
-
case
|
|
3027
|
+
case 250:
|
|
3028
|
+
case 287:
|
|
3431
3029
|
return null;
|
|
3432
|
-
case
|
|
3030
|
+
case 251:
|
|
3433
3031
|
return true;
|
|
3434
|
-
case
|
|
3435
|
-
case
|
|
3032
|
+
case 254:
|
|
3033
|
+
case 255:
|
|
3436
3034
|
return "this";
|
|
3437
|
-
case
|
|
3035
|
+
case 256:
|
|
3438
3036
|
return [".", "this", $[$0]];
|
|
3439
|
-
case
|
|
3037
|
+
case 257:
|
|
3440
3038
|
return ["array"];
|
|
3441
|
-
case
|
|
3039
|
+
case 258:
|
|
3442
3040
|
return ["array", ...$[$0 - 1]];
|
|
3443
|
-
case
|
|
3041
|
+
case 259:
|
|
3444
3042
|
return ["array", ...$[$0 - 2], ...$[$0 - 1]];
|
|
3445
|
-
case
|
|
3043
|
+
case 260:
|
|
3446
3044
|
return "..";
|
|
3447
|
-
case
|
|
3448
|
-
case 288:
|
|
3449
|
-
return "...";
|
|
3045
|
+
case 261:
|
|
3450
3046
|
case 275:
|
|
3047
|
+
return "...";
|
|
3048
|
+
case 262:
|
|
3451
3049
|
return [$[$0 - 2], $[$0 - 3], $[$0 - 1]];
|
|
3452
|
-
case
|
|
3050
|
+
case 263:
|
|
3051
|
+
case 382:
|
|
3052
|
+
case 384:
|
|
3053
|
+
case 385:
|
|
3054
|
+
case 393:
|
|
3453
3055
|
case 395:
|
|
3454
|
-
case 397:
|
|
3455
|
-
case 398:
|
|
3456
|
-
case 406:
|
|
3457
|
-
case 408:
|
|
3458
3056
|
return [$[$0 - 1], $[$0 - 2], $[$0]];
|
|
3459
|
-
case
|
|
3057
|
+
case 264:
|
|
3460
3058
|
return [$[$0], $[$0 - 1], null];
|
|
3461
|
-
case
|
|
3059
|
+
case 265:
|
|
3462
3060
|
return [$[$0 - 1], null, $[$0]];
|
|
3463
|
-
case
|
|
3061
|
+
case 266:
|
|
3464
3062
|
return [$[$0], null, null];
|
|
3465
|
-
case
|
|
3063
|
+
case 277:
|
|
3466
3064
|
return [...$[$0 - 2], ...$[$0]];
|
|
3467
|
-
case
|
|
3065
|
+
case 278:
|
|
3468
3066
|
return [...$[$0 - 3], ...$[$0]];
|
|
3469
|
-
case
|
|
3067
|
+
case 279:
|
|
3470
3068
|
return [...$[$0 - 2], ...$[$0 - 1]];
|
|
3471
|
-
case
|
|
3069
|
+
case 280:
|
|
3472
3070
|
return [...$[$0 - 5], ...$[$0 - 4], ...$[$0 - 2], ...$[$0 - 1]];
|
|
3473
|
-
case
|
|
3071
|
+
case 284:
|
|
3474
3072
|
return [...$[$0]];
|
|
3475
|
-
case
|
|
3073
|
+
case 290:
|
|
3476
3074
|
return Array.isArray($[$0 - 2]) ? [...$[$0 - 2], $[$0]] : [$[$0 - 2], $[$0]];
|
|
3477
|
-
case
|
|
3075
|
+
case 291:
|
|
3478
3076
|
return ["try", $[$0]];
|
|
3479
|
-
case
|
|
3077
|
+
case 292:
|
|
3480
3078
|
return ["try", $[$0 - 1], $[$0]];
|
|
3481
|
-
case
|
|
3079
|
+
case 293:
|
|
3482
3080
|
return ["try", $[$0 - 2], $[$0]];
|
|
3483
|
-
case
|
|
3081
|
+
case 294:
|
|
3484
3082
|
return ["try", $[$0 - 3], $[$0 - 2], $[$0]];
|
|
3485
|
-
case
|
|
3486
|
-
case
|
|
3487
|
-
case
|
|
3488
|
-
case
|
|
3489
|
-
case
|
|
3083
|
+
case 295:
|
|
3084
|
+
case 296:
|
|
3085
|
+
case 365:
|
|
3086
|
+
case 368:
|
|
3087
|
+
case 370:
|
|
3490
3088
|
return [$[$0 - 1], $[$0]];
|
|
3491
|
-
case
|
|
3089
|
+
case 297:
|
|
3492
3090
|
return [null, $[$0]];
|
|
3493
|
-
case
|
|
3091
|
+
case 298:
|
|
3494
3092
|
return ["throw", $[$0]];
|
|
3495
|
-
case
|
|
3093
|
+
case 299:
|
|
3496
3094
|
return ["throw", $[$0 - 1]];
|
|
3497
|
-
case
|
|
3095
|
+
case 300:
|
|
3498
3096
|
return $[$0 - 1].length === 1 ? $[$0 - 1][0] : $[$0 - 1];
|
|
3499
|
-
case
|
|
3097
|
+
case 301:
|
|
3500
3098
|
return $[$0 - 2].length === 1 ? $[$0 - 2][0] : $[$0 - 2];
|
|
3501
|
-
case
|
|
3099
|
+
case 302:
|
|
3502
3100
|
return ["while", $[$0]];
|
|
3503
|
-
case
|
|
3101
|
+
case 303:
|
|
3504
3102
|
return ["while", $[$0 - 2], $[$0]];
|
|
3505
|
-
case
|
|
3103
|
+
case 304:
|
|
3506
3104
|
return ["until", $[$0]];
|
|
3507
|
-
case
|
|
3105
|
+
case 305:
|
|
3508
3106
|
return ["until", $[$0 - 2], $[$0]];
|
|
3509
|
-
case
|
|
3107
|
+
case 306:
|
|
3510
3108
|
return $[$0 - 1].length === 2 ? [$[$0 - 1][0], $[$0 - 1][1], $[$0]] : [$[$0 - 1][0], $[$0 - 1][1], $[$0 - 1][2], $[$0]];
|
|
3511
|
-
case
|
|
3512
|
-
case
|
|
3109
|
+
case 307:
|
|
3110
|
+
case 308:
|
|
3513
3111
|
return $[$0].length === 2 ? [$[$0][0], $[$0][1], [$[$0 - 1]]] : [$[$0][0], $[$0][1], $[$0][2], [$[$0 - 1]]];
|
|
3514
|
-
case
|
|
3112
|
+
case 310:
|
|
3515
3113
|
return ["loop", $[$0]];
|
|
3516
|
-
case
|
|
3114
|
+
case 311:
|
|
3517
3115
|
return ["loop", [$[$0]]];
|
|
3518
|
-
case
|
|
3116
|
+
case 312:
|
|
3519
3117
|
return ["for-in", $[$0 - 3], $[$0 - 1], null, null, $[$0]];
|
|
3520
|
-
case
|
|
3118
|
+
case 313:
|
|
3521
3119
|
return ["for-in", $[$0 - 5], $[$0 - 3], null, $[$0 - 1], $[$0]];
|
|
3522
|
-
case
|
|
3120
|
+
case 314:
|
|
3523
3121
|
return ["for-in", $[$0 - 5], $[$0 - 3], $[$0 - 1], null, $[$0]];
|
|
3524
|
-
case
|
|
3122
|
+
case 315:
|
|
3525
3123
|
return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 1], $[$0 - 3], $[$0]];
|
|
3526
|
-
case
|
|
3124
|
+
case 316:
|
|
3527
3125
|
return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 3], $[$0 - 1], $[$0]];
|
|
3528
|
-
case
|
|
3126
|
+
case 317:
|
|
3529
3127
|
return ["for-of", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
|
|
3530
|
-
case
|
|
3128
|
+
case 318:
|
|
3531
3129
|
return ["for-of", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
|
|
3532
|
-
case
|
|
3130
|
+
case 319:
|
|
3533
3131
|
return ["for-of", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
|
|
3534
|
-
case
|
|
3132
|
+
case 320:
|
|
3535
3133
|
return ["for-of", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
|
|
3536
|
-
case
|
|
3134
|
+
case 321:
|
|
3537
3135
|
return ["for-from", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
|
|
3538
|
-
case
|
|
3136
|
+
case 322:
|
|
3539
3137
|
return ["for-from", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
|
|
3540
|
-
case
|
|
3138
|
+
case 323:
|
|
3541
3139
|
return ["for-from", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
|
|
3542
|
-
case
|
|
3140
|
+
case 324:
|
|
3543
3141
|
return ["for-from", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
|
|
3544
|
-
case
|
|
3142
|
+
case 325:
|
|
3545
3143
|
return ["for-in", [], $[$0 - 1], null, null, $[$0]];
|
|
3546
|
-
case
|
|
3144
|
+
case 326:
|
|
3547
3145
|
return ["for-in", [], $[$0 - 3], $[$0 - 1], null, $[$0]];
|
|
3548
|
-
case
|
|
3146
|
+
case 327:
|
|
3549
3147
|
return ["comprehension", $[$0 - 4], [["for-in", $[$0 - 2], $[$0], null]], []];
|
|
3550
|
-
case
|
|
3148
|
+
case 328:
|
|
3551
3149
|
return ["comprehension", $[$0 - 6], [["for-in", $[$0 - 4], $[$0 - 2], null]], [$[$0]]];
|
|
3552
|
-
case
|
|
3150
|
+
case 329:
|
|
3553
3151
|
return ["comprehension", $[$0 - 6], [["for-in", $[$0 - 4], $[$0 - 2], $[$0]]], []];
|
|
3554
|
-
case
|
|
3152
|
+
case 330:
|
|
3555
3153
|
return ["comprehension", $[$0 - 8], [["for-in", $[$0 - 6], $[$0 - 4], $[$0]]], [$[$0 - 2]]];
|
|
3556
|
-
case
|
|
3154
|
+
case 331:
|
|
3557
3155
|
return ["comprehension", $[$0 - 8], [["for-in", $[$0 - 6], $[$0 - 4], $[$0 - 2]]], [$[$0]]];
|
|
3558
|
-
case
|
|
3156
|
+
case 332:
|
|
3559
3157
|
return ["comprehension", $[$0 - 4], [["for-of", $[$0 - 2], $[$0], false]], []];
|
|
3560
|
-
case
|
|
3158
|
+
case 333:
|
|
3561
3159
|
return ["comprehension", $[$0 - 6], [["for-of", $[$0 - 4], $[$0 - 2], false]], [$[$0]]];
|
|
3562
|
-
case
|
|
3160
|
+
case 334:
|
|
3563
3161
|
return ["comprehension", $[$0 - 5], [["for-of", $[$0 - 2], $[$0], true]], []];
|
|
3564
|
-
case
|
|
3162
|
+
case 335:
|
|
3565
3163
|
return ["comprehension", $[$0 - 7], [["for-of", $[$0 - 4], $[$0 - 2], true]], [$[$0]]];
|
|
3566
|
-
case
|
|
3164
|
+
case 336:
|
|
3567
3165
|
return ["comprehension", $[$0 - 4], [["for-from", $[$0 - 2], $[$0], false, null]], []];
|
|
3568
|
-
case
|
|
3166
|
+
case 337:
|
|
3569
3167
|
return ["comprehension", $[$0 - 6], [["for-from", $[$0 - 4], $[$0 - 2], false, null]], [$[$0]]];
|
|
3570
|
-
case
|
|
3168
|
+
case 338:
|
|
3571
3169
|
return ["comprehension", $[$0 - 5], [["for-from", $[$0 - 2], $[$0], true, null]], []];
|
|
3572
|
-
case
|
|
3170
|
+
case 339:
|
|
3573
3171
|
return ["comprehension", $[$0 - 7], [["for-from", $[$0 - 4], $[$0 - 2], true, null]], [$[$0]]];
|
|
3574
|
-
case
|
|
3172
|
+
case 340:
|
|
3575
3173
|
return ["comprehension", $[$0 - 2], [["for-in", [], $[$0], null]], []];
|
|
3576
|
-
case
|
|
3174
|
+
case 341:
|
|
3577
3175
|
return ["comprehension", $[$0 - 4], [["for-in", [], $[$0 - 2], $[$0]]], []];
|
|
3578
|
-
case
|
|
3176
|
+
case 346:
|
|
3579
3177
|
return ["switch", $[$0 - 3], $[$0 - 1], null];
|
|
3580
|
-
case
|
|
3178
|
+
case 347:
|
|
3581
3179
|
return ["switch", $[$0 - 5], $[$0 - 3], $[$0 - 1]];
|
|
3582
|
-
case
|
|
3180
|
+
case 348:
|
|
3583
3181
|
return ["switch", null, $[$0 - 1], null];
|
|
3584
|
-
case
|
|
3182
|
+
case 349:
|
|
3585
3183
|
return ["switch", null, $[$0 - 3], $[$0 - 1]];
|
|
3586
|
-
case
|
|
3184
|
+
case 352:
|
|
3587
3185
|
return ["when", $[$0 - 1], $[$0]];
|
|
3588
|
-
case
|
|
3186
|
+
case 353:
|
|
3589
3187
|
return ["when", $[$0 - 2], $[$0 - 1]];
|
|
3590
|
-
case
|
|
3188
|
+
case 354:
|
|
3591
3189
|
return ["if", $[$0 - 1], $[$0]];
|
|
3592
|
-
case
|
|
3190
|
+
case 355:
|
|
3593
3191
|
return $[$0 - 4].length === 3 ? ["if", $[$0 - 4][1], $[$0 - 4][2], ["if", $[$0 - 1], $[$0]]] : [...$[$0 - 4], ["if", $[$0 - 1], $[$0]]];
|
|
3594
|
-
case
|
|
3192
|
+
case 356:
|
|
3595
3193
|
return ["unless", $[$0 - 1], $[$0]];
|
|
3596
|
-
case
|
|
3194
|
+
case 357:
|
|
3597
3195
|
return ["if", ["!", $[$0 - 3]], $[$0 - 2], $[$0]];
|
|
3598
|
-
case
|
|
3196
|
+
case 359:
|
|
3599
3197
|
return $[$0 - 2].length === 3 ? ["if", $[$0 - 2][1], $[$0 - 2][2], $[$0]] : [...$[$0 - 2], $[$0]];
|
|
3600
|
-
case
|
|
3601
|
-
case
|
|
3198
|
+
case 361:
|
|
3199
|
+
case 362:
|
|
3602
3200
|
return ["if", $[$0], [$[$0 - 2]]];
|
|
3603
|
-
case
|
|
3604
|
-
case
|
|
3201
|
+
case 363:
|
|
3202
|
+
case 364:
|
|
3605
3203
|
return ["unless", $[$0], [$[$0 - 2]]];
|
|
3606
|
-
case
|
|
3607
|
-
case
|
|
3608
|
-
case
|
|
3609
|
-
case
|
|
3204
|
+
case 366:
|
|
3205
|
+
case 367:
|
|
3206
|
+
case 369:
|
|
3207
|
+
case 398:
|
|
3610
3208
|
return ["do-iife", $[$0]];
|
|
3611
|
-
case
|
|
3209
|
+
case 371:
|
|
3612
3210
|
return ["-", $[$0]];
|
|
3613
|
-
case
|
|
3211
|
+
case 372:
|
|
3614
3212
|
return ["+", $[$0]];
|
|
3615
|
-
case
|
|
3213
|
+
case 373:
|
|
3616
3214
|
return ["await", $[$0]];
|
|
3617
|
-
case
|
|
3215
|
+
case 374:
|
|
3618
3216
|
return ["await", $[$0 - 1]];
|
|
3619
|
-
case
|
|
3217
|
+
case 375:
|
|
3620
3218
|
return ["--", $[$0], false];
|
|
3621
|
-
case
|
|
3219
|
+
case 376:
|
|
3622
3220
|
return ["++", $[$0], false];
|
|
3623
|
-
case
|
|
3221
|
+
case 377:
|
|
3624
3222
|
return ["--", $[$0 - 1], true];
|
|
3625
|
-
case
|
|
3223
|
+
case 378:
|
|
3626
3224
|
return ["++", $[$0 - 1], true];
|
|
3627
|
-
case
|
|
3225
|
+
case 379:
|
|
3628
3226
|
return ["?", $[$0 - 1]];
|
|
3629
|
-
case
|
|
3227
|
+
case 380:
|
|
3630
3228
|
return ["+", $[$0 - 2], $[$0]];
|
|
3631
|
-
case
|
|
3229
|
+
case 381:
|
|
3632
3230
|
return ["-", $[$0 - 2], $[$0]];
|
|
3633
|
-
case
|
|
3231
|
+
case 383:
|
|
3634
3232
|
return ["**", $[$0 - 2], $[$0]];
|
|
3635
|
-
case
|
|
3233
|
+
case 386:
|
|
3636
3234
|
return ["&", $[$0 - 2], $[$0]];
|
|
3637
|
-
case
|
|
3235
|
+
case 387:
|
|
3638
3236
|
return ["^", $[$0 - 2], $[$0]];
|
|
3639
|
-
case
|
|
3237
|
+
case 388:
|
|
3640
3238
|
return ["|", $[$0 - 2], $[$0]];
|
|
3641
|
-
case
|
|
3239
|
+
case 389:
|
|
3642
3240
|
return ["&&", $[$0 - 2], $[$0]];
|
|
3643
|
-
case
|
|
3241
|
+
case 390:
|
|
3644
3242
|
return ["||", $[$0 - 2], $[$0]];
|
|
3645
|
-
case
|
|
3243
|
+
case 391:
|
|
3646
3244
|
return ["??", $[$0 - 2], $[$0]];
|
|
3647
|
-
case
|
|
3245
|
+
case 392:
|
|
3648
3246
|
return ["!?", $[$0 - 2], $[$0]];
|
|
3649
|
-
case
|
|
3247
|
+
case 394:
|
|
3650
3248
|
return ["?:", $[$0 - 4], $[$0 - 2], $[$0]];
|
|
3651
|
-
case
|
|
3249
|
+
case 396:
|
|
3652
3250
|
return [$[$0 - 3], $[$0 - 4], $[$0 - 1]];
|
|
3653
|
-
case
|
|
3251
|
+
case 397:
|
|
3654
3252
|
return [$[$0 - 2], $[$0 - 3], $[$0]];
|
|
3655
3253
|
}
|
|
3656
3254
|
},
|
|
@@ -4019,13 +3617,10 @@ class CodeGenerator {
|
|
|
4019
3617
|
"->": "generateThinArrow",
|
|
4020
3618
|
"=>": "generateFatArrow",
|
|
4021
3619
|
return: "generateReturn",
|
|
4022
|
-
|
|
4023
|
-
|
|
3620
|
+
state: "generateState",
|
|
3621
|
+
computed: "generateComputed",
|
|
4024
3622
|
readonly: "generateReadonly",
|
|
4025
3623
|
effect: "generateEffect",
|
|
4026
|
-
render: "generateRender",
|
|
4027
|
-
style: "generateStyle",
|
|
4028
|
-
component: "generateComponent",
|
|
4029
3624
|
break: "generateBreak",
|
|
4030
3625
|
"break-if": "generateBreakIf",
|
|
4031
3626
|
continue: "generateContinue",
|
|
@@ -4100,7 +3695,7 @@ class CodeGenerator {
|
|
|
4100
3695
|
if (head === "export" || head === "export-default" || head === "export-all" || head === "export-from") {
|
|
4101
3696
|
return;
|
|
4102
3697
|
}
|
|
4103
|
-
if (head === "
|
|
3698
|
+
if (head === "state" || head === "computed" || head === "readonly") {
|
|
4104
3699
|
const [target] = rest;
|
|
4105
3700
|
const varName = typeof target === "string" ? target : target.valueOf();
|
|
4106
3701
|
if (!this.reactiveVars)
|
|
@@ -4126,9 +3721,6 @@ class CodeGenerator {
|
|
|
4126
3721
|
if (head === "def" || head === "->" || head === "=>") {
|
|
4127
3722
|
return;
|
|
4128
3723
|
}
|
|
4129
|
-
if (head === "component") {
|
|
4130
|
-
return;
|
|
4131
|
-
}
|
|
4132
3724
|
if (head === "if") {
|
|
4133
3725
|
const [condition, thenBranch, elseBranch] = rest;
|
|
4134
3726
|
this.collectProgramVariables(condition);
|
|
@@ -4737,1589 +4329,216 @@ function _setDataSection() {
|
|
|
4737
4329
|
}
|
|
4738
4330
|
generatePrototype(head, rest, context, sexpr) {
|
|
4739
4331
|
const [obj, prop] = rest;
|
|
4740
|
-
const objCode = this.generate(obj, "value");
|
|
4741
|
-
if (prop === "prototype") {
|
|
4742
|
-
return `${objCode}.prototype`;
|
|
4743
|
-
}
|
|
4744
|
-
const cleanProp = prop instanceof String ? prop.valueOf() : prop;
|
|
4745
|
-
return `${objCode}.prototype.${cleanProp}`;
|
|
4746
|
-
}
|
|
4747
|
-
generateOptionalPrototype(head, rest, context, sexpr) {
|
|
4748
|
-
const [obj, prop] = rest;
|
|
4749
|
-
const objCode = this.generate(obj, "value");
|
|
4750
|
-
if (prop === "prototype") {
|
|
4751
|
-
return `(${objCode} != null ? ${objCode}.prototype : undefined)`;
|
|
4752
|
-
}
|
|
4753
|
-
return `(${objCode} != null ? ${objCode}.prototype.${prop} : undefined)`;
|
|
4754
|
-
}
|
|
4755
|
-
generateRegexIndex(head, rest, context, sexpr) {
|
|
4756
|
-
const [value, regex, captureIndex] = rest;
|
|
4757
|
-
this.helpers.add("toSearchable");
|
|
4758
|
-
this.programVars.add("_");
|
|
4759
|
-
const valueCode = this.generate(value, "value");
|
|
4760
|
-
const regexCode = this.generate(regex, "value");
|
|
4761
|
-
const indexCode = captureIndex !== null ? this.generate(captureIndex, "value") : "0";
|
|
4762
|
-
const hasMultilineFlag = regexCode.includes("/m");
|
|
4763
|
-
const allowNewlines = hasMultilineFlag ? ", true" : "";
|
|
4764
|
-
return `(_ = toSearchable(${valueCode}${allowNewlines}).match(${regexCode})) && _[${indexCode}]`;
|
|
4765
|
-
}
|
|
4766
|
-
generateIndexAccess(head, rest, context, sexpr) {
|
|
4767
|
-
const [arr, index] = rest;
|
|
4768
|
-
if (Array.isArray(index) && (index[0] === ".." || index[0] === "...")) {
|
|
4769
|
-
const isInclusive = index[0] === "..";
|
|
4770
|
-
const arrCode = this.generate(arr, "value");
|
|
4771
|
-
const [start, end] = index.slice(1);
|
|
4772
|
-
if (start === null && end === null) {
|
|
4773
|
-
return `${arrCode}.slice()`;
|
|
4774
|
-
} else if (start === null) {
|
|
4775
|
-
if (isInclusive && this.isNegativeOneLiteral(end)) {
|
|
4776
|
-
return `${arrCode}.slice(0)`;
|
|
4777
|
-
}
|
|
4778
|
-
const endCode = this.generate(end, "value");
|
|
4779
|
-
if (isInclusive) {
|
|
4780
|
-
return `${arrCode}.slice(0, +${endCode} + 1 || 9e9)`;
|
|
4781
|
-
} else {
|
|
4782
|
-
return `${arrCode}.slice(0, ${endCode})`;
|
|
4783
|
-
}
|
|
4784
|
-
} else if (end === null) {
|
|
4785
|
-
const startCode = this.generate(start, "value");
|
|
4786
|
-
return `${arrCode}.slice(${startCode})`;
|
|
4787
|
-
} else {
|
|
4788
|
-
const startCode = this.generate(start, "value");
|
|
4789
|
-
if (isInclusive && this.isNegativeOneLiteral(end)) {
|
|
4790
|
-
return `${arrCode}.slice(${startCode})`;
|
|
4791
|
-
}
|
|
4792
|
-
const endCode = this.generate(end, "value");
|
|
4793
|
-
if (isInclusive) {
|
|
4794
|
-
return `${arrCode}.slice(${startCode}, +${endCode} + 1 || 9e9)`;
|
|
4795
|
-
} else {
|
|
4796
|
-
return `${arrCode}.slice(${startCode}, ${endCode})`;
|
|
4797
|
-
}
|
|
4798
|
-
}
|
|
4799
|
-
}
|
|
4800
|
-
const indexCode = this.unwrap(this.generate(index, "value"));
|
|
4801
|
-
return `${this.generate(arr, "value")}[${indexCode}]`;
|
|
4802
|
-
}
|
|
4803
|
-
generateSoakIndex(head, rest, context, sexpr) {
|
|
4804
|
-
const [arr, index] = rest;
|
|
4805
|
-
const arrCode = this.generate(arr, "value");
|
|
4806
|
-
const indexCode = this.generate(index, "value");
|
|
4807
|
-
return `(${arrCode} != null ? ${arrCode}[${indexCode}] : undefined)`;
|
|
4808
|
-
}
|
|
4809
|
-
generateOptIndex(head, rest, context, sexpr) {
|
|
4810
|
-
const [arr, index] = rest;
|
|
4811
|
-
const arrCode = this.generate(arr, "value");
|
|
4812
|
-
const indexCode = this.generate(index, "value");
|
|
4813
|
-
return `${arrCode}?.[${indexCode}]`;
|
|
4814
|
-
}
|
|
4815
|
-
generateOptCall(head, rest, context, sexpr) {
|
|
4816
|
-
const [fn, ...args] = rest;
|
|
4817
|
-
const fnCode = this.generate(fn, "value");
|
|
4818
|
-
const argsCode = args.map((arg) => this.generate(arg, "value")).join(", ");
|
|
4819
|
-
return `${fnCode}?.(${argsCode})`;
|
|
4820
|
-
}
|
|
4821
|
-
generateDef(head, rest, context, sexpr) {
|
|
4822
|
-
const [name, params, body] = rest;
|
|
4823
|
-
const sideEffectOnly = name instanceof String && name.await === true;
|
|
4824
|
-
const cleanName = name instanceof String ? name.valueOf() : name;
|
|
4825
|
-
const paramList = this.generateParamList(params);
|
|
4826
|
-
const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
|
|
4827
|
-
const isAsync = this.containsAwait(body);
|
|
4828
|
-
const isGenerator = this.containsYield(body);
|
|
4829
|
-
const asyncPrefix = isAsync ? "async " : "";
|
|
4830
|
-
const generatorSuffix = isGenerator ? "*" : "";
|
|
4831
|
-
return `${asyncPrefix}function${generatorSuffix} ${cleanName}(${paramList}) ${bodyCode}`;
|
|
4832
|
-
}
|
|
4833
|
-
generateThinArrow(head, rest, context, sexpr) {
|
|
4834
|
-
const [params, body] = rest;
|
|
4835
|
-
const sideEffectOnly = this.nextFunctionIsVoid || false;
|
|
4836
|
-
this.nextFunctionIsVoid = false;
|
|
4837
|
-
const paramList = this.generateParamList(params);
|
|
4838
|
-
const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
|
|
4839
|
-
const isAsync = this.containsAwait(body);
|
|
4840
|
-
const isGenerator = this.containsYield(body);
|
|
4841
|
-
const asyncPrefix = isAsync ? "async " : "";
|
|
4842
|
-
const generatorSuffix = isGenerator ? "*" : "";
|
|
4843
|
-
const fnCode = `${asyncPrefix}function${generatorSuffix}(${paramList}) ${bodyCode}`;
|
|
4844
|
-
return context === "value" ? `(${fnCode})` : fnCode;
|
|
4845
|
-
}
|
|
4846
|
-
generateFatArrow(head, rest, context, sexpr) {
|
|
4847
|
-
const [params, body] = rest;
|
|
4848
|
-
const sideEffectOnly = this.nextFunctionIsVoid || false;
|
|
4849
|
-
this.nextFunctionIsVoid = false;
|
|
4850
|
-
const paramList = this.generateParamList(params);
|
|
4851
|
-
const isSingleSimpleParam = params.length === 1 && typeof params[0] === "string" && !paramList.includes("=") && !paramList.includes("...") && !paramList.includes("[") && !paramList.includes("{");
|
|
4852
|
-
const paramSyntax = isSingleSimpleParam ? paramList : `(${paramList})`;
|
|
4853
|
-
const isAsync = this.containsAwait(body);
|
|
4854
|
-
const asyncPrefix = isAsync ? "async " : "";
|
|
4855
|
-
if (!sideEffectOnly) {
|
|
4856
|
-
if (Array.isArray(body) && body[0] === "block" && body.length === 2) {
|
|
4857
|
-
const expr = body[1];
|
|
4858
|
-
if (!Array.isArray(expr) || expr[0] !== "return") {
|
|
4859
|
-
return `${asyncPrefix}${paramSyntax} => ${this.generate(expr, "value")}`;
|
|
4860
|
-
}
|
|
4861
|
-
}
|
|
4862
|
-
if (!Array.isArray(body) || body[0] !== "block") {
|
|
4863
|
-
return `${asyncPrefix}${paramSyntax} => ${this.generate(body, "value")}`;
|
|
4864
|
-
}
|
|
4865
|
-
}
|
|
4866
|
-
const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
|
|
4867
|
-
return `${asyncPrefix}${paramSyntax} => ${bodyCode}`;
|
|
4868
|
-
}
|
|
4869
|
-
generateReturn(head, rest, context, sexpr) {
|
|
4870
|
-
if (rest.length === 0) {
|
|
4871
|
-
return "return";
|
|
4872
|
-
}
|
|
4873
|
-
let [expr] = rest;
|
|
4874
|
-
if (this.sideEffectOnly) {
|
|
4875
|
-
return "return";
|
|
4876
|
-
}
|
|
4877
|
-
if (Array.isArray(expr) && expr[0] === "unless") {
|
|
4878
|
-
const [, condition, body] = expr;
|
|
4879
|
-
const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
4880
|
-
return `if (!${this.generate(condition, "value")}) return ${this.generate(value, "value")}`;
|
|
4881
|
-
}
|
|
4882
|
-
if (Array.isArray(expr) && expr[0] === "if") {
|
|
4883
|
-
const [, condition, body, ...elseParts] = expr;
|
|
4884
|
-
if (elseParts.length === 0) {
|
|
4885
|
-
const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
4886
|
-
return `if (${this.generate(condition, "value")}) return ${this.generate(value, "value")}`;
|
|
4887
|
-
}
|
|
4888
|
-
}
|
|
4889
|
-
if (Array.isArray(expr) && expr[0] === "new" && Array.isArray(expr[1]) && expr[1][0] === "unless") {
|
|
4890
|
-
const [, unlessNode] = expr;
|
|
4891
|
-
const [, condition, body] = unlessNode;
|
|
4892
|
-
const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
4893
|
-
return `if (!${this.generate(condition, "value")}) return ${this.generate(["new", value], "value")}`;
|
|
4894
|
-
}
|
|
4895
|
-
return `return ${this.generate(expr, "value")}`;
|
|
4896
|
-
}
|
|
4897
|
-
generateSignal(head, rest, context, sexpr) {
|
|
4898
|
-
const [name, expr] = rest;
|
|
4899
|
-
this.usesReactivity = true;
|
|
4900
|
-
const varName = typeof name === "string" ? name : name.valueOf();
|
|
4901
|
-
const exprCode = this.generate(expr, "value");
|
|
4902
|
-
if (!this.reactiveVars)
|
|
4903
|
-
this.reactiveVars = new Set;
|
|
4904
|
-
this.reactiveVars.add(varName);
|
|
4905
|
-
return `const ${varName} = __signal(${exprCode})`;
|
|
4906
|
-
}
|
|
4907
|
-
generateDerived(head, rest, context, sexpr) {
|
|
4908
|
-
const [name, expr] = rest;
|
|
4909
|
-
this.usesReactivity = true;
|
|
4910
|
-
if (!this.reactiveVars)
|
|
4911
|
-
this.reactiveVars = new Set;
|
|
4912
|
-
const varName = typeof name === "string" ? name : name.valueOf();
|
|
4913
|
-
this.reactiveVars.add(varName);
|
|
4914
|
-
const exprCode = this.generate(expr, "value");
|
|
4915
|
-
return `const ${varName} = __computed(() => ${exprCode})`;
|
|
4916
|
-
}
|
|
4917
|
-
generateReadonly(head, rest, context, sexpr) {
|
|
4918
|
-
const [name, expr] = rest;
|
|
4919
|
-
const varName = typeof name === "string" ? name : name.valueOf();
|
|
4920
|
-
const exprCode = this.generate(expr, "value");
|
|
4921
|
-
return `const ${varName} = ${exprCode}`;
|
|
4922
|
-
}
|
|
4923
|
-
generateEffect(head, rest, context, sexpr) {
|
|
4924
|
-
const [body] = rest;
|
|
4925
|
-
this.usesReactivity = true;
|
|
4926
|
-
let bodyCode;
|
|
4927
|
-
if (Array.isArray(body) && body[0] === "block") {
|
|
4928
|
-
const statements = body.slice(1);
|
|
4929
|
-
const stmts = this.withIndent(() => this.formatStatements(statements));
|
|
4930
|
-
bodyCode = `{
|
|
4931
|
-
${stmts.join(`
|
|
4932
|
-
`)}
|
|
4933
|
-
${this.indent()}}`;
|
|
4934
|
-
} else if (Array.isArray(body) && (body[0] === "->" || body[0] === "=>")) {
|
|
4935
|
-
const fnCode = this.generate(body, "value");
|
|
4936
|
-
return `__effect(${fnCode})`;
|
|
4937
|
-
} else {
|
|
4938
|
-
bodyCode = `{ ${this.generate(body, "value")}; }`;
|
|
4939
|
-
}
|
|
4940
|
-
return `__effect(() => ${bodyCode})`;
|
|
4941
|
-
}
|
|
4942
|
-
isHtmlTag(name) {
|
|
4943
|
-
const tagPart = name.split("#")[0];
|
|
4944
|
-
return HTML_TAGS.has(tagPart.toLowerCase());
|
|
4945
|
-
}
|
|
4946
|
-
isComponent(name) {
|
|
4947
|
-
if (!name || typeof name !== "string")
|
|
4948
|
-
return false;
|
|
4949
|
-
return /^[A-Z]/.test(name);
|
|
4950
|
-
}
|
|
4951
|
-
parseEventHandler(key2, value) {
|
|
4952
|
-
if (Array.isArray(key2) && key2[0] === "." && key2[1] === "this" && typeof key2[2] === "string") {
|
|
4953
|
-
return { eventName: key2[2], modifiers: [], handler: this.generate(value, "value") };
|
|
4954
|
-
}
|
|
4955
|
-
if (Array.isArray(key2) && key2[0] === "computed") {
|
|
4956
|
-
const { eventName, modifiers } = this.extractEventChain(key2[1]);
|
|
4957
|
-
if (eventName) {
|
|
4958
|
-
return { eventName, modifiers, handler: this.generate(value, "value") };
|
|
4959
|
-
}
|
|
4960
|
-
}
|
|
4961
|
-
return null;
|
|
4962
|
-
}
|
|
4963
|
-
extractEventChain(chain) {
|
|
4964
|
-
const modifiers = [];
|
|
4965
|
-
let current = chain;
|
|
4966
|
-
while (Array.isArray(current) && current[0] === ".") {
|
|
4967
|
-
const [, inner, prop] = current;
|
|
4968
|
-
if (Array.isArray(inner) && inner[0] === "." && inner[1] === "this") {
|
|
4969
|
-
modifiers.unshift(prop);
|
|
4970
|
-
return { eventName: inner[2], modifiers };
|
|
4971
|
-
}
|
|
4972
|
-
if (typeof prop === "string")
|
|
4973
|
-
modifiers.unshift(prop);
|
|
4974
|
-
current = inner;
|
|
4975
|
-
}
|
|
4976
|
-
if (Array.isArray(current) && current[0] === "." && current[1] === "this") {
|
|
4977
|
-
return { eventName: current[2], modifiers };
|
|
4978
|
-
}
|
|
4979
|
-
return { eventName: null, modifiers: [] };
|
|
4980
|
-
}
|
|
4981
|
-
wrapEventHandler(handler, modifiers) {
|
|
4982
|
-
if (modifiers.length === 0)
|
|
4983
|
-
return handler;
|
|
4984
|
-
const checks = [];
|
|
4985
|
-
const actions = [];
|
|
4986
|
-
for (const mod of modifiers) {
|
|
4987
|
-
switch (mod) {
|
|
4988
|
-
case "prevent":
|
|
4989
|
-
actions.push("e.preventDefault()");
|
|
4990
|
-
break;
|
|
4991
|
-
case "stop":
|
|
4992
|
-
actions.push("e.stopPropagation()");
|
|
4993
|
-
break;
|
|
4994
|
-
case "self":
|
|
4995
|
-
checks.push("if (e.target !== e.currentTarget) return");
|
|
4996
|
-
break;
|
|
4997
|
-
case "enter":
|
|
4998
|
-
checks.push("if (e.key !== 'Enter') return");
|
|
4999
|
-
break;
|
|
5000
|
-
case "escape":
|
|
5001
|
-
case "esc":
|
|
5002
|
-
checks.push("if (e.key !== 'Escape') return");
|
|
5003
|
-
break;
|
|
5004
|
-
case "tab":
|
|
5005
|
-
checks.push("if (e.key !== 'Tab') return");
|
|
5006
|
-
break;
|
|
5007
|
-
case "space":
|
|
5008
|
-
checks.push("if (e.key !== ' ') return");
|
|
5009
|
-
break;
|
|
5010
|
-
case "up":
|
|
5011
|
-
checks.push("if (e.key !== 'ArrowUp') return");
|
|
5012
|
-
break;
|
|
5013
|
-
case "down":
|
|
5014
|
-
checks.push("if (e.key !== 'ArrowDown') return");
|
|
5015
|
-
break;
|
|
5016
|
-
case "left":
|
|
5017
|
-
checks.push("if (e.key !== 'ArrowLeft') return");
|
|
5018
|
-
break;
|
|
5019
|
-
case "right":
|
|
5020
|
-
checks.push("if (e.key !== 'ArrowRight') return");
|
|
5021
|
-
break;
|
|
5022
|
-
case "ctrl":
|
|
5023
|
-
checks.push("if (!e.ctrlKey) return");
|
|
5024
|
-
break;
|
|
5025
|
-
case "alt":
|
|
5026
|
-
checks.push("if (!e.altKey) return");
|
|
5027
|
-
break;
|
|
5028
|
-
case "shift":
|
|
5029
|
-
checks.push("if (!e.shiftKey) return");
|
|
5030
|
-
break;
|
|
5031
|
-
case "meta":
|
|
5032
|
-
checks.push("if (!e.metaKey) return");
|
|
5033
|
-
break;
|
|
5034
|
-
}
|
|
5035
|
-
}
|
|
5036
|
-
const body = [...checks, ...actions, `(${handler})(e)`].join("; ");
|
|
5037
|
-
return `(e) => { ${body}; }`;
|
|
5038
|
-
}
|
|
5039
|
-
static BIND_PREFIX = "__bind_";
|
|
5040
|
-
static BIND_SUFFIX = "__";
|
|
5041
|
-
static extractInputType(pairs) {
|
|
5042
|
-
for (const pair of pairs) {
|
|
5043
|
-
if (!Array.isArray(pair))
|
|
5044
|
-
continue;
|
|
5045
|
-
const key2 = pair[0] instanceof String ? pair[0].valueOf() : pair[0];
|
|
5046
|
-
const val = pair[1] instanceof String ? pair[1].valueOf() : pair[1];
|
|
5047
|
-
if (key2 === "type" && typeof val === "string") {
|
|
5048
|
-
return val.replace(/^["']|["']$/g, "");
|
|
5049
|
-
}
|
|
5050
|
-
}
|
|
5051
|
-
return null;
|
|
5052
|
-
}
|
|
5053
|
-
parseBindingDirective(key2, value, tag, inputType) {
|
|
5054
|
-
let prop;
|
|
5055
|
-
if (typeof key2 === "string" && key2.startsWith(CodeGenerator.BIND_PREFIX) && key2.endsWith(CodeGenerator.BIND_SUFFIX)) {
|
|
5056
|
-
prop = key2.slice(CodeGenerator.BIND_PREFIX.length, -CodeGenerator.BIND_SUFFIX.length);
|
|
5057
|
-
} else if (Array.isArray(key2) && key2[0] === "computed") {
|
|
5058
|
-
const chain = key2[1];
|
|
5059
|
-
if (!Array.isArray(chain) || chain[0] !== ".")
|
|
5060
|
-
return null;
|
|
5061
|
-
const [, inner, propName] = chain;
|
|
5062
|
-
if (!Array.isArray(inner) || inner[0] !== "." || inner[1] !== "this" || inner[2] !== "bind") {
|
|
5063
|
-
return null;
|
|
5064
|
-
}
|
|
5065
|
-
prop = typeof propName === "string" ? propName : String(propName);
|
|
5066
|
-
} else {
|
|
5067
|
-
return null;
|
|
5068
|
-
}
|
|
5069
|
-
const varName = this.generate(value, "value");
|
|
5070
|
-
let event, valueAccessor;
|
|
5071
|
-
if (prop === "checked") {
|
|
5072
|
-
event = "onchange";
|
|
5073
|
-
valueAccessor = "e.target.checked";
|
|
5074
|
-
} else if (prop === "value") {
|
|
5075
|
-
if (tag === "select") {
|
|
5076
|
-
event = "onchange";
|
|
5077
|
-
} else {
|
|
5078
|
-
event = "oninput";
|
|
5079
|
-
}
|
|
5080
|
-
if (inputType === "number" || inputType === "range") {
|
|
5081
|
-
valueAccessor = "e.target.valueAsNumber";
|
|
5082
|
-
} else {
|
|
5083
|
-
valueAccessor = "e.target.value";
|
|
5084
|
-
}
|
|
5085
|
-
} else {
|
|
5086
|
-
event = "oninput";
|
|
5087
|
-
valueAccessor = `e.target.${prop}`;
|
|
5088
|
-
}
|
|
5089
|
-
return {
|
|
5090
|
-
prop,
|
|
5091
|
-
event,
|
|
5092
|
-
valueExpr: varName,
|
|
5093
|
-
handler: `(e) => ${varName} = ${valueAccessor}`
|
|
5094
|
-
};
|
|
5095
|
-
}
|
|
5096
|
-
generateRender(head, rest, context, sexpr) {
|
|
5097
|
-
const [body] = rest;
|
|
5098
|
-
this.usesTemplates = true;
|
|
5099
|
-
if (!Array.isArray(body) || body[0] !== "block") {
|
|
5100
|
-
return this.generateTemplateElement(body);
|
|
5101
|
-
}
|
|
5102
|
-
const statements = body.slice(1);
|
|
5103
|
-
if (statements.length === 0)
|
|
5104
|
-
return "null";
|
|
5105
|
-
if (statements.length === 1)
|
|
5106
|
-
return this.generateTemplateElement(statements[0]);
|
|
5107
|
-
const elements = statements.map((s) => this.generateTemplateElement(s));
|
|
5108
|
-
return `frag(${elements.join(", ")})`;
|
|
5109
|
-
}
|
|
5110
|
-
generateStyle(head, rest, context, sexpr) {
|
|
5111
|
-
return "/* style block placeholder */";
|
|
5112
|
-
}
|
|
5113
|
-
generateComponent(head, rest, context, sexpr) {
|
|
5114
|
-
const [name, body] = rest;
|
|
5115
|
-
const componentName = typeof name === "string" ? name : this.generate(name, "value");
|
|
5116
|
-
this.usesTemplates = true;
|
|
5117
|
-
const statements = Array.isArray(body) && body[0] === "block" ? body.slice(1) : [];
|
|
5118
|
-
const props = [];
|
|
5119
|
-
const stateVars = [];
|
|
5120
|
-
const derivedVars = [];
|
|
5121
|
-
const readonlyVars = [];
|
|
5122
|
-
const methods = [];
|
|
5123
|
-
const lifecycleHooks = [];
|
|
5124
|
-
const effects = [];
|
|
5125
|
-
let renderBlock = null;
|
|
5126
|
-
let styleBlock = null;
|
|
5127
|
-
const memberNames = new Set;
|
|
5128
|
-
const reactiveMembers = new Set;
|
|
5129
|
-
for (const stmt of statements) {
|
|
5130
|
-
if (!Array.isArray(stmt))
|
|
5131
|
-
continue;
|
|
5132
|
-
const [op] = stmt;
|
|
5133
|
-
if (op === "prop") {
|
|
5134
|
-
props.push(stmt);
|
|
5135
|
-
memberNames.add(stmt[1]);
|
|
5136
|
-
} else if (op === "prop-rest") {
|
|
5137
|
-
props.push(stmt);
|
|
5138
|
-
memberNames.add(stmt[1]);
|
|
5139
|
-
} else if (op === "=" && typeof stmt[1] === "string") {
|
|
5140
|
-
const varName = stmt[1];
|
|
5141
|
-
if (["mounted", "unmounted", "updated"].includes(varName)) {
|
|
5142
|
-
lifecycleHooks.push(stmt);
|
|
5143
|
-
} else {
|
|
5144
|
-
stateVars.push(stmt);
|
|
5145
|
-
memberNames.add(varName);
|
|
5146
|
-
reactiveMembers.add(varName);
|
|
5147
|
-
}
|
|
5148
|
-
} else if (op === "signal") {
|
|
5149
|
-
stateVars.push(stmt);
|
|
5150
|
-
memberNames.add(stmt[1]);
|
|
5151
|
-
reactiveMembers.add(stmt[1]);
|
|
5152
|
-
} else if (op === "derived") {
|
|
5153
|
-
derivedVars.push(stmt);
|
|
5154
|
-
memberNames.add(stmt[1]);
|
|
5155
|
-
reactiveMembers.add(stmt[1]);
|
|
5156
|
-
} else if (op === "readonly") {
|
|
5157
|
-
readonlyVars.push(stmt);
|
|
5158
|
-
memberNames.add(stmt[1]);
|
|
5159
|
-
} else if (op === "effect") {
|
|
5160
|
-
effects.push(stmt);
|
|
5161
|
-
} else if (op === "render") {
|
|
5162
|
-
renderBlock = stmt;
|
|
5163
|
-
} else if (op === "style") {
|
|
5164
|
-
styleBlock = stmt;
|
|
5165
|
-
} else if (op === "object" && stmt.length >= 2) {
|
|
5166
|
-
methods.push(stmt);
|
|
5167
|
-
for (let i = 1;i < stmt.length; i++) {
|
|
5168
|
-
if (Array.isArray(stmt[i]))
|
|
5169
|
-
memberNames.add(stmt[i][0]);
|
|
5170
|
-
}
|
|
5171
|
-
}
|
|
5172
|
-
}
|
|
5173
|
-
const prevComponentMembers = this.componentMembers;
|
|
5174
|
-
const prevReactiveMembers = this.reactiveMembers;
|
|
5175
|
-
this.componentMembers = memberNames;
|
|
5176
|
-
this.reactiveMembers = reactiveMembers;
|
|
5177
|
-
const lines = [];
|
|
5178
|
-
let blockFactoriesCode = "";
|
|
5179
|
-
lines.push(`class ${componentName} {`);
|
|
5180
|
-
lines.push(" constructor(props = {}) {");
|
|
5181
|
-
lines.push(" // Context API: track parent component");
|
|
5182
|
-
lines.push(" this._parent = __currentComponent;");
|
|
5183
|
-
lines.push(" const __prevComponent = __currentComponent;");
|
|
5184
|
-
lines.push(" __currentComponent = this;");
|
|
5185
|
-
lines.push("");
|
|
5186
|
-
if (props.length > 0) {
|
|
5187
|
-
for (const prop of props) {
|
|
5188
|
-
if (prop[0] === "prop") {
|
|
5189
|
-
const propName = prop[1];
|
|
5190
|
-
if (prop.length === 2) {
|
|
5191
|
-
lines.push(` if (props.${propName} === undefined) throw new Error('Required prop: ${propName}');`);
|
|
5192
|
-
lines.push(` this.${propName} = props.${propName};`);
|
|
5193
|
-
} else if (prop[2] === "optional") {
|
|
5194
|
-
lines.push(` this.${propName} = props.${propName};`);
|
|
5195
|
-
} else {
|
|
5196
|
-
const defaultVal = this.generateInComponent(prop[2], "value");
|
|
5197
|
-
lines.push(` this.${propName} = props.${propName} ?? ${defaultVal};`);
|
|
5198
|
-
}
|
|
5199
|
-
} else if (prop[0] === "prop-rest") {
|
|
5200
|
-
const restName = prop[1];
|
|
5201
|
-
const propNames = props.filter((p) => p[0] === "prop").map((p) => p[1]);
|
|
5202
|
-
lines.push(` const { ${propNames.join(", ")}, ...${restName} } = props;`);
|
|
5203
|
-
lines.push(` this.${restName} = ${restName};`);
|
|
5204
|
-
}
|
|
5205
|
-
}
|
|
5206
|
-
}
|
|
5207
|
-
for (const [, varName, value] of readonlyVars) {
|
|
5208
|
-
const val = this.generateInComponent(value, "value");
|
|
5209
|
-
lines.push(` this.${varName} = ${val};`);
|
|
5210
|
-
}
|
|
5211
|
-
this.usesReactivity = true;
|
|
5212
|
-
for (const stmt of stateVars) {
|
|
5213
|
-
if (stmt[0] === "signal") {
|
|
5214
|
-
const [, varName, value] = stmt;
|
|
5215
|
-
const val = this.generateInComponent(value, "value");
|
|
5216
|
-
lines.push(` this.${varName} = __signal(${val});`);
|
|
5217
|
-
} else {
|
|
5218
|
-
const [, varName, value] = stmt;
|
|
5219
|
-
const val = this.generateInComponent(value, "value");
|
|
5220
|
-
lines.push(` this.${varName} = __signal(${val});`);
|
|
5221
|
-
}
|
|
5222
|
-
}
|
|
5223
|
-
for (const [, varName, expr] of derivedVars) {
|
|
5224
|
-
const val = this.generateInComponent(expr, "value");
|
|
5225
|
-
lines.push(` this.${varName} = __computed(() => ${val});`);
|
|
5226
|
-
}
|
|
5227
|
-
for (const effect of effects) {
|
|
5228
|
-
const body2 = effect[1];
|
|
5229
|
-
const effectCode = this.generateInComponent(body2, "value");
|
|
5230
|
-
lines.push(` __effect(${effectCode});`);
|
|
5231
|
-
}
|
|
5232
|
-
lines.push("");
|
|
5233
|
-
lines.push(" __currentComponent = __prevComponent;");
|
|
5234
|
-
lines.push(" }");
|
|
5235
|
-
for (const methodStmt of methods) {
|
|
5236
|
-
for (let i = 1;i < methodStmt.length; i++) {
|
|
5237
|
-
const [methodName, funcDef] = methodStmt[i];
|
|
5238
|
-
if (Array.isArray(funcDef) && (funcDef[0] === "->" || funcDef[0] === "=>")) {
|
|
5239
|
-
const [, params, body2] = funcDef;
|
|
5240
|
-
const paramStr = Array.isArray(params) ? params.map((p) => this.formatParam(p)).join(", ") : "";
|
|
5241
|
-
const bodyCode = this.generateInComponent(body2, "value");
|
|
5242
|
-
lines.push(` ${methodName}(${paramStr}) { return ${bodyCode}; }`);
|
|
5243
|
-
}
|
|
5244
|
-
}
|
|
5245
|
-
}
|
|
5246
|
-
for (const [, hookName, hookValue] of lifecycleHooks) {
|
|
5247
|
-
if (Array.isArray(hookValue) && (hookValue[0] === "->" || hookValue[0] === "=>")) {
|
|
5248
|
-
const [, params, body2] = hookValue;
|
|
5249
|
-
const bodyCode = this.generateInComponent(body2, "value");
|
|
5250
|
-
lines.push(` ${hookName}() { return ${bodyCode}; }`);
|
|
5251
|
-
}
|
|
5252
|
-
}
|
|
5253
|
-
if (renderBlock) {
|
|
5254
|
-
const renderBody = renderBlock[1];
|
|
5255
|
-
const fg = this.generateFineGrainedRender(renderBody);
|
|
5256
|
-
if (fg.blockFactories.length > 0) {
|
|
5257
|
-
blockFactoriesCode = fg.blockFactories.join(`
|
|
5258
|
-
|
|
5259
|
-
`) + `
|
|
5260
|
-
|
|
5261
|
-
`;
|
|
5262
|
-
}
|
|
5263
|
-
lines.push(" _create() {");
|
|
5264
|
-
for (const line of fg.createLines) {
|
|
5265
|
-
lines.push(` ${line}`);
|
|
5266
|
-
}
|
|
5267
|
-
lines.push(` return ${fg.rootVar};`);
|
|
5268
|
-
lines.push(" }");
|
|
5269
|
-
if (fg.setupLines.length > 0) {
|
|
5270
|
-
lines.push(" _setup() {");
|
|
5271
|
-
for (const line of fg.setupLines) {
|
|
5272
|
-
lines.push(` ${line}`);
|
|
5273
|
-
}
|
|
5274
|
-
lines.push(" }");
|
|
5275
|
-
}
|
|
5276
|
-
}
|
|
5277
|
-
lines.push(" mount(target) {");
|
|
5278
|
-
lines.push(' if (typeof target === "string") target = document.querySelector(target);');
|
|
5279
|
-
lines.push(" this._target = target;");
|
|
5280
|
-
lines.push(" this._root = this._create();");
|
|
5281
|
-
lines.push(" target.appendChild(this._root);");
|
|
5282
|
-
lines.push(" if (this._setup) this._setup();");
|
|
5283
|
-
lines.push(" if (this.mounted) this.mounted();");
|
|
5284
|
-
lines.push(" return this;");
|
|
5285
|
-
lines.push(" }");
|
|
5286
|
-
lines.push(" unmount() {");
|
|
5287
|
-
lines.push(" if (this.unmounted) this.unmounted();");
|
|
5288
|
-
lines.push(" if (this._root && this._root.parentNode) {");
|
|
5289
|
-
lines.push(" this._root.parentNode.removeChild(this._root);");
|
|
5290
|
-
lines.push(" }");
|
|
5291
|
-
lines.push(" }");
|
|
5292
|
-
lines.push("}");
|
|
5293
|
-
this.componentMembers = prevComponentMembers;
|
|
5294
|
-
this.reactiveMembers = prevReactiveMembers;
|
|
5295
|
-
return blockFactoriesCode + lines.join(`
|
|
5296
|
-
`);
|
|
5297
|
-
}
|
|
5298
|
-
generateInComponent(sexpr, context) {
|
|
5299
|
-
if (typeof sexpr === "string" && this.reactiveMembers && this.reactiveMembers.has(sexpr)) {
|
|
5300
|
-
return `this.${sexpr}.value`;
|
|
5301
|
-
}
|
|
5302
|
-
if (Array.isArray(sexpr) && this.reactiveMembers) {
|
|
5303
|
-
const transformed = this.transformComponentMembers(sexpr);
|
|
5304
|
-
return this.generate(transformed, context);
|
|
5305
|
-
}
|
|
5306
|
-
return this.generate(sexpr, context);
|
|
5307
|
-
}
|
|
5308
|
-
transformComponentMembers(sexpr) {
|
|
5309
|
-
if (!Array.isArray(sexpr)) {
|
|
5310
|
-
if (typeof sexpr === "string" && this.reactiveMembers && this.reactiveMembers.has(sexpr)) {
|
|
5311
|
-
return [".", [".", "this", sexpr], "value"];
|
|
5312
|
-
}
|
|
5313
|
-
return sexpr;
|
|
5314
|
-
}
|
|
5315
|
-
if (sexpr[0] === "." && sexpr[1] === "this" && typeof sexpr[2] === "string") {
|
|
5316
|
-
const memberName = sexpr[2];
|
|
5317
|
-
if (this.reactiveMembers && this.reactiveMembers.has(memberName)) {
|
|
5318
|
-
return [".", sexpr, "value"];
|
|
5319
|
-
}
|
|
5320
|
-
return sexpr;
|
|
5321
|
-
}
|
|
5322
|
-
return sexpr.map((item) => this.transformComponentMembers(item));
|
|
5323
|
-
}
|
|
5324
|
-
generateComponentRender(body) {
|
|
5325
|
-
if (!Array.isArray(body) || body[0] !== "block") {
|
|
5326
|
-
return this.generateComponentTemplateElement(body);
|
|
5327
|
-
}
|
|
5328
|
-
const statements = body.slice(1);
|
|
5329
|
-
if (statements.length === 0)
|
|
5330
|
-
return "null";
|
|
5331
|
-
if (statements.length === 1)
|
|
5332
|
-
return this.generateComponentTemplateElement(statements[0]);
|
|
5333
|
-
const elements = statements.map((s) => this.generateComponentTemplateElement(s));
|
|
5334
|
-
return `frag(${elements.join(", ")})`;
|
|
5335
|
-
}
|
|
5336
|
-
generateFineGrainedRender(body) {
|
|
5337
|
-
this._fgElementCount = 0;
|
|
5338
|
-
this._fgTextCount = 0;
|
|
5339
|
-
this._fgBlockCount = 0;
|
|
5340
|
-
this._fgCreateLines = [];
|
|
5341
|
-
this._fgSetupLines = [];
|
|
5342
|
-
this._fgBlockFactories = [];
|
|
5343
|
-
const statements = Array.isArray(body) && body[0] === "block" ? body.slice(1) : [body];
|
|
5344
|
-
let rootVar;
|
|
5345
|
-
if (statements.length === 0) {
|
|
5346
|
-
rootVar = "null";
|
|
5347
|
-
} else if (statements.length === 1) {
|
|
5348
|
-
rootVar = this.fgProcessElement(statements[0]);
|
|
5349
|
-
} else {
|
|
5350
|
-
rootVar = this.fgNewElement("frag");
|
|
5351
|
-
this._fgCreateLines.push(`${rootVar} = document.createDocumentFragment();`);
|
|
5352
|
-
for (const stmt of statements) {
|
|
5353
|
-
const childVar = this.fgProcessElement(stmt);
|
|
5354
|
-
this._fgCreateLines.push(`${rootVar}.appendChild(${childVar});`);
|
|
5355
|
-
}
|
|
5356
|
-
}
|
|
5357
|
-
return {
|
|
5358
|
-
createLines: this._fgCreateLines,
|
|
5359
|
-
setupLines: this._fgSetupLines,
|
|
5360
|
-
blockFactories: this._fgBlockFactories,
|
|
5361
|
-
rootVar
|
|
5362
|
-
};
|
|
5363
|
-
}
|
|
5364
|
-
fgNewBlock() {
|
|
5365
|
-
return `create_block_${this._fgBlockCount++}`;
|
|
5366
|
-
}
|
|
5367
|
-
fgNewElement(hint = "el") {
|
|
5368
|
-
return `this._${hint}${this._fgElementCount++}`;
|
|
5369
|
-
}
|
|
5370
|
-
fgNewText() {
|
|
5371
|
-
return `this._t${this._fgTextCount++}`;
|
|
5372
|
-
}
|
|
5373
|
-
fgProcessElement(sexpr) {
|
|
5374
|
-
if (typeof sexpr === "string" || sexpr instanceof String) {
|
|
5375
|
-
const str = sexpr.valueOf();
|
|
5376
|
-
if (str.startsWith('"') || str.startsWith("'") || str.startsWith("`")) {
|
|
5377
|
-
const textVar = this.fgNewText();
|
|
5378
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(${str});`);
|
|
5379
|
-
return textVar;
|
|
5380
|
-
}
|
|
5381
|
-
if (this.reactiveMembers && this.reactiveMembers.has(str)) {
|
|
5382
|
-
const textVar = this.fgNewText();
|
|
5383
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
|
|
5384
|
-
this._fgSetupLines.push(`__effect(() => { ${textVar}.data = this.${str}.value; });`);
|
|
5385
|
-
return textVar;
|
|
5386
|
-
}
|
|
5387
|
-
const elVar = this.fgNewElement();
|
|
5388
|
-
this._fgCreateLines.push(`${elVar} = document.createElement('${str}');`);
|
|
5389
|
-
return elVar;
|
|
5390
|
-
}
|
|
5391
|
-
if (Array.isArray(sexpr)) {
|
|
5392
|
-
const [head, ...rest] = sexpr;
|
|
5393
|
-
const headStr = typeof head === "string" ? head : head instanceof String ? head.valueOf() : null;
|
|
5394
|
-
if (headStr && this.isComponent(headStr)) {
|
|
5395
|
-
return this.fgProcessComponent(headStr, rest);
|
|
5396
|
-
}
|
|
5397
|
-
if (headStr && this.isHtmlTag(headStr)) {
|
|
5398
|
-
return this.fgProcessTag(headStr, [], rest);
|
|
5399
|
-
}
|
|
5400
|
-
if (headStr === ".") {
|
|
5401
|
-
const [, obj, prop] = sexpr;
|
|
5402
|
-
if (obj === "this" && typeof prop === "string") {
|
|
5403
|
-
if (this.reactiveMembers && this.reactiveMembers.has(prop)) {
|
|
5404
|
-
const textVar3 = this.fgNewText();
|
|
5405
|
-
this._fgCreateLines.push(`${textVar3} = document.createTextNode('');`);
|
|
5406
|
-
this._fgSetupLines.push(`__effect(() => { ${textVar3}.data = this.${prop}.value; });`);
|
|
5407
|
-
return textVar3;
|
|
5408
|
-
}
|
|
5409
|
-
if (this.componentMembers && this.componentMembers.has(prop)) {
|
|
5410
|
-
const slotVar = this.fgNewElement("slot");
|
|
5411
|
-
this._fgCreateLines.push(`${slotVar} = this.${prop} instanceof Node ? this.${prop} : (this.${prop} != null ? document.createTextNode(String(this.${prop})) : document.createComment(''));`);
|
|
5412
|
-
return slotVar;
|
|
5413
|
-
}
|
|
5414
|
-
}
|
|
5415
|
-
const { tag, classes } = this.collectTemplateClasses(sexpr);
|
|
5416
|
-
if (tag && this.isHtmlTag(tag)) {
|
|
5417
|
-
return this.fgProcessTag(tag, classes, []);
|
|
5418
|
-
}
|
|
5419
|
-
const textVar2 = this.fgNewText();
|
|
5420
|
-
const exprCode2 = this.generateInComponent(sexpr, "value");
|
|
5421
|
-
this._fgCreateLines.push(`${textVar2} = document.createTextNode(String(${exprCode2}));`);
|
|
5422
|
-
return textVar2;
|
|
5423
|
-
}
|
|
5424
|
-
if (Array.isArray(head)) {
|
|
5425
|
-
if (Array.isArray(head[0]) && head[0][0] === "." && (head[0][2] === "__cx__" || head[0][2] instanceof String && head[0][2].valueOf() === "__cx__")) {
|
|
5426
|
-
const tag2 = typeof head[0][1] === "string" ? head[0][1] : head[0][1].valueOf();
|
|
5427
|
-
const classExprs = head.slice(1);
|
|
5428
|
-
return this.fgProcessTagWithDynamicClass(tag2, classExprs, rest);
|
|
5429
|
-
}
|
|
5430
|
-
const { tag, classes } = this.collectTemplateClasses(head);
|
|
5431
|
-
if (tag && this.isHtmlTag(tag)) {
|
|
5432
|
-
if (classes.length === 1 && classes[0] === "__cx__") {
|
|
5433
|
-
return this.fgProcessTagWithDynamicClass(tag, rest, []);
|
|
5434
|
-
}
|
|
5435
|
-
return this.fgProcessTag(tag, classes, rest);
|
|
5436
|
-
}
|
|
5437
|
-
}
|
|
5438
|
-
if (headStr === "->" || headStr === "=>") {
|
|
5439
|
-
const [params, body] = rest;
|
|
5440
|
-
return this.fgProcessBlock(body);
|
|
5441
|
-
}
|
|
5442
|
-
if (headStr === "if") {
|
|
5443
|
-
return this.fgProcessConditional(sexpr);
|
|
5444
|
-
}
|
|
5445
|
-
if (headStr === "for" || headStr === "for-in" || headStr === "for-of") {
|
|
5446
|
-
return this.fgProcessLoop(sexpr);
|
|
5447
|
-
}
|
|
5448
|
-
const textVar = this.fgNewText();
|
|
5449
|
-
const exprCode = this.generateInComponent(sexpr, "value");
|
|
5450
|
-
if (this.fgHasReactiveDeps(sexpr)) {
|
|
5451
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
|
|
5452
|
-
this._fgSetupLines.push(`__effect(() => { ${textVar}.data = ${exprCode}; });`);
|
|
5453
|
-
} else {
|
|
5454
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(String(${exprCode}));`);
|
|
5455
|
-
}
|
|
5456
|
-
return textVar;
|
|
5457
|
-
}
|
|
5458
|
-
const commentVar = this.fgNewElement("c");
|
|
5459
|
-
this._fgCreateLines.push(`${commentVar} = document.createComment('unknown');`);
|
|
5460
|
-
return commentVar;
|
|
5461
|
-
}
|
|
5462
|
-
fgProcessTagWithDynamicClass(tag, classExprs, children) {
|
|
5463
|
-
const elVar = this.fgNewElement();
|
|
5464
|
-
this._fgCreateLines.push(`${elVar} = document.createElement('${tag}');`);
|
|
5465
|
-
if (classExprs.length > 0) {
|
|
5466
|
-
const classCode = classExprs.map((e) => this.generateInComponent(e, "value")).join(' + " " + ');
|
|
5467
|
-
const hasReactiveDeps = classExprs.some((e) => this.fgHasReactiveDeps(e));
|
|
5468
|
-
if (hasReactiveDeps) {
|
|
5469
|
-
this._fgSetupLines.push(`__effect(() => { ${elVar}.className = ${classCode}; });`);
|
|
5470
|
-
} else {
|
|
5471
|
-
this._fgCreateLines.push(`${elVar}.className = ${classCode};`);
|
|
5472
|
-
}
|
|
5473
|
-
}
|
|
5474
|
-
for (const arg of children) {
|
|
5475
|
-
const argHead = Array.isArray(arg) ? arg[0] instanceof String ? arg[0].valueOf() : arg[0] : null;
|
|
5476
|
-
if (argHead === "->" || argHead === "=>") {
|
|
5477
|
-
const block = arg[2];
|
|
5478
|
-
const blockHead = Array.isArray(block) ? block[0] instanceof String ? block[0].valueOf() : block[0] : null;
|
|
5479
|
-
if (blockHead === "block") {
|
|
5480
|
-
for (const child of block.slice(1)) {
|
|
5481
|
-
const childVar = this.fgProcessElement(child);
|
|
5482
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
|
|
5483
|
-
}
|
|
5484
|
-
} else if (block) {
|
|
5485
|
-
const childVar = this.fgProcessElement(block);
|
|
5486
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
|
|
5487
|
-
}
|
|
5488
|
-
} else if (Array.isArray(arg) && arg[0] === "object") {
|
|
5489
|
-
this.fgProcessAttributes(elVar, arg);
|
|
5490
|
-
} else if (typeof arg === "string" || arg instanceof String) {
|
|
5491
|
-
const textVar = this.fgNewText();
|
|
5492
|
-
const argStr = arg.valueOf();
|
|
5493
|
-
if (argStr.startsWith('"') || argStr.startsWith("'") || argStr.startsWith("`")) {
|
|
5494
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(${argStr});`);
|
|
5495
|
-
} else if (this.reactiveMembers && this.reactiveMembers.has(argStr)) {
|
|
5496
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
|
|
5497
|
-
this._fgSetupLines.push(`__effect(() => { ${textVar}.data = this.${argStr}.value; });`);
|
|
5498
|
-
} else {
|
|
5499
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(${this.generateInComponent(arg, "value")});`);
|
|
5500
|
-
}
|
|
5501
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${textVar});`);
|
|
5502
|
-
} else {
|
|
5503
|
-
const childVar = this.fgProcessElement(arg);
|
|
5504
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
|
|
5505
|
-
}
|
|
5506
|
-
}
|
|
5507
|
-
return elVar;
|
|
5508
|
-
}
|
|
5509
|
-
fgProcessTag(tag, classes, args) {
|
|
5510
|
-
const elVar = this.fgNewElement();
|
|
5511
|
-
this._fgCreateLines.push(`${elVar} = document.createElement('${tag}');`);
|
|
5512
|
-
if (classes.length > 0) {
|
|
5513
|
-
this._fgCreateLines.push(`${elVar}.className = '${classes.join(" ")}';`);
|
|
5514
|
-
}
|
|
5515
|
-
for (const arg of args) {
|
|
5516
|
-
if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
|
|
5517
|
-
const block = arg[2];
|
|
5518
|
-
if (Array.isArray(block) && block[0] === "block") {
|
|
5519
|
-
for (const child of block.slice(1)) {
|
|
5520
|
-
const childVar = this.fgProcessElement(child);
|
|
5521
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
|
|
5522
|
-
}
|
|
5523
|
-
} else if (block) {
|
|
5524
|
-
const childVar = this.fgProcessElement(block);
|
|
5525
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
|
|
5526
|
-
}
|
|
5527
|
-
} else if (Array.isArray(arg) && arg[0] === "object") {
|
|
5528
|
-
this.fgProcessAttributes(elVar, arg);
|
|
5529
|
-
} else if (typeof arg === "string") {
|
|
5530
|
-
const textVar = this.fgNewText();
|
|
5531
|
-
if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
|
|
5532
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(${arg});`);
|
|
5533
|
-
} else if (this.reactiveMembers && this.reactiveMembers.has(arg)) {
|
|
5534
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
|
|
5535
|
-
this._fgSetupLines.push(`__effect(() => { ${textVar}.data = this.${arg}.value; });`);
|
|
5536
|
-
} else if (this.componentMembers && this.componentMembers.has(arg)) {
|
|
5537
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(String(this.${arg}));`);
|
|
5538
|
-
} else {
|
|
5539
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(String(${arg}));`);
|
|
5540
|
-
}
|
|
5541
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${textVar});`);
|
|
5542
|
-
} else if (arg instanceof String) {
|
|
5543
|
-
const val = arg.valueOf();
|
|
5544
|
-
const textVar = this.fgNewText();
|
|
5545
|
-
if (val.startsWith('"') || val.startsWith("'") || val.startsWith("`")) {
|
|
5546
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(${val});`);
|
|
5547
|
-
} else if (this.reactiveMembers && this.reactiveMembers.has(val)) {
|
|
5548
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
|
|
5549
|
-
this._fgSetupLines.push(`__effect(() => { ${textVar}.data = this.${val}.value; });`);
|
|
5550
|
-
} else {
|
|
5551
|
-
this._fgCreateLines.push(`${textVar} = document.createTextNode(String(${val}));`);
|
|
5552
|
-
}
|
|
5553
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${textVar});`);
|
|
5554
|
-
} else if (arg) {
|
|
5555
|
-
const childVar = this.fgProcessElement(arg);
|
|
5556
|
-
this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
|
|
5557
|
-
}
|
|
5558
|
-
}
|
|
5559
|
-
return elVar;
|
|
5560
|
-
}
|
|
5561
|
-
fgHasReactiveDeps(sexpr) {
|
|
5562
|
-
if (!this.reactiveMembers || this.reactiveMembers.size === 0)
|
|
5563
|
-
return false;
|
|
5564
|
-
if (typeof sexpr === "string") {
|
|
5565
|
-
return this.reactiveMembers.has(sexpr);
|
|
5566
|
-
}
|
|
5567
|
-
if (!Array.isArray(sexpr))
|
|
5568
|
-
return false;
|
|
5569
|
-
if (sexpr[0] === "." && sexpr[1] === "this" && typeof sexpr[2] === "string") {
|
|
5570
|
-
return this.reactiveMembers.has(sexpr[2]);
|
|
5571
|
-
}
|
|
5572
|
-
for (const child of sexpr) {
|
|
5573
|
-
if (this.fgHasReactiveDeps(child))
|
|
5574
|
-
return true;
|
|
5575
|
-
}
|
|
5576
|
-
return false;
|
|
5577
|
-
}
|
|
5578
|
-
fgProcessAttributes(elVar, objExpr) {
|
|
5579
|
-
const inputType = CodeGenerator.extractInputType(objExpr.slice(1));
|
|
5580
|
-
for (let i = 1;i < objExpr.length; i++) {
|
|
5581
|
-
const [key2, value] = objExpr[i];
|
|
5582
|
-
if (Array.isArray(key2) && key2[0] === "." && key2[1] === "this") {
|
|
5583
|
-
const eventName = key2[2];
|
|
5584
|
-
const handlerCode = this.generateInComponent(value, "value");
|
|
5585
|
-
this._fgCreateLines.push(`${elVar}.addEventListener('${eventName}', (e) => (${handlerCode})(e));`);
|
|
5586
|
-
continue;
|
|
5587
|
-
}
|
|
5588
|
-
if (typeof key2 === "string") {
|
|
5589
|
-
if (key2.startsWith("__bind_") && key2.endsWith("__")) {
|
|
5590
|
-
const prop = key2.slice(7, -2);
|
|
5591
|
-
const valueCode = this.generateInComponent(value, "value");
|
|
5592
|
-
let event, valueAccessor;
|
|
5593
|
-
if (prop === "checked") {
|
|
5594
|
-
event = "change";
|
|
5595
|
-
valueAccessor = "e.target.checked";
|
|
5596
|
-
} else {
|
|
5597
|
-
event = "input";
|
|
5598
|
-
if (inputType === "number" || inputType === "range") {
|
|
5599
|
-
valueAccessor = "e.target.valueAsNumber";
|
|
5600
|
-
} else {
|
|
5601
|
-
valueAccessor = "e.target.value";
|
|
5602
|
-
}
|
|
5603
|
-
}
|
|
5604
|
-
this._fgSetupLines.push(`__effect(() => { ${elVar}.${prop} = ${valueCode}; });`);
|
|
5605
|
-
this._fgCreateLines.push(`${elVar}.addEventListener('${event}', (e) => ${valueCode} = ${valueAccessor});`);
|
|
5606
|
-
continue;
|
|
5607
|
-
}
|
|
5608
|
-
const hasReactiveDeps = this.fgHasReactiveDeps(value);
|
|
5609
|
-
if (hasReactiveDeps) {
|
|
5610
|
-
const valueCode = this.generateInComponent(value, "value");
|
|
5611
|
-
this._fgSetupLines.push(`__effect(() => { ${elVar}.setAttribute('${key2}', ${valueCode}); });`);
|
|
5612
|
-
} else {
|
|
5613
|
-
const valueCode = this.generateInComponent(value, "value");
|
|
5614
|
-
this._fgCreateLines.push(`${elVar}.setAttribute('${key2}', ${valueCode});`);
|
|
5615
|
-
}
|
|
5616
|
-
}
|
|
5617
|
-
}
|
|
5618
|
-
}
|
|
5619
|
-
fgProcessBlock(body) {
|
|
5620
|
-
if (!Array.isArray(body) || body[0] !== "block") {
|
|
5621
|
-
return this.fgProcessElement(body);
|
|
5622
|
-
}
|
|
5623
|
-
const statements = body.slice(1);
|
|
5624
|
-
if (statements.length === 0) {
|
|
5625
|
-
const commentVar = this.fgNewElement("empty");
|
|
5626
|
-
this._fgCreateLines.push(`${commentVar} = document.createComment('');`);
|
|
5627
|
-
return commentVar;
|
|
5628
|
-
}
|
|
5629
|
-
if (statements.length === 1) {
|
|
5630
|
-
return this.fgProcessElement(statements[0]);
|
|
5631
|
-
}
|
|
5632
|
-
const fragVar = this.fgNewElement("frag");
|
|
5633
|
-
this._fgCreateLines.push(`${fragVar} = document.createDocumentFragment();`);
|
|
5634
|
-
for (const stmt of statements) {
|
|
5635
|
-
const childVar = this.fgProcessElement(stmt);
|
|
5636
|
-
this._fgCreateLines.push(`${fragVar}.appendChild(${childVar});`);
|
|
5637
|
-
}
|
|
5638
|
-
return fragVar;
|
|
5639
|
-
}
|
|
5640
|
-
fgProcessConditional(sexpr) {
|
|
5641
|
-
const [, condition, thenBlock, elseBlock] = sexpr;
|
|
5642
|
-
const anchorVar = this.fgNewElement("anchor");
|
|
5643
|
-
this._fgCreateLines.push(`${anchorVar} = document.createComment('if');`);
|
|
5644
|
-
const condCode = this.generateInComponent(condition, "value");
|
|
5645
|
-
const thenBlockName = this.fgNewBlock();
|
|
5646
|
-
this.fgGenerateConditionBlock(thenBlockName, thenBlock);
|
|
5647
|
-
let elseBlockName = null;
|
|
5648
|
-
if (elseBlock) {
|
|
5649
|
-
elseBlockName = this.fgNewBlock();
|
|
5650
|
-
this.fgGenerateConditionBlock(elseBlockName, elseBlock);
|
|
5651
|
-
}
|
|
5652
|
-
const setupLines = [];
|
|
5653
|
-
setupLines.push(`// Conditional: ${thenBlockName}${elseBlockName ? " / " + elseBlockName : ""}`);
|
|
5654
|
-
setupLines.push(`{`);
|
|
5655
|
-
setupLines.push(` const anchor = ${anchorVar};`);
|
|
5656
|
-
setupLines.push(` let currentBlock = null;`);
|
|
5657
|
-
setupLines.push(` let showing = null; // 'then', 'else', or null`);
|
|
5658
|
-
setupLines.push(` __effect(() => {`);
|
|
5659
|
-
setupLines.push(` const show = !!(${condCode});`);
|
|
5660
|
-
setupLines.push(` const want = show ? 'then' : ${elseBlock ? "'else'" : "null"};`);
|
|
5661
|
-
setupLines.push(` if (want === showing) return;`);
|
|
5662
|
-
setupLines.push(``);
|
|
5663
|
-
setupLines.push(` // Destroy old block`);
|
|
5664
|
-
setupLines.push(` if (currentBlock) {`);
|
|
5665
|
-
setupLines.push(` currentBlock.d(true);`);
|
|
5666
|
-
setupLines.push(` currentBlock = null;`);
|
|
5667
|
-
setupLines.push(` }`);
|
|
5668
|
-
setupLines.push(` showing = want;`);
|
|
5669
|
-
setupLines.push(``);
|
|
5670
|
-
setupLines.push(` // Create new block`);
|
|
5671
|
-
setupLines.push(` if (want === 'then') {`);
|
|
5672
|
-
setupLines.push(` currentBlock = ${thenBlockName}(this);`);
|
|
5673
|
-
setupLines.push(` currentBlock.c();`);
|
|
5674
|
-
setupLines.push(` currentBlock.m(anchor.parentNode, anchor.nextSibling);`);
|
|
5675
|
-
setupLines.push(` currentBlock.p(this);`);
|
|
5676
|
-
setupLines.push(` }`);
|
|
5677
|
-
if (elseBlock) {
|
|
5678
|
-
setupLines.push(` if (want === 'else') {`);
|
|
5679
|
-
setupLines.push(` currentBlock = ${elseBlockName}(this);`);
|
|
5680
|
-
setupLines.push(` currentBlock.c();`);
|
|
5681
|
-
setupLines.push(` currentBlock.m(anchor.parentNode, anchor.nextSibling);`);
|
|
5682
|
-
setupLines.push(` currentBlock.p(this);`);
|
|
5683
|
-
setupLines.push(` }`);
|
|
5684
|
-
}
|
|
5685
|
-
setupLines.push(` });`);
|
|
5686
|
-
setupLines.push(`}`);
|
|
5687
|
-
this._fgSetupLines.push(setupLines.join(`
|
|
5688
|
-
`));
|
|
5689
|
-
return anchorVar;
|
|
5690
|
-
}
|
|
5691
|
-
fgGenerateConditionBlock(blockName, block) {
|
|
5692
|
-
const savedCreateLines = this._fgCreateLines;
|
|
5693
|
-
const savedSetupLines = this._fgSetupLines;
|
|
5694
|
-
this._fgCreateLines = [];
|
|
5695
|
-
this._fgSetupLines = [];
|
|
5696
|
-
const rootVar = this.fgProcessBlock(block);
|
|
5697
|
-
const createLines = this._fgCreateLines;
|
|
5698
|
-
const setupLines = this._fgSetupLines;
|
|
5699
|
-
this._fgCreateLines = savedCreateLines;
|
|
5700
|
-
this._fgSetupLines = savedSetupLines;
|
|
5701
|
-
const localizeVar = (line) => {
|
|
5702
|
-
return line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g, "$1");
|
|
5703
|
-
};
|
|
5704
|
-
const factoryLines = [];
|
|
5705
|
-
factoryLines.push(`function ${blockName}(ctx) {`);
|
|
5706
|
-
factoryLines.push(` // Local DOM references`);
|
|
5707
|
-
const localVars = new Set;
|
|
5708
|
-
for (const line of createLines) {
|
|
5709
|
-
const match = line.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);
|
|
5710
|
-
if (match)
|
|
5711
|
-
localVars.add(match[1]);
|
|
5712
|
-
}
|
|
5713
|
-
if (localVars.size > 0) {
|
|
5714
|
-
factoryLines.push(` let ${[...localVars].join(", ")};`);
|
|
5715
|
-
}
|
|
5716
|
-
const hasEffects = setupLines.length > 0;
|
|
5717
|
-
if (hasEffects) {
|
|
5718
|
-
factoryLines.push(` let disposers = [];`);
|
|
5719
|
-
}
|
|
5720
|
-
factoryLines.push(` return {`);
|
|
5721
|
-
factoryLines.push(` c() {`);
|
|
5722
|
-
for (const line of createLines) {
|
|
5723
|
-
factoryLines.push(` ${localizeVar(line)}`);
|
|
5724
|
-
}
|
|
5725
|
-
factoryLines.push(` },`);
|
|
5726
|
-
factoryLines.push(` m(target, anchor) {`);
|
|
5727
|
-
factoryLines.push(` target.insertBefore(${localizeVar(rootVar)}, anchor);`);
|
|
5728
|
-
factoryLines.push(` },`);
|
|
5729
|
-
factoryLines.push(` p(ctx) {`);
|
|
5730
|
-
if (hasEffects) {
|
|
5731
|
-
factoryLines.push(` disposers.forEach(d => d());`);
|
|
5732
|
-
factoryLines.push(` disposers = [];`);
|
|
5733
|
-
for (const line of setupLines) {
|
|
5734
|
-
const localizedLine = localizeVar(line);
|
|
5735
|
-
const wrappedLine = localizedLine.replace(/__effect\(\(\) => \{/g, "disposers.push(__effect(() => {").replace(/\}\);$/g, "}));");
|
|
5736
|
-
factoryLines.push(` ${wrappedLine}`);
|
|
5737
|
-
}
|
|
5738
|
-
}
|
|
5739
|
-
factoryLines.push(` },`);
|
|
5740
|
-
factoryLines.push(` d(detaching) {`);
|
|
5741
|
-
if (hasEffects) {
|
|
5742
|
-
factoryLines.push(` disposers.forEach(d => d());`);
|
|
5743
|
-
}
|
|
5744
|
-
factoryLines.push(` if (detaching) ${localizeVar(rootVar)}.remove();`);
|
|
5745
|
-
factoryLines.push(` }`);
|
|
5746
|
-
factoryLines.push(` };`);
|
|
5747
|
-
factoryLines.push(`}`);
|
|
5748
|
-
this._fgBlockFactories.push(factoryLines.join(`
|
|
5749
|
-
`));
|
|
5750
|
-
}
|
|
5751
|
-
fgProcessLoop(sexpr) {
|
|
5752
|
-
const [head, vars, collection, guard, step, body] = sexpr;
|
|
5753
|
-
const blockName = this.fgNewBlock();
|
|
5754
|
-
const anchorVar = this.fgNewElement("anchor");
|
|
5755
|
-
this._fgCreateLines.push(`${anchorVar} = document.createComment('for');`);
|
|
5756
|
-
const varNames = Array.isArray(vars) ? vars : [vars];
|
|
5757
|
-
const itemVar = varNames[0];
|
|
5758
|
-
const indexVar = varNames[1] || "i";
|
|
5759
|
-
const collectionCode = this.generateInComponent(collection, "value");
|
|
5760
|
-
let keyExpr = itemVar;
|
|
5761
|
-
if (Array.isArray(body) && body[0] === "block" && body.length > 1) {
|
|
5762
|
-
const firstChild = body[1];
|
|
5763
|
-
if (Array.isArray(firstChild)) {
|
|
5764
|
-
for (const arg of firstChild) {
|
|
5765
|
-
if (Array.isArray(arg) && arg[0] === "object") {
|
|
5766
|
-
for (let i = 1;i < arg.length; i++) {
|
|
5767
|
-
const [k2, v] = arg[i];
|
|
5768
|
-
if (k2 === "key") {
|
|
5769
|
-
keyExpr = this.generate(v, "value");
|
|
5770
|
-
break;
|
|
5771
|
-
}
|
|
5772
|
-
}
|
|
5773
|
-
}
|
|
5774
|
-
if (keyExpr !== itemVar)
|
|
5775
|
-
break;
|
|
5776
|
-
}
|
|
5777
|
-
}
|
|
5778
|
-
}
|
|
5779
|
-
const savedCreateLines = this._fgCreateLines;
|
|
5780
|
-
const savedSetupLines = this._fgSetupLines;
|
|
5781
|
-
const savedBlockFactories = this._fgBlockFactories;
|
|
5782
|
-
this._fgCreateLines = [];
|
|
5783
|
-
this._fgSetupLines = [];
|
|
5784
|
-
const itemNode = this.fgProcessBlock(body);
|
|
5785
|
-
const itemCreateLines = this._fgCreateLines;
|
|
5786
|
-
const itemSetupLines = this._fgSetupLines;
|
|
5787
|
-
this._fgCreateLines = savedCreateLines;
|
|
5788
|
-
this._fgSetupLines = savedSetupLines;
|
|
5789
|
-
const localizeVar = (line) => {
|
|
5790
|
-
return line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g, "$1");
|
|
5791
|
-
};
|
|
5792
|
-
const factoryLines = [];
|
|
5793
|
-
factoryLines.push(`function ${blockName}(ctx, ${itemVar}, ${indexVar}) {`);
|
|
5794
|
-
factoryLines.push(` // Local DOM references (not on this)`);
|
|
5795
|
-
const localVars = new Set;
|
|
5796
|
-
for (const line of itemCreateLines) {
|
|
5797
|
-
const match = line.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);
|
|
5798
|
-
if (match)
|
|
5799
|
-
localVars.add(match[1]);
|
|
5800
|
-
}
|
|
5801
|
-
if (localVars.size > 0) {
|
|
5802
|
-
factoryLines.push(` let ${[...localVars].join(", ")};`);
|
|
5803
|
-
}
|
|
5804
|
-
const hasEffects = itemSetupLines.length > 0;
|
|
5805
|
-
if (hasEffects) {
|
|
5806
|
-
factoryLines.push(` let disposers = [];`);
|
|
5807
|
-
}
|
|
5808
|
-
factoryLines.push(` return {`);
|
|
5809
|
-
factoryLines.push(` c() {`);
|
|
5810
|
-
for (const line of itemCreateLines) {
|
|
5811
|
-
factoryLines.push(` ${localizeVar(line)}`);
|
|
5812
|
-
}
|
|
5813
|
-
factoryLines.push(` },`);
|
|
5814
|
-
factoryLines.push(` m(target, anchor) {`);
|
|
5815
|
-
factoryLines.push(` target.insertBefore(${localizeVar(itemNode)}, anchor);`);
|
|
5816
|
-
factoryLines.push(` },`);
|
|
5817
|
-
factoryLines.push(` p(ctx, ${itemVar}, ${indexVar}) {`);
|
|
5818
|
-
if (hasEffects) {
|
|
5819
|
-
factoryLines.push(` // Dispose old effects and create new ones with updated values`);
|
|
5820
|
-
factoryLines.push(` disposers.forEach(d => d());`);
|
|
5821
|
-
factoryLines.push(` disposers = [];`);
|
|
5822
|
-
for (const line of itemSetupLines) {
|
|
5823
|
-
const localizedLine = localizeVar(line);
|
|
5824
|
-
const wrappedLine = localizedLine.replace(/__effect\(\(\) => \{/g, "disposers.push(__effect(() => {").replace(/\}\);$/g, "}));");
|
|
5825
|
-
factoryLines.push(` ${wrappedLine}`);
|
|
5826
|
-
}
|
|
5827
|
-
}
|
|
5828
|
-
factoryLines.push(` },`);
|
|
5829
|
-
factoryLines.push(` d(detaching) {`);
|
|
5830
|
-
if (hasEffects) {
|
|
5831
|
-
factoryLines.push(` disposers.forEach(d => d());`);
|
|
5832
|
-
}
|
|
5833
|
-
factoryLines.push(` if (detaching) ${localizeVar(itemNode)}.remove();`);
|
|
5834
|
-
factoryLines.push(` }`);
|
|
5835
|
-
factoryLines.push(` };`);
|
|
5836
|
-
factoryLines.push(`}`);
|
|
5837
|
-
this._fgBlockFactories.push(factoryLines.join(`
|
|
5838
|
-
`));
|
|
5839
|
-
const setupLines = [];
|
|
5840
|
-
setupLines.push(`// Loop: ${blockName}`);
|
|
5841
|
-
setupLines.push(`{`);
|
|
5842
|
-
setupLines.push(` const anchor = ${anchorVar};`);
|
|
5843
|
-
setupLines.push(` const map = new Map(); // key -> block`);
|
|
5844
|
-
setupLines.push(` let keys = [];`);
|
|
5845
|
-
setupLines.push(` __effect(() => {`);
|
|
5846
|
-
setupLines.push(` const items = ${collectionCode};`);
|
|
5847
|
-
setupLines.push(` const parent = anchor.parentNode;`);
|
|
5848
|
-
setupLines.push(` const newKeys = [];`);
|
|
5849
|
-
setupLines.push(` const newMap = new Map();`);
|
|
5850
|
-
setupLines.push(``);
|
|
5851
|
-
setupLines.push(` // Create/update blocks`);
|
|
5852
|
-
setupLines.push(` for (let ${indexVar} = 0; ${indexVar} < items.length; ${indexVar}++) {`);
|
|
5853
|
-
setupLines.push(` const ${itemVar} = items[${indexVar}];`);
|
|
5854
|
-
setupLines.push(` const key = ${keyExpr};`);
|
|
5855
|
-
setupLines.push(` newKeys.push(key);`);
|
|
5856
|
-
setupLines.push(` let block = map.get(key);`);
|
|
5857
|
-
setupLines.push(` if (block) {`);
|
|
5858
|
-
setupLines.push(` // Update existing block`);
|
|
5859
|
-
setupLines.push(` block.p(this, ${itemVar}, ${indexVar});`);
|
|
5860
|
-
setupLines.push(` } else {`);
|
|
5861
|
-
setupLines.push(` // Create new block`);
|
|
5862
|
-
setupLines.push(` block = ${blockName}(this, ${itemVar}, ${indexVar});`);
|
|
5863
|
-
setupLines.push(` block.c();`);
|
|
5864
|
-
setupLines.push(` block.m(parent, anchor);`);
|
|
5865
|
-
setupLines.push(` block.p(this, ${itemVar}, ${indexVar}); // Wire up effects`);
|
|
5866
|
-
setupLines.push(` }`);
|
|
5867
|
-
setupLines.push(` newMap.set(key, block);`);
|
|
5868
|
-
setupLines.push(` }`);
|
|
5869
|
-
setupLines.push(``);
|
|
5870
|
-
setupLines.push(` // Remove deleted blocks`);
|
|
5871
|
-
setupLines.push(` for (const [key, block] of map) {`);
|
|
5872
|
-
setupLines.push(` if (!newMap.has(key)) block.d(true);`);
|
|
5873
|
-
setupLines.push(` }`);
|
|
5874
|
-
setupLines.push(``);
|
|
5875
|
-
setupLines.push(` // Update tracking (simple swap)`);
|
|
5876
|
-
setupLines.push(` map.clear();`);
|
|
5877
|
-
setupLines.push(` for (const [k, v] of newMap) map.set(k, v);`);
|
|
5878
|
-
setupLines.push(` keys = newKeys;`);
|
|
5879
|
-
setupLines.push(` });`);
|
|
5880
|
-
setupLines.push(`}`);
|
|
5881
|
-
this._fgSetupLines.push(setupLines.join(`
|
|
5882
|
-
`));
|
|
5883
|
-
return anchorVar;
|
|
5884
|
-
}
|
|
5885
|
-
fgProcessComponent(componentName, args) {
|
|
5886
|
-
const instVar = this.fgNewElement("inst");
|
|
5887
|
-
const elVar = this.fgNewElement("el");
|
|
5888
|
-
const { propsCode, childrenVar, childrenSetupLines } = this.fgBuildComponentProps(args);
|
|
5889
|
-
this._fgCreateLines.push(`${instVar} = new ${componentName}(${propsCode});`);
|
|
5890
|
-
this._fgCreateLines.push(`${elVar} = ${instVar}._create();`);
|
|
5891
|
-
this._fgSetupLines.push(`if (${instVar}._setup) ${instVar}._setup();`);
|
|
5892
|
-
for (const line of childrenSetupLines) {
|
|
5893
|
-
this._fgSetupLines.push(line);
|
|
5894
|
-
}
|
|
5895
|
-
return elVar;
|
|
5896
|
-
}
|
|
5897
|
-
fgBuildComponentProps(args) {
|
|
5898
|
-
const props = [];
|
|
5899
|
-
let childrenVar = null;
|
|
5900
|
-
const childrenSetupLines = [];
|
|
5901
|
-
for (const arg of args) {
|
|
5902
|
-
if (Array.isArray(arg) && arg[0] === "object") {
|
|
5903
|
-
for (let i = 1;i < arg.length; i++) {
|
|
5904
|
-
const [key2, value] = arg[i];
|
|
5905
|
-
if (typeof key2 === "string") {
|
|
5906
|
-
const valueCode = this.generateInComponent(value, "value");
|
|
5907
|
-
props.push(`${key2}: ${valueCode}`);
|
|
5908
|
-
}
|
|
5909
|
-
}
|
|
5910
|
-
} else if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
|
|
5911
|
-
const block = arg[2];
|
|
5912
|
-
if (block) {
|
|
5913
|
-
const savedCreateLines = this._fgCreateLines;
|
|
5914
|
-
const savedSetupLines = this._fgSetupLines;
|
|
5915
|
-
this._fgCreateLines = [];
|
|
5916
|
-
this._fgSetupLines = [];
|
|
5917
|
-
childrenVar = this.fgProcessBlock(block);
|
|
5918
|
-
const childCreateLines = this._fgCreateLines;
|
|
5919
|
-
const childSetupLinesCopy = this._fgSetupLines;
|
|
5920
|
-
this._fgCreateLines = savedCreateLines;
|
|
5921
|
-
this._fgSetupLines = savedSetupLines;
|
|
5922
|
-
for (const line of childCreateLines) {
|
|
5923
|
-
this._fgCreateLines.push(line);
|
|
5924
|
-
}
|
|
5925
|
-
childrenSetupLines.push(...childSetupLinesCopy);
|
|
5926
|
-
props.push(`children: ${childrenVar}`);
|
|
5927
|
-
}
|
|
5928
|
-
}
|
|
5929
|
-
}
|
|
5930
|
-
const propsCode = props.length > 0 ? `{ ${props.join(", ")} }` : "{}";
|
|
5931
|
-
return { propsCode, childrenVar, childrenSetupLines };
|
|
5932
|
-
}
|
|
5933
|
-
generateComponentTemplateElement(sexpr) {
|
|
5934
|
-
if (typeof sexpr === "string") {
|
|
5935
|
-
if (this.componentMembers && this.componentMembers.has(sexpr)) {
|
|
5936
|
-
return `this.${sexpr}.value`;
|
|
5937
|
-
}
|
|
5938
|
-
if (sexpr.startsWith('"') || sexpr.startsWith("'") || sexpr.startsWith("`")) {
|
|
5939
|
-
return sexpr;
|
|
5940
|
-
}
|
|
5941
|
-
return `h('${sexpr}', 0)`;
|
|
5942
|
-
}
|
|
5943
|
-
if (sexpr instanceof String) {
|
|
5944
|
-
const val = sexpr.valueOf();
|
|
5945
|
-
if (this.componentMembers && this.componentMembers.has(val)) {
|
|
5946
|
-
return `this.${val}.value`;
|
|
5947
|
-
}
|
|
5948
|
-
}
|
|
5949
|
-
if (Array.isArray(sexpr)) {
|
|
5950
|
-
const [head, ...rest] = sexpr;
|
|
5951
|
-
const headStr = typeof head === "string" ? head : head instanceof String ? head.valueOf() : null;
|
|
5952
|
-
if (headStr && this.isComponent(headStr)) {
|
|
5953
|
-
return this.generateComponentInstance(headStr, rest);
|
|
5954
|
-
}
|
|
5955
|
-
if (headStr && this.isHtmlTag && this.isHtmlTag(headStr)) {
|
|
5956
|
-
return this.generateComponentH(headStr, [], rest);
|
|
5957
|
-
}
|
|
5958
|
-
if (headStr === ".") {
|
|
5959
|
-
const [, obj, prop] = sexpr;
|
|
5960
|
-
if (obj === "this" && prop === "children") {
|
|
5961
|
-
return `this.children`;
|
|
5962
|
-
}
|
|
5963
|
-
const { tag, classes } = this.collectTemplateClasses(sexpr);
|
|
5964
|
-
if (tag && this.isHtmlTag && this.isHtmlTag(tag)) {
|
|
5965
|
-
return this.generateComponentH(tag, classes, []);
|
|
5966
|
-
}
|
|
5967
|
-
}
|
|
5968
|
-
if (Array.isArray(head)) {
|
|
5969
|
-
const { tag, classes } = this.collectTemplateClasses(head);
|
|
5970
|
-
if (tag && this.isHtmlTag && this.isHtmlTag(tag)) {
|
|
5971
|
-
return this.generateComponentH(tag, classes, rest);
|
|
5972
|
-
}
|
|
5973
|
-
}
|
|
5974
|
-
if (headStr === "->" || headStr === "=>") {
|
|
5975
|
-
const [params, body] = rest;
|
|
5976
|
-
return this.generateComponentRender(body);
|
|
5977
|
-
}
|
|
5978
|
-
return this.generateTemplateElement(sexpr);
|
|
5979
|
-
}
|
|
5980
|
-
return this.generateTemplateElement(sexpr);
|
|
5981
|
-
}
|
|
5982
|
-
generateComponentH(tag, classes, args) {
|
|
5983
|
-
this.usesTemplates = true;
|
|
5984
|
-
const props = {};
|
|
5985
|
-
const spreads = [];
|
|
5986
|
-
const children = [];
|
|
5987
|
-
let refVar = null;
|
|
5988
|
-
for (const arg of args) {
|
|
5989
|
-
if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
|
|
5990
|
-
const block = arg[2];
|
|
5991
|
-
if (Array.isArray(block) && block[0] === "block") {
|
|
5992
|
-
children.push(...block.slice(1).map((s) => this.generateComponentTemplateElement(s)));
|
|
5993
|
-
} else {
|
|
5994
|
-
children.push(this.generateComponentTemplateElement(block));
|
|
5995
|
-
}
|
|
5996
|
-
} else if (Array.isArray(arg) && arg[0] === "...") {
|
|
5997
|
-
spreads.push(this.generateInComponent(arg[1], "value"));
|
|
5998
|
-
} else if (Array.isArray(arg) && arg[0] === "object") {
|
|
5999
|
-
const inputType = CodeGenerator.extractInputType(arg.slice(1));
|
|
6000
|
-
for (const pair of arg.slice(1)) {
|
|
6001
|
-
if (Array.isArray(pair) && pair.length >= 2) {
|
|
6002
|
-
const [key2, value] = pair;
|
|
6003
|
-
const bindInfo = this.parseBindingDirective(key2, value, tag, inputType);
|
|
6004
|
-
if (bindInfo) {
|
|
6005
|
-
props[bindInfo.prop] = bindInfo.valueExpr;
|
|
6006
|
-
props[bindInfo.event] = bindInfo.handler;
|
|
6007
|
-
continue;
|
|
6008
|
-
}
|
|
6009
|
-
const eventInfo = this.parseEventHandler(key2, value);
|
|
6010
|
-
if (eventInfo) {
|
|
6011
|
-
const handler = eventInfo.modifiers.length > 0 ? this.wrapEventHandler(eventInfo.handler, eventInfo.modifiers) : eventInfo.handler;
|
|
6012
|
-
props[`on${eventInfo.eventName}`] = handler;
|
|
6013
|
-
} else {
|
|
6014
|
-
const keyStr = typeof key2 === "string" ? key2 : this.generate(key2, "value");
|
|
6015
|
-
if (keyStr === "ref") {
|
|
6016
|
-
refVar = typeof value === "string" ? value : this.generate(value, "value");
|
|
6017
|
-
} else if (keyStr === "key") {
|
|
6018
|
-
props.key = this.generateInComponent(value, "value");
|
|
6019
|
-
} else {
|
|
6020
|
-
props[keyStr] = this.generateInComponent(value, "value");
|
|
6021
|
-
}
|
|
6022
|
-
}
|
|
6023
|
-
}
|
|
6024
|
-
}
|
|
6025
|
-
} else if (typeof arg === "string") {
|
|
6026
|
-
if (this.componentMembers && this.componentMembers.has(arg)) {
|
|
6027
|
-
children.push(`this.${arg}.value`);
|
|
6028
|
-
} else if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
|
|
6029
|
-
children.push(arg);
|
|
6030
|
-
} else {
|
|
6031
|
-
children.push(`String(${arg})`);
|
|
6032
|
-
}
|
|
6033
|
-
} else {
|
|
6034
|
-
children.push(this.generateComponentTemplateElement(arg));
|
|
6035
|
-
}
|
|
4332
|
+
const objCode = this.generate(obj, "value");
|
|
4333
|
+
if (prop === "prototype") {
|
|
4334
|
+
return `${objCode}.prototype`;
|
|
6036
4335
|
}
|
|
6037
|
-
const
|
|
6038
|
-
|
|
6039
|
-
|
|
6040
|
-
|
|
6041
|
-
|
|
6042
|
-
|
|
4336
|
+
const cleanProp = prop instanceof String ? prop.valueOf() : prop;
|
|
4337
|
+
return `${objCode}.prototype.${cleanProp}`;
|
|
4338
|
+
}
|
|
4339
|
+
generateOptionalPrototype(head, rest, context, sexpr) {
|
|
4340
|
+
const [obj, prop] = rest;
|
|
4341
|
+
const objCode = this.generate(obj, "value");
|
|
4342
|
+
if (prop === "prototype") {
|
|
4343
|
+
return `(${objCode} != null ? ${objCode}.prototype : undefined)`;
|
|
6043
4344
|
}
|
|
6044
|
-
return
|
|
4345
|
+
return `(${objCode} != null ? ${objCode}.prototype.${prop} : undefined)`;
|
|
6045
4346
|
}
|
|
6046
|
-
|
|
6047
|
-
const
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
4347
|
+
generateRegexIndex(head, rest, context, sexpr) {
|
|
4348
|
+
const [value, regex, captureIndex] = rest;
|
|
4349
|
+
this.helpers.add("toSearchable");
|
|
4350
|
+
this.programVars.add("_");
|
|
4351
|
+
const valueCode = this.generate(value, "value");
|
|
4352
|
+
const regexCode = this.generate(regex, "value");
|
|
4353
|
+
const indexCode = captureIndex !== null ? this.generate(captureIndex, "value") : "0";
|
|
4354
|
+
const hasMultilineFlag = regexCode.includes("/m");
|
|
4355
|
+
const allowNewlines = hasMultilineFlag ? ", true" : "";
|
|
4356
|
+
return `(_ = toSearchable(${valueCode}${allowNewlines}).match(${regexCode})) && _[${indexCode}]`;
|
|
4357
|
+
}
|
|
4358
|
+
generateIndexAccess(head, rest, context, sexpr) {
|
|
4359
|
+
const [arr, index] = rest;
|
|
4360
|
+
if (Array.isArray(index) && (index[0] === ".." || index[0] === "...")) {
|
|
4361
|
+
const isInclusive = index[0] === "..";
|
|
4362
|
+
const arrCode = this.generate(arr, "value");
|
|
4363
|
+
const [start, end] = index.slice(1);
|
|
4364
|
+
if (start === null && end === null) {
|
|
4365
|
+
return `${arrCode}.slice()`;
|
|
4366
|
+
} else if (start === null) {
|
|
4367
|
+
if (isInclusive && this.isNegativeOneLiteral(end)) {
|
|
4368
|
+
return `${arrCode}.slice(0)`;
|
|
6056
4369
|
}
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
children.push(...block.slice(1).map((s) => this.generateComponentTemplateElement(s)));
|
|
4370
|
+
const endCode = this.generate(end, "value");
|
|
4371
|
+
if (isInclusive) {
|
|
4372
|
+
return `${arrCode}.slice(0, +${endCode} + 1 || 9e9)`;
|
|
6061
4373
|
} else {
|
|
6062
|
-
|
|
4374
|
+
return `${arrCode}.slice(0, ${endCode})`;
|
|
4375
|
+
}
|
|
4376
|
+
} else if (end === null) {
|
|
4377
|
+
const startCode = this.generate(start, "value");
|
|
4378
|
+
return `${arrCode}.slice(${startCode})`;
|
|
4379
|
+
} else {
|
|
4380
|
+
const startCode = this.generate(start, "value");
|
|
4381
|
+
if (isInclusive && this.isNegativeOneLiteral(end)) {
|
|
4382
|
+
return `${arrCode}.slice(${startCode})`;
|
|
6063
4383
|
}
|
|
6064
|
-
|
|
6065
|
-
if (
|
|
6066
|
-
|
|
6067
|
-
} else if (this.reactiveMembers && this.reactiveMembers.has(arg)) {
|
|
6068
|
-
children.push(`this.${arg}.value`);
|
|
4384
|
+
const endCode = this.generate(end, "value");
|
|
4385
|
+
if (isInclusive) {
|
|
4386
|
+
return `${arrCode}.slice(${startCode}, +${endCode} + 1 || 9e9)`;
|
|
6069
4387
|
} else {
|
|
6070
|
-
|
|
4388
|
+
return `${arrCode}.slice(${startCode}, ${endCode})`;
|
|
6071
4389
|
}
|
|
6072
|
-
} else {
|
|
6073
|
-
children.push(this.generateComponentTemplateElement(arg));
|
|
6074
|
-
}
|
|
6075
|
-
}
|
|
6076
|
-
const propsEntries = Object.entries(props);
|
|
6077
|
-
let propsStr = "{}";
|
|
6078
|
-
if (propsEntries.length > 0 || children.length > 0) {
|
|
6079
|
-
const entries = propsEntries.map(([k2, v]) => `${k2}: ${v}`);
|
|
6080
|
-
if (children.length > 0) {
|
|
6081
|
-
const childrenStr = children.length === 1 ? children[0] : `[${children.join(", ")}]`;
|
|
6082
|
-
entries.push(`children: ${childrenStr}`);
|
|
6083
4390
|
}
|
|
6084
|
-
propsStr = entries.length > 0 ? `{ ${entries.join(", ")} }` : "{}";
|
|
6085
4391
|
}
|
|
6086
|
-
|
|
4392
|
+
const indexCode = this.unwrap(this.generate(index, "value"));
|
|
4393
|
+
return `${this.generate(arr, "value")}[${indexCode}]`;
|
|
6087
4394
|
}
|
|
6088
|
-
|
|
6089
|
-
|
|
6090
|
-
|
|
6091
|
-
|
|
6092
|
-
|
|
6093
|
-
|
|
6094
|
-
|
|
6095
|
-
|
|
6096
|
-
|
|
6097
|
-
|
|
6098
|
-
|
|
6099
|
-
|
|
6100
|
-
|
|
6101
|
-
const [
|
|
6102
|
-
|
|
6103
|
-
|
|
6104
|
-
}
|
|
6105
|
-
|
|
6106
|
-
|
|
6107
|
-
|
|
6108
|
-
|
|
6109
|
-
|
|
6110
|
-
|
|
6111
|
-
|
|
6112
|
-
|
|
6113
|
-
|
|
6114
|
-
|
|
6115
|
-
|
|
6116
|
-
|
|
6117
|
-
|
|
6118
|
-
|
|
6119
|
-
|
|
6120
|
-
|
|
6121
|
-
|
|
6122
|
-
|
|
6123
|
-
|
|
6124
|
-
|
|
6125
|
-
|
|
6126
|
-
|
|
6127
|
-
|
|
6128
|
-
|
|
6129
|
-
|
|
6130
|
-
|
|
4395
|
+
generateSoakIndex(head, rest, context, sexpr) {
|
|
4396
|
+
const [arr, index] = rest;
|
|
4397
|
+
const arrCode = this.generate(arr, "value");
|
|
4398
|
+
const indexCode = this.generate(index, "value");
|
|
4399
|
+
return `(${arrCode} != null ? ${arrCode}[${indexCode}] : undefined)`;
|
|
4400
|
+
}
|
|
4401
|
+
generateOptIndex(head, rest, context, sexpr) {
|
|
4402
|
+
const [arr, index] = rest;
|
|
4403
|
+
const arrCode = this.generate(arr, "value");
|
|
4404
|
+
const indexCode = this.generate(index, "value");
|
|
4405
|
+
return `${arrCode}?.[${indexCode}]`;
|
|
4406
|
+
}
|
|
4407
|
+
generateOptCall(head, rest, context, sexpr) {
|
|
4408
|
+
const [fn, ...args] = rest;
|
|
4409
|
+
const fnCode = this.generate(fn, "value");
|
|
4410
|
+
const argsCode = args.map((arg) => this.generate(arg, "value")).join(", ");
|
|
4411
|
+
return `${fnCode}?.(${argsCode})`;
|
|
4412
|
+
}
|
|
4413
|
+
generateDef(head, rest, context, sexpr) {
|
|
4414
|
+
const [name, params, body] = rest;
|
|
4415
|
+
const sideEffectOnly = name instanceof String && name.await === true;
|
|
4416
|
+
const cleanName = name instanceof String ? name.valueOf() : name;
|
|
4417
|
+
const paramList = this.generateParamList(params);
|
|
4418
|
+
const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
|
|
4419
|
+
const isAsync = this.containsAwait(body);
|
|
4420
|
+
const isGenerator = this.containsYield(body);
|
|
4421
|
+
const asyncPrefix = isAsync ? "async " : "";
|
|
4422
|
+
const generatorSuffix = isGenerator ? "*" : "";
|
|
4423
|
+
return `${asyncPrefix}function${generatorSuffix} ${cleanName}(${paramList}) ${bodyCode}`;
|
|
4424
|
+
}
|
|
4425
|
+
generateThinArrow(head, rest, context, sexpr) {
|
|
4426
|
+
const [params, body] = rest;
|
|
4427
|
+
const sideEffectOnly = this.nextFunctionIsVoid || false;
|
|
4428
|
+
this.nextFunctionIsVoid = false;
|
|
4429
|
+
const paramList = this.generateParamList(params);
|
|
4430
|
+
const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
|
|
4431
|
+
const isAsync = this.containsAwait(body);
|
|
4432
|
+
const isGenerator = this.containsYield(body);
|
|
4433
|
+
const asyncPrefix = isAsync ? "async " : "";
|
|
4434
|
+
const generatorSuffix = isGenerator ? "*" : "";
|
|
4435
|
+
const fnCode = `${asyncPrefix}function${generatorSuffix}(${paramList}) ${bodyCode}`;
|
|
4436
|
+
return context === "value" ? `(${fnCode})` : fnCode;
|
|
4437
|
+
}
|
|
4438
|
+
generateFatArrow(head, rest, context, sexpr) {
|
|
4439
|
+
const [params, body] = rest;
|
|
4440
|
+
const sideEffectOnly = this.nextFunctionIsVoid || false;
|
|
4441
|
+
this.nextFunctionIsVoid = false;
|
|
4442
|
+
const paramList = this.generateParamList(params);
|
|
4443
|
+
const isSingleSimpleParam = params.length === 1 && typeof params[0] === "string" && !paramList.includes("=") && !paramList.includes("...") && !paramList.includes("[") && !paramList.includes("{");
|
|
4444
|
+
const paramSyntax = isSingleSimpleParam ? paramList : `(${paramList})`;
|
|
4445
|
+
const isAsync = this.containsAwait(body);
|
|
4446
|
+
const asyncPrefix = isAsync ? "async " : "";
|
|
4447
|
+
if (!sideEffectOnly) {
|
|
4448
|
+
if (Array.isArray(body) && body[0] === "block" && body.length === 2) {
|
|
4449
|
+
const expr = body[1];
|
|
4450
|
+
if (!Array.isArray(expr) || expr[0] !== "return") {
|
|
4451
|
+
return `${asyncPrefix}${paramSyntax} => ${this.generate(expr, "value")}`;
|
|
6131
4452
|
}
|
|
6132
|
-
return `txt(${this.generate(sexpr, "value")})`;
|
|
6133
4453
|
}
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
return this.generateH(head, [], rest);
|
|
6137
|
-
}
|
|
6138
|
-
if (Array.isArray(head) && head[0] === ".") {
|
|
6139
|
-
if (head.length === 3 && head[2] == "__cx__") {
|
|
6140
|
-
const baseTag = head[1];
|
|
6141
|
-
let tag2, classes2;
|
|
6142
|
-
if (Array.isArray(baseTag) && baseTag[0] === ".") {
|
|
6143
|
-
({ tag: tag2, classes: classes2 } = this.collectTemplateClasses(baseTag));
|
|
6144
|
-
} else {
|
|
6145
|
-
tag2 = baseTag;
|
|
6146
|
-
classes2 = [];
|
|
6147
|
-
}
|
|
6148
|
-
const cxArgsStr = rest.map((arg) => this.generate(arg, "value")).join(", ");
|
|
6149
|
-
return this.generateH(tag2, classes2, [], cxArgsStr);
|
|
6150
|
-
}
|
|
6151
|
-
const { tag, classes } = this.collectTemplateClasses(head);
|
|
6152
|
-
return this.generateH(tag, classes, rest);
|
|
6153
|
-
}
|
|
6154
|
-
if (Array.isArray(head) && Array.isArray(head[0]) && head[0][0] === "." && head[0][2] == "__cx__") {
|
|
6155
|
-
const propAccess = head[0];
|
|
6156
|
-
const cxArgs = head.slice(1);
|
|
6157
|
-
const baseTag = propAccess[1];
|
|
6158
|
-
let tag, classes;
|
|
6159
|
-
if (Array.isArray(baseTag) && baseTag[0] === ".") {
|
|
6160
|
-
({ tag, classes } = this.collectTemplateClasses(baseTag));
|
|
6161
|
-
} else {
|
|
6162
|
-
tag = baseTag;
|
|
6163
|
-
classes = [];
|
|
6164
|
-
}
|
|
6165
|
-
const cxArgsStr = cxArgs.map((arg) => this.generate(arg, "value")).join(", ");
|
|
6166
|
-
return this.generateH(tag, classes, rest, cxArgsStr);
|
|
6167
|
-
}
|
|
6168
|
-
return `txt(${this.generate(sexpr, "value")})`;
|
|
6169
|
-
}
|
|
6170
|
-
parseTemplateArgs(args, tag) {
|
|
6171
|
-
const props = {};
|
|
6172
|
-
const spreads = [];
|
|
6173
|
-
const children = [];
|
|
6174
|
-
let refVar = null;
|
|
6175
|
-
for (const arg of args) {
|
|
6176
|
-
if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
|
|
6177
|
-
const block = arg[2];
|
|
6178
|
-
if (Array.isArray(block) && block[0] === "block") {
|
|
6179
|
-
children.push(...block.slice(1).map((s) => this.generateTemplateElement(s)));
|
|
6180
|
-
} else {
|
|
6181
|
-
children.push(this.generateTemplateElement(block));
|
|
6182
|
-
}
|
|
6183
|
-
} else if (Array.isArray(arg) && arg[0] === "...") {
|
|
6184
|
-
spreads.push(this.generate(arg[1], "value"));
|
|
6185
|
-
} else if (Array.isArray(arg) && arg[0] === "object") {
|
|
6186
|
-
const inputType = CodeGenerator.extractInputType(arg.slice(1));
|
|
6187
|
-
for (const pair of arg.slice(1)) {
|
|
6188
|
-
if (Array.isArray(pair) && pair.length >= 2) {
|
|
6189
|
-
const [key2, value] = pair;
|
|
6190
|
-
const bindInfo = this.parseBindingDirective(key2, value, tag, inputType);
|
|
6191
|
-
if (bindInfo) {
|
|
6192
|
-
props[bindInfo.prop] = bindInfo.valueExpr;
|
|
6193
|
-
props[bindInfo.event] = bindInfo.handler;
|
|
6194
|
-
continue;
|
|
6195
|
-
}
|
|
6196
|
-
const eventInfo = this.parseEventHandler(key2, value);
|
|
6197
|
-
if (eventInfo) {
|
|
6198
|
-
const handler = eventInfo.modifiers.length > 0 ? this.wrapEventHandler(eventInfo.handler, eventInfo.modifiers) : eventInfo.handler;
|
|
6199
|
-
props[`on${eventInfo.eventName}`] = handler;
|
|
6200
|
-
} else {
|
|
6201
|
-
const keyStr = typeof key2 === "string" ? key2 : this.generate(key2, "value");
|
|
6202
|
-
if (keyStr === "ref") {
|
|
6203
|
-
refVar = typeof value === "string" ? value : this.generate(value, "value");
|
|
6204
|
-
} else if (keyStr === "key") {
|
|
6205
|
-
props.key = this.generate(value, "value");
|
|
6206
|
-
} else if (keyStr === "class") {
|
|
6207
|
-
props.class = this.generate(value, "value");
|
|
6208
|
-
} else {
|
|
6209
|
-
props[keyStr] = this.generate(value, "value");
|
|
6210
|
-
}
|
|
6211
|
-
}
|
|
6212
|
-
}
|
|
6213
|
-
}
|
|
6214
|
-
} else if (typeof arg === "string") {
|
|
6215
|
-
if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
|
|
6216
|
-
children.push(arg);
|
|
6217
|
-
} else {
|
|
6218
|
-
children.push(`String(${arg})`);
|
|
6219
|
-
}
|
|
6220
|
-
} else {
|
|
6221
|
-
children.push(this.generateTemplateElement(arg));
|
|
4454
|
+
if (!Array.isArray(body) || body[0] !== "block") {
|
|
4455
|
+
return `${asyncPrefix}${paramSyntax} => ${this.generate(body, "value")}`;
|
|
6222
4456
|
}
|
|
6223
4457
|
}
|
|
6224
|
-
|
|
4458
|
+
const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
|
|
4459
|
+
return `${asyncPrefix}${paramSyntax} => ${bodyCode}`;
|
|
6225
4460
|
}
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
const hasClass = classExpr !== null;
|
|
6230
|
-
if (!hasProps && !hasSpreads && !hasClass) {
|
|
6231
|
-
return "0";
|
|
4461
|
+
generateReturn(head, rest, context, sexpr) {
|
|
4462
|
+
if (rest.length === 0) {
|
|
4463
|
+
return "return";
|
|
6232
4464
|
}
|
|
6233
|
-
|
|
6234
|
-
if (
|
|
6235
|
-
|
|
4465
|
+
let [expr] = rest;
|
|
4466
|
+
if (this.sideEffectOnly) {
|
|
4467
|
+
return "return";
|
|
4468
|
+
}
|
|
4469
|
+
if (Array.isArray(expr) && expr[0] === "unless") {
|
|
4470
|
+
const [, condition, body] = expr;
|
|
4471
|
+
const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
4472
|
+
return `if (!${this.generate(condition, "value")}) return ${this.generate(value, "value")}`;
|
|
6236
4473
|
}
|
|
6237
|
-
|
|
6238
|
-
|
|
4474
|
+
if (Array.isArray(expr) && expr[0] === "if") {
|
|
4475
|
+
const [, condition, body, ...elseParts] = expr;
|
|
4476
|
+
if (elseParts.length === 0) {
|
|
4477
|
+
const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
4478
|
+
return `if (${this.generate(condition, "value")}) return ${this.generate(value, "value")}`;
|
|
4479
|
+
}
|
|
6239
4480
|
}
|
|
6240
|
-
|
|
6241
|
-
|
|
4481
|
+
if (Array.isArray(expr) && expr[0] === "new" && Array.isArray(expr[1]) && expr[1][0] === "unless") {
|
|
4482
|
+
const [, unlessNode] = expr;
|
|
4483
|
+
const [, condition, body] = unlessNode;
|
|
4484
|
+
const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
4485
|
+
return `if (!${this.generate(condition, "value")}) return ${this.generate(["new", value], "value")}`;
|
|
6242
4486
|
}
|
|
6243
|
-
return `
|
|
4487
|
+
return `return ${this.generate(expr, "value")}`;
|
|
6244
4488
|
}
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
const { props, spreads, children, refVar } = this.parseTemplateArgs(args, tag);
|
|
6255
|
-
const tagStr = classes.length > 0 ? `${tag}.${classes.join(".")}` : tag;
|
|
6256
|
-
const classExpr = cxArgs ? `cx(${cxArgs})` : null;
|
|
6257
|
-
const propsStr = this.buildPropsString(props, spreads, classExpr);
|
|
6258
|
-
const childrenStr = this.buildChildrenString(children);
|
|
6259
|
-
let result = `h('${tagStr}', ${propsStr}${childrenStr})`;
|
|
6260
|
-
if (refVar) {
|
|
6261
|
-
result = `(${refVar} = ${result})`;
|
|
6262
|
-
}
|
|
6263
|
-
return result;
|
|
4489
|
+
generateState(head, rest, context, sexpr) {
|
|
4490
|
+
const [name, expr] = rest;
|
|
4491
|
+
this.usesReactivity = true;
|
|
4492
|
+
const varName = typeof name === "string" ? name : name.valueOf();
|
|
4493
|
+
const exprCode = this.generate(expr, "value");
|
|
4494
|
+
if (!this.reactiveVars)
|
|
4495
|
+
this.reactiveVars = new Set;
|
|
4496
|
+
this.reactiveVars.add(varName);
|
|
4497
|
+
return `const ${varName} = __state(${exprCode})`;
|
|
6264
4498
|
}
|
|
6265
|
-
|
|
6266
|
-
const
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
|
|
6275
|
-
|
|
6276
|
-
|
|
6277
|
-
|
|
6278
|
-
|
|
6279
|
-
const
|
|
6280
|
-
const cond = this.generate(condition, "value");
|
|
6281
|
-
const condExpr = head === "unless" ? `!(${cond})` : cond;
|
|
6282
|
-
let actualThen = thenBlock;
|
|
6283
|
-
if (Array.isArray(thenBlock) && thenBlock.length === 1 && Array.isArray(thenBlock[0]) && thenBlock[0][0] !== "block") {
|
|
6284
|
-
actualThen = thenBlock[0];
|
|
6285
|
-
}
|
|
6286
|
-
const thenCode = this.generateTemplateElement(actualThen);
|
|
6287
|
-
if (elseBlock) {
|
|
6288
|
-
let actualElse = elseBlock;
|
|
6289
|
-
if (Array.isArray(elseBlock) && elseBlock.length === 1 && Array.isArray(elseBlock[0]) && elseBlock[0][0] !== "block") {
|
|
6290
|
-
actualElse = elseBlock[0];
|
|
6291
|
-
}
|
|
6292
|
-
return `(${condExpr} ? ${thenCode} : ${this.generateTemplateElement(actualElse)})`;
|
|
6293
|
-
}
|
|
6294
|
-
return `(${condExpr} ? ${thenCode} : null)`;
|
|
6295
|
-
}
|
|
6296
|
-
generateTemplateLoop(sexpr) {
|
|
6297
|
-
const [head] = sexpr;
|
|
6298
|
-
if (head === "for-in")
|
|
6299
|
-
return this.generateTemplateForIn(sexpr);
|
|
6300
|
-
if (head === "for-of")
|
|
6301
|
-
return this.generateTemplateForOf(sexpr);
|
|
6302
|
-
return "null";
|
|
4499
|
+
generateComputed(head, rest, context, sexpr) {
|
|
4500
|
+
const [name, expr] = rest;
|
|
4501
|
+
this.usesReactivity = true;
|
|
4502
|
+
if (!this.reactiveVars)
|
|
4503
|
+
this.reactiveVars = new Set;
|
|
4504
|
+
const varName = typeof name === "string" ? name : name.valueOf();
|
|
4505
|
+
this.reactiveVars.add(varName);
|
|
4506
|
+
const exprCode = this.generate(expr, "value");
|
|
4507
|
+
return `const ${varName} = __computed(() => ${exprCode})`;
|
|
4508
|
+
}
|
|
4509
|
+
generateReadonly(head, rest, context, sexpr) {
|
|
4510
|
+
const [name, expr] = rest;
|
|
4511
|
+
const varName = typeof name === "string" ? name : name.valueOf();
|
|
4512
|
+
const exprCode = this.generate(expr, "value");
|
|
4513
|
+
return `const ${varName} = ${exprCode}`;
|
|
6303
4514
|
}
|
|
6304
|
-
|
|
6305
|
-
const [,
|
|
6306
|
-
|
|
6307
|
-
|
|
6308
|
-
|
|
6309
|
-
|
|
6310
|
-
|
|
6311
|
-
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
|
|
4515
|
+
generateEffect(head, rest, context, sexpr) {
|
|
4516
|
+
const [target, body] = rest;
|
|
4517
|
+
this.usesReactivity = true;
|
|
4518
|
+
let bodyCode;
|
|
4519
|
+
if (Array.isArray(body) && body[0] === "block") {
|
|
4520
|
+
const statements = body.slice(1);
|
|
4521
|
+
const stmts = this.withIndent(() => this.formatStatements(statements));
|
|
4522
|
+
bodyCode = `{
|
|
4523
|
+
${stmts.join(`
|
|
4524
|
+
`)}
|
|
4525
|
+
${this.indent()}}`;
|
|
4526
|
+
} else if (Array.isArray(body) && (body[0] === "->" || body[0] === "=>")) {
|
|
4527
|
+
const fnCode = this.generate(body, "value");
|
|
4528
|
+
if (target) {
|
|
4529
|
+
const varName = typeof target === "string" ? target : this.generate(target, "value");
|
|
4530
|
+
return `const ${varName} = __effect(${fnCode})`;
|
|
4531
|
+
}
|
|
4532
|
+
return `__effect(${fnCode})`;
|
|
4533
|
+
} else {
|
|
4534
|
+
bodyCode = `{ ${this.generate(body, "value")}; }`;
|
|
4535
|
+
}
|
|
4536
|
+
const effectCode = `__effect(() => ${bodyCode})`;
|
|
4537
|
+
if (target) {
|
|
4538
|
+
const varName = typeof target === "string" ? target : this.generate(target, "value");
|
|
4539
|
+
return `const ${varName} = ${effectCode}`;
|
|
4540
|
+
}
|
|
4541
|
+
return effectCode;
|
|
6323
4542
|
}
|
|
6324
4543
|
generateBreak(head, rest, context, sexpr) {
|
|
6325
4544
|
return "break";
|
|
@@ -6912,7 +5131,7 @@ ${this.indent()}}`;
|
|
|
6912
5131
|
}
|
|
6913
5132
|
const [key2, value, operator] = pair;
|
|
6914
5133
|
let keyCode;
|
|
6915
|
-
if (Array.isArray(key2) && key2[0] === "
|
|
5134
|
+
if (Array.isArray(key2) && key2[0] === "dynamicKey") {
|
|
6916
5135
|
const expr = key2[1];
|
|
6917
5136
|
keyCode = `[${this.generate(expr, "value")}]`;
|
|
6918
5137
|
} else {
|
|
@@ -8933,24 +7152,19 @@ ${this.indent()}}`;
|
|
|
8933
7152
|
// A minimal, fine-grained reactivity system
|
|
8934
7153
|
//
|
|
8935
7154
|
// Reactivity:
|
|
8936
|
-
//
|
|
8937
|
-
// __computed(fn) -
|
|
7155
|
+
// __state(value) - Reactive state container
|
|
7156
|
+
// __computed(fn) - Computed value (lazy, cached)
|
|
8938
7157
|
// __effect(fn) - Side effect that re-runs when dependencies change
|
|
8939
7158
|
// __batch(fn) - Group multiple updates into one flush
|
|
8940
7159
|
// __readonly(value) - Immutable value wrapper
|
|
8941
7160
|
//
|
|
8942
|
-
// Context API:
|
|
8943
|
-
// setContext(key, value) - Set context in current component
|
|
8944
|
-
// getContext(key) - Get context from nearest ancestor
|
|
8945
|
-
// hasContext(key) - Check if context exists
|
|
8946
|
-
//
|
|
8947
7161
|
// Error Handling:
|
|
8948
|
-
// __catchErrors(fn)
|
|
8949
|
-
// __handleError(
|
|
7162
|
+
// __catchErrors(fn) - Wrap function to route errors to handler
|
|
7163
|
+
// __handleError(err) - Route error to handler
|
|
8950
7164
|
//
|
|
8951
7165
|
// How reactivity works:
|
|
8952
|
-
// - Reading a
|
|
8953
|
-
// - Writing to a
|
|
7166
|
+
// - Reading a state/computed inside an effect tracks it as a dependency
|
|
7167
|
+
// - Writing to a state notifies all subscribers
|
|
8954
7168
|
// - Batching defers effect execution until the batch completes
|
|
8955
7169
|
// ============================================================================
|
|
8956
7170
|
|
|
@@ -8959,14 +7173,14 @@ let __currentEffect = null; // The effect/computed currently being evaluated
|
|
|
8959
7173
|
let __pendingEffects = new Set(); // Effects queued to run
|
|
8960
7174
|
let __batching = false; // Are we inside a batch()?
|
|
8961
7175
|
|
|
8962
|
-
// Flush all pending effects (called after
|
|
7176
|
+
// Flush all pending effects (called after state updates, or at end of batch)
|
|
8963
7177
|
function __flushEffects() {
|
|
8964
7178
|
const effects = [...__pendingEffects];
|
|
8965
7179
|
__pendingEffects.clear();
|
|
8966
7180
|
for (const effect of effects) effect.run();
|
|
8967
7181
|
}
|
|
8968
7182
|
|
|
8969
|
-
// Shared primitive coercion (used by
|
|
7183
|
+
// Shared primitive coercion (used by state and computed)
|
|
8970
7184
|
const __primitiveCoercion = {
|
|
8971
7185
|
valueOf() { return this.value; },
|
|
8972
7186
|
toString() { return String(this.value); },
|
|
@@ -8974,59 +7188,59 @@ const __primitiveCoercion = {
|
|
|
8974
7188
|
};
|
|
8975
7189
|
|
|
8976
7190
|
/**
|
|
8977
|
-
* Create a reactive
|
|
7191
|
+
* Create a reactive state container
|
|
8978
7192
|
* @param {*} initialValue - The initial value
|
|
8979
|
-
* @returns {object}
|
|
7193
|
+
* @returns {object} State with .value getter/setter
|
|
8980
7194
|
*/
|
|
8981
|
-
function
|
|
7195
|
+
function __state(initialValue) {
|
|
8982
7196
|
let value = initialValue;
|
|
8983
|
-
const subscribers = new Set(); // Effects/computeds that depend on this
|
|
8984
|
-
|
|
7197
|
+
const subscribers = new Set(); // Effects/computeds that depend on this state
|
|
7198
|
+
|
|
8985
7199
|
// State flags
|
|
8986
7200
|
let notifying = false; // Prevents re-entry during notification
|
|
8987
7201
|
let locked = false; // Prevents writes (used during SSR/hydration)
|
|
8988
|
-
let dead = false; //
|
|
7202
|
+
let dead = false; // State has been killed (cleanup)
|
|
8989
7203
|
|
|
8990
|
-
const
|
|
7204
|
+
const state = {
|
|
8991
7205
|
get value() {
|
|
8992
7206
|
if (dead) return value;
|
|
8993
|
-
// Track this
|
|
7207
|
+
// Track this state as a dependency of the current effect/computed
|
|
8994
7208
|
if (__currentEffect) {
|
|
8995
7209
|
subscribers.add(__currentEffect);
|
|
8996
7210
|
__currentEffect.dependencies.add(subscribers);
|
|
8997
7211
|
}
|
|
8998
7212
|
return value;
|
|
8999
7213
|
},
|
|
9000
|
-
|
|
7214
|
+
|
|
9001
7215
|
set value(newValue) {
|
|
9002
7216
|
// Skip if: dead, locked, same value, or already notifying
|
|
9003
7217
|
if (dead || locked || newValue === value || notifying) return;
|
|
9004
7218
|
value = newValue;
|
|
9005
7219
|
notifying = true;
|
|
9006
|
-
|
|
7220
|
+
|
|
9007
7221
|
// Notify subscribers: computeds mark dirty, effects get queued
|
|
9008
7222
|
for (const sub of subscribers) {
|
|
9009
7223
|
if (sub.markDirty) sub.markDirty(); // Computed
|
|
9010
7224
|
else __pendingEffects.add(sub); // Effect
|
|
9011
7225
|
}
|
|
9012
|
-
|
|
7226
|
+
|
|
9013
7227
|
// Flush immediately unless we're batching
|
|
9014
7228
|
if (!__batching) __flushEffects();
|
|
9015
7229
|
notifying = false;
|
|
9016
7230
|
},
|
|
9017
|
-
|
|
7231
|
+
|
|
9018
7232
|
read() { return value; }, // Read without tracking
|
|
9019
|
-
lock() { locked = true; return
|
|
9020
|
-
free() { subscribers.clear(); return
|
|
7233
|
+
lock() { locked = true; return state; }, // Prevent further writes
|
|
7234
|
+
free() { subscribers.clear(); return state; }, // Clear all subscribers
|
|
9021
7235
|
kill() { dead = true; subscribers.clear(); return value; }, // Cleanup
|
|
9022
|
-
|
|
7236
|
+
|
|
9023
7237
|
...__primitiveCoercion
|
|
9024
7238
|
};
|
|
9025
|
-
return
|
|
7239
|
+
return state;
|
|
9026
7240
|
}
|
|
9027
7241
|
|
|
9028
7242
|
/**
|
|
9029
|
-
* Create a computed value (
|
|
7243
|
+
* Create a computed value (lazy & cached)
|
|
9030
7244
|
* @param {function} fn - Function that computes the value
|
|
9031
7245
|
* @returns {object} Computed with .value getter
|
|
9032
7246
|
*/
|
|
@@ -9034,14 +7248,14 @@ function __computed(fn) {
|
|
|
9034
7248
|
let value;
|
|
9035
7249
|
let dirty = true; // Needs recomputation?
|
|
9036
7250
|
const subscribers = new Set(); // Things that depend on this computed
|
|
9037
|
-
|
|
7251
|
+
|
|
9038
7252
|
// State flags
|
|
9039
7253
|
let locked = false; // Prevents recomputation
|
|
9040
7254
|
let dead = false; // Computed has been killed
|
|
9041
7255
|
|
|
9042
7256
|
const computed = {
|
|
9043
|
-
dependencies: new Set(), //
|
|
9044
|
-
|
|
7257
|
+
dependencies: new Set(), // States/computeds this depends on
|
|
7258
|
+
|
|
9045
7259
|
// Called by dependencies when they change
|
|
9046
7260
|
markDirty() {
|
|
9047
7261
|
if (dead || locked || dirty) return;
|
|
@@ -9052,7 +7266,7 @@ function __computed(fn) {
|
|
|
9052
7266
|
else __pendingEffects.add(sub);
|
|
9053
7267
|
}
|
|
9054
7268
|
},
|
|
9055
|
-
|
|
7269
|
+
|
|
9056
7270
|
get value() {
|
|
9057
7271
|
if (dead) return value;
|
|
9058
7272
|
// Track this computed as a dependency
|
|
@@ -9073,7 +7287,7 @@ function __computed(fn) {
|
|
|
9073
7287
|
}
|
|
9074
7288
|
return value;
|
|
9075
7289
|
},
|
|
9076
|
-
|
|
7290
|
+
|
|
9077
7291
|
read() { return value; }, // Return cached value without tracking or recomputing
|
|
9078
7292
|
lock() { locked = true; computed.value; return computed; }, // Lock after computing
|
|
9079
7293
|
free() {
|
|
@@ -9088,7 +7302,7 @@ function __computed(fn) {
|
|
|
9088
7302
|
computed.free();
|
|
9089
7303
|
return result;
|
|
9090
7304
|
},
|
|
9091
|
-
|
|
7305
|
+
|
|
9092
7306
|
...__primitiveCoercion
|
|
9093
7307
|
};
|
|
9094
7308
|
return computed;
|
|
@@ -9101,8 +7315,8 @@ function __computed(fn) {
|
|
|
9101
7315
|
*/
|
|
9102
7316
|
function __effect(fn) {
|
|
9103
7317
|
const effect = {
|
|
9104
|
-
dependencies: new Set(), //
|
|
9105
|
-
|
|
7318
|
+
dependencies: new Set(), // States/computeds this effect depends on
|
|
7319
|
+
|
|
9106
7320
|
run() {
|
|
9107
7321
|
// Clear old dependencies before re-running
|
|
9108
7322
|
for (const dep of effect.dependencies) dep.delete(effect);
|
|
@@ -9112,13 +7326,13 @@ function __effect(fn) {
|
|
|
9112
7326
|
__currentEffect = effect;
|
|
9113
7327
|
try { fn(); } finally { __currentEffect = prev; }
|
|
9114
7328
|
},
|
|
9115
|
-
|
|
7329
|
+
|
|
9116
7330
|
dispose() {
|
|
9117
7331
|
for (const dep of effect.dependencies) dep.delete(effect);
|
|
9118
7332
|
effect.dependencies.clear();
|
|
9119
7333
|
}
|
|
9120
7334
|
};
|
|
9121
|
-
|
|
7335
|
+
|
|
9122
7336
|
effect.run(); // Run immediately to establish dependencies
|
|
9123
7337
|
return () => effect.dispose();
|
|
9124
7338
|
}
|
|
@@ -9149,76 +7363,14 @@ function __readonly(value) {
|
|
|
9149
7363
|
}
|
|
9150
7364
|
|
|
9151
7365
|
// ============================================================================
|
|
9152
|
-
//
|
|
9153
|
-
//
|
|
9154
|
-
//
|
|
9155
|
-
// Usage:
|
|
9156
|
-
// // In parent component constructor or methods:
|
|
9157
|
-
// setContext('theme', { dark: true })
|
|
9158
|
-
//
|
|
9159
|
-
// // In any descendant component:
|
|
9160
|
-
// theme = getContext('theme')
|
|
9161
|
-
// ============================================================================
|
|
9162
|
-
|
|
9163
|
-
let __currentComponent = null; // The component currently being initialized
|
|
9164
|
-
|
|
9165
|
-
/**
|
|
9166
|
-
* Set a context value in the current component
|
|
9167
|
-
* @param {*} key - The context key (usually a string or symbol)
|
|
9168
|
-
* @param {*} value - The value to store
|
|
9169
|
-
*/
|
|
9170
|
-
function setContext(key, value) {
|
|
9171
|
-
if (!__currentComponent) {
|
|
9172
|
-
throw new Error('setContext must be called during component initialization');
|
|
9173
|
-
}
|
|
9174
|
-
if (!__currentComponent._context) {
|
|
9175
|
-
__currentComponent._context = new Map();
|
|
9176
|
-
}
|
|
9177
|
-
__currentComponent._context.set(key, value);
|
|
9178
|
-
}
|
|
9179
|
-
|
|
9180
|
-
/**
|
|
9181
|
-
* Get a context value from the nearest ancestor that set it
|
|
9182
|
-
* @param {*} key - The context key to look up
|
|
9183
|
-
* @returns {*} The context value, or undefined if not found
|
|
9184
|
-
*/
|
|
9185
|
-
function getContext(key) {
|
|
9186
|
-
let component = __currentComponent;
|
|
9187
|
-
while (component) {
|
|
9188
|
-
if (component._context && component._context.has(key)) {
|
|
9189
|
-
return component._context.get(key);
|
|
9190
|
-
}
|
|
9191
|
-
component = component._parent;
|
|
9192
|
-
}
|
|
9193
|
-
return undefined;
|
|
9194
|
-
}
|
|
9195
|
-
|
|
9196
|
-
/**
|
|
9197
|
-
* Check if a context key exists in any ancestor
|
|
9198
|
-
* @param {*} key - The context key to check
|
|
9199
|
-
* @returns {boolean} True if the key exists
|
|
9200
|
-
*/
|
|
9201
|
-
function hasContext(key) {
|
|
9202
|
-
let component = __currentComponent;
|
|
9203
|
-
while (component) {
|
|
9204
|
-
if (component._context && component._context.has(key)) return true;
|
|
9205
|
-
component = component._parent;
|
|
9206
|
-
}
|
|
9207
|
-
return false;
|
|
9208
|
-
}
|
|
9209
|
-
|
|
9210
|
-
// ============================================================================
|
|
9211
|
-
// Error Boundaries
|
|
9212
|
-
// Catch and handle errors in component trees gracefully
|
|
9213
|
-
//
|
|
9214
|
-
// Usage in component:
|
|
9215
|
-
// error: (err) -> console.error "Caught:", err
|
|
7366
|
+
// Error Handling
|
|
7367
|
+
// Catch and handle errors gracefully
|
|
9216
7368
|
// ============================================================================
|
|
9217
7369
|
|
|
9218
|
-
let __errorHandler = null; // Current error handler
|
|
7370
|
+
let __errorHandler = null; // Current error handler
|
|
9219
7371
|
|
|
9220
7372
|
/**
|
|
9221
|
-
* Set the current error handler
|
|
7373
|
+
* Set the current error handler
|
|
9222
7374
|
* @param {function} handler - Error handler function
|
|
9223
7375
|
* @returns {function} Previous handler (for restoration)
|
|
9224
7376
|
*/
|
|
@@ -9336,8 +7488,8 @@ function compileToJS(source, options = {}) {
|
|
|
9336
7488
|
return new Compiler(options).compileToJS(source);
|
|
9337
7489
|
}
|
|
9338
7490
|
// src/browser.js
|
|
9339
|
-
var VERSION = "2.
|
|
9340
|
-
var BUILD_DATE = "2026-
|
|
7491
|
+
var VERSION = "2.7.1";
|
|
7492
|
+
var BUILD_DATE = "2026-02-03@10:57:35GMT";
|
|
9341
7493
|
var dedent = (s) => {
|
|
9342
7494
|
const m = s.match(/^[ \t]*(?=\S)/gm);
|
|
9343
7495
|
const i = Math.min(...(m || []).map((x) => x.length));
|