/* Build with cc -lm -O2 retro-unix.c -o retro */

define BIT64

define ENABLE_CLOCK

define ENABLE_FILES

define ENABLE_FLOATS

define ENABLE_MALLOC

define ENABLE_MULTICORE

define ENABLE_RNG

define ENABLE_SCRIPTING

define ENABLE_SIGNALS

define ENABLE_UNIX

define ENABLE_UNSIGNED

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

include <ctype.h>

include <errno.h>

include <fcntl.h>

include <limits.h>

include <signal.h>

include <stdint.h>

include <stddef.h>

include <stdio.h>

include <stdlib.h>

include <string.h>

include <sys/stat.h>

include <sys/types.h>

include <time.h>

include <unistd.h>

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifndef MAKEFILE_CONFIG

define ENABLE_FLOATS

define ENABLE_FILES

define ENABLE_UNIX

define ENABLE_RNG

define ENABLE_CLOCK

define ENABLE_SCRIPTING

/* #define ENABLE_SOCKETS */

define ENABLE_SIGNALS

define ENABLE_MULTICORE

/* #define ENABLE_FFI */

define ENABLE_ERROR

define ENABLE_UNSIGNED

define ENABLE_MALLOC

define ENABLE_BLOCKS

define ENABLE_IOCTL

endif

ifdef ENABLE_MULTICORE

define CORES 8

else

define CORES 1

endif

if defined(_WIN32) || defined(_WIN64)

define NEEDS_STRL

endif

if defined(APPLE) && defined(MACH) && defined(NEEDS_STRL)

undef NEEDS_STRL

endif

/* Configuration ----------------------------------------------------- */

ifndef BIT64

define CELL int32_t

define CELL_MIN INT_MIN + 1

define CELL_MAX INT_MAX - 1

else

define CELL int64_t

define CELL_MIN LLONG_MIN + 1

define CELL_MAX LLONG_MAX - 1

endif

ifndef IMAGE_SIZE

define IMAGE_SIZE 524288 /* Amount of RAM, in cells */

endif

ifndef ADDRESSES

define ADDRESSES 256 /* Depth of address stack */

endif

ifndef STACK_DEPTH

define STACK_DEPTH 256 /* Depth of data stack */

endif

ifdef BRANCH_PREDICTION

/* The Compiler Magic Trick */

define unlikely(x) __builtin_expect((x),0)

endif

define DEVICE_OUTPUT 0

define DEVICE_KEYBOARD 1

define DEVICE_FLOATS 2

define DEVICE_FILES 4

define DEVICE_BLOCKS 3

define DEVICE_CLOCK 5

define DEVICE_RESERVED6 6

define DEVICE_SOCKETS 7

define DEVICE_UNIX 8

define DEVICE_SCRIPTING 9

define DEVICE_RNG 10

define DEVICE_RESERVED11 11

define DEVICE_RESERVED12 12

define DEVICE_RESERVED13 13

define DEVICE_IOCTL 14

define DEVICE_MALLOC 15

define DEVICE_IMAGE 1000

define DEVICE_ERROR 1234

define DEVICE_MULTICORE 8000

define DEVICE_FFI 8100

define DEVICE_UNSIGNED 8101

size_t utf32_strlen(const int32_t *utf32_str) {

size_t length = 0;

while (utf32_str[length] != 0) {

length++;

}

return length;

}

void utf32_strcpy(int32_t *dest, const int32_t *src) {

while ((*dest++ = *src++) != 0);

}

int utf32_strcmp(const int32_t *str1, const int32_t *str2) {

while (*str1 && (*str1 == *str2)) {

str1++;

str2++;

}

return *str1 - *str2;

}

void c_to_utf32(const char *source, int32_t *dest, int max) {

int i = 0;

while (source[i] != '\0' && i < max - 1) {

dest[i] = (int32_t)source[i];

i++;

}

dest[i] = 0;

}

void utf32_to_c(const int32_t *source, char *dest, int max) {

int i = 0;

while (source[i] != 0 && i < max - 1) {

if (source[i] <= 0x7F) {

  dest[i] = (char)source[i];

} else {

  dest[i] = '?';

}

i++;

}

dest[i] = '\0';

}

define ACTIVE vm->cpu[vm->active]

define TIB vm->memory[7]

define TIB_END vm->memory[8]

define MAX_DEVICES 32

define MAX_OPEN_FILES 32

include <stdint.h>

ifndef CELL

ifndef BIT64

define CELL int32_t

define CELL_MIN INT_MIN + 1

define CELL_MAX INT_MAX - 1

else

define CELL int64_t

define CELL_MIN LLONG_MIN + 1

define CELL_MAX LLONG_MAX - 1

endif

endif

CELL ngaImageCells = 69648;

CELL ngaImage[] = { 1793,13735,69594,69647,202410,439,411,1601,2048,0,13789,0,10,1,10,2,10,3,10,

                   4,10,5,10,6,10,7,10,8,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,68223234,

                   1,2575,85000450,1,656912,163,180,268505089,65,64,285281281,0,65,2063,10,101384453,0,9,10,68485378,

                   255,18350338,8,255,1045,18350338,16,255,1045,352393217,24,255,10,268289,-24,68229121,-16,68229121,-8,2577,

                   2049,58,25,459011,99,524546,99,302256641,1,10,16974595,0,50529798,10,25,524547,118,50529798,10,17108738,

                   1,251790353,101777669,1,17565186,109,524545,113,66,167838467,-1,134287105,3,61,659457,3,459023,130,2049,58,

                   25,2049,130,1793,137,2049,137,117506307,0,130,0,524545,28,135,168820993,0,149,1642241,149,134283523,

                   13,135,1793,130,524545,2049,130,1793,130,16846593,149,163,180,1793,66,16846593,149,135,180,1793,

                   66,7,10,659713,1,659713,2,659713,3,659713,4,659713,5,659713,6,659713,7,659713,8,659713,

                   9,45,0,1793,68418,17108737,3,2,524559,130,2049,130,2049,130,524545,0,130,524545,0,130,

                   524545,0,130,524545,200,130,524545,200,130,524545,0,130,2049,144,1048838,2,1642241,10,7,67827,

                   -460132687,167841793,238,11,17826049,0,238,2,15,25,524546,26354,134287105,239,29,2305,240,459023,248,2049,

                   5994,134287361,239,243,659201,238,10,659969,7,2049,58,25,17694978,58,266,9,84152833,48,319750404,265,

                   117507601,268,184618754,45,25,16974851,-1,168886532,1,134284289,1,281,134284289,0,268,660227,32,0,0,115,

                   105,103,105,108,58,105,0,285278479,298,6,2576,524546,104,1641217,1,167838467,295,2049,310,2049,

                   306,524545,298,258,17826050,297,0,2572,2563,2049,288,1793,156,459023,156,1793,336,17760513,168,3,

                   202,8,251727617,3,2,2049,182,16,168820993,-1,149,2049,182,2575,2049,258,17563906,0,350,9,

                   1793,156,285282049,3,2,134287105,149,347,524545,1793,130,16846593,3,0,130,8,659201,3,524545,28,

                   135,17043201,3,13,2049,135,2049,130,268505092,149,1642241,149,656131,659201,3,524545,13,135,2049,130,

                   459009,25,135,459009,57,135,459009,21,135,459009,23,135,1793,13036,10,524546,182,134284303,184,1807,

                   1601,1642241,297,285282049,419,1,459012,414,117509889,238,414,134287105,419,258,16845825,0,427,411,1793,66,

                   1793,441,17826050,419,316,8,117506305,420,430,66,2116,11340,11700,11400,13685,13104,12432,12402,9603,9801,

                   11514,11413,11110,12528,11948,10302,13340,9700,13455,12753,10500,10670,12654,13320,11960,13908,10088,10605,11865,11025,

                   0,2049,258,987393,1,1793,130,524546,517,2049,515,2049,515,17891588,2,517,8,17045505,-24,-16,

                   17043736,-8,1118488,1793,130,17043202,1,169021201,2049,58,25,33883396,101450758,6404,459011,507,34668804,2,2049,504,

                   524545,449,507,302056196,449,659969,1,114,101,116,114,111,46,109,117,114,105,0,0,15,

                   174,526,193489870,16061,200,200,43371,100,117,112,0,537,17,174,526,2090195226,16052,200,200,43263,

                   100,114,111,112,0,550,19,174,526,2090739264,16716,200,200,62489,115,119,97,112,0,564,

                   27,174,526,2090140673,15874,200,200,38399,99,97,108,108,0,578,29,174,526,193490778,16076,200,

                   200,44155,101,113,63,0,592,31,174,526,2088204551,15329,200,200,28390,45,101,113,63,0,

                   605,33,174,526,193498500,16213,200,200,53237,108,116,63,0,619,35,174,526,193493055,16141,200,

                   200,51117,103,116,63,0,632,37,174,526,258875503,16081,200,200,48115,102,101,116,99,104,

                   0,645,39,174,526,274826578,16707,200,200,62377,115,116,111,114,101,0,660,41,174,526,

                   177616,15314,200,200,28161,43,0,675,43,174,526,177618,15322,200,200,28280,45,0,686,45,

                   174,526,177615,15309,200,200,28014,42,0,697,47,174,526,2088285108,15347,200,200,28669,47,109,

                   111,100,0,708,49,174,526,193486360,15713,200,200,35908,97,110,100,0,722,51,174,526,

                   5863686,16333,200,200,54699,111,114,0,735,53,174,526,193511454,16846,200,200,67426,120,111,114,

                   0,747,55,174,526,274388419,16647,200,200,60549,115,104,105,102,116,0,760,405,180,526,

                   2090629861,16357,15265,200,54944,112,117,115,104,0,775,408,180,526,193502740,16352,15262,200,54817,112,

                   111,112,0,789,402,180,526,5861552,15353,200,200,28746,48,59,0,802,58,168,526,-1885660229,

                   16085,200,200,48164,102,101,116,99,104,45,110,101,120,116,0,814,61,168,526,1976567422,

                   16711,200,200,62419,115,116,111,114,101,45,110,101,120,116,0,834,288,168,526,-2005311157,

                   16609,200,200,59193,115,58,116,111,45,110,117,109,98,101,114,0,854,118,168,526,

                   272731271,16482,200,200,56906,115,58,101,113,63,0,875,104,168,526,289838292,16538,200,200,57915,

                   115,58,108,101,110,103,116,104,0,890,66,168,526,-161057562,15915,200,200,38806,99,104,

                   111,111,115,101,0,908,76,174,526,5863476,16179,200,200,51884,105,102,0,924,74,168,

                   526,193429569,15334,200,200,28484,45,105,102,0,936,327,180,526,-1801857825,0,200,200,0,115,

                   105,103,105,108,58,40,0,949,149,156,526,-1210660288,15485,200,200,30504,67,111,109,112,

                   105,108,101,114,0,966,3,156,526,2089174371,15502,200,200,31850,72,101,97,112,0,984,

                   130,168,526,177617,15319,200,200,28201,44,0,998,144,168,526,5863748,16389,200,200,55298,115,

                   44,0,1009,150,180,526,177632,15363,200,200,28860,59,0,1021,361,180,526,177664,15541,200,

                   200,32802,91,0,1032,377,180,526,177666,15543,200,200,32821,93,0,1043,2,156,526,1264838491,

                   15488,200,200,31325,68,105,99,116,105,111,110,97,114,121,0,1054,181,168,526,-176589039,

                   16011,200,200,42076,100,58,108,105,110,107,0,1074,182,168,526,2090134543,16033,200,200,42867,

                   100,58,120,116,0,1090,184,168,526,-1543050247,15985,200,200,41429,100,58,99,108,97,115,

                   115,0,1104,198,168,526,-176525916,16023,200,200,42482,100,58,110,97,109,101,0,1121,168,

                   168,526,339514705,15936,200,200,39145,99,108,97,115,115,58,119,111,114,100,0,1137,180,

                   168,526,-1693294713,15930,200,200,39021,99,108,97,115,115,58,109,97,99,114,111,0,1157,

                   156,168,526,338816719,15920,200,200,38986,99,108,97,115,115,58,100,97,116,97,0,1178,

                   202,168,526,-2097653054,15980,200,200,41250,100,58,97,100,100,45,104,101,97,100,101,114,

                   0,1198,328,180,526,-1801857830,16656,200,200,60694,115,105,103,105,108,58,35,0,1220,334,

                   180,526,-1801857807,16675,200,200,61049,115,105,103,105,108,58,58,0,1237,353,180,526,-1801857827,

                   16664,200,200,60758,115,105,103,105,108,58,38,0,1254,332,180,526,-1801857829,16660,200,200,

                   60721,115,105,103,105,108,58,36,0,1271,392,180,526,422440038,16374,200,200,55207,114,101,

                   112,101,97,116,0,1288,394,180,526,252997285,15708,200,200,35786,97,103,97,105,110,0,

                   1304,439,168,526,314257922,16193,200,200,52272,105,110,116,101,114,112,114,101,116,0,1319,

                   258,168,526,975220285,16015,200,200,42126,100,58,108,111,111,107,117,112,0,1338,174,168,

                   526,1687271822,15933,200,200,39073,99,108,97,115,115,58,112,114,105,109,105,116,105,118,

                   101,0,1356,4,156,526,-742861781,15538,200,200,32760,86,101,114,115,105,111,110,0,1381,

                   486,168,526,177678,16176,200,200,51801,105,0,1398,130,168,526,177673,15975,200,200,41116,100,

                   0,1409,480,168,526,177687,16360,200,200,54998,114,0,1420,265,156,526,2088954976,15482,200,200,

                   30427,66,97,115,101,0,1431,92,168,526,2090607556,16345,200,200,54773,112,97,99,107,0,

                   1445,78,168,526,550515207,16763,200,200,64868,117,110,112,97,99,107,0,1459,186,168,526,

                   1249390676,16029,200,200,42705,100,58,115,111,117,114,99,101,0,1475,188,168,526,-176741337,15995,

                   200,200,41766,100,58,104,97,115,104,0,1493,190,168,526,-1523788551,15283,200,200,0,100,

                   58,115,116,97,99,107,0,1509,192,168,526,549642842,15287,200,200,0,100,58,97,115,

                   116,97,99,107,0,1526,194,168,526,745319807,15291,200,200,0,100,58,102,115,116,97,

                   99,107,0,1544,196,168,526,-1542096812,15295,200,200,0,100,58,100,101,115,99,114,0,

                   1562,411,168,526,933914805,16074,200,200,44321,101,114,114,58,110,111,116,102,111,117,110,

                   100,0,105,109,97,103,101,58,115,97,118,101,0,103,101,0,98,108,101,0,

                   46,114,101,116,114,111,0,0,111,0,46,95,84,104,105,115,95,119,105,108,

                   108,95,104,105,100,101,95,97,110,121,95,104,101,97,100,101,114,115,95,98,

                   101,116,119,101,101,110,95,96,123,123,96,95,97,110,100,95,96,45,45,45,

                   114,101,118,101,97,108,45,45,45,96,44,95,108,101,97,118,105,110,103,95,

                   111,110,108,121,95,104,101,97,100,101,114,115,95,98,101,116,119,101,101,110,

                   95,96,45,45,45,114,101,118,101,97,108,45,45,45,96,95,97,110,100,95,

                   116,104,101,95,96,125,125,96,95,118,105,115,105,98,108,101,46,0,110,111,

                   110,45,122,101,114,111,95,118,97,108,117,101,95,97,115,95,96,84,82,85,

                   69,96,46,0,69,96,46,0,108,108,95,98,101,95,116,104,101,95,114,101,

                   115,116,95,111,102,95,116,104,101,95,111,114,105,103,105,110,97,108,95,115,

                   116,114,105,110,103,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,1579,2061,168,16941,193454822,15493,200,200,31485,69,79,

                   77,0,1,-3,15,10,2048,2080,168,16941,256499866,16041,200,200,43006,100,101,112,116,104,

                   0,1,-1,15,10,2065,2100,168,16941,-176597577,15999,200,200,41816,100,58,108,97,115,116,

                   0,1,2,15,10,2084,2123,168,16941,1574593009,16008,200,200,42005,100,58,108,97,115,116,

                   46,120,116,0,2049,2100,2049,182,15,10,2104,2151,168,16941,-70242661,16002,200,200,41858,100,

                   58,108,97,115,116,46,99,108,97,115,115,0,2049,2100,2049,184,15,10,2129,2178,

                   168,16941,1039459334,16005,200,200,41932,100,58,108,97,115,116,46,110,97,109,101,0,2049,

                   2100,2049,198,10,2157,2200,168,16941,1040454034,16363,200,200,55081,114,101,99,108,97,115,115,

                   0,2049,2100,2049,184,16,10,2183,2225,168,16941,178274228,16187,200,200,51999,105,109,109,101,

                   100,105,97,116,101,0,1,180,2049,2200,10,2206,2244,168,16941,2090176863,16037,200,200,42915,

                   100,97,116,97,0,1,156,2049,2200,10,2230,2268,168,16941,-1234078178,16355,200,200,54871,112,

                   114,105,109,105,116,105,118,101,0,1,174,2049,2200,10,2249,2287,180,16941,2090335702,16174,

                   200,200,51701,104,111,111,107,0,1,1793,2049,130,1,3,15,1,1,17,2049,130,

                   10,2273,2318,168,16941,234850607,16643,200,200,60506,115,101,116,45,104,111,111,107,0,1,

                   1,17,16,10,2300,2339,168,16941,550243353,16760,200,200,62937,117,110,104,111,111,107,0,

                   1,1,17,2,1,1,17,4,16,10,2323,2360,180,16941,177613,15305,200,200,27924,40,

                   0,10,2349,2372,180,16941,177614,15307,200,200,27969,41,0,10,2361,2394,168,16941,-898142575,15948,

                   200,200,40205,99,111,109,112,105,108,101,58,108,105,116,0,1,1,2049,130,2049,

                   130,10,2373,2423,168,16941,426007172,15945,200,200,40136,99,111,109,112,105,108,101,58,106,

                   117,109,112,0,1,1793,2049,130,2049,130,10,2401,2452,168,16941,425733796,15942,200,200,40067,

                   99,111,109,112,105,108,101,58,99,97,108,108,0,1,2049,2049,130,2049,130,10,

                   2430,2480,168,16941,-898136173,15951,200,200,40281,99,111,109,112,105,108,101,58,114,101,116,

                   0,1,10,2049,130,10,2459,2505,168,16941,-1979274138,15953,200,200,40339,99,111,109,112,105,

                   108,105,110,103,63,0,1,149,15,10,2485,2526,180,16941,-1801857769,16688,200,200,61199,115,

                   105,103,105,108,58,96,0,2049,288,2049,130,10,2509,2548,180,16941,-1801857773,16682,200,200,

                   61120,115,105,103,105,108,58,92,0,2049,486,10,2531,2568,180,16941,-1801857771,16685,200,200,

                   61160,115,105,103,105,108,58,94,0,2049,480,10,2551,2585,168,16941,2090324905,16169,200,200,

                   51634,104,101,114,101,0,1,3,15,10,2571,2606,180,16941,-1801857801,16678,200,200,61090,115,

                   105,103,105,108,58,64,0,2049,258,2049,182,15,2049,2505,1793,2622,1,3841,2049,130,

                   2049,130,10,1,2615,1793,2628,15,10,1,2626,2049,66,10,2589,2650,180,16941,-1801857832,16652,

                   200,200,60663,115,105,103,105,108,58,33,0,2049,258,2049,182,15,2049,2505,1793,2666,

                   1,4097,2049,130,2049,130,10,1,2659,1793,2672,16,10,1,2670,2049,66,10,2633,2695,

                   168,16941,626189207,15989,200,200,41480,100,58,99,114,101,97,116,101,0,1793,2697,1,156,

                   1,0,2049,202,2049,2585,2049,2100,2049,182,16,10,2677,2726,168,16941,277702537,16813,200,200,

                   66692,118,97,114,45,110,0,2049,2695,2049,130,10,2711,2744,168,16941,193508814,16810,200,200,

                   66639,118,97,114,0,134284289,0,2726,10,2731,2763,168,16941,255671116,15961,200,200,40448,99,111,

                   110,115,116,0,2049,2695,2049,2100,2049,182,16,10,2748,2785,174,16941,2090773084,16753,200,200,

                   62875,116,117,99,107,0,100926722,10,2771,2801,174,16941,2090594561,16338,200,200,54749,111,118,101,

                   114,0,67502597,10,2787,2816,174,16941,193500364,16320,200,200,54587,110,105,112,0,772,10,2803,

                   2837,174,16941,288947475,16055,200,200,43299,100,114,111,112,45,112,97,105,114,0,771,10,

                   2818,2853,174,16941,2088850509,15365,200,200,28888,63,100,117,112,0,6402,10,2839,2873,168,16941,

                   -59285433,16066,200,200,43408,100,117,112,45,112,97,105,114,0,67502597,67502597,10,2855,2889,168,

                   16941,193489474,16044,200,200,43047,100,105,112,0,525572,6,10,2876,2905,168,16941,193505809,16694,200,

                   200,61249,115,105,112,0,67502597,1,27,2049,2889,10,2892,2923,168,16941,5863248,15742,200,200,

                   36400,98,105,0,1,2905,2049,2889,8,10,2911,2942,168,16941,193487226,15748,200,200,36459,98,

                   105,42,0,1,2889,2049,2889,8,10,2929,2961,168,16941,193487248,15755,200,200,36498,98,105,

                   64,0,2,2049,2942,10,2948,2978,168,16941,193507188,16730,200,200,62674,116,114,105,0,1793,

                   2987,1,2905,2049,2889,2049,2905,10,1,2980,2049,2889,8,10,2965,3007,168,16941,2090769950,16737,

                   200,200,62765,116,114,105,42,0,1793,3024,1793,3017,4,1,2889,2049,2889,10,1,3011,

                   2049,2889,2049,2889,10,1,3009,2049,2889,8,10,2993,3044,168,16941,2090769972,16746,200,200,62817,

                   116,114,105,64,0,2,2,2049,3007,10,3030,3064,168,16941,279132286,16839,200,200,67245,119,

                   104,105,108,101,0,1793,3073,525570,1639430,3,1,3066,7,10,1,3066,8,3,10,3049,

                   3093,168,16941,276987953,16770,200,200,65680,117,110,116,105,108,0,1793,3104,525570,385942534,-1,25,

                   3,1,3095,7,10,1,3095,8,3,10,3078,3126,168,16941,-1163346114,16135,200,200,51013,102,

                   111,114,101,118,101,114,0,1793,3130,8,10,1,3128,2049,2905,1,3126,7,10,3109,

                   3153,168,16941,275614599,16726,200,200,62619,116,105,109,101,115,0,1793,3165,4,25,33886721,1,

                   2053,1542,1,3156,7,10,1,3155,8,3,10,3138,3187,180,16941,-1801857741,16691,200,200,61228,

                   115,105,103,105,108,58,124,0,2049,258,1793,3195,2049,182,15,10,1,3191,1793,3203,

                   2049,184,15,10,1,3199,2049,2923,2049,2505,1793,3218,1,156,2049,2889,2049,2452,10,1,

                   3211,1,27,2049,66,10,3170,3239,168,16941,2089584485,15529,200,200,32597,84,82,85,69,0,

                   1,-1,10,3225,3257,168,16941,219588176,15496,200,200,31540,70,65,76,83,69,0,1,0,

                   10,3242,3274,168,16941,2090140897,15889,200,200,38529,99,97,115,101,0,1793,3279,67502597,11,10,

                   1,3276,2049,2889,4,1793,3291,772,8,2049,3239,10,1,3286,1793,3299,3,2049,3257,10,

                   1,3295,2049,66,25,6,3,3,10,3260,3324,168,16941,410109870,16420,200,200,55923,115,58,

                   99,97,115,101,0,1793,3330,67502597,2049,118,10,1,3326,2049,2889,4,1793,3342,772,8,

                   2049,3239,10,1,3337,1793,3350,3,2049,3257,10,1,3346,2049,66,25,6,3,3,10,

                   3308,3372,168,16941,193500566,16327,200,200,54645,110,111,116,0,1,-1,23,10,3359,3391,168,

                   16941,266514170,16218,200,200,53315,108,116,101,113,63,0,2049,2873,101516555,22,10,3376,3411,168,

                   16941,260584565,16146,200,200,51198,103,116,101,113,63,0,4,2049,3391,10,3396,3430,168,16941,

                   266773971,16232,200,200,53508,110,58,77,65,88,0,1,-5,15,10,3415,3449,168,16941,266774225,

                   16235,200,200,53558,110,58,77,73,78,0,1,-4,15,10,3434,3470,168,16941,-1486229492,16316,

                   200,200,54532,110,58,122,101,114,111,63,0,1,0,11,10,3453,3492,168,16941,-494948871,

                   16228,200,200,53449,110,58,45,122,101,114,111,63,0,1,0,12,10,3474,3517,168,

                   16941,1249353375,16280,200,200,54077,110,58,110,101,103,97,116,105,118,101,63,0,1,0,

                   13,10,3496,3542,168,16941,476508031,16288,200,200,54184,110,58,112,111,115,105,116,105,118,

                   101,63,0,1,-1,14,10,3521,3576,168,16941,-1782398742,16308,200,200,54379,110,58,115,116,

                   114,105,99,116,108,121,45,112,111,115,105,116,105,118,101,63,0,1,0,14,

                   10,3546,3597,168,16941,-1510537094,16252,200,200,53791,110,58,101,118,101,110,63,0,1,2,

                   20,3,2049,3470,10,3580,3620,168,16941,214866883,16284,200,200,54133,110,58,111,100,100,63,

                   0,2049,3597,2049,3372,10,3604,3638,168,16941,193494767,16183,200,200,51925,105,102,59,0,67502597,

                   1,76,2049,2889,25,6,771,10,3625,3661,168,16941,2088208540,15338,200,200,28530,45,105,102,

                   59,0,67502597,1,74,2049,2889,2049,3372,25,6,771,10,3647,3685,174,16941,193504922,16381,200,

                   200,55269,114,111,116,0,67503109,10,3672,3698,174,16941,177620,15342,200,200,28606,47,0,197652,

                   10,3687,3713,174,16941,193499461,16223,200,200,53405,109,111,100,0,788,10,3700,3730,168,16941,

                   266813635,16292,200,200,54240,110,58,112,111,119,0,1,1,4,1793,3738,67502597,19,10,1,

                   3735,2049,3153,772,10,3715,3762,168,16941,2024000897,16276,200,200,54048,110,58,110,101,103,97,

                   116,101,0,1,-1,19,10,3744,3784,168,16941,-2060555330,16304,200,200,54348,110,58,115,113,

                   117,97,114,101,0,4866,10,3766,3802,168,16941,215025303,16300,200,200,54312,110,58,115,113,

                   114,116,0,1,1,1793,3820,2049,2873,197652,67502597,18,1,2,197652,25,17,1,3806,7,

                   10,1,3806,8,772,10,3786,3840,168,16941,266810161,16271,200,200,54015,110,58,109,105,110,

                   0,2049,2873,13,1793,3847,3,10,1,3845,1793,3853,772,10,1,3851,2049,66,10,3825,

                   3873,168,16941,266809907,16266,200,200,53981,110,58,109,97,120,0,2049,2873,14,1793,3880,3,

                   10,1,3878,1793,3886,772,10,1,3884,2049,66,10,3858,3906,168,16941,266796867,16238,200,200,

                   53608,110,58,97,98,115,0,2,2049,3517,1,3762,9,10,3891,3930,168,16941,-1502694228,16260,

                   200,200,53863,110,58,108,105,109,105,116,0,4,5,2049,3840,6,2049,3873,10,3913,

                   3953,168,16941,266805959,16256,200,200,53843,110,58,105,110,99,0,659713,1,10,3938,3971,168,

                   16941,266800217,16248,200,200,53771,110,58,100,101,99,0,659969,1,10,3956,3994,168,16941,1032861494,

                   16242,200,200,53647,110,58,98,101,116,119,101,101,110,63,0,67503109,1793,4002,67503109,67503109,

                   2049,3930,10,1,3997,2049,2905,11,10,3974,4027,168,16941,-2130983749,15523,200,200,32482,83,99,

                   111,112,101,76,105,115,116,0,69179,69328,10,4008,4042,168,16941,5864091,16853,200,200,67578,

                   123,123,0,2049,2100,2,1,4027,2049,61,16,10,4030,4073,168,16941,-1644352334,15327,200,200,

                   28327,45,45,45,114,101,118,101,97,108,45,45,45,0,2049,2100,1,4027,2049,3953,

                   16,10,4051,4093,168,16941,5864159,16858,200,200,67672,125,125,0,1,4027,2049,58,4,15,

                   11,1793,4107,3841,4027,4097,2,10,1,4102,1793,4133,3841,4027,1793,4128,1,2,983567,1,

                   4027,2049,3953,1641487,3,1,4117,7,10,1,4115,8,16,10,1,4111,2049,66,10,4081,

                   4152,168,0,0,0,200,200,0,66,121,116,101,0,10,4138,4172,168,0,0,0,

                   200,200,0,98,121,116,101,45,109,97,115,107,0,1,255,4,1,8,19,2,

                   1793,4186,2049,3762,24,21,10,1,4181,2049,2889,24,10,4153,4209,168,0,0,0,200,

                   200,0,114,101,112,108,97,99,101,0,1,0,1793,4238,1793,4233,1793,4228,1793,4223,

                   3,3841,4152,10,1,4219,2049,2889,10,1,4217,2049,2889,10,1,4215,2049,2889,10,1,

                   4213,2049,3274,1,1,1793,4264,1793,4259,1793,4254,3,3841,4152,10,1,4250,2049,2889,10,

                   1,4248,2049,2889,10,1,4246,2049,3274,1,2,1793,4283,1793,4278,3,3841,4152,10,1,

                   4274,2049,2889,10,1,4272,2049,3274,1,3,1793,4295,3,3841,4152,10,1,4291,2049,3274,

                   3,10,4081,4328,168,16941,1181794872,15736,200,200,36314,98,58,116,111,45,98,121,116,101,

                   45,97,100,100,114,101,115,115,0,4865,4,10,4301,4348,168,16941,172307467,15718,200,200,

                   35973,98,58,102,101,116,99,104,0,267265,4,134288385,4,3685,266001,2049,4172,10,4331,4374,

                   168,16941,188258542,15727,200,200,36156,98,58,115,116,111,114,101,0,1048836,4152,267265,4,1793,

                   4383,134287106,78,10,1,4380,2049,2889,2049,4209,2049,92,4,16,10,4357,4411,168,16941,-668819311,

                   16151,200,200,51291,104,58,102,101,116,99,104,0,1,4348,1793,4423,2049,3953,2049,4348,

                   1,-8,24,10,1,4415,2049,2923,22,10,4394,4446,168,16941,-652868236,16160,200,200,51475,104,

                   58,115,116,111,114,101,0,2049,2873,102039813,255,2049,4374,2049,3953,18350341,8,255,117507605,4374,

                   10,4429,4477,168,16941,1523331040,16821,200,200,66796,119,58,102,101,116,99,104,0,1,4,

                   197652,15,10,4460,4499,168,16941,1539282115,16830,200,200,67033,119,58,115,116,111,114,101,0,

                   1,4,197652,16,10,4482,4526,168,16941,-1431209524,16825,200,200,66944,119,58,102,101,116,99,

                   104,45,110,101,120,116,0,2,1,4,17,4,2049,4477,10,4504,4556,168,16941,-865140451,

                   16155,200,200,51386,104,58,102,101,116,99,104,45,110,101,120,116,0,2,1,2,

                   17,4,2049,4411,10,4534,4586,168,16941,-1497706281,15722,200,200,36067,98,58,102,101,116,99,

                   104,45,110,101,120,116,0,2,1,1,17,4,2049,4348,10,4564,4616,168,16941,-1863949169,

                   16834,200,200,67175,119,58,115,116,111,114,101,45,110,101,120,116,0,2,1,4,

                   17,1,4499,2049,2889,10,4594,4647,168,16941,-1297880096,16164,200,200,51564,104,58,115,116,111,

                   114,101,45,110,101,120,116,0,2,1,2,17,1,4446,2049,2889,10,4625,4678,168,

                   16941,-1930445926,15731,200,200,36244,98,58,115,116,111,114,101,45,110,101,120,116,0,2,

                   1,1,17,1,4374,2049,2889,10,4656,4705,168,16941,-811043593,16787,200,200,66057,118,58,105,

                   110,99,45,98,121,0,286196994,659462,10,4687,4726,168,16941,-1017393847,16780,200,200,65923,118,58,

                   100,101,99,45,98,121,0,68093186,168822290,10,4708,4744,168,16941,276293327,16784,200,200,65999,118,

                   58,105,110,99,0,1,1,4,2049,4705,10,4729,4765,168,16941,276287585,16777,200,200,65865,

                   118,58,100,101,99,0,1,1,4,2049,4726,10,4750,4788,168,16941,239114932,16791,200,200,

                   66133,118,58,108,105,109,105,116,0,251790597,1542,2049,3930,4100,10,4771,4808,168,16941,2090781106,

                   16799,200,200,66329,118,58,111,110,0,2049,3239,4100,10,4794,4827,168,16941,276299600,16796,200,

                   200,66308,118,58,111,102,102,0,2049,3257,4100,10,4812,4846,168,16941,253189153,15710,200,200,

                   35852,97,108,108,111,116,0,1,3,2049,4705,10,4831,4871,168,16941,250474337,16802,200,200,

                   66351,118,58,112,114,101,115,101,114,118,101,0,84869636,1,27,2049,2889,1049606,10,4851,

                   4896,168,16941,-338953896,16806,200,200,66482,118,58,117,112,100,97,116,101,0,4,1793,4903,

                   15,4,8,10,1,4899,2049,2905,16,10,4878,4923,168,16941,2090156064,15965,200,200,40497,99,

                   111,112,121,0,1793,4932,285278725,1,33951492,268767489,1,6,10,1,4925,2049,3153,771,10,4909,

                   4953,156,0,0,0,200,200,0,115,116,97,114,116,0,0,10,4938,4968,156,0,

                   0,0,200,200,0,101,110,100,0,0,10,4955,4989,168,0,0,0,200,200,0,

                   116,101,114,109,105,110,97,116,101,0,1,0,3841,4968,16,10,4909,5017,168,16941,

                   470531271,15783,200,200,37109,98,117,102,102,101,114,58,115,116,97,114,116,0,3841,4953,

                   10,4995,5040,168,16941,-1068395248,15768,200,200,36838,98,117,102,102,101,114,58,101,110,100,

                   0,3841,4968,10,5020,5063,168,16941,-1068399934,15763,200,200,36756,98,117,102,102,101,114,58,

                   97,100,100,0,3841,4968,16,1,4968,2049,4744,2049,4989,10,5043,5093,168,16941,-1068393351,15771,

                   200,200,36896,98,117,102,102,101,114,58,103,101,116,0,1,4968,2049,4765,3841,4968,

                   15,2049,4989,10,5073,5125,168,16941,453693224,15766,200,200,36794,98,117,102,102,101,114,58,

                   101,109,112,116,121,0,3841,4953,4097,4968,2049,4989,10,5103,5153,168,16941,-896806316,15780,200,

                   200,37067,98,117,102,102,101,114,58,115,105,122,101,0,3841,4968,3841,4953,18,10,

                   5132,5179,168,16941,-1068380283,15777,200,200,37027,98,117,102,102,101,114,58,115,101,116,0,

                   4097,4953,2049,5125,10,5159,5209,168,16941,-1235887835,15774,200,200,36943,98,117,102,102,101,114,

                   58,112,114,101,115,101,114,118,101,0,3841,4953,3841,4968,1793,5222,1,27,2049,2889,

                   4097,4953,10,1,5215,2049,2889,4097,4968,10,5184,5250,156,16941,1204567429,15535,200,200,32711,84,

                   101,109,112,83,116,114,105,110,103,115,0,32,5229,5274,156,16941,1808866840,15532,200,200,

                   32653,84,101,109,112,83,116,114,105,110,103,77,97,120,0,512,5251,5292,168,16941,

                   -1027089649,15520,200,200,32339,83,84,82,73,78,71,83,0,2049,2061,3841,5250,3841,5274,19,

                   18,10,5275,5322,168,0,-1748767096,15276,200,200,0,115,58,111,118,101,114,115,105,122,

                   101,63,0,2049,104,3841,5274,2049,3971,14,10,5301,5350,168,0,-657703496,15272,200,200,0,

                   115,58,116,114,117,110,99,97,116,101,0,2,2049,5322,1793,5363,1,0,67502597,3841,

                   5274,17,16,10,1,5355,9,10,5330,5384,156,0,0,0,200,200,0,67,117,114,

                   114,101,110,116,0,15,10,5367,5405,168,0,0,0,200,200,0,115,58,112,111,

                   105,110,116,101,114,0,3841,5384,3841,5274,19,2049,5292,17,10,5386,5430,168,0,0,

                   0,200,200,0,115,58,110,101,120,116,0,1,5384,2049,4744,3841,5384,3841,5250,11,

                   1793,5446,1,0,4097,5384,10,1,5441,9,10,5330,5466,168,16941,410724968,16601,200,200,59022,

                   115,58,116,101,109,112,0,2049,5350,2,2049,104,2049,3953,2049,5405,4,2049,4923,2049,

                   5405,2049,5430,10,5450,5500,168,16941,651524257,16474,200,200,56827,115,58,101,109,112,116,121,

                   0,2049,5405,2049,5430,1,0,67502597,16,10,5483,5525,168,16941,410695433,16576,200,200,58468,115,

                   58,115,107,105,112,0,6,1793,5533,68223234,1,786703,0,10,1,5528,2049,3064,2049,3971,

                   5,10,5509,5557,168,16941,410401271,16529,200,200,57765,115,58,107,101,101,112,0,2049,2505,

                   1793,5566,1,5525,2049,2452,10,1,5561,9,2049,2585,1,144,2049,2889,2049,156,10,5541,

                   5595,180,0,-1801857826,0,200,200,0,115,105,103,105,108,58,39,0,2049,2505,1,5557,

                   1,5466,2049,66,10,5578,5621,168,16941,652426460,16491,200,200,57043,115,58,102,101,116,99,

                   104,0,17,15,10,5604,5641,168,16941,668377535,16590,200,200,58828,115,58,115,116,111,114,

                   101,0,17,16,10,5624,5660,168,16941,410117372,16434,200,200,56072,115,58,99,104,111,112,

                   0,2049,5466,2,2049,104,67502597,17,2049,3971,1,0,4,16,10,5644,5693,168,16941,143016046,

                   16567,200,200,58316,115,58,114,101,118,101,114,115,101,0,1793,5735,2,2049,5466,2049,

                   5179,1,104,1793,5711,2,2049,104,17,2049,3971,10,1,5704,2049,2923,4,1793,5725,2,

                   15,2049,5063,2049,3971,10,1,5718,2049,3153,3,2049,5017,2049,5466,10,1,5695,2049,5209,

                   10,5674,5759,168,16941,-1950939456,16547,200,200,58154,115,58,112,114,101,112,101,110,100,0,

                   2049,5466,1793,5802,2049,2873,1,104,2049,2961,17,3841,5274,14,1,2837,1793,5797,2,2049,

                   104,17,1793,5789,2,2049,104,2049,3953,10,1,5783,2049,2889,4,2049,4923,10,1,5777,

                   2049,66,10,1,5763,2049,2905,10,5740,5825,168,16941,-127536406,16410,200,200,55813,115,58,97,

                   112,112,101,110,100,0,4,2049,5759,10,5807,5849,168,16941,-89307369,16501,200,200,57272,115,

                   58,102,111,114,45,101,97,99,104,0,1793,5864,67502597,6415,3,67502597,67502597,251987205,2054,101777670,

                   1,1,5851,7,10,1,5851,8,771,10,5829,5891,168,16941,111909079,16519,200,200,57562,115,

                   58,105,110,100,101,120,47,99,104,97,114,0,4,1793,5914,2049,58,25,4,1793,

                   5903,67502597,12,10,1,5900,2049,2889,4,25,3,1,5894,7,10,1,5894,1793,5923,18,

                   2049,3971,772,10,1,5918,1793,5932,2049,104,67502597,11,10,1,5927,2049,2978,1793,5942,3,

                   1,-1,10,1,5938,9,10,5869,5972,168,16941,-552286499,16442,200,200,56246,115,58,99,111,

                   110,116,97,105,110,115,47,99,104,97,114,63,0,2049,5891,1,-1,12,10,5946,

                   5994,168,16941,410289558,16515,200,200,57495,115,58,104,97,115,104,0,1,5381,4,1793,6002,

                   286458116,33,10,1,5999,2049,5849,10,5978,6020,156,0,0,0,200,200,0,83,116,114,

                   0,0,6007,6038,168,0,0,0,200,200,0,101,120,116,114,97,99,116,0,2049,

                   2873,3841,6020,4,2049,4923,3841,6020,67502597,17,1,0,4,16,10,6021,6069,168,0,0,

                   0,200,200,0,99,104,101,99,107,0,1,6038,2049,2889,1793,6080,1,3953,2049,2889,

                   10,1,6075,2049,2889,3841,6020,2049,5994,67502597,11,10,6054,6109,168,0,0,0,200,200,

                   0,108,111,99,97,116,105,111,110,0,67503109,67503109,1793,6142,1793,6137,4,1793,6123,67502597,

                   2049,3470,21,10,1,6118,2049,2889,4,1793,6133,772,2,10,1,6130,9,10,1,6115,

                   2049,2889,10,1,6113,2049,2889,10,6091,6162,168,0,0,0,200,200,0,115,101,116,

                   117,112,0,2049,5500,4097,6020,1,0,67503109,67503109,1,104,1,5994,2049,2923,1793,6182,67502597,

                   2049,104,10,1,6178,2049,2889,4,10,5978,6212,168,16941,-2044062352,16524,200,200,57646,115,58,

                   105,110,100,101,120,47,115,116,114,105,110,103,0,67502597,1793,6231,2049,6162,1793,6224,

                   2049,6069,2049,6109,10,1,6219,2049,3153,771,3,10,1,6215,2049,2889,18,1,2,18,

                   1,-1,2049,3873,10,6188,6257,156,0,0,0,200,200,0,83,114,99,0,0,6244,

                   6271,156,0,0,0,200,200,0,84,97,114,0,0,6258,6285,156,0,0,0,200,

                   200,0,80,97,100,0,0,6272,6297,156,0,0,0,200,200,0,73,0,0,6286,

                   6309,156,0,0,0,200,200,0,70,0,0,6298,6322,156,0,0,0,200,200,0,

                   65,116,0,0,6310,6342,168,0,0,0,200,200,0,116,101,114,109,105,110,97,

                   116,101,0,1,0,3841,6285,3841,6271,2049,104,17,16,10,6323,6370,168,0,0,0,

                   200,200,0,101,120,116,114,97,99,116,0,3841,6257,3841,6297,17,3841,6285,3841,6271,

                   2049,104,2049,4923,10,6353,6401,168,0,0,0,200,200,0,99,111,109,112,97,114,

                   101,0,3841,6285,3841,6271,2049,118,3841,6309,22,4097,6309,3841,6309,1793,6421,3841,6297,4097,

                   6322,10,1,6416,2049,74,10,6384,6440,168,0,0,0,200,200,0,110,101,120,116,

                   0,1,6297,2049,4744,10,6188,6473,168,16941,-466408362,16447,200,200,56324,115,58,99,111,110,

                   116,97,105,110,115,47,115,116,114,105,110,103,63,0,4097,6271,4097,6257,2049,5500,

                   4097,6285,1,0,4097,6297,1,0,4097,6309,3841,6257,2049,104,1793,6504,2049,6370,2049,6342,

                   2049,6401,2049,6440,10,1,6495,2049,3153,3841,6309,10,6445,6529,168,16941,59711416,16496,200,200,

                   57114,115,58,102,105,108,116,101,114,0,67502597,2049,5322,1793,6539,1,5350,2049,2889,10,

                   1,6534,9,1793,6570,2049,5500,2049,5179,4,1793,6562,2049,2873,4,8,1,5063,1,17,

                   2049,66,10,1,6551,2049,5849,3,2049,5017,10,1,6544,2049,5209,10,6511,6590,168,16941,

                   272739504,16542,200,200,57991,115,58,109,97,112,0,1793,6612,2049,5500,2049,5179,4,1793,6604,

                   67502597,8,2049,5063,10,1,6599,2049,5849,3,2049,5017,10,1,6592,2049,5209,10,6575,6635,

                   168,16941,582342613,16595,200,200,58892,115,58,115,117,98,115,116,114,0,1793,6641,17,2049,

                   5500,10,1,6637,2049,2889,1793,6653,67502597,1,4923,2049,2889,10,1,6647,2049,2905,67502597,1793,

                   6666,17,1,0,4,16,10,1,6660,2049,2889,10,6617,6688,168,16941,666787280,16571,200,200,

                   58367,115,58,114,105,103,104,116,0,67502597,2049,104,67502597,18,4,2049,6635,10,6671,6713,

                   168,16941,410437245,16533,200,200,57835,115,58,108,101,102,116,0,1,0,4,2049,6635,10,

                   6697,6743,168,16941,-232792494,16415,200,200,55866,115,58,98,101,103,105,110,115,45,119,105,

                   116,104,63,0,2,2049,104,1,19,2049,2889,2049,6713,2049,118,10,6719,6777,168,16941,

                   -2108153340,16477,200,200,56851,115,58,101,110,100,115,45,119,105,116,104,63,0,2,2049,

                   104,1,19,2049,2889,2049,6688,2049,118,10,6755,6805,168,16941,410125037,16452,200,200,56412,115,

                   58,99,111,112,121,0,67502597,2049,104,2049,3953,2049,4923,10,6789,6831,168,16941,-1310218506,16401,

                   200,200,55609,115,58,68,73,71,73,84,83,0,2049,5525,48,49,50,51,52,53,

                   54,55,56,57,65,66,67,68,69,70,0,1,6833,10,6813,6880,168,16941,-1545673491,16395,

                   200,200,55487,115,58,65,83,67,73,73,45,76,79,87,69,82,67,65,83,69,

                   0,2049,5525,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,

                   114,115,116,117,118,119,120,121,122,0,1,6882,10,6853,6939,168,16941,-1918301808,16398,200,

                   200,55548,115,58,65,83,67,73,73,45,85,80,80,69,82,67,65,83,69,0,

                   2049,5525,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,

                   83,84,85,86,87,88,89,90,0,1,6941,10,6912,6996,168,16941,-1283195573,16392,200,200,

                   55416,115,58,65,83,67,73,73,45,76,69,84,84,69,82,83,0,2049,5525,97,

                   98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,

                   118,119,120,121,122,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,

                   80,81,82,83,84,85,86,87,88,89,90,0,1,6998,10,6971,7077,168,16941,-1868975636,

                   16404,200,200,55679,115,58,80,85,78,67,84,85,65,84,73,79,78,0,2049,5525,

                   95,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,58,59,60,61,

                   62,63,64,91,92,93,94,96,123,124,125,126,0,1,7079,1,95,67502597,16,10,

                   7054,7141,156,16941,-143759681,16407,200,200,55746,115,58,87,72,73,84,69,83,80,65,67,

                   69,0,32,9,10,13,0,7119,7157,180,16941,177612,15302,200,200,27900,39,0,1,5500,

                   2049,168,10,7146,7173,180,16941,177609,15299,200,200,27878,36,0,1,0,2049,156,10,7162,

                   0,156,16941,-199368937,15446,200,200,29894,65,83,67,73,73,58,78,85,76,0,7178,27,

                   156,16941,-199378813,15419,200,200,29525,65,83,67,73,73,58,69,83,67,0,7197,8,156,

                   16941,254259165,15383,200,200,29033,65,83,67,73,73,58,66,83,0,7216,9,156,16941,254259364,

                   15437,200,200,29771,65,83,67,73,73,58,72,84,0,7234,10,156,16941,254259482,15440,200,

                   200,29812,65,83,67,73,73,58,76,70,0,7252,11,156,16941,254259826,15476,200,200,30304,

                   65,83,67,73,73,58,86,84,0,7270,12,156,16941,254259284,15428,200,200,29648,65,83,

                   67,73,73,58,70,70,0,7288,13,156,16941,254259197,15389,200,200,29115,65,83,67,73,

                   73,58,67,82,0,7306,32,156,16941,1936299924,15461,200,200,30099,65,83,67,73,73,58,

                   83,80,65,67,69,0,7324,127,156,16941,-199380355,15404,200,200,29320,65,83,67,73,73,

                   58,68,69,76,0,7345,1,156,16941,-199363694,15458,200,200,30058,65,83,67,73,73,58,

                   83,79,72,0,7364,2,156,16941,-199363513,15464,200,200,30140,65,83,67,73,73,58,83,

                   84,88,0,7383,3,156,16941,-199378759,15425,200,200,29607,65,83,67,73,73,58,69,84,

                   88,0,7402,4,156,16941,-199378928,15416,200,200,29484,65,83,67,73,73,58,69,79,84,

                   0,7421,5,156,16941,-199378964,15413,200,200,29443,65,83,67,73,73,58,69,78,81,0,

                   7440,6,156,16941,-199383689,15377,200,200,28951,65,83,67,73,73,58,65,67,75,0,7459,

                   7,156,16941,-199382533,15380,200,200,28992,65,83,67,73,73,58,66,69,76,0,7478,14,

                   156,16941,254259722,15455,200,200,30017,65,83,67,73,73,58,83,79,0,7497,15,156,16941,

                   254259716,15452,200,200,29976,65,83,67,73,73,58,83,73,0,7515,16,156,16941,-199380131,15407,

                   200,200,29361,65,83,67,73,73,58,68,76,69,0,7533,17,156,16941,-199380448,15392,200,

                   200,29156,65,83,67,73,73,58,68,67,49,0,7552,18,156,16941,-199380447,15395,200,200,

                   29197,65,83,67,73,73,58,68,67,50,0,7571,19,156,16941,-199380446,15398,200,200,29238,

                   65,83,67,73,73,58,68,67,51,0,7590,20,156,16941,-199380445,15401,200,200,29279,65,

                   83,67,73,73,58,68,67,52,0,7609,21,156,16941,-199369598,15443,200,200,29853,65,83,

                   67,73,73,58,78,65,75,0,7628,22,156,16941,-199363358,15470,200,200,30222,65,83,67,

                   73,73,58,83,89,78,0,7647,23,156,16941,-199378781,15422,200,200,29566,65,83,67,73,

                   73,58,69,84,66,0,7666,24,156,16941,-199381574,15386,200,200,29074,65,83,67,73,73,

                   58,67,65,78,0,7685,25,156,16941,254259258,15410,200,200,29402,65,83,67,73,73,58,

                   69,77,0,7704,26,156,16941,-199363502,15467,200,200,30181,65,83,67,73,73,58,83,85,

                   66,0,7722,28,156,16941,254259297,15431,200,200,29689,65,83,67,73,73,58,70,83,0,

                   7741,29,156,16941,254259330,15434,200,200,29730,65,83,67,73,73,58,71,83,0,7759,30,

                   156,16941,254259693,15449,200,200,29935,65,83,67,73,73,58,82,83,0,7777,31,156,16941,

                   254259792,15473,200,200,30263,65,83,67,73,73,58,85,83,0,7795,7835,168,16941,-157167450,15831,

                   200,200,37833,99,58,108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,

                   2049,3994,10,7813,7864,168,16941,430999977,15858,200,200,38167,99,58,117,112,112,101,114,99,

                   97,115,101,63,0,1,65,1,90,2049,3994,10,7842,7890,168,16941,-221932303,15827,200,200,

                   37769,99,58,108,101,116,116,101,114,63,0,1,7835,1,7864,2049,2923,22,10,7871,

                   7916,168,16941,985961842,15820,200,200,37671,99,58,100,105,103,105,116,63,0,1,48,1,

                   57,2049,3994,10,7898,7943,168,16941,-1227520209,15862,200,200,38225,99,58,118,105,115,105,98,

                   108,101,63,0,1,32,1,126,2049,3994,10,7923,7968,168,16941,1698084814,15866,200,200,38283,

                   99,58,118,111,119,101,108,63,0,2049,5525,97,101,105,111,117,65,69,73,79,

                   85,0,1,7970,4,2049,5972,10,7950,8009,168,16941,-1284960908,15816,200,200,37611,99,58,99,

                   111,110,115,111,110,97,110,116,63,0,2,2049,7890,1793,8019,2049,7968,2049,3372,10,

                   1,8014,1793,8027,3,2049,3257,10,1,8023,2049,66,10,7987,8055,168,16941,540935182,15870,200,

                   200,38339,99,58,119,104,105,116,101,115,112,97,99,101,63,0,1,7141,4,2049,

                   5972,10,8032,8084,168,16941,537650515,15796,200,200,37301,99,58,45,108,111,119,101,114,99,

                   97,115,101,63,0,2049,7835,2049,3372,10,8061,8112,168,16941,1125817942,15800,200,200,37363,99,

                   58,45,117,112,112,101,114,99,97,115,101,63,0,2049,7864,2049,3372,10,8089,8136,

                   168,16941,-32679009,15792,200,200,37233,99,58,45,100,105,103,105,116,63,0,2049,7916,2049,

                   3372,10,8117,8165,168,16941,1995091547,15812,200,200,37547,99,58,45,119,104,105,116,101,115,

                   112,97,99,101,63,0,2049,8055,2049,3372,10,8141,8191,168,16941,1869122716,15804,200,200,37425,

                   99,58,45,118,105,115,105,98,108,101,63,0,2049,7943,2049,3372,10,8170,8215,168,

                   16941,679443963,15808,200,200,37487,99,58,45,118,111,119,101,108,63,0,2049,7968,2049,3372,

                   10,8196,8243,168,16941,-590142943,15788,200,200,37169,99,58,45,99,111,110,115,111,110,97,

                   110,116,63,0,2049,8009,2049,3372,10,8220,8268,168,16941,164041342,15850,200,200,38075,99,58,

                   116,111,45,117,112,112,101,114,0,2,2049,7835,25,3,1,32,18,10,8248,8297,

                   168,16941,153339739,15838,200,200,37929,99,58,116,111,45,108,111,119,101,114,0,2,2049,

                   7864,25,3,1,32,17,10,8277,8327,168,16941,1044946089,15846,200,200,38042,99,58,116,111,

                   45,115,116,114,105,110,103,0,2049,5525,46,0,1,8329,2049,5466,1,39,2049,2905,

                   10,8306,8363,168,16941,-1181400147,15854,200,200,38118,99,58,116,111,103,103,108,101,45,99,

                   97,115,101,0,2,2049,7835,1,8268,1,8297,2049,66,10,8340,8394,168,16941,850267451,15842,

                   200,200,37972,99,58,116,111,45,110,117,109,98,101,114,0,2,2049,7916,1793,8403,

                   1,48,18,10,1,8399,1793,8411,3,1,0,10,1,8407,2049,66,10,8373,8436,168,

                   16941,1248863374,16613,200,200,59223,115,58,116,111,45,117,112,112,101,114,0,1,8268,2049,

                   6590,10,8416,8461,168,16941,1238161771,16605,200,200,59132,115,58,116,111,45,108,111,119,101,

                   114,0,1,8297,2049,6590,10,8441,8487,168,16941,1350078662,16631,200,200,59642,115,58,116,114,

                   105,109,45,108,101,102,116,0,2049,5466,1793,8501,2049,58,1,8055,1,3492,2049,2923,

                   21,10,1,8491,2049,3064,2049,3971,10,8466,8530,168,16941,1610182969,16635,200,200,59681,115,58,

                   116,114,105,109,45,114,105,103,104,116,0,2049,5466,2049,5693,2049,8487,2049,5693,10,

                   8508,8555,168,16941,410738990,16627,200,200,59590,115,58,116,114,105,109,0,2049,8530,2049,8487,

                   10,8539,8588,156,16941,-1636174316,15517,200,200,32224,82,101,119,114,105,116,101,85,110,100,

                   101,114,115,99,111,114,101,115,0,-1,8560,8602,168,0,0,0,200,200,0,115,

                   117,98,0,1,95,1793,8609,1,32,10,1,8606,2049,3274,10,8589,8631,168,0,0,

                   0,200,200,0,114,101,119,114,105,116,101,0,3841,8588,1793,8640,1,8602,2049,6590,

                   10,1,8635,9,10,8614,8660,168,0,0,0,200,200,0,104,97,110,100,108,101,

                   0,1,5595,8,10,8560,8681,180,16941,-1801857826,16668,200,200,60825,115,105,103,105,108,58,

                   39,0,2049,8631,2049,8660,10,8664,8708,168,16941,-1531896405,16578,200,200,58537,115,58,115,112,

                   108,105,116,47,99,104,97,114,0,2049,2873,2049,5891,772,2049,2873,2049,6713,1,41,

                   2049,2889,10,8686,8746,168,16941,-1146871996,16584,200,200,58604,115,58,115,112,108,105,116,47,

                   115,116,114,105,110,103,0,2049,2873,2049,6212,2049,3953,772,2049,2873,2049,6713,1,41,

                   2049,2889,10,8722,8781,168,16941,136133038,16555,200,200,58225,115,58,114,101,112,108,97,99,

                   101,0,67502597,2049,104,2049,2585,16,1793,8797,2049,8746,4,2049,2585,15,17,10,1,8789,

                   2049,2889,2049,5759,2049,5825,10,8762,8824,156,0,0,0,200,200,0,83,112,108,105,

                   116,45,79,110,0,0,8806,8841,168,0,0,0,200,200,0,109,97,116,99,104,

                   63,0,3841,8824,11,10,8825,8864,168,0,0,0,200,200,0,116,101,114,109,105,

                   110,97,116,101,0,1,0,67502597,2049,3971,16,10,8845,8885,168,0,0,0,200,200,

                   0,115,116,101,112,0,1,3953,2049,2889,2049,8841,1793,8899,2,2049,130,2049,8864,10,

                   1,8893,9,10,8762,8923,168,16941,-638763109,16617,200,200,59284,115,58,116,111,107,101,110,

                   105,122,101,0,4097,8824,2049,5557,2049,2585,1,0,2049,130,1793,8945,2,2049,130,2,

                   1,8885,2049,5849,3,10,1,8935,2049,2889,2049,2585,67502597,18,2049,3971,67502597,16,10,8903,

                   8974,156,0,0,0,200,200,0,78,101,101,100,108,101,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,8958,9115,156,0,0,0,200,200,0,76,101,110,0,0,9102,9132,156,

                   0,0,0,200,200,0,84,111,107,101,110,115,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,9116,9272,156,0,0,0,200,200,0,84,80,0,0,9260,9287,168,0,0,0,

                   200,200,0,115,97,118,101,0,2049,5557,3841,9272,1,9132,17,2049,3953,16,1,9272,

                   2049,4744,10,9273,9316,168,0,0,0,200,200,0,110,101,120,116,0,1793,9322,3841,

                   9115,17,10,1,9318,2049,2905,10,9302,9342,168,0,0,0,200,200,0,100,111,110,

                   101,63,0,2049,104,2049,3470,10,8903,9377,168,16941,-826994327,16622,200,200,59433,115,58,116,

                   111,107,101,110,105,122,101,45,111,110,45,115,116,114,105,110,103,0,1,0,

                   4097,9272,1793,9391,2,1,8974,2049,6805,2049,5825,10,1,9383,1793,9400,2049,104,4097,9115,

                   10,1,9395,2049,2923,1793,9417,1,8974,2049,8746,2049,9287,2049,9316,2049,9342,10,1,9406,

                   2049,3093,1,9132,3841,9272,2049,3971,4097,9132,772,10,9347,9447,156,0,0,0,200,200,

                   0,83,116,114,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,9431,9533,168,0,0,0,

                   200,200,0,99,104,101,99,107,45,115,105,103,110,0,2049,3517,1793,9542,1,45,

                   2049,5063,10,1,9537,9,10,9513,9564,168,0,0,0,200,200,0,110,45,62,100,

                   105,103,105,116,0,2049,6831,17,15,10,9546,9586,168,0,0,0,200,200,0,99,

                   111,110,118,101,114,116,0,1793,9600,3841,265,20,4,2049,9564,2049,5063,2,2049,3470,

                   10,1,9588,2049,3093,3,10,9347,9636,168,0,-1041675421,15268,200,200,0,110,58,116,111,

                   45,115,116,114,105,110,103,47,114,101,118,101,114,115,101,100,0,1793,9650,1,

                   9447,2049,5179,2,2049,3906,2049,9586,2049,9533,10,1,9638,2049,5209,1,9447,10,9606,9678,

                   168,16941,-112957836,16312,200,200,54500,110,58,116,111,45,115,116,114,105,110,103,0,2049,

                   9636,2049,5693,10,9657,9697,168,0,0,0,200,200,0,99,104,97,114,0,1,32,

                   1793,9706,1,95,2049,5063,10,1,9701,2049,3274,1,114,1793,9719,1,13,2049,5063,10,

                   1,9714,2049,3274,1,110,1793,9732,1,10,2049,5063,10,1,9727,2049,3274,1,116,1793,

                   9745,1,9,2049,5063,10,1,9740,2049,3274,1,48,1793,9758,1,0,2049,5063,10,1,

                   9753,2049,3274,1,94,1793,9771,1,27,2049,5063,10,1,9766,2049,3274,2049,5063,10,9683,

                   9792,168,0,0,0,200,200,0,116,121,112,101,0,1,99,1793,9800,4,2049,5063,

                   10,1,9796,2049,3274,1,115,1793,9814,4,1,5063,2049,5849,10,1,9808,2049,3274,1,

                   110,1793,9830,4,2049,9678,1,5063,2049,5849,10,1,9822,2049,3274,3,10,9778,9852,168,

                   0,0,0,200,200,0,104,97,110,100,108,101,0,1,92,1793,9861,2049,58,2049,

                   9697,10,1,9856,2049,3274,1,37,1793,9874,2049,58,2049,9792,10,1,9869,2049,3274,2049,

                   5063,10,9657,9899,168,16941,67034811,16505,200,200,57325,115,58,102,111,114,109,97,116,0,

                   1793,9928,2049,5500,1793,9923,2049,5179,1793,9918,2049,58,25,2049,9852,1,9909,7,10,1,

                   9909,8,3,10,1,9905,2049,2905,10,1,9901,2049,5209,10,9881,9950,168,16941,649222073,16438,

                   200,200,56135,115,58,99,111,110,115,116,0,1,5557,2049,2889,2049,2763,10,9933,9973,

                   156,0,0,0,200,200,0,86,97,108,117,101,115,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,9957,10015,168,0,0,0,200,200,0,102,114,111,109,0,2049,104,2,1793,

                   10033,1793,10026,1,9973,4113,10,1,10022,2049,2905,2049,3971,10,1,10020,2049,3153,3,10,

                   10001,10051,168,0,0,0,200,200,0,116,111,0,2,2049,104,1793,10067,2049,58,1,

                   97,18,2049,3953,1,9973,266001,10,1,10056,2049,3153,3,10,9933,10090,168,16941,1054903512,16366,

                   200,200,55162,114,101,111,114,100,101,114,0,1,10015,2049,2889,2049,10051,10,10073,10112,

                   168,16941,255891066,15970,200,200,41037,99,117,114,114,121,0,2049,2585,1793,10122,4,2049,2394,

                   2049,2423,10,1,10116,2049,2889,10,10097,10141,168,16941,2090191632,16049,200,200,43140,100,111,101,

                   115,0,2049,2123,4,2049,10112,2049,2100,2049,182,16,1,168,2049,2200,10,10127,10176,168,

                   16941,-1106328024,15992,200,200,41615,100,58,102,111,114,45,101,97,99,104,0,1,2,1793,

                   10189,6415,2049,2873,134481157,1542,1,10180,7,10,1,10180,8,3,10,10156,10215,168,16941,-441700234,

                   16019,200,200,42344,100,58,108,111,111,107,117,112,45,120,116,0,1,0,4,1793,

                   10240,2049,2873,2049,182,2831,1793,10233,4,1,2816,2049,2889,10,1,10227,1,17,2049,66,

                   10,1,10220,2049,10176,3,10,10194,10258,168,16941,5863407,16138,200,200,51047,103,99,0,1,

                   3,4,2049,4871,10,10246,10282,168,16941,1957010690,15651,200,200,34666,97,58,108,101,110,103,

                   116,104,0,15,10,10264,10302,168,16941,2000526863,15664,200,200,34937,97,58,109,105,100,100,

                   108,101,0,2049,2585,1793,10325,2,2049,130,1793,10315,2049,3953,17,10,1,10311,2049,2889,

                   2049,2585,4,2049,4923,10,1,10306,2049,2889,10,10284,10346,168,16941,-293999829,15646,200,200,34592,

                   97,58,108,101,102,116,0,1,0,4,2049,10302,10,10330,10369,168,16941,-1104799682,15685,200,

                   200,35374,97,58,114,105,103,104,116,0,67502597,2049,10282,67502597,18,4,2049,10302,10,10352,

                   10405,168,16941,1310034705,15578,200,200,33374,97,58,99,111,117,110,116,101,100,45,114,101,

                   115,117,108,116,115,0,8,2049,2585,1793,10418,2,2049,130,1,130,2049,3153,10,1,

                   10410,2049,2889,10,10378,10446,168,16941,1031007224,15614,200,200,34119,97,58,102,114,111,109,45,

                   115,116,114,105,110,103,0,2049,2585,1793,10460,2,2049,104,2049,130,1,130,2049,5849,

                   10,1,10450,2049,2889,10,10423,10485,168,16941,-1309732155,15610,200,200,34068,97,58,102,111,114,

                   45,101,97,99,104,0,4,2049,58,1,19,2049,2889,1793,10501,5,2049,58,84018692,525572,

                   1542,10,1,10494,2049,3153,771,10,10465,10522,168,16941,251383785,15582,200,200,33521,97,58,100,

                   117,112,0,2049,2585,1793,10535,2,15,2049,130,1,130,2049,10485,10,1,10526,2049,2889,

                   10,10507,10556,168,16941,-294312037,15574,200,200,33332,97,58,99,111,112,121,0,1,3,1793,

                   10572,4097,3,2,2049,10282,2049,130,1,130,2049,10485,10,1,10560,2049,4871,10,10540,10598,

                   168,16941,865022503,15704,200,200,35645,97,58,116,111,45,115,116,114,105,110,103,0,1,

                   3,1793,10611,2049,10522,1,0,2049,130,2049,3953,10,1,10602,2049,4871,2049,5466,10,10577,

                   10636,168,16941,1539635992,15550,200,200,32984,97,58,97,112,112,101,110,100,0,2049,2873,1,

                   37,2049,2961,17,2049,2585,1793,10661,2049,130,1793,10656,1,130,2049,10485,10,1,10651,2049,

                   2961,10,1,10647,2049,2889,10,10618,10685,168,16941,1526142126,15670,200,200,35073,97,58,112,114,

                   101,112,101,110,100,0,4,2049,10636,10,10666,10705,168,16941,-294319702,15560,200,200,33121,97,

                   58,99,104,111,112,0,2049,10522,1,-1,2049,4846,2,2049,4765,10,10689,10733,168,16941,

                   1726883814,15601,200,200,33849,97,58,102,105,108,116,101,114,0,1793,10748,67502597,1,27,2049,

                   2889,4,1,130,1,17,2049,66,10,1,10735,2049,10112,2049,2585,1793,10763,67502597,15,2049,

                   130,2049,10485,10,1,10756,2049,2889,2049,2585,67502597,18,2049,3971,67502597,16,10,10715,10797,168,

                   16941,63806334,15569,200,200,33267,97,58,99,111,110,116,97,105,110,115,63,0,1,0,

                   4,1793,10809,4,5,67502597,11,6,22,10,1,10802,2049,10485,772,10,10776,10843,168,16941,

                   648332804,15564,200,200,33195,97,58,99,111,110,116,97,105,110,115,47,115,116,114,105,

                   110,103,63,0,1,0,4,1793,10856,4,5,67502597,2049,118,6,22,10,1,10848,2049,

                   10485,772,10,10815,10877,168,16941,251392926,15659,200,200,34829,97,58,109,97,112,0,4,1793,

                   10907,2049,58,1793,10901,1793,10890,15,67502597,8,10,1,10886,2049,2905,1,39,2049,2905,2049,

                   3953,10,1,10884,2049,3153,771,10,1,10880,2049,2905,10,10862,10931,168,16941,-674869668,15681,200,

                   200,35305,97,58,114,101,118,101,114,115,101,0,2049,2585,1793,10965,2049,58,1793,10943,

                   17,2049,3971,10,1,10939,2049,2905,2,2049,130,1793,10959,2,15,2049,130,2049,3971,10,

                   1,10952,2049,3153,3,10,1,10935,2049,2889,10,10912,10984,168,16941,2090026588,15699,200,200,35587,

                   97,58,116,104,0,17,2049,3953,10,10970,11005,168,16941,-1119160502,15596,200,200,33779,97,58,

                   102,101,116,99,104,0,2049,10984,15,10,10988,11026,168,16941,-1103209427,15690,200,200,35469,97,

                   58,115,116,111,114,101,0,2049,10984,16,10,11009,11047,168,16941,-1119018392,15606,200,200,34031,

                   97,58,102,105,114,115,116,0,1,0,2049,11005,10,11030,11068,168,16941,-294003756,15642,200,

                   200,34556,97,58,108,97,115,116,0,2,2049,10282,2049,3971,2049,11005,10,11052,11094,168,

                   16941,-2103488936,15675,200,200,35153,97,58,114,101,100,117,99,101,0,1,19,2049,2889,2049,

                   10485,10,11076,11115,168,16941,2089080839,15499,200,200,31596,70,82,69,69,0,2049,5292,1,1025,

                   18,1,513,1,12,19,18,2049,2585,18,10,11101,11149,156,0,0,0,200,200,0,

                   78,101,120,116,65,114,114,97,121,0,11,11130,11166,168,0,0,0,200,200,0,

                   97,114,114,97,121,115,0,2049,11115,2049,2585,17,10,11101,11188,168,16941,-293712106,15695,200,

                   200,35522,97,58,116,101,109,112,0,3841,11149,2,1,12,11,1793,11203,3,1,0,

                   2,4097,11149,10,1,11196,9,1,513,19,2049,11166,17,67502597,2049,10282,2049,3953,2049,4923,

                   3841,11149,1,513,19,2049,11166,17,1,11149,2049,4744,10,11172,11247,156,0,0,0,200,

                   200,0,67,111,117,110,116,0,3,11232,11265,168,0,0,0,200,200,0,112,114,

                   101,112,97,114,101,0,1,0,1,11247,16,10,11248,11288,168,0,0,0,200,200,

                   0,114,101,115,101,114,118,101,0,4,1,0,2049,130,10,11271,11309,168,0,0,

                   0,200,200,0,112,97,116,99,104,0,2049,2585,67502597,18,2049,3971,67502597,16,10,11294,

                   11335,168,0,0,0,200,200,0,99,108,101,97,110,117,112,0,2,2049,11188,4,

                   1,3,16,10,11318,11359,168,0,0,0,200,200,0,114,101,99,111,114,100,0,

                   3841,11247,2049,130,10,11343,11383,168,0,0,0,200,200,0,105,116,101,114,97,116,

                   101,47,110,0,1793,11395,67502597,11,1,11359,9,1,11247,2049,4744,10,1,11385,2049,10485,

                   10,11364,11419,168,0,0,0,200,200,0,105,116,101,114,97,116,101,47,115,0,

                   1793,11432,67502597,2049,118,1,11359,9,1,11247,2049,4744,10,1,11421,2049,10485,10,11172,11456,

                   168,16941,917819423,15632,200,200,34381,97,58,105,110,100,105,99,101,115,0,2049,11265,2049,

                   2585,1793,11468,2049,11288,2049,11383,3,10,1,11462,2049,2889,2049,11309,2049,11335,10,11437,11503,

                   168,16941,1942579685,15637,200,200,34473,97,58,105,110,100,105,99,101,115,47,115,116,114,

                   105,110,103,0,2049,11265,2049,2585,1793,11515,2049,11288,2049,11419,3,10,1,11509,2049,2889,

                   2049,11309,2049,11335,10,11477,11541,168,16941,-1115296648,15622,200,200,34222,97,58,105,110,100,101,

                   120,0,1793,11550,2049,11456,1,0,2049,11005,10,1,11543,2049,10258,10,11524,11579,168,16941,

                   1537607710,15627,200,200,34301,97,58,105,110,100,101,120,47,115,116,114,105,110,103,0,

                   1793,11588,2049,11503,1,0,2049,11005,10,1,11581,2049,10258,10,11555,11609,168,16941,-293968098,15655,

                   200,200,34696,97,58,109,97,107,101,0,2049,10405,2,2,1,3,1793,11620,2049,10931,

                   10,1,11617,2049,4871,4,2049,10556,10,11593,11639,180,16941,177696,16851,200,200,67459,123,0,

                   1,361,2049,180,1,2080,2049,168,1,361,2049,180,10,11628,11663,180,16941,177698,16855,200,

                   200,67609,125,0,1,377,2049,180,1,2889,2049,168,1,2080,2049,168,1,19,2049,174,

                   1,43,2049,174,1,3971,2049,168,1,377,2049,180,1,11609,2049,168,10,11652,11712,168,

                   16941,-294147516,15618,200,200,34180,97,58,104,97,115,104,0,1,5381,4,1793,11723,4,1,

                   33,19,17,10,1,11717,2049,10485,10,11696,11743,168,16941,251384693,15591,200,200,33633,97,58,

                   101,113,63,0,2049,11712,4,2049,11712,11,10,11728,11766,168,16941,-296263550,15545,200,200,32838,

                   97,58,45,101,113,63,0,2049,11712,4,2049,11712,12,10,11750,11797,168,16941,-946089728,15555,

                   200,200,33064,97,58,98,101,103,105,110,115,45,119,105,116,104,63,0,1,3,

                   1793,11813,2,2049,10282,1,19,2049,2889,2049,10346,2049,11743,10,1,11801,2049,4871,10,11773,

                   11840,168,16941,289116466,15586,200,200,33578,97,58,101,110,100,115,45,119,105,116,104,63,

                   0,1,3,1793,11856,2,2049,10282,1,19,2049,2889,2049,10369,2049,11743,10,1,11844,2049,

                   4871,10,11818,11881,156,0,0,0,200,200,0,83,117,98,115,116,105,116,117,116,

                   101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,11861,12026,168,0,0,0,200,200,0,101,

                   120,116,114,97,99,116,0,1,11881,2049,6805,10,12009,12048,168,0,0,0,200,200,

                   0,99,111,109,98,105,110,101,0,1,11881,2049,5825,2049,5825,10,12031,12073,168,0,

                   0,0,200,200,0,102,105,110,100,45,101,110,100,0,2,2049,104,1,11881,2049,

                   104,18,67502597,17,10,12055,12099,168,0,0,0,200,200,0,99,108,101,97,110,0,

                   2049,12073,1,0,4,16,10,11818,12129,168,16941,-495404876,16561,200,200,58273,115,58,114,101,

                   112,108,97,99,101,45,97,108,108,0,1,3,1793,12152,2049,12026,2049,9377,2049,5500,

                   4,1793,12145,2049,12048,10,1,12142,2049,10485,2049,12099,10,1,12133,2049,4871,10,12106,12179,

                   168,0,0,0,200,200,0,99,117,114,114,101,110,116,45,108,105,110,101,0,

                   2049,5292,1,1025,18,10,12157,12207,168,0,0,0,200,200,0,99,111,117,110,116,

                   45,116,111,107,101,110,115,0,1793,12213,1,32,11,10,1,12209,2049,6529,2049,104,

                   10,12185,12244,168,0,0,0,200,200,0,112,114,111,99,101,115,115,45,116,111,

                   107,101,110,115,0,1793,12272,1,32,2049,8708,4,1793,12265,2,2049,104,2049,3492,1,

                   439,1,17,2049,66,10,1,12253,2049,2889,2049,3953,10,1,12246,2049,3153,2049,439,10,

                   12106,12299,168,16941,102250697,16487,200,21243,56986,115,58,101,118,97,108,117,97,116,101,0,

                   2049,12179,2049,6805,2049,12179,2,2049,12207,2049,12244,10,12279,12323,156,0,0,0,200,200,

                   0,76,80,0,0,12311,12339,156,0,0,0,200,200,0,73,110,100,101,120,0,

                   0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,12324,12385,168,0,0,0,200,200,

                   0,110,101,120,116,0,3841,12323,1,12339,17,2049,4744,10,12371,12407,168,0,0,0,

                   200,200,0,112,114,101,112,0,1,12323,2049,4744,1,0,3841,12323,1,12339,17,16,

                   10,12393,12434,168,0,0,0,200,200,0,100,111,110,101,0,1,12323,2049,4765,10,

                   12279,12450,168,16941,177646,15505,200,200,31906,73,0,3841,12323,1,12339,17,15,10,12439,12468,

                   168,16941,177647,15511,200,200,32039,74,0,3841,12323,1,12339,17,2049,3971,15,10,12457,12488,

                   168,16941,177648,15514,200,200,32129,75,0,3841,12323,1,12339,17,1,2,18,15,10,12477,

                   12521,168,16941,123652725,16189,200,200,52105,105,110,100,101,120,101,100,45,116,105,109,101,

                   115,0,2049,12407,4,1793,12537,25,33886721,1,2053,1542,2049,12385,1,12526,7,10,1,12526,

                   8,3,2049,12434,10,12498,12561,168,16941,139676308,16039,200,200,42983,100,101,99,105,109,97,

                   108,0,1,10,4097,265,10,12544,12582,168,16941,-199058230,15761,200,200,36545,98,105,110,97,

                   114,121,0,1,2,4097,265,10,12566,12602,168,16941,269476856,16331,200,200,54678,111,99,116,

                   97,108,0,1,8,4097,265,10,12587,12620,168,16941,193493706,16172,200,200,51674,104,101,120,

                   0,1,16,4097,265,10,12607,12640,168,16941,277702542,16817,200,200,66744,118,97,114,45,115,

                   0,1,5557,2049,2889,2049,2726,10,12625,12669,168,16941,-1648685963,16724,200,200,62572,116,97,105,

                   108,45,114,101,99,117,114,115,101,0,1,1793,2049,2585,1,3,18,16,10,12647,

                   12692,168,16941,2090257196,16090,200,200,50381,102,105,108,108,0,1793,12700,2049,2873,16,2049,3953,

                   10,1,12694,2049,3153,771,10,12678,12728,168,16941,-680426787,16196,200,200,52386,105,111,58,101,

                   110,117,109,101,114,97,116,101,0,27,10,12706,12748,168,16941,1388174477,16202,200,200,52462,

                   105,111,58,113,117,101,114,121,0,28,10,12730,12769,168,16941,-1755659805,16199,200,200,52420,

                   105,111,58,105,110,118,111,107,101,0,29,10,12750,12792,168,16941,-1816911632,16207,200,200,

                   52541,105,111,58,115,99,97,110,45,102,111,114,0,1,-1,4,2049,12728,1793,12823,

                   2049,12450,2049,12748,772,67502597,11,1793,12819,1793,12814,3,2049,12450,10,1,12810,2049,2889,10,

                   1,12808,9,10,1,12799,2049,12521,3,10,12771,12844,168,16941,253768699,15835,200,200,37891,99,

                   58,112,117,116,0,1793,12846,1,0,2049,12769,10,12829,12863,168,16941,5863647,16325,200,200,

                   54626,110,108,0,1,10,2049,12844,10,12851,12880,168,16941,5863816,16705,200,200,62345,115,112,

                   0,1,32,2049,12844,10,12868,12898,168,16941,193506620,16722,200,200,62545,116,97,98,0,1,

                   9,2049,12844,10,12885,12918,168,16941,272743435,16552,200,200,58207,115,58,112,117,116,0,1,

                   12844,2049,5849,10,12903,12938,168,16941,266813830,16297,200,200,54270,110,58,112,117,116,0,2049,

                   9636,2,2049,104,1,41,2049,2905,2049,3953,1793,12958,2,15,2049,12844,2049,3971,10,1,

                   12951,2049,3153,3,10,12923,12979,168,16941,273105544,16376,200,200,55236,114,101,115,101,116,0,

                   2049,2080,25,771,1,12979,7,10,12964,13007,168,16941,-1114973730,16059,200,200,43334,100,117,109,

                   112,45,115,116,97,99,107,0,2049,2080,25,134284547,13007,134283782,12938,2049,12880,10,12987,13030,

                   168,16941,193470948,15526,200,200,32543,84,73,66,0,1,7,15,10,1793,13073,2049,5525,69,

                   82,82,79,82,58,32,87,111,114,100,32,78,111,116,32,70,111,117,110,100,

                   58,32,0,1,13038,2049,12918,2049,13030,2049,12918,2049,12863,10,1,13036,13017,13090,168,16941,

                   253758370,15824,200,200,37735,99,58,103,101,116,0,1793,13092,1,1,2049,12792,2049,12769,10,

                   13075,13112,168,16941,193487813,15786,200,200,37157,98,121,101,0,26,10,13099,13132,156,16941,-606612126,

                   15508,200,200,31989,73,103,110,111,114,105,110,103,0,0,13114,13146,156,0,0,0,

                   200,200,0,69,79,84,0,0,13133,13164,168,0,0,0,200,200,0,118,101,114,

                   115,105,111,110,0,3841,4,1,100,20,10,13147,13185,168,0,0,0,200,200,0,

                   100,111,110,101,63,0,2,4097,13146,1793,13194,1,13,11,10,1,13190,1793,13202,1,

                   10,11,10,1,13198,1793,13210,1,32,11,10,1,13206,2049,2978,22,22,10,13170,13231,

                   168,0,0,0,200,200,0,101,111,108,63,0,3841,13146,1793,13239,1,13,11,10,

                   1,13235,1793,13247,1,10,11,10,1,13243,2049,2923,22,10,13217,13269,168,0,0,0,

                   200,200,0,118,97,108,105,100,63,0,2,2049,104,2049,3576,10,13253,13294,168,0,

                   0,0,200,200,0,99,104,101,99,107,45,101,111,102,0,2,1793,13301,1,-1,

                   11,10,1,13297,1793,13309,1,4,11,10,1,13305,2049,2923,22,1,13112,9,10,13275,

                   13330,168,0,0,0,200,200,0,98,115,0,2049,5153,1,2,2049,3411,1793,13342,2049,

                   5093,3,10,1,13338,9,2049,5093,3,10,13318,13367,168,0,0,0,200,200,0,99,

                   104,101,99,107,45,98,115,0,2,1793,13374,1,8,11,10,1,13370,1793,13382,1,

                   127,11,10,1,13378,2049,2923,22,1,13330,9,10,13349,13406,168,0,0,0,200,200,

                   0,99,104,101,99,107,0,2049,13294,2049,13367,10,13391,13430,168,0,0,0,200,200,

                   0,99,104,97,114,97,99,116,101,114,0,2049,13090,2,2049,5063,10,13411,13452,168,

                   0,0,0,200,200,0,98,117,102,102,101,114,0,1793,13462,2049,13030,2049,5179,8,

                   2049,5017,10,1,13454,2049,5209,10,13436,13487,168,0,0,0,200,200,0,114,101,97,

                   100,45,116,111,107,101,110,0,1793,13503,1793,13498,2049,13430,2049,13406,2049,13185,10,1,

                   13491,2049,3093,10,1,13489,2049,13452,2049,5660,10,13467,13525,168,0,0,0,200,200,0,

                   105,110,112,117,116,0,2049,13487,2049,13269,10,13510,13547,168,0,0,0,200,200,0,

                   112,114,111,99,101,115,115,0,3841,13132,1793,13565,771,2049,13231,1793,13561,1,13132,2049,

                   4827,10,1,13556,9,10,1,13551,2049,3638,1,439,1,17,2049,66,10,13114,13596,168,

                   16941,-371381765,16512,200,200,57400,115,58,103,101,116,45,119,111,114,100,0,1793,13624,1,

                   7,15,2049,5179,1793,13615,2049,13090,2,2049,5063,2049,13367,2049,13185,10,1,13605,2049,3093,

                   2049,5017,2049,5660,10,1,13598,2049,5209,10,13576,13645,168,16941,-208531877,15740,200,200,36362,98,

                   97,110,110,101,114,0,2049,13164,2049,5525,82,69,84,82,79,32,49,50,32,40,

                   37,110,46,37,110,41,92,110,0,1,13649,2049,9899,2049,12918,2049,11115,2049,2061,2049,

                   11115,18,2049,2061,2049,5525,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,13685,2049,9899,2049,12918,10,

                   13629,13735,168,16941,192495636,16211,200,200,53196,108,105,115,116,101,110,0,2049,13645,2049,13525,

                   2049,13547,1,13737,7,10,13719,13770,156,16941,-2087665862,15978,200,200,41172,100,58,72,97,115,

                   104,45,70,117,110,99,116,105,111,110,0,5994,13745,13789,168,16941,1197910910,16027,200,200,

                   42532,100,58,114,101,104,97,115,104,0,1793,13807,1793,13799,2049,198,3841,13770,8,10,

                   1,13793,2049,2905,2049,188,16,10,1,13791,2049,10176,10,13771,3,156,16927,215559733,15479,200,

                   200,30345,66,85,73,76,68,0,13812,13842,168,14399,255669810,15939,200,200,39897,99,111,109,

                   109,97,0,2049,130,10,13827,13859,168,14399,2090155992,15956,200,200,40393,99,111,110,115,0,

                   2049,2585,1793,13869,4,2049,13842,2049,13842,10,1,13863,2049,2889,10,13845,13887,168,14399,193488123,

                   15877,200,200,38416,99,97,114,0,10,13874,13901,168,14399,193488222,15903,200,200,38693,99,100,

                   114,0,2049,3953,10,13888,13918,168,14399,2090140827,15885,200,200,38487,99,97,114,64,0,2049,

                   13887,15,10,13904,13936,168,14399,2090140796,15881,200,200,38455,99,97,114,33,0,2049,13887,16,

                   10,13922,13954,168,14399,2090144094,15911,200,200,38764,99,100,114,64,0,2049,13901,15,10,13940,

                   13972,168,14399,2090144063,15907,200,200,38732,99,100,114,33,0,2049,13901,16,10,13958,13989,168,

                   14399,193454780,15491,200,200,31389,69,78,68,0,10,13976,14010,168,14399,34709361,16099,200,200,50472,

                   102,108,108,58,99,114,101,97,116,101,0,1,13989,2049,13859,10,13990,14026,156,0,

                   177687,0,200,200,0,114,0,26621,13990,14047,168,14399,694444964,16126,200,200,50800,102,108,108,

                   58,116,111,45,101,110,100,0,2,4097,14026,1793,14072,2049,13954,2,1,13989,12,2,

                   1793,14065,67502597,4097,14026,10,1,14061,1,2816,2049,66,10,1,14052,2049,3064,3841,14026,10,

                   14027,14105,168,14399,577969665,16095,200,200,50442,102,108,108,58,97,112,112,101,110,100,47,

                   118,97,108,117,101,0,1,13989,2049,13859,4,2049,14047,2049,13972,10,14079,14137,168,14399,

                   341068837,16130,200,200,50867,102,108,108,58,116,111,45,105,110,100,101,120,0,1,13954,

                   2049,3153,10,14115,14159,168,14399,-1289432718,16103,200,200,50540,102,108,108,58,100,101,108,0,

                   2049,2873,2049,3971,2049,14137,1793,14172,2049,3953,2049,14137,10,1,14167,2049,2889,2049,13972,10,

                   14142,14195,156,0,-1497417501,0,200,200,0,65,99,116,105,111,110,0,14595,14142,14218,168,

                   14399,-982785918,16110,200,200,50613,102,108,108,58,102,111,114,45,101,97,99,104,0,4097,

                   14195,1793,14241,1793,14230,2049,13918,3841,14195,8,10,1,14224,2049,2905,2049,13954,2,1,13989,

                   12,10,1,14222,2049,3064,3,10,14196,14267,168,14399,371840895,16119,200,200,50728,102,108,108,

                   58,108,101,110,103,116,104,0,1,0,4,1793,14276,3,2049,3953,10,1,14272,2049,

                   14218,2049,3971,10,14247,14301,168,14399,398407634,16107,200,200,50579,102,108,108,58,100,114,111,

                   112,0,2,2049,14267,2049,3971,2049,14137,1,13989,4,2049,13972,10,14283,14325,156,0,177678,

                   0,200,200,0,105,0,0,14283,14346,168,14399,264961530,16114,200,200,50659,102,108,108,58,

                   105,110,106,101,99,116,0,2049,14010,4097,14325,2049,2873,2049,3971,2049,14137,1,14137,2049,

                   2889,3841,14325,4,2049,13972,3841,14325,2049,13972,10,14326,14387,168,14399,-1289419114,16123,200,200,50757,

                   102,108,108,58,112,117,116,0,1793,14394,2049,12938,2049,12880,10,1,14389,2049,14218,10,

                   105,110,116,101,114,102,97,99,101,47,108,108,46,114,101,116,114,111,0,105,

                   110,105,116,0,14418,14692,14370,14447,156,14670,-1761629780,16460,200,200,56554,115,58,100,101,100,

                   117,112,46,100,97,116,97,0,14423,14425,14460,156,0,5863786,0,200,200,0,116,49,

                   0,517632,14448,14473,156,0,5863787,0,200,200,0,116,50,0,27672,14425,14500,168,14670,-19532457,

                   16471,200,200,56787,115,58,100,101,100,117,112,46,114,101,103,105,115,116,101,114,

                   0,2049,5557,3841,14447,4,1,14105,2049,2905,10,14474,14536,168,14670,283388512,16463,200,200,56607,

                   115,58,100,101,100,117,112,46,100,101,102,105,110,101,100,63,0,4097,14460,1,

                   0,4097,14473,3841,14447,1793,14556,3841,14460,2049,118,3841,14473,22,4097,14473,10,1,14546,2049,

                   14218,3841,14473,10,14510,14585,168,14670,-1761549389,16467,200,200,56662,115,58,100,101,100,117,112,

                   46,102,105,110,100,0,4097,14460,1,0,4097,14473,3841,14447,1793,14612,2,3841,14460,2049,

                   118,1793,14605,4097,14473,10,1,14602,1,17,2049,66,10,1,14595,2049,14218,3841,14473,10,

                   14563,14636,168,14670,650037796,16456,200,200,56509,115,58,100,101,100,117,112,0,2049,5466,2,

                   2049,14536,1,14585,1,14500,2049,66,10,14619,14667,168,14670,59688232,16639,200,200,59721,115,58,

                   117,110,105,113,117,101,63,0,2049,14536,10,105,110,116,101,114,102,97,99,101,

                   47,100,101,100,117,112,46,114,101,116,114,111,0,14670,16925,14648,14708,168,0,2090715988,

                   0,200,200,0,115,97,118,101,0,2049,3953,2049,5660,2049,2585,4,2049,5557,1,17,

                   2049,174,1,2,17,2049,2178,1,4,18,16,10,14694,14755,168,0,-1362045190,0,200,200,

                   0,115,116,97,99,107,45,99,111,109,109,101,110,116,63,0,2,1,0,2049,

                   5621,1,58,11,10,14648,14781,180,0,-1801857825,16672,200,200,60852,115,105,103,105,108,58,

                   40,0,2049,14755,1,14708,1,17,2049,66,10,14764,14810,168,0,-369994876,14812,200,200,0,

                   100,58,100,101,115,99,114,105,98,101,0,2049,5525,115,45,0,1,14812,3,2049,

                   258,25,2049,12863,2,2049,5525,78,97,109,101,58,32,32,32,32,32,0,1,14826,

                   2049,12918,2049,198,2049,12918,2049,12863,2,2049,5525,65,100,100,114,101,115,115,58,32,

                   32,0,1,14850,2049,12918,2049,182,15,2049,12938,2049,12863,2,2049,5525,67,108,97,115,

                   115,58,32,32,32,32,0,1,14875,2049,12918,2049,184,15,2,2049,12938,2049,10215,2,

                   2049,3492,1793,14910,2049,12880,2049,198,2049,12918,10,1,14903,1,17,2049,66,2049,12863,2,

                   2049,5525,83,111,117,114,99,101,58,32,32,32,0,1,14921,2049,12918,2049,186,15,

                   2,2049,3492,1,12918,1,17,2049,66,2049,12863,2,2049,5525,83,116,97,99,107,58,

                   32,32,32,32,0,1,14953,2049,12918,2049,190,15,2,2049,3492,1,12918,1,17,2049,

                   66,2049,12863,2,2049,5525,65,46,32,83,116,97,99,107,58,32,0,1,14985,2049,

                   12918,2049,192,15,2,2049,3492,1,12918,1,17,2049,66,2049,12863,2,2049,5525,70,108,

                   111,97,116,58,32,32,32,32,0,1,15017,2049,12918,2049,194,15,2,2049,3492,1,

                   12918,1,17,2049,66,2049,12863,2,2049,5525,68,101,115,99,114,58,32,32,32,32,

                   0,1,15049,2049,12918,2049,196,15,2,2049,3492,1,12918,1,17,2049,66,2049,12863,3,

                   10,14790,15109,168,0,1590555890,15111,200,200,0,100,58,115,101,116,45,115,116,97,99,

                   107,45,99,111,109,109,101,110,116,0,2049,5525,115,115,45,0,1,15111,3,2049,

                   258,2,2049,3492,1793,15133,2049,190,1,5557,2049,2889,16,10,1,15125,1,2837,2049,66,

                   10,15080,15170,168,0,-18898317,15172,200,200,0,100,58,115,101,116,45,97,115,116,97,

                   99,107,45,99,111,109,109,101,110,116,0,2049,5525,115,115,45,0,1,15172,3,

                   2049,258,2,2049,3492,1793,15194,2049,192,1,5557,2049,2889,16,10,1,15186,1,2837,2049,

                   66,10,15140,15231,168,0,656458392,15233,200,200,0,100,58,115,101,116,45,102,115,116,

                   97,99,107,45,99,111,109,109,101,110,116,0,2049,5525,115,115,45,0,1,15233,

                   3,2049,258,2,2049,3492,1793,15255,2049,194,1,5557,2049,2889,16,10,1,15247,1,2837,

                   2049,66,10,110,45,0,45,110,0,110,45,115,0,115,45,115,0,115,45,115,

                   102,0,45,0,100,45,97,0,100,45,97,0,100,45,97,0,100,45,97,0,

                   45,99,0,45,115,0,45,0,45,0,110,110,45,110,0,110,110,45,110,0,

                   110,45,0,110,110,45,110,0,45,0,110,110,45,102,0,102,113,45,0,102,

                   113,45,0,110,109,45,118,0,110,109,45,114,118,0,110,45,110,32,124,124,

                   32,110,45,0,45,0,110,45,110,110,32,124,124,32,110,45,110,0,45,110,

                   0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,

                   110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,

                   45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,

                   0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,

                   110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,45,110,0,

                   45,110,0,45,97,0,45,97,0,45,97,0,45,0,45,97,0,45,110,0,

                   45,110,0,45,97,0,45,110,0,45,97,0,45,110,0,45,110,0,45,97,

                   0,45,97,0,45,97,0,45,97,0,45,110,0,45,97,0,45,97,0,45,

                   97,0,45,0,45,0,97,97,45,102,0,97,97,45,97,0,97,97,45,102,

                   0,97,45,97,0,115,97,45,102,0,110,97,45,102,0,97,97,45,0,113,

                   45,97,0,97,45,98,0,97,97,45,102,0,97,97,45,102,0,97,110,45,

                   110,0,97,113,45,98,0,97,45,110,0,97,113,45,0,115,45,97,0,97,

                   45,110,0,97,110,45,110,0,97,115,45,110,0,97,118,45,97,0,97,115,

                   45,97,0,97,45,110,0,97,110,45,97,0,97,45,110,0,113,45,97,0,

                   97,113,45,98,0,97,102,108,45,97,0,97,97,45,97,0,112,110,113,45,

                   110,0,97,45,98,0,97,110,45,97,0,118,97,110,45,0,97,45,97,0,

                   97,110,45,98,0,97,45,115,0,45,0,110,45,0,110,109,45,111,0,97,

                   45,110,0,97,45,97,110,0,110,97,45,0,110,97,45,97,0,97,45,97,

                   0,45,0,120,113,113,45,63,0,120,121,113,113,45,63,0,120,121,113,45,

                   63,0,45,0,110,45,0,45,0,45,97,0,45,110,0,113,45,0,97,45,

                   0,45,110,0,45,97,0,45,0,99,45,102,0,99,45,102,0,99,45,102,

                   0,99,45,102,0,99,45,102,0,99,45,102,0,99,45,102,0,99,45,102,

                   0,99,45,102,0,45,99,0,99,45,102,0,99,45,102,0,99,45,0,99,

                   45,99,0,99,45,110,0,99,45,115,0,99,45,99,0,99,45,99,0,99,

                   45,102,0,99,45,102,0,99,45,102,0,99,45,102,0,97,45,0,97,45,

                   97,0,110,97,45,0,97,45,110,0,110,109,113,45,32,124,124,32,110,109,

                   113,45,110,0,97,45,97,0,110,97,45,0,97,45,110,0,102,113,113,45,

                   0,110,45,32,124,124,32,110,45,110,0,97,45,0,97,45,0,97,45,0,

                   110,45,0,97,45,0,97,45,0,110,45,0,45,0,45,102,0,120,121,45,

                   97,0,110,115,45,0,115,100,108,45,0,110,113,45,113,0,110,45,0,45,

                   0,115,97,97,45,0,100,45,97,0,115,45,0,113,45,0,100,45,97,0,

                   45,100,0,45,97,0,45,115,0,45,97,0,100,45,97,0,115,45,100,0,

                   97,45,100,0,100,45,115,0,45,0,100,45,97,0,100,45,97,0,45,0,

                   45,0,45,110,0,110,113,45,110,0,113,45,0,110,45,0,110,110,45,0,

                   45,0,110,45,110,110,0,110,109,45,110,109,110,109,0,45,0,110,110,45,

                   102,0,97,45,110,0,97,45,97,110,0,118,112,110,45,0,112,118,45,0,

                   118,45,112,0,112,110,45,0,112,45,0,112,113,45,0,112,110,118,45,0,

                   112,45,110,0,112,45,0,112,45,112,0,112,110,45,112,0,113,45,0,97,

                   45,0,110,110,45,102,0,110,110,45,102,0,97,45,110,0,97,45,97,110,

                   0,110,97,45,0,110,97,45,97,0,45,97,0,45,0,45,0,115,45,0,

                   102,113,45,0,102,113,45,0,45,0,110,113,45,0,115,45,0,45,110,0,

                   110,45,0,110,45,109,78,0,110,45,109,0,45,0,110,110,45,102,0,110,

                   110,45,102,0,110,109,45,111,0,110,45,102,0,45,110,0,45,110,0,110,

                   45,110,0,110,108,117,45,102,0,110,45,109,0,110,45,102,0,110,45,109,

                   0,110,108,117,45,109,0,109,110,45,111,0,109,110,45,111,0,110,45,110,

                   0,110,45,102,0,110,45,102,0,110,45,102,0,98,112,45,110,0,110,45,

                   0,110,45,109,0,110,45,109,0,110,45,102,0,110,45,115,0,110,45,102,

                   0,110,109,45,109,0,45,0,110,45,109,0,45,0,109,110,45,111,0,110,

                   109,45,110,109,110,0,110,110,110,110,45,110,0,45,110,0,45,0,110,45,

                   0,115,45,0,97,45,0,46,46,46,115,115,45,63,0,45,0,46,46,46,

                   45,0,97,98,99,45,98,99,97,0,115,45,0,45,115,0,45,115,0,45,

                   115,0,45,115,0,45,115,0,45,115,0,115,115,45,115,0,115,115,45,102,

                   0,115,83,113,45,32,124,124,32,115,83,113,45,115,0,115,45,115,0,115,

                   115,45,0,115,99,45,102,0,115,115,45,102,0,115,97,45,0,115,45,115,

                   0,45,97,0,115,45,102,0,115,45,115,0,115,45,0,45,115,0,115,115,

                   45,102,0,115,115,45,102,0,115,45,63,0,115,110,45,110,0,115,113,45,

                   115,0,115,113,45,0,46,46,46,115,45,115,0,45,115,0,115,45,110,0,

                   115,99,45,110,0,115,115,45,110,0,115,45,115,0,115,110,45,115,0,115,

                   45,110,0,115,113,45,115,0,115,115,45,115,0,115,45,0,115,115,115,45,

                   115,0,115,115,115,45,115,0,115,45,115,0,115,110,45,115,0,45,0,115,

                   99,45,115,115,0,115,115,45,115,115,0,99,115,110,45,0,115,102,108,45,

                   115,0,115,45,115,0,115,45,115,0,115,45,110,0,115,45,115,0,115,99,

                   45,97,0,115,115,45,97,0,115,45,115,0,115,45,115,0,115,45,115,0,

                   115,45,102,0,97,97,45,0,109,110,45,111,0,110,115,45,0,115,45,110,

                   0,115,45,99,0,115,45,97,0,115,45,115,0,115,45,0,115,45,0,115,

                   45,110,0,115,45,0,115,45,0,115,45,0,115,45,0,110,113,40,63,110,

                   45,63,41,45,110,0,45,0,110,97,45,0,110,97,45,97,0,110,109,45,

                   109,110,0,45,0,45,0,110,113,45,0,120,113,113,113,45,63,0,120,121,

                   122,113,113,113,45,63,0,120,121,122,113,45,63,0,110,109,45,109,110,109,

                   0,97,45,0,110,45,110,110,110,110,0,113,40,45,102,41,45,0,97,45,

                   0,110,97,45,0,97,45,0,110,97,45,0,97,108,117,45,0,97,45,0,

                   97,45,0,97,113,45,0,97,113,45,0,115,45,0,110,115,45,0,115,115,

                   45,0,97,45,110,0,97,45,97,110,0,110,97,45,0,110,97,45,97,0,

                   113,40,45,102,41,45,0,109,110,45,111,0,45,0,45,0,45,97,0,45,

                   0,15201,16882,168,16901,515454189,16884,200,200,42591,100,58,115,101,116,45,115,111,117,114,

                   99,101,0,2049,5525,115,115,45,0,1,16884,3,1,14636,2049,2889,2049,258,2049,186,

                   16,10,105,110,116,101,114,102,97,99,101,47,115,111,117,114,99,101,115,46,

                   114,101,116,114,111,0,16901,16939,98,117,105,108,100,46,114,101,116,114,111,0,

                   16927,16953,114,101,116,114,111,46,102,111,114,116,104,0,16941,17537,16860,0,156,17513,

                   24453216,16980,200,200,31021,68,69,86,73,67,69,58,79,85,84,80,85,84,0,45,

                   110,0,16955,1,156,17513,-1120109408,17008,200,200,30905,68,69,86,73,67,69,58,75,69,

                   89,66,79,65,82,68,0,45,110,0,16981,2,156,17513,-338634664,17034,200,200,30790,68,

                   69,86,73,67,69,58,70,76,79,65,84,83,0,45,110,0,17009,4,156,17513,

                   -10372606,17059,200,200,30750,68,69,86,73,67,69,58,70,73,76,69,83,0,45,110,

                   0,17035,3,156,17513,-495174355,17085,200,200,30594,68,69,86,73,67,69,58,66,76,79,

                   67,75,83,0,45,110,0,17060,5,156,17513,-13819365,17110,200,200,30630,68,69,86,73,

                   67,69,58,67,76,79,67,75,0,45,110,0,17086,6,156,17513,-845755547,17139,200,200,

                   31117,68,69,86,73,67,69,58,82,69,83,69,82,86,69,68,54,0,45,110,

                   0,17111,7,156,17513,173262360,17165,200,200,31223,68,69,86,73,67,69,58,83,79,67,

                   75,69,84,0,45,110,0,17140,8,156,17513,-1171124621,17189,200,200,31253,68,69,86,73,

                   67,69,58,85,78,73,88,0,45,110,0,17166,9,156,17513,633651458,17218,200,200,31183,

                   68,69,86,73,67,69,58,83,67,82,73,80,84,73,78,71,0,45,110,0,

                   17190,10,156,17513,-1597298186,17241,200,200,31137,68,69,86,73,67,69,58,82,78,71,0,

                   45,110,0,17219,11,156,17513,-2140129391,17271,200,200,31057,68,69,86,73,67,69,58,82,

                   69,83,69,82,86,69,68,49,49,0,45,110,0,17242,12,156,17513,-2140129390,17301,200,

                   200,31077,68,69,86,73,67,69,58,82,69,83,69,82,86,69,68,49,50,0,

                   45,110,0,17272,13,156,17513,-2140129389,17331,200,200,31097,68,69,86,73,67,69,58,82,

                   69,83,69,82,86,69,68,49,51,0,45,110,0,17302,14,156,17513,-6608534,17356,200,

                   200,30862,68,69,86,73,67,69,58,73,79,67,84,76,0,45,110,0,17332,15,

                   156,17513,-77828057,17382,200,200,30942,68,69,86,73,67,69,58,77,65,76,76,79,67,

                   0,45,110,0,17357,1000,156,17513,-6683022,17407,200,200,30827,68,69,86,73,67,69,58,

                   73,77,65,71,69,0,45,110,0,17383,1234,156,17513,-11228231,17432,200,200,30664,68,69,

                   86,73,67,69,58,69,82,82,79,82,0,45,110,0,17408,8000,156,17513,1388216643,17461,

                   200,200,30981,68,69,86,73,67,69,58,77,85,76,84,73,67,79,82,69,0,

                   45,110,0,17433,8100,156,17513,-1597311516,17484,200,200,30701,68,69,86,73,67,69,58,70,

                   70,73,0,45,110,0,17462,8101,156,17513,-1625916788,17512,200,200,31288,68,69,86,73,67,

                   69,58,85,78,83,73,71,78,69,68,0,45,110,0,105,110,116,101,114,102,

                   97,99,101,47,100,101,118,105,99,101,115,46,114,101,116,114,111,0,17513,20982,

                   17485,17564,168,20952,1141548230,17566,200,200,50935,102,108,111,97,116,58,111,112,101,114,97,

                   116,105,111,110,0,2049,5525,110,45,0,1,17566,3,1,2,2049,12792,2,2049,3517,

                   1793,17630,3,2049,5525,69,114,114,111,114,58,32,102,108,111,97,116,105,110,103,

                   32,112,111,105,110,116,32,100,101,118,105,99,101,32,110,111,116,32,102,111,

                   117,110,100,0,1,17584,2049,12918,2049,12863,10,1,17581,2049,3638,2049,12769,10,17539,17657,

                   168,20952,891922707,17659,200,21240,54454,110,58,116,111,45,102,108,111,97,116,0,2049,5525,

                   110,45,95,102,58,45,110,0,1,17659,3,1,0,2049,17564,10,17637,17695,168,20952,

                   1230929592,17697,200,21246,59071,115,58,116,111,45,102,108,111,97,116,0,2049,5525,115,45,

                   95,102,58,45,110,0,1,17697,3,1,1,2049,17564,10,17675,17734,168,20952,-1027330818,17736,

                   200,21227,47957,102,58,116,111,45,110,117,109,98,101,114,0,2049,5525,102,58,97,

                   45,95,95,45,110,0,1,17736,3,1,2,2049,17564,10,17713,17774,168,20952,-832652180,17776,

                   200,21230,48003,102,58,116,111,45,115,116,114,105,110,103,0,2049,5525,102,58,110,

                   45,95,95,45,115,0,1,17776,3,2049,5500,2,1,3,2049,17564,10,17753,17809,168,

                   20952,193490032,17811,200,20992,44545,102,58,43,0,2049,5525,102,58,97,98,45,99,0,1,

                   17811,3,1,4,2049,17564,10,17796,17839,168,20952,193490034,17841,200,20997,44599,102,58,45,0,

                   2049,5525,102,58,97,98,45,99,0,1,17841,3,1,5,2049,17564,10,17826,17869,168,

                   20952,193490031,17871,200,20987,44486,102,58,42,0,2049,5525,102,58,97,98,45,99,0,1,

                   17871,3,1,6,2049,17564,10,17856,17899,168,20952,193490036,17901,200,21012,44868,102,58,47,0,

                   2049,5525,102,58,97,98,45,99,0,1,17901,3,1,7,2049,17564,10,17886,17933,168,

                   20952,1043458567,17935,200,21097,46336,102,58,102,108,111,111,114,0,2049,5525,102,58,97,98,

                   45,99,0,1,17935,3,1,8,2049,17564,10,17916,17969,168,20952,-1700567744,17971,200,21058,45710,

                   102,58,99,101,105,108,105,110,103,0,2049,5525,102,58,102,45,102,0,1,17971,

                   3,1,9,2049,17564,10,17950,18001,168,20952,-98057841,18003,200,21203,47640,102,58,115,113,114,

                   116,0,2049,5525,102,58,102,45,102,0,1,18003,3,1,10,2049,17564,10,17985,18032,

                   168,20952,257314298,18034,200,21090,46196,102,58,101,113,63,0,2049,5525,102,58,97,98,45,

                   99,0,1,18034,3,1,11,2049,17564,10,18017,18065,168,20952,-100586585,18067,200,21005,44691,102,

                   58,45,101,113,63,0,2049,5525,102,58,97,98,45,99,0,1,18067,3,1,12,

                   2049,17564,10,18049,18097,168,20952,257322020,18099,200,21123,46715,102,58,108,116,63,0,2049,5525,

                   102,58,97,98,45,99,0,1,18099,3,1,13,2049,17564,10,18082,18129,168,20952,257316575,

                   18131,200,21101,46404,102,58,103,116,63,0,2049,5525,102,58,97,98,45,99,0,1,

                   18131,3,1,14,2049,17564,10,18114,18163,168,20952,1040836410,18165,200,200,45857,102,58,100,101,

                   112,116,104,0,2049,5525,45,110,0,1,18165,3,1,15,2049,17564,10,18146,18191,168,

                   20952,257313390,18193,200,21077,46102,102,58,100,117,112,0,2049,5525,102,58,97,45,97,97,

                   0,1,18193,3,1,16,2049,17564,10,18176,18224,168,20952,-98595910,18226,200,21070,45913,102,58,

                   100,114,111,112,0,2049,5525,102,58,97,45,0,1,18226,3,1,17,2049,17564,10,

                   18208,18255,168,20952,-98051872,18257,200,21214,47800,102,58,115,119,97,112,0,2049,5525,102,58,

                   97,98,45,98,97,0,1,18257,3,1,18,2049,17564,10,18239,18288,168,20952,257321895,18290,

                   200,21118,46661,102,58,108,111,103,0,2049,5525,102,58,97,98,45,99,0,1,18290,

                   3,1,19,2049,17564,10,18273,18322,168,20952,1055433970,18324,200,21165,47240,102,58,112,111,119,

                   101,114,0,2049,5525,102,58,97,98,45,99,0,1,18324,3,1,20,2049,17564,10,

                   18305,18354,168,20952,257329327,18356,200,21199,47596,102,58,115,105,110,0,2049,5525,102,58,102,

                   45,102,0,1,18356,3,1,21,2049,17564,10,18339,18385,168,20952,257330152,18387,200,21220,47863,

                   102,58,116,97,110,0,2049,5525,102,58,102,45,102,0,1,18387,3,1,22,2049,

                   17564,10,18370,18416,168,20952,257312106,18418,200,21062,45791,102,58,99,111,115,0,2049,5525,102,

                   58,102,45,102,0,1,18418,3,1,23,2049,17564,10,18401,18448,168,20952,-98702832,18450,200,

                   21040,45323,102,58,97,115,105,110,0,2049,5525,102,58,102,45,102,0,1,18450,3,

                   1,24,2049,17564,10,18432,18480,168,20952,-98720053,18482,200,21036,45207,102,58,97,99,111,115,

                   0,2049,5525,102,58,102,45,102,0,1,18482,3,1,25,2049,17564,10,18464,18512,168,

                   20952,-98702007,18514,200,21044,45371,102,58,97,116,97,110,0,2049,5525,102,58,102,45,102,

                   0,1,18514,3,1,26,2049,17564,10,18496,18544,168,20952,-98161275,18546,200,21170,47280,102,58,

                   112,117,115,104,0,2049,5525,102,58,102,45,0,1,18546,3,1,27,2049,17564,10,

                   18528,18574,168,20952,257326260,18576,200,21159,47115,102,58,112,111,112,0,2049,5525,102,58,45,

                   102,0,1,18576,3,1,28,2049,17564,10,18559,18607,168,20952,-131128101,18609,200,200,45257,102,

                   58,97,100,101,112,116,104,0,2049,5525,45,110,0,1,18609,3,1,29,2049,17564,

                   10,18589,18636,168,20952,-98196575,18638,200,21152,47051,102,58,111,118,101,114,0,2049,5525,102,

                   58,97,98,45,97,98,97,0,1,18638,3,2049,18544,2049,18191,2049,18574,2049,18255,10,

                   18620,18675,168,20952,-98018052,18677,200,21233,48049,102,58,116,117,99,107,0,2049,5525,102,58,

                   97,98,45,98,97,98,0,1,18677,3,2049,18191,2049,18544,2049,18255,2049,18574,10,18659,

                   18713,168,20952,257323884,18715,200,21147,47012,102,58,110,105,112,0,2049,5525,102,58,97,98,

                   45,98,0,1,18715,3,2049,18255,2049,18224,10,18698,18751,168,20952,400249779,18753,200,21073,45963,

                   102,58,100,114,111,112,45,112,97,105,114,0,2049,5525,102,58,97,98,45,0,

                   1,18753,3,2049,18224,2049,18224,10,18730,18787,168,20952,-1227267353,18789,200,21082,46154,102,58,100,

                   117,112,45,112,97,105,114,0,2049,5525,102,58,97,98,45,97,98,97,98,0,

                   1,18789,3,2049,18636,2049,18636,10,18767,18822,168,20952,257328442,18824,200,21176,47366,102,58,114,

                   111,116,0,2049,5525,102,58,97,98,99,45,98,99,97,0,1,18824,3,2049,18544,

                   2049,18255,2049,18574,2049,18255,10,18807,18863,180,20952,-1801857819,18865,200,21249,60880,115,105,103,105,

                   108,58,46,0,2049,5525,115,45,95,95,102,58,45,97,0,1,18865,3,2049,2505,

                   1,5557,1,5466,2049,66,1,17695,2049,168,10,18846,18908,168,20952,589284534,18910,200,21207,47691,

                   102,58,115,113,117,97,114,101,0,2049,5525,102,58,110,45,109,0,1,18910,3,

                   2049,18191,2049,17869,10,18890,18945,168,20952,-243186313,18947,200,21162,47168,102,58,112,111,115,105,

                   116,105,118,101,63,0,2049,5525,45,102,95,95,102,58,97,45,0,1,18947,3,

                   1,0,2049,17657,2049,18129,10,18924,18987,168,20952,529659031,18989,200,21144,46943,102,58,110,101,

                   103,97,116,105,118,101,63,0,2049,5525,45,102,95,95,102,58,97,45,0,1,

                   18989,3,1,0,2049,17657,2049,18097,10,18966,19026,168,20952,378873465,19028,200,21140,46898,102,58,

                   110,101,103,97,116,101,0,2049,5525,102,58,97,45,98,0,1,19028,3,1,-1,

                   2049,17657,2049,17869,10,19008,19059,168,20952,257309499,19061,200,21032,45153,102,58,97,98,115,0,

                   2049,5525,102,58,97,45,98,0,1,19061,3,2049,18191,2049,18987,1,19026,9,10,19044,

                   19093,168,20952,257326462,19095,200,21173,47333,102,58,112,117,116,0,2049,5525,102,58,97,45,

                   0,1,19095,3,2049,17774,2049,12918,10,19078,19122,168,20952,2090205054,19124,200,21029,45113,102,58,

                   80,73,0,2049,5525,102,58,45,70,0,1,19124,3,2049,5525,51,46,49,52,49,

                   53,57,50,54,53,52,0,1,19134,2049,17695,10,19108,19164,168,20952,193490058,19166,200,21017,

                   44906,102,58,69,0,2049,5525,102,58,45,70,0,1,19166,3,2049,5525,50,46,55,

                   49,56,50,56,49,56,50,56,0,1,19176,2049,17695,10,19151,19208,168,20952,257287682,19210,

                   200,21026,45077,102,58,78,65,78,0,2049,5525,102,58,45,110,0,1,19210,3,2049,

                   5525,48,0,1,19220,2049,17695,2049,5525,48,0,1,19228,2049,17695,2049,17899,10,19193,19252,

                   168,20952,257282658,19254,200,21023,45027,102,58,73,78,70,0,2049,5525,102,58,45,110,0,

                   1,19254,3,2049,5525,49,46,48,0,1,19264,2049,17695,2049,5525,48,0,1,19274,2049,

                   17695,2049,17899,10,19237,19299,168,20952,-100618225,19301,200,21002,44641,102,58,45,73,78,70,0,

                   2049,5525,102,58,45,110,0,1,19301,3,2049,5525,45,49,46,48,0,1,19311,2049,

                   17695,2049,5525,48,0,1,19322,2049,17695,2049,17899,10,19283,19347,168,20952,-98255135,19349,200,21137,

                   46831,102,58,110,97,110,63,0,2049,5525,102,58,110,45,44,45,102,0,1,19349,

                   3,2049,18191,2049,18065,10,19331,19381,168,20952,-98420927,19383,200,21109,46476,102,58,105,110,102,

                   63,0,2049,5525,102,58,110,45,44,45,102,0,1,19383,3,2049,19252,2049,18032,10,

                   19365,19416,168,20952,975751822,19418,200,21009,44800,102,58,45,105,110,102,63,0,2049,5525,102,

                   58,110,45,44,45,102,0,1,19418,3,2049,19299,2049,18032,10,19399,19451,168,20952,1057803917,

                   19453,200,21184,47395,102,58,114,111,117,110,100,0,2049,5525,45,124,102,58,97,45,

                   98,0,1,19453,3,2049,18191,2049,18987,1793,19485,2049,5525,48,46,53,0,1,19472,2049,

                   17695,2049,17839,2049,17969,10,1,19470,1793,19504,2049,5525,48,46,53,0,1,19491,2049,17695,

                   2049,17809,2049,17933,10,1,19489,2049,66,10,19434,19524,168,20952,257322793,19526,200,21132,46798,102,

                   58,109,105,110,0,2049,5525,102,58,110,110,45,110,0,1,19526,3,2049,18787,2049,

                   18097,1,18224,1,18713,2049,66,10,19509,19562,168,20952,257322539,19564,200,21127,46764,102,58,109,

                   97,120,0,2049,5525,102,58,110,110,45,110,0,1,19564,3,2049,18787,2049,18129,1,

                   18224,1,18713,2049,66,10,19547,19602,168,20952,1050463908,19604,200,21112,46543,102,58,108,105,109,

                   105,116,0,2049,5525,102,58,110,108,117,45,110,0,1,19604,3,2049,18255,2049,18544,

                   2049,19524,2049,18574,2049,19562,10,19585,19646,168,20952,490450478,19648,200,21048,45422,102,58,98,101,

                   116,119,101,101,110,63,0,2049,5525,102,58,110,108,117,45,110,0,1,19648,3,

                   2049,18822,2049,18191,2049,18544,2049,18822,2049,18822,2049,19602,2049,18574,2049,18032,10,19626,19691,168,

                   20952,257318591,19693,200,21105,46456,102,58,105,110,99,0,2049,5525,102,58,110,45,110,0,

                   1,19693,3,2049,5525,49,0,1,19704,2049,17695,2049,17809,10,19676,19728,168,20952,257312849,19730,

                   200,21066,45837,102,58,100,101,99,0,2049,5525,102,58,110,45,110,0,1,19730,3,

                   2049,5525,49,0,1,19741,2049,17695,2049,17839,10,19713,19766,168,20952,-98650239,19768,200,21053,45546,

                   102,58,99,97,115,101,0,2049,5525,102,58,102,102,45,44,113,45,0,1,19768,

                   3,2049,18636,2049,18032,1793,19792,2049,18224,8,1,-1,10,1,19786,1793,19800,3,1,0,

                   10,1,19796,2049,66,25,6,771,10,19750,19824,168,20952,-98066922,19826,200,21188,47425,102,58,

                   115,105,103,110,0,2049,5525,45,110,124,102,58,97,45,0,1,19826,3,2049,18191,

                   2049,5525,48,0,1,19841,2049,17695,2049,18032,1793,19856,1,0,2049,18224,10,1,19851,2049,

                   3638,2049,5525,48,0,1,19862,2049,17695,2049,18129,1793,19875,1,1,10,1,19872,1793,19882,

                   1,-1,10,1,19879,2049,66,10,19808,2147483645,156,20952,256100682,19904,200,200,43606,101,58,77,

                   65,88,0,45,110,0,19887,-2147483645,156,20952,256100936,19922,200,200,43666,101,58,77,73,78,

                   0,45,110,0,19905,-2147483647,156,20952,256101761,19940,200,200,43726,101,58,78,65,78,0,45,

                   110,0,19923,2147483646,156,20952,256096737,19958,200,200,43551,101,58,73,78,70,0,45,110,0,

                   19941,-2147483646,156,20952,-139753618,19977,200,200,43450,101,58,45,73,78,70,0,45,110,0,19959,

                   19992,168,20952,2090170097,19994,200,200,43930,101,58,110,63,0,2049,5525,117,45,102,0,1,

                   19994,3,1,-2147483645,2049,3953,1,2147483645,2049,3971,2049,3994,10,19978,20028,168,20952,-137426135,20030,200,

                   200,43864,101,58,109,97,120,63,0,2049,5525,117,45,102,0,1,20030,3,1,2147483645,

                   11,10,20012,20057,168,20952,-137417753,20059,200,200,43897,101,58,109,105,110,63,0,2049,5525,

                   117,45,102,0,1,20059,3,1,-2147483645,11,10,20041,20087,168,20952,-224539325,20089,200,200,44097,

                   101,58,122,101,114,111,63,0,2049,5525,117,45,102,0,1,20089,3,2049,3470,10,

                   20070,20115,168,20952,-137390528,20117,200,200,44006,101,58,110,97,110,63,0,2049,5525,117,45,

                   102,0,1,20117,3,1,-2147483647,11,10,20099,20144,168,20952,-137556320,20146,200,200,43837,101,58,

                   105,110,102,63,0,2049,5525,117,45,102,0,1,20146,3,1,2147483646,11,10,20128,20174,

                   168,20952,-315716147,20176,200,200,43515,101,58,45,105,110,102,63,0,2049,5525,117,45,102,

                   0,1,20176,3,1,-2147483646,11,10,20157,20203,168,20952,-137773972,20205,200,200,43785,101,58,99,

                   108,105,112,0,2049,5525,117,45,117,0,1,20205,3,1,-2147483645,1,2147483645,2049,3930,10,

                   20187,20233,168,20952,2090204667,20235,200,21020,44958,102,58,69,49,0,2049,5525,45,124,102,58,

                   45,110,41,95,101,45,117,110,105,116,95,105,110,95,102,108,111,97,0,1,

                   20235,3,1793,20263,2049,5525,49,46,101,53,0,1,20265,2049,17695,10,20219,20298,168,20952,

                   1656704630,20300,200,21191,47499,102,58,115,105,103,110,101,100,45,115,113,114,116,0,2049,

                   5525,124,102,58,110,45,110,0,1,20300,3,2049,18191,2049,19824,2049,19059,2049,18001,2049,

                   17657,2049,17869,10,20275,20348,168,20952,265168733,20350,200,21195,47550,102,58,115,105,103,110,101,

                   100,45,115,113,117,97,114,101,0,2049,5525,124,102,58,110,45,110,0,1,20350,

                   3,2049,18191,2049,19824,2049,18191,2049,17869,2049,17657,2049,17869,10,20323,20391,168,0,2146687312,0,

                   200,200,0,102,58,45,115,104,105,102,116,0,2049,20233,2049,17869,10,20373,20414,168,

                   0,2068416526,0,200,200,0,102,58,43,115,104,105,102,116,0,2049,20233,2049,17899,10,

                   20396,20438,168,0,-1002717602,0,200,200,0,102,58,43,101,110,99,111,100,101,0,2049,

                   20298,2049,20391,10,20419,20462,168,0,1580218336,0,200,200,0,102,58,45,101,110,99,111,

                   100,101,0,2049,18191,2049,19824,2049,20414,2049,18191,2049,17869,2049,17657,2049,17869,10,20323,20493,

                   168,20952,-98026374,20495,200,21224,47910,102,58,116,111,45,101,0,2049,5525,45,101,124,102,

                   58,110,45,0,1,20495,3,2049,18191,2049,19347,1793,20517,2049,18224,1,-2147483647,10,1,20512,

                   2049,3638,2049,18191,2049,19381,1793,20532,2049,18224,1,2147483646,10,1,20527,2049,3638,2049,18191,2049,

                   19416,1793,20547,2049,18224,1,-2147483646,10,1,20542,2049,3638,2049,20438,2049,19451,2049,17734,2049,20203,

                   1,-2147483645,1,18224,2049,3274,1,2147483645,1,18224,2049,3274,10,20477,20588,168,20952,-137161766,20590,200,

                   20984,44057,101,58,116,111,45,102,0,2049,5525,101,45,124,102,58,45,110,0,1,

                   20590,3,1,-2147483647,1,19208,2049,3274,1,2147483646,1,19252,2049,3274,1,-2147483646,1,19299,2049,3274,

                   2049,17657,2049,20462,10,20572,20641,168,20952,1059163122,20643,200,21211,47737,102,58,115,116,111,114,

                   101,0,2049,5525,97,45,124,102,58,110,45,0,1,20643,3,1,20493,2049,2889,16,

                   10,20624,20677,168,20952,1043212047,20679,200,21094,46299,102,58,102,101,116,99,104,0,2049,5525,

                   97,45,124,102,58,45,110,0,1,20679,3,15,2049,20588,10,20660,20716,168,20952,-1736964994,

                   20718,200,200,46055,102,58,100,117,109,112,45,115,116,97,99,107,0,2049,5525,45,

                   0,1,20718,3,2049,18163,2,1,18544,2049,3153,1793,20741,2049,18574,2049,18191,2049,19093,2049,

                   12880,10,1,20732,2049,3153,10,20694,20769,168,20952,2104754815,20771,200,200,45998,102,58,100,117,

                   109,112,45,97,115,116,97,99,107,0,2049,5525,45,0,1,20771,3,2049,18607,2,

                   1,18574,2049,3153,1793,20794,2049,18191,2049,19093,2049,12880,2049,18544,10,1,20785,2049,3153,10,

                   20746,20814,168,20952,256140541,20816,200,200,44030,101,58,112,117,116,0,2049,5525,101,45,0,

                   1,20816,3,1,2147483645,1793,20839,2049,5525,101,58,77,65,88,0,1,20828,2049,12918,10,

                   1,20826,2049,3274,1,-2147483645,1793,20860,2049,5525,101,58,77,73,78,0,1,20849,2049,12918,

                   10,1,20847,2049,3274,1,0,1793,20879,2049,5525,101,58,48,0,1,20870,2049,12918,10,

                   1,20868,2049,3274,1,-2147483647,1793,20900,2049,5525,101,58,78,65,78,0,1,20889,2049,12918,

                   10,1,20887,2049,3274,1,2147483646,1793,20921,2049,5525,101,58,73,78,70,0,1,20910,2049,

                   12918,10,1,20908,2049,3274,1,-2147483646,1793,20943,2049,5525,101,58,45,73,78,70,0,1,

                   20931,2049,12918,10,1,20929,2049,3274,2049,20588,2049,19093,10,105,110,116,101,114,102,97,

                   99,101,47,102,108,111,97,116,105,110,103,112,111,105,110,116,46,114,101,116,

                   114,111,0,20952,22437,45,110,0,70,70,45,70,0,70,70,45,70,0,70,70,

                   45,70,0,45,110,0,70,70,45,0,70,45,0,70,70,45,70,0,45,70,

                   0,45,102,0,45,110,0,45,110,0,45,70,0,70,45,70,0,70,45,70,

                   0,70,45,70,0,70,45,70,0,110,108,117,45,0,110,109,45,110,0,70,

                   45,70,0,70,45,70,0,110,45,109,0,70,45,0,70,70,45,0,70,45,

                   70,70,0,110,109,45,110,109,110,109,0,70,70,45,0,45,110,0,70,45,

                   70,0,70,70,45,0,110,45,109,0,70,45,0,110,108,117,45,109,0,70,

                   70,45,70,0,70,70,45,0,109,110,45,111,0,109,110,45,111,0,70,45,

                   0,70,45,70,0,70,45,0,78,77,45,77,0,70,71,45,70,71,70,0,

                   45,70,0,70,45,0,70,70,45,70,0,70,45,0,70,45,0,97,98,99,

                   45,98,99,97,0,102,45,102,0,70,45,0,70,45,70,0,102,45,102,0,

                   70,45,70,0,70,45,70,0,102,45,102,0,110,45,0,70,71,45,71,70,

                   0,70,45,70,0,110,45,0,70,45,0,70,45,0,70,71,45,71,70,71,

                   0,45,70,0,45,63,0,45,70,0,45,70,0,20799,21276,168,22410,-1289714992,21278,200,

                   200,49218,102,105,108,101,58,111,112,101,114,97,116,105,111,110,0,2049,5525,45,

                   110,0,1,21278,3,1,4,2049,12792,2,2049,3517,1793,21333,3,2049,5525,69,114,114,

                   111,114,58,32,102,105,108,101,115,32,100,101,118,105,99,101,32,110,111,116,

                   32,102,111,117,110,100,0,1,21296,2049,12918,2049,12863,10,1,21293,2049,3638,2049,12769,

                   10,21252,0,156,22410,-42586063,21358,200,200,48541,102,105,108,101,58,82,0,45,110,0,

                   21340,1,156,22410,-42586058,21377,200,200,48633,102,105,108,101,58,87,0,45,110,0,21359,

                   2,156,22410,-42586080,21396,200,200,48497,102,105,108,101,58,65,0,45,110,0,21378,3,

                   156,22410,-1405340036,21416,200,200,48583,102,105,108,101,58,82,43,0,45,110,0,21397,21436,

                   168,22410,-1405821071,21438,200,200,48941,102,105,108,101,58,111,112,101,110,0,2049,5525,115,

                   109,45,104,0,1,21438,3,1,0,2049,21276,10,21417,21471,168,22410,838181269,21473,200,200,

                   48676,102,105,108,101,58,99,108,111,115,101,0,2049,5525,104,45,0,1,21473,3,

                   1,1,2049,21276,10,21451,21503,168,22410,-1405725381,21505,200,200,49290,102,105,108,101,58,114,

                   101,97,100,0,2049,5525,104,45,99,0,1,21505,3,1,2,2049,21276,10,21484,21537,

                   168,22410,862108810,21539,200,200,50053,102,105,108,101,58,119,114,105,116,101,0,2049,5525,

                   99,104,45,0,1,21539,3,1,3,2049,21276,10,21517,21570,168,22410,-1405653136,21572,200,200,

                   49993,102,105,108,101,58,116,101,108,108,0,2049,5525,104,45,110,0,1,21572,3,

                   1,4,2049,21276,10,21551,21603,168,22410,-1405689305,21605,200,200,49674,102,105,108,101,58,115,

                   101,101,107,0,2049,5525,110,104,45,0,1,21605,3,1,5,2049,21276,10,21584,21636,

                   168,22410,-1405684262,21638,200,200,49732,102,105,108,101,58,115,105,122,101,0,2049,5525,104,

                   45,110,0,1,21638,3,1,6,2049,21276,10,21617,21671,168,22410,1920889586,21673,200,200,48713,

                   102,105,108,101,58,100,101,108,101,116,101,0,2049,5525,115,45,0,1,21673,3,

                   1,7,2049,21276,10,21650,21704,168,22410,841745569,21706,200,200,48809,102,105,108,101,58,102,

                   108,117,115,104,0,2049,5525,102,45,0,1,21706,3,1,8,2049,21276,10,21684,21742,

                   168,22410,-983416527,21744,200,200,49409,102,105,108,101,58,114,101,97,100,47,98,121,116,

                   101,115,0,2049,5525,112,110,102,45,0,1,21744,3,1,9,2049,21276,10,21717,21783,

                   168,22410,1832429504,21785,200,200,50105,102,105,108,101,58,119,114,105,116,101,47,98,121,

                   116,101,115,0,2049,5525,112,110,102,45,0,1,21785,3,1,10,2049,21276,10,21757,

                   21819,168,22410,-1826580883,21821,200,200,49547,102,105,108,101,58,114,101,97,100,47,99,0,

                   2049,5525,104,45,99,0,1,21821,3,1,11,2049,21276,10,21798,21855,168,22410,-1761342084,21857,

                   200,200,50221,102,105,108,101,58,119,114,105,116,101,47,99,0,2049,5525,99,104,

                   45,99,0,1,21857,3,1,12,2049,21276,10,21833,21892,168,22410,996833214,21894,200,200,48736,

                   102,105,108,101,58,101,120,105,115,116,115,63,0,2049,5525,115,45,102,0,1,

                   21894,3,1,0,2049,21436,2,2049,3492,1793,21915,2049,21471,2049,3239,10,1,21910,1793,21923,

                   3,2049,3257,10,1,21919,2049,66,10,21870,21959,168,22410,-1949048916,21961,200,200,49105,102,105,

                   108,101,58,111,112,101,110,45,102,111,114,45,114,101,97,100,105,110,103,0,

                   2049,5525,115,45,110,110,0,1,21961,3,1,0,2049,21436,2,2049,21636,4,10,21928,

                   22008,168,22410,-190176246,22010,200,200,49027,102,105,108,101,58,111,112,101,110,45,102,111,

                   114,45,97,112,112,101,110,100,0,2049,5525,115,45,110,110,0,1,22010,3,1,

                   2,2049,21436,2,2049,21636,4,10,21978,22058,168,22410,732146102,22060,200,200,49173,102,105,108,

                   101,58,111,112,101,110,45,102,111,114,45,119,114,105,116,105,110,103,0,2049,

                   5525,115,45,110,0,1,22060,3,1,1,2049,21436,10,22027,22085,156,0,193455704,0,200,

                   200,0,70,73,68,0,0,22072,22100,156,0,2089574848,0,200,200,0,83,105,122,101,

                   0,0,22086,22117,156,0,-1497417501,0,200,200,0,65,99,116,105,111,110,0,0,22101,

                   22133,168,0,191272619,0,200,200,0,45,101,111,102,63,0,3841,22085,2049,21570,3841,22100,

                   13,10,22118,22159,168,0,333634225,0,200,200,0,112,114,101,115,101,114,118,101,0,

                   1,22085,1793,22170,1,22100,1,27,2049,4871,10,1,22163,2049,4871,10,22027,22199,168,22410,

                   -1853937936,22201,200,200,49348,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,

                   2049,5525,102,45,115,0,1,22201,3,2049,2585,4,1,13,2049,21276,2049,2585,10,22175,

                   22246,168,22410,-1671886311,22248,200,200,48864,102,105,108,101,58,102,111,114,45,101,97,99,

                   104,45,108,105,110,101,0,2049,5525,115,113,45,0,1,22248,3,1793,22286,4097,22117,

                   2049,21959,4097,22085,4097,22100,1793,22277,3841,22085,2049,22199,3841,22117,8,2049,22133,10,1,22267,

                   2049,3064,3841,22085,2049,21471,10,1,22257,2049,22159,10,22218,22304,156,0,193455704,0,200,200,

                   0,70,73,68,0,0,22218,22325,168,22410,857162517,22327,200,200,49793,102,105,108,101,58,

                   115,108,117,114,112,0,2049,5525,97,115,45,0,1,22327,3,1793,22361,4,2049,5179,

                   2049,21959,4097,22304,1793,22352,3841,22304,2049,21503,2049,5063,10,1,22345,2049,3153,3841,22304,2049,

                   21471,10,1,22336,2049,5209,10,22305,22385,168,22410,-1405677314,22387,200,200,49887,102,105,108,101,

                   58,115,112,101,119,0,2049,5525,115,115,45,0,1,22387,3,2049,22058,4,1793,22403,

                   67502597,2049,21537,10,1,22399,2049,5849,2049,21471,10,105,110,116,101,114,102,97,99,101,

                   47,102,105,108,101,115,121,115,116,101,109,46,114,101,116,114,111,0,22410,23476,

                   22366,22464,168,23455,1814120867,22466,200,200,52643,105,111,58,117,110,105,120,45,115,121,115,

                   99,97,108,108,0,2049,5525,110,45,0,1,22466,3,1,8,2049,12792,2,2049,3517,

                   1793,22520,3,2049,5525,69,114,114,111,114,58,32,85,78,73,88,32,100,101,118,

                   105,99,101,32,110,111,116,32,102,111,117,110,100,0,1,22484,2049,12918,2049,12863,

                   10,1,22481,2049,3638,2049,12769,10,22439,22548,168,23455,-1493515992,22550,200,200,64702,117,110,105,

                   120,58,115,121,115,116,101,109,0,2049,5525,115,45,0,1,22550,3,1,0,2049,

                   22464,10,22527,22580,168,23455,1646723733,22582,200,200,63854,117,110,105,120,58,102,111,114,107,

                   0,2049,5525,45,110,0,1,22582,3,1,1,2049,22464,10,22561,22613,168,23455,-1493568520,22615,

                   200,200,63131,117,110,105,120,58,101,120,101,99,48,0,2049,5525,115,45,0,1,

                   22615,3,1,2,2049,22464,10,22593,22646,168,23455,-1493568519,22648,200,200,63192,117,110,105,120,

                   58,101,120,101,99,49,0,2049,5525,115,115,45,0,1,22648,3,1,3,2049,22464,

                   10,22626,22680,168,23455,-1493568518,22682,200,200,63278,117,110,105,120,58,101,120,101,99,50,

                   0,2049,5525,115,115,115,45,0,1,22682,3,1,4,2049,22464,10,22660,22715,168,23455,

                   -1493568517,22717,200,200,63369,117,110,105,120,58,101,120,101,99,51,0,2049,5525,115,115,

                   115,115,45,0,1,22717,3,1,5,2049,22464,10,22695,22750,168,23455,1646697309,22752,200,200,

                   63612,117,110,105,120,58,101,120,105,116,0,2049,5525,110,45,0,1,22752,3,1,

                   6,2049,22464,10,22731,22784,168,23455,-1986827424,22786,200,200,64009,117,110,105,120,58,103,101,

                   116,112,105,100,0,2049,5525,45,110,0,1,22786,3,1,7,2049,22464,10,22763,22816,

                   168,23455,1647319128,22818,200,200,64792,117,110,105,120,58,119,97,105,116,0,2049,5525,45,

                   110,0,1,22818,3,1,8,2049,22464,10,22797,22848,168,23455,1646896687,22850,200,200,64048,117,

                   110,105,120,58,107,105,108,108,0,2049,5525,110,110,45,0,1,22850,3,1,9,

                   2049,22464,10,22829,22882,168,23455,-1480834715,22884,200,200,64256,117,110,105,120,58,112,111,112,

                   101,110,0,2049,5525,115,110,45,110,0,1,22884,3,1,10,2049,22464,10,22862,22918,

                   168,23455,-1637268983,22920,200,200,64108,117,110,105,120,58,112,99,108,111,115,101,0,2049,

                   5525,110,45,0,1,22920,3,1,11,2049,22464,10,22897,22951,168,23455,-1496516179,22953,200,200,

                   62991,117,110,105,120,58,99,104,100,105,114,0,2049,5525,115,45,0,1,22953,3,

                   1,13,2049,22464,10,22931,22985,168,23455,-1986839220,22987,200,200,63932,117,110,105,120,58,103,

                   101,116,101,110,118,0,2049,5525,115,97,45,0,1,22987,3,1,14,2049,22464,10,

                   22964,23020,168,23455,-1615645947,23022,200,200,64431,117,110,105,120,58,112,117,116,101,110,118,

                   0,2049,5525,115,45,0,1,23022,3,1,15,2049,22464,10,22999,23053,168,23455,-1477396740,23055,

                   200,200,64529,117,110,105,120,58,115,108,101,101,112,0,2049,5525,110,45,0,1,

                   23055,3,1,16,2049,22464,10,23033,23088,168,23455,1296565974,23090,200,200,63465,117,110,105,120,

                   58,101,120,101,99,117,116,101,0,2049,5525,115,45,0,1,23090,3,1,17,2049,

                   22464,10,23066,23120,168,23455,1647076497,23122,200,200,64122,117,110,105,120,58,112,105,112,101,

                   0,2049,5525,115,45,115,0,1,23122,3,1,0,2049,22882,1,22199,1,22918,2049,2923,

                   10,23101,23162,168,23455,-1143209138,23164,200,200,63895,117,110,105,120,58,103,101,116,45,99,

                   119,100,0,2049,5525,45,115,41,0,1,23164,3,2049,5525,112,119,100,0,1,23173,

                   2049,23120,2049,8555,2049,5525,47,0,1,23185,2049,5825,10,23140,23225,168,23455,-960446853,23227,200,

                   200,63050,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,5525,45,110,0,1,23227,3,2049,5525,108,115,32,45,

                   49,32,124,32,119,99,32,45,108,0,1,23235,2049,23120,2049,8555,2049,288,10,23192,

                   23286,168,23455,1737547061,23288,200,200,63675,117,110,105,120,58,102,111,114,45,101,97,99,

                   104,45,102,105,108,101,0,2049,5525,113,45,0,1,23288,3,2049,5525,108,115,32,

                   45,49,32,45,112,0,1,23296,1,0,2049,22882,2049,23225,1793,23329,1793,23324,2049,22199,

                   2049,5466,67502597,8,10,1,23317,2049,2905,10,1,23315,2049,3153,2049,22918,3,10,23258,23352,

                   168,0,274811347,0,200,200,0,115,116,97,114,116,0,4,2049,5179,1,0,2049,22882,

                   10,23337,23374,168,0,2090683713,0,200,200,0,114,101,97,100,0,2,2049,21503,2,2049,

                   5063,2049,3470,10,23360,23399,168,0,-42507930,0,200,200,0,102,105,110,105,115,104,0,

                   2049,22918,2049,5153,10,23258,23429,168,23455,-1528406284,23431,200,200,64572,117,110,105,120,58,115,

                   108,117,114,112,45,112,105,112,101,0,2049,5525,97,115,45,110,0,1,23431,3,

                   1793,23450,2049,23352,1,23374,2049,3093,2049,23399,10,1,23441,2049,5209,10,105,110,116,101,

                   114,102,97,99,101,47,117,110,105,120,46,114,101,116,114,111,0,23455,23578,23404,

                   23496,168,23558,-2118913842,23498,200,200,54288,110,58,114,97,110,100,111,109,0,2049,5525,45,

                   110,0,1,23498,3,1,10,2049,12792,2,2049,3517,1793,23551,3,2049,5525,69,114,114,

                   111,114,58,32,82,78,71,32,100,101,118,105,99,101,32,110,111,116,32,102,

                   111,117,110,100,0,1,23516,2049,12918,2049,12863,10,1,23513,2049,3638,2049,12769,10,105,

                   110,116,101,114,102,97,99,101,47,114,110,103,46,114,101,116,114,111,0,23558,

                   24157,23478,23605,168,24135,198751996,23607,200,200,39417,99,108,111,99,107,58,111,112,101,114,

                   97,116,105,111,110,0,2049,5525,110,45,0,1,23607,3,1,5,2049,12792,2,2049,

                   3517,1793,23662,3,2049,5525,69,114,114,111,114,58,32,99,108,111,99,107,32,100,

                   101,118,105,99,101,32,110,111,116,32,102,111,117,110,100,0,1,23625,2049,12918,

                   2049,12863,10,1,23622,2049,3638,2049,12769,10,23580,23694,168,24135,658409087,23696,200,200,39559,99,

                   108,111,99,107,58,116,105,109,101,115,116,97,109,112,0,2049,5525,45,110,0,

                   1,23696,3,1,0,2049,23605,10,23669,23726,168,24135,-115155671,23728,200,200,39177,99,108,111,

                   99,107,58,100,97,121,0,2049,5525,45,110,0,1,23728,3,1,1,2049,23605,10,

                   23707,23760,168,24135,-839305775,23762,200,200,39345,99,108,111,99,107,58,109,111,110,116,104,

                   0,2049,5525,45,110,0,1,23762,3,1,2,2049,23605,10,23739,23793,168,24135,495588508,23795,

                   200,200,39872,99,108,111,99,107,58,121,101,97,114,0,2049,5525,45,110,0,1,

                   23795,3,1,3,2049,23605,10,23773,23826,168,24135,494989129,23828,200,200,39201,99,108,111,99,

                   107,58,104,111,117,114,0,2049,5525,45,110,0,1,23828,3,1,4,2049,23605,10,

                   23806,23861,168,24135,-1934400739,23863,200,200,39272,99,108,111,99,107,58,109,105,110,117,116,

                   101,0,2049,5525,45,110,0,1,23863,3,1,5,2049,23605,10,23839,23896,168,24135,-1704734105,

                   23898,200,200,39486,99,108,111,99,107,58,115,101,99,111,110,100,0,2049,5525,45,

                   110,0,1,23898,3,1,6,2049,23605,10,23874,23932,168,24135,-1548566609,23934,200,200,39676,99,

                   108,111,99,107,58,117,116,99,58,100,97,121,0,2049,5525,45,110,0,1,23934,

                   3,1,7,2049,23605,10,23909,23970,168,24135,1544278487,23972,200,200,39773,99,108,111,99,107,

                   58,117,116,99,58,109,111,110,116,104,0,2049,5525,45,110,0,1,23972,3,1,

                   8,2049,23605,10,23945,24007,168,24135,437667810,24009,200,200,39840,99,108,111,99,107,58,117,

                   116,99,58,121,101,97,114,0,2049,5525,45,110,0,1,24009,3,1,9,2049,23605,

                   10,23983,24044,168,24135,437068431,24046,200,200,39707,99,108,111,99,107,58,117,116,99,58,

                   104,111,117,114,0,2049,5525,45,110,0,1,24046,3,1,10,2049,23605,10,24020,24083,

                   168,24135,-585531421,24085,200,200,39739,99,108,111,99,107,58,117,116,99,58,109,105,110,

                   117,116,101,0,2049,5525,45,110,0,1,24085,3,1,11,2049,23605,10,24057,24122,168,

                   24135,-355864787,24124,200,200,39806,99,108,111,99,107,58,117,116,99,58,115,101,99,111,

                   110,100,0,2049,5525,45,110,0,1,24124,3,1,12,2049,23605,10,105,110,116,101,

                   114,102,97,99,101,47,99,108,111,99,107,46,114,101,116,114,111,0,24135,24681,

                   24096,24185,168,0,1615087013,0,200,200,0,115,99,114,105,112,116,58,111,112,101,114,

                   97,116,105,111,110,0,1,9,2049,12792,2,2049,3517,1793,24238,3,2049,5525,69,114,

                   114,111,114,58,32,115,99,114,105,112,116,105,110,103,32,100,101,118,105,99,

                   101,32,110,111,116,32,102,111,117,110,100,0,1,24197,2049,12918,2049,12863,10,1,

                   24194,2049,3638,2049,12769,10,24096,24271,168,24655,2076096266,24273,200,200,59876,115,99,114,105,112,

                   116,58,97,114,103,117,109,101,110,116,115,0,2049,5525,45,110,0,1,24273,3,

                   1,0,2049,24185,10,24245,24313,168,24655,-968823164,24315,200,200,60292,115,99,114,105,112,116,

                   58,103,101,116,45,97,114,103,117,109,101,110,116,0,2049,5525,110,45,115,0,

                   1,24315,3,2049,5500,4,1,1,2049,24185,10,24284,24347,168,24655,-1640583287,24349,200,200,52068,

                   105,110,99,108,117,100,101,0,2049,5525,115,45,0,1,24349,3,1,2,2049,24185,

                   10,24330,24381,168,24655,-352813579,24383,200,200,60460,115,99,114,105,112,116,58,110,97,109,

                   101,0,2049,5525,45,115,0,1,24383,3,2049,5500,1,3,2049,24185,10,24360,24425,168,

                   24655,1275782788,24427,200,200,59930,115,99,114,105,112,116,58,99,117,114,114,101,110,116,

                   45,102,105,108,101,0,2049,5525,45,115,0,1,24427,3,2049,5500,1,4,2049,24185,

                   10,24396,24469,180,24655,1275998476,24471,200,200,60057,115,99,114,105,112,116,58,99,117,114,

                   114,101,110,116,45,108,105,110,101,0,2049,5525,45,110,0,1,24471,3,1,5,

                   2049,24185,2049,156,10,24440,24514,168,24655,-1015360939,24516,200,200,60351,115,99,114,105,112,116,

                   58,105,103,110,111,114,101,45,116,111,45,101,111,108,0,2049,5525,45,0,1,

                   24516,3,1,6,2049,24185,10,24484,24556,168,24655,465657533,24558,200,200,59751,115,99,114,105,

                   112,116,58,97,98,111,114,116,45,105,110,99,108,117,100,101,0,2049,5525,45,

                   0,1,24558,3,1,7,2049,24185,10,24526,24583,168,24655,252833149,24585,200,200,35769,97,98,

                   111,114,116,0,2049,5525,45,0,1,24585,3,1,149,2049,4827,1,8,2049,24185,10,

                   24568,24633,168,24655,1895981246,24635,200,200,60214,115,99,114,105,112,116,58,99,117,114,114,

                   101,110,116,45,108,105,110,101,45,116,101,120,116,0,2049,5525,45,115,0,1,

                   24635,3,2049,5500,1793,24650,1,9,2049,24185,10,1,24645,2049,2905,10,105,110,116,101,

                   114,102,97,99,101,47,115,99,114,105,112,116,105,110,103,46,114,101,116,114,

                   111,0,24655,25287,24599,24709,168,25289,321067545,24711,200,200,62012,115,111,99,107,101,116,58,

                   111,112,101,114,97,116,105,111,110,0,2049,5525,110,45,0,1,24711,3,1,7,

                   2049,12792,2,2049,3517,1793,24874,3,2049,5525,69,114,114,111,114,58,32,115,111,99,

                   107,101,116,32,100,101,118,105,99,101,32,110,111,116,32,102,111,117,110,100,

                   0,1,24729,2049,12918,2049,12863,2049,5525,83,101,101,32,104,116,116,112,115,58,47,

                   47,114,101,116,114,111,102,111,114,116,104,46,111,114,103,47,115,117,112,112,

                   111,114,116,47,50,48,50,50,46,49,47,83,79,67,75,69,84,83,46,109,

                   100,0,1,24768,2049,12918,2049,12863,2049,5525,102,111,114,32,105,110,115,116,114,117,

                   99,116,105,111,110,115,32,111,110,32,101,110,97,98,108,105,110,103,32,115,

                   111,99,107,101,116,115,46,0,1,24829,2049,12918,2049,12863,10,1,24726,2049,3638,2049,

                   12769,10,24683,24911,168,25263,2071663234,24913,200,200,61722,115,111,99,107,101,116,58,103,101,

                   116,104,111,115,116,98,121,110,97,109,101,0,2049,5525,97,115,45,0,1,24913,

                   3,1,0,2049,24709,10,24881,24948,168,25263,-196324068,24950,200,200,61701,115,111,99,107,101,

                   116,58,99,114,101,97,116,101,0,2049,5525,45,110,0,1,24950,3,1,1,2049,

                   24709,10,24925,24982,168,25263,-773240955,24984,200,200,61398,115,111,99,107,101,116,58,98,105,

                   110,100,0,2049,5525,115,110,45,110,0,1,24984,3,1,2,2049,24709,10,24961,25020,

                   168,25263,145744503,25022,200,200,61856,115,111,99,107,101,116,58,108,105,115,116,101,110,

                   0,2049,5525,110,110,45,110,110,0,1,25022,3,1,3,2049,24709,10,24997,25059,168,

                   25263,-292451304,25061,200,200,61329,115,111,99,107,101,116,58,97,99,99,101,112,116,0,

                   2049,5525,110,45,110,110,0,1,25061,3,1,4,2049,24709,10,25036,25098,168,25263,2004958354,

                   25100,200,200,61612,115,111,99,107,101,116,58,99,111,110,110,101,99,116,0,2049,

                   5525,110,45,110,110,0,1,25100,3,1,5,2049,24709,10,25074,25134,168,25263,-772634382,25136,

                   200,200,62252,115,111,99,107,101,116,58,115,101,110,100,0,2049,5525,115,110,45,

                   110,110,0,1,25136,3,1,6,2049,24709,10,25113,25171,168,25263,-772670664,25173,200,200,62082,

                   115,111,99,107,101,116,58,114,101,99,118,0,2049,5525,97,110,110,45,110,110,

                   0,1,25173,3,1,7,2049,24709,10,25150,25210,168,25263,254147678,25212,200,200,61511,115,111,

                   99,107,101,116,58,99,108,111,115,101,0,2049,5525,110,45,0,1,25212,3,1,

                   8,2049,24709,10,25188,25249,168,25263,1248070378,25251,200,200,61527,115,111,99,107,101,116,58,

                   99,111,110,102,105,103,117,114,101,0,2049,5525,115,115,45,0,1,25251,3,1,

                   9,2049,24709,10,105,110,116,101,114,102,97,99,101,47,115,111,99,107,101,116,

                   115,46,114,101,116,114,111,0,25263,25306,115,111,99,107,101,116,58,111,112,101,

                   114,97,116,105,111,110,0,25289,25614,25223,25325,168,25588,-1650400160,25327,200,200,52314,105,111,

                   58,99,111,114,101,0,2049,5525,110,45,0,1,25327,3,1,8000,2049,12792,2049,12769,

                   10,25308,25359,168,25588,-1507548164,25361,200,200,40579,99,111,114,101,58,105,110,105,116,0,

                   2049,5525,110,45,0,1,25361,3,1,0,2049,25325,10,25340,25392,168,25588,1802584310,25394,200,

                   200,40907,99,111,114,101,58,115,116,97,114,116,0,2049,5525,97,110,45,0,1,

                   25394,3,1,1,2049,25325,10,25372,25426,168,25588,1798365542,25428,200,200,40707,99,111,114,101,

                   58,112,97,117,115,101,0,2049,5525,110,45,0,1,25428,3,1,2,2049,25325,10,

                   25406,25467,168,25588,-911635434,25469,200,200,40739,99,111,114,101,58,112,97,117,115,101,45,

                   99,117,114,114,101,110,116,0,2049,5525,45,0,1,25469,3,1,3,2049,25325,10,

                   25439,25500,168,25588,-700534119,25502,200,200,40831,99,111,114,101,58,114,101,115,117,109,101,

                   0,2049,5525,110,45,0,1,25502,3,1,4,2049,25325,10,25479,25536,168,25588,895714865,25538,

                   200,200,40779,99,111,114,101,58,114,101,97,100,47,114,101,103,0,2049,5525,110,

                   45,118,0,1,25538,3,1,5,2049,25325,10,25513,25574,168,25588,-1200921056,25576,200,200,40979,

                   99,111,114,101,58,119,114,105,116,101,47,114,101,103,0,2049,5525,118,110,45,

                   0,1,25576,3,1,6,2049,25325,10,105,110,116,101,114,102,97,99,101,47,109,

                   117,108,116,105,99,111,114,101,46,114,101,116,114,111,0,25588,25823,25550,25639,168,

                   25803,2042654789,25641,200,200,48450,102,102,105,58,111,112,101,114,97,116,105,111,110,0,

                   2049,5525,110,45,63,0,1,25641,3,1,8100,2049,12792,2,2049,3517,1793,25695,3,2049,

                   5525,69,114,114,111,114,58,32,70,70,73,32,100,101,118,105,99,101,32,110,

                   111,116,32,102,111,117,110,100,0,1,25660,2049,12918,2049,12863,10,1,25657,2049,3638,

                   2049,12769,10,25616,25720,168,25803,1122521030,25722,200,200,48412,102,102,105,58,111,112,101,110,

                   0,2049,5525,115,45,110,0,1,25722,3,1,0,2049,25639,10,25702,25755,168,25803,-1453717192,

                   25757,200,200,48335,102,102,105,58,109,97,112,45,115,121,109,0,2049,5525,115,110,

                   45,110,0,1,25757,3,1,1,2049,25639,10,25734,25790,168,25803,-1876846240,25792,200,200,48253,

                   102,102,105,58,105,110,118,111,107,101,0,2049,5525,110,45,0,1,25792,3,1,

                   2,2049,25639,10,105,110,116,101,114,102,97,99,101,47,102,102,105,46,114,101,

                   116,114,111,0,25803,26313,25770,25845,168,26288,-931970681,25847,200,200,65061,117,110,115,105,103,

                   110,101,100,58,43,0,2049,5525,110,110,45,110,0,1,25847,3,1,0,1,8101,

                   2049,12792,2049,12769,17,10,25825,25885,168,26288,-931970679,25887,200,200,65101,117,110,115,105,103,

                   110,101,100,58,45,0,2049,5525,110,110,45,110,0,1,25887,3,1,0,1,8101,

                   2049,12792,2049,12769,18,10,25865,25925,168,26288,-931970682,25927,200,200,64914,117,110,115,105,103,

                   110,101,100,58,42,0,2049,5525,110,110,45,110,0,1,25927,3,1,0,1,8101,

                   2049,12792,2049,12769,19,10,25905,25968,168,26288,-75122677,25970,200,200,65242,117,110,115,105,103,

                   110,101,100,58,47,109,111,100,0,2049,5525,110,110,45,110,110,0,1,25970,3,

                   1,0,1,8101,2049,12792,2049,12769,20,10,25945,26011,168,26288,-1303722799,26013,200,200,65319,117,

                   110,115,105,103,110,101,100,58,101,113,63,0,2049,5525,110,110,45,102,0,1,

                   26013,3,1,0,1,8101,2049,12792,2049,12769,11,10,25989,26054,168,26288,-75203234,26056,200,200,

                   65148,117,110,115,105,103,110,101,100,58,45,101,113,63,0,2049,5525,110,110,45,

                   102,0,1,26056,3,1,0,1,8101,2049,12792,2049,12769,12,10,26031,26096,168,26288,-1303715077,

                   26098,200,200,65488,117,110,115,105,103,110,101,100,58,108,116,63,0,2049,5525,110,

                   110,45,102,0,1,26098,3,1,0,1,8101,2049,12792,2049,12769,13,10,26074,26138,168,

                   26288,-1303720522,26140,200,200,65407,117,110,115,105,103,110,101,100,58,103,116,63,0,2049,

                   5525,110,110,45,102,0,1,26140,3,1,0,1,8101,2049,12792,2049,12769,14,10,26116,

                   26182,168,26288,1896375546,26184,200,200,65566,117,110,115,105,103,110,101,100,58,115,104,105,

                   102,116,0,2049,5525,110,110,45,110,0,1,26184,3,1,0,1,8101,2049,12792,2049,

                   12769,24,10,26158,26226,168,26288,1807759541,26228,200,200,64959,117,110,115,105,103,110,101,100,

                   58,42,47,109,111,100,0,2049,5525,110,110,110,45,110,110,0,1,26228,3,1,

                   1,1,0,1,8101,2049,12792,2,2049,12769,2049,12769,10,26202,26267,168,26288,185772414,26269,200,

                   200,28059,42,47,109,111,100,0,2049,5525,110,110,110,45,110,110,0,1,26269,3,

                   1,1,1,8101,2049,12792,2049,12769,10,105,110,116,101,114,102,97,99,101,47,117,

                   110,115,105,103,110,101,100,46,114,101,116,114,111,0,26288,26461,26252,26337,168,26438,

                   -1827032295,26339,200,200,42757,100,58,117,115,101,45,104,97,115,104,101,115,0,2049,5525,

                   45,0,1,26339,3,1,29,1,258,1,5,18,16,1793,26358,2049,188,15,10,1,

                   26354,1,258,1,8,18,16,1,2049,1,258,16,1,5994,1,258,2049,3953,16,10,

                   26315,26402,168,26438,1901154183,26404,200,200,42813,100,58,117,115,101,45,115,116,114,105,110,

                   103,115,0,2049,5525,45,0,1,26404,3,1,118,1,258,1,5,18,16,1,198,

                   1,258,1,8,18,16,1,0,1,258,16,1,0,1,258,2049,3953,16,10,105,

                   110,116,101,114,102,97,99,101,47,102,117,116,117,114,101,46,114,101,116,114,

                   111,0,26438,26621,26379,26485,168,0,1388979734,0,200,200,0,98,108,111,99,107,58,105,

                   110,118,111,107,101,0,1,3,2049,12792,2049,12769,10,26379,26512,168,26598,427535558,26514,200,

                   200,36567,98,108,111,99,107,58,114,101,97,100,0,2049,5525,110,97,45,0,1,

                   26514,3,1,0,2049,26485,10,26492,26547,168,26598,1230177653,26549,200,200,36690,98,108,111,99,

                   107,58,119,114,105,116,101,0,2049,5525,110,97,45,0,1,26549,3,1,1,2049,

                   26485,10,26526,26585,168,26598,-1436880765,26587,200,200,36643,98,108,111,99,107,58,115,101,116,

                   45,102,105,108,101,0,2049,5525,115,45,0,1,26587,3,1,2,2049,26485,10,105,

                   110,116,101,114,102,97,99,101,47,98,108,111,99,107,115,46,114,101,116,114,

                   111,0,26598,27696,26561,26648,168,26914,-686480257,26650,200,200,44449,101,114,114,58,115,101,116,

                   45,104,97,110,100,108,101,114,0,2049,5525,110,110,45,0,1,26650,3,1,1234,

                   2049,12792,2,2049,3517,1793,26715,3,2049,5525,69,114,114,111,114,58,32,101,114,114,

                   111,114,32,104,97,110,100,108,105,110,103,32,100,101,118,105,99,101,32,110,

                   111,116,32,102,111,117,110,100,0,1,26669,2049,12918,2049,12863,10,1,26666,2049,3638,

                   1,0,4,2049,12769,10,26623,26742,168,26914,1955994964,26744,200,200,44281,101,114,114,58,100,

                   115,117,0,2049,5525,45,0,1,26744,3,2049,12979,2049,12863,2049,5525,69,82,82,79,

                   82,58,32,68,83,85,58,32,68,65,84,65,32,83,84,65,67,75,32,85,

                   78,68,69,82,70,76,79,87,0,1,26755,2049,12918,2049,12863,2049,13112,10,26725,26814,

                   168,26914,1955994958,26816,200,200,44243,101,114,114,58,100,115,111,0,2049,5525,45,0,1,

                   26816,3,2049,12979,2049,12863,2049,5525,69,82,82,79,82,58,32,68,83,79,58,32,

                   68,65,84,65,32,83,84,65,67,75,32,79,86,69,82,70,76,79,87,0,

                   1,26827,2049,12918,2049,12863,2049,13112,10,26797,26894,168,26914,700502841,26896,200,200,44394,101,114,

                   114,58,115,101,116,45,100,101,102,97,117,108,116,115,0,2049,5525,45,0,1,

                   26896,3,1,26742,1,1,2049,26648,1,26814,1,2,2049,26648,10,105,110,116,101,114,

                   102,97,99,101,47,101,114,114,111,114,46,114,101,116,114,111,0,26868,26961,168,

                   0,-1638437621,26963,200,200,0,105,111,99,116,108,58,111,112,101,114,97,116,105,111,

                   110,0,2049,5525,110,45,0,1,26963,3,1,14,2049,12792,2,2049,3517,1793,27018,3,

                   2049,5525,69,114,114,111,114,58,32,105,111,99,116,108,32,100,101,118,105,99,

                   101,32,110,111,116,32,102,111,117,110,100,0,1,26981,2049,12918,2049,12863,10,1,

                   26978,2049,3638,2049,12769,10,26936,27050,168,0,-1756413478,27052,200,200,0,105,111,99,116,108,

                   58,116,101,114,109,45,115,105,122,101,0,2049,5525,45,110,110,0,1,27052,3,

                   1,0,2049,26961,10,27025,27090,168,0,-1813451557,27092,200,200,0,105,111,99,116,108,58,

                   115,101,116,45,99,98,114,101,97,107,0,2049,5525,45,0,1,27092,3,1,1,

                   2049,26961,10,27064,27128,168,0,-1461233020,27130,200,200,0,105,111,99,116,108,58,115,101,

                   116,45,108,98,114,101,97,107,0,2049,5525,45,0,1,27130,3,1,2,2049,26961,

                   10,27102,27166,168,0,-193579625,27168,200,200,0,105,111,99,116,108,58,115,97,118,101,

                   45,115,116,97,116,101,0,2049,5525,45,0,1,27168,3,1,3,2049,26961,10,27140,

                   27207,168,0,-2031814164,27209,200,200,0,105,111,99,116,108,58,114,101,115,116,111,114,

                   101,45,115,116,97,116,101,0,2049,5525,45,0,1,27209,3,1,4,2049,26961,10,

                   1793,27240,1,202,1,2,17,8,2049,2100,2049,198,3841,13770,8,2049,2100,2049,188,16,

                   10,1,27221,27178,27256,168,27672,2089149710,27258,200,200,31764,72,79,77,69,0,2049,5525,45,

                   115,0,1,27258,3,2049,2585,1,4096,17,10,37,115,47,46,99,111,110,102,105,

                   103,47,114,101,116,114,111,102,111,114,116,104,47,108,105,98,114,97,114,121,

                   47,37,115,46,114,101,116,114,111,0,27242,27270,156,27672,1492345816,27336,200,200,52713,108,

                   105,98,114,97,114,121,58,46,67,79,78,70,73,71,0,45,115,0,46,47,

                   108,105,98,114,97,114,121,47,37,115,46,114,101,116,114,111,0,27309,27337,156,

                   27672,-516195150,27379,200,200,52914,108,105,98,114,97,114,121,58,67,87,68,0,45,115,

                   0,27356,27401,168,27672,-516159214,27403,200,200,53012,108,105,98,114,97,114,121,58,99,119,

                   100,0,2049,5525,115,45,115,0,1,27403,3,1,27337,2049,9899,10,27380,27440,168,27672,

                   -1511153512,27442,200,200,52796,108,105,98,114,97,114,121,58,46,99,111,110,102,105,103,

                   0,2049,5525,45,115,0,1,27442,3,2049,5525,72,79,77,69,0,1,27450,2049,27256,

                   2049,22985,2049,27256,1,27270,2049,9899,10,27415,27494,168,27672,-666395371,27496,200,200,53077,108,105,

                   98,114,97,114,121,58,102,105,108,101,110,97,109,101,0,2049,5525,115,45,115,

                   0,1,27496,3,2,2049,27401,2,2049,21892,1,2816,2049,3638,3,2049,27440,2,2049,21892,

                   1793,27522,10,1,27521,2049,3638,3,2049,5500,10,27468,27557,168,27672,-916721742,27559,200,200,52978,

                   108,105,98,114,97,114,121,58,99,111,110,116,97,105,110,115,63,0,2049,5525,

                   115,45,102,0,1,27559,3,1,27401,1,27440,2049,2923,1,21892,2049,2961,22,10,27530,

                   27600,168,27672,146929844,27602,200,200,53138,108,105,98,114,97,114,121,58,108,111,97,100,

                   0,2049,5525,115,45,0,1,27602,3,2,2049,27557,1793,27618,2049,27494,2049,24347,10,1,

                   27613,1793,27667,2049,5525,69,82,82,79,82,58,32,76,105,98,114,97,114,121,32,

                   96,37,115,96,32,119,97,115,32,110,111,116,32,102,111,117,110,100,0,1,

                   27624,2049,9899,2049,12918,2049,12863,10,1,27622,2049,66,10,105,110,116,101,114,102,97,

                   99,101,47,108,105,98,114,97,114,121,46,114,101,116,114,111,0,27672,13989,27578,

                   27725,168,0,-1980891296,27727,200,200,27756,100,58,115,101,116,45,100,101,115,99,114,105,

                   112,116,105,111,110,0,2049,5525,115,115,45,0,1,27727,3,2049,258,2,2049,3492,

                   1793,27749,2049,196,1,5557,2049,2889,16,10,1,27741,1,2837,2049,66,10,97,100,100,

                   32,97,32,100,101,115,99,114,105,112,116,105,111,110,32,116,111,32,97,32,

                   119,111,114,100,0,27698,27809,168,0,-562402433,27811,200,200,27825,97,100,100,45,100,101,

                   115,99,114,105,112,116,105,111,110,0,2049,5525,115,45,0,1,27811,3,2049,5557,

                   2049,2100,2049,196,16,10,97,100,100,32,97,32,100,101,115,99,114,105,112,116,

                   105,111,110,32,102,111,114,32,116,104,101,32,109,111,115,116,32,114,101,99,

                   101,110,116,108,121,32,100,101,102,105,110,101,100,32,119,111,114,100,0,82,

                   101,116,117,114,110,32,65,83,67,73,73,58,78,85,76,32,40,48,41,46,

                   0,82,101,116,117,114,110,32,97,110,32,101,109,112,116,121,32,115,116,114,

                   105,110,103,46,0,80,114,111,118,105,100,101,32,97,32,118,105,115,117,97,

                   108,32,105,110,100,105,99,97,116,105,111,110,32,111,102,32,97,32,99,111,

                   100,101,32,103,114,111,117,112,46,0,80,114,111,118,105,100,101,32,97,32,

                   118,105,115,117,97,108,32,105,110,100,105,99,97,116,105,111,110,32,111,102,

                   32,97,32,99,111,100,101,32,103,114,111,117,112,46,0,77,117,108,116,105,

                   112,108,121,32,96,110,49,96,32,98,121,32,96,110,50,96,32,97,110,100,

                   32,114,101,116,117,114,110,32,116,104,101,32,114,101,115,117,108,116,46,0,

                   77,117,108,116,105,112,108,121,32,96,120,96,32,98,121,32,96,121,96,32,

                   97,110,100,32,116,104,101,110,32,100,105,118,105,100,101,32,98,121,32,96,

                   122,96,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,105,110,

                   116,101,103,101,114,32,112,97,114,116,32,111,102,32,116,104,101,32,113,117,

                   111,116,105,101,110,116,32,97,110,100,32,114,101,109,97,105,110,100,101,114,

                   46,0,65,100,100,32,96,110,49,96,32,116,111,32,96,110,50,96,32,97,

                   110,100,32,114,101,116,117,114,110,32,116,104,101,32,114,101,115,117,108,116,

                   46,0,83,116,111,114,101,32,116,104,101,32,115,112,101,99,105,102,105,101,

                   100,32,118,97,108,117,101,32,105,110,116,111,32,116,104,101,32,109,101,109,

                   111,114,121,32,97,116,32,96,104,101,114,101,96,32,97,110,100,32,105,110,

                   99,114,101,109,101,110,116,32,96,72,101,97,112,96,32,98,121,32,49,46,

                   0,83,117,98,116,114,97,99,116,32,96,110,50,96,32,102,114,111,109,32,

                   96,110,49,96,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,

                   114,101,115,117,108,116,46,0,83,119,105,116,99,104,32,116,111,32,116,104,

                   101,32,101,120,112,111,115,101,100,32,40,112,117,98,108,105,99,41,32,112,

                   111,114,116,105,111,110,32,111,102,32,97,32,108,101,120,105,99,97,108,32,

                   110,97,109,101,115,112,97,99,101,46,0,67,111,109,112,97,114,101,32,116,

                   119,111,32,118,97,108,117,101,115,32,102,111,114,32,105,110,101,113,117,97,

                   108,105,116,121,46,32,82,101,116,117,114,110,115,32,96,84,82,85,69,96,

                   32,105,102,32,116,104,101,121,32,97,114,101,32,110,111,116,32,101,113,117,

                   97,108,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,

                   105,115,101,46,0,69,120,101,99,117,116,101,32,116,104,101,32,113,117,111,

                   116,97,116,105,111,110,32,105,102,32,116,104,101,32,102,108,97,103,32,105,

                   115,32,96,70,65,76,83,69,96,46,0,69,120,101,99,117,116,101,32,116,

                   104,101,32,113,117,111,116,97,116,105,111,110,32,105,102,32,116,104,101,32,

                   102,108,97,103,32,105,115,32,96,70,65,76,83,69,96,46,32,73,102,32,

                   102,97,108,115,101,44,32,97,108,115,111,32,101,120,105,116,32,116,104,101,

                   32,119,111,114,100,46,0,68,105,118,105,100,101,32,96,110,96,32,98,121,

                   32,96,109,96,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,

                   105,110,116,101,103,101,114,32,112,97,114,116,32,111,102,32,116,104,101,32,

                   113,117,111,116,105,101,110,116,46,0,68,105,118,105,100,101,32,96,110,96,

                   32,98,121,32,96,109,96,32,97,110,100,32,114,101,116,117,114,110,32,116,

                   104,101,32,105,110,116,101,103,101,114,32,112,97,114,116,32,111,102,32,116,

                   104,101,32,113,117,111,116,105,101,110,116,32,97,110,100,32,114,101,109,97,

                   105,110,100,101,114,46,0,73,102,32,96,110,96,32,105,115,32,122,101,114,

                   111,44,32,100,114,111,112,32,96,110,96,32,97,110,100,32,101,120,105,116,

                   32,116,104,101,32,99,117,114,114,101,110,116,32,119,111,114,100,46,32,73,

                   102,32,110,111,110,45,122,101,114,111,44,32,108,101,97,118,101,32,96,110,

                   96,32,97,108,111,110,101,32,97,110,100,32,97,108,108,111,119,32,101,120,

                   101,99,117,116,105,111,110,32,116,111,32,99,111,110,116,105,110,117,101,46,

                   0,69,110,100,32,116,104,101,32,99,117,114,114,101,110,116,32,100,101,102,

                   105,110,105,116,105,111,110,46,0,68,117,112,108,105,99,97,116,101,32,116,

                   111,112,32,118,97,108,117,101,32,111,110,32,115,116,97,99,107,32,105,102,

                   32,110,111,116,32,122,101,114,111,46,32,73,102,32,122,101,114,111,44,32,

                   100,111,32,110,111,116,104,105,110,103,46,0,67,111,110,115,116,97,110,116,

                   46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,105,99,

                   32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,97,110,

                   116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,105,

                   99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,97,

                   110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,

                   105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,

                   97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,

                   102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,

                   116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,

                   105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,

                   115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,

                   99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,

                   110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,

                   101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,

                   111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,

                   112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,

                   67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,

                   115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,

                   0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,

                   32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,

                   46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,

                   111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,

                   101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,

                   116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,

                   100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,

                   32,116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,

                   111,100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,

                   115,32,116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,

                   99,111,100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,

                   114,115,32,116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,

                   32,99,111,100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,

                   101,114,115,32,116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,

                   73,32,99,111,100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,

                   102,101,114,115,32,116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,

                   73,73,32,99,111,100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,

                   101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,105,99,32,65,83,

                   67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,97,110,116,46,32,

                   82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,105,99,32,65,

                   83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,97,110,116,46,

                   32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,105,99,32,

                   65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,97,110,116,

                   46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,105,99,

                   32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,97,110,

                   116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,105,

                   99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,97,

                   110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,102,

                   105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,116,

                   97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,105,

                   102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,115,

                   116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,99,

                   105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,110,

                   115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,101,

                   99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,111,

                   110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,112,

                   101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,67,

                   111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,115,

                   112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,0,

                   67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,32,

                   115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,46,

                   0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,111,

                   32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,101,

                   46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,116,

                   111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,100,

                   101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,32,

                   116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,111,

                   100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,115,

                   32,116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,99,

                   111,100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,102,101,114,

                   115,32,116,111,32,115,112,101,99,105,102,105,99,32,65,83,67,73,73,32,

                   99,111,100,101,46,0,67,111,110,115,116,97,110,116,46,32,82,101,116,117,

                   114,110,32,97,32,98,117,105,108,100,32,105,100,101,110,116,105,102,105,101,

                   114,46,32,85,115,101,32,97,108,111,110,103,32,119,105,116,104,32,118,101,

                   114,115,105,111,110,32,116,111,32,105,100,101,110,116,105,102,121,32,97,110,

                   32,105,109,97,103,101,46,0,86,97,114,105,97,98,108,101,46,32,72,111,

                   108,100,115,32,116,104,101,32,99,117,114,114,101,110,116,32,110,117,109,101,

                   114,105,99,32,98,97,115,101,46,32,66,97,115,101,32,109,117,115,116,32,

                   98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,111,102,32,50,

                   45,49,54,46,0,86,97,114,105,97,98,108,101,46,32,72,111,108,100,115,

                   32,116,104,101,32,99,111,109,112,105,108,101,114,32,115,116,97,116,101,46,

                   32,73,102,32,84,82,85,69,44,32,116,104,101,32,99,111,109,112,105,108,

                   101,114,32,105,115,32,97,99,116,105,118,101,46,32,73,102,32,70,65,76,

                   83,69,44,32,105,116,32,105,115,32,110,111,116,46,0,82,101,116,117,114,

                   110,32,100,101,118,105,99,101,32,73,68,32,102,111,114,32,98,108,111,99,

                   107,32,115,117,112,112,111,114,116,46,0,82,101,116,117,114,110,32,100,101,

                   118,105,99,101,32,73,68,32,102,111,114,32,99,108,111,99,107,32,119,111,

                   114,100,115,46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,73,

                   68,32,102,111,114,32,101,114,114,111,114,32,104,97,110,100,108,101,114,115,

                   46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,73,68,32,102,

                   111,114,32,102,111,114,101,105,103,110,32,102,117,110,99,116,105,111,110,32,

                   105,110,116,101,114,102,97,99,101,46,0,82,101,116,117,114,110,32,100,101,

                   118,105,99,101,32,73,68,32,102,111,114,32,102,105,108,101,115,121,115,116,

                   101,109,32,97,99,99,101,115,115,46,0,82,101,116,117,114,110,32,100,101,

                   118,105,99,101,32,73,68,32,102,111,114,32,102,108,111,97,116,105,110,103,

                   32,112,111,105,110,116,46,0,82,101,116,117,114,110,32,100,101,118,105,99,

                   101,32,73,68,32,102,111,114,32,105,109,97,103,101,32,119,114,105,116,101,

                   114,46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,73,68,32,

                   102,111,114,32,85,110,105,120,32,73,79,67,84,76,32,105,110,116,101,114,

                   102,97,99,101,46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,

                   73,68,32,102,111,114,32,75,101,121,98,111,97,114,100,32,105,110,112,117,

                   116,46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,73,68,32,

                   102,111,114,32,109,101,109,111,114,121,32,97,108,108,111,99,97,116,111,114,

                   46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,73,68,32,102,

                   111,114,32,109,117,108,116,105,99,111,114,101,32,115,117,112,112,111,114,116,

                   46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,73,68,32,102,

                   111,114,32,79,117,116,112,117,116,32,100,101,118,105,99,101,46,0,82,101,

                   115,101,114,118,101,100,32,100,101,118,105,99,101,32,73,68,46,0,82,101,

                   115,101,114,118,101,100,32,100,101,118,105,99,101,32,73,68,46,0,82,101,

                   115,101,114,118,101,100,32,100,101,118,105,99,101,32,73,68,46,0,82,101,

                   115,101,114,118,101,100,32,100,101,118,105,99,101,32,73,68,46,0,82,101,

                   116,117,114,110,32,100,101,118,105,99,101,32,73,68,32,102,111,114,32,114,

                   97,110,100,111,109,32,110,117,109,98,101,114,32,103,101,110,101,114,97,116,

                   111,114,46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,73,68,

                   32,102,111,114,32,115,99,114,105,112,116,105,110,103,32,115,117,112,112,111,

                   114,116,46,0,82,101,116,117,114,110,32,100,101,118,105,99,101,32,73,68,

                   32,102,111,114,32,115,111,99,107,101,116,115,46,0,82,101,116,117,114,110,

                   32,100,101,118,105,99,101,32,73,68,32,102,111,114,32,117,110,105,120,32,

                   115,121,115,99,97,108,108,46,0,82,101,116,117,114,110,32,100,101,118,105,

                   99,101,32,73,68,32,102,111,114,32,117,110,115,105,103,110,101,100,32,109,

                   97,116,104,115,46,0,86,97,114,105,97,98,108,101,46,32,72,111,108,100,

                   115,32,97,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,109,

                   111,115,116,32,114,101,99,101,110,116,32,100,105,99,116,105,111,110,97,114,

                   121,32,104,101,97,100,101,114,46,0,85,115,101,100,32,116,111,32,100,101,

                   110,111,116,101,32,116,104,101,32,101,110,100,32,111,102,32,97,32,108,105,

                   110,107,101,100,32,108,105,115,116,46,32,84,104,101,32,108,97,115,116,32,

                   99,111,110,115,32,119,105,108,108,32,104,97,118,101,32,116,104,101,32,99,

                   100,114,32,112,111,105,110,116,32,116,111,32,116,104,105,115,32,97,100,100,

                   114,101,115,115,46,0,67,111,110,115,116,97,110,116,46,32,82,101,116,117,

                   114,110,115,32,116,104,101,32,108,97,115,116,32,97,100,100,114,101,115,115,

                   97,98,108,101,32,109,101,109,111,114,121,32,97,100,100,114,101,115,115,46,

                   0,82,101,116,117,114,110,115,32,96,48,96,44,32,116,104,101,32,118,97,

                   108,117,101,32,117,115,101,100,32,116,111,32,105,110,100,105,99,97,116,101,

                   32,97,32,70,65,76,83,69,32,114,101,115,117,108,116,46,0,82,101,116,

                   117,114,110,115,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,99,

                   101,108,108,115,32,97,118,97,105,108,97,98,108,101,32,116,111,32,121,111,

                   117,114,32,97,112,112,108,105,99,97,116,105,111,110,46,32,84,104,105,115,

                   32,105,115,32,116,104,101,32,97,109,111,117,110,116,32,111,102,32,109,101,

                   109,111,114,121,44,32,108,101,115,115,32,116,104,101,32,97,108,114,101,97,

                   100,121,32,99,111,110,115,117,109,101,100,32,112,111,114,116,105,111,110,32,

                   97,110,100,32,98,117,102,102,101,114,115,32,109,97,112,112,101,100,32,102,

                   111,114,32,82,101,116,114,111,39,115,32,105,110,116,101,114,110,97,108,32,

                   117,115,101,46,0,72,111,108,100,32,116,104,101,32,112,97,116,104,32,116,

                   111,32,116,104,101,32,117,115,101,114,115,32,104,111,109,101,32,100,105,114,

                   101,99,116,111,114,121,46,32,68,101,102,105,110,101,100,32,97,115,32,97,

                   32,102,108,111,97,116,105,110,103,32,98,117,102,102,101,114,32,97,98,111,

                   118,101,32,96,104,101,114,101,96,46,0,86,97,114,105,97,98,108,101,46,

                   32,72,111,108,100,115,32,116,104,101,32,97,100,100,114,101,115,115,32,111,

                   102,32,116,104,101,32,110,101,120,116,32,97,118,97,105,108,97,98,108,101,

                   32,99,101,108,108,46,0,65,99,99,101,115,115,32,116,104,101,32,108,111,

                   111,112,32,105,110,100,101,120,32,102,111,114,32,116,104,101,32,99,117,114,

                   114,101,110,116,32,108,111,111,112,46,32,40,70,111,114,32,108,111,111,112,

                   115,32,109,97,100,101,32,117,115,105,110,103,32,96,105,110,100,101,120,101,

                   100,45,116,105,109,101,115,96,41,0,86,97,114,105,97,98,108,101,46,32,

                   87,104,101,110,32,84,82,85,69,44,32,105,103,110,111,114,101,32,105,110,

                   112,117,116,32,116,111,32,101,110,100,32,111,102,32,108,105,110,101,46,0,

                   65,99,99,101,115,115,32,116,104,101,32,112,97,114,101,110,116,32,108,111,

                   111,112,32,105,110,100,101,120,32,102,111,114,32,116,104,101,32,99,117,114,

                   114,101,110,116,32,108,111,111,112,46,32,40,70,111,114,32,108,111,111,112,

                   115,32,109,97,100,101,32,117,115,105,110,103,32,96,105,110,100,101,120,101,

                   100,45,116,105,109,101,115,96,41,0,65,99,99,101,115,115,32,116,104,101,

                   32,103,114,97,110,100,112,97,114,101,110,116,32,108,111,111,112,32,105,110,

                   100,101,120,32,102,111,114,32,116,104,101,32,99,117,114,114,101,110,116,32,

                   108,111,111,112,46,32,40,70,111,114,32,108,111,111,112,115,32,109,97,100,

                   101,32,117,115,105,110,103,32,96,105,110,100,101,120,101,100,45,116,105,109,

                   101,115,96,41,0,86,97,114,105,97,98,108,101,46,32,87,104,101,110,32,

                   115,101,116,32,116,111,32,96,84,82,85,69,96,44,32,82,101,116,114,111,

                   32,119,105,108,108,32,114,101,112,108,97,99,101,32,117,110,100,101,114,115,

                   99,111,114,101,115,32,105,110,32,115,116,114,105,110,103,115,32,119,105,116,

                   104,32,115,112,97,99,101,115,46,32,87,104,101,110,32,96,70,65,76,83,

                   69,96,44,32,82,101,116,114,111,32,100,111,101,115,32,110,111,116,46,0,

                   82,101,116,117,114,110,32,116,104,101,32,97,100,100,114,101,115,115,32,111,

                   102,32,116,104,101,32,115,116,97,114,116,32,111,102,32,116,104,101,32,116,

                   101,109,112,111,114,97,114,121,32,115,116,114,105,110,103,32,112,111,111,108,

                   46,32,84,104,105,115,32,99,97,110,32,98,101,32,97,108,116,101,114,101,

                   100,32,98,121,32,99,104,97,110,103,105,110,103,32,116,104,101,32,118,97,

                   108,117,101,115,32,111,102,32,96,84,101,109,112,83,116,114,105,110,103,115,

                   96,32,97,110,100,32,96,84,101,109,112,83,116,114,105,110,103,77,97,120,

                   96,46,0,86,97,114,105,97,98,108,101,46,32,84,104,105,115,32,104,111,

                   108,100,115,32,115,111,109,101,32,105,110,102,111,114,109,97,116,105,111,110,

                   32,117,115,101,100,32,98,121,32,96,123,123,96,32,97,110,100,32,96,125,

                   125,96,46,0,67,111,110,115,116,97,110,116,46,32,82,101,116,117,114,110,

                   115,32,97,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,116,

                   101,120,116,32,105,110,112,117,116,32,98,117,102,102,101,114,46,0,82,101,

                   116,117,114,110,115,32,96,45,49,96,44,32,116,104,101,32,118,97,108,117,

                   101,32,117,115,101,100,32,116,111,32,105,110,100,105,99,97,116,101,32,97,

                   32,84,82,85,69,32,114,101,115,117,108,116,46,0,86,97,114,105,97,98,

                   108,101,46,32,72,111,108,100,115,32,116,104,101,32,109,97,120,105,109,117,

                   109,32,108,101,110,103,116,104,32,111,102,32,97,32,116,101,109,112,111,114,

                   97,114,121,32,115,116,114,105,110,103,46,0,86,97,114,105,97,98,108,101,

                   46,32,72,111,108,100,115,32,116,104,101,32,110,117,109,98,101,114,32,111,

                   102,32,116,101,109,112,111,114,97,114,121,32,115,116,114,105,110,103,115,46,

                   0,86,97,114,105,97,98,108,101,46,32,84,104,105,115,32,115,116,111,114,

                   101,115,32,116,104,101,32,118,101,114,115,105,111,110,32,110,117,109,98,101,

                   114,46,0,66,101,103,105,110,32,97,32,113,117,111,116,97,116,105,111,110,

                   46,0,69,110,100,32,97,32,113,117,111,116,97,116,105,111,110,46,0,67,

                   111,109,112,97,114,101,32,97,108,108,32,118,97,108,117,101,115,32,105,110,

                   32,116,104,101,32,97,114,114,97,121,46,32,82,101,116,117,114,110,32,96,

                   70,65,76,83,69,96,32,105,102,32,97,108,108,32,118,97,108,117,101,115,

                   32,97,114,101,32,101,113,117,97,108,32,111,114,32,96,84,82,85,69,96,

                   32,111,116,104,101,114,119,105,115,101,46,32,84,104,105,115,32,97,115,115,

                   117,109,101,115,32,116,104,101,32,97,114,114,97,121,32,99,111,110,116,97,

                   105,110,115,32,111,110,108,121,32,110,117,109,101,114,105,99,32,118,97,108,

                   117,101,115,46,0,82,101,116,117,114,110,32,97,32,110,101,119,32,97,114,

                   114,97,121,32,99,111,110,115,105,115,116,105,110,103,32,111,102,32,116,104,

                   101,32,118,97,108,117,101,115,32,105,110,32,97,49,32,102,111,108,108,111,

                   119,101,100,32,98,121,32,116,104,101,32,118,97,108,117,101,115,32,105,110,

                   32,97,50,46,0,82,101,116,117,114,110,32,96,84,82,85,69,96,32,105,

                   102,32,97,49,32,98,101,103,105,110,115,32,119,105,116,104,32,97,50,32,

                   111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,115,101,

                   46,0,82,101,116,117,114,110,32,97,32,110,101,119,32,97,114,114,97,121,

                   32,99,111,110,116,97,105,110,105,110,103,32,97,108,108,32,98,117,116,32,

                   116,104,101,32,108,97,115,116,32,118,97,108,117,101,32,105,110,32,116,104,

                   101,32,115,111,117,114,99,101,32,97,114,114,97,121,46,0,82,101,116,117,

                   114,110,32,96,84,82,85,69,96,32,105,102,32,116,104,101,32,115,116,114,

                   105,110,103,32,118,97,108,117,101,32,105,115,32,105,110,32,116,104,101,32,

                   97,114,114,97,121,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,

                   101,114,119,105,115,101,46,0,82,101,116,117,114,110,32,96,84,82,85,69,

                   96,32,105,102,32,116,104,101,32,118,97,108,117,101,32,105,115,32,105,110,

                   32,116,104,101,32,97,114,114,97,121,32,111,114,32,96,70,65,76,83,69,

                   96,32,111,116,104,101,114,119,105,115,101,46,0,67,111,112,121,32,97,110,

                   32,97,114,114,97,121,32,40,97,49,41,32,116,111,32,97,32,100,101,115,

                   116,105,110,97,116,105,111,110,32,40,97,50,41,46,0,82,117,110,32,97,

                   32,113,117,111,116,101,32,97,110,100,32,99,111,110,115,116,114,117,99,116,

                   32,97,32,110,101,119,32,97,114,114,97,121,32,102,114,111,109,32,116,104,

                   101,32,114,101,116,117,114,110,101,100,32,118,97,108,117,101,115,46,32,84,

                   104,101,32,113,117,111,116,101,32,115,104,111,117,108,100,32,114,101,116,117,

                   114,110,32,116,104,101,32,118,97,108,117,101,115,32,97,110,100,32,116,104,

                   101,32,110,117,109,98,101,114,32,111,102,32,118,97,108,117,101,115,32,116,

                   111,32,112,117,116,32,105,110,116,111,32,116,104,101,32,97,114,114,97,121,

                   46,0,77,97,107,101,32,97,32,99,111,112,121,32,111,102,32,97,110,32,

                   97,114,114,97,121,46,32,82,101,116,117,114,110,32,116,104,101,32,97,100,

                   100,114,101,115,115,32,111,102,32,116,104,101,32,99,111,112,121,46,0,82,

                   101,116,117,114,110,32,96,84,82,85,69,96,32,105,102,32,97,49,32,101,

                   110,100,115,32,119,105,116,104,32,97,50,32,111,114,32,96,70,65,76,83,

                   69,96,32,111,116,104,101,114,119,105,115,101,46,0,67,111,109,112,97,114,

                   101,32,97,108,108,32,118,97,108,117,101,115,32,105,110,32,116,104,101,32,

                   97,114,114,97,121,46,32,82,101,116,117,114,110,32,96,84,82,85,69,96,

                   32,105,102,32,97,108,108,32,118,97,108,117,101,115,32,97,114,101,32,101,

                   113,117,97,108,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,

                   114,119,105,115,101,46,32,84,104,105,115,32,97,115,115,117,109,101,115,32,

                   116,104,101,32,97,114,114,97,121,32,99,111,110,116,97,105,110,115,32,111,

                   110,108,121,32,110,117,109,101,114,105,99,32,118,97,108,117,101,115,46,0,

                   70,101,116,99,104,32,116,104,101,32,118,97,108,117,101,32,115,116,111,114,

                   101,100,32,97,116,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,

                   105,110,100,101,120,32,105,110,32,116,104,101,32,115,112,101,99,105,102,105,

                   101,100,32,97,114,114,97,121,46,0,70,111,114,32,101,97,99,104,32,105,

                   116,101,109,32,105,110,32,116,104,101,32,105,110,105,116,105,97,108,32,97,

                   114,114,97,121,44,32,114,117,110,32,116,104,101,32,115,112,101,99,105,102,

                   105,101,100,32,113,117,111,116,101,46,32,73,102,32,116,104,101,32,113,117,

                   111,116,101,32,114,101,116,117,114,110,115,32,96,84,82,85,69,96,44,32,

                   99,111,112,121,32,116,104,101,32,105,116,101,109,32,105,110,116,111,32,97,

                   32,110,101,119,32,97,114,114,97,121,46,32,73,102,32,96,70,65,76,83,

                   69,96,44,32,100,105,115,99,97,114,100,32,105,116,46,32,82,101,116,117,

                   114,110,115,32,97,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,

                   32,110,101,119,32,97,114,114,97,121,46,0,82,101,116,117,114,110,32,116,

                   104,101,32,102,105,114,115,116,32,118,97,108,117,101,32,105,110,32,116,104,

                   101,32,97,114,114,97,121,46,0,69,120,101,99,117,116,101,32,116,104,101,

                   32,113,117,111,116,101,32,111,110,99,101,32,102,111,114,32,101,97,99,104,

                   32,105,116,101,109,32,105,110,32,116,104,101,32,97,114,114,97,121,46,0,

                   67,114,101,97,116,101,32,97,32,110,101,119,32,97,114,114,97,121,32,119,

                   105,116,104,32,116,104,101,32,99,104,97,114,97,99,116,101,114,115,32,105,

                   110,32,116,104,101,32,115,111,117,114,99,101,32,115,116,114,105,110,103,46,

                   0,67,97,108,99,117,108,97,116,101,32,97,32,104,97,115,104,32,118,97,

                   108,117,101,32,102,111,114,32,97,32,103,105,118,101,110,32,97,114,114,97,

                   121,46,0,82,101,116,117,114,110,32,116,104,101,32,108,111,99,97,116,105,

                   111,110,32,111,102,32,116,104,101,32,102,105,114,115,116,32,105,110,115,116,

                   97,110,99,101,32,111,102,32,116,104,101,32,115,112,101,99,105,102,105,101,

                   100,32,118,97,108,117,101,32,105,110,32,116,104,101,32,97,114,114,97,121,

                   46,0,82,101,116,117,114,110,32,116,104,101,32,108,111,99,97,116,105,111,

                   110,32,111,102,32,116,104,101,32,102,105,114,115,116,32,105,110,115,116,97,

                   110,99,101,32,111,102,32,116,104,101,32,115,112,101,99,105,102,105,101,100,

                   32,115,116,114,105,110,103,32,105,110,32,116,104,101,32,97,114,114,97,121,

                   46,0,82,101,116,117,114,110,32,97,32,110,101,119,32,97,114,114,97,121,

                   32,119,105,116,104,32,116,104,101,32,105,110,100,105,99,101,115,32,116,104,

                   101,32,115,112,101,99,105,102,105,101,100,32,118,97,108,117,101,32,119,97,

                   115,32,102,111,117,110,100,32,97,116,32,105,110,32,116,104,101,32,111,114,

                   105,103,105,110,97,108,32,97,114,114,97,121,46,0,82,101,116,117,114,110,

                   32,97,32,110,101,119,32,97,114,114,97,121,32,119,105,116,104,32,116,104,

                   101,32,105,110,100,105,99,101,115,32,111,102,32,116,104,101,32,115,112,101,

                   99,105,102,105,101,100,32,115,116,114,105,110,103,32,105,110,32,116,104,101,

                   32,111,114,105,103,105,110,97,108,32,97,114,114,97,121,46,0,82,101,116,

                   117,114,110,32,116,104,101,32,108,97,115,116,32,118,97,108,117,101,32,105,

                   110,32,116,104,101,32,97,114,114,97,121,46,0,82,101,116,117,114,110,32,

                   97,32,110,101,119,32,97,114,114,97,121,32,99,111,110,116,97,105,110,105,

                   110,103,32,116,104,101,32,102,105,114,115,116,32,96,110,96,32,118,97,108,

                   117,101,115,32,102,114,111,109,32,116,104,101,32,115,111,117,114,99,101,32,

                   97,114,114,97,121,46,0,82,101,116,117,114,110,32,116,104,101,32,108,101,

                   110,103,116,104,32,111,102,32,97,32,97,114,114,97,121,46,0,69,120,101,

                   99,117,116,101,32,113,117,111,116,101,46,32,82,101,116,117,114,110,32,97,

                   32,110,101,119,32,97,114,114,97,121,32,99,111,110,116,97,105,110,105,110,

                   103,32,116,104,101,32,118,97,108,117,101,115,32,116,104,101,32,113,117,111,

                   116,101,32,108,101,97,118,101,115,32,111,110,32,116,104,101,32,115,116,97,

                   99,107,46,32,84,104,105,115,32,105,115,32,105,100,101,110,116,105,99,97,

                   108,32,116,111,32,100,111,105,110,103,32,96,97,58,99,111,117,110,116,101,

                   100,45,114,101,115,117,108,116,115,0,69,120,101,99,117,116,101,32,113,117,

                   111,116,101,32,111,110,99,101,32,102,111,114,32,101,97,99,104,32,105,116,

                   101,109,32,105,110,32,116,104,101,32,97,114,114,97,121,46,32,67,111,110,

                   115,116,114,117,99,116,115,32,97,32,110,101,119,32,97,114,114,97,121,32,

                   102,114,111,109,32,116,104,101,32,118,97,108,117,101,32,114,101,116,117,114,

                   110,101,100,32,98,121,32,116,104,101,32,113,117,111,116,101,46,0,69,120,

                   116,114,97,99,116,32,97,32,110,101,119,32,97,114,114,97,121,32,102,114,

                   111,109,32,116,104,101,32,109,105,100,100,108,101,32,111,102,32,116,104,101,

                   32,115,112,101,99,105,102,105,101,100,32,97,114,114,97,121,46,32,84,104,

                   105,115,32,119,105,108,108,32,116,97,107,101,32,116,104,101,32,118,97,108,

                   117,101,115,32,115,116,97,114,116,105,110,103,32,97,116,32,96,102,96,32,

                   97,110,100,32,101,120,116,101,110,100,32,116,111,32,116,104,101,32,96,108,

                   96,32,108,97,115,116,32,118,97,108,117,101,46,0,82,101,116,117,114,110,

                   32,97,32,110,101,119,32,97,114,114,97,121,32,99,111,110,115,105,115,116,

                   105,110,103,32,111,102,32,116,104,101,32,118,97,108,117,101,115,32,105,110,

                   32,97,50,32,102,111,108,108,111,119,101,100,32,98,121,32,116,104,101,32,

                   118,97,108,117,101,115,32,105,110,32,97,49,46,0,84,97,107,101,115,32,

                   97,110,32,97,114,114,97,121,44,32,97,32,115,116,97,114,116,105,110,103,

                   32,118,97,108,117,101,44,32,97,110,100,32,97,32,113,117,111,116,101,46,

                   32,84,104,105,115,32,119,105,108,108,32,97,112,112,108,121,32,116,104,101,

                   32,113,117,111,116,101,32,116,111,32,101,97,99,104,32,105,116,101,109,32,

                   105,110,32,116,104,101,32,97,114,114,97,121,59,32,116,104,101,32,113,117,

                   111,116,101,32,115,104,111,117,108,100,32,99,111,110,115,117,109,101,32,116,

                   119,111,32,118,97,108,117,101,115,32,97,110,100,32,114,101,116,117,114,110,

                   32,111,110,101,46,0,82,101,118,101,114,115,101,32,116,104,101,32,111,114,

                   100,101,114,32,111,102,32,105,116,101,109,115,32,105,110,32,97,32,97,114,

                   114,97,121,46,32,84,104,105,115,32,119,105,108,108,32,114,101,116,117,114,

                   110,32,97,32,110,101,119,32,97,114,114,97,121,46,0,82,101,116,117,114,

                   110,32,97,32,110,101,119,32,97,114,114,97,121,32,99,111,110,116,97,105,

                   110,105,110,103,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,110,

                   117,109,98,101,114,32,111,102,32,118,97,108,117,101,115,32,102,114,111,109,

                   32,116,104,101,32,114,105,103,104,116,32,115,105,100,101,32,111,102,32,116,

                   104,101,32,97,114,114,97,121,46,0,83,116,111,114,101,32,97,32,118,97,

                   108,117,101,32,105,110,116,111,32,116,104,101,32,97,114,114,97,121,32,97,

                   116,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,105,110,100,101,

                   120,46,0,77,97,107,101,32,97,32,99,111,112,121,32,111,102,32,116,104,

                   101,32,97,114,114,97,121,32,105,110,32,97,32,114,111,116,97,116,105,110,

                   103,32,115,101,116,32,111,102,32,116,101,109,112,111,114,97,114,121,32,98,

                   117,102,102,101,114,115,46,0,82,101,116,117,114,110,32,116,104,101,32,97,

                   99,116,117,97,108,32,97,100,100,114,101,115,115,32,111,102,32,116,104,101,

                   32,96,110,96,116,104,32,105,116,101,109,32,105,110,32,116,104,101,32,97,

                   114,114,97,121,46,0,67,114,101,97,116,101,32,97,32,110,101,119,32,115,

                   116,114,105,110,103,32,102,114,111,109,32,116,104,101,32,112,114,111,118,105,

                   100,101,100,32,97,114,114,97,121,32,111,102,32,99,104,97,114,97,99,116,

                   101,114,32,118,97,108,117,101,115,46,32,84,104,105,115,32,115,116,114,105,

                   110,103,32,119,105,108,108,32,98,101,32,115,116,111,114,101,100,32,105,110,

                   32,116,104,101,32,116,101,109,112,111,114,97,108,32,115,116,114,105,110,103,

                   32,98,117,102,102,101,114,115,46,0,65,98,111,114,116,32,101,120,101,99,

                   117,116,105,111,110,46,0,67,108,111,115,101,32,97,110,32,117,110,99,111,

                   110,100,105,116,105,111,110,97,108,32,108,111,111,112,46,32,66,114,97,110,

                   99,104,101,115,32,98,97,99,107,32,116,111,32,116,104,101,32,112,114,105,

                   111,114,32,96,114,101,112,101,97,116,96,46,0,65,108,108,111,99,97,116,

                   101,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,110,117,109,98,

                   101,114,32,111,102,32,99,101,108,108,115,32,102,114,111,109,32,116,104,101,

                   32,96,72,101,97,112,96,46,0,80,101,114,102,111,114,109,32,97,32,98,

                   105,116,119,105,115,101,32,65,78,68,32,111,112,101,114,97,116,105,111,110,

                   32,98,101,116,119,101,101,110,32,116,104,101,32,116,119,111,32,112,114,111,

                   118,105,100,101,100,32,118,97,108,117,101,115,46,0,70,101,116,99,104,32,

                   116,104,101,32,56,45,98,105,116,32,118,97,108,117,101,32,115,116,111,114,

                   101,100,32,97,116,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,

                   97,100,100,114,101,115,115,46,32,65,100,100,114,101,115,115,105,110,103,32,

                   102,111,114,32,116,104,105,115,32,105,115,32,105,110,32,56,45,98,105,116,

                   32,117,110,105,116,115,46,0,70,101,116,99,104,32,116,104,101,32,118,97,

                   108,117,101,32,115,116,111,114,101,100,32,97,116,32,116,104,101,32,115,112,

                   101,99,105,102,105,101,100,32,97,100,100,114,101,115,115,46,32,82,101,116,

                   117,114,110,115,32,116,104,101,32,110,101,120,116,32,97,100,100,114,101,115,

                   115,32,97,110,100,32,116,104,101,32,118,97,108,117,101,46,0,83,116,111,

                   114,101,32,97,110,32,56,45,98,105,116,32,118,97,108,117,101,32,105,110,

                   116,111,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,100,100,

                   114,101,115,115,46,32,65,100,100,114,101,115,115,105,110,103,32,102,111,114,

                   32,116,104,105,115,32,105,115,32,105,110,32,56,45,98,105,116,32,117,110,

                   105,116,115,46,0,83,116,111,114,101,32,97,32,118,97,108,117,101,32,105,

                   110,116,111,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,100,

                   100,114,101,115,115,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,

                   32,110,101,120,116,32,97,100,100,114,101,115,115,46,0,84,114,97,110,115,

                   108,97,116,101,32,97,32,112,104,121,115,105,99,97,108,32,97,100,100,114,

                   101,115,115,32,116,111,32,97,32,98,121,116,101,32,97,100,100,114,101,115,

                   115,46,0,68,105,115,112,108,97,121,32,97,32,119,101,108,99,111,109,101,

                   32,109,101,115,115,97,103,101,32,111,110,32,115,116,97,114,116,117,112,46,

                   0,69,120,101,99,117,116,101,32,113,49,32,97,103,97,105,110,115,116,32,

                   120,44,32,116,104,101,110,32,101,120,101,99,117,116,101,32,113,50,32,97,

                   103,97,105,110,115,116,32,97,32,99,111,112,121,32,111,102,32,120,46,0,

                   69,120,101,99,117,116,101,32,113,49,32,97,103,97,105,110,115,116,32,120,

                   32,97,110,100,32,113,50,32,97,103,97,105,110,115,116,32,121,46,0,69,

                   120,101,99,117,116,101,32,113,32,97,103,97,105,110,115,116,32,120,44,32,

                   116,104,101,110,32,101,120,101,99,117,116,101,32,113,32,97,103,97,105,110,

                   115,116,32,121,46,0,83,101,116,32,96,66,97,115,101,96,32,116,111,32,

                   98,105,110,97,114,121,46,0,82,101,97,100,32,49,48,50,52,32,99,101,

                   108,108,115,32,102,114,111,109,32,98,108,111,99,107,32,110,32,105,110,32,

                   116,104,101,32,98,108,111,99,107,32,115,116,111,114,97,103,101,32,105,110,

                   116,111,32,109,101,109,111,114,121,32,97,116,32,97,100,100,114,101,115,115,

                   32,97,46,0,83,101,116,32,116,104,101,32,102,105,108,101,32,110,97,109,

                   101,32,111,102,32,116,104,101,32,98,108,111,99,107,32,115,116,111,114,97,

                   103,101,32,100,101,118,105,99,101,46,0,83,97,118,101,32,116,104,101,32,

                   49,48,50,52,32,99,101,108,108,115,32,97,116,32,97,100,100,114,101,115,

                   115,32,97,32,116,111,32,98,108,111,99,107,32,110,32,105,110,32,116,104,

                   101,32,98,108,111,99,107,32,115,116,111,114,97,103,101,46,0,65,112,112,

                   101,110,100,32,97,32,118,97,108,117,101,32,116,111,32,116,104,101,32,99,

                   117,114,114,101,110,116,32,98,117,102,102,101,114,46,0,82,101,115,101,116,

                   32,116,104,101,32,99,117,114,114,101,110,116,32,98,117,102,102,101,114,32,

                   116,111,32,97,110,32,101,109,112,116,121,32,115,116,97,116,101,46,0,82,

                   101,116,117,114,110,32,97,32,112,111,105,110,116,101,114,32,116,111,32,116,

                   104,101,32,99,117,114,114,101,110,116,32,101,110,100,32,111,102,32,116,104,

                   101,32,97,99,116,105,118,101,32,98,117,102,102,101,114,46,0,82,101,109,

                   111,118,101,32,116,104,101,32,108,97,115,116,32,118,97,108,117,101,32,102,

                   114,111,109,32,116,104,101,32,99,117,114,114,101,110,116,32,98,117,102,102,

                   101,114,46,0,83,97,118,101,32,97,110,100,32,114,101,115,116,111,114,101,

                   32,116,104,101,32,99,117,114,114,101,110,116,32,98,117,102,102,101,114,32,

                   98,101,102,111,114,101,32,97,110,100,32,97,102,116,101,114,32,101,120,101,

                   99,117,116,105,110,103,32,116,104,101,32,115,112,101,99,105,102,105,101,100,

                   32,113,117,111,116,101,46,0,65,115,115,105,103,110,32,97,32,110,101,119,

                   32,98,117,102,102,101,114,32,97,115,32,116,104,101,32,99,117,114,114,101,

                   110,116,32,111,110,101,46,0,82,101,116,117,114,110,32,116,104,101,32,110,

                   117,109,98,101,114,32,111,102,32,99,101,108,108,115,32,105,110,32,116,104,

                   101,32,98,117,102,102,101,114,46,0,82,101,116,117,114,110,32,116,104,101,

                   32,115,116,97,114,116,32,97,100,100,114,101,115,115,32,111,102,32,116,104,

                   101,32,99,117,114,114,101,110,116,32,98,117,102,102,101,114,46,0,69,120,

                   105,116,32,82,101,116,114,111,46,0,82,101,116,117,114,110,32,84,82,85,

                   69,32,105,102,32,99,104,97,114,97,99,116,101,114,32,105,115,32,97,32,

                   110,111,116,32,99,111,110,115,111,110,97,110,116,32,111,114,32,70,65,76,

                   83,69,32,111,116,104,101,114,119,105,115,101,46,0,82,101,116,117,114,110,

                   32,84,82,85,69,32,105,102,32,99,104,97,114,97,99,116,101,114,32,105,

                   115,32,97,32,110,111,116,32,110,117,109,101,114,105,99,32,100,105,103,105,

                   116,32,111,114,32,70,65,76,83,69,32,111,116,104,101,114,119,105,115,101,

                   46,0,82,101,116,117,114,110,32,84,82,85,69,32,105,102,32,99,104,97,

                   114,97,99,116,101,114,32,105,115,32,110,111,116,32,108,111,119,101,114,99,

                   97,115,101,32,111,114,32,70,65,76,83,69,32,111,116,104,101,114,119,105,

                   115,101,46,0,82,101,116,117,114,110,32,84,82,85,69,32,105,102,32,99,

                   104,97,114,97,99,116,101,114,32,105,115,32,110,111,116,32,117,112,112,101,

                   114,99,97,115,101,32,111,114,32,70,65,76,83,69,32,111,116,104,101,114,

                   119,105,115,101,46,0,82,101,116,117,114,110,32,84,82,85,69,32,105,102,

                   32,99,104,97,114,97,99,116,101,114,32,105,115,32,110,111,116,32,112,114,

                   105,110,116,97,98,108,101,32,111,114,32,70,65,76,83,69,32,111,116,104,

                   101,114,119,105,115,101,46,0,82,101,116,117,114,110,32,84,82,85,69,32,

                   105,102,32,99,104,97,114,97,99,116,101,114,32,105,115,32,110,111,116,32,

                   97,32,118,111,119,101,108,32,111,114,32,70,65,76,83,69,32,111,116,104,

                   101,114,119,105,115,101,46,0,82,101,116,117,114,110,32,84,82,85,69,32,

                   105,102,32,99,104,97,114,97,99,116,101,114,32,105,115,32,110,111,116,32,

                   119,104,105,116,101,115,112,97,99,101,44,32,111,114,32,70,65,76,83,69,

                   32,111,116,104,101,114,119,105,115,101,46,0,82,101,116,117,114,110,32,84,

                   82,85,69,32,105,102,32,99,104,97,114,97,99,116,101,114,32,105,115,32,

                   97,32,99,111,110,115,111,110,97,110,116,32,111,114,32,70,65,76,83,69,

                   32,111,116,104,101,114,119,105,115,101,46,0,82,101,116,117,114,110,32,84,

                   82,85,69,32,105,102,32,99,104,97,114,97,99,116,101,114,32,105,115,32,

                   97,32,110,117,109,101,114,105,99,32,100,105,103,105,116,32,111,114,32,70,

                   65,76,83,69,32,111,116,104,101,114,119,105,115,101,46,0,86,101,99,116,

                   111,114,101,100,46,32,82,101,97,100,32,97,32,115,105,110,103,108,101,32,

                   107,101,121,112,114,101,115,115,46,0,82,101,116,117,114,110,32,84,82,85,

                   69,32,105,102,32,99,104,97,114,97,99,116,101,114,32,105,115,32,97,110,

                   32,65,83,67,73,73,32,108,101,116,116,101,114,32,111,114,32,70,65,76,

                   83,69,32,111,116,104,101,114,119,105,115,101,46,0,82,101,116,117,114,110,

                   32,84,82,85,69,32,105,102,32,99,104,97,114,97,99,116,101,114,32,105,

                   115,32,108,111,119,101,114,99,97,115,101,32,111,114,32,70,65,76,83,69,

                   32,111,116,104,101,114,119,105,115,101,46,0,86,101,99,116,111,114,101,100,

                   46,32,68,105,115,112,108,97,121,32,97,32,115,105,110,103,108,101,32,99,

                   104,97,114,97,99,116,101,114,46,0,67,111,110,118,101,114,116,32,99,104,

                   97,114,97,99,116,101,114,32,116,111,32,108,111,119,101,114,99,97,115,101,

                   32,101,113,117,105,118,97,108,101,110,116,46,0,67,111,110,118,101,114,116,

                   32,97,110,32,65,83,67,73,73,32,100,105,103,105,116,32,99,104,97,114,

                   97,99,116,101,114,32,105,110,116,111,32,116,104,101,32,99,111,114,114,101,

                   115,112,111,110,100,105,110,103,32,100,101,99,105,109,97,108,32,118,97,108,

                   117,101,0,67,111,110,118,101,114,116,32,99,104,97,114,97,99,116,101,114,

                   32,105,110,116,111,32,97,32,115,116,114,105,110,103,46,0,67,111,110,118,

                   101,114,116,32,99,104,97,114,97,99,116,101,114,32,116,111,32,117,112,112,

                   101,114,99,97,115,101,32,101,113,117,105,118,97,108,101,110,116,46,0,67,

                   111,110,118,101,114,116,32,97,110,32,65,83,67,73,73,32,99,104,97,114,

                   97,99,116,101,114,32,116,111,32,116,104,101,32,111,112,112,111,115,105,116,

                   101,32,99,97,115,101,46,0,82,101,116,117,114,110,32,84,82,85,69,32,

                   105,102,32,99,104,97,114,97,99,116,101,114,32,105,115,32,117,112,112,101,

                   114,99,97,115,101,32,111,114,32,70,65,76,83,69,32,111,116,104,101,114,

                   119,105,115,101,46,0,82,101,116,117,114,110,32,84,82,85,69,32,105,102,

                   32,99,104,97,114,97,99,116,101,114,32,105,115,32,112,114,105,110,116,97,

                   98,108,101,32,111,114,32,70,65,76,83,69,32,111,116,104,101,114,119,105,

                   115,101,46,0,82,101,116,117,114,110,32,84,82,85,69,32,105,102,32,99,

                   104,97,114,97,99,116,101,114,32,105,115,32,97,32,118,111,119,101,108,32,

                   111,114,32,70,65,76,83,69,32,111,116,104,101,114,119,105,115,101,46,0,

                   82,101,116,117,114,110,32,84,82,85,69,32,105,102,32,99,104,97,114,97,

                   99,116,101,114,32,105,115,32,119,104,105,116,101,115,112,97,99,101,44,32,

                   111,114,32,70,65,76,83,69,32,111,116,104,101,114,119,105,115,101,46,0,

                   67,97,108,108,32,97,32,102,117,110,99,116,105,111,110,46,0,82,101,116,

                   117,114,110,32,97,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,

                   32,99,97,114,32,111,102,32,99,111,110,115,32,97,46,0,83,116,111,114,

                   101,32,110,32,105,110,116,111,32,116,104,101,32,99,97,114,32,111,102,32,

                   99,111,110,115,32,97,46,0,82,101,116,117,114,110,32,116,104,101,32,99,

                   111,110,116,101,110,116,115,32,111,102,32,116,104,101,32,99,97,114,32,111,

                   102,32,99,111,110,115,32,97,46,0,73,102,32,96,110,96,32,105,115,32,

                   101,113,117,97,108,32,116,111,32,96,109,96,44,32,100,114,111,112,32,98,

                   111,116,104,32,97,110,100,32,101,120,101,99,117,116,101,32,116,104,101,32,

                   115,112,101,99,105,102,105,101,100,32,113,117,111,116,101,32,98,101,102,111,

                   114,101,32,101,120,105,116,105,110,103,32,116,104,101,32,99,97,108,108,105,

                   110,103,32,119,111,114,100,46,32,73,102,32,110,111,116,32,101,113,117,97,

                   108,44,32,108,101,97,118,101,32,96,110,96,32,111,110,32,116,104,101,32,

                   115,116,97,99,107,32,97,110,100,32,108,101,116,32,101,120,101,99,117,116,

                   105,111,110,32,99,111,110,116,105,110,117,101,46,0,82,101,116,117,114,110,

                   32,97,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,99,100,

                   114,32,111,102,32,99,111,110,115,32,97,46,0,83,116,111,114,101,32,110,

                   32,105,110,116,111,32,116,104,101,32,99,100,114,32,111,102,32,99,111,110,

                   115,32,97,46,0,82,101,116,117,114,110,32,116,104,101,32,99,111,110,116,

                   101,110,116,115,32,111,102,32,116,104,101,32,99,100,114,32,111,102,32,99,

                   111,110,115,32,97,46,0,69,120,101,99,117,116,101,32,113,49,32,105,102,

                   32,116,104,101,32,102,108,97,103,32,105,115,32,116,114,117,101,32,40,45,

                   49,41,32,111,114,32,113,50,32,105,102,32,116,104,101,32,102,108,97,103,

                   32,105,115,32,102,97,108,115,101,32,40,48,41,46,32,79,110,108,121,32,

                   116,104,101,115,101,32,102,108,97,103,115,32,97,114,101,32,118,97,108,105,

                   100,32,119,104,101,110,32,117,115,105,110,103,32,96,99,104,111,111,115,101,

                   96,59,32,112,97,115,115,105,110,103,32,111,116,104,101,114,32,118,97,108,

                   117,101,115,32,97,115,32,102,108,97,103,115,32,119,105,108,108,32,114,101,

                   115,117,108,116,32,105,110,32,109,101,109,111,114,121,32,99,111,114,114,117,

                   112,116,105,111,110,46,0,67,108,97,115,115,32,104,97,110,100,108,101,114,

                   32,102,111,114,32,100,97,116,97,32,115,116,114,117,99,116,117,114,101,115,

                   46,0,67,108,97,115,115,32,104,97,110,100,108,101,114,32,102,111,114,32,

                   99,111,109,112,105,108,101,114,32,109,97,99,114,111,115,32,40,105,109,109,

                   101,100,105,97,116,101,32,119,111,114,100,115,41,0,67,108,97,115,115,32,

                   104,97,110,100,108,101,114,32,102,111,114,32,112,114,105,109,105,116,105,118,

                   101,32,119,111,114,100,115,32,40,119,111,114,100,115,32,119,104,105,99,104,

                   32,109,97,112,32,116,111,32,78,103,97,32,105,110,115,116,114,117,99,116,

                   105,111,110,115,41,0,67,108,97,115,115,32,104,97,110,100,108,101,114,32,

                   102,111,114,32,110,111,114,109,97,108,32,119,111,114,100,115,46,0,82,101,

                   116,117,114,110,32,116,104,101,32,99,117,114,114,101,110,116,32,100,97,121,

                   46,0,82,101,116,117,114,110,32,116,104,101,32,99,117,114,114,101,110,116,

                   32,104,111,117,114,46,32,84,104,105,115,32,119,105,108,108,32,98,101,32,

                   105,110,32,116,104,101,32,114,97,110,103,101,32,111,102,32,48,45,50,51,

                   44,32,105,110,99,108,117,115,105,118,101,46,0,82,101,116,117,114,110,32,

                   116,104,101,32,99,117,114,114,101,110,116,32,109,105,110,117,116,101,46,32,

                   84,104,105,115,32,119,105,108,108,32,98,101,32,105,110,32,116,104,101,32,

                   114,97,110,103,101,32,111,102,32,48,45,53,57,44,32,105,110,99,108,117,

                   115,105,118,101,46,0,82,101,116,117,114,110,32,116,104,101,32,99,117,114,

                   114,101,110,116,32,109,111,110,116,104,46,32,84,104,105,115,32,119,105,108,

                   108,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,111,102,

                   32,49,45,49,50,44,32,105,110,99,108,117,115,105,118,101,46,0,84,114,

                   105,103,103,101,114,32,97,32,99,108,111,99,107,32,111,112,101,114,97,116,

                   105,111,110,46,32,84,104,105,115,32,105,115,32,110,111,116,32,105,110,116,

                   101,110,100,101,100,32,116,111,32,98,101,32,117,115,101,100,32,100,105,114,

                   101,99,116,108,121,46,0,82,101,116,117,114,110,32,116,104,101,32,99,117,

                   114,114,101,110,116,32,115,101,99,111,110,100,46,32,84,104,105,115,32,119,

                   105,108,108,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,

                   111,102,32,48,45,53,57,44,32,105,110,99,108,117,115,105,118,101,46,0,

                   82,101,116,117,114,110,32,97,32,104,111,115,116,32,115,112,101,99,105,102,

                   105,99,32,116,105,109,101,115,116,97,109,112,46,32,73,110,32,116,104,101,

                   32,115,116,97,110,100,97,114,100,32,115,121,115,116,101,109,44,32,116,104,

                   105,115,32,105,115,32,97,32,51,50,45,98,105,116,32,85,110,105,120,32,

                   116,105,109,101,115,116,97,109,112,44,32,98,117,116,32,116,104,105,115,32,

                   105,115,32,110,111,116,32,114,101,113,117,105,114,101,100,46,0,82,101,116,

                   117,114,110,32,116,104,101,32,99,117,114,114,101,110,116,32,100,97,121,32,

                   105,110,32,85,84,67,46,0,82,101,116,117,114,110,32,116,104,101,32,99,

                   117,114,114,101,110,116,32,104,111,117,114,32,105,110,32,85,84,67,46,0,

                   82,101,116,117,114,110,32,116,104,101,32,99,117,114,114,101,110,116,32,109,

                   105,110,117,116,101,32,105,110,32,85,84,67,46,0,82,101,116,117,114,110,

                   32,116,104,101,32,99,117,114,114,101,110,116,32,109,111,110,116,104,32,105,

                   110,32,85,84,67,46,0,82,101,116,117,114,110,32,116,104,101,32,99,117,

                   114,114,101,110,116,32,115,101,99,111,110,100,32,105,110,32,85,84,67,46,

                   0,82,101,116,117,114,110,32,116,104,101,32,99,117,114,114,101,110,116,32,

                   121,101,97,114,32,105,110,32,85,84,67,46,0,82,101,116,117,114,110,32,

                   116,104,101,32,99,117,114,114,101,110,116,32,121,101,97,114,46,0,83,116,

                   111,114,101,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,118,97,

                   108,117,101,32,105,110,116,111,32,116,104,101,32,109,101,109,111,114,121,32,

                   97,116,32,96,104,101,114,101,96,32,97,110,100,32,105,110,99,114,101,109,

                   101,110,116,32,96,72,101,97,112,96,32,98,121,32,49,46,32,73,100,101,

                   110,116,105,99,97,108,32,116,111,32,96,44,96,44,32,116,104,105,115,32,

                   105,115,32,112,114,111,118,105,100,101,100,32,102,111,114,32,99,111,109,112,

                   97,116,105,98,105,108,105,116,121,32,119,105,116,104,32,116,104,101,32,82,

                   101,116,114,111,70,111,114,116,104,32,111,110,32,105,108,111,32,97,110,100,

                   32,110,97,112,105,97,46,0,67,111,109,112,105,108,101,32,97,32,99,97,

                   108,108,32,116,111,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,

                   97,100,100,114,101,115,115,32,105,110,116,111,32,116,104,101,32,99,117,114,

                   114,101,110,116,32,100,101,102,105,110,105,116,105,111,110,46,0,67,111,109,

                   112,105,108,101,32,97,32,106,117,109,112,32,116,111,32,116,104,101,32,115,

                   112,101,99,105,102,105,101,100,32,97,100,100,114,101,115,115,32,105,110,116,

                   111,32,116,104,101,32,99,117,114,114,101,110,116,32,100,101,102,105,110,105,

                   116,105,111,110,46,0,67,111,109,112,105,108,101,32,116,104,101,32,99,111,

                   100,101,32,116,111,32,112,117,115,104,32,97,32,110,117,109,98,101,114,32,

                   116,111,32,116,104,101,32,115,116,97,99,107,32,105,110,116,111,32,116,104,

                   101,32,99,117,114,114,101,110,116,32,100,101,102,105,110,105,116,105,111,110,

                   46,0,67,111,109,112,105,108,101,32,97,32,114,101,116,117,114,110,32,105,

                   110,115,116,114,117,99,116,105,111,110,32,105,110,116,111,32,116,104,101,32,

                   99,117,114,114,101,110,116,32,100,101,102,105,110,105,116,105,111,110,46,0,

                   82,101,116,117,114,110,32,96,84,82,85,69,96,32,105,102,32,99,111,109,

                   112,105,108,101,114,32,105,115,32,111,110,32,111,114,32,96,70,65,76,83,

                   69,96,32,111,116,104,101,114,119,105,115,101,46,0,67,114,101,97,116,101,

                   32,97,32,110,101,119,32,99,111,110,115,32,99,101,108,108,32,119,105,116,

                   104,32,97,32,99,97,114,32,111,102,32,120,32,97,110,100,32,97,32,99,

                   100,114,32,111,102,32,121,46,0,67,114,101,97,116,101,32,97,32,99,111,

                   110,115,116,97,110,116,32,114,101,116,117,114,110,105,110,103,32,116,104,101,

                   32,115,112,101,99,105,102,105,101,100,32,118,97,108,117,101,46,0,67,111,

                   112,121,32,96,108,96,32,99,101,108,108,115,32,102,114,111,109,32,109,101,

                   109,111,114,121,32,97,116,32,96,115,96,32,116,111,32,116,104,101,32,109,

                   101,109,111,114,121,32,97,116,32,96,100,96,46,32,84,104,101,115,101,32,

                   115,104,111,117,108,100,32,110,111,116,32,111,118,101,114,108,97,112,46,0,

                   67,108,101,97,114,32,116,104,101,32,105,110,116,101,114,110,97,108,32,115,

                   116,97,116,101,32,111,102,32,99,111,114,101,32,96,110,96,46,32,84,104,

                   105,115,32,115,104,111,117,108,100,32,98,101,32,100,111,110,101,32,112,114,

                   105,111,114,32,116,111,32,117,115,101,32,111,102,32,96,99,111,114,101,58,

                   115,116,97,114,116,96,44,32,119,104,105,99,104,32,97,99,116,105,118,97,

                   116,101,115,32,112,114,111,99,101,115,115,105,110,103,32,111,110,32,116,104,

                   101,32,99,111,114,101,46,0,83,117,115,112,101,110,100,32,112,114,111,99,

                   101,115,115,105,110,103,32,111,110,32,99,111,114,101,32,96,110,96,46,0,

                   83,117,115,112,101,110,100,32,112,114,111,99,101,115,115,105,110,103,32,111,

                   110,32,116,104,101,32,99,117,114,114,101,110,116,32,99,111,114,101,46,0,

                   82,101,97,100,32,97,32,118,97,108,117,101,32,102,114,111,109,32,114,101,

                   103,105,115,116,101,114,32,96,110,96,32,111,110,32,116,104,101,32,99,117,

                   114,114,101,110,116,32,99,111,114,101,46,0,82,101,115,117,109,101,32,112,

                   114,111,99,101,115,115,105,110,103,32,111,110,32,99,111,114,101,32,96,110,

                   96,32,97,102,116,101,114,32,97,32,96,99,111,114,101,58,112,97,117,115,

                   101,96,32,111,114,32,96,99,111,114,101,58,112,97,117,115,101,45,99,117,

                   114,114,101,110,116,96,46,0,83,101,116,32,116,104,101,32,73,80,32,111,

                   102,32,99,111,114,101,32,96,110,96,32,116,111,32,97,100,100,114,101,115,

                   115,32,96,97,96,32,97,110,100,32,98,101,103,105,110,32,112,114,111,99,

                   101,115,115,105,110,103,32,111,110,32,99,111,114,101,32,96,110,96,46,0,

                   87,114,105,116,101,32,97,32,118,97,108,117,101,32,116,111,32,114,101,103,

                   105,115,116,101,114,32,110,117,109,98,101,114,32,96,110,96,32,111,110,32,

                   116,104,101,32,99,117,114,114,101,110,116,32,99,111,114,101,46,0,66,105,

                   110,100,32,97,32,118,97,108,117,101,32,116,111,32,97,32,102,117,110,99,

                   116,105,111,110,32,97,110,100,32,114,101,116,117,114,110,32,97,32,110,101,

                   119,32,113,117,111,116,101,32,116,104,97,116,32,99,97,108,108,115,32,116,

                   104,101,32,98,111,117,110,100,32,97,99,116,105,111,110,46,0,73,110,108,

                   105,110,101,32,97,32,110,117,109,101,114,105,99,32,118,97,108,117,101,32,

                   116,111,32,116,104,101,32,99,117,114,114,101,110,116,32,97,115,115,101,109,

                   98,108,121,32,115,101,103,109,101,110,116,46,0,86,97,114,105,97,98,108,

                   101,46,32,72,111,108,100,115,32,97,32,112,111,105,110,116,101,114,32,116,

                   104,111,32,116,104,101,32,102,117,110,99,116,105,111,110,32,102,111,114,32,

                   99,97,108,99,117,108,97,116,105,110,103,32,100,105,99,116,105,111,110,97,

                   114,121,32,104,97,115,104,101,115,46,0,86,101,99,116,111,114,101,100,46,

                   32,67,114,101,97,116,101,32,97,32,104,101,97,100,101,114,46,32,80,114,

                   111,118,105,100,101,32,97,32,115,116,114,105,110,103,32,40,115,41,32,102,

                   111,114,32,116,104,101,32,110,97,109,101,44,32,97,32,112,111,105,110,116,

                   101,114,32,116,111,32,116,104,101,32,99,108,97,115,115,32,104,97,110,100,

                   108,101,114,32,40,97,49,41,32,97,110,100,32,97,32,112,111,105,110,116,

                   101,114,32,116,111,32,116,104,101,32,119,111,114,100,32,100,101,102,105,110,

                   105,116,105,111,110,32,40,97,50,41,32,71,101,110,101,114,97,108,108,121,

                   32,116,104,105,115,32,119,111,110,39,116,32,98,101,32,117,115,101,100,32,

                   100,105,114,101,99,116,108,121,46,0,71,105,118,101,110,32,97,32,100,105,

                   99,116,105,111,110,97,114,121,32,104,101,97,100,101,114,44,32,114,101,116,

                   117,114,110,32,116,104,101,32,99,108,97,115,115,32,102,105,101,108,100,46,

                   0,72,111,111,107,46,32,67,114,101,97,116,101,32,97,32,110,101,119,32,

                   100,105,99,116,105,111,110,97,114,121,32,104,101,97,100,101,114,32,110,97,

                   109,101,100,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,115,116,

                   114,105,110,103,46,32,84,104,101,32,110,101,119,32,104,101,97,100,101,114,

                   32,119,105,108,108,32,112,111,105,110,116,32,116,111,32,96,104,101,114,101,

                   96,32,97,110,100,32,104,97,118,101,32,97,32,99,108,97,115,115,32,111,

                   102,32,96,99,108,97,115,115,58,100,97,116,97,96,46,0,69,120,101,99,

                   117,116,101,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,113,117,

                   111,116,101,32,111,110,99,101,32,102,111,114,32,101,97,99,104,32,104,101,

                   97,100,101,114,32,105,110,32,116,104,101,32,100,105,99,116,105,111,110,97,

                   114,121,46,32,66,101,102,111,114,101,32,114,117,110,110,105,110,103,32,116,

                   104,101,32,113,117,111,116,101,44,32,116,104,105,115,32,97,108,115,111,32,

                   112,117,115,104,101,115,32,97,32,112,111,105,110,116,101,114,32,116,111,32,

                   116,104,101,32,104,101,97,100,101,114,32,111,110,116,111,32,116,104,101,32,

                   115,116,97,99,107,46,0,71,105,118,101,110,32,97,32,100,105,99,116,105,

                   111,110,97,114,121,32,104,101,97,100,101,114,44,32,114,101,116,117,114,110,

                   32,116,104,101,32,104,97,115,104,32,102,105,101,108,100,46,0,82,101,116,

                   117,114,110,32,116,104,101,32,109,111,115,116,32,114,101,99,101,110,116,32,

                   100,105,99,116,105,111,110,97,114,121,32,104,101,97,100,101,114,46,0,82,

                   101,116,117,114,110,32,97,32,112,111,105,110,116,101,114,32,116,111,32,116,

                   104,101,32,99,108,97,115,115,32,102,105,101,108,100,32,111,102,32,116,104,

                   101,32,109,111,115,116,32,114,101,99,101,110,116,32,100,105,99,116,105,111,

                   110,97,114,121,32,104,101,97,100,101,114,46,0,82,101,116,117,114,110,32,

                   97,32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,110,97,109,

                   101,32,102,105,101,108,100,32,111,102,32,116,104,101,32,109,111,115,116,32,

                   114,101,99,101,110,116,32,100,105,99,116,105,111,110,97,114,121,32,104,101,

                   97,100,101,114,46,0,82,101,116,117,114,110,32,97,32,112,111,105,110,116,

                   101,114,32,116,111,32,116,104,101,32,120,116,32,102,105,101,108,100,32,111,

                   102,32,116,104,101,32,109,111,115,116,32,114,101,99,101,110,116,32,100,105,

                   99,116,105,111,110,97,114,121,32,104,101,97,100,101,114,46,0,71,105,118,

                   101,110,32,97,32,100,105,99,116,105,111,110,97,114,121,32,104,101,97,100,

                   101,114,44,32,114,101,116,117,114,110,32,116,104,101,32,108,105,110,107,32,

                   102,105,101,108,100,46,0,76,111,111,107,117,112,32,116,104,101,32,115,112,

                   101,99,105,102,105,101,100,32,110,97,109,101,32,105,110,32,116,104,101,32,

                   100,105,99,116,105,111,110,97,114,121,32,97,110,100,32,114,101,116,117,114,

                   110,32,97,32,112,111,105,110,116,101,114,32,116,111,32,105,116,115,32,100,

                   105,99,116,105,111,110,97,114,121,32,104,101,97,100,101,114,46,32,84,104,

                   105,115,32,114,101,116,117,114,110,115,32,122,101,114,111,32,105,102,32,116,

                   104,101,32,119,111,114,100,32,105,115,32,110,111,116,32,102,111,117,110,100,

                   46,32,84,104,105,115,32,97,108,115,111,32,115,101,116,115,32,97,110,32,

                   105,110,116,101,114,110,97,108,32,118,97,114,105,97,98,108,101,32,40,39,

                   119,104,105,99,104,39,32,105,110,32,114,101,116,114,111,46,109,117,114,105,

                   41,32,116,111,32,116,104,101,32,104,101,97,100,101,114,32,97,100,100,114,

                   101,115,115,46,0,76,111,111,107,117,112,32,116,104,101,32,115,112,101,99,

                   105,102,105,101,100,32,97,100,100,114,101,115,115,32,105,110,32,116,104,101,

                   32,100,105,99,116,105,111,110,97,114,121,32,97,110,100,32,114,101,116,117,

                   114,110,32,97,32,112,111,105,110,116,101,114,32,116,111,32,105,116,115,32,

                   100,105,99,116,105,111,110,97,114,121,32,104,101,97,100,101,114,46,32,84,

                   104,105,115,32,114,101,116,117,114,110,115,32,122,101,114,111,32,105,102,32,

                   116,104,101,32,119,111,114,100,32,105,115,32,110,111,116,32,102,111,117,110,

                   100,46,0,71,105,118,101,110,32,97,32,100,105,99,116,105,111,110,97,114,

                   121,32,104,101,97,100,101,114,44,32,114,101,116,117,114,110,32,116,104,101,

                   32,110,97,109,101,32,102,105,101,108,100,46,0,85,112,100,97,116,101,32,

                   116,104,101,32,104,97,115,104,101,115,32,102,111,114,32,97,108,108,32,118,

                   105,115,105,98,108,101,32,119,111,114,100,115,32,105,110,32,116,104,101,32,

                   100,105,99,116,105,111,110,97,114,121,46,0,83,101,116,32,116,104,101,32,

                   96,100,58,115,111,117,114,99,101,96,32,102,105,101,108,100,32,111,102,32,

                   116,104,101,32,104,101,97,100,101,114,32,102,111,114,32,116,104,101,32,110,

                   97,109,101,100,32,119,111,114,100,32,40,115,50,41,32,116,111,32,115,116,

                   114,105,110,103,32,40,115,49,41,46,32,84,104,101,32,115,116,114,105,110,

                   103,32,119,105,108,108,32,110,111,116,32,98,101,32,100,117,112,108,105,99,

                   97,116,101,100,46,0,71,105,118,101,110,32,97,32,100,105,99,116,105,111,

                   110,97,114,121,32,104,101,97,100,101,114,44,32,114,101,116,117,114,110,32,

                   116,104,101,32,115,111,117,114,99,101,32,102,105,101,108,100,46,0,67,104,

                   97,110,103,101,32,100,105,99,116,105,111,110,97,114,121,32,115,101,97,114,

                   99,104,32,116,111,32,117,115,101,32,104,97,115,104,101,100,32,110,97,109,

                   101,32,99,111,109,112,97,114,105,111,110,115,46,0,67,104,97,110,103,101,

                   32,100,105,99,116,105,111,110,97,114,121,32,115,101,97,114,99,104,32,116,

                   111,32,117,115,101,32,102,117,108,108,32,110,97,109,101,32,99,111,109,112,

                   97,114,105,111,110,115,46,0,71,105,118,101,110,32,97,32,100,105,99,116,

                   105,111,110,97,114,121,32,104,101,97,100,101,114,44,32,114,101,116,117,114,

                   110,32,116,104,101,32,120,116,32,102,105,101,108,100,46,0,67,104,97,110,

                   103,101,32,116,104,101,32,99,108,97,115,115,32,111,102,32,116,104,101,32,

                   109,111,115,116,32,114,101,99,101,110,116,108,121,32,100,101,102,105,110,101,

                   100,32,119,111,114,100,32,116,111,32,96,99,108,97,115,115,58,100,97,116,

                   97,96,46,0,83,101,116,32,96,66,97,115,101,96,32,116,111,32,100,101,

                   99,105,109,97,108,46,0,82,101,116,117,114,110,32,116,104,101,32,110,117,

                   109,98,101,114,32,111,102,32,105,116,101,109,115,32,111,110,32,116,104,101,

                   32,115,116,97,99,107,46,0,84,101,109,112,111,114,97,114,105,108,121,32,

                   114,101,109,111,118,101,32,110,32,102,114,111,109,32,116,104,101,32,115,116,

                   97,99,107,44,32,101,120,101,99,117,116,101,32,116,104,101,32,113,117,111,

                   116,97,116,105,111,110,44,32,97,110,100,32,116,104,101,110,32,114,101,115,

                   116,111,114,101,32,110,32,116,111,32,116,104,101,32,115,116,97,99,107,46,

                   0,65,116,116,97,99,104,32,97,110,32,97,99,116,105,111,110,32,116,111,

                   32,116,104,101,32,109,111,115,116,32,114,101,99,101,110,116,108,121,32,99,

                   114,101,97,116,101,100,32,119,111,114,100,46,32,84,104,105,115,32,105,115,

                   32,117,115,101,100,32,105,110,32,97,32,109,97,110,110,101,114,32,115,105,

                   109,105,108,97,114,32,116,111,32,67,82,69,65,84,69,47,68,79,69,83,

                   62,32,105,110,32,116,114,97,100,105,116,105,111,110,97,108,32,70,111,114,

                   116,104,46,0,68,105,115,99,97,114,100,32,116,104,101,32,116,111,112,32,

                   118,97,108,117,101,32,111,110,32,116,104,101,32,115,116,97,99,107,46,0,

                   82,101,109,111,118,101,32,116,111,112,32,116,119,111,32,105,116,101,109,115,

                   32,111,110,32,116,104,101,32,115,116,97,99,107,46,0,68,105,115,112,108,

                   97,121,32,116,104,101,32,105,116,101,109,115,32,111,110,32,116,104,101,32,

                   100,97,116,97,32,115,116,97,99,107,46,0,68,117,112,108,105,99,97,116,

                   101,32,116,104,101,32,116,111,112,32,105,116,101,109,32,111,110,32,116,104,

                   101,32,115,116,97,99,107,46,0,68,117,112,108,105,99,97,116,101,32,116,

                   104,101,32,116,111,112,32,116,119,111,32,105,116,101,109,115,32,111,110,32,

                   116,104,101,32,115,116,97,99,107,46,0,67,111,110,115,116,97,110,116,46,

                   32,78,101,103,97,116,105,118,101,32,105,110,102,105,110,105,116,121,46,32,

                   32,70,111,114,32,101,110,99,111,100,101,100,32,102,108,111,97,116,105,110,

                   103,45,112,111,105,110,116,32,118,97,108,117,101,115,46,0,73,115,32,101,

                   110,99,111,100,101,100,32,118,97,108,117,101,32,110,101,103,97,116,105,118,

                   101,32,105,110,102,105,110,105,116,121,63,0,67,111,110,115,116,97,110,116,

                   46,32,73,110,102,105,110,105,116,121,46,32,70,111,114,32,101,110,99,111,

                   100,101,100,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,

                   97,108,117,101,115,46,0,67,111,110,115,116,97,110,116,46,32,77,97,120,

                   105,109,117,109,32,118,97,108,117,101,46,32,70,111,114,32,101,110,99,111,

                   100,101,100,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,

                   97,108,117,101,115,46,0,67,111,110,115,116,97,110,116,46,32,77,105,110,

                   105,109,117,109,32,118,97,108,117,101,46,32,70,111,114,32,101,110,99,111,

                   100,101,100,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,

                   97,108,117,101,115,46,0,67,111,110,115,116,97,110,116,46,32,78,111,116,

                   32,97,32,78,117,109,98,101,114,46,32,70,111,114,32,101,110,99,111,100,

                   101,100,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,

                   108,117,101,115,46,0,67,111,110,115,116,114,97,105,110,32,116,104,101,32,

                   101,110,99,111,100,101,100,32,118,97,108,117,101,32,116,111,32,116,104,101,

                   32,97,108,108,111,119,97,98,108,101,32,114,97,110,103,101,46,0,73,115,

                   32,101,110,99,111,100,101,100,32,118,97,108,117,101,32,105,110,102,105,110,

                   105,116,121,63,0,73,115,32,101,110,99,111,100,101,100,32,118,97,108,117,

                   101,32,97,116,32,116,104,101,32,109,97,120,105,109,117,109,63,0,73,115,

                   32,101,110,99,111,100,101,100,32,118,97,108,117,101,32,97,116,32,116,104,

                   101,32,109,105,110,105,109,117,109,63,0,82,101,116,117,114,110,32,96,84,

                   82,85,69,96,32,105,102,32,116,104,101,32,101,110,99,111,100,101,100,32,

                   118,97,108,117,101,32,105,115,32,97,32,118,97,108,105,100,32,110,117,109,

                   98,101,114,44,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,

                   114,119,105,115,101,46,0,73,115,32,101,110,99,111,100,101,100,32,118,97,

                   108,117,101,32,97,32,78,97,110,63,0,68,105,115,112,108,97,121,32,97,

                   110,32,101,110,99,111,100,101,100,32,110,117,109,98,101,114,46,0,68,101,

                   99,111,100,101,32,97,110,32,101,110,99,111,100,101,100,32,102,108,111,97,

                   116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,46,0,82,101,

                   116,117,114,110,32,96,84,82,85,69,96,32,105,102,32,116,104,101,32,118,

                   97,108,117,101,32,105,115,32,122,101,114,111,44,32,111,114,32,96,70,65,

                   76,83,69,96,32,111,116,104,101,114,119,105,115,101,46,0,67,111,109,112,

                   97,114,101,32,116,119,111,32,118,97,108,117,101,115,32,102,111,114,32,101,

                   113,117,97,108,105,116,121,46,32,82,101,116,117,114,110,115,32,96,84,82,

                   85,69,96,32,105,102,32,116,104,101,121,32,97,114,101,32,101,113,117,97,

                   108,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,

                   115,101,46,0,69,114,114,111,114,32,104,97,110,100,108,101,114,32,102,111,

                   114,32,100,97,116,97,32,115,116,97,99,107,32,111,118,101,114,102,108,111,

                   119,0,69,114,114,111,114,32,104,97,110,100,108,101,114,32,102,111,114,32,

                   100,97,116,97,32,115,116,97,99,107,32,117,110,100,101,114,102,108,111,119,

                   46,0,86,101,99,116,111,114,101,100,46,32,69,114,114,111,114,32,104,97,

                   110,100,108,101,114,46,32,67,97,108,108,101,100,32,119,104,101,110,32,97,

                   32,119,111,114,100,32,105,115,32,110,111,116,32,102,111,117,110,100,32,98,

                   121,32,96,105,110,116,101,114,112,114,101,116,96,46,0,83,101,116,32,116,

                   104,101,32,100,101,102,97,117,108,116,32,101,114,114,111,114,32,104,97,110,

                   100,108,101,114,115,32,102,111,114,32,118,97,114,105,111,117,115,32,99,111,

                   110,100,105,116,105,111,110,115,46,0,83,101,116,32,101,114,114,111,114,32,

                   104,97,110,100,108,101,114,32,102,111,114,32,101,114,114,111,114,32,99,111,

                   100,101,32,78,46,32,0,77,117,108,116,105,112,108,121,32,116,119,111,32,

                   102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,110,117,109,98,101,

                   114,115,44,32,114,101,116,117,114,110,105,110,103,32,116,104,101,32,114,101,

                   115,117,108,116,46,0,65,100,100,32,116,119,111,32,102,108,111,97,116,105,

                   110,103,45,112,111,105,110,116,32,110,117,109,98,101,114,115,44,32,114,101,

                   116,117,114,110,105,110,103,32,116,104,101,32,114,101,115,117,108,116,46,0,

                   83,117,98,116,114,97,99,116,32,70,50,32,102,114,111,109,32,70,49,32,

                   114,101,116,117,114,110,105,110,103,32,116,104,101,32,114,101,115,117,108,116,

                   46,0,82,101,116,117,114,110,32,97,32,118,97,108,117,101,32,99,111,114,

                   114,101,115,112,111,110,100,105,110,103,32,116,111,32,110,101,103,97,116,105,

                   118,101,32,105,110,102,105,110,105,116,121,0,67,111,109,112,97,114,101,32,

                   116,119,111,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,

                   97,108,117,101,115,32,102,111,114,32,105,110,101,113,117,97,108,105,116,121,

                   46,32,82,101,116,117,114,110,115,32,96,84,82,85,69,96,32,105,102,32,

                   116,104,101,121,32,97,114,101,32,110,111,116,32,101,113,117,97,108,32,111,

                   114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,115,101,46,

                   0,82,101,116,117,114,110,32,96,84,82,85,69,96,32,105,102,32,102,108,

                   111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,32,105,

                   115,32,45,73,78,70,32,111,114,32,96,70,65,76,83,69,96,32,111,116,

                   104,101,114,119,105,115,101,46,0,68,105,118,105,100,101,32,102,108,111,97,

                   116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,32,70,49,32,

                   98,121,32,70,50,46,0,82,101,116,117,114,110,32,116,104,101,32,102,108,

                   111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,32,102,

                   111,114,32,69,117,108,101,114,39,115,32,110,117,109,98,101,114,46,0,72,

                   111,111,107,46,32,82,101,116,117,114,110,32,97,32,99,111,110,115,116,97,

                   110,116,32,117,115,101,100,32,97,115,32,116,104,101,32,115,99,97,108,105,

                   110,103,32,102,97,99,116,111,114,32,102,111,114,32,116,104,101,32,101,58,

                   32,119,111,114,100,115,46,0,82,101,116,117,114,110,32,97,32,118,97,108,

                   117,101,32,99,111,114,114,101,115,112,111,110,100,105,110,103,32,116,111,32,

                   112,111,115,105,116,105,118,101,32,105,110,102,105,110,105,116,121,0,82,101,

                   116,117,114,110,32,97,32,118,97,108,117,101,32,99,111,114,114,101,115,112,

                   111,110,100,105,110,103,32,116,111,32,78,97,78,0,82,101,116,117,114,110,

                   32,116,104,101,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,

                   118,97,108,117,101,32,102,111,114,32,80,73,46,0,82,101,116,117,114,110,

                   32,116,104,101,32,97,98,115,111,108,117,116,101,32,118,97,108,117,101,32,

                   102,111,114,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,

                   32,118,97,108,117,101,46,0,82,101,116,117,114,110,32,116,104,101,32,97,

                   114,99,32,99,111,115,105,110,101,32,111,102,32,97,32,102,108,111,97,116,

                   105,110,103,45,112,111,105,110,116,32,110,117,109,98,101,114,46,0,82,101,

                   116,117,114,110,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,105,

                   116,101,109,115,32,111,110,32,116,104,101,32,97,108,116,101,114,110,97,116,

                   101,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,115,116,97,

                   99,107,46,0,82,101,116,117,114,110,32,116,104,101,32,97,114,99,32,115,

                   105,110,101,32,111,102,32,97,32,102,108,111,97,116,105,110,103,45,112,111,

                   105,110,116,32,110,117,109,98,101,114,46,0,82,101,116,117,114,110,32,116,

                   104,101,32,97,114,99,32,116,97,110,103,101,110,116,32,111,102,32,97,32,

                   102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,110,117,109,98,101,

                   114,46,0,82,101,116,117,114,110,32,84,82,85,69,32,105,102,32,110,117,

                   109,98,101,114,32,105,115,32,98,101,116,119,101,101,110,32,116,104,101,32,

                   108,111,119,101,114,32,40,108,41,32,97,110,100,32,117,112,112,101,114,32,

                   40,117,41,32,98,111,117,110,100,115,46,32,73,102,32,110,111,116,44,32,

                   114,101,116,117,114,110,32,70,65,76,83,69,46,32,84,104,105,115,32,105,

                   115,32,105,110,99,108,117,115,105,118,101,32,111,102,32,116,104,101,32,108,

                   105,109,105,116,115,46,0,73,102,32,96,110,96,32,105,115,32,101,113,117,

                   97,108,32,116,111,32,96,109,96,44,32,100,114,111,112,32,98,111,116,104,

                   32,97,110,100,32,101,120,101,99,117,116,101,32,116,104,101,32,115,112,101,

                   99,105,102,105,101,100,32,113,117,111,116,101,32,98,101,102,111,114,101,32,

                   101,120,105,116,105,110,103,32,116,104,101,32,99,97,108,108,105,110,103,32,

                   119,111,114,100,46,32,73,102,32,110,111,116,32,101,113,117,97,108,44,32,

                   108,101,97,118,101,32,96,110,96,32,111,110,32,116,104,101,32,115,116,97,

                   99,107,32,97,110,100,32,108,101,116,32,101,120,101,99,117,116,105,111,110,

                   32,99,111,110,116,105,110,117,101,46,0,82,101,116,117,114,110,32,116,104,

                   101,32,115,109,97,108,108,101,115,116,32,105,110,116,101,103,114,97,108,32,

                   118,97,108,117,101,32,103,114,101,97,116,101,114,32,116,104,97,110,32,111,

                   114,32,101,113,117,97,108,32,116,111,32,116,104,101,32,115,112,101,99,105,

                   102,105,101,100,32,118,97,108,117,101,46,0,82,101,116,117,114,110,32,116,

                   104,101,32,99,111,115,105,110,101,32,111,102,32,97,32,102,108,111,97,116,

                   105,110,103,45,112,111,105,110,116,32,110,117,109,98,101,114,46,0,68,101,

                   99,114,101,109,101,110,116,32,110,32,98,121,32,111,110,101,46,0,82,101,

                   116,117,114,110,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,105,

                   116,101,109,115,32,111,110,32,116,104,101,32,102,108,111,97,116,105,110,103,

                   45,112,111,105,110,116,32,115,116,97,99,107,46,0,68,105,115,99,97,114,

                   100,32,116,104,101,32,116,111,112,32,105,116,101,109,32,111,110,32,116,104,

                   101,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,115,116,97,

                   99,107,46,0,82,101,109,111,118,101,32,116,111,112,32,116,119,111,32,105,

                   116,101,109,115,32,111,110,32,116,104,101,32,115,116,97,99,107,46,0,68,

                   105,115,112,108,97,121,32,116,104,101,32,105,116,101,109,115,32,111,110,32,

                   116,104,101,32,97,108,116,101,114,110,97,116,101,32,102,108,111,97,116,105,

                   110,103,45,112,111,105,110,116,32,115,116,97,99,107,46,0,68,105,115,112,

                   108,97,121,32,116,104,101,32,105,116,101,109,115,32,111,110,32,116,104,101,

                   32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,115,116,97,99,

                   107,46,0,68,117,112,108,105,99,97,116,101,32,116,104,101,32,116,111,112,

                   32,105,116,101,109,32,111,110,32,116,104,101,32,102,108,111,97,116,105,110,

                   103,45,112,111,105,110,116,32,115,116,97,99,107,46,0,68,117,112,108,105,

                   99,97,116,101,32,116,104,101,32,116,111,112,32,116,119,111,32,105,116,101,

                   109,115,32,111,110,32,116,104,101,32,115,116,97,99,107,46,0,67,111,109,

                   112,97,114,101,32,116,119,111,32,102,108,111,97,116,105,110,103,45,112,111,

                   105,110,116,32,118,97,108,117,101,115,32,102,111,114,32,101,113,117,97,108,

                   105,116,121,46,32,82,101,116,117,114,110,115,32,96,84,82,85,69,96,32,

                   105,102,32,116,104,101,121,32,97,114,101,32,101,113,117,97,108,32,111,114,

                   32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,115,101,46,0,

                   70,101,116,99,104,32,97,32,115,116,111,114,101,100,32,102,108,111,97,116,

                   105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,46,0,80,101,114,

                   102,111,114,109,32,97,32,109,97,116,104,101,109,97,116,105,99,97,108,32,

                   102,108,111,111,114,32,111,112,101,114,97,116,105,111,110,32,111,110,32,116,

                   104,101,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,

                   108,117,101,46,0,67,111,109,112,97,114,101,32,116,119,111,32,102,108,111,

                   97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,115,32,102,

                   111,114,32,103,114,101,97,116,101,114,32,116,104,97,110,46,0,73,110,99,

                   114,101,109,101,110,116,32,110,32,98,121,32,111,110,101,46,0,82,101,116,

                   117,114,110,32,96,84,82,85,69,96,32,105,102,32,102,108,111,97,116,105,

                   110,103,45,112,111,105,110,116,32,118,97,108,117,101,32,105,115,32,73,78,

                   70,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,

                   115,101,46,0,82,101,116,117,114,110,32,110,32,105,102,32,105,116,32,105,

                   115,32,119,105,116,104,105,110,32,116,104,101,32,108,111,119,101,114,32,40,

                   108,41,32,97,110,100,32,117,112,112,101,114,32,40,117,41,32,98,111,117,

                   110,100,115,46,32,73,102,32,111,117,116,115,105,100,101,32,116,104,101,32,

                   98,111,117,110,100,115,44,32,114,101,116,117,114,110,32,116,104,101,32,99,

                   108,111,115,101,115,32,98,111,117,110,100,97,114,121,32,118,97,108,117,101,

                   46,0,82,101,116,117,114,110,32,108,111,103,40,70,49,41,32,102,111,114,

                   32,98,97,115,101,32,70,50,32,102,111,114,32,102,108,111,97,116,105,110,

                   103,45,112,111,105,110,116,32,118,97,108,117,101,115,46,0,67,111,109,112,

                   97,114,101,32,116,119,111,32,102,108,111,97,116,105,110,103,45,112,111,105,

                   110,116,32,118,97,108,117,101,115,32,102,111,114,32,108,101,115,115,32,116,

                   104,97,110,46,0,82,101,116,117,114,110,32,116,104,101,32,103,114,101,97,

                   116,101,114,32,111,102,32,116,119,111,32,118,97,108,117,101,115,46,0,82,

                   101,116,117,114,110,32,116,104,101,32,108,101,115,115,101,114,32,111,102,32,

                   116,119,111,32,118,97,108,117,101,115,46,0,82,101,116,117,114,110,32,96,

                   84,82,85,69,96,32,105,102,32,102,108,111,97,116,105,110,103,45,112,111,

                   105,110,116,32,118,97,108,117,101,32,105,115,32,78,97,78,32,111,114,32,

                   96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,115,101,46,0,73,

                   110,118,101,114,116,32,116,104,101,32,115,105,103,110,32,111,102,32,116,104,

                   101,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,

                   117,101,46,0,82,101,116,117,114,110,32,96,84,82,85,69,96,32,105,102,

                   32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,

                   101,32,105,115,32,110,101,103,97,116,105,118,101,32,111,114,32,96,70,65,

                   76,83,69,96,32,105,102,32,110,111,116,46,0,82,101,109,111,118,101,32,

                   116,104,101,32,115,101,99,111,110,100,32,105,116,101,109,32,102,114,111,109,

                   32,116,104,101,32,115,116,97,99,107,46,0,80,117,116,32,97,32,99,111,

                   112,121,32,111,102,32,116,104,101,32,115,101,99,111,110,100,32,102,108,111,

                   97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,32,111,118,

                   101,114,32,116,104,101,32,116,111,112,32,111,110,101,46,0,80,111,112,32,

                   97,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,

                   117,101,32,102,114,111,109,32,116,104,101,32,97,108,116,101,114,110,97,116,

                   101,32,115,116,97,99,107,46,0,82,101,116,117,114,110,32,96,84,82,85,

                   69,96,32,105,102,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,

                   32,118,97,108,117,101,32,105,115,32,112,111,115,105,116,105,118,101,32,111,

                   114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,115,101,46,

                   0,82,101,116,117,114,110,32,70,49,94,70,50,32,102,111,114,32,102,108,

                   111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,115,46,

                   0,80,117,115,104,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,

                   110,116,32,118,97,108,117,101,32,116,111,32,97,110,32,97,108,116,101,114,

                   110,97,116,105,118,101,32,115,116,97,99,107,46,0,68,105,115,112,108,97,

                   121,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,110,

                   117,109,98,101,114,46,0,82,111,116,97,116,101,32,116,104,101,32,116,111,

                   112,32,116,104,114,101,101,32,118,97,108,117,101,115,46,0,82,111,117,110,

                   100,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,

                   97,108,117,101,46,0,82,101,116,117,114,110,32,49,32,105,102,32,116,104,

                   101,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,

                   117,101,32,105,115,32,112,111,115,105,116,105,118,101,32,111,114,32,45,49,

                   32,105,102,32,105,116,32,105,115,32,110,101,103,97,116,105,118,101,46,0,

                   82,101,116,117,114,110,32,116,104,101,32,115,113,117,97,114,101,32,114,111,

                   111,116,32,111,102,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,

                   110,116,32,110,117,109,98,101,114,46,0,82,101,116,117,114,110,32,116,104,

                   101,32,115,113,117,97,114,101,32,111,102,32,97,32,102,108,111,97,116,105,

                   110,103,45,112,111,105,110,116,32,110,117,109,98,101,114,46,0,82,101,116,

                   117,114,110,32,116,104,101,32,115,105,110,101,32,111,102,32,97,32,102,108,

                   111,97,116,105,110,103,45,112,111,105,110,116,32,110,117,109,98,101,114,46,

                   0,82,101,116,117,114,110,32,116,104,101,32,115,113,117,97,114,101,32,114,

                   111,111,116,32,111,102,32,97,32,102,108,111,97,116,105,110,103,45,112,111,

                   105,110,116,32,110,117,109,98,101,114,46,0,82,101,116,117,114,110,32,116,

                   104,101,32,115,113,117,97,114,101,32,111,102,32,97,32,102,108,111,97,116,

                   105,110,103,45,112,111,105,110,116,32,110,117,109,98,101,114,46,0,83,116,

                   111,114,101,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,

                   32,118,97,108,117,101,32,116,111,32,116,104,101,32,115,112,101,99,105,102,

                   105,101,100,32,109,101,109,111,114,121,32,108,111,99,97,116,105,111,110,46,

                   0,69,120,99,104,97,110,103,101,32,116,104,101,32,116,111,112,32,97,110,

                   100,32,115,101,99,111,110,100,32,105,116,101,109,115,32,111,110,32,116,104,

                   101,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,115,116,97,

                   99,107,46,0,82,101,116,117,114,110,32,116,104,101,32,116,97,110,103,101,

                   110,116,32,111,102,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,

                   110,116,32,110,117,109,98,101,114,46,0,69,110,99,111,100,101,32,116,104,

                   101,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,

                   117,101,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46,0,67,111,

                   110,118,101,114,116,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,

                   110,116,32,118,97,108,117,101,32,105,110,116,111,32,97,32,110,117,109,98,

                   101,114,46,0,67,111,110,118,101,114,116,32,97,32,102,108,111,97,116,105,

                   110,103,45,112,111,105,110,116,32,118,97,108,117,101,32,105,110,116,111,32,

                   97,32,115,116,114,105,110,103,46,0,84,117,99,107,32,97,32,99,111,112,

                   121,32,111,102,32,116,104,101,32,116,111,112,32,102,108,111,97,116,105,110,

                   103,45,112,111,105,110,116,32,118,97,108,117,101,32,117,110,100,101,114,32,

                   116,104,101,32,115,101,99,111,110,100,32,111,110,101,46,0,70,101,116,99,

                   104,32,116,104,101,32,118,97,108,117,101,32,115,116,111,114,101,100,32,97,

                   116,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,100,100,114,

                   101,115,115,46,0,70,101,116,99,104,32,116,104,101,32,118,97,108,117,101,

                   32,115,116,111,114,101,100,32,97,116,32,116,104,101,32,115,112,101,99,105,

                   102,105,101,100,32,97,100,100,114,101,115,115,46,32,82,101,116,117,114,110,

                   115,32,116,104,101,32,110,101,120,116,32,97,100,100,114,101,115,115,32,97,

                   110,100,32,116,104,101,32,118,97,108,117,101,46,0,73,110,118,111,107,101,

                   32,97,110,32,70,70,73,32,102,117,110,99,116,105,111,110,46,32,83,101,

                   116,32,116,104,101,32,115,116,97,99,107,32,97,115,32,110,101,101,100,101,

                   100,44,32,97,110,100,32,112,97,115,115,32,116,104,101,32,70,70,73,32,

                   104,97,110,100,108,101,32,116,111,32,116,104,105,115,46,0,77,97,112,32,

                   105,110,32,97,32,115,121,109,98,111,108,32,102,114,111,109,32,97,32,115,

                   104,97,114,101,100,32,108,105,98,114,97,114,121,32,111,114,32,111,98,106,

                   101,99,116,32,102,105,108,101,46,32,82,101,116,117,114,110,115,32,97,110,

                   32,70,70,73,32,104,97,110,100,108,101,46,0,79,112,101,110,32,97,32,

                   115,104,97,114,101,100,32,108,105,98,114,97,114,121,32,111,114,32,111,98,

                   106,101,99,116,32,102,105,108,101,46,0,84,114,105,103,103,101,114,32,97,

                   110,32,105,47,111,32,111,112,101,114,97,116,105,111,110,32,117,115,105,110,

                   103,32,116,104,101,32,70,70,73,32,100,101,118,105,99,101,46,0,67,111,

                   110,115,116,97,110,116,32,102,111,114,32,111,112,101,110,105,110,103,32,97,

                   32,102,105,108,101,32,105,110,32,65,80,80,69,78,68,32,109,111,100,101,

                   46,0,67,111,110,115,116,97,110,116,32,102,111,114,32,111,112,101,110,105,

                   110,103,32,97,32,102,105,108,101,32,105,110,32,82,69,65,68,32,109,111,

                   100,101,46,0,67,111,110,115,116,97,110,116,32,102,111,114,32,111,112,101,

                   110,105,110,103,32,97,32,102,105,108,101,32,105,110,32,82,69,65,68,32,

                   38,32,87,82,73,84,69,32,109,111,100,101,46,0,67,111,110,115,116,97,

                   110,116,32,102,111,114,32,111,112,101,110,105,110,103,32,97,32,102,105,108,

                   101,32,105,110,32,87,82,73,84,69,32,109,111,100,101,46,0,71,105,118,

                   101,110,32,97,32,102,105,108,101,32,104,97,110,100,108,101,44,32,99,108,

                   111,115,101,32,116,104,101,32,102,105,108,101,46,0,68,101,108,101,116,101,

                   32,116,104,101,32,110,97,109,101,100,32,102,105,108,101,46,0,71,105,118,

                   101,110,32,97,32,102,105,108,101,32,110,97,109,101,44,32,114,101,116,117,

                   114,110,32,96,84,82,85,69,96,32,105,102,32,105,116,32,101,120,105,115,

                   116,115,32,111,114,32,96,70,65,76,83,69,96,32,105,102,32,105,116,32,

                   100,111,101,115,32,110,111,116,46,0,71,105,118,101,110,32,97,32,102,105,

                   108,101,32,104,97,110,100,108,101,44,32,102,108,117,115,104,32,97,110,121,

                   32,112,101,110,100,105,110,103,32,119,114,105,116,101,115,32,116,111,32,100,

                   105,115,107,46,0,71,105,118,101,110,32,97,32,102,105,108,101,32,110,97,

                   109,101,44,32,111,112,101,110,32,105,116,32,97,110,100,32,114,117,110,32,

                   116,104,101,32,113,117,111,116,101,32,111,110,99,101,32,102,111,114,32,101,

                   97,99,104,32,108,105,110,101,32,105,110,32,116,104,101,32,102,105,108,101,

                   46,0,79,112,101,110,32,97,32,110,97,109,101,100,32,102,105,108,101,32,

                   40,115,41,32,119,105,116,104,32,116,104,101,32,103,105,118,101,110,32,109,

                   111,100,101,32,40,109,41,46,32,82,101,116,117,114,110,115,32,97,32,104,

                   97,110,100,108,101,32,105,100,101,110,116,105,102,121,105,110,103,32,116,104,

                   101,32,102,105,108,101,46,0,79,112,101,110,32,97,32,102,105,108,101,32,

                   102,111,114,32,114,101,97,100,105,110,103,32,38,32,119,114,105,116,105,110,

                   103,46,32,82,101,116,117,114,110,115,32,116,104,101,32,115,105,122,101,32,

                   40,78,79,83,41,32,97,110,100,32,97,32,102,105,108,101,32,73,68,32,

                   40,84,79,83,41,0,79,112,101,110,32,97,32,102,105,108,101,32,102,111,

                   114,32,114,101,97,100,105,110,103,46,32,82,101,116,117,114,110,115,32,116,

                   104,101,32,115,105,122,101,32,40,78,79,83,41,32,97,110,100,32,97,32,

                   102,105,108,101,32,73,68,32,40,84,79,83,41,0,79,112,101,110,32,97,

                   32,102,105,108,101,32,102,111,114,32,119,114,105,116,105,110,103,46,32,82,

                   101,116,117,114,110,115,32,116,104,101,32,102,105,108,101,32,73,68,0,84,

                   114,105,103,103,101,114,32,97,32,102,105,108,101,32,73,47,79,32,111,112,

                   101,114,97,116,105,111,110,46,32,84,104,105,115,32,105,115,32,110,111,116,

                   32,105,110,116,101,110,100,101,100,32,116,111,32,98,101,32,117,115,101,100,

                   32,100,105,114,101,99,116,108,121,46,0,71,105,118,101,110,32,97,32,102,

                   105,108,101,32,104,97,110,100,108,101,44,32,114,101,97,100,32,97,110,100,

                   32,114,101,116,117,114,110,32,116,104,101,32,110,101,120,116,32,98,121,116,

                   101,32,105,110,32,105,116,46,0,71,105,118,101,110,32,97,32,102,105,108,

                   101,32,104,97,110,100,108,101,44,32,114,101,97,100,32,97,32,108,105,110,

                   101,32,97,110,100,32,114,101,116,117,114,110,32,97,32,112,111,105,110,116,

                   101,114,32,116,111,32,105,116,46,0,71,105,118,101,110,32,97,32,112,111,

                   105,110,116,101,114,44,32,97,32,99,111,117,110,116,44,32,97,110,100,32,

                   97,32,102,105,108,101,32,104,97,110,100,108,101,44,32,114,101,97,100,32,

                   97,110,100,32,115,116,111,114,101,32,116,104,101,32,114,101,113,117,101,115,

                   116,101,100,32,110,117,109,98,101,114,32,111,102,32,98,121,116,101,115,32,

                   105,110,116,111,32,109,101,109,111,114,121,44,32,115,116,97,114,116,105,110,

                   103,32,97,116,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,

                   100,100,114,101,115,115,46,0,71,105,118,101,110,32,97,32,102,105,108,101,

                   32,104,97,110,100,108,101,44,32,114,101,97,100,32,97,110,100,32,114,101,

                   116,117,114,110,32,116,104,101,32,110,101,120,116,32,99,104,97,114,97,99,

                   116,101,114,32,105,110,32,105,116,46,32,73,102,32,99,111,109,112,105,108,

                   101,100,32,119,105,116,104,32,85,84,70,51,50,32,115,117,112,112,111,114,

                   116,32,116,104,105,115,32,119,105,108,108,32,114,101,97,100,32,97,110,100,

                   32,99,111,110,118,101,114,116,32,85,84,70,56,46,0,77,111,118,101,32,

                   116,104,101,32,99,117,114,114,101,110,116,32,111,102,102,115,101,116,32,105,

                   110,116,111,32,97,32,102,105,108,101,32,116,111,32,116,104,101,32,115,112,

                   101,99,105,102,105,101,100,32,111,110,101,46,0,71,105,118,101,110,32,97,

                   32,102,105,108,101,32,104,97,110,100,108,101,44,32,114,101,116,117,114,110,

                   32,116,104,101,32,115,105,122,101,32,111,102,32,116,104,101,32,102,105,108,

                   101,32,40,105,110,32,98,121,116,101,115,41,46,0,71,105,118,101,110,32,

                   97,110,32,97,100,100,114,101,115,115,32,97,110,100,32,97,32,102,105,108,

                   101,32,110,97,109,101,44,32,114,101,97,100,32,116,104,101,32,102,105,108,

                   101,32,99,111,110,116,101,110,116,115,32,105,110,116,111,32,109,101,109,111,

                   114,121,32,115,116,97,114,116,105,110,103,32,97,116,32,116,104,101,32,97,

                   100,100,114,101,115,115,46,0,71,105,118,101,110,32,97,32,115,116,114,105,

                   110,103,32,40,115,49,41,32,97,110,100,32,97,32,102,105,108,101,32,110,

                   97,109,101,32,40,115,50,41,44,32,119,114,105,116,101,32,116,104,101,32,

                   115,116,114,105,110,103,32,105,110,116,111,32,116,104,101,32,102,105,108,101,

                   44,32,114,101,112,108,97,99,105,110,103,32,97,110,121,32,101,120,105,115,

                   116,105,110,103,32,99,111,110,116,101,110,116,46,0,71,105,118,101,110,32,

                   97,32,102,105,108,101,32,104,97,110,100,108,101,44,32,114,101,116,117,114,

                   110,32,116,104,101,32,99,117,114,114,101,110,116,32,111,102,102,115,101,116,

                   32,105,110,32,116,104,101,32,102,105,108,101,46,0,87,114,105,116,101,32,

                   97,32,98,121,116,101,32,116,111,32,116,104,101,32,102,105,108,101,32,114,

                   101,112,114,101,115,101,110,116,101,100,32,98,121,32,116,104,101,32,104,97,

                   110,100,108,101,46,0,87,114,105,116,101,32,110,32,98,121,116,101,115,32,

                   116,111,32,116,104,101,32,102,105,108,101,32,114,101,112,114,101,115,101,110,

                   116,101,100,32,98,121,32,116,104,101,32,104,97,110,100,108,101,46,32,66,

                   121,116,101,115,32,97,114,101,32,116,97,107,101,110,32,102,114,111,109,32,

                   109,101,109,111,114,121,44,32,115,116,97,114,116,105,110,103,32,97,116,32,

                   116,104,101,32,112,114,111,118,105,100,101,100,32,97,100,100,114,101,115,115,

                   46,0,87,114,105,116,101,32,97,32,99,104,97,114,97,99,116,101,114,32,

                   116,111,32,116,104,101,32,102,105,108,101,32,114,101,112,114,101,115,101,110,

                   116,101,100,32,98,121,32,116,104,101,32,104,97,110,100,108,101,46,32,73,

                   102,32,98,117,105,108,116,32,119,105,116,104,32,85,84,70,51,50,32,115,

                   117,112,112,111,114,116,44,32,116,104,105,115,32,119,105,108,108,32,116,114,

                   97,110,115,108,97,116,101,32,116,104,101,32,99,104,97,114,97,99,116,101,

                   114,32,98,97,99,107,32,116,111,32,97,32,85,84,70,56,32,115,101,113,

                   117,101,110,99,101,32,98,101,102,111,114,101,32,119,114,105,116,105,110,103,

                   46,0,70,105,108,108,32,109,101,109,111,114,121,32,115,116,97,114,116,105,

                   110,103,32,97,116,32,34,112,34,32,119,105,116,104,32,118,97,108,117,101,

                   32,34,118,34,46,32,70,105,108,108,115,32,34,110,34,32,99,101,108,108,

                   115,46,0,65,112,112,101,110,100,32,97,32,99,111,110,115,32,99,101,108,

                   108,32,116,111,32,97,32,108,105,115,116,46,0,67,114,101,97,116,101,32,

                   97,32,110,101,119,32,108,105,115,116,32,119,105,116,32,116,104,101,32,103,

                   105,118,101,110,32,118,97,108,117,101,32,97,115,32,116,104,101,32,99,97,

                   114,32,111,102,32,116,104,101,32,102,105,114,115,116,32,110,111,100,101,46,

                   0,82,101,109,111,118,101,32,116,104,101,32,115,112,101,99,105,102,105,101,

                   100,32,99,111,110,115,32,102,114,111,109,32,97,32,108,105,115,116,46,0,

                   82,101,109,111,118,101,32,116,104,101,32,108,97,115,116,32,99,111,110,115,

                   32,102,114,111,109,32,97,32,108,105,115,116,46,0,82,117,110,32,97,32,

                   113,117,111,116,97,116,105,111,110,32,97,103,97,105,110,115,116,32,101,97,

                   99,104,32,118,97,108,117,101,32,105,110,32,97,32,108,105,115,116,46,0,

                   73,110,115,101,114,116,32,97,32,110,101,119,32,99,111,110,115,32,40,118,

                   41,32,105,110,116,111,32,116,104,101,32,108,105,115,116,32,40,112,41,44,

                   32,97,116,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,105,110,

                   100,101,120,32,40,110,41,46,0,82,101,116,117,114,110,32,116,104,101,32,

                   108,101,110,103,116,104,32,111,102,32,97,32,108,105,115,116,46,0,68,105,

                   115,112,108,97,121,32,116,104,101,32,40,97,115,32,110,117,109,98,101,114,

                   115,41,32,118,97,108,117,101,115,32,105,110,32,97,32,108,105,115,116,46,

                   0,71,105,118,101,110,32,97,32,112,111,105,110,116,101,114,32,116,111,32,

                   97,32,108,105,115,116,44,32,114,101,116,117,114,110,32,97,32,112,111,105,

                   110,116,101,114,32,116,111,32,116,104,101,32,108,97,115,116,32,99,111,110,

                   115,32,99,101,108,108,46,0,71,105,118,101,110,32,97,32,110,111,100,101,

                   32,110,117,109,98,101,114,44,32,114,101,116,117,114,110,32,97,32,112,111,

                   105,110,116,101,114,32,116,111,32,116,104,101,32,99,111,110,115,32,99,101,

                   108,108,32,105,110,32,116,104,101,32,108,105,115,116,46,0,84,114,105,103,

                   103,101,114,32,97,32,102,108,111,97,116,105,110,103,45,112,111,105,110,116,

                   32,111,112,101,114,97,116,105,111,110,46,32,84,104,105,115,32,105,115,32,

                   110,111,116,32,105,110,116,101,110,100,101,100,32,116,111,32,98,101,32,117,

                   115,101,100,32,100,105,114,101,99,116,108,121,46,0,82,117,110,32,113,117,

                   111,116,97,116,105,111,110,32,105,110,32,97,110,32,101,110,100,108,101,115,

                   115,32,108,111,111,112,46,0,83,97,118,101,32,118,97,108,117,101,32,111,

                   102,32,96,72,101,97,112,96,44,32,114,117,110,32,116,104,101,32,102,117,

                   110,99,116,105,111,110,32,112,114,111,118,105,100,101,100,44,32,116,104,101,

                   110,32,114,101,115,116,111,114,101,32,96,72,101,97,112,96,46,0,67,111,

                   109,112,97,114,101,32,110,49,32,97,110,100,32,110,50,46,32,82,101,116,

                   117,114,110,32,96,84,82,85,69,96,32,105,102,32,110,49,32,105,115,32,

                   103,114,101,97,116,101,114,32,116,104,97,110,32,110,50,44,32,111,114,32,

                   96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,115,101,46,0,67,

                   111,109,112,97,114,101,32,110,49,32,97,110,100,32,110,50,46,32,82,101,

                   116,117,114,110,32,96,84,82,85,69,96,32,105,102,32,110,49,32,105,115,

                   32,103,114,101,97,116,101,114,32,116,104,97,110,32,111,114,32,101,113,117,

                   97,108,32,116,111,32,110,50,44,32,111,114,32,96,70,65,76,83,69,96,

                   32,111,116,104,101,114,119,105,115,101,46,0,70,101,116,99,104,32,116,104,

                   101,32,49,54,45,98,105,116,32,118,97,108,117,101,32,115,116,111,114,101,

                   100,32,97,116,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,

                   100,100,114,101,115,115,46,32,65,100,100,114,101,115,115,105,110,103,32,102,

                   111,114,32,116,104,105,115,32,105,115,32,105,110,32,56,45,98,105,116,32,

                   117,110,105,116,115,46,0,70,101,116,99,104,32,116,104,101,32,118,97,108,

                   117,101,32,115,116,111,114,101,100,32,97,116,32,116,104,101,32,115,112,101,

                   99,105,102,105,101,100,32,97,100,100,114,101,115,115,46,32,82,101,116,117,

                   114,110,115,32,116,104,101,32,110,101,120,116,32,97,100,100,114,101,115,115,

                   32,97,110,100,32,116,104,101,32,118,97,108,117,101,46,0,83,116,111,114,

                   101,32,97,110,32,49,54,45,98,105,116,32,118,97,108,117,101,32,105,110,

                   116,111,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,100,100,

                   114,101,115,115,46,32,65,100,100,114,101,115,115,105,110,103,32,102,111,114,

                   32,116,104,105,115,32,105,115,32,105,110,32,56,45,98,105,116,32,117,110,

                   105,116,115,46,0,83,116,111,114,101,32,97,32,118,97,108,117,101,32,105,

                   110,116,111,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,100,

                   100,114,101,115,115,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,

                   32,110,101,120,116,32,97,100,100,114,101,115,115,46,0,82,101,116,117,114,

                   110,32,116,104,101,32,110,101,120,116,32,102,114,101,101,32,97,100,100,114,

                   101,115,115,32,105,110,32,109,101,109,111,114,121,46,0,83,101,116,32,96,

                   66,97,115,101,96,32,116,111,32,104,101,120,97,100,101,99,105,109,97,108,

                   46,0,65,100,100,32,97,32,104,111,111,107,32,112,111,105,110,116,32,105,

                   110,116,111,32,116,104,101,32,99,117,114,114,101,110,116,32,119,111,114,100,

                   46,32,84,104,105,115,32,115,104,111,117,108,100,32,111,110,108,121,32,98,

                   101,32,117,115,101,100,32,97,115,32,116,104,101,32,102,105,114,115,116,32,

                   119,111,114,100,32,105,110,32,97,32,100,101,102,105,110,105,116,105,111,110,

                   46,0,65,115,115,101,109,98,108,101,32,116,104,101,32,105,110,115,116,114,

                   117,99,116,105,111,110,115,32,115,112,101,99,105,102,105,101,100,32,98,121,

                   32,116,104,101,32,115,116,114,105,110,103,32,105,110,116,111,32,116,104,101,

                   32,99,117,114,114,101,110,116,32,97,115,115,101,109,98,108,121,32,115,99,

                   111,112,101,46,0,69,120,101,99,117,116,101,32,116,104,101,32,113,117,111,

                   116,101,32,105,102,32,116,104,101,32,102,108,97,103,32,105,115,32,96,84,

                   82,85,69,96,46,0,69,120,101,99,117,116,101,32,116,104,101,32,113,117,

                   111,116,97,116,105,111,110,32,105,102,32,116,104,101,32,102,108,97,103,32,

                   105,115,32,96,84,82,85,69,96,46,32,73,102,32,116,114,117,101,44,32,

                   97,108,115,111,32,101,120,105,116,32,116,104,101,32,119,111,114,100,46,0,

                   67,104,97,110,103,101,32,116,104,101,32,99,108,97,115,115,32,111,102,32,

                   116,104,101,32,109,111,115,116,32,114,101,99,101,110,116,108,121,32,100,101,

                   102,105,110,101,100,32,119,111,114,100,32,116,111,32,96,99,108,97,115,115,

                   58,109,97,99,114,111,96,46,0,82,117,110,32,116,104,101,32,99,111,100,

                   101,32,105,110,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,102,

                   105,108,101,46,32,0,82,117,110,32,97,32,113,117,111,116,101,32,116,104,

                   101,32,115,112,101,99,105,102,105,101,100,32,110,117,109,98,101,114,32,111,

                   102,32,116,105,109,101,115,44,32,116,114,97,99,107,105,110,103,32,116,104,

                   101,32,108,111,111,112,32,105,110,100,101,120,32,105,110,32,96,73,96,46,

                   32,84,104,105,115,32,105,115,32,108,101,115,115,32,101,102,102,105,99,105,

                   101,110,116,32,116,104,97,110,32,96,116,105,109,101,115,96,44,32,115,111,

                   32,105,102,32,116,104,101,32,105,110,100,101,120,32,105,115,32,110,111,116,

                   32,110,101,101,100,101,100,44,32,116,104,105,115,32,115,104,111,117,108,100,

                   32,98,101,32,97,118,111,105,100,101,100,46,0,86,101,99,116,111,114,101,

                   100,46,32,73,110,116,101,114,112,114,101,116,32,97,32,115,105,110,103,108,

                   101,32,105,110,112,117,116,32,116,111,107,101,110,46,0,84,114,105,103,103,

                   101,114,32,97,110,32,73,47,79,32,111,112,101,114,97,116,105,111,110,32,

                   105,110,118,111,108,118,105,110,103,32,109,117,108,116,105,99,111,114,101,32,

                   115,117,112,112,111,114,116,46,32,85,110,105,120,32,115,121,115,116,101,109,

                   32,99,97,108,108,46,0,82,101,116,117,114,110,32,116,104,101,32,110,117,

                   109,98,101,114,32,111,102,32,73,47,79,32,100,101,118,105,99,101,115,46,

                   0,73,110,118,111,107,101,32,97,110,32,105,110,116,101,114,97,99,116,105,

                   111,110,32,119,105,116,104,32,97,110,32,73,47,79,32,100,101,118,105,99,

                   101,46,0,65,115,107,32,97,110,32,73,47,79,32,100,101,118,105,99,101,

                   32,116,111,32,105,100,101,110,116,105,102,121,32,105,116,115,101,108,102,46,

                   32,82,101,116,117,114,110,115,32,97,32,118,101,114,115,105,111,110,32,40,

                   109,41,32,97,110,100,32,100,101,118,105,99,101,32,73,68,32,40,78,41,

                   46,0,83,99,97,110,32,116,104,101,32,73,47,79,32,100,101,118,105,99,

                   101,115,32,102,111,114,32,97,32,100,101,118,105,99,101,32,119,105,116,104,

                   32,97,32,115,112,101,99,105,102,105,101,100,32,73,68,46,32,82,101,116,

                   117,114,110,115,32,116,104,101,32,100,101,118,105,99,101,32,110,117,109,98,

                   101,114,44,32,111,114,32,45,49,32,105,102,32,110,111,116,32,102,111,117,

                   110,100,46,0,84,114,105,103,103,101,114,32,97,32,85,110,105,120,32,115,

                   121,115,116,101,109,32,99,97,108,108,46,32,84,104,105,115,32,105,115,32,

                   110,111,116,32,105,110,116,101,110,100,101,100,32,116,111,32,98,101,32,117,

                   115,101,100,32,100,105,114,101,99,116,108,121,46,0,68,97,116,97,46,32,

                   82,101,116,117,114,110,32,97,32,116,101,109,112,108,97,116,101,32,102,111,

                   114,32,97,32,108,105,98,114,97,114,121,32,102,105,108,101,32,110,97,109,

                   101,32,105,110,32,96,126,47,46,99,111,110,102,105,103,47,114,101,116,114,

                   111,102,111,114,116,104,47,108,105,98,114,97,114,121,96,46,0,70,105,110,

                   100,32,116,104,101,32,117,115,101,114,115,32,104,111,109,101,32,100,105,114,

                   101,99,116,111,114,121,32,97,110,100,32,99,111,110,115,116,114,117,99,116,

                   32,97,32,102,105,108,101,110,97,109,101,32,102,111,114,32,97,32,108,105,

                   98,114,97,114,121,32,105,110,32,116,104,101,32,96,126,47,46,99,111,110,

                   102,105,103,47,114,101,116,114,111,102,111,114,116,104,47,108,105,98,114,97,

                   114,121,96,32,100,105,114,101,99,116,111,114,121,46,0,68,97,116,97,46,

                   32,82,101,116,117,114,110,32,97,32,116,101,109,112,108,97,116,101,32,102,

                   111,114,32,97,32,108,105,98,114,97,114,121,32,102,105,108,101,32,110,97,

                   109,101,32,105,110,32,96,46,47,108,105,98,114,97,114,121,96,46,0,67,

                   104,101,99,107,32,116,111,32,115,101,101,32,105,102,32,97,32,108,105,98,

                   114,97,114,121,32,101,120,105,115,116,115,46,0,67,111,110,115,116,114,117,

                   99,116,32,97,32,102,105,108,101,110,97,109,101,32,102,111,114,32,97,32,

                   108,105,98,114,97,114,121,32,105,110,32,116,104,101,32,96,126,47,108,105,

                   98,114,97,114,121,96,32,100,105,114,101,99,116,111,114,121,46,0,71,105,

                   118,101,110,32,97,32,108,105,98,114,97,114,121,32,110,97,109,101,44,32,

                   99,111,110,115,116,114,117,99,116,32,116,104,101,32,97,99,116,117,97,108,

                   32,102,105,108,101,110,97,109,101,32,116,111,32,108,111,97,100,46,0,76,

                   111,97,100,32,97,32,108,105,98,114,97,114,121,46,32,84,104,105,115,32,

                   119,105,108,108,32,108,111,97,100,32,116,104,101,32,115,116,114,105,110,103,

                   44,32,119,105,116,104,32,34,46,114,101,116,114,111,34,46,0,34,82,117,

                   110,32,105,110,116,101,114,97,99,116,105,118,101,32,34,34,108,105,115,116,

                   101,110,101,114,34,34,32,40,97,32,82,69,80,76,41,46,34,0,67,111,

                   109,112,97,114,101,32,110,49,32,97,110,100,32,110,50,46,32,82,101,116,

                   117,114,110,32,96,84,82,85,69,96,32,105,102,32,110,49,32,105,115,32,

                   108,101,115,115,32,116,104,97,110,32,110,50,44,32,111,114,32,96,70,65,

                   76,83,69,96,32,111,116,104,101,114,119,105,115,101,46,0,67,111,109,112,

                   97,114,101,32,110,49,32,97,110,100,32,110,50,46,32,82,101,116,117,114,

                   110,32,96,84,82,85,69,96,32,105,102,32,110,49,32,105,115,32,108,101,

                   115,115,32,116,104,97,110,32,111,114,32,101,113,117,97,108,32,116,111,32,

                   110,50,44,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,

                   119,105,115,101,46,0,68,105,118,105,100,101,32,96,110,96,32,98,121,32,

                   96,109,96,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,114,

                   101,109,97,105,110,100,101,114,46,0,82,101,116,117,114,110,32,96,84,82,

                   85,69,96,32,105,102,32,110,117,109,98,101,114,32,105,115,32,110,111,116,

                   32,122,101,114,111,44,32,111,114,32,96,70,65,76,83,69,96,32,111,116,

                   104,101,114,119,105,115,101,46,0,82,101,116,117,114,110,32,116,104,101,32,

                   109,97,120,105,109,117,109,32,118,97,108,117,101,32,116,104,97,116,32,119,

                   105,108,108,32,102,105,116,32,105,110,32,97,32,99,101,108,108,46,0,82,

                   101,116,117,114,110,32,116,104,101,32,109,105,110,105,109,117,109,32,118,97,

                   108,117,101,32,116,104,97,116,32,119,105,108,108,32,102,105,116,32,105,110,

                   32,97,32,99,101,108,108,46,0,82,101,116,117,114,110,32,116,104,101,32,

                   97,98,115,111,108,117,116,101,32,118,97,108,117,101,32,111,102,32,97,32,

                   110,117,109,98,101,114,46,0,82,101,116,117,114,110,32,84,82,85,69,32,

                   105,102,32,110,117,109,98,101,114,32,105,115,32,98,101,116,119,101,101,110,

                   32,116,104,101,32,108,111,119,101,114,32,40,108,41,32,97,110,100,32,117,

                   112,112,101,114,32,40,117,41,32,98,111,117,110,100,115,46,32,73,102,32,

                   110,111,116,44,32,114,101,116,117,114,110,32,70,65,76,83,69,46,32,84,

                   104,105,115,32,105,115,32,105,110,99,108,117,115,105,118,101,32,111,102,32,

                   116,104,101,32,108,105,109,105,116,115,46,0,68,101,99,114,101,109,101,110,

                   116,32,110,32,98,121,32,111,110,101,46,0,82,101,116,117,114,110,32,96,

                   84,82,85,69,96,32,105,102,32,110,117,109,98,101,114,32,105,115,32,101,

                   118,101,110,44,32,111,114,32,96,70,65,76,83,69,96,32,105,102,32,110,

                   111,116,46,0,73,110,99,114,101,109,101,110,116,32,110,32,98,121,32,111,

                   110,101,46,0,82,101,116,117,114,110,32,110,32,105,102,32,105,116,32,105,

                   115,32,119,105,116,104,105,110,32,116,104,101,32,108,111,119,101,114,32,40,

                   108,41,32,97,110,100,32,117,112,112,101,114,32,40,117,41,32,98,111,117,

                   110,100,115,46,32,73,102,32,111,117,116,115,105,100,101,32,116,104,101,32,

                   98,111,117,110,100,115,44,32,114,101,116,117,114,110,32,116,104,101,32,99,

                   108,111,115,101,115,32,98,111,117,110,100,97,114,121,32,118,97,108,117,101,

                   46,0,82,101,116,117,114,110,32,116,104,101,32,103,114,101,97,116,101,114,

                   32,111,102,32,116,119,111,32,118,97,108,117,101,115,46,0,82,101,116,117,

                   114,110,32,116,104,101,32,108,101,115,115,101,114,32,111,102,32,116,119,111,

                   32,118,97,108,117,101,115,46,0,73,110,118,101,114,116,32,116,104,101,32,

                   115,105,103,110,32,111,102,32,97,32,110,117,109,98,101,114,46,0,82,101,

                   116,117,114,110,32,96,84,82,85,69,96,32,105,102,32,110,117,109,98,101,

                   114,32,105,115,32,110,101,103,97,116,105,118,101,44,32,111,114,32,96,70,

                   65,76,83,69,96,32,105,102,32,110,111,116,46,0,82,101,116,117,114,110,

                   32,96,84,82,85,69,96,32,105,102,32,110,117,109,98,101,114,32,105,115,

                   32,111,100,100,44,32,111,114,32,96,70,65,76,83,69,96,32,105,102,32,

                   110,111,116,46,0,82,101,116,117,114,110,32,96,84,82,85,69,96,32,105,

                   102,32,110,117,109,98,101,114,32,105,115,32,112,111,115,105,116,105,118,101,

                   44,32,111,114,32,96,70,65,76,83,69,96,32,105,102,32,110,111,116,46,

                   0,82,101,116,117,114,110,32,98,97,115,101,32,40,98,41,32,116,111,32,

                   112,111,119,101,114,32,40,112,41,46,0,68,105,115,112,108,97,121,32,97,

                   32,110,117,109,98,101,114,46,0,82,101,116,117,114,110,32,97,32,114,97,

                   110,100,111,109,32,110,117,109,98,101,114,46,0,82,101,116,117,114,110,32,

                   116,104,101,32,115,113,117,97,114,101,32,114,111,111,116,32,111,102,32,97,

                   32,110,117,109,98,101,114,46,0,82,101,116,117,114,110,32,116,104,101,32,

                   115,113,117,97,114,101,32,111,102,32,97,32,110,117,109,98,101,114,46,0,

                   82,101,116,117,114,110,32,84,82,85,69,32,105,102,32,110,117,109,98,101,

                   114,32,105,115,32,103,114,101,97,116,101,114,32,116,104,97,110,32,122,101,

                   114,111,32,111,114,32,70,65,76,83,69,32,105,102,32,105,116,32,105,115,

                   32,122,101,114,111,32,111,114,32,108,101,115,115,46,0,67,111,110,118,101,

                   114,116,32,97,32,110,117,109,98,101,114,32,105,110,116,111,32,97,32,102,

                   108,111,97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,46,

                   0,67,111,110,118,101,114,116,32,97,32,110,117,109,98,101,114,32,105,110,

                   116,111,32,97,32,115,116,114,105,110,103,46,0,82,101,116,117,114,110,32,

                   96,84,82,85,69,96,32,105,102,32,110,117,109,98,101,114,32,105,115,32,

                   122,101,114,111,44,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,

                   101,114,119,105,115,101,46,0,82,101,109,111,118,101,32,116,104,101,32,115,

                   101,99,111,110,100,32,105,116,101,109,32,102,114,111,109,32,116,104,101,32,

                   115,116,97,99,107,46,0,68,105,115,112,108,97,121,32,97,32,110,101,119,

                   108,105,110,101,46,0,80,101,114,102,111,114,109,32,97,32,108,111,103,105,

                   99,97,108,32,78,79,84,32,111,112,101,114,97,116,105,111,110,46,0,83,

                   101,116,32,96,66,97,115,101,96,32,116,111,32,111,99,116,97,108,46,0,

                   80,101,114,102,111,114,109,32,97,32,98,105,116,119,105,115,101,32,79,82,

                   32,98,101,116,119,101,101,110,32,116,104,101,32,112,114,111,118,105,100,101,

                   100,32,118,97,108,117,101,115,46,0,80,117,116,32,97,32,99,111,112,121,

                   32,111,102,32,110,32,111,118,101,114,32,109,46,0,80,97,99,107,32,102,

                   111,117,114,32,56,45,98,105,116,32,118,97,108,117,101,115,32,105,110,116,

                   111,32,97,32,51,50,45,98,105,116,32,118,97,108,117,101,46,0,77,111,

                   118,101,32,97,32,118,97,108,117,101,32,102,114,111,109,32,116,104,101,32,

                   114,101,116,117,114,110,32,115,116,97,99,107,32,116,111,32,116,104,101,32,

                   100,97,116,97,32,115,116,97,99,107,46,0,67,104,97,110,103,101,32,116,

                   104,101,32,99,108,97,115,115,32,111,102,32,116,104,101,32,109,111,115,116,

                   32,114,101,99,101,110,116,108,121,32,100,101,102,105,110,101,100,32,119,111,

                   114,100,32,116,111,32,96,99,108,97,115,115,58,112,114,105,109,105,116,105,

                   118,101,96,46,0,77,111,118,101,32,97,32,118,97,108,117,101,32,102,114,

                   111,109,32,116,104,101,32,100,97,116,97,32,115,116,97,99,107,32,116,111,

                   32,116,104,101,32,114,101,116,117,114,110,32,115,116,97,99,107,46,0,76,

                   111,111,107,117,112,32,97,32,114,101,102,101,114,101,110,99,101,32,98,121,

                   32,110,97,109,101,32,97,110,100,32,105,110,108,105,110,101,32,105,116,115,

                   32,112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,99,117,114,114,

                   101,110,116,32,97,115,115,101,109,98,108,121,32,115,101,103,109,101,110,116,

                   46,0,67,104,97,110,103,101,32,116,104,101,32,99,108,97,115,115,32,104,

                   97,110,100,108,101,114,32,111,102,32,116,104,101,32,109,111,115,116,32,114,

                   101,99,101,110,116,108,121,32,100,101,102,105,110,101,100,32,119,111,114,100,

                   32,116,111,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,111,110,

                   101,46,0,82,101,115,116,114,117,99,116,117,114,101,32,116,104,101,32,111,

                   114,100,101,114,32,111,102,32,105,116,101,109,115,32,111,110,32,116,104,101,

                   32,115,116,97,99,107,46,0,66,101,103,105,110,32,97,110,32,117,110,99,

                   111,110,100,105,116,105,111,110,97,108,32,108,111,111,112,46,0,82,101,109,

                   111,118,101,32,97,108,108,32,105,116,101,109,115,32,102,114,111,109,32,116,

                   104,101,32,115,116,97,99,107,46,0,82,111,116,97,116,101,32,116,104,101,

                   32,116,111,112,32,116,104,114,101,101,32,118,97,108,117,101,115,46,0,67,

                   111,109,112,105,108,101,32,116,104,101,32,99,111,100,101,32,110,101,101,100,

                   101,100,32,116,111,32,112,117,115,104,32,97,32,115,116,114,105,110,103,32,

                   112,111,105,110,116,101,114,32,116,111,32,116,104,101,32,115,116,97,99,107,

                   32,97,110,100,32,105,110,108,105,110,101,32,116,104,101,32,115,116,114,105,

                   110,103,32,100,97,116,97,32,105,110,116,111,32,116,104,101,32,99,117,114,

                   114,101,110,116,32,100,101,102,105,110,105,116,105,111,110,46,0,67,111,110,

                   115,116,97,110,116,46,32,82,101,116,117,114,110,115,32,97,32,115,116,114,

                   105,110,103,32,111,102,32,116,104,101,32,65,83,67,73,73,32,108,101,116,

                   116,101,114,115,32,40,117,112,112,101,114,32,97,110,100,32,108,111,119,101,

                   114,32,99,97,115,101,41,0,67,111,110,115,116,97,110,116,46,32,82,101,

                   116,117,114,110,115,32,97,32,115,116,114,105,110,103,32,111,102,32,116,104,

                   101,32,65,83,67,73,73,32,108,101,116,116,101,114,115,32,105,110,32,108,

                   111,119,101,114,99,97,115,101,0,67,111,110,115,116,97,110,116,46,32,82,

                   101,116,117,114,110,115,32,97,32,115,116,114,105,110,103,32,111,102,32,116,

                   104,101,32,65,83,67,73,73,32,108,101,116,116,101,114,115,32,105,110,32,

                   117,112,112,101,114,99,97,115,101,0,67,111,110,115,116,97,110,116,46,32,

                   82,101,116,117,114,110,32,97,32,115,116,114,105,110,103,32,111,102,32,99,

                   104,97,114,97,99,116,101,114,115,32,114,101,99,111,103,110,105,122,101,100,

                   32,97,115,32,110,117,109,101,114,105,99,32,100,105,103,105,116,115,46,0,

                   67,111,110,115,116,97,110,116,46,32,82,101,116,117,114,110,32,97,32,115,

                   116,114,105,110,103,32,111,102,32,99,104,97,114,97,99,116,101,114,115,32,

                   114,101,99,111,103,110,105,122,101,100,32,97,115,32,112,117,110,99,116,117,

                   97,116,105,111,110,46,0,67,111,110,115,116,97,110,116,46,32,82,101,116,

                   117,114,110,115,32,97,32,115,116,114,105,110,103,32,111,102,32,99,104,97,

                   114,97,99,116,101,114,115,32,114,101,99,111,103,110,105,122,101,100,32,97,

                   115,32,119,104,105,116,101,115,112,97,99,101,46,0,82,101,116,117,114,110,

                   32,97,32,110,101,119,32,115,116,114,105,110,103,32,99,111,110,115,105,115,

                   116,105,110,103,32,111,102,32,115,49,32,102,111,108,108,111,119,101,100,32,

                   98,121,32,115,50,46,0,82,101,116,117,114,110,32,96,84,82,85,69,96,

                   32,105,102,32,115,49,32,98,101,103,105,110,115,32,119,105,116,104,32,115,

                   50,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,

                   115,101,46,0,73,102,32,116,104,101,32,96,115,96,32,109,97,116,99,104,

                   101,115,32,96,83,96,44,32,100,105,115,99,97,114,100,32,96,115,96,32,

                   97,110,100,32,114,117,110,32,116,104,101,32,113,117,111,116,101,32,98,101,

                   102,111,114,101,32,101,120,105,116,105,110,103,32,116,104,101,32,99,97,108,

                   108,101,114,46,32,73,102,32,116,104,101,121,32,100,111,32,110,111,116,32,

                   109,97,116,99,104,44,32,100,105,115,99,97,114,100,32,116,104,101,32,113,

                   117,111,116,101,32,97,110,100,32,108,101,97,118,101,32,96,115,96,32,111,

                   110,32,116,104,101,32,115,116,97,99,107,46,0,82,101,109,111,118,101,32,

                   116,104,101,32,108,97,115,116,32,99,104,97,114,97,99,116,101,114,32,102,

                   114,111,109,32,97,32,115,116,114,105,110,103,46,32,82,101,116,117,114,110,

                   115,32,97,32,110,101,119,32,115,116,114,105,110,103,46,0,67,114,101,97,

                   116,101,32,97,32,99,111,110,115,116,97,110,116,32,110,97,109,101,100,32,

                   115,50,44,32,114,101,116,117,114,110,105,110,103,32,97,32,112,111,105,110,

                   116,101,114,32,116,111,32,115,49,46,32,84,104,105,115,32,119,105,108,108,

                   32,117,115,101,32,96,115,58,107,101,101,112,96,32,116,111,32,112,114,101,

                   115,101,114,118,101,32,116,104,101,32,111,114,105,103,105,110,97,108,32,115,

                   116,114,105,110,103,46,0,82,101,116,117,114,110,32,96,84,82,85,69,96,

                   32,105,102,32,116,104,101,32,99,104,97,114,97,99,116,101,114,32,105,115,

                   32,112,114,101,115,101,110,116,32,105,110,32,116,104,101,32,115,116,114,105,

                   110,103,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,

                   105,115,101,46,0,82,101,116,117,114,110,32,96,84,82,85,69,96,32,105,

                   102,32,116,104,101,32,115,101,99,111,110,100,32,115,116,114,105,110,103,32,

                   105,115,32,112,114,101,115,101,110,116,32,105,110,32,116,104,101,32,102,105,

                   114,115,116,32,115,116,114,105,110,103,32,111,114,32,96,70,65,76,83,69,

                   96,32,111,116,104,101,114,119,105,115,101,46,0,67,111,112,121,32,97,32,

                   115,116,114,105,110,103,32,40,115,41,32,116,111,32,97,32,100,101,115,116,

                   105,110,97,116,105,111,110,32,40,97,41,46,32,84,104,105,115,32,119,105,

                   108,108,32,105,110,99,108,117,100,101,32,116,104,101,32,116,101,114,109,105,

                   110,97,116,111,114,32,99,104,97,114,97,99,116,101,114,32,119,104,101,110,

                   32,99,111,112,121,105,110,103,46,0,82,101,116,117,114,110,32,97,32,100,

                   101,100,117,112,108,105,99,97,116,101,100,32,118,101,114,115,105,111,110,32,

                   111,102,32,116,104,101,32,115,116,114,105,110,103,46,0,86,97,114,105,97,

                   98,108,101,46,32,72,111,108,100,115,32,97,32,112,111,105,110,116,101,114,

                   32,116,111,32,116,104,101,32,100,101,100,117,112,108,105,99,97,116,105,111,

                   110,32,108,105,115,116,46,0,67,104,101,99,107,32,116,111,32,115,101,101,

                   32,105,102,32,97,32,115,116,114,105,110,103,32,105,115,32,105,110,32,116,

                   104,101,32,100,101,100,117,112,108,105,99,97,116,105,111,110,32,108,105,115,

                   116,46,0,82,101,116,117,114,110,32,97,32,112,111,105,110,116,101,114,32,

                   116,111,32,97,32,100,101,100,117,112,108,105,99,97,116,101,100,32,99,111,

                   112,121,32,111,102,32,97,32,115,116,114,105,110,103,46,32,73,102,32,116,

                   104,101,32,115,116,114,105,110,103,32,105,115,32,110,111,116,32,105,110,32,

                   116,104,101,32,100,101,100,117,112,108,105,99,97,116,105,111,110,32,108,105,

                   115,116,44,32,116,104,105,115,32,119,105,108,108,32,99,97,117,115,101,32,

                   101,114,114,111,114,115,46,0,65,100,100,32,97,32,115,116,114,105,110,103,

                   32,116,111,32,116,104,101,32,100,101,100,117,112,108,105,99,97,116,105,111,

                   110,32,108,105,115,116,46,0,82,101,116,117,114,110,32,97,110,32,101,109,

                   112,116,121,32,115,116,114,105,110,103,46,0,82,101,116,117,114,110,32,96,

                   84,82,85,69,96,32,105,102,32,115,49,32,101,110,100,115,32,119,105,116,

                   104,32,115,50,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,

                   114,119,105,115,101,46,0,67,111,109,112,97,114,101,32,116,119,111,32,115,

                   116,114,105,110,103,115,32,102,111,114,32,101,113,117,97,108,105,116,121,46,

                   32,82,101,116,117,114,110,32,96,84,82,85,69,96,32,105,102,32,105,100,

                   101,110,116,105,99,97,108,32,111,114,32,96,70,65,76,83,69,96,32,105,

                   102,32,110,111,116,46,0,69,118,97,108,117,97,116,101,32,115,116,114,105,

                   110,103,32,97,115,32,105,102,32,105,116,32,119,97,115,32,116,121,112,101,

                   100,32,105,110,116,111,32,116,104,101,32,105,110,116,101,114,112,114,101,116,

                   101,114,46,0,70,101,116,99,104,32,116,104,101,32,99,104,97,114,97,99,

                   116,101,114,32,118,97,108,117,101,32,115,116,111,114,101,100,32,97,116,32,

                   116,104,101,32,115,112,101,99,105,102,105,101,100,32,105,110,100,101,120,32,

                   105,110,32,116,104,101,32,115,116,114,105,110,103,46,0,69,120,101,99,117,

                   116,101,32,116,104,101,32,113,117,111,116,101,32,111,110,99,101,32,102,111,

                   114,32,101,97,99,104,32,118,97,108,117,101,32,105,110,32,116,104,101,32,

                   115,116,114,105,110,103,46,32,73,102,32,116,104,101,32,113,117,111,116,101,

                   32,114,101,116,117,114,110,115,32,96,84,82,85,69,96,44,32,97,112,112,

                   101,110,100,32,116,104,101,32,118,97,108,117,101,32,105,110,116,111,32,97,

                   32,110,101,119,32,115,116,114,105,110,103,46,32,73,102,32,96,70,65,76,

                   83,69,96,32,116,104,101,32,118,97,108,117,101,32,119,105,108,108,32,98,

                   101,32,100,105,115,99,97,114,100,101,100,46,0,69,120,101,99,117,116,101,

                   32,116,104,101,32,113,117,111,116,101,32,111,110,99,101,32,102,111,114,32,

                   101,97,99,104,32,118,97,108,117,101,32,105,110,32,116,104,101,32,115,116,

                   114,105,110,103,46,0,67,111,110,115,116,114,117,99,116,32,97,32,110,101,

                   119,32,115,116,114,105,110,103,32,117,115,105,110,103,32,116,104,101,32,116,

                   101,109,112,108,97,116,101,32,112,97,115,115,101,100,32,97,110,100,32,105,

                   116,101,109,115,32,102,114,111,109,32,116,104,101,32,115,116,97,99,107,46,

                   0,82,101,97,100,32,105,110,112,117,116,32,102,114,111,109,32,115,116,97,

                   110,100,97,114,100,32,105,110,32,40,118,105,97,32,96,99,58,103,101,116,

                   96,41,32,117,110,116,105,108,32,97,32,119,104,105,116,101,115,112,97,99,

                   101,32,105,115,32,101,110,99,111,117,110,116,101,114,101,100,46,32,82,101,

                   116,117,114,110,115,32,97,32,115,116,114,105,110,103,46,0,67,97,108,99,

                   117,108,97,116,101,32,97,32,104,97,115,104,32,118,97,108,117,101,32,102,

                   111,114,32,97,32,115,116,114,105,110,103,46,32,84,104,105,115,32,117,115,

                   101,115,32,116,104,101,32,100,106,98,50,32,97,108,103,111,114,105,116,104,

                   109,46,0,82,101,116,117,114,110,32,116,104,101,32,108,111,99,97,116,105,

                   111,110,32,111,102,32,116,104,101,32,102,105,114,115,116,32,105,110,115,116,

                   97,110,99,101,32,111,102,32,116,104,101,32,115,112,101,99,105,102,105,101,

                   100,32,99,104,97,114,97,99,116,101,114,32,105,110,32,116,104,101,32,115,

                   116,114,105,110,103,46,0,82,101,116,117,114,110,32,116,104,101,32,108,111,

                   99,97,116,105,111,110,32,111,102,32,116,104,101,32,102,105,114,115,116,32,

                   105,110,115,116,97,110,99,101,32,111,102,32,116,104,101,32,115,112,101,99,

                   105,102,105,101,100,32,115,117,98,115,116,114,105,110,103,32,40,115,50,41,

                   32,105,110,32,116,104,101,32,115,116,114,105,110,103,32,40,115,49,41,46,

                   32,82,101,116,117,114,110,115,32,45,49,32,105,102,32,110,111,116,32,102,

                   111,117,110,100,46,0,83,116,111,114,101,32,97,32,115,116,114,105,110,103,

                   32,105,110,116,111,32,116,104,101,32,104,101,97,112,32,97,110,100,32,114,

                   101,116,117,114,110,32,97,32,112,111,105,110,116,101,114,32,116,111,32,116,

                   104,101,32,115,116,97,114,116,32,111,102,32,105,116,46,0,82,101,116,117,

                   114,110,32,97,32,110,101,119,32,115,116,114,105,110,103,32,99,111,110,116,

                   97,105,110,105,110,103,32,116,104,101,32,102,105,114,115,116,32,96,110,96,

                   32,99,104,97,114,97,99,116,101,114,115,32,102,114,111,109,32,116,104,101,

                   32,115,111,117,114,99,101,32,115,116,114,105,110,103,46,0,82,101,116,117,

                   114,110,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,99,104,97,

                   114,97,99,116,101,114,115,32,105,110,32,97,32,115,116,114,105,110,103,44,

                   32,101,120,99,108,117,100,105,110,103,32,116,104,101,32,78,85,76,76,32,

                   116,101,114,109,105,110,97,116,111,114,46,0,69,120,101,99,117,116,101,32,

                   116,104,101,32,115,112,101,99,105,102,105,101,100,32,113,117,111,116,101,32,

                   111,110,99,101,32,102,111,114,32,101,97,99,104,32,99,104,97,114,97,99,

                   116,101,114,32,105,110,32,116,104,101,32,115,116,114,105,110,103,46,32,66,

                   117,105,108,100,115,32,97,32,110,101,119,32,115,116,114,105,110,103,32,102,

                   114,111,109,32,116,104,101,32,114,101,116,117,114,110,32,118,97,108,117,101,

                   32,111,102,32,116,104,101,32,113,117,111,116,101,46,32,84,104,101,32,113,

                   117,111,116,101,32,115,104,111,117,108,100,32,114,101,116,117,114,110,32,111,

                   110,108,121,32,111,110,101,32,118,97,108,117,101,46,0,82,101,116,117,114,

                   110,32,97,32,110,101,119,32,115,116,114,105,110,103,32,99,111,110,115,105,

                   115,116,105,110,103,32,111,102,32,115,50,32,102,111,108,108,111,119,101,100,

                   32,98,121,32,115,49,46,0,68,105,115,112,108,97,121,32,97,32,115,116,

                   114,105,110,103,46,0,82,101,112,108,97,99,101,32,116,104,101,32,102,105,

                   114,115,116,32,105,110,115,116,97,110,99,101,32,111,102,32,115,50,32,105,

                   110,32,115,49,32,119,105,116,104,32,115,51,46,0,82,101,112,108,97,99,

                   101,32,97,108,108,32,105,110,115,116,97,110,99,101,115,32,111,102,32,115,

                   50,32,105,110,32,115,49,32,119,105,116,104,32,115,51,46,0,82,101,118,

                   101,114,115,101,32,116,104,101,32,111,114,100,101,114,32,111,102,32,65,83,

                   67,73,73,32,99,104,97,114,97,99,116,101,114,115,32,105,110,32,97,32,

                   115,116,114,105,110,103,46,0,82,101,116,117,114,110,32,97,32,110,101,119,

                   32,115,116,114,105,110,103,32,99,111,110,116,97,105,110,105,110,103,32,116,

                   104,101,32,115,112,101,99,105,102,105,101,100,32,110,117,109,98,101,114,32,

                   111,102,32,99,104,97,114,97,99,116,101,114,115,32,102,114,111,109,32,116,

                   104,101,32,114,105,103,104,116,32,115,105,100,101,32,111,102,32,116,104,101,

                   32,115,116,114,105,110,103,46,0,73,110,116,101,114,110,97,108,32,104,101,

                   108,112,101,114,32,102,117,110,99,116,105,111,110,32,117,115,101,100,32,116,

                   111,32,115,107,105,112,32,111,118,101,114,32,97,32,115,116,114,105,110,103,

                   32,105,110,32,97,32,100,101,102,105,110,105,116,105,111,110,46,0,83,112,

                   108,105,116,32,97,32,115,116,114,105,110,103,32,111,110,32,116,104,101,32,

                   102,105,114,115,116,32,111,99,99,117,114,114,101,110,99,101,32,111,102,32,

                   116,104,101,32,115,112,101,99,105,102,105,101,100,32,99,104,97,114,97,99,

                   116,101,114,46,0,83,112,108,105,116,32,97,32,115,116,114,105,110,103,32,

                   111,110,32,116,104,101,32,102,105,114,115,116,32,111,99,99,117,114,114,101,

                   110,99,101,32,111,102,32,116,104,101,32,115,112,101,99,105,102,105,101,100,

                   32,115,116,114,105,110,103,46,32,65,102,116,101,114,32,116,104,101,32,115,

                   112,108,105,116,44,32,116,104,101,32,116,111,112,32,115,116,97,99,107,32,

                   105,116,101,109,32,119,105,108,108,32,98,101,32,116,104,101,32,112,97,114,

                   116,32,111,102,32,116,104,101,32,115,116,114,105,110,103,32,98,101,102,111,

                   114,101,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,115,117,98,

                   115,116,114,105,110,103,44,32,97,110,100,32,116,104,101,32,115,101,99,111,

                   110,100,32,105,116,101,109,32,119,105,108,108,32,98,101,32,116,104,101,32,

                   114,101,115,116,32,111,102,32,116,104,101,32,111,114,105,103,105,110,97,108,

                   32,115,116,114,105,110,103,46,0,83,116,111,114,101,32,97,32,99,104,97,

                   114,97,99,116,101,114,32,118,97,108,117,101,32,105,110,116,111,32,116,104,

                   101,32,115,116,114,105,110,103,32,97,116,32,116,104,101,32,115,112,101,99,

                   105,102,105,101,100,32,105,110,100,101,120,46,0,69,120,116,114,97,99,116,

                   32,97,32,115,117,98,115,116,114,105,110,103,32,102,114,111,109,32,116,104,

                   101,32,115,112,101,99,105,102,105,101,100,32,115,116,114,105,110,103,46,32,

                   84,104,105,115,32,119,105,108,108,32,116,97,107,101,32,116,104,101,32,99,

                   104,97,114,97,99,116,101,114,115,32,115,116,97,114,116,105,110,103,32,97,

                   116,32,96,102,96,32,97,110,100,32,101,120,116,101,110,100,32,96,108,96,

                   32,99,104,97,114,97,99,116,101,114,115,32,105,110,32,108,101,110,103,116,

                   104,46,0,77,111,118,101,32,97,32,115,116,114,105,110,103,32,105,110,116,

                   111,32,116,104,101,32,116,101,109,112,111,114,97,114,121,32,115,116,114,105,

                   110,103,32,98,117,102,102,101,114,115,46,0,67,111,110,118,101,114,116,32,

                   97,32,115,116,114,105,110,103,32,114,101,112,114,101,115,101,110,116,97,116,

                   105,111,110,32,105,110,116,111,32,97,32,102,108,111,97,116,105,110,103,45,

                   112,111,105,110,116,32,118,97,108,117,101,46,0,67,111,110,118,101,114,116,

                   32,117,112,112,101,114,99,97,115,101,32,65,83,67,73,73,32,99,104,97,

                   114,97,99,116,101,114,115,32,105,110,32,97,32,115,116,114,105,110,103,32,

                   116,111,32,108,111,119,101,114,99,97,115,101,46,0,67,111,110,118,101,114,

                   116,32,97,32,115,116,114,105,110,103,32,116,111,32,97,32,110,117,109,98,

                   101,114,46,0,67,111,110,118,101,114,116,32,108,111,119,101,114,99,97,115,

                   101,32,65,83,67,73,73,32,99,104,97,114,97,99,116,101,114,115,32,105,

                   110,32,97,32,115,116,114,105,110,103,32,116,111,32,117,112,112,101,114,99,

                   97,115,101,46,0,84,97,107,101,115,32,97,32,115,116,114,105,110,103,32,

                   97,110,100,32,97,32,99,104,97,114,97,99,116,101,114,32,116,111,32,117,

                   115,101,32,97,115,32,97,32,115,101,112,97,114,97,116,111,114,46,32,73,

                   116,32,115,112,108,105,116,115,32,116,104,101,32,115,116,114,105,110,103,32,

                   105,110,116,111,32,115,117,98,115,116,114,105,110,103,115,32,97,110,100,32,

                   114,101,116,117,114,110,115,32,97,110,32,97,114,114,97,121,32,99,111,110,

                   116,97,105,110,105,110,103,32,112,111,105,110,116,101,114,115,32,116,111,32,

                   101,97,99,104,32,111,102,32,116,104,101,109,46,0,84,97,107,101,115,32,

                   97,32,115,116,114,105,110,103,32,40,115,49,41,32,97,110,100,32,97,32,

                   115,117,98,115,116,114,105,110,103,32,40,115,50,41,32,32,117,115,101,32,

                   97,115,32,97,32,115,101,112,97,114,97,116,111,114,46,32,73,116,32,115,

                   112,108,105,116,115,32,116,104,101,32,115,116,114,105,110,103,32,105,110,116,

                   111,32,115,117,98,115,116,114,105,110,103,115,32,97,110,100,32,114,101,116,

                   117,114,110,115,32,97,115,32,97,114,114,97,121,32,99,111,110,116,97,105,

                   110,105,110,103,32,112,111,105,110,116,101,114,115,32,116,111,32,101,97,99,

                   104,32,111,102,32,116,104,101,109,46,0,84,114,105,109,32,108,101,97,100,

                   105,110,103,32,97,110,100,32,116,114,97,105,108,105,110,103,32,119,104,105,

                   116,101,115,112,97,99,101,32,102,114,111,109,32,97,32,115,116,114,105,110,

                   103,46,0,84,114,105,109,32,108,101,97,100,105,110,103,32,119,104,105,116,

                   101,115,112,97,99,101,32,102,114,111,109,32,97,32,115,116,114,105,110,103,

                   46,0,84,114,105,109,32,116,114,97,105,108,105,110,103,32,119,104,105,116,

                   101,115,112,97,99,101,32,102,114,111,109,32,97,32,115,116,114,105,110,103,

                   46,0,65,108,105,97,115,32,102,111,114,32,96,115,58,100,101,100,117,112,

                   46,100,101,102,105,110,101,100,63,96,46,0,68,105,115,99,97,114,100,32,

                   114,101,109,97,105,110,105,110,103,32,116,111,107,101,110,115,32,111,110,32,

                   116,104,101,32,99,117,114,114,101,110,116,32,108,105,110,101,32,98,101,105,

                   110,103,32,101,118,97,108,117,97,116,101,100,46,32,84,104,105,115,32,111,

                   110,108,121,32,119,111,114,107,115,32,119,104,101,110,32,105,110,99,108,117,

                   100,105,110,103,32,97,32,102,105,108,101,44,32,110,111,116,32,97,116,32,

                   116,104,101,32,105,110,116,101,114,112,114,101,116,101,114,46,0,82,101,116,

                   117,114,110,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,97,114,

                   103,117,109,101,110,116,115,32,112,97,115,115,101,100,32,116,111,32,116,104,

                   101,32,112,114,111,103,114,97,109,46,0,82,101,116,117,114,110,32,116,104,

                   101,32,102,105,108,101,110,97,109,101,32,111,102,32,116,104,101,32,102,105,

                   108,101,32,98,101,105,110,103,32,112,114,111,99,101,115,115,101,100,32,98,

                   121,32,116,104,101,32,99,117,114,114,101,110,116,32,96,105,110,99,108,117,

                   100,101,96,44,32,111,114,32,96,47,100,101,118,47,115,116,100,105,110,96,

                   32,105,102,32,116,104,101,32,105,110,112,117,116,32,115,111,117,114,99,101,

                   32,105,115,32,116,104,101,32,116,101,114,109,105,110,97,108,46,0,82,101,

                   116,117,114,110,32,116,104,101,32,99,117,114,114,101,110,116,32,108,105,110,

                   101,32,110,117,109,98,101,114,32,111,102,32,116,104,101,32,102,105,108,101,

                   32,98,101,105,110,103,32,112,114,111,99,101,115,115,101,100,32,98,121,32,

                   116,104,101,32,99,117,114,114,101,110,116,32,96,105,110,99,108,117,100,101,

                   96,44,32,111,114,32,96,48,96,32,105,102,32,116,104,101,32,105,110,112,

                   117,116,32,115,111,117,114,99,101,32,105,115,32,116,104,101,32,116,101,114,

                   109,105,110,97,108,46,32,76,105,110,101,32,110,117,109,98,101,114,105,110,

                   103,32,115,116,97,114,116,115,32,97,116,32,49,46,0,82,101,116,117,114,

                   110,32,116,104,101,32,116,101,120,116,32,111,102,32,116,104,101,32,99,117,

                   114,114,101,110,116,32,108,105,110,101,32,98,101,105,110,103,32,112,114,111,

                   99,101,115,115,101,100,32,98,121,32,116,104,101,32,99,117,114,114,101,110,

                   116,32,96,105,110,99,108,117,100,101,96,46,0,71,105,118,101,110,32,97,

                   110,32,97,114,103,117,109,101,110,116,32,110,117,109,98,101,114,44,32,114,

                   101,116,117,114,110,32,116,104,101,32,97,114,103,117,109,101,110,116,32,97,

                   115,32,97,32,115,116,114,105,110,103,46,0,68,105,115,99,97,114,100,32,

                   114,101,109,97,105,110,105,110,103,32,116,111,107,101,110,115,32,105,110,32,

                   116,104,101,32,99,117,114,114,101,110,116,32,108,105,110,101,46,32,84,104,

                   105,115,32,111,110,108,121,32,119,111,114,107,115,32,119,104,101,110,32,105,

                   110,99,108,117,100,105,110,103,32,97,32,102,105,108,101,44,32,110,111,116,

                   32,97,116,32,116,104,101,32,105,110,116,101,114,112,114,101,116,101,114,46,

                   0,82,101,116,117,114,110,32,116,104,101,32,102,105,108,101,110,97,109,101,

                   32,111,102,32,116,104,101,32,112,114,111,103,114,97,109,32,98,101,105,110,

                   103,32,114,117,110,46,0,80,97,116,99,104,32,116,104,101,32,104,111,111,

                   107,32,112,111,105,110,116,32,105,110,32,97,50,32,116,111,32,112,111,105,

                   110,116,32,116,111,32,97,49,46,0,80,101,102,111,114,109,32,97,32,98,

                   105,116,119,105,115,101,32,115,104,105,102,116,32,111,102,32,109,32,98,121,

                   32,110,32,98,105,116,115,46,32,73,102,32,110,32,105,115,32,112,111,115,

                   105,116,105,118,101,44,32,115,104,105,102,116,32,114,105,103,104,116,46,32,

                   73,102,32,110,101,103,97,116,105,118,101,44,32,116,104,101,32,115,104,105,

                   102,116,32,119,105,108,108,32,98,101,32,116,111,32,116,104,101,32,108,101,

                   102,116,46,0,83,116,111,114,101,32,97,32,118,97,108,117,101,32,105,110,

                   116,111,32,97,32,118,97,114,105,97,98,108,101,46,0,80,114,111,99,101,

                   115,115,32,116,111,107,101,110,32,97,115,32,97,32,110,117,109,98,101,114,

                   46,0,80,114,111,99,101,115,115,32,116,111,107,101,110,32,97,115,32,97,

                   110,32,65,83,67,73,73,32,99,104,97,114,97,99,116,101,114,46,0,82,

                   101,116,117,114,110,32,97,32,112,111,105,110,116,101,114,32,116,111,32,97,

                   32,110,97,109,101,100,32,105,116,101,109,46,32,73,102,32,110,97,109,101,

                   32,105,115,32,110,111,116,32,102,111,117,110,100,44,32,114,101,116,117,114,

                   110,115,32,48,46,0,80,114,111,99,101,115,115,32,116,111,107,101,110,32,

                   97,115,32,97,32,115,116,114,105,110,103,46,0,80,114,111,99,101,115,115,

                   32,116,111,107,101,110,32,97,115,32,97,32,99,111,109,109,101,110,116,46,

                   0,73,110,116,101,114,112,114,101,116,32,116,105,109,101,58,32,99,111,110,

                   118,101,114,116,32,115,116,114,105,110,103,32,116,111,32,97,32,102,108,111,

                   97,116,105,110,103,45,112,111,105,110,116,32,118,97,108,117,101,46,32,67,

                   111,109,112,105,108,101,32,116,105,109,101,58,32,99,111,110,118,101,114,116,

                   32,115,116,114,105,110,103,32,116,111,32,97,32,102,108,111,97,116,105,110,

                   103,45,112,111,105,110,116,32,118,97,108,117,101,32,97,110,100,32,99,111,

                   109,112,105,108,101,32,99,111,100,101,32,116,111,32,112,117,115,104,32,116,

                   104,105,115,32,118,97,108,117,101,32,116,111,32,116,104,101,32,102,108,111,

                   97,116,32,115,116,97,99,107,46,0,72,111,111,107,46,32,80,114,111,99,

                   101,115,115,32,116,111,107,101,110,32,97,115,32,97,32,110,101,119,32,100,

                   101,102,105,110,105,116,105,111,110,46,0,70,101,116,99,104,32,102,114,111,

                   109,32,97,32,115,116,111,114,101,100,32,118,97,114,105,97,98,108,101,46,

                   0,80,114,111,99,101,115,115,32,116,111,107,101,110,32,97,115,32,97,110,

                   32,105,110,115,116,114,117,99,116,105,111,110,32,98,117,110,100,108,101,46,

                   0,80,114,111,99,101,115,115,32,116,111,107,101,110,32,97,115,32,97,32,

                   102,117,110,99,116,105,111,110,32,114,101,102,101,114,101,110,99,101,46,0,

                   80,114,111,99,101,115,115,32,116,111,107,101,110,32,97,115,32,97,32,98,

                   121,116,101,99,111,100,101,46,0,80,79,83,84,80,79,78,69,32,101,113,

                   117,105,118,97,108,101,110,116,46,0,82,117,110,32,113,117,111,116,101,46,

                   32,65,102,116,101,114,32,101,120,101,99,117,116,105,111,110,32,99,111,109,

                   112,108,101,116,101,115,44,32,112,117,116,32,97,32,99,111,112,121,32,111,

                   102,32,110,32,98,97,99,107,32,111,110,32,116,111,112,32,111,102,32,116,

                   104,101,32,115,116,97,99,107,46,0,66,101,103,105,110,32,97,99,99,101,

                   112,116,105,110,103,32,99,111,110,110,101,99,116,105,111,110,115,46,32,82,

                   101,116,117,114,110,115,32,97,32,110,101,119,32,115,111,99,107,101,116,32,

                   97,110,100,32,97,110,32,101,114,114,111,114,32,99,111,100,101,46,0,66,

                   105,110,100,32,97,32,115,111,99,107,101,116,32,116,111,32,97,32,112,111,

                   114,116,46,32,84,104,101,32,112,111,114,116,32,115,104,111,117,108,100,32,

                   98,101,32,97,32,115,116,114,105,110,103,46,32,82,101,116,117,114,110,115,

                   32,48,32,105,102,32,115,117,99,99,101,115,115,102,117,108,32,111,114,32,

                   45,49,32,111,116,104,101,114,119,105,115,101,32,97,110,100,32,97,110,32,

                   101,114,114,111,114,32,99,111,100,101,46,0,67,108,111,115,101,32,97,32,

                   115,111,99,107,101,116,46,0,67,111,110,102,105,103,117,114,101,32,105,110,

                   116,101,114,110,97,108,32,115,101,116,116,105,110,103,115,32,102,111,114,32,

                   97,32,104,111,115,116,32,40,115,49,41,32,97,110,100,32,112,111,114,116,

                   32,40,115,50,41,46,32,85,115,101,32,98,101,102,111,114,101,32,96,115,

                   111,99,107,101,116,58,98,105,110,100,96,46,0,67,111,110,110,101,99,116,

                   32,116,111,32,97,32,115,101,114,118,101,114,46,32,80,114,111,118,105,100,

                   101,32,97,32,115,111,99,107,101,116,44,32,116,104,105,115,32,119,105,108,

                   108,32,114,101,116,117,114,110,32,97,32,115,116,97,116,117,115,32,102,108,

                   97,103,32,97,110,100,32,97,110,32,101,114,114,111,114,32,99,111,100,101,

                   46,0,79,98,116,97,105,110,32,97,32,110,101,119,32,115,111,99,107,101,

                   116,46,0,71,101,116,32,116,104,101,32,104,111,115,116,32,73,80,32,105,

                   110,32,100,111,116,116,101,100,32,110,111,116,97,116,105,111,110,46,32,84,

                   104,101,32,104,111,115,116,32,105,115,32,115,112,101,99,105,102,105,101,100,

                   32,98,121,32,116,104,101,32,115,116,114,105,110,103,32,97,110,100,32,116,

                   104,101,32,97,100,100,114,101,115,115,32,105,115,32,116,104,101,32,115,116,

                   97,114,116,32,111,102,32,116,104,101,32,98,117,102,102,101,114,32,102,111,

                   114,32,116,104,101,32,100,111,116,116,101,100,32,73,80,46,0,80,114,101,

                   112,97,114,101,32,97,32,115,111,99,107,101,116,32,102,111,114,32,97,99,

                   99,101,112,116,105,110,103,32,105,110,99,111,109,105,110,103,32,99,111,110,

                   110,101,99,116,105,111,110,115,46,32,84,97,107,101,115,32,97,32,98,97,

                   99,107,108,111,103,32,99,111,117,110,116,32,40,110,49,41,32,97,110,100,

                   32,97,32,115,111,99,107,101,116,32,40,110,50,41,46,32,82,101,116,117,

                   114,110,115,32,97,32,102,108,97,103,32,40,48,32,115,117,99,99,101,115,

                   115,44,32,45,49,32,102,97,105,108,101,100,41,32,97,110,100,32,97,110,

                   32,101,114,114,111,114,32,99,111,100,101,46,0,84,114,105,103,103,101,114,

                   32,97,32,115,111,99,107,101,116,32,111,112,101,114,97,116,105,111,110,46,

                   32,84,104,105,115,32,105,115,32,110,111,116,32,105,110,116,101,110,100,101,

                   100,32,116,111,32,98,101,32,117,115,101,100,32,100,105,114,101,99,116,108,

                   121,46,0,82,101,99,101,105,118,101,32,100,97,116,97,32,102,114,111,109,

                   32,97,32,115,111,99,107,101,116,46,32,84,104,105,115,32,119,105,108,108,

                   32,114,101,97,100,32,105,110,116,111,32,109,101,109,111,114,121,32,115,116,

                   97,114,116,105,110,103,32,97,116,32,97,100,100,114,101,115,115,32,42,97,

                   42,44,32,117,112,32,116,111,32,42,110,49,42,32,98,121,116,101,115,46,

                   32,42,110,50,42,32,105,115,32,116,104,101,32,115,111,99,107,101,116,46,

                   32,82,101,116,117,114,110,115,32,116,104,101,32,110,117,109,98,101,114,32,

                   111,102,32,98,121,116,101,115,32,114,101,97,100,32,97,110,100,32,97,110,

                   32,101,114,114,111,114,32,99,111,100,101,46,0,83,101,110,100,32,97,32,

                   115,116,114,105,110,103,32,116,111,32,97,32,115,111,99,107,101,116,46,32,

                   84,104,105,115,32,119,105,108,108,32,114,101,116,117,114,110,32,116,104,101,

                   32,110,117,109,98,101,114,32,111,102,32,99,104,97,114,97,99,116,101,114,

                   115,32,115,101,110,116,32,97,110,100,32,97,110,32,101,114,114,111,114,32,

                   99,111,100,101,46,0,68,105,115,112,108,97,121,32,97,32,115,112,97,99,

                   101,32,40,96,65,83,67,73,73,58,83,80,65,67,69,96,41,0,83,116,

                   111,114,101,32,97,32,118,97,108,117,101,32,105,110,116,111,32,116,104,101,

                   32,115,112,101,99,105,102,105,101,100,32,97,100,100,114,101,115,115,46,0,

                   83,116,111,114,101,32,97,32,118,97,108,117,101,32,105,110,116,111,32,116,

                   104,101,32,115,112,101,99,105,102,105,101,100,32,97,100,100,114,101,115,115,

                   32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,110,101,120,116,

                   32,97,100,100,114,101,115,115,46,0,69,120,99,104,97,110,103,101,32,116,

                   104,101,32,112,111,115,105,116,105,111,110,32,111,102,32,116,104,101,32,116,

                   111,112,32,116,119,111,32,105,116,101,109,115,32,111,110,32,116,104,101,32,

                   115,116,97,99,107,0,68,105,115,112,108,97,121,32,97,32,116,97,98,32,

                   40,96,65,83,67,73,73,58,72,84,96,41,0,67,111,110,118,101,114,116,

                   32,97,32,99,97,108,108,32,98,101,102,111,114,101,32,116,104,101,32,115,

                   101,109,105,99,111,108,111,110,32,116,111,32,97,32,106,117,109,112,46,0,

                   82,117,110,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,113,117,

                   111,116,101,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,110,117,

                   109,98,101,114,32,111,102,32,116,105,109,101,115,46,0,65,112,112,108,121,

                   32,113,49,32,97,103,97,105,110,115,116,32,120,44,32,116,104,101,110,32,

                   113,50,32,97,103,97,105,110,115,116,32,97,32,99,111,112,121,32,111,102,

                   32,120,44,32,97,110,100,32,102,105,110,97,108,108,121,32,113,51,32,97,

                   103,97,105,110,115,116,32,97,110,111,116,104,101,114,32,99,111,112,121,32,

                   111,102,32,120,46,0,65,112,112,108,121,32,113,49,32,97,103,97,105,110,

                   115,116,32,120,44,32,113,50,32,97,103,97,105,110,115,116,32,121,44,32,

                   97,110,100,32,113,51,32,97,103,97,105,110,115,116,32,122,46,0,65,112,

                   112,108,121,32,113,32,97,103,97,105,110,115,116,32,120,44,32,116,104,101,

                   110,32,97,103,97,105,110,115,116,32,121,44,32,97,110,100,32,102,105,110,

                   97,108,108,121,32,97,103,97,105,110,115,116,32,122,46,0,80,117,116,32,

                   97,32,99,111,112,121,32,111,102,32,116,104,101,32,116,111,112,32,105,116,

                   101,109,32,111,110,32,116,104,101,32,115,116,97,99,107,32,117,110,100,101,

                   114,32,116,104,101,32,115,101,99,111,110,100,32,111,110,101,46,0,82,101,

                   115,101,116,32,116,104,101,32,104,111,111,107,32,112,111,105,110,116,32,105,

                   110,32,97,49,32,116,111,32,116,104,101,32,100,101,102,97,117,108,116,32,

                   100,101,102,105,110,105,116,105,111,110,46,0,67,104,97,110,103,101,32,116,

                   104,101,32,99,117,114,114,101,110,116,32,119,111,114,107,105,110,103,32,100,

                   105,114,101,99,116,111,114,121,32,116,111,32,116,104,101,32,115,112,101,99,

                   105,102,105,101,100,32,111,110,101,46,0,82,101,116,117,114,110,32,116,104,

                   101,32,110,117,109,98,101,114,32,111,102,32,102,105,108,101,115,32,40,97,

                   110,100,32,115,117,98,100,105,114,101,99,116,111,114,105,101,115,41,32,105,

                   110,32,116,104,101,32,99,117,114,114,101,110,116,32,119,111,114,107,105,110,

                   103,32,100,105,114,101,99,116,111,114,121,0,69,120,101,99,117,116,101,32,

                   97,32,112,114,111,99,101,115,115,32,98,121,32,114,117,110,110,105,110,103,

                   32,116,104,101,32,97,112,112,108,105,99,97,116,105,111,110,32,115,112,101,

                   99,105,102,105,101,100,32,98,121,32,115,46,0,69,120,101,99,117,116,101,

                   32,97,32,112,114,111,99,101,115,115,32,98,121,32,114,117,110,110,105,110,

                   103,32,116,104,101,32,97,112,112,108,105,99,97,116,105,111,110,32,115,112,

                   101,99,105,102,105,101,100,32,98,121,32,115,49,46,32,80,97,115,115,32,

                   115,50,32,97,115,32,97,110,32,97,114,103,117,109,101,110,116,46,0,69,

                   120,101,99,117,116,101,32,97,32,112,114,111,99,101,115,115,32,98,121,32,

                   114,117,110,110,105,110,103,32,116,104,101,32,97,112,112,108,105,99,97,116,

                   105,111,110,32,115,112,101,99,105,102,105,101,100,32,98,121,32,115,49,46,

                   32,80,97,115,115,32,115,50,32,97,110,100,32,115,51,32,97,115,32,97,

                   114,103,117,109,101,110,116,115,46,0,69,120,101,99,117,116,101,32,97,32,

                   112,114,111,99,101,115,115,32,98,121,32,114,117,110,110,105,110,103,32,116,

                   104,101,32,97,112,112,108,105,99,97,116,105,111,110,32,115,112,101,99,105,

                   102,105,101,100,32,98,121,32,115,49,46,32,80,97,115,115,32,115,50,44,

                   32,115,51,44,32,97,110,100,32,115,52,32,97,115,32,97,114,103,117,109,

                   101,110,116,115,46,0,82,117,110,115,32,97,110,111,116,104,101,114,32,97,

                   112,112,108,105,99,97,116,105,111,110,32,97,110,100,32,114,101,116,117,114,

                   110,32,97,102,116,101,114,32,101,120,101,99,117,116,105,111,110,32,105,115,

                   32,99,111,109,112,108,101,116,101,100,46,32,84,104,105,115,32,100,111,101,

                   115,32,110,111,116,32,105,110,118,111,107,101,32,116,104,101,32,115,104,101,

                   108,108,32,108,105,107,101,32,96,117,110,105,120,58,115,121,115,116,101,109,

                   96,32,97,110,100,32,100,111,101,115,32,110,111,116,32,115,117,112,112,111,

                   114,116,32,103,108,111,98,98,105,110,103,46,0,69,120,105,116,32,116,104,

                   101,32,99,117,114,114,101,110,116,32,112,114,111,99,101,115,115,44,32,114,

                   101,116,117,114,110,105,110,103,32,116,104,101,32,115,112,101,99,105,102,105,

                   101,100,32,114,101,116,117,114,110,32,99,111,100,101,46,0,82,117,110,32,

                   97,32,113,117,111,116,101,32,111,110,99,101,32,102,111,114,32,101,97,99,

                   104,32,102,105,108,101,32,111,114,32,115,117,98,100,105,114,101,99,116,111,

                   114,121,32,105,110,32,116,104,101,32,99,117,114,114,101,110,116,32,100,105,

                   114,101,99,116,111,114,121,46,32,84,104,101,32,113,117,111,116,101,32,119,

                   105,108,108,32,114,101,99,101,105,118,101,32,116,104,101,32,102,105,108,101,

                   32,110,97,109,101,32,97,115,32,97,32,115,116,114,105,110,103,32,97,110,

                   100,32,115,104,111,117,108,100,32,99,111,110,115,117,109,101,32,116,104,105,

                   115,32,97,110,100,32,114,101,116,117,114,110,32,110,111,116,104,105,110,103,

                   32,111,110,32,116,104,101,32,115,116,97,99,107,46,0,70,111,114,107,32,

                   116,104,101,32,99,117,114,114,101,110,116,32,112,114,111,99,101,115,115,46,

                   32,82,101,116,117,114,110,115,32,97,32,80,73,68,46,0,82,101,116,117,

                   114,110,32,116,104,101,32,99,117,114,114,101,110,116,32,119,111,114,107,105,

                   110,103,32,100,105,114,101,99,116,111,114,121,0,71,101,116,32,97,110,32,

                   101,110,118,105,114,111,110,109,101,110,116,32,118,97,114,105,97,98,108,101,

                   46,32,80,114,111,118,105,100,101,32,116,104,101,32,110,97,109,101,32,97,

                   110,100,32,97,110,32,97,100,100,114,101,115,115,32,116,111,32,115,116,111,

                   114,101,32,105,116,32,105,110,46,0,82,101,116,117,114,110,32,116,104,101,

                   32,80,73,68,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,32,

                   112,114,111,99,101,115,115,46,0,84,101,114,109,105,110,97,116,101,115,32,

                   97,32,112,114,111,99,101,115,115,46,32,84,97,107,101,115,32,97,32,112,

                   114,111,99,101,115,115,32,97,110,100,32,97,32,115,105,103,110,97,108,32,

                   116,111,32,115,101,110,100,46,0,67,108,111,115,101,32,97,32,112,105,112,

                   101,46,0,84,97,107,101,115,32,97,32,115,116,114,105,110,103,32,119,105,

                   116,104,32,97,32,85,110,105,120,32,99,111,109,109,97,110,100,32,108,105,

                   110,101,32,97,110,100,32,114,117,110,32,105,116,32,105,110,32,97,32,112,

                   105,112,101,44,32,114,101,116,117,114,110,105,110,103,32,97,32,110,101,119,

                   32,115,116,114,105,110,103,32,119,105,116,104,32,116,104,101,32,102,105,114,

                   115,116,32,108,105,110,101,32,111,102,32,116,104,101,32,111,117,116,112,117,

                   116,32,102,114,111,109,32,116,104,101,32,112,105,112,101,46,0,79,112,101,

                   110,32,97,32,112,105,112,101,46,32,84,97,107,101,115,32,97,32,99,111,

                   109,109,97,110,100,32,116,111,32,114,117,110,44,32,97,110,100,32,97,32,

                   102,105,108,101,32,109,111,100,101,32,40,96,102,105,108,101,58,82,96,32,

                   111,114,32,96,102,105,108,101,58,87,96,59,32,96,102,105,108,101,58,82,

                   43,96,32,109,97,121,32,119,111,114,107,32,111,110,32,115,111,109,101,32,

                   115,121,115,116,101,109,115,41,46,32,82,101,116,117,114,110,115,32,97,32,

                   102,105,108,101,32,73,68,32,117,115,97,98,108,101,32,119,105,116,104,32,

                   119,111,114,100,115,32,105,110,32,116,104,101,32,96,102,105,108,101,58,96,

                   32,110,97,109,101,115,112,97,99,101,46,0,84,97,107,101,115,32,97,32,

                   115,116,114,105,110,103,32,105,110,32,116,104,101,32,102,111,114,109,32,96,

                   110,97,109,101,61,118,97,108,117,101,96,32,97,110,100,32,115,101,116,115,

                   32,97,110,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97,114,105,

                   97,98,108,101,32,110,97,109,101,100,32,96,110,97,109,101,96,32,116,111,

                   32,96,118,97,108,117,101,96,46,0,83,108,101,101,112,32,102,111,114,32,

                   116,104,101,32,115,112,101,99,105,102,105,101,100,32,110,117,109,98,101,114,

                   32,111,102,32,115,101,99,111,110,100,115,46,0,79,112,101,110,32,97,32,

                   112,105,112,101,46,32,82,101,97,100,32,97,108,108,32,111,117,116,112,117,

                   116,32,102,114,111,109,32,116,104,101,32,112,105,112,101,32,40,117,110,116,

                   105,108,32,65,83,67,73,73,58,78,85,76,76,41,32,97,110,100,32,115,

                   116,111,114,101,32,105,110,32,116,104,101,32,115,112,101,99,105,102,105,101,

                   100,32,98,117,102,102,101,114,46,32,82,101,116,117,114,110,32,116,104,101,

                   32,110,117,109,98,101,114,32,111,102,32,98,121,116,101,115,32,114,101,97,

                   100,46,0,82,117,110,115,32,97,110,111,116,104,101,114,32,97,112,112,108,

                   105,99,97,116,105,111,110,32,117,115,105,110,103,32,116,104,101,32,115,121,

                   115,116,101,109,32,115,104,101,108,108,32,97,110,100,32,114,101,116,117,114,

                   110,115,32,97,102,116,101,114,32,101,120,101,99,117,116,105,111,110,32,105,

                   115,32,99,111,109,112,108,101,116,101,100,46,0,87,97,105,116,115,32,102,

                   111,114,32,97,32,99,104,105,108,100,32,112,114,111,99,101,115,115,32,116,

                   111,32,99,111,109,112,108,101,116,101,46,32,84,104,105,115,32,109,97,112,

                   115,32,116,111,32,116,104,101,32,119,97,105,116,40,41,32,115,121,115,116,

                   101,109,32,99,97,108,108,46,0,85,110,112,97,99,107,32,97,32,51,50,

                   45,98,105,116,32,118,97,108,117,101,32,105,110,116,111,32,102,111,117,114,

                   32,56,45,98,105,116,32,118,97,108,117,101,115,46,0,77,117,108,116,105,

                   112,108,121,32,96,110,49,96,32,98,121,32,96,110,50,96,32,97,110,100,

                   32,114,101,116,117,114,110,32,116,104,101,32,114,101,115,117,108,116,46,0,

                   77,117,108,116,105,112,108,121,32,96,120,96,32,98,121,32,96,121,96,32,

                   97,110,100,32,116,104,101,110,32,100,105,118,105,100,101,32,98,121,32,96,

                   122,96,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,105,110,

                   116,101,103,101,114,32,112,97,114,116,32,111,102,32,116,104,101,32,113,117,

                   111,116,105,101,110,116,32,97,110,100,32,114,101,109,97,105,110,100,101,114,

                   46,0,65,100,100,32,96,110,49,96,32,116,111,32,96,110,50,96,32,97,

                   110,100,32,114,101,116,117,114,110,32,116,104,101,32,114,101,115,117,108,116,

                   46,0,83,117,98,116,114,97,99,116,32,96,110,50,96,32,102,114,111,109,

                   32,96,110,49,96,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,

                   32,114,101,115,117,108,116,46,0,67,111,109,112,97,114,101,32,116,119,111,

                   32,118,97,108,117,101,115,32,102,111,114,32,105,110,101,113,117,97,108,105,

                   116,121,46,32,82,101,116,117,114,110,115,32,96,84,82,85,69,96,32,105,

                   102,32,116,104,101,121,32,97,114,101,32,110,111,116,32,101,113,117,97,108,

                   32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,114,119,105,115,

                   101,46,0,68,105,118,105,100,101,32,96,110,96,32,98,121,32,96,109,96,

                   32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,105,110,116,101,

                   103,101,114,32,112,97,114,116,32,111,102,32,116,104,101,32,113,117,111,116,

                   105,101,110,116,32,97,110,100,32,114,101,109,97,105,110,100,101,114,46,0,

                   67,111,109,112,97,114,101,32,116,119,111,32,118,97,108,117,101,115,32,102,

                   111,114,32,101,113,117,97,108,105,116,121,46,32,82,101,116,117,114,110,115,

                   32,96,84,82,85,69,96,32,105,102,32,116,104,101,121,32,97,114,101,32,

                   101,113,117,97,108,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,

                   101,114,119,105,115,101,46,0,67,111,109,112,97,114,101,32,110,49,32,97,

                   110,100,32,110,50,46,32,82,101,116,117,114,110,32,96,84,82,85,69,96,

                   32,105,102,32,110,49,32,105,115,32,103,114,101,97,116,101,114,32,116,104,

                   97,110,32,110,50,44,32,111,114,32,96,70,65,76,83,69,96,32,111,116,

                   104,101,114,119,105,115,101,46,0,67,111,109,112,97,114,101,32,110,49,32,

                   97,110,100,32,110,50,46,32,82,101,116,117,114,110,32,96,84,82,85,69,

                   96,32,105,102,32,110,49,32,105,115,32,108,101,115,115,32,116,104,97,110,

                   32,110,50,44,32,111,114,32,96,70,65,76,83,69,96,32,111,116,104,101,

                   114,119,105,115,101,46,0,80,101,102,111,114,109,32,97,32,98,105,116,119,

                   105,115,101,32,115,104,105,102,116,32,111,102,32,109,32,98,121,32,110,32,

                   98,105,116,115,46,32,73,102,32,110,32,105,115,32,112,111,115,105,116,105,

                   118,101,44,32,115,104,105,102,116,32,114,105,103,104,116,46,32,73,102,32,

                   110,101,103,97,116,105,118,101,44,32,116,104,101,32,115,104,105,102,116,32,

                   119,105,108,108,32,98,101,32,116,111,32,116,104,101,32,108,101,102,116,46,

                   0,69,120,101,99,117,116,101,32,113,117,111,116,101,32,114,101,112,101,97,

                   116,101,100,108,121,32,119,104,105,108,101,32,116,104,101,32,113,117,111,116,

                   101,32,114,101,116,117,114,110,115,32,97,32,118,97,108,117,101,32,111,102,

                   32,96,70,65,76,83,69,96,46,32,84,104,101,32,113,117,111,116,101,32,

                   115,104,111,117,108,100,32,114,101,116,117,114,110,32,97,32,102,108,97,103,

                   32,111,102,32,101,105,116,104,101,114,32,96,84,82,85,69,96,32,111,114,

                   32,96,70,65,76,83,69,96,44,32,116,104,111,117,103,104,32,96,117,110,

                   116,105,108,96,32,119,105,108,108,32,116,114,101,97,116,32,97,110,121,32,

                   110,111,110,45,122,101,114,111,32,118,97,108,117,101,32,97,115,32,96,84,

                   82,85,69,96,46,0,68,101,99,114,101,109,101,110,116,32,116,104,101,32,

                   118,97,108,117,101,32,115,116,111,114,101,100,32,97,116,32,116,104,101,32,

                   115,112,101,99,105,102,105,101,100,32,97,100,100,114,101,115,115,32,98,121,

                   32,49,46,0,68,101,99,114,101,109,101,110,116,32,116,104,101,32,118,97,

                   108,117,101,32,115,116,111,114,101,100,32,97,116,32,116,104,101,32,115,112,

                   101,99,105,102,105,101,100,32,97,100,100,114,101,115,115,32,98,121,32,116,

                   104,101,32,115,112,101,99,105,102,105,101,100,32,118,97,108,117,101,46,0,

                   73,110,99,114,101,109,101,110,116,32,116,104,101,32,118,97,108,117,101,32,

                   115,116,111,114,101,100,32,97,116,32,116,104,101,32,115,112,101,99,105,102,

                   105,101,100,32,97,100,100,114,101,115,115,32,98,121,32,49,46,0,73,110,

                   99,114,101,109,101,110,116,32,116,104,101,32,118,97,108,117,101,32,115,116,

                   111,114,101,100,32,97,116,32,116,104,101,32,115,112,101,99,105,102,105,101,

                   100,32,97,100,100,114,101,115,115,32,98,121,32,116,104,101,32,115,112,101,

                   99,105,102,105,101,100,32,118,97,108,117,101,46,0,70,101,116,99,104,32,

                   116,104,101,32,118,97,108,117,101,32,115,116,111,114,101,100,32,97,116,32,

                   116,104,101,32,97,100,100,114,101,115,115,44,32,116,104,101,110,32,114,117,

                   110,32,96,110,58,108,105,109,105,116,96,32,97,103,97,105,110,115,116,32,

                   105,116,44,32,117,115,105,110,103,32,116,104,101,32,115,112,101,99,105,102,

                   105,101,100,32,108,111,119,101,114,32,97,110,100,32,117,112,112,101,114,32,

                   98,111,117,110,100,115,46,32,84,104,101,110,32,115,116,111,114,101,32,116,

                   104,101,32,114,101,115,117,108,116,105,110,103,32,118,97,108,117,101,32,98,

                   97,99,107,32,116,111,32,116,104,101,32,111,114,105,103,105,110,97,108,32,

                   97,100,100,114,101,115,115,46,0,83,101,116,32,97,32,118,97,114,105,97,

                   98,108,101,32,116,111,32,48,46,0,83,101,116,32,97,32,118,97,114,105,

                   97,98,108,101,32,116,111,32,45,49,46,0,77,97,107,101,32,97,32,99,

                   111,112,121,32,111,102,32,116,104,101,32,118,97,108,117,101,32,97,116,32,

                   116,104,101,32,97,100,100,114,101,115,115,44,32,116,104,101,110,32,114,117,

                   110,32,116,104,101,32,113,117,111,116,101,46,32,79,110,99,101,32,116,104,

                   101,32,113,117,111,116,101,32,99,111,109,112,108,101,116,101,115,44,32,114,

                   101,115,116,111,114,101,32,116,104,101,32,97,100,100,114,101,115,115,32,116,

                   111,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,118,97,108,117,

                   101,46,0,70,101,116,99,104,32,97,32,118,97,108,117,101,32,102,114,111,

                   109,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,100,100,114,

                   101,115,115,44,32,116,104,101,110,32,114,117,110,32,116,104,101,32,113,117,

                   111,116,97,116,105,111,110,32,119,105,116,104,32,116,104,105,115,32,118,97,

                   108,117,101,32,111,110,32,116,104,101,32,115,116,97,99,107,46,32,65,102,

                   116,101,114,119,97,114,100,115,44,32,115,116,111,114,101,32,116,104,101,32,

                   114,101,116,117,114,110,101,100,32,118,97,108,117,101,32,97,116,32,116,104,

                   101,32,111,114,105,103,105,110,97,108,32,97,100,100,114,101,115,115,46,0,

                   67,114,101,97,116,101,32,97,32,118,97,114,105,97,98,108,101,46,32,84,

                   104,101,32,118,97,114,105,97,98,108,101,32,105,115,32,105,110,105,116,105,

                   97,108,105,122,101,100,32,116,111,32,48,46,0,67,114,101,97,116,101,32,

                   97,32,118,97,114,105,97,98,108,101,32,119,105,116,104,32,116,104,101,32,

                   115,112,101,99,105,102,105,101,100,32,105,110,105,116,105,97,108,32,118,97,

                   108,117,101,46,0,67,114,101,97,116,101,32,97,32,118,97,114,105,97,98,

                   108,101,32,119,105,116,104,32,116,104,101,32,115,112,101,99,105,102,105,101,

                   100,32,105,110,105,116,105,97,108,32,118,97,108,117,101,46,0,70,101,116,

                   99,104,32,116,104,101,32,51,50,45,98,105,116,32,118,97,108,117,101,32,

                   115,116,111,114,101,100,32,97,116,32,116,104,101,32,115,112,101,99,105,102,

                   105,101,100,32,97,100,100,114,101,115,115,46,32,65,100,100,114,101,115,115,

                   105,110,103,32,102,111,114,32,116,104,105,115,32,105,115,32,105,110,32,56,

                   45,98,105,116,32,117,110,105,116,115,46,32,84,104,101,32,97,100,100,114,

                   101,115,115,32,109,117,115,116,32,98,101,32,97,108,105,103,110,101,100,32,

                   111,110,32,97,32,102,111,117,114,32,98,121,116,101,32,98,111,117,110,100,

                   97,114,121,46,0,70,101,116,99,104,32,116,104,101,32,118,97,108,117,101,

                   32,115,116,111,114,101,100,32,97,116,32,116,104,101,32,115,112,101,99,105,

                   102,105,101,100,32,97,100,100,114,101,115,115,46,32,82,101,116,117,114,110,

                   115,32,116,104,101,32,110,101,120,116,32,97,100,100,114,101,115,115,32,97,

                   110,100,32,116,104,101,32,118,97,108,117,101,46,0,83,116,111,114,101,32,

                   97,110,32,51,50,45,98,105,116,32,118,97,108,117,101,32,105,110,116,111,

                   32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,97,100,100,114,101,

                   115,115,46,32,65,100,100,114,101,115,115,105,110,103,32,102,111,114,32,116,

                   104,105,115,32,105,115,32,105,110,32,56,45,98,105,116,32,117,110,105,116,

                   115,46,32,84,104,101,32,97,100,100,114,101,115,115,32,109,117,115,116,32,

                   98,101,32,97,108,105,103,110,101,100,32,111,110,32,97,32,102,111,117,114,

                   32,98,121,116,101,32,98,111,117,110,100,97,114,121,46,0,83,116,111,114,

                   101,32,97,32,118,97,108,117,101,32,105,110,116,111,32,116,104,101,32,115,

                   112,101,99,105,102,105,101,100,32,97,100,100,114,101,115,115,32,97,110,100,

                   32,114,101,116,117,114,110,32,116,104,101,32,110,101,120,116,32,97,100,100,

                   114,101,115,115,46,0,69,120,101,99,117,116,101,32,113,117,111,116,101,32,

                   114,101,112,101,97,116,101,100,108,121,32,119,104,105,108,101,32,116,104,101,

                   32,113,117,111,116,101,32,114,101,116,117,114,110,115,32,97,32,96,84,82,

                   85,69,96,32,118,97,108,117,101,46,32,84,104,101,32,113,117,111,116,101,

                   32,115,104,111,117,108,100,32,114,101,116,117,114,110,32,97,32,102,108,97,

                   103,32,111,102,32,101,105,116,104,101,114,32,96,84,82,85,69,96,32,111,

                   114,32,96,70,65,76,83,69,96,44,32,116,104,111,117,103,104,32,96,119,

                   104,105,108,101,96,32,119,105,108,108,32,116,114,101,97,116,32,97,110,121,

                   32,110,111,110,45,122,101,114,111,32,118,97,108,117,101,32,97,115,32,96,

                   84,82,85,69,96,46,0,80,101,114,102,111,114,109,32,97,32,98,105,116,

                   119,105,115,101,32,88,79,82,32,111,112,101,114,97,116,105,111,110,46,0,

                   66,101,103,105,110,32,97,110,32,97,114,114,97,121,46,32,84,104,105,115,

                   32,105,115,32,105,110,116,101,110,100,101,100,32,116,111,32,109,97,107,101,

                   32,99,114,101,97,116,105,110,103,32,97,114,114,97,121,115,32,97,32,98,

                   105,116,32,99,108,101,97,110,101,114,32,116,104,97,110,32,117,115,105,110,

                   103,32,97,32,113,117,111,116,97,116,105,111,110,32,97,110,100,32,96,97,

                   58,99,111,117,110,116,101,100,45,114,101,115,117,108,116,115,96,46,0,66,

                   101,103,105,110,32,97,32,108,101,120,105,99,97,108,108,121,32,115,99,111,

                   112,101,100,32,97,114,101,97,46,0,67,111,109,112,108,101,116,101,32,97,

                   110,32,97,114,114,97,121,32,98,101,103,117,110,32,98,121,32,96,123,96,

                   46,32,82,101,116,117,114,110,115,32,97,32,112,111,105,110,116,101,114,32,

                   116,111,32,116,104,101,32,100,97,116,97,46,0,69,110,100,32,97,32,108,

                   101,120,105,99,97,108,108,121,32,115,99,111,112,101,100,32,97,114,101,97,

                   46,32,84,104,105,115,32,119,105,108,108,32,104,105,100,101,32,97,110,121,

                   32,104,101,97,100,101,114,115,32,98,101,116,119,101,101,110,32,96,123,123,

                   96,32,97,110,100,32,96,45,45,45,114,101,118,101,97,108,45,45,45,96,

                   44,32,108,101,97,118,105,110,103,32,111,110,108,121,32,104,101,97,100,101,

                   114,115,32,98,101,116,119,101,101,110,32,96,45,45,45,114,101,118,101,97,

                   108,45,45,45,96,32,97,110,100,32,116,104,101,32,96,125,125,96,32,118,

                   105,115,105,98,108,101,46,0,27784,67847,168,68166,-460132687,67849,200,200,0,105,109,97,

                   103,101,58,115,97,118,101,0,2049,5525,115,45,0,1,67849,3,1,1000,2049,12792,

                   2049,12769,10,67827,67877,168,0,257642186,0,200,200,0,101,100,105,116,63,0,2,1793,

                   67884,1,8,11,10,1,67880,1793,67892,1,127,11,10,1,67888,2049,2923,22,10,67862,

                   67914,168,0,-76077980,0,200,200,0,101,110,100,101,100,63,0,2049,5153,3841,5274,2049,

                   3411,10,67898,67934,168,0,193486030,0,200,200,0,97,100,100,0,2049,67914,1,17,1,

                   5063,2049,66,10,67921,67959,168,0,-12645824,0,200,200,0,103,97,116,104,101,114,0,

                   2049,67877,1,17,1,67934,2049,66,10,67943,67983,168,0,256018261,0,200,200,0,99,121,

                   99,108,101,0,2049,13090,2049,2873,4,8,2049,3372,25,3,2049,67959,1,67983,7,10,

                   67827,68020,168,68166,-1658019367,68022,200,200,0,112,97,114,115,101,45,117,110,116,105,108,

                   0,2049,5525,113,45,115,0,1,68022,3,1793,68041,2049,5500,2049,5179,2049,67983,771,2049,

                   5017,10,1,68031,2049,5209,10,67999,68061,168,68166,272733106,68063,200,200,0,115,58,103,101,

                   116,0,2049,5525,45,115,0,1,68063,3,1793,68091,1793,68077,1,13,11,10,1,68073,

                   1793,68085,1,10,11,10,1,68081,2049,2923,22,10,1,68071,2049,68020,10,68046,68111,168,

                   68166,255552908,68113,200,200,0,99,108,101,97,114,0,2049,5525,45,0,1,68113,3,2049,

                   5525,92,94,91,50,74,92,94,91,48,59,48,72,0,1,68120,2049,9899,2049,12918,

                   10,68096,68152,180,68166,5861507,68154,200,200,0,47,47,0,2049,5525,45,0,1,68154,3,

                   2049,24514,1,13132,2049,4808,10,105,110,116,101,114,102,97,99,101,47,114,101,116,

                   114,111,45,117,110,105,120,46,114,101,116,114,111,0,68140,68210,156,0,72570505,0,

                   200,200,0,83,111,117,114,99,101,115,0,3,68461,68920,69218,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68193,

                   68354,168,0,159149617,0,200,200,0,107,110,111,119,110,63,0,2,1,68210,2049,10843,

                   10,68338,68375,168,0,262739357,0,200,200,0,105,110,100,101,120,0,1,68210,4,2049,

                   11579,1,68210,4,2049,11005,10,68360,68402,168,0,421984292,0,200,200,0,114,101,99,111,

                   114,100,0,2049,5557,2,1,68210,2049,4744,3841,68210,1,68210,17,16,10,1793,68459,2049,

                   24425,2049,68354,1,68375,1,68402,2049,66,1793,68437,1,202,1,2,17,8,10,1,68430,

                   2049,2889,2049,2100,2049,186,16,2049,2100,2049,198,3841,13770,8,2049,2100,2049,188,16,10,

                   1,68418,100,105,99,116,45,119,111,114,100,115,45,108,105,115,116,105,110,103,

                   46,102,111,114,116,104,0,68140,68503,168,68461,-1519205998,68505,200,200,0,100,58,119,111,

                   114,100,115,0,2049,5525,45,0,1,68505,3,1793,68519,2049,198,2049,12918,2049,12880,10,

                   1,68512,2049,10176,10,68486,68546,168,68461,1750461083,68548,200,200,0,100,58,119,111,114,100,

                   115,45,119,105,116,104,0,2049,5525,115,45,0,1,68548,3,2049,2585,2049,6805,1793,

                   68585,2049,198,2,2049,2585,2049,6473,1793,68574,2049,12918,2049,12880,10,1,68569,1793,68580,3,

                   10,1,68578,2049,66,10,1,68560,2049,10176,10,68524,68615,168,68461,-1509196721,0,200,200,0,

                   100,105,115,112,108,97,121,45,105,102,45,108,101,102,116,0,2,2049,2585,2049,

                   6743,1793,68627,2049,12918,2049,12880,10,1,68622,1793,68633,3,10,1,68631,2049,66,10,68524,

                   68670,168,68461,-1159574567,68672,200,200,0,100,58,119,111,114,100,115,45,98,101,103,105,

                   110,110,105,110,103,45,119,105,116,104,0,2049,5525,115,45,0,1,68672,3,2049,

                   2585,2049,6805,1793,68689,2049,198,2049,68615,10,1,68684,2049,10176,10,68638,68727,168,68461,-986950196,

                   68729,200,200,0,100,58,119,111,114,100,115,45,109,105,115,115,105,110,103,45,

                   100,101,116,97,105,108,115,0,2049,5525,45,0,1,68729,3,2049,5525,68,46,83,

                   116,97,99,107,58,0,1,68736,2049,12918,2049,12863,1793,68775,2,2049,190,15,2049,3470,

                   1793,68768,2049,198,2049,12918,2049,12880,10,1,68761,1,17,2049,66,10,1,68753,2049,10176,

                   2049,12863,2049,5525,65,46,83,116,97,99,107,58,0,1,68783,2049,12918,2049,12863,1793,

                   68822,2,2049,192,15,2049,3470,1793,68815,2049,198,2049,12918,2049,12880,10,1,68808,1,17,

                   2049,66,10,1,68800,2049,10176,2049,12863,2049,5525,70,46,83,116,97,99,107,58,0,

                   1,68830,2049,12918,2049,12863,1793,68869,2,2049,194,15,2049,3470,1793,68862,2049,198,2049,12918,

                   2049,12880,10,1,68855,1,17,2049,66,10,1,68847,2049,10176,2049,12863,2049,5525,68,101,

                   115,99,58,0,1,68877,2049,12918,2049,12863,1793,68913,2,2049,196,15,2049,3470,1793,68906,

                   2049,198,2049,12918,2049,12880,10,1,68899,1,17,2049,66,10,1,68891,2049,10176,2049,12863,

                   10,101,120,116,101,110,115,105,111,110,115,47,100,111,117,98,108,101,46,114,

                   101,116,114,111,0,68694,68964,168,68920,-1059603453,68966,200,200,0,100,111,117,98,108,101,

                   58,118,97,114,0,2049,5525,110,110,115,45,0,1,68966,3,2049,2695,4,2049,130,

                   2049,130,10,68944,69004,168,68920,1419216868,69006,200,200,0,100,111,117,98,108,101,58,102,

                   101,116,99,104,0,2049,5525,97,45,110,110,0,1,69006,3,2049,58,4,15,10,

                   68982,69041,168,68920,1435167943,69043,200,200,0,100,111,117,98,108,101,58,115,116,111,114,

                   101,0,2049,5525,110,110,97,45,0,1,69043,3,1,19,2049,2889,2049,61,16,10,

                   69019,69081,168,68920,1416012481,69083,200,200,0,100,111,117,98,108,101,58,99,111,110,115,

                   116,0,2049,5525,110,110,115,45,0,1,69083,3,2049,68964,1,69004,2049,10141,10,69059,

                   69119,168,68920,-607259883,69121,200,200,0,100,111,117,98,108,101,58,115,119,97,112,0,

                   2049,5525,110,110,109,109,45,109,109,110,110,0,1,69121,3,67503109,5,67503109,6,10,

                   69098,69159,168,68920,-1059622793,69161,200,200,0,100,111,117,98,108,101,58,100,105,112,0,

                   2049,5525,109,110,113,45,109,110,0,1,69161,3,67503109,67503109,5,5,8,6,6,10,

                   69139,69199,168,68920,-1059606458,69201,200,200,0,100,111,117,98,108,101,58,115,105,112,0,

                   2049,5525,109,110,113,45,109,110,0,1,69201,3,1,2873,2049,2889,2049,69159,10,101,

                   120,116,101,110,115,105,111,110,115,47,109,97,108,108,111,99,46,114,101,116,

                   114,111,0,69179,69262,168,69218,-386501686,0,200,200,0,109,101,109,58,105,110,118,111,

                   107,101,0,1,15,2049,12792,2049,12769,10,69242,0,156,69218,214053744,0,200,200,0,65,

                   76,76,79,67,0,69269,1,156,69218,2089080839,0,200,200,0,70,82,69,69,0,69284,

                   2,156,69218,235691186,0,200,200,0,83,84,79,82,69,0,69298,3,156,69218,219740111,0,

                   200,200,0,70,69,84,67,72,0,69313,4,156,69218,-868914953,0,200,200,0,82,69,

                   83,73,90,69,0,69179,69363,168,69218,369169257,69365,200,200,0,109,101,109,58,97,108,

                   108,111,99,0,2049,5525,110,45,45,97,0,1,69365,3,1,0,2049,69262,10,69344,

                   69397,168,69218,390806699,69399,200,200,0,109,101,109,58,115,116,111,114,101,0,2049,5525,

                   97,110,45,45,0,1,69399,3,1,2,2049,69262,10,69378,69431,168,69218,374855624,69433,200,

                   200,0,109,101,109,58,102,101,116,99,104,0,2049,5525,97,45,45,110,0,1,

                   69433,3,1,3,2049,69262,10,69412,69464,168,69218,1963630784,69466,200,200,0,109,101,109,58,

                   102,114,101,101,0,2049,5525,97,45,45,0,1,69466,3,1,1,2049,69262,10,69446,

                   69498,168,69218,-45070288,69500,200,200,0,109,101,109,58,114,101,115,105,122,101,0,2049,

                   5525,97,110,45,45,0,1,69500,3,1,4,2049,69262,10,69478,69532,168,69218,371289385,69534,

                   200,200,0,109,101,109,58,99,101,108,108,43,0,2049,5525,110,110,45,110,0,

                   1,69534,3,1,8,19,17,10,69513,69573,168,69218,84495120,69575,200,200,0,109,101,109,

                   58,102,101,116,99,104,45,100,111,117,98,108,101,0,2049,5525,110,45,110,110,

                   0,1,69575,3,2,1,1,2049,69532,15,5,2049,69431,6,10,69547,69620,168,69218,1277424275,

                   69622,200,200,0,109,101,109,58,115,116,111,114,101,45,100,111,117,98,108,101,

                   0,2049,5525,97,110,110,45,110,110,0,1,69622,3,5,5,2049,2873,1,1,2049,

                   69532,6,2049,69397,6,2049,69397,10,0 };

typedef struct NgaState NgaState;

typedef void (*Handler)(NgaState *);

struct NgaCore {

CELL sp, rp, ip; /* Stack & instruction pointers */

CELL active; /* Is core active? */

CELL u; /* Should next operation be */

                          /* unsigned?                    */

CELL data[STACK_DEPTH]; /* The data stack */

CELL address[ADDRESSES]; /* The address stack */

ifdef ENABLE_MULTICORE

CELL registers[24]; /* Internal Registers */

endif

};

struct NgaState {

/* System Memory */

CELL memory[IMAGE_SIZE + 1];

/* CPU Cores */

struct NgaCore cpu[CORES];

int active;

/* I/O Devices */

int devices;

Handler IO_deviceHandlers[MAX_DEVICES];

Handler IO_queryHandlers[MAX_DEVICES];

CELL Dictionary, interpret; /* Interfacing */

char string_data[8192];

ifdef ENABLE_FLOATS

double Floats[256], AFloats[256]; /* Floating Point */

CELL fsp, afsp;

endif

ifdef ENABLE_BLOCKS

char BlockFile[1025];

endif

ifdef ENABLE_ERROR

CELL ErrorHandlers[64];

endif

/* Scripting */

char **sys_argv;

int sys_argc;

char scripting_sources[64][8192];

char line[4096];

int current_source;

int perform_abort;

int interactive;

CELL currentLine;

CELL ignoreToEOL, ignoreToEOF;

/* Configuration of code & test fences for Unu */

char code_start[256], code_end[256];

char test_start[256], test_end[256];

int codeBlocks;

FILE *OpenFileHandles[MAX_OPEN_FILES];

};

define V void

define IO(name) void io_name(NgaState *); void query_name(NgaState *);

/* Function Prototypes ----------------------------------------------- */

V handle_error(NgaState *, CELL);

CELL stack_pop(NgaState *);

V stack_push(NgaState *, CELL);

CELL string_inject(NgaState *, char *, CELL);

char *string_extract(NgaState *, CELL);

V update_rx(NgaState *);

V include_file(NgaState *, char *, int);

V include_plain_file(NgaState *, char *, int);

V register_device(NgaState *, V *, V *);

IO(output)

IO(keyboard)

IO(filesystem)

IO(scripting)

IO(rng)

IO(unsigned)

ifdef ENABLE_UNIX

IO(unix)

endif

ifdef ENABLE_FLOATS

IO(floatingpoint)

endif

ifdef ENABLE_SOCKETS

IO(socket)

endif

ifdef ENABLE_MALLOC

ifdef BIT64

IO(malloc)

endif

endif

ifdef ENABLE_BLOCKS

IO(blocks)

endif

ifdef ENABLE_IOCTL

IO(ioctl)

endif

IO(image)

V load_embedded_image(NgaState *);

CELL load_image(NgaState *, char *);

V prepare_vm(NgaState *);

V process_opcode_bundle(NgaState *, CELL);

ifndef BRANCH_PREDICTION

V validate_opcode_bundle(NgaState *, CELL);

endif

ifdef NEEDS_STRL

size_t strlcat(char *dst, const char *src, size_t dsize);

size_t strlcpy(char *dst, const char *src, size_t dsize);

endif

V i_no(NgaState *); V i_li(NgaState *);

V i_du(NgaState *); V i_dr(NgaState *);

V i_sw(NgaState *); V i_pu(NgaState *);

V i_po(NgaState *); V i_ju(NgaState *);

V i_ca(NgaState *); V i_cc(NgaState *);

V i_re(NgaState *); V i_eq(NgaState *);

V i_ne(NgaState *); V i_lt(NgaState *);

V i_gt(NgaState *); V i_fe(NgaState *);

V i_st(NgaState *); V i_ad(NgaState *);

V i_su(NgaState *); V i_mu(NgaState *);

V i_di(NgaState *); V i_an(NgaState *);

V i_or(NgaState *); V i_xo(NgaState *);

V i_sh(NgaState *); V i_zr(NgaState *);

V i_ha(NgaState *); V i_ie(NgaState *);

V i_iq(NgaState *); V i_ii(NgaState *);

/* Image, Stack, and VM variables ------------------------------------ */

define TOS ACTIVE.data[ACTIVE.sp]

define NOS ACTIVE.data[ACTIVE.sp-1]

define TORS ACTIVE.address[ACTIVE.rp]

/* Global Variables -------------------------------------------------- */

int verbose;

ifndef BRANCH_PREDICTION

V guard(NgaState *vm, int n, int m, int diff) {

if (ACTIVE.sp < n) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[1] != 0) {

  handle_error(vm, 1);

}

else

printf("E: Data Stack Underflow");

ACTIVE.sp = 0;

return;

endif

}

if (((ACTIVE.sp + m) - n) > (STACK_DEPTH - 1)) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[2] != 0) {

  handle_error(vm, 2);

}

else

printf("E: Data Stack Overflow");

ACTIVE.sp = 0;

return;

endif

}

if (diff) {

if (ACTIVE.rp + diff < 0) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[3] != 0) {

  handle_error(vm, 3);

}

else

  return;

endif

}

if (ACTIVE.rp + diff > (ADDRESSES - 1)) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[1] != 4) {

  handle_error(vm, 4);

}

else

  return;

endif

}

}

}

else

V guard(NgaState *vm, int n, int m, int diff) {

if (unlikely(ACTIVE.sp < n)) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[1] != 0) {

  handle_error(vm, 1);

}

else

printf("E: Data Stack Underflow");

ACTIVE.sp = 0;

return;

endif

}

if (unlikely(((ACTIVE.sp + m) - n) > (STACK_DEPTH - 1))) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[2] != 0) {

  handle_error(vm, 2);

}

else

printf("E: Data Stack Overflow");

ACTIVE.sp = 0;

return;

endif

}

if (unlikely(ACTIVE.rp + diff < 0)) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[3] != 0) {

  handle_error(vm, 3);

}

else

  return;

endif

}

if (unlikely(ACTIVE.rp + diff > (ADDRESSES - 1))) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[1] != 4) {

  handle_error(vm, 4);

}

else

return;

endif

}

}

endif

ifdef ENABLE_IOCTL

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifdef ENABLE_IOCTL

include <sys/ioctl.h>

include <termios.h>

void ioctl_get_terminal_size(NgaState *vm) {

struct winsize size;

ioctl(STDOUT_FILENO, TIOCGWINSZ, &size);

stack_push(vm, size.ws_row);

stack_push(vm, size.ws_col);

}

void ioctl_set_character_breaking_mode(NgaState *vm) {

struct termios term;

tcgetattr(STDIN_FILENO, &term);

term.c_lflag &=(~ICANON & ECHO);

tcsetattr(STDIN_FILENO, TCSANOW, &term);

}

void ioctl_set_line_buffered_mode(NgaState *vm) {

struct termios term;

tcgetattr(STDIN_FILENO, &term);

term.c_lflag |= ICANON;

term.c_lflag |= ECHO;

tcsetattr(STDIN_FILENO, TCSANOW, &term);

}

struct termios savedTermState;

void ioctl_save_current_state(NgaState *vm) {

tcgetattr(STDIN_FILENO, &savedTermState);

}

void ioctl_restore_saved_state(NgaState *vm) {

tcsetattr(STDIN_FILENO, TCSANOW, &savedTermState);

}

Handler IOCTLActions[] = {

ioctl_get_terminal_size,

ioctl_set_character_breaking_mode,

ioctl_set_line_buffered_mode,

ioctl_save_current_state,

ioctl_restore_saved_state

};

V query_ioctl(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_IOCTL);

}

V io_ioctl(NgaState *vm) {

IOCTLActionsstack_pop(vm);

}

endif

endif

ifdef ENABLE_MALLOC

ifdef BIT64

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifdef ENABLE_MALLOC

ifdef BIT64

typedef union {

V* val;

struct {

CELL msw;

CELL lsw;

};

} double_cell;

V double_add(NgaState *vm) {

double_cell a;

double_cell b;

double_cell c;

b.msw = stack_pop(vm);

b.lsw = stack_pop(vm);

a.msw = stack_pop(vm);

a.lsw = stack_pop(vm);

}

V double_sub(NgaState *vm) {

}

V double_mul(NgaState *vm) {

}

V double_divmod(NgaState *vm) {

}

V malloc_allocate(NgaState *vm) {

stack_push(vm, (CELL)malloc(stack_pop(vm)));

}

V malloc_free(NgaState *vm) {

free((CELL*)stack_pop(vm));

}

V malloc_store(NgaState *vm) {

CELL value = stack_pop(vm);

double_cell addr;

*(CELL *) stack_pop(vm) = value;

}

V malloc_fetch(NgaState *vm) {

double_cell addr;

CELL value = *(CELL *)stack_pop(vm);

stack_push(vm, value);

}

V malloc_realloc(NgaState *vm) {

CELL bytes = stack_pop(vm);

CELL* addr1;

addr1 = (CELL*)stack_pop(vm);

CELL* addr2;

addr2 = (CELL*)realloc(addr1, bytes);

stack_push(vm, (CELL)addr2);

}

V query_malloc(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_MALLOC);

}

V io_malloc(NgaState *vm) {

int i = stack_pop(vm);

switch (i) {

case 0: malloc_allocate(vm); return;

case 1: malloc_free(vm); return;

case 2: malloc_store(vm); return;

case 3: malloc_fetch(vm); return;

case 4: malloc_realloc(vm); return;

}

stack_push(vm, -1);

}

endif

endif

endif

endif

ifdef ENABLE_ERROR

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

/*

| 001 | Data Stack Underflow |

| 002 | Data Stack Overflow |

| 003 | Address Stack Underflow |

| 004 | Address Stack Overflow |

| 005 | Invalid Memory Access |

| 006 | Division by Zero |

ifdef ENABLE_ERROR

V execute(NgaState *vm, CELL cell);

V handle_error(NgaState *vm, CELL error) {

CELL saved_ip = vm->cpu[vm->active].ip;

if (vm->ErrorHandlers[error] != 0) {

printf("\nHandling %lld\n", (long long)error);

execute(vm, vm->ErrorHandlers[error]);

}

vm->cpu[vm->active].ip = saved_ip;

}

V register_error_handler(NgaState *vm) {

CELL ErrorID = stack_pop(vm);

CELL ErrorHandler = stack_pop(vm);

vm->ErrorHandlers[ErrorID] = ErrorHandler;

printf("Assigned %lld to %lld\n", (long long)ErrorID, (long long)ErrorHandler);

}

V io_error(NgaState *vm) {

switch (stack_pop(vm)) {

case 0: register_error_handler(vm); break;

default: break;

}

}

V query_error(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_ERROR);

}

endif

endif

ifdef ENABLE_BLOCKS

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

V read_block(NgaState *vm) {

CELL buffer = stack_pop(vm);

CELL block = stack_pop(vm);

int32_t m[1024];

int fp = open(vm->BlockFile, O_RDONLY, 0666);

lseek(fp, 4096 * block, SEEK_SET);

read(fp, m, 4096);

for (int i = 0; i < 1024; i++) {

vm->memory[buffer + i] = (CELL)m[i];

}

close(fp);

}

V write_block(NgaState *vm) {

CELL buffer = stack_pop(vm);

CELL block = stack_pop(vm);

int32_t m[1024];

int fp = open(vm->BlockFile, O_WRONLY, 0666);

lseek(fp, 4096 * block, SEEK_SET);

for (int i = 0; i < 1024; i++) {

m[i] = (int32_t)vm->memory[buffer + i];

}

write(fp, m, 4096);

close(fp);

}

V set_block_file(NgaState *vm) {

CELL buffer = stack_pop(vm);

strlcpy(vm->BlockFile, string_extract(vm, buffer), 1024);

}

V io_blocks(NgaState *vm) {

switch (stack_pop(vm)) {

case 0: read_block(vm); break;

case 1: write_block(vm); break;

case 2: set_block_file(vm); break;

}

}

V query_blocks(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_BLOCKS);

}

endif

ifdef ENABLE_FILES

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

V utf32_to_utf8(uint32_t, unsigned char*, int*);

int fread_character(FILE *);

/*---------------------------------------------------------------------

I keep an array of file handles. RETRO will use the index number as

its representation of the file.

---------------------------------------------------------------------*/

/*---------------------------------------------------------------------

files_get_handle() returns a file handle, or 0 if there are no

available handle slots in the array.

---------------------------------------------------------------------*/

CELL files_get_handle(NgaState *vm) {

for(CELL i = 1; i < MAX_OPEN_FILES; i++) {

if (vm->OpenFileHandles[i] == 0) { return i; }

}

return 0;

}

/*---------------------------------------------------------------------

file_open() opens a file. This pulls from the RETRO data stack:

Modes are:

| Mode | Corresponds To | Description |

| ---- | -------------- | -------------------- |

| 0 | rb | Open for reading |

| 1 | w | Open for writing |

| 2 | a | Open for append |

| 3 | rb+ | Open for read/update |

The file name should be a NULL terminated string. This will attempt

to open the requested file and will return a handle (index number

into the OpenFileHandles array).

---------------------------------------------------------------------*/

V file_open(NgaState *vm) {

CELL slot = files_get_handle(vm);

CELL mode = stack_pop(vm);

CELL name = stack_pop(vm);

char *modes[] = {"rb", "w", "a", "rb+"};

char *request = string_extract(vm, name);

if (slot > 0) {

vm->OpenFileHandles[slot] = fopen(request, modes[mode]);

}

if (vm->OpenFileHandles[slot] == NULL) {

vm->OpenFileHandles[slot] = 0;

slot = 0;

}

stack_push(vm, slot);

// FILE *file = (slot > 0) ? fopen(request, modes[mode]) : NULL;

// vm->OpenFileHandles[slot] = (file != NULL) ? file : 0;

// stack_push(vm, slot);

}

/*---------------------------------------------------------------------

file_read() reads a byte from a file. This takes a file pointer

from the stack and pushes the character that was read to the stack.

---------------------------------------------------------------------*/

V file_read(NgaState *vm) {

CELL slot = stack_pop(vm);

FILE *file = vm->OpenFileHandles[slot];

if (slot <= 0 || slot > MAX_OPEN_FILES || file == 0) {

printf("\nERROR (nga/file_read): Invalid file handle\n");

exit(1);

}

stack_push(vm, feof(file) ? 0 : fgetc(file));

}

/*--------------------------------------------------------------

file_write() writes a byte to a file. This takes a file

pointer (TOS) and a byte (NOS) from the stack. It does not

return any values on the stack.

------------------------------------------------------------*/

V file_write(NgaState *vm) {

CELL slot = stack_pop(vm);

FILE *file = vm->OpenFileHandles[slot];

if (slot <= 0 || slot > MAX_OPEN_FILES || file == 0) {

printf("\nERROR (nga/file_write): Invalid file handle\n");

exit(1);

}

fputc(stack_pop(vm), file);

}

/*--------------------------------------------------------------

file_close() closes a file. This takes a file handle from

the stack and does not return anything on the stack.

------------------------------------------------------------*/

V file_close(NgaState *vm) {

CELL slot = stack_pop(vm);

FILE *file = vm->OpenFileHandles[slot];

if (slot <= 0 || slot > MAX_OPEN_FILES || file == 0) {

printf("\nERROR (nga/file_close): Invalid file handle\n");

exit(1);

}

fclose(file);

vm->OpenFileHandles[slot] = 0;

}

/*--------------------------------------------------------------

file_get_position() provides the current index into a file.

This takes the file handle from the stack and returns the

offset.

------------------------------------------------------------*/

V file_get_position(NgaState *vm) {

CELL slot = stack_pop(vm);

if (slot <= 0 || slot > MAX_OPEN_FILES || vm->OpenFileHandles[slot] == 0) {

printf("\nERROR (nga/file_get_position): Invalid file handle\n");

exit(1);

}

stack_push(vm, (CELL) ftell(vm->OpenFileHandles[slot]));

}

/*--------------------------------------------------------------

file_set_position() changes the current index into a file to

the specified one. This takes a file handle (TOS) and new

offset (NOS) from the stack.

------------------------------------------------------------*/

V file_set_position(NgaState *vm) {

CELL slot, pos;

slot = stack_pop(vm);

pos = stack_pop(vm);

if (slot <= 0 || slot > MAX_OPEN_FILES || vm->OpenFileHandles[slot] == 0) {

printf("\nERROR (nga/file_set_position): Invalid file handle\n");

exit(1);

}

fseek(vm->OpenFileHandles[slot], pos, SEEK_SET);

}

/*--------------------------------------------------------------

file_get_size() returns the size of a file, or 0 if empty.

If the file is a directory, it returns -1. It takes a file

handle from the stack.

------------------------------------------------------------*/

V file_get_size(NgaState *vm) {

CELL slot, current, r, size;

struct stat buffer;

slot = stack_pop(vm);

if (slot <= 0 || slot > MAX_OPEN_FILES || vm->OpenFileHandles[slot] == 0) {

printf("\nERROR (nga/file_get_size): Invalid file handle\n");

exit(1);

}

fstat(fileno(vm->OpenFileHandles[slot]), &buffer);

if (!S_ISDIR(buffer.st_mode)) {

current = ftell(vm->OpenFileHandles[slot]);

r = fseek(vm->OpenFileHandles[slot], 0, SEEK_END);

size = ftell(vm->OpenFileHandles[slot]);

fseek(vm->OpenFileHandles[slot], current, SEEK_SET);

} else {

r = -1;

size = 0;

}

stack_push(vm, (r == 0) ? size : 0);

}

/*--------------------------------------------------------------

file_delete() removes a file. This takes a file name (as a

string) from the stack.

------------------------------------------------------------*/

V file_delete(NgaState *vm) {

char *request;

CELL name = stack_pop(vm);

request = string_extract(vm, name);

unlink(request);

}

/*--------------------------------------------------------------

file_flush() flushes any pending writes to disk. This takes

a file handle from the stack.

------------------------------------------------------------*/

V file_flush(NgaState *vm) {

CELL slot;

slot = stack_pop(vm);

if (slot <= 0 || slot > MAX_OPEN_FILES || vm->OpenFileHandles[slot] == 0) {

printf("\nERROR (nga/file_flush): Invalid file handle\n");

exit(1);

}

fflush(vm->OpenFileHandles[slot]);

}

char file_bytes[32769];

V file_read_bytes(NgaState *vm) {

CELL slot = stack_pop(vm);

CELL size = stack_pop(vm);

CELL dest = stack_pop(vm);

CELL z = fread((char *)file_bytes, 1, size, vm->OpenFileHandles[slot]);

for (CELL i = 0; i < size; i++) {

CELL x = file_bytes[i];

vm->memory[dest + i] = x;

}

stack_push(vm, z);

}

V file_write_bytes(NgaState *vm) {

CELL slot = stack_pop(vm);

CELL size = stack_pop(vm);

CELL src = stack_pop(vm);

for (CELL i = 0; i < size; i++) {

char x = vm->memory[src + i];

file_bytes[i] = x;

}

CELL z = fwrite(&file_bytes, 1, size, vm->OpenFileHandles[slot]);

stack_push(vm, z);

}

V file_read_character(NgaState *vm) {

CELL c;

CELL slot = stack_pop(vm);

if (slot <= 0 || slot > MAX_OPEN_FILES || vm->OpenFileHandles[slot] == 0) {

printf("\nERROR (nga/file_read): Invalid file handle\n");

exit(1);

}

c = fread_character(vm->OpenFileHandles[slot]);

stack_push(vm, feof(vm->OpenFileHandles[slot]) ? 0 : c);

}

V file_write_character(NgaState *vm) {

unsigned char utf8_bytes[4];

int num_bytes;

CELL slot, c, r;

utf32_to_utf8(stack_pop(vm), utf8_bytes, &num_bytes);

slot = stack_pop(vm);

if (slot <= 0 || slot > MAX_OPEN_FILES || vm->OpenFileHandles[slot] == 0) {

printf("\nERROR (nga/file_write): Invalid file handle\n");

exit(1);

}

r = fwrite(&utf8_bytes, num_bytes, 1, vm->OpenFileHandles[slot]);

}

V file_read_line(NgaState *vm) {

CELL slot = stack_pop(vm);

CELL targ = stack_pop(vm);

CELL c;

if (slot <= 0 || slot > MAX_OPEN_FILES || vm->OpenFileHandles[slot] == 0) {

printf("\nERROR (nga/file_read): Invalid file handle\n");

exit(1);

}

c = fread_character(vm->OpenFileHandles[slot]);

vm->memory[targ] = c;

targ++;

while (c != 10 && c != 13 && c != 0) {

c = fread_character(vm->OpenFileHandles[slot]);

vm->memory[targ] = c;

targ++;

}

vm->memory[targ - 1] = 0;

}

V file_write_line(NgaState *vm) {

}

Handler FileActions[] = {

file_open, file_close,

file_read, file_write,

file_get_position, file_set_position,

file_get_size, file_delete,

file_flush, file_read_bytes,

file_write_bytes,

file_read_character,file_write_character,

file_read_line, file_write_line,

};

V query_filesystem(NgaState *vm) {

stack_push(vm, 3);

stack_push(vm, DEVICE_FILES);

}

V io_filesystem(NgaState *vm) {

FileActionsstack_pop(vm);

}

endif

ifdef ENABLE_MULTICORE

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

/* Multi Core Support ------------------------------------------------ */

ifdef ENABLE_MULTICORE

void init_core(NgaState *vm, CELL x) {

int y;

vm->cpu[x].sp = 0;

vm->cpu[x].rp = 0;

vm->cpu[x].ip = 0;

vm->cpu[x].active = 0;

vm->cpu[x].u = 0;

for (y = 0; y < STACK_DEPTH; y++) { vm->cpu[x].data[y] = 0; };

for (y = 0; y < ADDRESSES; y++) { vm->cpu[x].address[y] = 0; };

for (y = 0; y < 24; y++) { vm->cpu[x].registers[y] = 0; };

}

void start_core(NgaState *vm, CELL x, CELL ip) {

vm->cpu[x].ip = ip;

vm->cpu[x].rp = 1;

vm->cpu[x].active = -1;

}

void pause_core(NgaState *vm, CELL x) {

vm->cpu[x].active = 0;

}

void resume_core(NgaState *vm, CELL x) {

vm->cpu[x].active = -1;

}

void switch_core(NgaState *vm) {

vm->active += 1;

if (vm->active >= CORES) { vm->active = 0; }

if (!vm->cpu[vm->active].active) { switch_core(vm); }

}

void io_multicore(NgaState *vm) {

int x, y, z;

x = stack_pop(vm);

switch(x) {

case 0: y = stack_pop(vm);

        init_core(vm, y);

        break;

case 1: y = stack_pop(vm);

        z = stack_pop(vm);

        start_core(vm, y, z);

        break;

case 2: y = stack_pop(vm);

        pause_core(vm, y);

        break;

case 3: pause_core(vm, vm->active);

        break;

case 4: y = stack_pop(vm);

        resume_core(vm, y);

        break;

case 5: y = stack_pop(vm);

        stack_push(vm, vm->cpu[vm->active].registers[y]);

        break;

case 6: y = stack_pop(vm);

        z = stack_pop(vm);

        vm->cpu[vm->active].registers[y] = z;

        break;

}

}

void query_multicore(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_MULTICORE);

}

endif

endif

ifdef ENABLE_FFI

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifdef ENABLE_FFI

include <dlfcn.h>

typedef void (*External)(void *);

V *handles[32];

External funcs[32000];

int nlibs, nffi;

V open_library(NgaState *vm) {

handles[nlibs] = dlopen(string_extract(vm, stack_pop(vm)), RTLD_LAZY);

stack_push(vm, nlibs);

nlibs++;

}

V map_symbol(NgaState *vm) {

int h;

h = stack_pop(vm);

char *s = string_extract(vm, stack_pop(vm));

funcs[nffi] = dlsym(handles[h], s);

stack_push(vm, nffi);

nffi++;

}

V invoke(NgaState *vm) {

funcsstack_pop(vm);

}

V io_ffi(NgaState *vm) {

switch (stack_pop(vm)) {

case 0: open_library(vm); break;

case 1: map_symbol(vm); break;

case 2: invoke(vm); break;

}

}

V query_ffi(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_FFI);

}

endif

endif

ifdef ENABLE_FLOATS

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifdef ENABLE_FLOATS

include <math.h>

/* Floating Point ---------------------------------------------------- */

void float_guard(NgaState *vm) {

if (vm->fsp < 0 || vm->fsp > 255) {

printf("\nERROR (nga/float_guard): Float Stack Limits Exceeded!\n");

printf("At %lld, fsp = %lld\n", (long long)vm->cpu[vm->active].ip, (long long)vm->fsp);

exit(1);

}

if (vm->afsp < 0 || vm->afsp > 255) {

printf("\nERROR (nga/float_guard): Alternate Float Stack Limits Exceeded!\n");

printf("At %lld, afsp = %lld\n", (long long)vm->cpu[vm->active].ip, (long long)vm->afsp);

exit(1);

}

}

/*---------------------------------------------------------------------

The first two functions push a float to the stack and pop a value off

the stack.

---------------------------------------------------------------------*/

void float_push(NgaState *vm, double value) {

vm->fsp++;

float_guard(vm);

vm->Floats[vm->fsp] = value;

}

double float_pop(NgaState *vm) {

vm->fsp--;

float_guard(vm);

return vm->Floats[vm->fsp + 1];

}

void float_to_alt(NgaState *vm) {

vm->afsp++;

float_guard(vm);

vm->AFloats[vm->afsp] = float_pop(vm);

}

void float_from_alt(NgaState *vm) {

float_push(vm, vm->AFloats[vm->afsp]);

vm->afsp--;

float_guard(vm);

}

/*---------------------------------------------------------------------

RETRO operates on 32-bit signed integer values. This function just

pops a number from the data stack, casts it to a float, and pushes it

to the float stack.

---------------------------------------------------------------------*/

void float_from_number(NgaState *vm) {

float_push(vm, (double)stack_pop(vm));

}

/*---------------------------------------------------------------------

To get a float from a string in the image, I provide this function.

I cheat: using atof() takes care of the details, so I don't have

to.

---------------------------------------------------------------------*/

void float_from_string(NgaState *vm) {

float_push(vm, atof(string_extract(vm, stack_pop(vm))));

}

/*---------------------------------------------------------------------

Converting a floating point into a string is slightly more work. Here

I pass it off to snprintf() to deal with.

---------------------------------------------------------------------*/

void float_to_string(NgaState *vm) {

snprintf(vm->string_data, 8192, "%f", float_pop(vm));

string_inject(vm, vm->string_data, stack_pop(vm));

}

/*---------------------------------------------------------------------

Converting a floating point back into a standard number requires a

little care due to the signed nature. This makes adjustments for the

max & min value, and then casts (rounding) the float back to a normal

number.

---------------------------------------------------------------------*/

void float_to_number(NgaState *vm) {

double a = float_pop(vm);

if (a > 2147483647)

a = 2147483647;

if (a < -2147483648)

a = -2147483648;

stack_push(vm, (CELL)round(a));

}

void float_add(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

float_push(vm, a+b);

}

void float_sub(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

float_push(vm, b-a);

}

void float_mul(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

float_push(vm, a*b);

}

void float_div(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

float_push(vm, b/a);

}

void float_floor(NgaState *vm) {

float_push(vm, floor(float_pop(vm)));

}

void float_ceil(NgaState *vm) {

float_push(vm, ceil(float_pop(vm)));

}

void float_eq(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

if (a == b)

stack_push(vm, -1);

else

stack_push(vm, 0);

}

void float_neq(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

if (a != b)

stack_push(vm, -1);

else

stack_push(vm, 0);

}

void float_lt(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

if (b < a)

stack_push(vm, -1);

else

stack_push(vm, 0);

}

void float_gt(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

if (b > a)

stack_push(vm, -1);

else

stack_push(vm, 0);

}

void float_depth(NgaState *vm) {

stack_push(vm, vm->fsp);

}

void float_adepth(NgaState *vm) {

stack_push(vm, vm->afsp);

}

void float_dup(NgaState *vm) {

double a = float_pop(vm);

float_push(vm, a);

float_push(vm, a);

}

void float_drop(NgaState *vm) {

float_pop(vm);

}

void float_swap(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

float_push(vm, a);

float_push(vm, b);

}

void float_log(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

float_push(vm, log(b) / log(a));

}

void float_sqrt(NgaState *vm) {

float_push(vm, sqrt(float_pop(vm)));

}

void float_pow(NgaState *vm) {

double a = float_pop(vm);

double b = float_pop(vm);

float_push(vm, pow(b, a));

}

void float_sin(NgaState *vm) {

float_push(vm, sin(float_pop(vm)));

}

void float_cos(NgaState *vm) {

float_push(vm, cos(float_pop(vm)));

}

void float_tan(NgaState *vm) {

float_push(vm, tan(float_pop(vm)));

}

void float_asin(NgaState *vm) {

float_push(vm, asin(float_pop(vm)));

}

void float_acos(NgaState *vm) {

float_push(vm, acos(float_pop(vm)));

}

void float_atan(NgaState *vm) {

float_push(vm, atan(float_pop(vm)));

}

/*---------------------------------------------------------------------

With this finally done, I implement the FPU instructions.

---------------------------------------------------------------------*/

Handler FloatHandlers[] = {

float_from_number, float_from_string,

float_to_number, float_to_string,

float_add, float_sub, float_mul, float_div,

float_floor, float_ceil, float_sqrt, float_eq,

float_neq, float_lt, float_gt, float_depth,

float_dup, float_drop, float_swap, float_log,

float_pow, float_sin, float_tan, float_cos,

float_asin, float_acos, float_atan, float_to_alt,

float_from_alt, float_adepth,

};

void query_floatingpoint(NgaState *vm) {

stack_push(vm, 1);

stack_push(vm, DEVICE_FLOATS);

}

void io_floatingpoint(NgaState *vm) {

FloatHandlersstack_pop(vm);

}

endif

endif

ifdef ENABLE_CLOCK

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifdef ENABLE_CLOCK

time_t current_time;

V clock_time(NgaState *vm) {

stack_push(vm, (CELL)time(NULL));

}

V clock_day(NgaState *vm) {

stack_push(vm, (CELL)localtime(&current_time)->tm_mday);

}

V clock_month(NgaState *vm) {

stack_push(vm, (CELL)localtime(&current_time)->tm_mon + 1);

}

V clock_year(NgaState *vm) {

stack_push(vm, (CELL)localtime(&current_time)->tm_year + 1900);

}

V clock_hour(NgaState *vm) {

stack_push(vm, (CELL)localtime(&current_time)->tm_hour);

}

V clock_minute(NgaState *vm) {

stack_push(vm, (CELL)localtime(&current_time)->tm_min);

}

V clock_second(NgaState *vm) {

stack_push(vm, (CELL)localtime(&current_time)->tm_sec);

}

V clock_day_utc(NgaState *vm) {

stack_push(vm, (CELL)gmtime(&current_time)->tm_mday);

}

V clock_month_utc(NgaState *vm) {

stack_push(vm, (CELL)gmtime(&current_time)->tm_mon + 1);

}

V clock_year_utc(NgaState *vm) {

stack_push(vm, (CELL)gmtime(&current_time)->tm_year + 1900);

}

V clock_hour_utc(NgaState *vm) {

stack_push(vm, (CELL)gmtime(&current_time)->tm_hour);

}

V clock_minute_utc(NgaState *vm) {

stack_push(vm, (CELL)gmtime(&current_time)->tm_min);

}

V clock_second_utc(NgaState *vm) {

stack_push(vm, (CELL)gmtime(&current_time)->tm_sec);

}

Handler ClockActions[] = {

clock_time, clock_day, clock_month,

clock_year, clock_hour, clock_minute,

clock_second,

clock_day_utc, clock_month_utc, clock_year_utc,

clock_hour_utc, clock_minute_utc, clock_second_utc

};

V query_clock(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_CLOCK);

}

V io_clock(NgaState *vm) {

current_time = time(NULL);

ClockActionsstack_pop(vm);

}

endif

endif

ifdef ENABLE_RNG

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifdef ENABLE_RNG

V io_rng(NgaState *vm) {

int64_t r = 0;

char buffer[8];

int i;

ssize_t ignore;

int fd = open("/dev/urandom", O_RDONLY);

ignore = read(fd, buffer, 8);

close(fd);

for(i = 0; i < 8; ++i) {

r = r << 8;

r += ((int64_t)buffer[i] & 0xFF);

}

ifndef BIT64

stack_push(vm, (CELL)abs((CELL)r));

else

stack_push(vm, (CELL)llabs((CELL)r));

endif

}

V query_rng(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_RNG);

}

endif

endif

ifdef ENABLE_SOCKETS

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifdef ENABLE_SOCKETS

include <arpa/inet.h>

include <netdb.h>

include <netinet/in.h>

include <sys/socket.h>

/*---------------------------------------------------------------------

BSD Sockets

---------------------------------------------------------------------*/

int SocketID[16];

struct sockaddr_in Sockets[16];

struct addrinfo hints, *res;

V socket_getaddrinfo(NgaState *vm) {

char host[1025], port[6];

strlcpy(port, string_extract(vm, stack_pop(vm)), 5);

strlcpy(host, string_extract(vm, stack_pop(vm)), 1024);

getaddrinfo(host, port, &hints, &res);

}

V socket_get_host(NgaState *vm) {

struct hostent *hp;

struct in_addr **addr_list;

hp = gethostbyname(string_extract(vm, stack_pop(vm)));

if (hp == NULL) {

vm->memory[stack_pop(vm)] = 0;

return;

}

addr_list = (struct in_addr **)hp->h_addr_list;

string_inject(vm, inet_ntoa(*addr_list[0]), stack_pop(vm));

}

V socket_create(NgaState *vm) {

int i;

int sock = socket(PF_INET, SOCK_STREAM, 0);

for (i = 0; i < 16; i++) {

if (SocketID[i] == 0 && sock != 0) {

  SocketID[i] = sock;

  stack_push(vm, (CELL)i);

  sock = 0;

}

}

}

V socket_bind(NgaState *vm) {

int sock, port;

memset(&hints, 0, sizeof hints);

hints.ai_family = AF_UNSPEC;

hints.ai_socktype = SOCK_STREAM;

hints.ai_flags = AI_PASSIVE;

sock = stack_pop(vm);

port = stack_pop(vm);

getaddrinfo(NULL, string_extract(vm, port), &hints, &res);

stack_push(vm, (CELL) bind(SocketID[sock], res->ai_addr, res->ai_addrlen));

stack_push(vm, errno);

}

V socket_listen(NgaState *vm) {

int sock = stack_pop(vm);

int backlog = stack_pop(vm);

stack_push(vm, listen(SocketID[sock], backlog));

stack_push(vm, errno);

}

V socket_accept(NgaState *vm) {

int i;

int sock = stack_pop(vm);

struct sockaddr_storage their_addr;

socklen_t addr_size = sizeof their_addr;

int new_fd = accept(SocketID[sock], (struct sockaddr *)&their_addr, &addr_size);

for (i = 0; i < 16; i++) {

if (SocketID[i] == 0 && new_fd != 0) {

  SocketID[i] = new_fd;

  stack_push(vm, (CELL)i);

  new_fd = 0;

}

}

stack_push(vm, errno);

}

V socket_connect(NgaState *vm) {

stack_push(vm, (CELL)connect(SocketID[stack_pop(vm)], res->ai_addr, res->ai_addrlen));

stack_push(vm, errno);

}

V socket_send(NgaState *vm) {

int sock = stack_pop(vm);

char *buf = string_extract(vm, stack_pop(vm));

stack_push(vm, send(SocketID[sock], buf, strlen(buf), 0));

stack_push(vm, errno);

}

V socket_recv(NgaState *vm) {

char buf[8193];

int sock = stack_pop(vm);

int limit = stack_pop(vm);

int dest = stack_pop(vm);

int len = recv(SocketID[sock], buf, limit, 0);

if (len > 0) buf[len] = '\0';

if (len > 0) string_inject(vm, buf, dest);

stack_push(vm, len);

stack_push(vm, errno);

}

V socket_close(NgaState *vm) {

int sock = stack_pop(vm);

close(SocketID[sock]);

SocketID[sock] = 0;

}

Handler SocketActions[] = {

socket_get_host,

socket_create, socket_bind, socket_listen,

socket_accept, socket_connect, socket_send,

socket_recv, socket_close, socket_getaddrinfo

};

V io_socket(NgaState *vm) {

SocketActionsstack_pop(vm);

}

V query_socket(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_SOCKETS);

}

endif

endif

ifdef ENABLE_UNIX

/**************************************************************

            _              __            _   _

   _ __ ___| |_ _ __ ___  / _| ___  _ __| |_| |__

  | '__/ _ \ __| '__/ _ \| |_ / _ \| '__| __| '_ \

  | | |  __/ |_| | | (_) |  _| (_) | |  | |_| | | |

  |_|  \___|\__|_|  \___/|_|  \___/|_|   \__|_| |_|

                                            for nga

  (c) Charles Childers, Luke Parrish, Marc Simpsonn,

      Jay Skeer, Kenneth Keating

ifdef ENABLE_UNIX

include <sys/wait.h>

include <unistd.h>

/*--------------------------------------------------------------

unix_open_pipe() is like file_open(), but for pipes. This

pulls from the data stack:

Modes are:

| Mode | Corresponds To | Description |

| ---- | -------------- | -------------------- |

| 0 | r | Open for reading |

| 1 | w | Open for writing |

| 3 | r+ | Open for read/update |

The file name should be a NULL terminated string. This will

attempt to open the requested file and will return a handle

(index number into the OpenFileHandles array).

Once opened, you can use the standard file words to read/write

to the process.

------------------------------------------------------------*/

V unix_open_pipe(NgaState *vm) {

CELL slot, mode, name;

char *request;

const char *modes[] = {"r", "w", "", "r+"};

slot = files_get_handle(vm);

mode = stack_pop(vm);

name = stack_pop(vm);

request = string_extract(vm, name);

if (slot > 0) {

vm->OpenFileHandles[slot] = popen(request, modes[mode]);

}

if (vm->OpenFileHandles[slot] == NULL) {

vm->OpenFileHandles[slot] = 0;

slot = 0;

}

stack_push(vm, slot);

}

V unix_close_pipe(NgaState *vm) {

pclose(vm->OpenFileHandles[TOS]);

vm->OpenFileHandles[TOS] = 0;

stack_pop(vm);

}

V unix_system(NgaState *vm) {

int ignore = 0;

ignore = system(string_extract(vm, stack_pop(vm)));

}

V unix_fork(NgaState *vm) {

stack_push(vm, fork());

}

V unix_run_external(NgaState *vm) {

char *line, *args[128];

int i, status;

pid_t pid;

char **argv = args;

line = string_extract(vm, stack_pop(vm));

for(i = 0; i < 128; i++)

args[i] = 0;

while (*line != '\0') {

while (*line == ' ' || *line == '\t' || *line == '\n')

  *line++ = '\0';

*argv++ = line;

while (*line != '\0' && *line != ' ' && *line != '\t' && *line != '\n')

  line++;

}

if ((pid = fork()) < 0) {

printf("*** ERROR: forking child process failed\n");

exit(1);

}

else if (pid == 0) {

int e = execvp(*args, args);

if (e < 0) {

  printf("*** ERROR: exec failed with %d\n", e);

  exit(1);

}

} else {

while (wait(&status) != pid)

;

}

}

/*--------------------------------------------------------------

UNIX provides execl to execute a file, with various forms

for arguments provided.

Retro wraps this in several functions, one for each number of

passed arguments. See the Glossary for details on what each

takes from the stack. Each of these will return the error code

if the execution fails.

------------------------------------------------------------*/

V unix_exec0(NgaState *vm) {

char path[1025];

strlcpy(path, string_extract(vm, stack_pop(vm)), 1024);

execl(path, path, (char *)0);

stack_push(vm, errno);

}

V unix_exec1(NgaState *vm) {

char path[1025];

char arg0[1025];

strlcpy(arg0, string_extract(vm, stack_pop(vm)), 1024);

strlcpy(path, string_extract(vm, stack_pop(vm)), 1024);

execl(path, path, arg0, (char *)0);

stack_push(vm, errno);

}

V unix_exec2(NgaState *vm) {

char path[1025];

char arg0[1025], arg1[1025];

strlcpy(arg1, string_extract(vm, stack_pop(vm)), 1024);

strlcpy(arg0, string_extract(vm, stack_pop(vm)), 1024);

strlcpy(path, string_extract(vm, stack_pop(vm)), 1024);

execl(path, path, arg0, arg1, (char *)0);

stack_push(vm, errno);

}

V unix_exec3(NgaState *vm) {

char path[1025];

char arg0[1025], arg1[1025], arg2[1025];

strlcpy(arg2, string_extract(vm, stack_pop(vm)), 1024);

strlcpy(arg1, string_extract(vm, stack_pop(vm)), 1024);

strlcpy(arg0, string_extract(vm, stack_pop(vm)), 1024);

strlcpy(path, string_extract(vm, stack_pop(vm)), 1024);

execl(path, path, arg0, arg1, arg2, (char *)0);

stack_push(vm, errno);

}

V unix_exit(NgaState *vm) { exit(stack_pop(vm)); }

V unix_getpid(NgaState *vm) { stack_push(vm, getpid()); }

V unix_wait(NgaState *vm) { int a; stack_push(vm, wait(&a)); }

V unix_kill(NgaState *vm) {

CELL a = stack_pop(vm);

kill(stack_pop(vm), a);

}

V unix_write(NgaState *vm) {

ssize_t ignore;

CELL c = stack_pop(vm);

CELL b = stack_pop(vm);

CELL a = stack_pop(vm);

ignore = write(fileno(vm->OpenFileHandles[c]), string_extract(vm, a), b);

}

V unix_chdir(NgaState *vm) {

int ignore = chdir(string_extract(vm, stack_pop(vm)));

}

V unix_getenv(NgaState *vm) {

CELL a = stack_pop(vm);

CELL b = stack_pop(vm);

string_inject(vm, getenv(string_extract(vm, b)), a);

}

V unix_putenv(NgaState *vm) {

putenv(string_extract(vm, stack_pop(vm)));

}

V unix_sleep(NgaState *vm) { sleep(stack_pop(vm)); }

Handler UnixActions[] = {

unix_system, unix_fork, unix_exec0, unix_exec1,

unix_exec2, unix_exec3, unix_exit, unix_getpid,

unix_wait, unix_kill, unix_open_pipe, unix_close_pipe,

unix_write, unix_chdir, unix_getenv, unix_putenv,

unix_sleep, unix_run_external

};

V query_unix(NgaState *vm) {

stack_push(vm, 3);

stack_push(vm, DEVICE_UNIX);

}

V io_unix(NgaState *vm) {

UnixActionsstack_pop(vm);

}

endif

endif

/*---------------------------------------------------------------------

Now on to I/O and extensions!

---------------------------------------------------------------------*/

V display_utf8(const unsigned char* utf8_bytes, int num_bytes) {

if (write(STDOUT_FILENO, utf8_bytes, num_bytes) == -1) {

    perror("Error writing to /dev/stdout");

}

}

V utf32_to_utf8(uint32_t utf32_char, unsigned char* utf8_bytes, int* num_bytes) {

if (utf32_char < 0x80) {

    utf8_bytes[0] = (unsigned char)utf32_char;

    *num_bytes = 1;

} else if (utf32_char < 0x800) {

    utf8_bytes[0] = (unsigned char)(0xC0 | (utf32_char >> 6));

    utf8_bytes[1] = (unsigned char)(0x80 | (utf32_char & 0x3F));

    *num_bytes = 2;

} else if (utf32_char < 0x10000) {

    utf8_bytes[0] = (unsigned char)(0xE0 | (utf32_char >> 12));

    utf8_bytes[1] = (unsigned char)(0x80 | ((utf32_char >> 6) & 0x3F));

    utf8_bytes[2] = (unsigned char)(0x80 | (utf32_char & 0x3F));

    *num_bytes = 3;

} else if (utf32_char < 0x110000) {

    utf8_bytes[0] = (unsigned char)(0xF0 | (utf32_char >> 18));

    utf8_bytes[1] = (unsigned char)(0x80 | ((utf32_char >> 12) & 0x3F));

    utf8_bytes[2] = (unsigned char)(0x80 | ((utf32_char >> 6) & 0x3F));

    utf8_bytes[3] = (unsigned char)(0x80 | (utf32_char & 0x3F));

    *num_bytes = 4;

} else {

    *num_bytes = 0;

}

}

V io_output(NgaState *vm) {

unsigned char utf8_bytes[4];

int num_bytes;

utf32_to_utf8(stack_pop(vm), utf8_bytes, &num_bytes);

display_utf8(utf8_bytes, num_bytes);

fflush(stdout);

}

V query_output(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_OUTPUT);

}

/=====================================================================/

int read_character(int from) {

unsigned char utf8_bytes[4] = { 0 };

int utf32_char, i, num_bytes;

if (read(from, &utf8_bytes[0], 1) != 1) { return 0; }

if ((utf8_bytes[0] & 0x80) == 0x00) {

num_bytes = 1;

} else if ((utf8_bytes[0] & 0xE0) == 0xC0) {

num_bytes = 2;

} else if ((utf8_bytes[0] & 0xF0) == 0xE0) {

num_bytes = 3;

} else if ((utf8_bytes[0] & 0xF8) == 0xF0) {

num_bytes = 4;

} else {

return 0;

}

for (i = 1; i < num_bytes; i++) {

if (read(from, &utf8_bytes[i], 1) != 1) {

  return 0;

}

}

if (num_bytes == 1) {

utf32_char = utf8_bytes[0];

} else if (num_bytes == 2) {

utf32_char = ((uint32_t)(utf8_bytes[0] & 0x1F) << 6) |

                        (utf8_bytes[1] & 0x3F);

} else if (num_bytes == 3) {

utf32_char = ((uint32_t)(utf8_bytes[0] & 0x0F) << 12) |

             ((uint32_t)(utf8_bytes[1] & 0x3F) << 6) |

                        (utf8_bytes[2] & 0x3F);

} else if (num_bytes == 4) {

utf32_char = ((uint32_t)(utf8_bytes[0] & 0x07) << 18) |

             ((uint32_t)(utf8_bytes[1] & 0x3F) << 12) |

             ((uint32_t)(utf8_bytes[2] & 0x3F) << 6) |

                        (utf8_bytes[3] & 0x3F);

} else {

return 0;

}

return utf32_char;

}

int fread_character(FILE *from) {

unsigned char utf8_bytes[4] = { 0 };

int utf32_char, i, num_bytes;

if (fread(&utf8_bytes[0], 1, 1, from) != 1) { return 0; }

if ((utf8_bytes[0] & 0x80) == 0x00) {

num_bytes = 1;

} else if ((utf8_bytes[0] & 0xE0) == 0xC0) {

num_bytes = 2;

} else if ((utf8_bytes[0] & 0xF0) == 0xE0) {

num_bytes = 3;

} else if ((utf8_bytes[0] & 0xF8) == 0xF0) {

num_bytes = 4;

} else {

return 0;

}

for (i = 1; i < num_bytes; i++) {

if (fread(&utf8_bytes[i], 1, 1, from) != 1) {

  return 0;

}

}

if (num_bytes == 1) {

utf32_char = utf8_bytes[0];

} else if (num_bytes == 2) {

utf32_char = ((uint32_t)(utf8_bytes[0] & 0x1F) << 6) |

                        (utf8_bytes[1] & 0x3F);

} else if (num_bytes == 3) {

utf32_char = ((uint32_t)(utf8_bytes[0] & 0x0F) << 12) |

             ((uint32_t)(utf8_bytes[1] & 0x3F) << 6) |

                        (utf8_bytes[2] & 0x3F);

} else if (num_bytes == 4) {

utf32_char = ((uint32_t)(utf8_bytes[0] & 0x07) << 18) |

             ((uint32_t)(utf8_bytes[1] & 0x3F) << 12) |

             ((uint32_t)(utf8_bytes[2] & 0x3F) << 6) |

                        (utf8_bytes[3] & 0x3F);

} else {

return 0;

}

return utf32_char;

}

V io_keyboard(NgaState *vm) {

stack_push(vm, read_character(STDIN_FILENO));

if (TOS == 127) TOS = 8;

}

V query_keyboard(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_KEYBOARD);

}

/=====================================================================/

ifdef ENABLE_UNSIGNED

V io_unsigned(NgaState *vm) {

int x, y, z;

long c;

switch (stack_pop(vm)) {

case 0: ACTIVE.u = 1; break;

case 1:

  c = 0;

  z = stack_pop(vm);

  y = stack_pop(vm);

  x = stack_pop(vm);

  if (ACTIVE.u != 0) {

    c = (unsigned)x * (unsigned)y;

    stack_push(vm, (unsigned)c % (unsigned)z);

    stack_push(vm, (unsigned)c / (unsigned)z);

  }

  else {

    c = x * y;

    stack_push(vm, c % z);

    stack_push(vm, c / z);

  }

  ACTIVE.u = 0;

  break;

}

}

V query_unsigned(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_UNSIGNED);

}

endif

/=====================================================================/

V io_image(NgaState *vm) {

FILE *fp;

char *f = string_extract(vm, stack_pop(vm));

if ((fp = fopen(f, "wb")) == NULL) {

printf("\nERROR (nga/io_image): Unable to save the image: %s!\n", f);

exit(2);

}

fwrite(vm->memory, sizeof(CELL), vm->memory[3] + 1, fp);

fclose(fp);

}

V query_image(NgaState *vm) {

stack_push(vm, 0);

stack_push(vm, DEVICE_IMAGE);

}

/=====================================================================/

/*---------------------------------------------------------------------

Scripting Support

---------------------------------------------------------------------*/

V scripting_arg(NgaState *vm) {

CELL a, b;

a = stack_pop(vm);

b = stack_pop(vm);

stack_push(vm, string_inject(vm, vm->sys_argv[a + 2], b));

}

V scripting_arg_count(NgaState *vm) {

if ((vm->sys_argc - 2) <= 0)

stack_push(vm, 0);

else

stack_push(vm, vm->sys_argc - 2);

}

V scripting_include(NgaState *vm) {

include_file(vm, string_extract(vm, stack_pop(vm)), 0);

}

V scripting_include_plain(NgaState *vm) {

include_plain_file(vm, string_extract(vm, stack_pop(vm)), 0);

}

V scripting_name(NgaState *vm) {

if (vm->sys_argc == 1)

stack_push(vm, string_inject(vm, "<none>", stack_pop(vm)));

else

stack_push(vm, string_inject(vm, vm->sys_argv[1], stack_pop(vm)));

}

/* addeded in scripting i/o device, revision 1 */

V scripting_source(NgaState *vm) {

stack_push(vm, string_inject(vm, vm->scripting_sources[vm->current_source], stack_pop(vm)));

}

V scripting_line(NgaState *vm) {

stack_push(vm, vm->currentLine);

}

V scripting_ignore_to_eol(NgaState *vm) {

vm->ignoreToEOL = -1;

}

V scripting_ignore_to_eof(NgaState *vm) {

vm->ignoreToEOF = -1;

}

V scripting_abort(NgaState *vm) {

scripting_ignore_to_eol(vm);

scripting_ignore_to_eof(vm);

vm->perform_abort = -1;

}

V carry_out_abort(NgaState *vm) {

ACTIVE.ip = IMAGE_SIZE + 1;

ACTIVE.rp = 0;

ACTIVE.sp = 0;

ifdef ENABLE_FLOATS

vm->fsp = 0;

vm->afsp = 0;

endif

if (vm->current_source > 0) {

scripting_abort(vm);

return;

}

vm->perform_abort = 0;

vm->current_source = 0;

}

V scripting_line_text(NgaState *vm) {

CELL target = stack_pop(vm);

string_inject(vm, vm->line, target);

}

Handler ScriptingActions[] = {

scripting_arg_count, scripting_arg,

scripting_include, scripting_name,

scripting_source, scripting_line,

scripting_ignore_to_eol, scripting_ignore_to_eof,

scripting_abort, scripting_line_text,

scripting_include_plain

};

V query_scripting(NgaState *vm) {

stack_push(vm, 3);

stack_push(vm, DEVICE_SCRIPTING);

}

V io_scripting(NgaState *vm) {

ScriptingActionsstack_pop(vm);

}

/=====================================================================/

/*---------------------------------------------------------------------

With these out of the way, I implement execute, which takes an

address and runs the code at it. This has a couple of interesting

bits.

This will also exit if the address stack depth is zero (meaning that

the word being run, and it's dependencies) are finished.

---------------------------------------------------------------------*/

V invalid_opcode(NgaState *vm, CELL opcode) {

CELL a, i;

printf("\nERROR (nga/execute): Invalid instruction!\n");

printf("At %lld, opcode %lld\n", (long long)ACTIVE.ip, (long long)opcode);

printf("Instructions: ");

a = opcode;

for (i = 0; i < 4; i++) {

printf("%lldd ", (long long)a & 0xFF);

a = a >> 8;

}

printf("\n");

exit(1);

}

V execute(NgaState *vm, CELL cell) {

CELL opcode;

if (ACTIVE.rp == 0)

ACTIVE.rp = 1;

ACTIVE.ip = cell;

while (ACTIVE.ip < IMAGE_SIZE) {

if (vm->perform_abort == 0) {

  opcode = vm->memory[ACTIVE.ip];

ifndef BRANCH_PREDICTION

  validate_opcode_bundle(vm, opcode);

endif

  process_opcode_bundle(vm, opcode);

ifndef ENABLE_ERROR

  if (ACTIVE.sp < 0 || ACTIVE.sp > STACK_DEPTH) {

    printf("\nERROR (nga/execute): Stack Limits Exceeded!\n");

    printf("At %lld, opcode %lld. sp = %lld, core = %lld\n", (long long)ACTIVE.ip, (long long)opcode, (long long)ACTIVE.sp, (long long)vm->active);

    exit(1);

  }

  if (ACTIVE.rp < 0 || ACTIVE.rp > ADDRESSES) {

    printf("\nERROR (nga/execute): Address Stack Limits Exceeded!\n");

    printf("At %lld, opcode %lld. rp = %lld\n", (long long)ACTIVE.ip, (long long)opcode, (long long)ACTIVE.rp);

    exit(1);

  }

endif

  ACTIVE.ip++;

ifdef ENABLE_MULTICORE

  switch_core(vm);

endif

  if (ACTIVE.rp == 0)

    ACTIVE.ip = IMAGE_SIZE;

} else {

  carry_out_abort(vm);

}

}

}

;

/*---------------------------------------------------------------------

RETRO's interpret word expects a token on the stack. This next

function copies a token to the TIB (text input buffer) and then

calls interpret to process it.

---------------------------------------------------------------------*/

V evaluate(NgaState *vm, char *s) {

if (strlen(s) == 0) return;

if (strlen(s) > (TIB_END - TIB)) {

s[TIB_END - TIB] = 0;

}

string_inject(vm, s, TIB);

stack_push(vm, TIB);

execute(vm, vm->interpret);

}

/*---------------------------------------------------------------------

read_token reads a token from the specified file. It will stop on

a whitespace or newline. It also tries to handle backspaces, though

the success of this depends on how your terminal is configured.

---------------------------------------------------------------------*/

int not_eol(int c) {

return (c != 9) && (c != 10) && (c != 13) && (c != 32) && (c != EOF) && (c != 0);

}

V read_token(FILE *file, char *token_buffer) {

int ch = fread_character(file);

int count = 0;

while (not_eol(ch)) {

if ((ch == 8 || ch == 127) && count > 0) {

  count--;

} else {

  token_buffer[count++] = ch;

}

ch = fread_character(file);

}

token_buffer[count] = '\0';

}

V skip_indent(FILE *fp) {

int ch = getc(fp);

while (ch == ' ') {

ch = getc(fp);

}

ungetc(ch, fp);

}

/*---------------------------------------------------------------------

Display the Stack Contents

---------------------------------------------------------------------*/

V dump_stack(NgaState *vm) {

if (ACTIVE.sp == 0) return;

printf("\nStack: ");

for (CELL i = 1; i <= ACTIVE.sp; i++) {

if (i == ACTIVE.sp)

  printf("[ TOS: %lld ]", (long long)ACTIVE.data[i]);

else

  printf("%lld ", (long long)ACTIVE.data[i]);

}

printf("\n");

}

V dump_astack(NgaState *vm) {

if (ACTIVE.rp == 0) return;

printf("\nAddress Stack: ");

for (CELL i = 1; i <= ACTIVE.rp; i++) {

if (i == ACTIVE.rp)

  printf("[ TOS: %lld ]", (long long)ACTIVE.address[i]);

else

  printf("%lld ", (long long)ACTIVE.address[i]);

}

printf("\n");

}

/*---------------------------------------------------------------------

RRE is primarily intended to be used in a batch or scripting model.

The include_file() function will be used to read the code in the

file, evaluating it as encountered.

I enforce a literate model, with code in fenced blocks. E.g.,

# This is a test

Display "Hello, World!"

~~~

'Hello,_World! puts nl

~~~

RRE will ignore anything outside the ~~~ blocks. To identify if the

current token is the start or end of a block, I provide a fenced()

function.

---------------------------------------------------------------------*/

/* Check to see if a line is a fence boundary.

This will check code blocks in all cases, and test blocks

if tests_enabled is set to a non-zero value. */

int fence_boundary(NgaState *vm, char *buffer, int tests_enabled) {

int flag = 1;

if (strcmp(buffer, vm->code_start) == 0) { flag = -1; }

if (strcmp(buffer, vm->code_end) == 0) { flag = -1; }

if (strcmp(buffer, vm->test_start) == 0) {

if (vm->codeBlocks == 0) { vm->codeBlocks++; }

}

if (tests_enabled == 0) { return flag; }

if (strcmp(buffer, vm->test_start) == 0) { flag = -1; }

if (strcmp(buffer, vm->test_end) == 0) { flag = -1; }

return flag;

}

/*---------------------------------------------------------------------

And now for the actual include_file() function.

---------------------------------------------------------------------*/

V read_line(NgaState *vm, FILE *file, char *token_buffer) {

int ch = getc(file);

int count = 0;

token_buffer[0] = '\0';

while ((ch != 10) && (ch != 13) && (ch != EOF) && (ch != 0)) {

token_buffer[count++] = ch;

ch = fread_character(file);

}

token_buffer[count] = '\0';

}

int count_tokens(char *line) {

int count = 1;

while (*line++) {

if (isspace(line[0]))

  count++;

}

return count;

}

V include_file(NgaState *vm, char *fname, int run_tests) {

int inBlock = 0; /* Tracks status of in/out of block */

int priorBlocks = 0;

char source[64 * 1024]; /* Token buffer [about 64K] */

char fence[33]; /* Used with fence_boundary() */

CELL ReturnStack[ADDRESSES];

CELL arp, aip;

long offset = 0;

CELL at = 0;

int tokens = 0;

FILE fp; / Open the file. If not found, */

fp = fopen(fname, "r"); /* exit. */

if (fp == NULL) {

printf("File `%s` not found. Exiting.\n", fname);

exit(1);

}

priorBlocks = vm->codeBlocks;

vm->codeBlocks = 0;

arp = ACTIVE.rp;

aip = ACTIVE.ip;

for(ACTIVE.rp = 0; ACTIVE.rp <= arp; ACTIVE.rp++)

ReturnStack[ACTIVE.rp] = ACTIVE.address[ACTIVE.rp];

ACTIVE.rp = 0;

vm->current_source++;

strlcpy(vm->scripting_sources[vm->current_source], fname, 8192);

vm->ignoreToEOF = 0;

while (!feof(fp) && (vm->ignoreToEOF == 0)) { /* Loop through the file */

vm->ignoreToEOL = 0;

offset = ftell(fp);

read_line(vm, fp, vm->line);

at++;

fseek(fp, offset, SEEK_SET);

skip_indent(fp);

tokens = count_tokens(vm->line);

while (tokens > 0 && vm->ignoreToEOL == 0) {

  tokens--;

  read_token(fp, source);

  strlcpy(fence, source, 32); /* Copy the first three characters  */

  if (fence_boundary(vm, fence, run_tests) == -1) {

    if (inBlock == 0) {

      inBlock = 1;

      vm->codeBlocks++;

    } else {

      inBlock = 0;

    }

  } else {

    if (inBlock == 1) {

      vm->currentLine = at;

      evaluate(vm, source);

      vm->currentLine = at;

    }

  }

}

if (vm->ignoreToEOL == -1) {

  read_line(vm, fp, vm->line);

}

}

vm->current_source--;

vm->ignoreToEOF = 0;

fclose(fp);

if (vm->perform_abort == -1) {

carry_out_abort(vm);

}

for(ACTIVE.rp = 0; ACTIVE.rp <= arp; ACTIVE.rp++)

ACTIVE.address[ACTIVE.rp] = ReturnStack[ACTIVE.rp];

ACTIVE.rp = arp;

ACTIVE.ip = aip;

if (vm->codeBlocks == 0) {

printf("warning: no code or test blocks found!\n");

printf("         filename: %s\n", fname);

printf("         see http://unu.retroforth.org for a brief summary of\n");

printf("         the unu code format used by retro\n");

}

vm->codeBlocks = priorBlocks;

}

V include_plain_file(NgaState *vm, char *fname, int run_tests) {

char source[64 * 1024]; /* Token buffer [about 64K] */

CELL ReturnStack[ADDRESSES];

CELL arp, aip;

long offset = 0;

CELL at = 0;

int tokens = 0;

FILE fp; / Open the file. If not found, */

fp = fopen(fname, "r"); /* exit. */

if (fp == NULL) {

printf("File `%s` not found. Exiting.\n", fname);

exit(1);

}

arp = ACTIVE.rp;

aip = ACTIVE.ip;

for(ACTIVE.rp = 0; ACTIVE.rp <= arp; ACTIVE.rp++)

ReturnStack[ACTIVE.rp] = ACTIVE.address[ACTIVE.rp];

ACTIVE.rp = 0;

vm->current_source++;

strlcpy(vm->scripting_sources[vm->current_source], fname, 8192);

vm->ignoreToEOF = 0;

while (!feof(fp) && (vm->ignoreToEOF == 0)) { /* Loop through the file */

vm->ignoreToEOL = 0;

offset = ftell(fp);

read_line(vm, fp, vm->line);

at++;

fseek(fp, offset, SEEK_SET);

skip_indent(fp);

tokens = count_tokens(vm->line);

while (tokens > 0 && vm->ignoreToEOL == 0) {

  tokens--;

  read_token(fp, source);

  vm->currentLine = at;

  evaluate(vm, source);

  vm->currentLine = at;

}

if (vm->ignoreToEOL == -1) {

  read_line(vm, fp, vm->line);

}

}

vm->current_source--;

vm->ignoreToEOF = 0;

fclose(fp);

if (vm->perform_abort == -1) {

carry_out_abort(vm);

}

for(ACTIVE.rp = 0; ACTIVE.rp <= arp; ACTIVE.rp++)

ACTIVE.address[ACTIVE.rp] = ReturnStack[ACTIVE.rp];

ACTIVE.rp = arp;

ACTIVE.ip = aip;

}

/*---------------------------------------------------------------------

initialize() sets up Nga and loads the image (from the array in

image.c) to memory.

---------------------------------------------------------------------*/

V initialize(NgaState *vm) {

prepare_vm(vm);

load_embedded_image(vm);

vm->interactive = 0;

strlcpy(vm->code_start, "~~~", 256);

strlcpy(vm->code_end, "~~~", 256);

strlcpy(vm->test_start, "```", 256);

strlcpy(vm->test_end, "```", 256);

/* Setup variables related to the scripting device */

vm->currentLine = 0; /* Current Line # for script */

vm->current_source = 0; /* Current file being run */

vm->perform_abort = 0; /* Carry out abort procedure */

strlcpy(vm->scripting_sources[0], "/dev/stdin", 8192);

vm->ignoreToEOL = 0;

vm->ignoreToEOF = 0;

vm->codeBlocks = 0;

}

V help(char *exename) {

printf("Scripting Usage: %s filename\n\n", exename);

printf("Interactive Usage: %s [-h] [-i] [-f filename] [-t filename]\n\n", exename);

printf("Valid Arguments:\n\n");

printf(" -h\n");

printf(" Display this help text\n");

printf(" -i\n");

printf(" Launches in interactive mode\n");

printf(" -f filename\n");

printf(" Run the contents of the code blocks in the specified file\n");

printf(" -p filename\n");

printf(" Run the contents of the specified file\n");

printf(" -u filename\n");

printf(" Use the image in the specified file instead of the internal one\n");

printf(" -r filename\n");

printf(" Use the image in the specified file instead of the internal one and run the code in it\n");

printf(" -t filename\n");

printf(" Run the contents of the code blocks in the specified file, including any tests (in ``` blocks)\n\n");

printf(" -v\n");

printf(" Run in verbose mode\n");

}

/* Signal Handler -----------------------------------------------------*/

ifdef ENABLE_SIGNALS

static V sig_handler(int _)

{

printf("\nCaught: %d\n", _);

exit(1);

}

endif

/* Main Entry Point ---------------------------------------------------*/

enum flags {

FLAG_HELP, FLAG_INTERACTIVE,

};

V register_devices(NgaState *vm) {

register_device(vm, io_output, query_output);

register_device(vm, io_keyboard, query_keyboard);

ifdef ENABLE_FILES

register_device(vm, io_filesystem, query_filesystem);

endif

register_device(vm, io_image, query_image);

ifdef ENABLE_FLOATS

register_device(vm, io_floatingpoint, query_floatingpoint);

endif

ifdef ENABLE_UNIX

register_device(vm, io_unix, query_unix);

endif

ifdef ENABLE_MALLOC

ifdef BIT64

register_device(vm, io_malloc, query_malloc);

endif

endif

ifdef ENABLE_BLOCKS

register_device(vm, io_blocks, query_blocks);

endif

ifdef ENABLE_CLOCK

register_device(vm, io_clock, query_clock);

endif

register_device(vm, io_scripting, query_scripting);

ifdef ENABLE_RNG

register_device(vm, io_rng, query_rng);

endif

ifdef ENABLE_SOCKETS

register_device(vm, io_socket, query_socket);

endif

ifdef ENABLE_MULTICORE

register_device(vm, io_multicore, query_multicore);

endif

ifdef ENABLE_FFI

register_device(vm, io_ffi, query_ffi);

nlibs = 0;

nffi = 0;

endif

ifdef ENABLE_UNSIGNED

register_device(vm, io_unsigned, query_unsigned);

endif

ifdef ENABLE_ERROR

register_device(vm, io_error, query_error);

endif

ifdef ENABLE_IOCTL

register_device(vm, io_ioctl, query_ioctl);

endif

}

V register_signal_handlers() {

ifdef ENABLE_SIGNALS

signal(SIGHUP, sig_handler);

signal(SIGINT, sig_handler);

signal(SIGILL, sig_handler);

signal(SIGBUS, sig_handler);

signal(SIGFPE, sig_handler);

endif

}

define ARG(n) (strcmp(argv[i], n) == 0)

int main(int argc, char **argv) {

int i;

int modes[16];

NgaState *vm = calloc(sizeof(NgaState), sizeof(char));

verbose = 0;

register_signal_handlers();

initialize(vm); /* Initialize Nga & image */

register_devices(vm);

vm->sys_argc = argc; /* Point the global argc and */

vm->sys_argv = argv; /* argv to the actual ones */

strlcpy(vm->scripting_sources[0], "", 8192);

/* Check arguments. If no flags were passed, load & run the

 file specified and exit. */

if (argc >= 2 && argv[1][0] != '-') {

update_rx(vm);

include_file(vm, argv[1], 0);

if (ACTIVE.sp >= 1)  dump_stack(vm);

exit(0);

}

/* Clear startup modes */

for (i = 0; i < 16; i++)

modes[i] = 0;

if (argc <= 1) modes[FLAG_INTERACTIVE] = 1;

update_rx(vm);

/* Process Arguments */

for (i = 1; i < argc; i++) {

if ARG("-h") {

  help(argv[0]);

  exit(0);

} else if ARG("-v") {

  verbose = 1;

} else if ARG("-i") {

  modes[FLAG_INTERACTIVE] = 1;

  vm->interactive = -1;

} else if ARG("-f") {

  include_file(vm, argv[i + 1], 0);

  i++;

} else if ARG("-p") {

  include_plain_file(vm, argv[i + 1], 0);

  i++;

} else if ARG("-u") {

  i++;

  load_image(vm, argv[i]);

  update_rx(vm);

} else if ARG("-r") {

  i++;

  load_image(vm, argv[i]);

  modes[FLAG_INTERACTIVE] = 1;

  update_rx(vm);

} else if ARG("-t") {

  include_file(vm, argv[i + 1], 1);

  i++;

} else if (ARG("--code-start") || ARG("-cs")) {

  i++;

  strlcpy(vm->code_start, argv[i], 256);

} else if (ARG("--code-end") || ARG("-ce")) {

  i++;

  strlcpy(vm->code_end, argv[i], 256);

} else if (ARG("--test-start") || ARG("-ts")) {

  i++;

  strlcpy(vm->test_start, argv[i], 256);

} else if (ARG("--test-end") || ARG("-te")) {

  i++;

  strlcpy(vm->test_end, argv[i], 256);

}

}

/* Run the Listener (if interactive mode was set) */

if (modes[FLAG_INTERACTIVE] == 1) {

execute(vm, 0);

}

/* Dump Stack */

if (ACTIVE.sp >= 1) dump_stack(vm);

free(vm);

}

/=====================================================================/

/*---------------------------------------------------------------------

Interfacing With The Image

---------------------------------------------------------------------*/

/*---------------------------------------------------------------------

Stack push/pop is easy. I could avoid these, but it aids in keeping

the code readable, so it's worth the slight overhead.

---------------------------------------------------------------------*/

CELL stack_pop(NgaState *vm) {

ACTIVE.sp--;

return ACTIVE.data[ACTIVE.sp + 1];

}

V stack_push(NgaState *vm, CELL value) {

ACTIVE.sp++;

ACTIVE.data[ACTIVE.sp] = value;

}

/*---------------------------------------------------------------------

Strings are next. RETRO uses C-style NULL terminated strings. So I

can easily inject or extract a string. Injection iterates over the

string, copying it into the image. This also takes care to ensure

that the NULL terminator is added.

---------------------------------------------------------------------*/

CELL string_inject(NgaState *vm, char *str, CELL buffer) {

if (!str) {

vm->memory[buffer] = 0;

return 0;

}

for (CELL i = 0; str[i] != '\0'; i++) {

vm->memory[buffer + i] = (CELL)str[i];

vm->memory[buffer + i + 1] = 0;

}

return buffer;

}

/*---------------------------------------------------------------------

Extracting a string is similar, but I have to iterate over the VM

memory instead of a C string and copy the charaters into a buffer.

This uses a static buffer (string_data) as I prefer to avoid using

malloc().

---------------------------------------------------------------------*/

char *string_extract(NgaState *vm, CELL at) {

CELL starting = at, i = 0;

while (vm->memory[starting] && i < 8192)

vm->string_data[i++] = (char)vm->memory[starting++];

vm->string_data[i] = 0;

return (char *)vm->string_data;

}

/*---------------------------------------------------------------------

This interface tracks a few words and variables in the image. These

are:

Dictionary - the latest dictionary header

interpret - the heart of the interpreter/compiler

I have to call this periodically, as the Dictionary will change as

new words are defined, and the user might write a new error handler

or interpreter.

---------------------------------------------------------------------*/

V update_rx(NgaState *vm) {

vm->Dictionary = vm->memory[2];

vm->interpret = vm->memory[5];

if (vm->memory[10] != 0) { execute(vm, vm->memory[10]); }

}

/=====================================================================/

V register_device(NgaState *vm, V *handler, V *query) {

vm->IO_deviceHandlers[vm->devices] = handler;

vm->IO_queryHandlers[vm->devices] = query;

vm->devices++;

}

V load_embedded_image(NgaState *vm) {

int i;

for (i = 0; i < ngaImageCells; i++)

vm->memory[i] = ngaImage[i];

}

CELL load_image(NgaState *vm, char *imageFile) {

FILE *fp;

CELL imageSize = 0;

long fileLen;

if ((fp = fopen(imageFile, "rb")) != NULL) {

/* Determine length (in cells) */

fseek(fp, 0, SEEK_END);

fileLen = ftell(fp) / sizeof(CELL);

if (fileLen > IMAGE_SIZE) {

  fclose(fp);

  printf("\nERROR (nga/ngaLoadImage): Image is larger than alloted space!\n");

  exit(1);

}

rewind(fp);

/* Erase old image in memory: 0 = nop instruction */

for (int i = 0; i < IMAGE_SIZE; i++) { vm->memory[i] = 0; }

/* Read the file into memory */

imageSize = fread(vm->memory, sizeof(CELL), fileLen, fp);

fclose(fp);

}

return imageSize;

}

V prepare_vm(NgaState *vm) {

vm->active = 0;

ACTIVE.ip = ACTIVE.sp = ACTIVE.rp = ACTIVE.u = 0;

ACTIVE.active = -1;

for (ACTIVE.ip = 0; ACTIVE.ip < IMAGE_SIZE; ACTIVE.ip++)

vm->memory[ACTIVE.ip] = 0; /* NO - nop instruction */

for (ACTIVE.ip = 0; ACTIVE.ip < STACK_DEPTH; ACTIVE.ip++)

ACTIVE.data[ACTIVE.ip] = 0;

for (ACTIVE.ip = 0; ACTIVE.ip < ADDRESSES; ACTIVE.ip++)

ACTIVE.address[ACTIVE.ip] = 0;

}

V i_no(NgaState *vm) {

ifndef BRANCH_PREDICTION

guard(vm, 0, 0, 0);

endif

}

V i_li(NgaState *vm) {

guard(vm, 0, 1, 0);

ACTIVE.sp++;

ACTIVE.ip++;

TOS = vm->memory[ACTIVE.ip];

}

V i_du(NgaState *vm) {

guard(vm, 1, 2, 0);

ACTIVE.sp++;

ACTIVE.data[ACTIVE.sp] = NOS;

}

V i_dr(NgaState *vm) {

guard(vm, 1, 0, 0);

ACTIVE.data[ACTIVE.sp] = 0;

ACTIVE.sp--;

}

V i_sw(NgaState *vm) {

guard(vm, 2, 2, 0);

CELL a;

a = TOS;

TOS = NOS;

NOS = a;

}

V i_pu(NgaState *vm) {

guard(vm, 1, 0, 1);

ACTIVE.rp++;

TORS = TOS;

i_dr(vm);

}

V i_po(NgaState *vm) {

guard(vm, 0, 1, -1);

ACTIVE.sp++;

TOS = TORS;

ACTIVE.rp--;

}

V i_ju(NgaState *vm) {

guard(vm, 1, 0, 0);

ACTIVE.ip = TOS - 1;

i_dr(vm);

}

V i_ca(NgaState *vm) {

guard(vm, 1, 0, 1);

ACTIVE.rp++;

TORS = ACTIVE.ip;

ACTIVE.ip = TOS - 1;

i_dr(vm);

}

V i_cc(NgaState *vm) {

guard(vm, 2, 0, 1);

CELL a, b;

a = TOS; i_dr(vm); /* Target */

b = TOS; i_dr(vm); /* Flag */

if (b != 0) {

ACTIVE.rp++;

TORS = ACTIVE.ip;

ACTIVE.ip = a - 1;

}

}

V i_re(NgaState *vm) {

guard(vm, 0, 0, -1);

ACTIVE.ip = TORS;

ACTIVE.rp--;

}

V i_eq(NgaState *vm) {

guard(vm, 2, 1, 0);

if (ACTIVE.u != 0) {

NOS = ((unsigned)NOS == (unsigned)TOS) ? -1 : 0;

ACTIVE.u = 0;

} else {

NOS = (NOS == TOS) ? -1 : 0;

}

i_dr(vm);

}

V i_ne(NgaState *vm) {

guard(vm, 2, 1, 0);

if (ACTIVE.u != 0) {

NOS = ((unsigned)NOS != (unsigned)TOS) ? -1 : 0;

ACTIVE.u = 0;

} else {

NOS = (NOS != TOS) ? -1 : 0;

}

i_dr(vm);

}

V i_lt(NgaState *vm) {

guard(vm, 2, 1, 0);

if (ACTIVE.u != 0) {

NOS = ((unsigned)NOS < (unsigned)TOS) ? -1 : 0;

ACTIVE.u = 0;

} else {

NOS = (NOS < TOS) ? -1 : 0;

}

i_dr(vm);

}

V i_gt(NgaState *vm) {

guard(vm, 2, 1, 0);

if (ACTIVE.u != 0) {

NOS = ((unsigned)NOS > (unsigned)TOS) ? -1 : 0;

ACTIVE.u = 0;

} else {

NOS = (NOS > TOS) ? -1 : 0;

}

i_dr(vm);

}

V i_fe(NgaState *vm) {

guard(vm, 1, 1, 0);

switch (TOS) {

case -1: TOS = ACTIVE.sp - 1; break;

case -2: TOS = ACTIVE.rp; break;

case -3: TOS = IMAGE_SIZE; break;

case -4: TOS = CELL_MIN; break;

case -5: TOS = CELL_MAX; break;

default: TOS = vm->memory[TOS]; break;

}

}

V i_st(NgaState *vm) {

guard(vm, 2, 0, 0);

vm->memory[TOS] = NOS;

i_dr(vm);

i_dr(vm);

}

V i_ad(NgaState *vm) {

guard(vm, 2, 1, 0);

if (ACTIVE.u != 0) {

NOS = (unsigned)NOS + (unsigned)TOS;

ACTIVE.u = 0;

} else {

NOS += TOS;

}

i_dr(vm);

}

V i_su(NgaState *vm) {

guard(vm, 2, 1, 0);

if (ACTIVE.u != 0) {

NOS = (unsigned)NOS - (unsigned)TOS;

ACTIVE.u = 0;

} else {

NOS -= TOS;

}

i_dr(vm);

}

V i_mu(NgaState *vm) {

guard(vm, 2, 1, 0);

if (ACTIVE.u != 0) {

NOS = (unsigned)NOS * (unsigned)TOS;

ACTIVE.u = 0;

} else {

NOS *= TOS;

}

i_dr(vm);

}

V i_di(NgaState *vm) {

guard(vm, 2, 2, 0);

CELL a, b;

a = TOS;

b = NOS;

if (b == 0) {

ifdef ENABLE_ERROR

if (vm->ErrorHandlers[6] != 0) {

}

endif

}

if (ACTIVE.u != 0) {

TOS = (unsigned)b / (unsigned)a;

NOS = (unsigned)b % (unsigned)a;

ACTIVE.u = 0;

} else {

TOS = b / a;

NOS = b % a;

}

}

V i_an(NgaState *vm) {

guard(vm, 2, 1, 0);

NOS = TOS & NOS;

i_dr(vm);

}

V i_or(NgaState *vm) {

guard(vm, 2, 1, 0);

NOS = TOS | NOS;

i_dr(vm);

}

V i_xo(NgaState *vm) {

guard(vm, 2, 1, 0);

NOS = TOS ^ NOS;

i_dr(vm);

}

V i_sh(NgaState *vm) {

guard(vm, 2, 1, 0);

CELL y = TOS;

CELL x = NOS;

if (TOS < 0)

NOS = NOS << (0 - TOS);

else {

if (ACTIVE.u != 0) {

  NOS = (unsigned)x >> (unsigned)y;

  ACTIVE.u = 0;

} else {

  if (x < 0 && y > 0)

    NOS = x >> y | ~(~0U >> y);

  else

    NOS = x >> y;

}

}

i_dr(vm);

}

V i_zr(NgaState *vm) {

guard(vm, 1, 0, 0);

if (TOS == 0) {

i_dr(vm);

ACTIVE.ip = TORS;

ACTIVE.rp--;

}

}

V i_ha(NgaState *vm) {

guard(vm, 0, 0, 0);

ACTIVE.ip = IMAGE_SIZE;

ACTIVE.rp = 0;

exit(0);

}

V i_ie(NgaState *vm) {

guard(vm, 1, 1, 0);

stack_push(vm, vm->devices);

}

V i_iq(NgaState *vm) {

guard(vm, 1, 1, 0);

vm->IO_queryHandlersstack_pop(vm);

}

V i_ii(NgaState *vm) {

guard(vm, 1, 0, 0);

vm->IO_deviceHandlersstack_pop(vm);

}

Handler instructions[] = {

i_no, i_li, i_du, i_dr, i_sw, i_pu, i_po,

i_ju, i_ca, i_cc, i_re, i_eq, i_ne, i_lt,

i_gt, i_fe, i_st, i_ad, i_su, i_mu, i_di,

i_an, i_or, i_xo, i_sh, i_zr, i_ha, i_ie,

i_iq, i_ii

};

V process_opcode(NgaState *vm, CELL opcode) {

ifdef FAST

switch (opcode) {

case 0: break;              case 1: i_li(vm); break;

case 2: i_du(vm); break;    case 3: i_dr(vm); break;

case 4: i_sw(vm); break;    case 5: i_pu(vm); break;

case 6: i_po(vm); break;    case 7: i_ju(vm); break;

case 8: i_ca(vm); break;    case 9: i_cc(vm); break;

case 10: i_re(vm); break;   case 11: i_eq(vm); break;

case 12: i_ne(vm); break;   case 13: i_lt(vm); break;

case 14: i_gt(vm); break;   case 15: i_fe(vm); break;

case 16: i_st(vm); break;   case 17: i_ad(vm); break;

case 18: i_su(vm); break;   case 19: i_mu(vm); break;

case 20: i_di(vm); break;   case 21: i_an(vm); break;

case 22: i_or(vm); break;   case 23: i_xo(vm); break;

case 24: i_sh(vm); break;   case 25: i_zr(vm); break;

case 26: i_ha(vm); break;   case 27: i_ie(vm); break;

case 28: i_iq(vm); break;   case 29: i_ii(vm); break;

default: break;

}

else

if (opcode != 0)

instructions[opcode](vm);

endif

}

ifndef BRANCH_PREDICTION

V validate_opcode_bundle(NgaState *vm, CELL opcode) {

CELL remainingOpcode = opcode;

for (int i = 0; i < 4; i++) {

CELL current = remainingOpcode & 0xFF;

if (current < 0 || current > 29) {

  invalid_opcode(vm, opcode);

}

remainingOpcode >>= 8;

}

}

endif

V verbose_details(NgaState *vm, CELL opcode) {

fprintf(stderr, "ip: %lld ", (long long)ACTIVE.ip);

fprintf(stderr, "sp: %lld ", (long long)ACTIVE.sp);

fprintf(stderr, "rp: %lld ", (long long)ACTIVE.rp);

fprintf(stderr, "core: %lld ", (long long)vm->active);

fprintf(stderr, "opcode: %lld\n", (long long)opcode);

}

define INST(n) ((opcode >> n) & 0xFF) != 0

V process_opcode_bundle(NgaState *vm, CELL opcode) {

ifndef BRANCH_PREDICTION

if (INST(0)) instructionsopcode & 0xFF;

if (INST(8)) instructions(opcode >> 8) & 0xFF;

if (INST(16)) instructions(opcode >> 16) & 0xFF;

if (INST(24)) instructions(opcode >> 24) & 0xFF;

else

for (size_t i = 0; i < 4; ++i) {

uint8_t current = ((uint8_t*)&opcode)[i];

if (unlikely(current > 29)) {

  invalid_opcode(vm, opcode);

}

instructions[current](vm);

}

endif

}

ifdef NEEDS_STRL

/*---------------------------------------------------------------------

Copyright (c) 1998, 2015 Todd C. Miller Todd.Miller@courtesan.com

Permission to use, copy, modify, and distribute this software for any

purpose with or without fee is hereby granted, provided that the above

copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES

WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF

MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR

ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES

WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN

ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF

OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

--------------------------------------------------------------------*/

size_t strlcat(char *dst, const char *src, size_t dsize) {

const char *odst = dst;

const char *osrc = src;

size_t n = dsize;

size_t dlen;

/* Find the end of dst and adjust bytes left but don't go past end. */

while (n-- != 0 && *dst != '\0')

dst++;

dlen = dst - odst;

n = dsize - dlen;

if (n-- == 0)

return(dlen + strlen(src));

while (*src != '\0') {

if (n != 0) {

  *dst++ = *src;

  n--;

}

src++;

}

*dst = '\0';

return(dlen + (src - osrc)); /* count does not include NUL */

}

size_t strlcpy(char *dst, const char *src, size_t dsize) {

const char *osrc = src;

size_t nleft = dsize;

/* Copy as many bytes as will fit. */

if (nleft != 0) {

while (--nleft != 0) {

  if ((*dst++ = *src++) == '\0')

    break;

}

}

/* Not enough room in dst, add NUL and traverse rest of src. */

if (nleft == 0) {

if (dsize != 0)

  *dst = '\0';              /* NUL-terminate dst */

while (*src++)

  ;

}

return(src - osrc - 1); /* count does not include NUL */

}

endif

Proxy Information
Original URL
gemini://retroforth.org/retro.c
Status Code
Success (20)
Meta
application/octet-stream
Capsule Response Time
1150.502356 milliseconds
Gemini-to-HTML Time
54.756626 milliseconds

This content has been proxied by September (ba2dc).