From 8641e3b363c9e2877d96424f789a24298df249ed Mon Sep 17 00:00:00 2001 From: crc Date: Wed, 16 Sep 2020 14:37:30 +0000 Subject: [PATCH] io:file-operation renamed to file:operation FossilOrigin-Name: dd5471ed91faa50a790a5334f40432ecb7b0af24ca3266a59f033c57d2db937b --- RELEASE-NOTES | 2 + doc/Glossary-Concise.txt | 6 +- doc/Glossary-Names-and-Stack.txt | 2 +- doc/Glossary.html | 14 +- doc/Glossary.txt | 22 +- doc/words.tsv | 2 +- interface/filesystem.retro | 38 +- vm/nga-c/retro-image.c | 586 +++++++++++++++---------------- 8 files changed, 338 insertions(+), 334 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index e578149..55812dc 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -27,3 +27,5 @@ Unix - sys:name (now script:name) - sys:argc (now script:arguments) - sys:argv (now script:get-argument) +- renamed + - io:file-operation (now file:operation) diff --git a/doc/Glossary-Concise.txt b/doc/Glossary-Concise.txt index 6d4f7ca..769eeac 100644 --- a/doc/Glossary-Concise.txt +++ b/doc/Glossary-Concise.txt @@ -871,6 +871,9 @@ Open a file for reading. Returns the size (NOS) and a file ID (TOS) file:open-for-writing D: s-n A: - F: - Open a file for writing. Returns the file ID +file:operation D: ...n- A: - F: - +Trigger a file I/O operation. This is not intended to be used directly. + file:read D: h-c A: - F: - Given a file handle, read and return the next character in it. @@ -940,9 +943,6 @@ Trigger a clock operation. This is not intended to be used directly. io:enumerate D: -n A: - F: - Return the number of I/O devices. -io:file-operation D: ...n- A: - F: - -Trigger a file I/O operation. This is not intended to be used directly. - io:float-operation D: ...n- A: - F: - Trigger a floating point operation. This is not intended to be used directly. diff --git a/doc/Glossary-Names-and-Stack.txt b/doc/Glossary-Names-and-Stack.txt index b194541..bd9f970 100644 --- a/doc/Glossary-Names-and-Stack.txt +++ b/doc/Glossary-Names-and-Stack.txt @@ -289,6 +289,7 @@ file:open D: sm-h A: - F: - file:open-for-append D: s-nn A: - F: - file:open-for-reading D: s-nn A: - F: - file:open-for-writing D: s-n A: - F: - +file:operation D: ...n- A: - F: - file:read D: h-c A: - F: - file:read-line D: f-s A: - F: - file:seek D: nh- A: - F: - @@ -312,7 +313,6 @@ indexed-times D: nq- A: - F: - interpret D: s- A: - F: - io:clock-operation D: ...n- A: - F: - io:enumerate D: -n A: - F: - -io:file-operation D: ...n- A: - F: - io:float-operation D: ...n- A: - F: - io:invoke D: n- A: - F: - io:query D: n-mN A: - F: - diff --git a/doc/Glossary.html b/doc/Glossary.html index bdefde6..cee39d0 100644 --- a/doc/Glossary.html +++ b/doc/Glossary.html @@ -2171,6 +2171,13 @@

Open a file for writing. Returns the file ID

Class: class:word
Namespace: file
Interface Layer: rre

+

file:operation

+

Data: ...n-
+Addr: -
+Float: -

+
+

Trigger a file I/O operation. This is not intended to be used directly.

+
Class: class:word
Namespace: file
Interface Layer: rre

file:read

Data: h-c
Addr: -
@@ -2346,13 +2353,6 @@

Return the number of I/O devices.

Class: class:word
Namespace: io
Interface Layer: all

-

io:file-operation

-

Data: ...n-
-Addr: -
-Float: -

-
-

Trigger a file I/O operation. This is not intended to be used directly.

-
Class: class:word
Namespace: io
Interface Layer: rre

io:float-operation

Data: ...n-
Addr: -
diff --git a/doc/Glossary.txt b/doc/Glossary.txt index 8b54fdb..0b1225b 100644 --- a/doc/Glossary.txt +++ b/doc/Glossary.txt @@ -3361,6 +3361,17 @@ Open a file for writing. Returns the file ID Class: class:word | Namespace: file | Interface Layer: rre ------------------------------------------------------------------------ +file:operation + + Data: ...n- + Addr: - + Float: - + +Trigger a file I/O operation. This is not intended to be used directly. + +Class: class:word | Namespace: file | Interface Layer: rre +------------------------------------------------------------------------ + file:read Data: h-c @@ -3631,17 +3642,6 @@ Return the number of I/O devices. Class: class:word | Namespace: io | Interface Layer: all ------------------------------------------------------------------------ -io:file-operation - - Data: ...n- - Addr: - - Float: - - -Trigger a file I/O operation. This is not intended to be used directly. - -Class: class:word | Namespace: io | Interface Layer: rre ------------------------------------------------------------------------- - io:float-operation Data: ...n- diff --git a/doc/words.tsv b/doc/words.tsv index 3787ab7..67a456f 100644 --- a/doc/words.tsv +++ b/doc/words.tsv @@ -289,6 +289,7 @@ file:open sm-h - - Open a named file (s) with the given mode (m). Returns a hand file:open-for-append s-nn - - Open a file for reading & writing. Returns the size (NOS) and a file ID (TOS) class:word {n/a} {n/a} file rre file:open-for-reading s-nn - - Open a file for reading. Returns the size (NOS) and a file ID (TOS) class:word {n/a} {n/a} file rre file:open-for-writing s-n - - Open a file for writing. Returns the file ID class:word {n/a} {n/a} file rre +file:operation ...n- - - Trigger a file I/O operation. This is not intended to be used directly. class:word {n/a} {n/a} file rre file:read h-c - - Given a file handle, read and return the next character in it. class:word {n/a} {n/a} file rre file:read-line f-s - - Given a file handle, read a line and return a pointer to it. class:word {n/a} {n/a} file rre file:seek nh- - - Move the current offset into a file to the specified one. class:word {n/a} {n/a} file rre @@ -312,7 +313,6 @@ indexed-times nq- - - Run a quote the specified number of times, tracking the lo interpret s- - - Interpret a single input token. class:word '#100 interpret\n 'words interpret {n/a} global all io:clock-operation ...n- - - Trigger a clock operation. This is not intended to be used directly. class:word {n/a} {n/a} io rre io:enumerate -n - - Return the number of I/O devices. class:word {n/a} {n/a} io all -io:file-operation ...n- - - Trigger a file I/O operation. This is not intended to be used directly. class:word {n/a} {n/a} io rre io:float-operation ...n- - - Trigger a floating point operation. This is not intended to be used directly. class:word {n/a} {n/a} io rre io:invoke n- - - Invoke an interaction with an I/O device. class:word {n/a} {n/a} io all io:query n-mN - - Ask an I/O device to identify itself. Returns a version (m) and device ID (N). class:word {n/a} {n/a} io all diff --git a/interface/filesystem.retro b/interface/filesystem.retro index edf2832..1cbd55c 100644 --- a/interface/filesystem.retro +++ b/interface/filesystem.retro @@ -1,5 +1,12 @@ # File I/O +The file device (device type 4) adds support for generic file I/O +that is similar to the C standard library on Unix. On a Unix host +these are very thin wrappers over fopen(), fclose(), etc. For non +Unix hosts, implementing these may take much more work, and it may +be preferable to design a file I/O device that models the host +expectations. + ~~~ {{ 'Files var @@ -9,16 +16,10 @@ [ drop 'IO_DEVICE_TYPE_0004_NOT_FOUND s:put nl ] [ !Files ] choose ] if ; ---reveal--- - :io:file-operation identify @Files io:invoke ; + :file:operation identify @Files io:invoke ; }} ~~~ -This implements words for interfacing with the POSIX file I/O words if -you are using an interface supporting them. All of these are in the -`file:` namespace. - -These are pretty much direct wrappers for fopen(), fclose(), etc. - First up, constants for the file modes. | # | Used For | @@ -35,59 +36,59 @@ First up, constants for the file modes. #3 'file:R+ const ~~~ -For opening a file, provide the file name and mode. This will return a -number identifying the file handle. +For opening a file, provide the file name and mode. This will return +a number identifying the file handle. ~~~ -:file:open (sm-h) #0 io:file-operation ; +:file:open (sm-h) #0 file:operation ; ~~~ Given a file handle, close the file. ~~~ -:file:close (h-) #1 io:file-operation ; +:file:close (h-) #1 file:operation ; ~~~ Given a file handle, read a character. ~~~ -:file:read (h-c) #2 io:file-operation ; +:file:read (h-c) #2 file:operation ; ~~~ Write a character to an open file. ~~~ -:file:write (ch-) #3 io:file-operation ; +:file:write (ch-) #3 file:operation ; ~~~ Return the current pointer within a file. ~~~ -:file:tell (h-n) #4 io:file-operation ; +:file:tell (h-n) #4 file:operation ; ~~~ Move the file pointer to the specified location. ~~~ -:file:seek (nh-) #5 io:file-operation ; +:file:seek (nh-) #5 file:operation ; ~~~ Return the size of the opened file. ~~~ -:file:size (h-n) #6 io:file-operation ; +:file:size (h-n) #6 file:operation ; ~~~ Given a file name, delete the file. ~~~ -:file:delete (s-) #7 io:file-operation ; +:file:delete (s-) #7 file:operation ; ~~~ Flush pending writes to disk. ~~~ -:file:flush (f-) #8 io:file-operation ; +:file:flush (f-) #8 file:operation ; ~~~ Given a file name, return `TRUE` if it exists or `FALSE` otherwise. @@ -99,6 +100,7 @@ Given a file name, return `TRUE` if it exists or `FALSE` otherwise. [ drop FALSE ] choose ; ~~~ + ~~~ :file:open (s-nn) file:R file:open dup file:size swap ; diff --git a/vm/nga-c/retro-image.c b/vm/nga-c/retro-image.c index 585d8e4..61f4a8c 100644 --- a/vm/nga-c/retro-image.c +++ b/vm/nga-c/retro-image.c @@ -2,8 +2,8 @@ #ifndef CELL #define CELL int32_t #endif -CELL ngaImageCells = 15169; -CELL ngaImage[] = { 1793,14582,15126,15168,202010,0,10,1,10,2,10,3,10,4,10,5,10,6,10, +CELL ngaImageCells = 15166; +CELL ngaImage[] = { 1793,14579,15123,15165,202010,0,10,1,10,2,10,3,10,4,10,5,10,6,10, 7,10,8,10,9,10,10,11,10,12,10,13,10,14,10,15,10,16,10,17, 10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,68223234,1,2575, 85000450,1,656912,139,138,268505089,63,62,135205121,63,10,101384453,0,9,10,2049,56,25,459011,74, @@ -12,7 +12,7 @@ CELL ngaImage[] = { 1793,14582,15126,15168,202010,0,10,1,10,2,10,3,10,4,10,5,10, 2049,112,117506307,0,105,0,524545,25,110,168820993,0,124,1642241,124,134283523,7,110,1793,105,7, 524545,2049,105,1793,105,16846593,124,139,138,1793,64,16846593,124,110,138,1793,64,7,10,659713, 1,659713,2,659713,3,1793,166,17108737,3,2,524559,105,2049,105,2049,105,2049,119,168820998,2, - 13755,1025,167841793,179,5,17826049,0,179,2,15,25,524546,162,134287105,180,93,2305,181,459023,189, + 13752,1025,167841793,179,5,17826049,0,179,2,15,25,524546,162,134287105,180,93,2305,181,459023,189, 134287361,180,184,659201,179,2049,56,25,84152833,48,286458116,10,459014,204,184618754,45,25,16974851,-1,168886532, 1,134284289,1,213,134284289,0,204,660227,32,0,0,112,114,101,102,105,120,58,105,0, 285278479,230,7,2576,524546,79,1641217,1,167838467,227,2049,243,2049,239,524545,230,199,17826050,229,0, @@ -160,7 +160,7 @@ CELL ngaImage[] = { 1793,14582,15126,15168,202010,0,10,1,10,2,10,3,10,4,10,5,10, 983556,1793,3087,1,21,2049,2100,10,1,3082,2049,2100,4100,10,3065,3105,144,118,58,117, 112,100,97,116,101,0,4,1793,3112,15,4,8,10,1,3108,2049,2110,16,10,3093, 3126,144,99,111,112,121,0,1793,3135,285278725,1,33951492,268767489,1,6,10,1,3128,2049,2275, - 771,10,3118,3154,144,83,99,111,112,101,76,105,115,116,0,15032,15084,10,3141,3163, + 771,10,3118,3154,144,83,99,111,112,101,76,105,115,116,0,15029,15081,10,3141,3163, 144,123,123,0,2049,1570,2,1,3154,2049,59,16,10,3157,3188,144,45,45,45,114, 101,118,101,97,108,45,45,45,0,2049,1570,1,3154,2049,2890,16,10,3172,3202,144, 125,125,0,1,3154,2049,56,4,15,11,1793,3216,3841,3154,4097,2,10,1,3211,1793, @@ -473,292 +473,292 @@ CELL ngaImage[] = { 1793,14582,15126,15168,202010,0,10,1,10,2,10,3,10,4,10,5,10, 9401,1,4,2049,9139,2,2049,2562,1793,9389,3,2049,3646,73,79,32,68,69,86,73, 67,69,32,84,89,80,69,32,48,48,48,52,32,78,79,84,32,70,79,85, 78,68,0,1,9352,2049,9235,2049,9198,10,1,9349,1793,9396,4097,9321,10,1,9393,2049, - 64,10,1,9340,9,10,9295,9426,144,105,111,58,102,105,108,101,45,111,112,101, - 114,97,116,105,111,110,0,2049,9334,3841,9321,2049,9122,10,9405,0,131,102,105,108, - 101,58,82,0,9433,1,131,102,105,108,101,58,87,0,9443,2,131,102,105,108, - 101,58,65,0,9453,3,131,102,105,108,101,58,82,43,0,9463,9487,144,102,105, - 108,101,58,111,112,101,110,0,1,0,2049,9426,10,9474,9506,144,102,105,108,101, - 58,99,108,111,115,101,0,1,1,2049,9426,10,9492,9524,144,102,105,108,101,58, - 114,101,97,100,0,1,2,2049,9426,10,9511,9543,144,102,105,108,101,58,119,114, - 105,116,101,0,1,3,2049,9426,10,9529,9561,144,102,105,108,101,58,116,101,108, - 108,0,1,4,2049,9426,10,9548,9579,144,102,105,108,101,58,115,101,101,107,0, - 1,5,2049,9426,10,9566,9597,144,102,105,108,101,58,115,105,122,101,0,1,6, - 2049,9426,10,9584,9617,144,102,105,108,101,58,100,101,108,101,116,101,0,1,7, - 2049,9426,10,9602,9636,144,102,105,108,101,58,102,108,117,115,104,0,1,8,2049, - 9426,10,9622,9657,144,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0, - 2049,9487,2,2049,2543,1793,9671,2049,9506,2049,2350,10,1,9666,1793,9679,3,2049,2362,10, - 1,9675,2049,64,10,9641,9710,144,102,105,108,101,58,111,112,101,110,60,102,111, - 114,45,114,101,97,100,105,110,103,62,0,1,0,2049,9487,2,2049,9597,4,10, - 9684,9744,144,102,105,108,101,58,111,112,101,110,60,102,111,114,45,97,112,112, - 101,110,100,62,0,1,2,2049,9487,2,2049,9597,4,10,9719,9779,144,102,105,108, - 101,58,111,112,101,110,60,102,111,114,45,119,114,105,116,105,110,103,62,0, - 1,1,2049,9487,10,9753,9809,144,102,105,108,101,58,111,112,101,110,45,102,111, - 114,45,114,101,97,100,105,110,103,0,1,0,2049,9487,2,2049,9597,4,10,9784, - 9842,144,102,105,108,101,58,111,112,101,110,45,102,111,114,45,97,112,112,101, - 110,100,0,1,2,2049,9487,2,2049,9597,4,10,9818,9876,144,102,105,108,101,58, - 111,112,101,110,45,102,111,114,45,119,114,105,116,105,110,103,0,1,1,2049, - 9487,10,9851,9888,131,70,73,68,0,0,9881,9897,131,83,105,122,101,0,0,9889, - 9908,131,65,99,116,105,111,110,0,0,9898,9919,131,66,117,102,102,101,114,0, - 0,9909,9929,144,45,101,111,102,63,0,3841,9888,2049,9561,3841,9897,13,10,9920,9949, - 144,112,114,101,115,101,114,118,101,0,1,9888,1793,9960,1,9897,1,21,2049,3079, - 10,1,9953,2049,3079,10,9851,9983,144,102,105,108,101,58,114,101,97,100,45,108, - 105,110,101,0,4097,9888,1793,10040,2049,1874,2,4097,9919,2049,3428,1793,10032,3841,9888,2049, - 9524,2,2049,3336,1793,10009,1,13,11,10,1,10005,1793,10017,1,10,11,10,1,10013, - 1793,10025,1,0,11,10,1,10021,2049,2159,22,22,10,1,9996,2049,2250,2049,3360,3, - 10,1,9987,2049,3452,3841,9919,10,9965,10069,144,102,105,108,101,58,102,111,114,45, - 101,97,99,104,45,108,105,110,101,0,1793,10100,4097,9908,2049,9809,4097,9888,4097,9897, - 1793,10091,3841,9888,2049,9983,3841,9908,8,2049,9929,10,1,10081,2049,2227,3841,9888,2049,9506, - 10,1,10071,2049,9949,10,10047,10112,131,70,73,68,0,0,10047,10127,144,102,105,108, - 101,58,115,108,117,114,112,0,1793,10154,4,2049,3428,2049,9809,4097,10112,1793,10145,3841, - 10112,2049,9524,2049,3336,10,1,10138,2049,2275,3841,10112,2049,9506,10,1,10129,2049,3452,10, - 10113,10172,144,102,105,108,101,58,115,112,101,119,0,2049,9876,4,1793,10181,67502597,2049, - 9543,10,1,10177,2049,3870,2049,9506,10,10159,10195,131,70,80,85,0,0,10188,10208,144, - 105,100,101,110,116,105,102,121,0,3841,10195,2049,2527,1793,10275,1,2,2049,9139,2, - 2049,2562,1793,10263,3,2049,3646,73,79,32,68,69,86,73,67,69,32,84,89,80, - 69,32,48,48,48,50,32,78,79,84,32,70,79,85,78,68,0,1,10226,2049, - 9235,2049,9198,10,1,10223,1793,10270,4097,10195,10,1,10267,2049,64,10,1,10214,9,10, - 10159,10301,144,105,111,58,102,108,111,97,116,45,111,112,101,114,97,116,105,111, - 110,0,2049,10208,3841,10195,2049,9122,10,10279,10322,144,110,58,116,111,45,102,108,111, - 97,116,0,1,0,2049,10301,10,10308,10341,144,115,58,116,111,45,102,108,111,97, - 116,0,1,1,2049,10301,10,10327,10361,144,102,58,116,111,45,110,117,109,98,101, - 114,0,1,2,2049,10301,10,10346,10381,144,102,58,116,111,45,115,116,114,105,110, - 103,0,2049,3627,2,1,3,2049,10301,10,10366,10396,144,102,58,43,0,1,4,2049, - 10301,10,10389,10408,144,102,58,45,0,1,5,2049,10301,10,10401,10420,144,102,58,42, - 0,1,6,2049,10301,10,10413,10432,144,102,58,47,0,1,7,2049,10301,10,10425,10448, - 144,102,58,102,108,111,111,114,0,1,8,2049,10301,10,10437,10466,144,102,58,99, - 101,105,108,105,110,103,0,1,9,2049,10301,10,10453,10481,144,102,58,115,113,114, - 116,0,1,10,2049,10301,10,10471,10495,144,102,58,101,113,63,0,1,11,2049,10301, - 10,10486,10510,144,102,58,45,101,113,63,0,1,12,2049,10301,10,10500,10524,144,102, - 58,108,116,63,0,1,13,2049,10301,10,10515,10538,144,102,58,103,116,63,0,1, - 14,2049,10301,10,10529,10554,144,102,58,100,101,112,116,104,0,1,15,2049,10301,10, - 10543,10568,144,102,58,100,117,112,0,1,16,2049,10301,10,10559,10583,144,102,58,100, - 114,111,112,0,1,17,2049,10301,10,10573,10598,144,102,58,115,119,97,112,0,1, - 18,2049,10301,10,10588,10612,144,102,58,108,111,103,0,1,19,2049,10301,10,10603,10628, - 144,102,58,112,111,119,101,114,0,1,20,2049,10301,10,10617,10642,144,102,58,115, - 105,110,0,1,21,2049,10301,10,10633,10656,144,102,58,99,111,115,0,1,22,2049, - 10301,10,10647,10670,144,102,58,116,97,110,0,1,23,2049,10301,10,10661,10685,144,102, - 58,97,115,105,110,0,1,24,2049,10301,10,10675,10700,144,102,58,97,99,111,115, - 0,1,25,2049,10301,10,10690,10715,144,102,58,97,116,97,110,0,1,26,2049,10301, - 10,10705,10730,144,102,58,112,117,115,104,0,1,27,2049,10301,10,10720,10744,144,102, - 58,112,111,112,0,1,28,2049,10301,10,10735,10761,144,102,58,97,100,101,112,116, - 104,0,1,29,2049,10301,10,10749,10778,144,102,58,115,113,117,97,114,101,0,2049, - 10568,2049,10420,10,10766,10793,144,102,58,111,118,101,114,0,2049,10730,2049,10568,2049,10744, - 2049,10598,10,10783,10812,144,102,58,116,117,99,107,0,2049,10568,2049,10730,2049,10598,2049, - 10744,10,10802,10830,144,102,58,110,105,112,0,2049,10598,2049,10583,10,10821,10850,144,102, - 58,100,114,111,112,45,112,97,105,114,0,2049,10583,2049,10583,10,10835,10869,144,102, - 58,100,117,112,45,112,97,105,114,0,2049,10793,2049,10793,10,10855,10883,144,102,58, - 114,111,116,0,2049,10730,2049,10598,2049,10744,2049,10598,10,10874,10907,144,102,58,112,111, - 115,105,116,105,118,101,63,0,1,0,2049,10322,2049,10538,10,10892,10929,144,102,58, - 110,101,103,97,116,105,118,101,63,0,1,0,2049,10322,2049,10524,10,10914,10948,144, - 102,58,110,101,103,97,116,101,0,1,-1,2049,10322,2049,10420,10,10936,10964,144,102, - 58,97,98,115,0,2049,10568,2049,10929,1,10948,9,10,10955,10984,156,112,114,101,102, - 105,120,58,46,0,2049,1815,1,3672,1,3601,2049,64,1,10341,2049,144,10,10972,11006, - 144,102,58,112,117,116,0,2049,10381,2049,9235,10,10997,11019,144,102,58,80,73,0, - 2049,3646,51,46,49,52,49,53,57,50,0,1,11021,2049,10341,10,11011,11042,144,102, - 58,69,0,2049,3646,50,46,55,49,56,50,56,49,0,1,11044,2049,10341,10,11035, - 11067,144,102,58,78,65,78,0,2049,3646,48,0,1,11069,2049,10341,2049,3646,48,0, - 1,11077,2049,10341,2049,10432,10,11058,11095,144,102,58,73,78,70,0,2049,3646,49,46, - 48,0,1,11097,2049,10341,2049,3646,48,0,1,11107,2049,10341,2049,10432,10,11086,11126,144, - 102,58,45,73,78,70,0,2049,3646,45,49,46,48,0,1,11128,2049,10341,2049,3646, - 48,0,1,11139,2049,10341,2049,10432,10,11116,11158,144,102,58,110,97,110,63,0,2049, - 10568,2049,10510,10,11148,11173,144,102,58,105,110,102,63,0,2049,11095,2049,10495,10,11163, - 11189,144,102,58,45,105,110,102,63,0,2049,11126,2049,10495,10,11178,11205,144,102,58, - 114,111,117,110,100,0,2049,10568,2049,10929,1793,11226,2049,3646,48,46,53,0,1,11213, - 2049,10341,2049,10408,2049,10466,10,1,11211,1793,11245,2049,3646,48,46,53,0,1,11232,2049, - 10341,2049,10396,2049,10448,10,1,11230,2049,64,10,11194,11259,144,102,58,109,105,110,0, - 2049,10869,2049,10524,1,10583,1,10830,2049,64,10,11250,11279,144,102,58,109,97,120,0, - 2049,10869,2049,10538,1,10583,1,10830,2049,64,10,11270,11301,144,102,58,108,105,109,105, - 116,0,2049,10598,2049,10730,2049,11259,2049,10744,2049,11279,10,11290,11326,144,102,58,98,101, - 116,119,101,101,110,63,0,2049,10883,2049,10568,2049,10730,2049,10883,2049,10883,2049,11301,2049, - 10744,2049,10495,10,11312,11352,144,102,58,105,110,99,0,2049,3646,49,0,1,11354,2049, - 10341,2049,10396,10,11343,11372,144,102,58,100,101,99,0,2049,3646,49,0,1,11374,2049, - 10341,2049,10408,10,11363,11393,144,102,58,99,97,115,101,0,2049,10793,2049,10495,1793,11405, - 2049,10583,8,1,-1,10,1,11399,1793,11413,3,1,0,10,1,11409,2049,64,25,6, - 771,10,11383,11431,144,102,58,115,105,103,110,0,2049,10568,2049,3646,48,0,1,11435, - 2049,10341,2049,10495,1793,11450,1,0,2049,10583,10,1,11445,2049,2653,2049,3646,48,0,1, - 11456,2049,10341,2049,10538,1793,11469,1,1,10,1,11466,1793,11476,1,-1,10,1,11473,2049, - 64,10,11421,2147483645,131,101,58,77,65,88,0,11481,-2147483645,131,101,58,77,73,78,0, - 11490,-2147483647,131,101,58,78,65,78,0,11499,2147483646,131,101,58,73,78,70,0,11508,-2147483646, - 131,101,58,45,73,78,70,0,11517,11535,144,101,58,110,63,0,1,-2147483645,2049,2890, - 1,2147483645,2049,2903,2049,2921,10,11527,11556,144,101,58,109,97,120,63,0,1,2147483645,11, - 10,11546,11570,144,101,58,109,105,110,63,0,1,-2147483645,11,10,11560,11585,144,101,58, - 122,101,114,111,63,0,2049,2527,10,11574,11598,144,101,58,110,97,110,63,0,1, - -2147483647,11,10,11588,11612,144,101,58,105,110,102,63,0,1,2147483646,11,10,11602,11627,144, - 101,58,45,105,110,102,63,0,1,-2147483646,11,10,11616,11641,144,101,58,99,108,105, - 112,0,1,-2147483645,1,2147483645,2049,2873,10,11631,11656,144,102,58,69,49,0,1793,11658,2049, - 3646,49,46,101,53,0,1,11660,2049,10341,10,11648,11682,144,102,58,45,115,104,105, - 102,116,0,2049,11656,2049,10420,10,11670,11699,144,102,58,43,115,104,105,102,116,0, - 2049,11656,2049,10432,10,11687,11721,144,102,58,115,105,103,110,101,100,45,115,113,114, - 116,0,2049,10568,2049,11431,2049,10964,2049,10481,2049,10322,2049,10420,10,11704,11747,144,102,58, - 43,101,110,99,111,100,101,0,2049,11721,2049,11682,10,11734,11765,144,102,58,45,101, - 110,99,111,100,101,0,2049,10568,2049,11431,2049,11699,2049,10568,2049,10420,2049,10322,2049,10420, - 10,11752,11799,144,102,58,115,105,103,110,101,100,45,115,113,117,97,114,101,0, - 2049,10568,2049,11431,2049,10568,2049,10420,2049,10322,2049,10420,10,11780,11822,144,102,58,116,111, - 45,101,0,2049,10568,2049,11158,1793,11833,2049,10583,1,-2147483647,10,1,11828,2049,2653,2049,10568, - 2049,11173,1793,11848,2049,10583,1,2147483646,10,1,11843,2049,2653,2049,10568,2049,11189,1793,11863,2049, - 10583,1,-2147483646,10,1,11858,2049,2653,2049,11747,2049,11205,2049,10361,2049,11641,1,-2147483645,1793,11882, - 2049,10583,10,1,11879,2049,2373,1,2147483645,1793,11893,2049,10583,10,1,11890,2049,2373,10,11812, - 11908,144,101,58,116,111,45,102,0,1,-2147483647,1793,11915,2049,11067,10,1,11912,2049,2373, - 1,2147483646,1793,11926,2049,11095,10,1,11923,2049,2373,1,-2147483646,1793,11937,2049,11126,10,1,11934, - 2049,2373,2049,10322,2049,11765,10,11898,11957,144,102,58,115,116,111,114,101,0,1793,11962, - 2049,11822,10,1,11959,2049,2100,16,10,11946,11979,144,102,58,102,101,116,99,104,0, - 15,2049,11908,10,11968,11999,144,102,58,100,117,109,112,45,115,116,97,99,107,0, - 2049,10554,2,1,10730,2049,2275,1793,12017,2049,10744,2049,10568,2049,11006,2049,9209,10,1,12008, - 2049,2275,10,11983,12039,144,102,58,100,117,109,112,45,97,115,116,97,99,107,0, - 2049,10761,2,1,10744,2049,2275,1793,12057,2049,10568,2049,11006,2049,9209,2049,10730,10,1,12048, - 2049,2275,10,12022,12071,144,101,58,112,117,116,0,1,2147483645,1793,12088,2049,3646,101,58, - 77,65,88,0,1,12077,2049,9235,10,1,12075,2049,2373,1,-2147483645,1793,12109,2049,3646,101, - 58,77,73,78,0,1,12098,2049,9235,10,1,12096,2049,2373,1,0,1793,12128,2049,3646, - 101,58,48,0,1,12119,2049,9235,10,1,12117,2049,2373,1,-2147483647,1793,12149,2049,3646,101, - 58,78,65,78,0,1,12138,2049,9235,10,1,12136,2049,2373,1,2147483646,1793,12170,2049,3646, - 101,58,73,78,70,0,1,12159,2049,9235,10,1,12157,2049,2373,1,-2147483646,1793,12192,2049, - 3646,101,58,45,73,78,70,0,1,12180,2049,9235,10,1,12178,2049,2373,2049,11908,2049, - 11006,10,12062,12209,131,85,110,105,120,0,0,12201,12222,144,105,100,101,110,116,105, - 102,121,0,3841,12209,2049,2527,1793,12289,1,8,2049,9139,2,2049,2562,1793,12277,3,2049, - 3646,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,56, - 32,78,79,84,32,70,79,85,78,68,0,1,12240,2049,9235,2049,9198,10,1,12237, - 1793,12284,4097,12209,10,1,12281,2049,64,10,1,12228,9,10,12062,12312,144,105,111,58, - 117,110,105,120,45,115,121,115,99,97,108,108,0,2049,12222,3841,12209,2049,9122,10, - 12293,12334,144,117,110,105,120,58,115,121,115,116,101,109,0,1,0,2049,12312,10, - 12319,12352,144,117,110,105,120,58,102,111,114,107,0,1,1,2049,12312,10,12339,12371, - 144,117,110,105,120,58,101,120,101,99,48,0,1,2,2049,12312,10,12357,12390,144, - 117,110,105,120,58,101,120,101,99,49,0,1,3,2049,12312,10,12376,12409,144,117, - 110,105,120,58,101,120,101,99,50,0,1,4,2049,12312,10,12395,12428,144,117,110, - 105,120,58,101,120,101,99,51,0,1,5,2049,12312,10,12414,12446,144,117,110,105, - 120,58,101,120,105,116,0,1,6,2049,12312,10,12433,12466,144,117,110,105,120,58, - 103,101,116,112,105,100,0,1,7,2049,12312,10,12451,12484,144,117,110,105,120,58, - 119,97,105,116,0,1,8,2049,12312,10,12471,12502,144,117,110,105,120,58,107,105, - 108,108,0,1,9,2049,12312,10,12489,12521,144,117,110,105,120,58,112,111,112,101, - 110,0,1,10,2049,12312,10,12507,12541,144,117,110,105,120,58,112,99,108,111,115, - 101,0,1,11,2049,12312,10,12526,12560,144,117,110,105,120,58,99,104,100,105,114, - 0,1,13,2049,12312,10,12546,12580,144,117,110,105,120,58,103,101,116,101,110,118, - 0,1,14,2049,12312,10,12565,12600,144,117,110,105,120,58,112,117,116,101,110,118, - 0,1,15,2049,12312,10,12585,12619,144,117,110,105,120,58,115,108,101,101,112,0, - 1,16,2049,12312,10,12605,12640,144,117,110,105,120,58,103,101,116,45,99,119,100, - 0,2049,3646,112,119,100,0,1,12642,1,0,2049,12521,2,2049,9983,2049,5990,4,2049, - 12541,2049,3646,47,0,1,12662,2049,3852,10,12624,12696,144,117,110,105,120,58,99,111, - 117,110,116,45,102,105,108,101,115,45,105,110,45,99,119,100,0,2049,3646,108, - 115,32,45,49,32,124,32,119,99,32,45,108,0,1,12698,1,0,2049,12521,2, - 2049,9983,2049,5990,2049,220,4,2049,12541,10,12669,12751,144,117,110,105,120,58,102,111, - 114,45,101,97,99,104,45,102,105,108,101,0,2049,3646,108,115,32,45,49,32, - 45,112,0,1,12753,1,0,2049,12521,2049,12696,1793,12786,1793,12781,2049,9983,2049,3601,67502597, - 8,10,1,12774,2049,2110,10,1,12772,2049,2275,2049,12541,3,10,12729,12803,144,115,116, - 97,114,116,0,4,2049,3428,1,0,2049,12521,10,12794,12819,144,114,101,97,100,0, - 2,2049,9524,2,2049,3336,2049,2527,10,12811,12838,144,102,105,110,105,115,104,0,2049, - 12541,2049,3408,10,12729,12862,144,117,110,105,120,58,115,108,117,114,112,45,112,105, - 112,101,0,1793,12878,2049,12803,1793,12871,2049,12819,10,1,12868,2049,2250,2049,12838,10,1, - 12864,2049,3452,10,12843,12889,131,105,111,0,0,12883,12902,144,105,100,101,110,116,105, - 102,121,0,3841,12889,2049,2527,1793,12969,1,10,2049,9139,2,2049,2562,1793,12957,3,2049, - 3646,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,49,48, - 32,78,79,84,32,70,79,85,78,68,0,1,12920,2049,9235,2049,9198,10,1,12917, - 1793,12964,4097,12889,10,1,12961,2049,64,10,1,12908,9,10,12843,12993,144,105,111,58, - 114,110,103,45,111,112,101,114,97,116,105,111,110,0,2049,12902,3841,12889,2049,9122, - 10,12973,13012,144,110,58,114,97,110,100,111,109,0,2049,12993,10,13000,13026,131,83, - 111,99,107,101,116,115,0,0,13015,13039,144,105,100,101,110,116,105,102,121,0, - 3841,13026,2049,2527,1793,13106,1,7,2049,9139,2,2049,2562,1793,13094,3,2049,3646,73,79, - 32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,52,32,78,79, - 84,32,70,79,85,78,68,0,1,13057,2049,9235,2049,9198,10,1,13054,1793,13101,4097, - 13026,10,1,13098,2049,64,10,1,13045,9,10,13000,13133,144,105,111,58,115,111,99, - 107,101,116,45,111,112,101,114,97,116,105,111,110,0,2049,13039,3841,13026,2049,9122, - 10,13110,13164,144,115,111,99,107,101,116,58,103,101,116,104,111,115,116,98,121, - 110,97,109,101,0,1,0,2049,13133,10,13140,13186,144,115,111,99,107,101,116,58, - 99,114,101,97,116,101,0,1,1,2049,13133,10,13169,13206,144,115,111,99,107,101, - 116,58,98,105,110,100,0,1,2,2049,13133,10,13191,13228,144,115,111,99,107,101, - 116,58,108,105,115,116,101,110,0,1,3,2049,13133,10,13211,13250,144,115,111,99, - 107,101,116,58,97,99,99,101,112,116,0,1,4,2049,13133,10,13233,13273,144,115, - 111,99,107,101,116,58,99,111,110,110,101,99,116,0,1,5,2049,13133,10,13255, - 13293,144,115,111,99,107,101,116,58,115,101,110,100,0,1,6,2049,13133,10,13278, - 13313,144,115,111,99,107,101,116,58,114,101,99,118,0,1,8,2049,13133,10,13298, - 13334,144,115,111,99,107,101,116,58,99,108,111,115,101,0,1,10,2049,13133,10, - 13318,13359,144,115,111,99,107,101,116,58,99,111,110,102,105,103,117,114,101,0, - 1,11,2049,13133,10,13339,13377,131,83,99,114,105,112,116,105,110,103,0,7,13364, - 13390,144,105,100,101,110,116,105,102,121,0,3841,13377,2049,2527,1793,13457,1,9,2049, - 9139,2,2049,2562,1793,13445,3,2049,3646,73,79,32,68,69,86,73,67,69,32,84, - 89,80,69,32,48,48,48,57,32,78,79,84,32,70,79,85,78,68,0,1, - 13408,2049,9235,2049,9198,10,1,13405,1793,13452,4097,13377,10,1,13449,2049,64,10,1,13396, - 9,10,13339,13481,144,115,99,114,105,112,116,58,97,114,103,117,109,101,110,116, - 115,0,2049,13390,1,0,3841,13377,2049,9122,10,13461,13513,144,115,99,114,105,112,116, - 58,103,101,116,45,97,114,103,117,109,101,110,116,0,2049,3627,4,2049,13390,1, - 1,3841,13377,2049,9122,10,13490,13536,144,105,110,99,108,117,100,101,0,2049,13390,1, - 2,3841,13377,2049,9122,10,13525,13560,144,115,99,114,105,112,116,58,110,97,109,101, - 0,2049,3627,2049,13390,1,3,3841,13377,2049,9122,10,13545,13594,144,115,99,114,105,112, - 116,58,99,117,114,114,101,110,116,45,102,105,108,101,0,2049,3627,2049,13390,1, - 4,3841,13377,2049,9122,10,13571,13628,144,115,99,114,105,112,116,58,99,117,114,114, - 101,110,116,45,108,105,110,101,0,2049,13390,1,5,3841,13377,2049,9122,10,13605,13661, - 144,115,99,114,105,112,116,58,105,103,110,111,114,101,45,116,111,45,101,111, - 108,0,2049,13390,1,6,3841,13377,2049,9122,10,13637,13694,144,115,99,114,105,112,116, - 58,97,98,111,114,116,45,105,110,99,108,117,100,101,0,2049,13390,1,7,3841, - 13377,2049,9122,10,13670,13715,144,115,121,115,58,97,114,103,99,0,2049,13481,10,13703, - 13730,144,115,121,115,58,97,114,103,118,0,2049,13513,10,13718,13745,144,115,121,115, - 58,110,97,109,101,0,2049,13560,10,13733,1024,131,84,73,66,0,13748,13769,144,105, - 109,97,103,101,58,115,97,118,101,0,1,1000,2049,9139,2049,9122,10,13755,13788,131, - 75,101,121,98,111,97,114,100,0,0,13776,13801,144,105,100,101,110,116,105,102, - 121,0,3841,13788,2049,2527,1793,13868,1,1,2049,9139,2,2049,2562,1793,13856,3,2049,3646, - 73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,49,32, - 78,79,84,32,70,79,85,78,68,0,1,13819,2049,9235,2049,9198,10,1,13816,1793, - 13863,4097,13788,10,1,13860,2049,64,10,1,13807,9,10,13755,13881,144,99,58,103,101, - 116,0,2049,13801,3841,13788,2049,9122,10,13872,13898,144,103,97,116,104,101,114,0,2, - 1793,13905,1,8,11,10,1,13901,1793,13913,1,127,11,10,1,13909,2049,2122,22,1, - 11,1,3336,2049,64,10,13888,13934,144,99,121,99,108,101,0,2049,13881,2049,2090,4, - 8,2049,2459,25,3,2049,13898,1,13934,7,10,13872,13965,144,112,97,114,115,101,45, - 117,110,116,105,108,0,1793,13977,2049,3627,2049,3428,2049,13934,771,2049,3302,10,1,13967, - 2049,3452,10,13950,13991,144,115,58,103,101,116,0,1793,14013,1793,13999,1,10,11,10, - 1,13995,1793,14007,1,13,11,10,1,14003,2049,2122,22,10,1,13993,2049,13965,10,13982, - 14032,144,115,58,103,101,116,45,119,111,114,100,0,1,5592,2049,13965,10,14018,14046, - 144,99,108,101,97,114,0,1,27,2049,9185,2049,3646,91,50,74,0,1,14052,2049, - 9235,1,27,2049,9185,2049,3646,91,48,59,48,72,0,1,14066,2049,9235,10,14037,14087, - 131,78,111,69,99,104,111,0,0,14077,14095,144,98,121,101,0,1,0,2049,12446, - 10,14088,14107,131,69,79,84,0,0,14100,14120,131,73,103,110,111,114,105,110,103, - 0,0,14108,14134,144,105,103,110,111,114,105,110,103,63,0,3841,14120,10,14121,14148, - 144,118,101,114,115,105,111,110,0,3841,4,1,100,20,10,14137,14163,144,100,111, - 110,101,63,0,2,4097,14107,1793,14172,1,13,11,10,1,14168,1793,14180,1,10,11, - 10,1,14176,1793,14188,1,32,11,10,1,14184,2049,2159,22,22,10,14154,14203,144,101, - 111,108,63,0,3841,14107,1793,14211,1,13,11,10,1,14207,1793,14219,1,10,11,10, - 1,14215,2049,2122,22,10,14195,14235,144,118,97,108,105,100,63,0,2,2049,79,2049, - 2609,10,14225,14254,144,99,104,101,99,107,45,101,111,102,0,2,1793,14261,1,-1, - 11,10,1,14257,1793,14269,1,4,11,10,1,14265,2049,2122,22,1,14095,9,10,14241, - 14284,144,98,115,0,2049,3360,2049,3360,771,10,14278,14302,144,99,104,101,99,107,45, - 98,115,0,2,1793,14309,1,8,11,10,1,14305,1793,14317,1,127,11,10,1,14313, - 2049,2122,22,1,14284,9,10,14290,14335,144,99,104,101,99,107,0,2049,14254,2049,14302, - 10,14326,14353,144,99,104,97,114,97,99,116,101,114,0,2049,13881,2,2049,3336,10, - 14340,14369,144,98,117,102,102,101,114,0,1793,14379,1,1024,2049,3428,8,2049,3302,10, - 1,14371,2049,3452,10,14359,14398,144,114,101,97,100,45,116,111,107,101,110,0,1793, - 14414,1793,14409,2049,14353,2049,14335,2049,14163,10,1,14402,2049,2250,10,1,14400,2049,14369,2049, - 3724,10,14384,14430,144,105,110,112,117,116,0,2049,14398,2049,14235,10,14421,14446,144,112, - 114,111,99,101,115,115,0,2049,14134,1793,14464,771,2049,14203,1793,14460,1,14120,2049,3047, - 10,1,14455,9,10,1,14450,2049,2653,1,367,1,11,2049,64,10,14088,14481,156,47, - 47,0,2049,13661,1,14120,2049,3034,10,14475,14498,144,98,97,110,110,101,114,0,2049, - 14148,2049,3646,82,69,84,82,79,32,49,50,32,40,37,110,46,37,110,41,92, - 110,0,1,14502,2049,7212,2049,9235,2049,1543,2049,1874,18,2049,1874,2049,1543,2049,3646,37, - 110,32,77,97,120,44,32,37,110,32,85,115,101,100,44,32,37,110,32,70, - 114,101,101,92,110,0,1,14538,2049,7212,2049,9235,10,14488,14582,144,108,105,115,116, - 101,110,0,3841,14087,1793,14589,2049,14498,10,1,14586,2049,70,2049,14430,2049,14446,1,14593, - 7,10,14572,14610,131,67,108,111,99,107,0,0,14601,14623,144,105,100,101,110,116, - 105,102,121,0,3841,14610,2049,2527,1793,14690,1,5,2049,9139,2,2049,2562,1793,14678,3, - 2049,3646,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48, - 53,32,78,79,84,32,70,79,85,78,68,0,1,14641,2049,9235,2049,9198,10,1, - 14638,1793,14685,4097,14610,10,1,14682,2049,64,10,1,14629,9,10,14572,14716,144,105,111, - 58,99,108,111,99,107,45,111,112,101,114,97,116,105,111,110,0,2049,14623,3841, - 14610,2049,9122,10,14694,14742,144,99,108,111,99,107,58,116,105,109,101,115,116,97, - 109,112,0,1,0,2049,14716,10,14723,14760,144,99,108,111,99,107,58,100,97,121, - 0,1,1,2049,14716,10,14747,14780,144,99,108,111,99,107,58,109,111,110,116,104, - 0,1,2,2049,14716,10,14765,14799,144,99,108,111,99,107,58,121,101,97,114,0, - 1,3,2049,14716,10,14785,14818,144,99,108,111,99,107,58,104,111,117,114,0,1, - 4,2049,14716,10,14804,14839,144,99,108,111,99,107,58,109,105,110,117,116,101,0, - 1,5,2049,14716,10,14823,14860,144,99,108,111,99,107,58,115,101,99,111,110,100, - 0,1,6,2049,14716,10,14844,14882,144,99,108,111,99,107,58,117,116,99,58,100, - 97,121,0,1,7,2049,14716,10,14865,14906,144,99,108,111,99,107,58,117,116,99, - 58,109,111,110,116,104,0,1,8,2049,14716,10,14887,14929,144,99,108,111,99,107, - 58,117,116,99,58,121,101,97,114,0,1,9,2049,14716,10,14911,14952,144,99,108, - 111,99,107,58,117,116,99,58,104,111,117,114,0,1,10,2049,14716,10,14934,14977, - 144,99,108,111,99,107,58,117,116,99,58,109,105,110,117,116,101,0,1,11, - 2049,14716,10,14957,15002,144,99,108,111,99,107,58,117,116,99,58,115,101,99,111, - 110,100,0,1,12,2049,14716,10,14982,15018,144,100,58,119,111,114,100,115,0,1793, - 15027,2049,162,2049,9235,2049,9209,10,1,15020,2049,7441,10,15007,15048,144,100,58,119,111, - 114,100,115,45,119,105,116,104,0,2049,1874,2049,4648,1793,15079,2049,162,2,2049,1874, - 2049,4162,1793,15068,2049,9235,2049,9209,10,1,15063,1793,15074,3,10,1,15072,2049,64,10, - 1,15054,2049,7441,10,15032,15103,144,100,105,115,112,108,97,121,45,105,102,45,108, - 101,102,116,0,2,2049,1874,2049,4598,1793,15115,2049,9235,2049,9209,10,1,15110,1793,15121, - 3,10,1,15119,2049,64,10,15032,15152,144,100,58,119,111,114,100,115,45,98,101, - 103,105,110,110,105,110,103,45,119,105,116,104,0,2049,1874,2049,4648,1793,15163,2049, - 162,2049,15103,10,1,15158,2049,7441,10,0 }; + 64,10,1,9340,9,10,9295,9423,144,102,105,108,101,58,111,112,101,114,97,116, + 105,111,110,0,2049,9334,3841,9321,2049,9122,10,9405,0,131,102,105,108,101,58,82, + 0,9430,1,131,102,105,108,101,58,87,0,9440,2,131,102,105,108,101,58,65, + 0,9450,3,131,102,105,108,101,58,82,43,0,9460,9484,144,102,105,108,101,58, + 111,112,101,110,0,1,0,2049,9423,10,9471,9503,144,102,105,108,101,58,99,108, + 111,115,101,0,1,1,2049,9423,10,9489,9521,144,102,105,108,101,58,114,101,97, + 100,0,1,2,2049,9423,10,9508,9540,144,102,105,108,101,58,119,114,105,116,101, + 0,1,3,2049,9423,10,9526,9558,144,102,105,108,101,58,116,101,108,108,0,1, + 4,2049,9423,10,9545,9576,144,102,105,108,101,58,115,101,101,107,0,1,5,2049, + 9423,10,9563,9594,144,102,105,108,101,58,115,105,122,101,0,1,6,2049,9423,10, + 9581,9614,144,102,105,108,101,58,100,101,108,101,116,101,0,1,7,2049,9423,10, + 9599,9633,144,102,105,108,101,58,102,108,117,115,104,0,1,8,2049,9423,10,9619, + 9654,144,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0,2049,9484,2, + 2049,2543,1793,9668,2049,9503,2049,2350,10,1,9663,1793,9676,3,2049,2362,10,1,9672,2049, + 64,10,9638,9707,144,102,105,108,101,58,111,112,101,110,60,102,111,114,45,114, + 101,97,100,105,110,103,62,0,1,0,2049,9484,2,2049,9594,4,10,9681,9741,144, + 102,105,108,101,58,111,112,101,110,60,102,111,114,45,97,112,112,101,110,100, + 62,0,1,2,2049,9484,2,2049,9594,4,10,9716,9776,144,102,105,108,101,58,111, + 112,101,110,60,102,111,114,45,119,114,105,116,105,110,103,62,0,1,1,2049, + 9484,10,9750,9806,144,102,105,108,101,58,111,112,101,110,45,102,111,114,45,114, + 101,97,100,105,110,103,0,1,0,2049,9484,2,2049,9594,4,10,9781,9839,144,102, + 105,108,101,58,111,112,101,110,45,102,111,114,45,97,112,112,101,110,100,0, + 1,2,2049,9484,2,2049,9594,4,10,9815,9873,144,102,105,108,101,58,111,112,101, + 110,45,102,111,114,45,119,114,105,116,105,110,103,0,1,1,2049,9484,10,9848, + 9885,131,70,73,68,0,0,9878,9894,131,83,105,122,101,0,0,9886,9905,131,65, + 99,116,105,111,110,0,0,9895,9916,131,66,117,102,102,101,114,0,0,9906,9926, + 144,45,101,111,102,63,0,3841,9885,2049,9558,3841,9894,13,10,9917,9946,144,112,114, + 101,115,101,114,118,101,0,1,9885,1793,9957,1,9894,1,21,2049,3079,10,1,9950, + 2049,3079,10,9848,9980,144,102,105,108,101,58,114,101,97,100,45,108,105,110,101, + 0,4097,9885,1793,10037,2049,1874,2,4097,9916,2049,3428,1793,10029,3841,9885,2049,9521,2,2049, + 3336,1793,10006,1,13,11,10,1,10002,1793,10014,1,10,11,10,1,10010,1793,10022,1, + 0,11,10,1,10018,2049,2159,22,22,10,1,9993,2049,2250,2049,3360,3,10,1,9984, + 2049,3452,3841,9916,10,9962,10066,144,102,105,108,101,58,102,111,114,45,101,97,99, + 104,45,108,105,110,101,0,1793,10097,4097,9905,2049,9806,4097,9885,4097,9894,1793,10088,3841, + 9885,2049,9980,3841,9905,8,2049,9926,10,1,10078,2049,2227,3841,9885,2049,9503,10,1,10068, + 2049,9946,10,10044,10109,131,70,73,68,0,0,10044,10124,144,102,105,108,101,58,115, + 108,117,114,112,0,1793,10151,4,2049,3428,2049,9806,4097,10109,1793,10142,3841,10109,2049,9521, + 2049,3336,10,1,10135,2049,2275,3841,10109,2049,9503,10,1,10126,2049,3452,10,10110,10169,144, + 102,105,108,101,58,115,112,101,119,0,2049,9873,4,1793,10178,67502597,2049,9540,10,1, + 10174,2049,3870,2049,9503,10,10156,10192,131,70,80,85,0,0,10185,10205,144,105,100,101, + 110,116,105,102,121,0,3841,10192,2049,2527,1793,10272,1,2,2049,9139,2,2049,2562,1793, + 10260,3,2049,3646,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48, + 48,48,50,32,78,79,84,32,70,79,85,78,68,0,1,10223,2049,9235,2049,9198, + 10,1,10220,1793,10267,4097,10192,10,1,10264,2049,64,10,1,10211,9,10,10156,10298,144, + 105,111,58,102,108,111,97,116,45,111,112,101,114,97,116,105,111,110,0,2049, + 10205,3841,10192,2049,9122,10,10276,10319,144,110,58,116,111,45,102,108,111,97,116,0, + 1,0,2049,10298,10,10305,10338,144,115,58,116,111,45,102,108,111,97,116,0,1, + 1,2049,10298,10,10324,10358,144,102,58,116,111,45,110,117,109,98,101,114,0,1, + 2,2049,10298,10,10343,10378,144,102,58,116,111,45,115,116,114,105,110,103,0,2049, + 3627,2,1,3,2049,10298,10,10363,10393,144,102,58,43,0,1,4,2049,10298,10,10386, + 10405,144,102,58,45,0,1,5,2049,10298,10,10398,10417,144,102,58,42,0,1,6, + 2049,10298,10,10410,10429,144,102,58,47,0,1,7,2049,10298,10,10422,10445,144,102,58, + 102,108,111,111,114,0,1,8,2049,10298,10,10434,10463,144,102,58,99,101,105,108, + 105,110,103,0,1,9,2049,10298,10,10450,10478,144,102,58,115,113,114,116,0,1, + 10,2049,10298,10,10468,10492,144,102,58,101,113,63,0,1,11,2049,10298,10,10483,10507, + 144,102,58,45,101,113,63,0,1,12,2049,10298,10,10497,10521,144,102,58,108,116, + 63,0,1,13,2049,10298,10,10512,10535,144,102,58,103,116,63,0,1,14,2049,10298, + 10,10526,10551,144,102,58,100,101,112,116,104,0,1,15,2049,10298,10,10540,10565,144, + 102,58,100,117,112,0,1,16,2049,10298,10,10556,10580,144,102,58,100,114,111,112, + 0,1,17,2049,10298,10,10570,10595,144,102,58,115,119,97,112,0,1,18,2049,10298, + 10,10585,10609,144,102,58,108,111,103,0,1,19,2049,10298,10,10600,10625,144,102,58, + 112,111,119,101,114,0,1,20,2049,10298,10,10614,10639,144,102,58,115,105,110,0, + 1,21,2049,10298,10,10630,10653,144,102,58,99,111,115,0,1,22,2049,10298,10,10644, + 10667,144,102,58,116,97,110,0,1,23,2049,10298,10,10658,10682,144,102,58,97,115, + 105,110,0,1,24,2049,10298,10,10672,10697,144,102,58,97,99,111,115,0,1,25, + 2049,10298,10,10687,10712,144,102,58,97,116,97,110,0,1,26,2049,10298,10,10702,10727, + 144,102,58,112,117,115,104,0,1,27,2049,10298,10,10717,10741,144,102,58,112,111, + 112,0,1,28,2049,10298,10,10732,10758,144,102,58,97,100,101,112,116,104,0,1, + 29,2049,10298,10,10746,10775,144,102,58,115,113,117,97,114,101,0,2049,10565,2049,10417, + 10,10763,10790,144,102,58,111,118,101,114,0,2049,10727,2049,10565,2049,10741,2049,10595,10, + 10780,10809,144,102,58,116,117,99,107,0,2049,10565,2049,10727,2049,10595,2049,10741,10,10799, + 10827,144,102,58,110,105,112,0,2049,10595,2049,10580,10,10818,10847,144,102,58,100,114, + 111,112,45,112,97,105,114,0,2049,10580,2049,10580,10,10832,10866,144,102,58,100,117, + 112,45,112,97,105,114,0,2049,10790,2049,10790,10,10852,10880,144,102,58,114,111,116, + 0,2049,10727,2049,10595,2049,10741,2049,10595,10,10871,10904,144,102,58,112,111,115,105,116, + 105,118,101,63,0,1,0,2049,10319,2049,10535,10,10889,10926,144,102,58,110,101,103, + 97,116,105,118,101,63,0,1,0,2049,10319,2049,10521,10,10911,10945,144,102,58,110, + 101,103,97,116,101,0,1,-1,2049,10319,2049,10417,10,10933,10961,144,102,58,97,98, + 115,0,2049,10565,2049,10926,1,10945,9,10,10952,10981,156,112,114,101,102,105,120,58, + 46,0,2049,1815,1,3672,1,3601,2049,64,1,10338,2049,144,10,10969,11003,144,102,58, + 112,117,116,0,2049,10378,2049,9235,10,10994,11016,144,102,58,80,73,0,2049,3646,51, + 46,49,52,49,53,57,50,0,1,11018,2049,10338,10,11008,11039,144,102,58,69,0, + 2049,3646,50,46,55,49,56,50,56,49,0,1,11041,2049,10338,10,11032,11064,144,102, + 58,78,65,78,0,2049,3646,48,0,1,11066,2049,10338,2049,3646,48,0,1,11074,2049, + 10338,2049,10429,10,11055,11092,144,102,58,73,78,70,0,2049,3646,49,46,48,0,1, + 11094,2049,10338,2049,3646,48,0,1,11104,2049,10338,2049,10429,10,11083,11123,144,102,58,45, + 73,78,70,0,2049,3646,45,49,46,48,0,1,11125,2049,10338,2049,3646,48,0,1, + 11136,2049,10338,2049,10429,10,11113,11155,144,102,58,110,97,110,63,0,2049,10565,2049,10507, + 10,11145,11170,144,102,58,105,110,102,63,0,2049,11092,2049,10492,10,11160,11186,144,102, + 58,45,105,110,102,63,0,2049,11123,2049,10492,10,11175,11202,144,102,58,114,111,117, + 110,100,0,2049,10565,2049,10926,1793,11223,2049,3646,48,46,53,0,1,11210,2049,10338,2049, + 10405,2049,10463,10,1,11208,1793,11242,2049,3646,48,46,53,0,1,11229,2049,10338,2049,10393, + 2049,10445,10,1,11227,2049,64,10,11191,11256,144,102,58,109,105,110,0,2049,10866,2049, + 10521,1,10580,1,10827,2049,64,10,11247,11276,144,102,58,109,97,120,0,2049,10866,2049, + 10535,1,10580,1,10827,2049,64,10,11267,11298,144,102,58,108,105,109,105,116,0,2049, + 10595,2049,10727,2049,11256,2049,10741,2049,11276,10,11287,11323,144,102,58,98,101,116,119,101, + 101,110,63,0,2049,10880,2049,10565,2049,10727,2049,10880,2049,10880,2049,11298,2049,10741,2049,10492, + 10,11309,11349,144,102,58,105,110,99,0,2049,3646,49,0,1,11351,2049,10338,2049,10393, + 10,11340,11369,144,102,58,100,101,99,0,2049,3646,49,0,1,11371,2049,10338,2049,10405, + 10,11360,11390,144,102,58,99,97,115,101,0,2049,10790,2049,10492,1793,11402,2049,10580,8, + 1,-1,10,1,11396,1793,11410,3,1,0,10,1,11406,2049,64,25,6,771,10,11380, + 11428,144,102,58,115,105,103,110,0,2049,10565,2049,3646,48,0,1,11432,2049,10338,2049, + 10492,1793,11447,1,0,2049,10580,10,1,11442,2049,2653,2049,3646,48,0,1,11453,2049,10338, + 2049,10535,1793,11466,1,1,10,1,11463,1793,11473,1,-1,10,1,11470,2049,64,10,11418, + 2147483645,131,101,58,77,65,88,0,11478,-2147483645,131,101,58,77,73,78,0,11487,-2147483647,131, + 101,58,78,65,78,0,11496,2147483646,131,101,58,73,78,70,0,11505,-2147483646,131,101,58, + 45,73,78,70,0,11514,11532,144,101,58,110,63,0,1,-2147483645,2049,2890,1,2147483645,2049, + 2903,2049,2921,10,11524,11553,144,101,58,109,97,120,63,0,1,2147483645,11,10,11543,11567, + 144,101,58,109,105,110,63,0,1,-2147483645,11,10,11557,11582,144,101,58,122,101,114, + 111,63,0,2049,2527,10,11571,11595,144,101,58,110,97,110,63,0,1,-2147483647,11,10, + 11585,11609,144,101,58,105,110,102,63,0,1,2147483646,11,10,11599,11624,144,101,58,45, + 105,110,102,63,0,1,-2147483646,11,10,11613,11638,144,101,58,99,108,105,112,0,1, + -2147483645,1,2147483645,2049,2873,10,11628,11653,144,102,58,69,49,0,1793,11655,2049,3646,49,46, + 101,53,0,1,11657,2049,10338,10,11645,11679,144,102,58,45,115,104,105,102,116,0, + 2049,11653,2049,10417,10,11667,11696,144,102,58,43,115,104,105,102,116,0,2049,11653,2049, + 10429,10,11684,11718,144,102,58,115,105,103,110,101,100,45,115,113,114,116,0,2049, + 10565,2049,11428,2049,10961,2049,10478,2049,10319,2049,10417,10,11701,11744,144,102,58,43,101,110, + 99,111,100,101,0,2049,11718,2049,11679,10,11731,11762,144,102,58,45,101,110,99,111, + 100,101,0,2049,10565,2049,11428,2049,11696,2049,10565,2049,10417,2049,10319,2049,10417,10,11749,11796, + 144,102,58,115,105,103,110,101,100,45,115,113,117,97,114,101,0,2049,10565,2049, + 11428,2049,10565,2049,10417,2049,10319,2049,10417,10,11777,11819,144,102,58,116,111,45,101,0, + 2049,10565,2049,11155,1793,11830,2049,10580,1,-2147483647,10,1,11825,2049,2653,2049,10565,2049,11170,1793, + 11845,2049,10580,1,2147483646,10,1,11840,2049,2653,2049,10565,2049,11186,1793,11860,2049,10580,1,-2147483646, + 10,1,11855,2049,2653,2049,11744,2049,11202,2049,10358,2049,11638,1,-2147483645,1793,11879,2049,10580,10, + 1,11876,2049,2373,1,2147483645,1793,11890,2049,10580,10,1,11887,2049,2373,10,11809,11905,144,101, + 58,116,111,45,102,0,1,-2147483647,1793,11912,2049,11064,10,1,11909,2049,2373,1,2147483646,1793, + 11923,2049,11092,10,1,11920,2049,2373,1,-2147483646,1793,11934,2049,11123,10,1,11931,2049,2373,2049, + 10319,2049,11762,10,11895,11954,144,102,58,115,116,111,114,101,0,1793,11959,2049,11819,10, + 1,11956,2049,2100,16,10,11943,11976,144,102,58,102,101,116,99,104,0,15,2049,11905, + 10,11965,11996,144,102,58,100,117,109,112,45,115,116,97,99,107,0,2049,10551,2, + 1,10727,2049,2275,1793,12014,2049,10741,2049,10565,2049,11003,2049,9209,10,1,12005,2049,2275,10, + 11980,12036,144,102,58,100,117,109,112,45,97,115,116,97,99,107,0,2049,10758,2, + 1,10741,2049,2275,1793,12054,2049,10565,2049,11003,2049,9209,2049,10727,10,1,12045,2049,2275,10, + 12019,12068,144,101,58,112,117,116,0,1,2147483645,1793,12085,2049,3646,101,58,77,65,88, + 0,1,12074,2049,9235,10,1,12072,2049,2373,1,-2147483645,1793,12106,2049,3646,101,58,77,73, + 78,0,1,12095,2049,9235,10,1,12093,2049,2373,1,0,1793,12125,2049,3646,101,58,48, + 0,1,12116,2049,9235,10,1,12114,2049,2373,1,-2147483647,1793,12146,2049,3646,101,58,78,65, + 78,0,1,12135,2049,9235,10,1,12133,2049,2373,1,2147483646,1793,12167,2049,3646,101,58,73, + 78,70,0,1,12156,2049,9235,10,1,12154,2049,2373,1,-2147483646,1793,12189,2049,3646,101,58, + 45,73,78,70,0,1,12177,2049,9235,10,1,12175,2049,2373,2049,11905,2049,11003,10,12059, + 12206,131,85,110,105,120,0,0,12198,12219,144,105,100,101,110,116,105,102,121,0, + 3841,12206,2049,2527,1793,12286,1,8,2049,9139,2,2049,2562,1793,12274,3,2049,3646,73,79, + 32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,56,32,78,79, + 84,32,70,79,85,78,68,0,1,12237,2049,9235,2049,9198,10,1,12234,1793,12281,4097, + 12206,10,1,12278,2049,64,10,1,12225,9,10,12059,12309,144,105,111,58,117,110,105, + 120,45,115,121,115,99,97,108,108,0,2049,12219,3841,12206,2049,9122,10,12290,12331,144, + 117,110,105,120,58,115,121,115,116,101,109,0,1,0,2049,12309,10,12316,12349,144, + 117,110,105,120,58,102,111,114,107,0,1,1,2049,12309,10,12336,12368,144,117,110, + 105,120,58,101,120,101,99,48,0,1,2,2049,12309,10,12354,12387,144,117,110,105, + 120,58,101,120,101,99,49,0,1,3,2049,12309,10,12373,12406,144,117,110,105,120, + 58,101,120,101,99,50,0,1,4,2049,12309,10,12392,12425,144,117,110,105,120,58, + 101,120,101,99,51,0,1,5,2049,12309,10,12411,12443,144,117,110,105,120,58,101, + 120,105,116,0,1,6,2049,12309,10,12430,12463,144,117,110,105,120,58,103,101,116, + 112,105,100,0,1,7,2049,12309,10,12448,12481,144,117,110,105,120,58,119,97,105, + 116,0,1,8,2049,12309,10,12468,12499,144,117,110,105,120,58,107,105,108,108,0, + 1,9,2049,12309,10,12486,12518,144,117,110,105,120,58,112,111,112,101,110,0,1, + 10,2049,12309,10,12504,12538,144,117,110,105,120,58,112,99,108,111,115,101,0,1, + 11,2049,12309,10,12523,12557,144,117,110,105,120,58,99,104,100,105,114,0,1,13, + 2049,12309,10,12543,12577,144,117,110,105,120,58,103,101,116,101,110,118,0,1,14, + 2049,12309,10,12562,12597,144,117,110,105,120,58,112,117,116,101,110,118,0,1,15, + 2049,12309,10,12582,12616,144,117,110,105,120,58,115,108,101,101,112,0,1,16,2049, + 12309,10,12602,12637,144,117,110,105,120,58,103,101,116,45,99,119,100,0,2049,3646, + 112,119,100,0,1,12639,1,0,2049,12518,2,2049,9980,2049,5990,4,2049,12538,2049,3646, + 47,0,1,12659,2049,3852,10,12621,12693,144,117,110,105,120,58,99,111,117,110,116, + 45,102,105,108,101,115,45,105,110,45,99,119,100,0,2049,3646,108,115,32,45, + 49,32,124,32,119,99,32,45,108,0,1,12695,1,0,2049,12518,2,2049,9980,2049, + 5990,2049,220,4,2049,12538,10,12666,12748,144,117,110,105,120,58,102,111,114,45,101, + 97,99,104,45,102,105,108,101,0,2049,3646,108,115,32,45,49,32,45,112,0, + 1,12750,1,0,2049,12518,2049,12693,1793,12783,1793,12778,2049,9980,2049,3601,67502597,8,10,1, + 12771,2049,2110,10,1,12769,2049,2275,2049,12538,3,10,12726,12800,144,115,116,97,114,116, + 0,4,2049,3428,1,0,2049,12518,10,12791,12816,144,114,101,97,100,0,2,2049,9521, + 2,2049,3336,2049,2527,10,12808,12835,144,102,105,110,105,115,104,0,2049,12538,2049,3408, + 10,12726,12859,144,117,110,105,120,58,115,108,117,114,112,45,112,105,112,101,0, + 1793,12875,2049,12800,1793,12868,2049,12816,10,1,12865,2049,2250,2049,12835,10,1,12861,2049,3452, + 10,12840,12886,131,105,111,0,0,12880,12899,144,105,100,101,110,116,105,102,121,0, + 3841,12886,2049,2527,1793,12966,1,10,2049,9139,2,2049,2562,1793,12954,3,2049,3646,73,79, + 32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,49,48,32,78,79, + 84,32,70,79,85,78,68,0,1,12917,2049,9235,2049,9198,10,1,12914,1793,12961,4097, + 12886,10,1,12958,2049,64,10,1,12905,9,10,12840,12990,144,105,111,58,114,110,103, + 45,111,112,101,114,97,116,105,111,110,0,2049,12899,3841,12886,2049,9122,10,12970,13009, + 144,110,58,114,97,110,100,111,109,0,2049,12990,10,12997,13023,131,83,111,99,107, + 101,116,115,0,0,13012,13036,144,105,100,101,110,116,105,102,121,0,3841,13023,2049, + 2527,1793,13103,1,7,2049,9139,2,2049,2562,1793,13091,3,2049,3646,73,79,32,68,69, + 86,73,67,69,32,84,89,80,69,32,48,48,48,52,32,78,79,84,32,70, + 79,85,78,68,0,1,13054,2049,9235,2049,9198,10,1,13051,1793,13098,4097,13023,10,1, + 13095,2049,64,10,1,13042,9,10,12997,13130,144,105,111,58,115,111,99,107,101,116, + 45,111,112,101,114,97,116,105,111,110,0,2049,13036,3841,13023,2049,9122,10,13107,13161, + 144,115,111,99,107,101,116,58,103,101,116,104,111,115,116,98,121,110,97,109, + 101,0,1,0,2049,13130,10,13137,13183,144,115,111,99,107,101,116,58,99,114,101, + 97,116,101,0,1,1,2049,13130,10,13166,13203,144,115,111,99,107,101,116,58,98, + 105,110,100,0,1,2,2049,13130,10,13188,13225,144,115,111,99,107,101,116,58,108, + 105,115,116,101,110,0,1,3,2049,13130,10,13208,13247,144,115,111,99,107,101,116, + 58,97,99,99,101,112,116,0,1,4,2049,13130,10,13230,13270,144,115,111,99,107, + 101,116,58,99,111,110,110,101,99,116,0,1,5,2049,13130,10,13252,13290,144,115, + 111,99,107,101,116,58,115,101,110,100,0,1,6,2049,13130,10,13275,13310,144,115, + 111,99,107,101,116,58,114,101,99,118,0,1,8,2049,13130,10,13295,13331,144,115, + 111,99,107,101,116,58,99,108,111,115,101,0,1,10,2049,13130,10,13315,13356,144, + 115,111,99,107,101,116,58,99,111,110,102,105,103,117,114,101,0,1,11,2049, + 13130,10,13336,13374,131,83,99,114,105,112,116,105,110,103,0,7,13361,13387,144,105, + 100,101,110,116,105,102,121,0,3841,13374,2049,2527,1793,13454,1,9,2049,9139,2,2049, + 2562,1793,13442,3,2049,3646,73,79,32,68,69,86,73,67,69,32,84,89,80,69, + 32,48,48,48,57,32,78,79,84,32,70,79,85,78,68,0,1,13405,2049,9235, + 2049,9198,10,1,13402,1793,13449,4097,13374,10,1,13446,2049,64,10,1,13393,9,10,13336, + 13478,144,115,99,114,105,112,116,58,97,114,103,117,109,101,110,116,115,0,2049, + 13387,1,0,3841,13374,2049,9122,10,13458,13510,144,115,99,114,105,112,116,58,103,101, + 116,45,97,114,103,117,109,101,110,116,0,2049,3627,4,2049,13387,1,1,3841,13374, + 2049,9122,10,13487,13533,144,105,110,99,108,117,100,101,0,2049,13387,1,2,3841,13374, + 2049,9122,10,13522,13557,144,115,99,114,105,112,116,58,110,97,109,101,0,2049,3627, + 2049,13387,1,3,3841,13374,2049,9122,10,13542,13591,144,115,99,114,105,112,116,58,99, + 117,114,114,101,110,116,45,102,105,108,101,0,2049,3627,2049,13387,1,4,3841,13374, + 2049,9122,10,13568,13625,144,115,99,114,105,112,116,58,99,117,114,114,101,110,116, + 45,108,105,110,101,0,2049,13387,1,5,3841,13374,2049,9122,10,13602,13658,144,115,99, + 114,105,112,116,58,105,103,110,111,114,101,45,116,111,45,101,111,108,0,2049, + 13387,1,6,3841,13374,2049,9122,10,13634,13691,144,115,99,114,105,112,116,58,97,98, + 111,114,116,45,105,110,99,108,117,100,101,0,2049,13387,1,7,3841,13374,2049,9122, + 10,13667,13712,144,115,121,115,58,97,114,103,99,0,2049,13478,10,13700,13727,144,115, + 121,115,58,97,114,103,118,0,2049,13510,10,13715,13742,144,115,121,115,58,110,97, + 109,101,0,2049,13557,10,13730,1024,131,84,73,66,0,13745,13766,144,105,109,97,103, + 101,58,115,97,118,101,0,1,1000,2049,9139,2049,9122,10,13752,13785,131,75,101,121, + 98,111,97,114,100,0,0,13773,13798,144,105,100,101,110,116,105,102,121,0,3841, + 13785,2049,2527,1793,13865,1,1,2049,9139,2,2049,2562,1793,13853,3,2049,3646,73,79,32, + 68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,49,32,78,79,84, + 32,70,79,85,78,68,0,1,13816,2049,9235,2049,9198,10,1,13813,1793,13860,4097,13785, + 10,1,13857,2049,64,10,1,13804,9,10,13752,13878,144,99,58,103,101,116,0,2049, + 13798,3841,13785,2049,9122,10,13869,13895,144,103,97,116,104,101,114,0,2,1793,13902,1, + 8,11,10,1,13898,1793,13910,1,127,11,10,1,13906,2049,2122,22,1,11,1,3336, + 2049,64,10,13885,13931,144,99,121,99,108,101,0,2049,13878,2049,2090,4,8,2049,2459, + 25,3,2049,13895,1,13931,7,10,13869,13962,144,112,97,114,115,101,45,117,110,116, + 105,108,0,1793,13974,2049,3627,2049,3428,2049,13931,771,2049,3302,10,1,13964,2049,3452,10, + 13947,13988,144,115,58,103,101,116,0,1793,14010,1793,13996,1,10,11,10,1,13992,1793, + 14004,1,13,11,10,1,14000,2049,2122,22,10,1,13990,2049,13962,10,13979,14029,144,115, + 58,103,101,116,45,119,111,114,100,0,1,5592,2049,13962,10,14015,14043,144,99,108, + 101,97,114,0,1,27,2049,9185,2049,3646,91,50,74,0,1,14049,2049,9235,1,27, + 2049,9185,2049,3646,91,48,59,48,72,0,1,14063,2049,9235,10,14034,14084,131,78,111, + 69,99,104,111,0,0,14074,14092,144,98,121,101,0,1,0,2049,12443,10,14085,14104, + 131,69,79,84,0,0,14097,14117,131,73,103,110,111,114,105,110,103,0,0,14105, + 14131,144,105,103,110,111,114,105,110,103,63,0,3841,14117,10,14118,14145,144,118,101, + 114,115,105,111,110,0,3841,4,1,100,20,10,14134,14160,144,100,111,110,101,63, + 0,2,4097,14104,1793,14169,1,13,11,10,1,14165,1793,14177,1,10,11,10,1,14173, + 1793,14185,1,32,11,10,1,14181,2049,2159,22,22,10,14151,14200,144,101,111,108,63, + 0,3841,14104,1793,14208,1,13,11,10,1,14204,1793,14216,1,10,11,10,1,14212,2049, + 2122,22,10,14192,14232,144,118,97,108,105,100,63,0,2,2049,79,2049,2609,10,14222, + 14251,144,99,104,101,99,107,45,101,111,102,0,2,1793,14258,1,-1,11,10,1, + 14254,1793,14266,1,4,11,10,1,14262,2049,2122,22,1,14092,9,10,14238,14281,144,98, + 115,0,2049,3360,2049,3360,771,10,14275,14299,144,99,104,101,99,107,45,98,115,0, + 2,1793,14306,1,8,11,10,1,14302,1793,14314,1,127,11,10,1,14310,2049,2122,22, + 1,14281,9,10,14287,14332,144,99,104,101,99,107,0,2049,14251,2049,14299,10,14323,14350, + 144,99,104,97,114,97,99,116,101,114,0,2049,13878,2,2049,3336,10,14337,14366,144, + 98,117,102,102,101,114,0,1793,14376,1,1024,2049,3428,8,2049,3302,10,1,14368,2049, + 3452,10,14356,14395,144,114,101,97,100,45,116,111,107,101,110,0,1793,14411,1793,14406, + 2049,14350,2049,14332,2049,14160,10,1,14399,2049,2250,10,1,14397,2049,14366,2049,3724,10,14381, + 14427,144,105,110,112,117,116,0,2049,14395,2049,14232,10,14418,14443,144,112,114,111,99, + 101,115,115,0,2049,14131,1793,14461,771,2049,14200,1793,14457,1,14117,2049,3047,10,1,14452, + 9,10,1,14447,2049,2653,1,367,1,11,2049,64,10,14085,14478,156,47,47,0,2049, + 13658,1,14117,2049,3034,10,14472,14495,144,98,97,110,110,101,114,0,2049,14145,2049,3646, + 82,69,84,82,79,32,49,50,32,40,37,110,46,37,110,41,92,110,0,1, + 14499,2049,7212,2049,9235,2049,1543,2049,1874,18,2049,1874,2049,1543,2049,3646,37,110,32,77, + 97,120,44,32,37,110,32,85,115,101,100,44,32,37,110,32,70,114,101,101, + 92,110,0,1,14535,2049,7212,2049,9235,10,14485,14579,144,108,105,115,116,101,110,0, + 3841,14084,1793,14586,2049,14495,10,1,14583,2049,70,2049,14427,2049,14443,1,14590,7,10,14569, + 14607,131,67,108,111,99,107,0,0,14598,14620,144,105,100,101,110,116,105,102,121, + 0,3841,14607,2049,2527,1793,14687,1,5,2049,9139,2,2049,2562,1793,14675,3,2049,3646,73, + 79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48,53,32,78, + 79,84,32,70,79,85,78,68,0,1,14638,2049,9235,2049,9198,10,1,14635,1793,14682, + 4097,14607,10,1,14679,2049,64,10,1,14626,9,10,14569,14713,144,105,111,58,99,108, + 111,99,107,45,111,112,101,114,97,116,105,111,110,0,2049,14620,3841,14607,2049,9122, + 10,14691,14739,144,99,108,111,99,107,58,116,105,109,101,115,116,97,109,112,0, + 1,0,2049,14713,10,14720,14757,144,99,108,111,99,107,58,100,97,121,0,1,1, + 2049,14713,10,14744,14777,144,99,108,111,99,107,58,109,111,110,116,104,0,1,2, + 2049,14713,10,14762,14796,144,99,108,111,99,107,58,121,101,97,114,0,1,3,2049, + 14713,10,14782,14815,144,99,108,111,99,107,58,104,111,117,114,0,1,4,2049,14713, + 10,14801,14836,144,99,108,111,99,107,58,109,105,110,117,116,101,0,1,5,2049, + 14713,10,14820,14857,144,99,108,111,99,107,58,115,101,99,111,110,100,0,1,6, + 2049,14713,10,14841,14879,144,99,108,111,99,107,58,117,116,99,58,100,97,121,0, + 1,7,2049,14713,10,14862,14903,144,99,108,111,99,107,58,117,116,99,58,109,111, + 110,116,104,0,1,8,2049,14713,10,14884,14926,144,99,108,111,99,107,58,117,116, + 99,58,121,101,97,114,0,1,9,2049,14713,10,14908,14949,144,99,108,111,99,107, + 58,117,116,99,58,104,111,117,114,0,1,10,2049,14713,10,14931,14974,144,99,108, + 111,99,107,58,117,116,99,58,109,105,110,117,116,101,0,1,11,2049,14713,10, + 14954,14999,144,99,108,111,99,107,58,117,116,99,58,115,101,99,111,110,100,0, + 1,12,2049,14713,10,14979,15015,144,100,58,119,111,114,100,115,0,1793,15024,2049,162, + 2049,9235,2049,9209,10,1,15017,2049,7441,10,15004,15045,144,100,58,119,111,114,100,115, + 45,119,105,116,104,0,2049,1874,2049,4648,1793,15076,2049,162,2,2049,1874,2049,4162,1793, + 15065,2049,9235,2049,9209,10,1,15060,1793,15071,3,10,1,15069,2049,64,10,1,15051,2049, + 7441,10,15029,15100,144,100,105,115,112,108,97,121,45,105,102,45,108,101,102,116, + 0,2,2049,1874,2049,4598,1793,15112,2049,9235,2049,9209,10,1,15107,1793,15118,3,10,1, + 15116,2049,64,10,15029,15149,144,100,58,119,111,114,100,115,45,98,101,103,105,110, + 110,105,110,103,45,119,105,116,104,0,2049,1874,2049,4648,1793,15160,2049,162,2049,15100, + 10,1,15155,2049,7441,10,0 };