Tämä saattaa olla tyhmä kysymys, mutta kysyn sen silti :)
WinAPI:n funktioita pystyy toki kutsumaan EXE-tiedoston avulla, johon kirjoitetaan binäärikoodi, mutta olisiko tälle mitään hienostuneempaaa tapaa? Jos ei ole, tiedättekö mistä saisin selvityksen win32 binäärien toiminnasta?
QB ei ole 32-bittinen eikä Windows-ohjelma. Sen pituinen se. Sen sijaan FreeBASIC tukee WinAPIa ihan suoraan.
Siis, meinaan tällä "epähienostuneemmalla" tavalla tätä:
ON ERROR GOTO ErrorHandler OPEN "NAPPTMP.EXE" FOR OUTPUT AS #1 DO READ i% PRINT #1, CHR$(i%); LOOP Aloita: CLOSE #1 DO IF INKEY$ = CHR$(27) THEN KILL "NAPPTMP.EXE" KILL "GETKOUT.TMP" END END IF SHELL "NAPPTMP.EXE" 'suoritetaan ohjelma OPEN "GETKOUT.TMP" FOR INPUT AS #1 FOR i% = 1 TO LOF(1) IF INPUT$(1, #1) = "1" THEN PRINT CHR$(i% - 1); END IF NEXT i% CLOSE #1 WAIT &H3DA, 8 LOOP ErrorHandler: IF ERR = 4 THEN GOTO Aloita 'jos datataulukko loppuu, aloitetaan ohjelma PRINT "Tuntematon virhe!" END 'BinÑÑrimuotoinen ohjelma, joka lukee nÑppÑimet GetAsyncKeyState-funktiolla 'ja tallentaa ne GETKOUT.TMP-tiedostoon: DATA 77, 90, 144, 0, 3, 0, 0, 0, 4, 0, 0, 0, 255, 255, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0 DATA 0, 0, 14, 31, 186, 14, 0, 180, 9, 205, 33, 184, 1, 76, 205, 33, 84, 104, 105, 115, 32, 112, 114, 111, 103, 114, 97, 109, 32, 99, 97 DATA 110, 110, 111, 116, 32, 98, 101, 32, 114, 117, 110, 32, 105, 110, 32, 68, 79, 83, 32, 109, 111, 100, 101, 46, 13, 13, 10, 36, 0, 0, 0 DATA 0, 0, 0, 0, 80, 69, 0, 0, 76, 1, 5, 0, 242, 152, 63, 73, 0, 22, 0, 0, 239, 1, 0, 0, 224, 0, 7, 3, 11, 1, 2 DATA 56, 0, 10, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 32, 18, 0, 0, 0, 16, 0, 0, 0, 32, 0, 0, 0, 0, 64, 0, 0, 16 DATA 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 233 DATA 70, 0, 0, 3, 0, 0, 0, 0, 0, 32, 0, 0, 16, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 68, 9, 0, 0, 0, 16, 0, 0, 0, 10, 0, 0, 0, 4, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 96, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 0, 32, 0, 0, 0, 2 DATA 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 192, 46, 114, 100, 97, 116, 97, 0, 0, 0 DATA 1, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 64 DATA 46, 98, 115, 115, 0, 0, 0, 0, 176, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 128, 0, 0, 192, 46, 105, 100, 97, 116, 97, 0, 0, 224, 2, 0, 0, 0, 80, 0, 0, 0, 4, 0, 0, 0, 18 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 85, 137, 229, 131, 236, 24, 137, 93, 248, 139, 85, 8, 49, 219, 137, 117, 252, 139, 2, 49, 246, 139, 0, 61, 145, 0, 0, 192, 119, 67 DATA 61, 141, 0, 0, 192, 114, 91, 190, 1, 0, 0, 0, 199, 4, 36, 8, 0, 0, 0, 49, 192, 137, 68, 36, 4, 232, 228, 7, 0, 0, 131 DATA 248, 1, 116, 108, 133, 192, 116, 42, 199, 4, 36, 8, 0, 0, 0, 255, 208, 187, 255, 255, 255, 255, 137, 216, 139, 117, 252, 139, 93, 248, 137 DATA 236, 93, 194, 4, 0, 61, 147, 0, 0, 192, 116, 189, 61, 148, 0, 0, 192, 116, 187, 137, 216, 139, 117, 252, 139, 93, 248, 137, 236, 93, 194 DATA 4, 0, 141, 118, 0, 61, 5, 0, 0, 192, 117, 232, 199, 4, 36, 11, 0, 0, 0, 49, 246, 137, 116, 36, 4, 232, 135, 7, 0, 0, 131 DATA 248, 1, 116, 52, 133, 192, 116, 205, 199, 4, 36, 11, 0, 0, 0, 255, 208, 235, 161, 199, 4, 36, 8, 0, 0, 0, 187, 1, 0, 0, 0 DATA 137, 92, 36, 4, 232, 94, 7, 0, 0, 133, 246, 116, 136, 232, 149, 2, 0, 0, 187, 255, 255, 255, 255, 235, 129, 199, 4, 36, 11, 0, 0 DATA 0, 185, 1, 0, 0, 0, 187, 255, 255, 255, 255, 137, 76, 36, 4, 232, 52, 7, 0, 0, 233, 98, 255, 255, 255, 235, 13, 144, 144, 144, 144 DATA 144, 144, 144, 144, 144, 144, 144, 144, 144, 85, 137, 229, 83, 131, 236, 36, 141, 93, 248, 199, 4, 36, 0, 16, 64, 0, 232, 186, 7, 0, 0 DATA 131, 236, 4, 232, 66, 2, 0, 0, 199, 69, 248, 0, 0, 0, 0, 184, 0, 64, 64, 0, 141, 85, 244, 137, 92, 36, 16, 139, 13, 0, 32 DATA 64, 0, 137, 68, 36, 4, 137, 84, 36, 8, 137, 76, 36, 12, 199, 4, 36, 4, 64, 64, 0, 232, 1, 7, 0, 0, 161, 16, 64, 64, 0 DATA 133, 192, 116, 88, 163, 16, 32, 64, 0, 139, 21, 244, 80, 64, 0, 133, 210, 15, 133, 139, 0, 0, 0, 131, 250, 224, 116, 32, 161, 16, 64 DATA 64, 0, 137, 68, 36, 4, 139, 29, 244, 80, 64, 0, 139, 75, 48, 137, 12, 36, 232, 182, 6, 0, 0, 139, 21, 244, 80, 64, 0, 131, 250 DATA 192, 116, 27, 139, 29, 16, 64, 64, 0, 137, 92, 36, 4, 139, 13, 244, 80, 64, 0, 139, 81, 80, 137, 20, 36, 232, 144, 6, 0, 0, 232 DATA 123, 6, 0, 0, 139, 29, 16, 32, 64, 0, 137, 24, 232, 110, 1, 0, 0, 131, 228, 240, 232, 70, 6, 0, 0, 139, 8, 137, 76, 36, 8 DATA 139, 21, 0, 64, 64, 0, 137, 84, 36, 4, 161, 4, 64, 64, 0, 137, 4, 36, 232, 169, 0, 0, 0, 137, 195, 232, 18, 6, 0, 0, 137 DATA 28, 36, 232, 234, 6, 0, 0, 137, 68, 36, 4, 139, 21, 244, 80, 64, 0, 139, 66, 16, 137, 4, 36, 232, 53, 6, 0, 0, 139, 21, 244 DATA 80, 64, 0, 233, 85, 255, 255, 255, 141, 118, 0, 141, 188, 39, 0, 0, 0, 0, 85, 137, 229, 131, 236, 8, 199, 4, 36, 1, 0, 0, 0 DATA 255, 21, 236, 80, 64, 0, 232, 200, 254, 255, 255, 144, 141, 180, 38, 0, 0, 0, 0, 85, 137, 229, 131, 236, 8, 199, 4, 36, 2, 0, 0 DATA 0, 255, 21, 236, 80, 64, 0, 232, 168, 254, 255, 255, 144, 141, 180, 38, 0, 0, 0, 0, 85, 139, 13, 4, 81, 64, 0, 137, 229, 93, 255 DATA 225, 141, 116, 38, 0, 85, 139, 13, 248, 80, 64, 0, 137, 229, 93, 255, 225, 144, 144, 144, 144, 85, 137, 229, 93, 233, 167, 2, 0, 0, 144 DATA 144, 144, 144, 144, 144, 144, 85, 137, 229, 131, 236, 24, 131, 228, 240, 184, 0, 0, 0, 0, 131, 192, 15, 131, 192, 15, 193, 232, 4, 193, 224 DATA 4, 137, 69, 244, 139, 69, 244, 232, 187, 4, 0, 0, 232, 86, 1, 0, 0, 199, 68, 36, 4, 0, 48, 64, 0, 199, 4, 36, 2, 48, 64 DATA 0, 232, 162, 5, 0, 0, 137, 69, 248, 102, 199, 69, 254, 0, 0, 102, 129, 125, 254, 255, 0, 127, 71, 15, 191, 69, 254, 137, 4, 36, 232 DATA 213, 5, 0, 0, 131, 236, 4, 102, 133, 192, 117, 21, 199, 68, 36, 4, 14, 48, 64, 0, 139, 69, 248, 137, 4, 36, 232, 90, 5, 0, 0 DATA 235, 19, 199, 68, 36, 4, 16, 48, 64, 0, 139, 69, 248, 137, 4, 36, 232, 69, 5, 0, 0, 15, 183, 69, 254, 64, 102, 137, 69, 254, 235 DATA 177, 184, 0, 0, 0, 0, 201, 195, 144, 144, 144, 85, 185, 0, 49, 64, 0, 137, 229, 235, 20, 141, 182, 0, 0, 0, 0, 139, 81, 4, 139 DATA 1, 131, 193, 8, 1, 130, 0, 0, 64, 0, 129, 249, 0, 49, 64, 0, 114, 234, 93, 195, 144, 144, 144, 144, 144, 144, 144, 144, 85, 137, 229 DATA 219, 227, 93, 195, 144, 144, 144, 144, 144, 144, 144, 144, 144, 85, 137, 229, 131, 236, 8, 161, 32, 32, 64, 0, 139, 8, 133, 201, 116, 38, 235 DATA 13, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 255, 16, 139, 13, 32, 32, 64, 0, 139, 81, 4, 141, 65, 4, 163, 32, 32 DATA 64, 0, 133, 210, 117, 233, 201, 195, 141, 180, 38, 0, 0, 0, 0, 85, 137, 229, 83, 131, 236, 4, 161, 48, 25, 64, 0, 131, 248, 255, 116 DATA 41, 133, 192, 137, 195, 116, 19, 137, 246, 141, 188, 39, 0, 0, 0, 0, 255, 20, 157, 48, 25, 64, 0, 75, 117, 246, 199, 4, 36, 112, 19 DATA 64, 0, 232, 122, 254, 255, 255, 91, 91, 93, 195, 139, 13, 52, 25, 64, 0, 49, 192, 133, 201, 235, 10, 64, 139, 20, 133, 52, 25, 64, 0 DATA 133, 210, 117, 244, 235, 189, 141, 182, 0, 0, 0, 0, 141, 191, 0, 0, 0, 0, 85, 137, 229, 83, 131, 236, 4, 161, 32, 64, 64, 0, 133 DATA 192, 117, 54, 161, 48, 25, 64, 0, 187, 1, 0, 0, 0, 137, 29, 32, 64, 64, 0, 131, 248, 255, 116, 37, 133, 192, 137, 195, 116, 15, 144 DATA 141, 116, 38, 0, 255, 20, 157, 48, 25, 64, 0, 75, 117, 246, 199, 4, 36, 112, 19, 64, 0, 232, 10, 254, 255, 255, 91, 91, 93, 195, 139 DATA 13, 52, 25, 64, 0, 49, 192, 133, 201, 235, 10, 64, 139, 20, 133, 52, 25, 64, 0, 133, 210, 117, 244, 235, 193, 144, 144, 144, 144, 144, 144 DATA 144, 144, 144, 144, 144, 144, 85, 161, 112, 64, 64, 0, 137, 229, 93, 139, 72, 4, 255, 225, 137, 246, 85, 186, 66, 0, 0, 0, 137, 229, 83 DATA 15, 183, 192, 131, 236, 100, 137, 84, 36, 8, 141, 85, 168, 49, 219, 137, 84, 36, 4, 137, 4, 36, 255, 21, 208, 80, 64, 0, 186, 31, 0 DATA 0, 0, 185, 1, 0, 0, 0, 131, 236, 12, 133, 192, 117, 7, 235, 70, 1, 201, 74, 120, 14, 128, 124, 42, 168, 65, 117, 244, 9, 203, 1 DATA 201, 74, 121, 242, 131, 59, 60, 117, 7, 137, 216, 139, 93, 252, 201, 195, 185, 68, 48, 64, 0, 186, 234, 0, 0, 0, 137, 76, 36, 12, 137 DATA 84, 36, 8, 199, 4, 36, 113, 48, 64, 0, 184, 144, 48, 64, 0, 137, 68, 36, 4, 232, 146, 2, 0, 0, 184, 188, 48, 64, 0, 187, 228 DATA 0, 0, 0, 137, 68, 36, 12, 137, 92, 36, 8, 235, 215, 141, 180, 38, 0, 0, 0, 0, 141, 188, 39, 0, 0, 0, 0, 85, 137, 229, 87 DATA 86, 83, 129, 236, 204, 0, 0, 0, 139, 13, 112, 64, 64, 0, 133, 201, 116, 8, 141, 101, 244, 91, 94, 95, 93, 195, 199, 69, 152, 65, 65 DATA 65, 65, 161, 32, 48, 64, 0, 141, 117, 152, 199, 69, 156, 65, 65, 65, 65, 199, 69, 160, 65, 65, 65, 65, 137, 69, 184, 161, 36, 48, 64 DATA 0, 199, 69, 164, 65, 65, 65, 65, 199, 69, 168, 65, 65, 65, 65, 137, 69, 188, 161, 40, 48, 64, 0, 199, 69, 172, 65, 65, 65, 65, 199 DATA 69, 176, 65, 65, 65, 65, 137, 69, 192, 161, 44, 48, 64, 0, 199, 69, 180, 65, 65, 65, 65, 137, 69, 196, 161, 48, 48, 64, 0, 137, 69 DATA 200, 161, 52, 48, 64, 0, 137, 69, 204, 161, 56, 48, 64, 0, 137, 69, 208, 161, 60, 48, 64, 0, 137, 69, 212, 15, 183, 5, 64, 48, 64 DATA 0, 102, 137, 69, 216, 137, 52, 36, 255, 21, 204, 80, 64, 0, 15, 183, 192, 131, 236, 4, 133, 192, 137, 133, 68, 255, 255, 255, 15, 133, 59 DATA 1, 0, 0, 199, 4, 36, 60, 0, 0, 0, 232, 147, 2, 0, 0, 133, 192, 137, 195, 15, 132, 89, 1, 0, 0, 252, 137, 199, 139, 133, 68 DATA 255, 255, 255, 185, 15, 0, 0, 0, 243, 171, 199, 67, 4, 160, 24, 64, 0, 185, 1, 0, 0, 0, 199, 67, 8, 128, 20, 64, 0, 161, 64 DATA 64, 64, 0, 199, 3, 60, 0, 0, 0, 139, 21, 68, 64, 64, 0, 199, 67, 40, 0, 0, 0, 0, 137, 67, 20, 161, 48, 32, 64, 0, 137 DATA 83, 24, 139, 21, 52, 32, 64, 0, 137, 67, 28, 161, 80, 64, 64, 0, 137, 83, 32, 199, 67, 48, 255, 255, 255, 255, 137, 67, 44, 139, 21 DATA 60, 32, 64, 0, 161, 56, 32, 64, 0, 137, 83, 56, 186, 31, 0, 0, 0, 137, 67, 52, 137, 246, 137, 216, 33, 200, 131, 248, 1, 25, 192 DATA 36, 32, 1, 201, 4, 65, 136, 132, 42, 72, 255, 255, 255, 74, 121, 231, 161, 32, 48, 64, 0, 137, 133, 104, 255, 255, 255, 161, 36, 48, 64 DATA 0, 137, 133, 108, 255, 255, 255, 161, 40, 48, 64, 0, 137, 133, 112, 255, 255, 255, 161, 44, 48, 64, 0, 137, 133, 116, 255, 255, 255, 161, 48 DATA 48, 64, 0, 137, 133, 120, 255, 255, 255, 161, 52, 48, 64, 0, 137, 133, 124, 255, 255, 255, 161, 56, 48, 64, 0, 137, 69, 128, 161, 60, 48 DATA 64, 0, 137, 69, 132, 15, 183, 5, 64, 48, 64, 0, 102, 137, 69, 136, 141, 133, 72, 255, 255, 255, 137, 4, 36, 255, 21, 196, 80, 64, 0 DATA 15, 183, 248, 131, 236, 4, 133, 255, 117, 66, 49, 210, 133, 210, 117, 30, 137, 28, 36, 232, 99, 1, 0, 0, 137, 52, 36, 255, 21, 204, 80 DATA 64, 0, 131, 236, 4, 15, 183, 192, 232, 95, 253, 255, 255, 137, 195, 137, 29, 112, 64, 64, 0, 141, 67, 4, 163, 96, 64, 64, 0, 141, 67 DATA 8, 163, 128, 64, 64, 0, 141, 101, 244, 91, 94, 95, 93, 195, 137, 248, 232, 56, 253, 255, 255, 57, 216, 137, 250, 117, 177, 235, 177, 232, 59 DATA 1, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 81, 137, 225, 131, 193, 8, 61, 0, 16, 0, 0, 114, 16, 129, 233, 0, 16 DATA 0, 0, 131, 9, 0, 45, 0, 16, 0, 0, 235, 233, 41, 193, 131, 9, 0, 137, 224, 137, 204, 139, 8, 139, 64, 4, 255, 224, 144, 144, 144 DATA 85, 137, 229, 131, 236, 24, 139, 69, 20, 137, 68, 36, 16, 139, 69, 16, 137, 68, 36, 12, 139, 69, 12, 137, 68, 36, 8, 139, 69, 8, 137 DATA 68, 36, 4, 161, 244, 80, 64, 0, 131, 192, 64, 137, 4, 36, 232, 142, 0, 0, 0, 161, 244, 80, 64, 0, 131, 192, 64, 137, 4, 36, 232 DATA 206, 0, 0, 0, 232, 185, 0, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 255, 37, 236, 80, 64, 0, 144, 144, 0, 0, 0, 0, 0 DATA 0, 0, 0, 255, 37, 240, 80, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 228, 80, 64, 0, 144, 144, 0, 0, 0, 0 DATA 0, 0, 0, 0, 255, 37, 28, 81, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 232, 80, 64, 0, 144, 144, 0, 0, 0 DATA 0, 0, 0, 0, 0, 255, 37, 252, 80, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 224, 80, 64, 0, 144, 144, 0, 0 DATA 0, 0, 0, 0, 0, 0, 255, 37, 16, 81, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 12, 81, 64, 0, 144, 144, 0 DATA 0, 0, 0, 0, 0, 0, 0, 255, 37, 20, 81, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 24, 81, 64, 0, 144, 144 DATA 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 0, 81, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 8, 81, 64, 0, 144 DATA 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 40, 81, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 212, 80, 64, 0 DATA 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 200, 80, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 208, 80, 64 DATA 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 204, 80, 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 196, 80 DATA 64, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 85, 137, 229, 93, 233, 87, 249, 255, 255, 144, 144, 144, 144, 144, 144, 144, 255, 255, 255 DATA 255, 32, 25, 64, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 25, 64, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 119, 0, 71, 69, 84, 75, 79, 85, 84, 46, 84, 77, 80, 0, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 45, 76, 73, 66, 71, 67, 67, 87, 51, 50, 45, 69, 72, 45, 50, 45, 83, 74, 76, 74, 45, 71, 84, 72, 82, 45 DATA 77, 73, 78, 71, 87, 51, 50, 0, 0, 0, 119, 51, 50, 95, 115, 104, 97, 114, 101, 100, 112, 116, 114, 45, 62, 115, 105, 122, 101, 32, 61 DATA 61, 32, 115, 105, 122, 101, 111, 102, 40, 87, 51, 50, 95, 69, 72, 95, 83, 72, 65, 82, 69, 68, 41, 0, 37, 115, 58, 37, 117, 58, 32 DATA 102, 97, 105, 108, 101, 100, 32, 97, 115, 115, 101, 114, 116, 105, 111, 110, 32, 96, 37, 115, 39, 10, 0, 0, 46, 46, 47, 46, 46, 47, 103 DATA 99, 99, 47, 103, 99, 99, 47, 99, 111, 110, 102, 105, 103, 47, 105, 51, 56, 54, 47, 119, 51, 50, 45, 115, 104, 97, 114, 101, 100, 45, 112 DATA 116, 114, 46, 99, 0, 0, 71, 101, 116, 65, 116, 111, 109, 78, 97, 109, 101, 65, 32, 40, 97, 116, 111, 109, 44, 32, 115, 44, 32, 115, 105 DATA 122, 101, 111, 102, 40, 115, 41, 41, 32, 33, 61, 32, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 116, 82, 0, 0, 196, 80, 0, 0, 112, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 82, 0, 0, 224, 80, 0, 0, 184, 80 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 82, 0, 0, 40, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 81, 0, 0, 60, 81, 0, 0, 76, 81, 0, 0, 88, 81, 0, 0, 104, 81, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 136, 81, 0, 0, 152, 81, 0, 0, 168, 81, 0, 0, 184, 81, 0, 0, 204, 81, 0, 0, 216, 81, 0 DATA 0, 224, 81, 0, 0, 236, 81, 0, 0, 248, 81, 0, 0, 0, 82, 0, 0, 12, 82, 0, 0, 24, 82, 0, 0, 32, 82, 0, 0, 44, 82 DATA 0, 0, 52, 82, 0, 0, 64, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48 DATA 81, 0, 0, 60, 81, 0, 0, 76, 81, 0, 0, 88, 81, 0, 0, 104, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 81, 0, 0 DATA 152, 81, 0, 0, 168, 81, 0, 0, 184, 81, 0, 0, 204, 81, 0, 0, 216, 81, 0, 0, 224, 81, 0, 0, 236, 81, 0, 0, 248, 81, 0 DATA 0, 0, 82, 0, 0, 12, 82, 0, 0, 24, 82, 0, 0, 32, 82, 0, 0, 44, 82, 0, 0, 52, 82, 0, 0, 64, 82, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 76, 82, 0, 0, 0, 0, 0, 0, 1, 0, 65, 100, 100, 65, 116, 111, 109, 65, 0, 0, 155, 0, 69, 120, 105 DATA 116, 80, 114, 111, 99, 101, 115, 115, 0, 0, 0, 175, 0, 70, 105, 110, 100, 65, 116, 111, 109, 65, 0, 220, 0, 71, 101, 116, 65, 116, 111 DATA 109, 78, 97, 109, 101, 65, 0, 0, 223, 2, 83, 101, 116, 85, 110, 104, 97, 110, 100, 108, 101, 100, 69, 120, 99, 101, 112, 116, 105, 111, 110 DATA 70, 105, 108, 116, 101, 114, 0, 0, 0, 39, 0, 95, 95, 103, 101, 116, 109, 97, 105, 110, 97, 114, 103, 115, 0, 60, 0, 95, 95, 112, 95 DATA 95, 101, 110, 118, 105, 114, 111, 110, 0, 0, 62, 0, 95, 95, 112, 95, 95, 102, 109, 111, 100, 101, 0, 0, 0, 0, 80, 0, 95, 95, 115 DATA 101, 116, 95, 97, 112, 112, 95, 116, 121, 112, 101, 0, 0, 0, 0, 121, 0, 95, 99, 101, 120, 105, 116, 0, 0, 0, 0, 233, 0, 95, 105 DATA 111, 98, 0, 0, 94, 1, 95, 111, 110, 101, 120, 105, 116, 0, 0, 0, 132, 1, 95, 115, 101, 116, 109, 111, 100, 101, 0, 0, 21, 2, 97 DATA 98, 111, 114, 116, 0, 28, 2, 97, 116, 101, 120, 105, 116, 0, 0, 0, 0, 48, 2, 102, 102, 108, 117, 115, 104, 0, 0, 0, 0, 56, 2 DATA 102, 111, 112, 101, 110, 0, 57, 2, 102, 112, 114, 105, 110, 116, 102, 0, 0, 0, 63, 2, 102, 114, 101, 101, 0, 0, 114, 2, 109, 97, 108 DATA 108, 111, 99, 0, 0, 0, 0, 144, 2, 115, 105, 103, 110, 97, 108, 0, 0, 0, 0, 222, 0, 71, 101, 116, 65, 115, 121, 110, 99, 75, 101 DATA 121, 83, 116, 97, 116, 101, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 75, 69, 82 DATA 78, 69, 76, 51, 50, 46, 100, 108, 108, 0, 0, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80 DATA 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20 DATA 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 20, 80, 0, 0, 109, 115, 118, 99, 114, 116, 46, 100, 108, 108, 0, 0, 40, 80, 0, 0 DATA 85, 83, 69, 82, 51, 50, 46, 100, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 15, 0 DATA 0, 0, 254, 255, 0, 0, 103, 1, 99, 114, 116, 49, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 DATA 0, 0, 0, 0, 0, 0, 0, 1, 0, 32, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 30, 0, 0, 0, 0, 1, 0, 0, 1, 0, 32, 0, 3, 0, 0, 0, 0, 0, 50, 0, 0, 0, 32, 2, 0, 0, 1 DATA 0, 32, 0, 2, 0, 0, 0, 0, 0, 66, 0, 0, 0, 64, 2, 0, 0, 1, 0, 32, 0, 2, 0, 95, 97, 116, 101, 120, 105, 116, 0 DATA 96, 2, 0, 0, 1, 0, 32, 0, 2, 0, 95, 95, 111, 110, 101, 120, 105, 116, 112, 2, 0, 0, 1, 0, 32, 0, 2, 0, 46, 116, 101 DATA 120, 116, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 124, 2, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 1, 8, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 25, 0, 0, 0, 254, 255, 0, 0, 103, 1, 99 DATA 114, 116, 115, 116, 117, 102, 102, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 128, 2, 0, 0, 1, 0 DATA 32, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 128 DATA 2, 0, 0, 1, 0, 0, 0, 3, 1, 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116 DATA 97, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 46, 98, 115, 115, 0, 0, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 36, 0, 0, 0, 254, 255, 0, 0, 103, 1, 71, 101, 116, 75, 101, 121, 77 DATA 97, 105, 110, 46, 99, 112, 112, 0, 0, 0, 0, 95, 109, 97, 105, 110, 0, 0, 0, 144, 2, 0, 0, 1, 0, 32, 0, 2, 0, 46, 116 DATA 101, 120, 116, 0, 0, 0, 144, 2, 0, 0, 1, 0, 0, 0, 3, 1, 157, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 114, 100, 97, 116, 97, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 1 DATA 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 44, 0, 0, 0, 254 DATA 255, 0, 0, 103, 1, 67, 82, 84, 103, 108, 111, 98, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0 DATA 48, 3, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97 DATA 116, 97, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 52, 0, 0, 0, 254, 255, 0, 0, 103, 1, 67, 82, 84, 102, 109, 111 DATA 100, 101, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 48, 3, 0, 0, 1, 0, 0, 0, 3, 1, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 16, 0, 0, 0, 2, 0 DATA 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 16 DATA 0, 0, 0, 4, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108 DATA 101, 0, 0, 0, 60, 0, 0, 0, 254, 255, 0, 0, 103, 1, 116, 120, 116, 109, 111, 100, 101, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 46, 116, 101, 120, 116, 0, 0, 0, 48, 3, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 70, 0, 0, 0, 254, 255, 0 DATA 0, 103, 1, 112, 115, 101, 117, 100, 111, 45, 114, 101, 108, 111, 99, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 48, 3 DATA 0, 0, 1, 0, 32, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116 DATA 0, 0, 0, 48, 3, 0, 0, 1, 0, 0, 0, 3, 1, 40, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 46, 100, 97, 116, 97, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 81, 0, 0, 0, 254, 255, 0, 0, 103, 1, 67, 82, 84 DATA 95, 102, 112, 49, 48, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 95, 102, 112, 114, 101, 115, 101, 116, 96, 3, 0, 0, 1, 0, 32, 0 DATA 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 96, 3, 0 DATA 0, 1, 0, 32, 0, 2, 0, 46, 116, 101, 120, 116, 0, 0, 0, 96, 3, 0, 0, 1, 0, 0, 0, 3, 1, 7, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 32, 0, 0, 0, 4, 0 DATA 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 95 DATA 0, 0, 0, 254, 255, 0, 0, 103, 1, 103, 99, 99, 109, 97, 105, 110, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 138, 0, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 3, 0, 112, 46, 48, 0, 0, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 3 DATA 0, 0, 0, 0, 0, 151, 0, 0, 0, 112, 3, 0, 0, 1, 0, 32, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 176, 3, 0, 0, 1, 0, 32, 0, 2, 0, 95, 95, 95, 109, 97, 105, 110 DATA 0, 16, 4, 0, 0, 1, 0, 32, 0, 2, 0, 46, 116, 101, 120, 116, 0, 0, 0, 112, 3, 0, 0, 1, 0, 0, 0, 3, 1, 4, 1 DATA 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0 DATA 0, 3, 1, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 32, 0 DATA 0, 0, 4, 0, 0, 0, 3, 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101 DATA 0, 0, 0, 254, 0, 0, 0, 254, 255, 0, 0, 103, 1, 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 46, 116, 101, 120, 116, 0, 0, 0, 128, 4, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 48, 0, 0, 0, 4, 0, 0, 0, 3, 1, 2, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 32, 0, 0, 0, 3, 0, 0, 0 DATA 3, 0, 0, 0, 0, 0, 226, 0, 0, 0, 128, 4, 0, 0, 1, 0, 32, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 0, 0, 144, 4, 0, 0, 1, 0, 32, 0, 3, 0, 0, 0, 0, 0, 27, 1 DATA 0, 0, 64, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 46, 1, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0 DATA 0, 0, 0, 57, 1, 0, 0, 80, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 70, 1, 0, 0, 56, 0, 0, 0, 2, 0 DATA 0, 0, 3, 0, 0, 0, 0, 0, 81, 1, 0, 0, 48, 5, 0, 0, 1, 0, 32, 0, 2, 0, 46, 116, 101, 120, 116, 0, 0, 0, 128 DATA 4, 0, 0, 1, 0, 0, 0, 3, 1, 229, 2, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116 DATA 97, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 3, 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 46, 98, 115, 115, 0, 0, 0, 0, 64, 0, 0, 0, 4, 0, 0, 0, 3, 1, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 46, 114, 100, 97, 116, 97, 0, 0, 32, 0, 0, 0, 3, 0, 0, 0, 3, 1, 195, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 114, 111, 98, 101, 0, 0, 0, 118, 7, 0, 0, 1, 0, 0, 0, 6, 0, 100, 111 DATA 110, 101, 0, 0, 0, 0, 141, 7, 0, 0, 1, 0, 0, 0, 6, 0, 46, 116, 101, 120, 116, 0, 0, 0, 112, 7, 0, 0, 1, 0, 0 DATA 0, 3, 1, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0 DATA 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0 DATA 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 46, 116, 101, 120, 116, 0, 0, 0, 160, 7, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 1, 0, 0, 160, 7, 0, 0, 1, 0, 32, 0 DATA 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 160, 7, 0 DATA 0, 1, 0, 0, 0, 3, 1, 71, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0 DATA 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46 DATA 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 240, 7, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64 DATA 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97 DATA 116, 97, 36, 55, 152, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 244, 0, 0, 0, 5, 0, 0, 0, 3 DATA 0, 46, 105, 100, 97, 116, 97, 36, 52, 132, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 216, 1, 0, 0 DATA 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 240, 7, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0 DATA 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105 DATA 100, 97, 116, 97, 36, 55, 144, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 236, 0, 0, 0, 5, 0, 0 DATA 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 124, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 184, 1 DATA 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 0, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97 DATA 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0 DATA 46, 105, 100, 97, 116, 97, 36, 55, 168, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 4, 1, 0, 0, 5 DATA 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 148, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54 DATA 0, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 0, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97 DATA 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0 DATA 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 156, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 248, 0, 0 DATA 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 136, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97 DATA 36, 54, 224, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 0, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46 DATA 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0 DATA 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 148, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 240 DATA 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 128, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97 DATA 116, 97, 36, 54, 204, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 16, 8, 0, 0, 1, 0, 0, 0, 3 DATA 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0 DATA 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 136, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36 DATA 53, 228, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 116, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105 DATA 100, 97, 116, 97, 36, 54, 152, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 32, 8, 0, 0, 1, 0, 0 DATA 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0 DATA 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 192, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116 DATA 97, 36, 53, 28, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 172, 0, 0, 0, 5, 0, 0, 0, 3, 0 DATA 46, 105, 100, 97, 116, 97, 36, 54, 64, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 48, 8, 0, 0, 1 DATA 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0 DATA 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 140, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100 DATA 97, 116, 97, 36, 53, 232, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 120, 0, 0, 0, 5, 0, 0, 0 DATA 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 168, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 64, 8, 0 DATA 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0 DATA 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 160, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46 DATA 105, 100, 97, 116, 97, 36, 53, 252, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 140, 0, 0, 0, 5, 0 DATA 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 236, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 80 DATA 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115 DATA 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 132, 2, 0, 0, 5, 0, 0, 0, 3 DATA 0, 46, 105, 100, 97, 116, 97, 36, 53, 224, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 112, 0, 0, 0 DATA 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 136, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0 DATA 0, 96, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98 DATA 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 180, 2, 0, 0, 5, 0, 0 DATA 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 16, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 160, 0 DATA 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 32, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116 DATA 0, 0, 0, 112, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0 DATA 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 176, 2, 0, 0, 5 DATA 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 12, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52 DATA 156, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 24, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101 DATA 120, 116, 0, 0, 0, 128, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0 DATA 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 184, 2, 0 DATA 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 20, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97 DATA 36, 52, 164, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 44, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46 DATA 116, 101, 120, 116, 0, 0, 0, 144, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0 DATA 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 188 DATA 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 24, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97 DATA 116, 97, 36, 52, 168, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 52, 2, 0, 0, 5, 0, 0, 0, 3 DATA 0, 46, 116, 101, 120, 116, 0, 0, 0, 160, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0 DATA 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36 DATA 55, 164, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 0, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105 DATA 100, 97, 116, 97, 36, 52, 144, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 248, 1, 0, 0, 5, 0, 0 DATA 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 176, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0 DATA 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116 DATA 97, 36, 55, 172, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 8, 1, 0, 0, 5, 0, 0, 0, 3, 0 DATA 46, 105, 100, 97, 116, 97, 36, 52, 152, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 12, 2, 0, 0, 5 DATA 0, 0, 0, 3, 0, 46, 102, 105, 108, 101, 0, 0, 0, 14, 1, 0, 0, 254, 255, 0, 0, 103, 1, 102, 97, 107, 101, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 110, 97, 109, 101, 0, 0, 0, 112, 0, 0, 0, 5, 0, 0, 0, 3, 0, 102, 116, 104 DATA 117, 110, 107, 0, 0, 224, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 192, 8, 0, 0, 1, 0, 0, 0 DATA 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0 DATA 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0 DATA 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46 DATA 105, 100, 97, 116, 97, 36, 50, 20, 0, 0, 0, 5, 0, 0, 0, 3, 1, 20, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 53, 220, 0, 0, 0, 5, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 52, 108, 0, 0, 0, 5, 0, 0, 0, 3, 1, 4, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 35, 1, 0, 0, 254, 255, 0, 0, 103 DATA 1, 102, 97, 107, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 192, 8, 0, 0 DATA 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0 DATA 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98 DATA 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 52, 176, 0, 0, 0, 5, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 53, 32, 1, 0, 0, 5, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 55, 196, 2, 0, 0, 5, 0, 0, 0, 3, 1 DATA 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 192, 8, 0, 0, 1 DATA 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0 DATA 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 208, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100 DATA 97, 116, 97, 36, 53, 40, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 184, 0, 0, 0, 5, 0, 0, 0 DATA 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 76, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 102, 105, 108, 101, 0, 0, 0, 51, 1, 0 DATA 0, 254, 255, 0, 0, 103, 1, 102, 97, 107, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 110, 97, 109, 101, 0 DATA 0, 0, 184, 0, 0, 0, 5, 0, 0, 0, 3, 0, 102, 116, 104, 117, 110, 107, 0, 0, 40, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46 DATA 116, 101, 120, 116, 0, 0, 0, 208, 8, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 50, 40, 0, 0, 0, 5, 0, 0, 0, 3 DATA 1, 20, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 53, 36, 1, 0, 0 DATA 5, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36 DATA 52, 180, 0, 0, 0, 5, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102 DATA 105, 108, 101, 0, 0, 0, 100, 1, 0, 0, 254, 255, 0, 0, 103, 1, 102, 97, 107, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 208, 8, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 52, 188, 0, 0, 0, 5 DATA 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 53 DATA 44, 1, 0, 0, 5, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100 DATA 97, 116, 97, 36, 55, 212, 2, 0, 0, 5, 0, 0, 0, 3, 1, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 208, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0 DATA 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97 DATA 36, 55, 112, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 212, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46 DATA 105, 100, 97, 116, 97, 36, 52, 100, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 104, 1, 0, 0, 5, 0 DATA 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 224, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64 DATA 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105, 100, 97 DATA 116, 97, 36, 55, 100, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 200, 0, 0, 0, 5, 0, 0, 0, 3 DATA 0, 46, 105, 100, 97, 116, 97, 36, 52, 88, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 60, 1, 0, 0 DATA 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 240, 8, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97, 0, 0 DATA 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0, 46, 105 DATA 100, 97, 116, 97, 36, 55, 108, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 208, 0, 0, 0, 5, 0, 0 DATA 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 96, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54, 88, 1 DATA 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 0, 9, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97, 116, 97 DATA 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 0 DATA 46, 105, 100, 97, 116, 97, 36, 55, 104, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 204, 0, 0, 0, 5 DATA 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 92, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 54 DATA 76, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 16, 9, 0, 0, 1, 0, 0, 0, 3, 0, 46, 100, 97 DATA 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0 DATA 3, 0, 46, 105, 100, 97, 116, 97, 36, 55, 96, 2, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 53, 196, 0, 0 DATA 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97, 36, 52, 84, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 105, 100, 97, 116, 97 DATA 36, 54, 48, 1, 0, 0, 5, 0, 0, 0, 3, 0, 46, 102, 105, 108, 101, 0, 0, 0, 116, 1, 0, 0, 254, 255, 0, 0, 103, 1, 102 DATA 97, 107, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 110, 97, 109, 101, 0, 0, 0, 84, 0, 0, 0, 5, 0 DATA 0, 0, 3, 0, 102, 116, 104, 117, 110, 107, 0, 0, 196, 0, 0, 0, 5, 0, 0, 0, 3, 0, 46, 116, 101, 120, 116, 0, 0, 0, 32 DATA 9, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116 DATA 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 50, 0, 0, 0, 0, 5, 0, 0, 0, 3, 1, 20, 0, 0, 0, 3, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 53, 192, 0, 0, 0, 5, 0, 0, 0, 3, 1, 4, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 52, 80, 0, 0, 0, 5, 0, 0 DATA 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0, 0, 0, 130, 1 DATA 0, 0, 254, 255, 0, 0, 103, 1, 102, 97, 107, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, 101, 120, 116 DATA 0, 0, 0, 32, 9, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 52, 104, 0, 0, 0, 5, 0, 0, 0, 3, 1, 4, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 53, 216, 0, 0, 0, 5, 0, 0, 0 DATA 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 105, 100, 97, 116, 97, 36, 55, 116, 2, 0 DATA 0, 5, 0, 0, 0, 3, 1, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 102, 105, 108, 101, 0 DATA 0, 0, 142, 1, 0, 0, 254, 255, 0, 0, 103, 1, 99, 114, 116, 115, 116, 117, 102, 102, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 120, 1, 0, 0, 32, 9, 0, 0, 1, 0, 32, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA 0, 0, 0, 0, 46, 116, 101, 120, 116, 0, 0, 0, 32, 9, 0, 0, 1, 0, 0, 0, 3, 1, 9, 0, 0, 0, 1, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 100, 97, 116, 97, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 3, 1, 0, 0, 0, 0 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 98, 115, 115, 0, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 3 DATA 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 99, 116, 111, 114, 115, 0, 0, 52, 9, 0, 0 DATA 1, 0, 0, 0, 3, 1, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 95, 99, 101, 120, 105, 116 DATA 0, 0, 8, 0, 0, 1, 0, 32, 0, 2, 0, 0, 0, 0, 0, 138, 1, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0 DATA 0, 0, 169, 1, 0, 0, 252, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0 DATA 0, 2, 0, 0, 0, 0, 0, 200, 1, 0, 0, 60, 9, 0, 0, 1, 0, 0, 0, 2, 0, 95, 102, 114, 101, 101, 0, 0, 0, 128, 8 DATA 0, 0, 1, 0, 32, 0, 2, 0, 0, 0, 0, 0, 215, 1, 0, 0, 248, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 230 DATA 1, 0, 0, 48, 8, 0, 0, 1, 0, 32, 0, 2, 0, 0, 0, 0, 0, 242, 1, 0, 0, 208, 8, 0, 0, 1, 0, 0, 0, 2, 0 DATA 0, 0, 0, 0, 17, 2, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 44, 2, 0, 0, 0, 0, 0, 0, 1 DATA 0, 0, 0, 2, 0, 0, 0, 0, 0, 59, 2, 0, 0, 196, 2, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 79, 2, 0, 0 DATA 204, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 98, 2, 0, 0, 0, 1, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0 DATA 0, 111, 2, 0, 0, 0, 16, 0, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 136, 2, 0, 0, 0, 0, 32, 0, 255, 255, 0, 0 DATA 2, 0, 0, 0, 0, 0, 162, 2, 0, 0, 4, 0, 0, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 190, 2, 0, 0, 40, 1, 0 DATA 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 216, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 234, 2 DATA 0, 0, 16, 9, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 246, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0 DATA 0, 0, 0, 8, 3, 0, 0, 112, 7, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 18, 3, 0, 0, 0, 0, 0, 0, 1, 0 DATA 0, 0, 2, 0, 0, 0, 0, 0, 34, 3, 0, 0, 228, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 54, 3, 0, 0, 40 DATA 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 73, 3, 0, 0, 244, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0 DATA 85, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 99, 3, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 2 DATA 0, 0, 0, 0, 0, 134, 3, 0, 0, 0, 16, 0, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 158, 3, 0, 0, 16, 8, 0, 0 DATA 1, 0, 32, 0, 2, 0, 0, 0, 0, 0, 172, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 190, 3, 0 DATA 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 206, 3, 0, 0, 28, 1, 0, 0, 5, 0, 0, 0, 2, 0, 95, 95 DATA 100, 108, 108, 95, 95, 0, 0, 0, 0, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 220, 3, 0, 0, 0, 0, 0, 0, 255, 255, 0 DATA 0, 2, 0, 0, 0, 0, 0, 241, 3, 0, 0, 4, 1, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 255, 3, 0, 0, 20, 0 DATA 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 64, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 33 DATA 4, 0, 0, 0, 16, 0, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 55, 4, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 2, 0 DATA 0, 0, 0, 0, 85, 4, 0, 0, 232, 0, 0, 0, 5, 0, 0, 0, 2, 0, 95, 95, 97, 114, 103, 99, 0, 0, 4, 0, 0, 0, 4 DATA 0, 0, 0, 2, 0, 0, 0, 0, 0, 103, 4, 0, 0, 224, 8, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 118, 4, 0, 0 DATA 64, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 131, 4, 0, 0, 80, 8, 0, 0, 1, 0, 32, 0, 2, 0, 0, 0, 0 DATA 0, 146, 4, 0, 0, 112, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 163, 4, 0, 0, 48, 9, 0, 0, 1, 0, 0, 0 DATA 2, 0, 0, 0, 0, 0, 177, 4, 0, 0, 240, 7, 0, 0, 1, 0, 0, 0, 2, 0, 95, 102, 102, 108, 117, 115, 104, 0, 176, 8, 0 DATA 0, 1, 0, 32, 0, 2, 0, 0, 0, 0, 0, 193, 4, 0, 0, 176, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 205, 4 DATA 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 217, 4, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 95 DATA 102, 112, 114, 105, 110, 116, 102, 96, 8, 0, 0, 1, 0, 32, 0, 2, 0, 95, 95, 97, 108, 108, 111, 99, 97, 112, 7, 0, 0, 1, 0 DATA 0, 0, 2, 0, 0, 0, 0, 0, 233, 4, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 95, 95, 97, 114, 103, 118, 0, 0, 0 DATA 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 251, 4, 0, 0, 48, 9, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0 DATA 10, 5, 0, 0, 208, 0, 0, 0, 5, 0, 0, 0, 2, 0, 95, 102, 111, 112, 101, 110, 0, 0, 112, 8, 0, 0, 1, 0, 32, 0, 2 DATA 0, 95, 95, 102, 109, 111, 100, 101, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 33, 5, 0, 0, 0, 2, 0, 0 DATA 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 52, 5, 0, 0, 24, 1, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 66, 5, 0 DATA 0, 4, 0, 0, 0, 255, 255, 0, 0, 2, 0, 95, 95, 101, 110, 100, 95, 95, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 95, 115 DATA 105, 103, 110, 97, 108, 0, 32, 8, 0, 0, 1, 0, 32, 0, 2, 0, 95, 109, 97, 108, 108, 111, 99, 0, 144, 8, 0, 0, 1, 0, 32 DATA 0, 2, 0, 0, 0, 0, 0, 87, 5, 0, 0, 60, 9, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 101, 5, 0, 0, 16, 1 DATA 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 116, 5, 0, 0, 0, 0, 16, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 141 DATA 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 159, 5, 0, 0, 3, 0, 0, 0, 255, 255, 0, 0, 2, 0 DATA 0, 0, 0, 0, 173, 5, 0, 0, 8, 1, 0, 0, 5, 0, 0, 0, 2, 0, 95, 97, 98, 111, 114, 116, 0, 0, 160, 8, 0, 0, 1 DATA 0, 32, 0, 2, 0, 0, 0, 0, 0, 187, 5, 0, 0, 128, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 215, 5, 0, 0 DATA 12, 1, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 228, 5, 0, 0, 224, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0 DATA 0, 249, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 6, 0, 0, 200, 0, 0, 0, 5, 0, 0, 0 DATA 2, 0, 0, 0, 0, 0, 27, 6, 0, 0, 20, 1, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 39, 6, 0, 0, 212, 0, 0 DATA 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 76, 6, 0, 0, 1, 0, 0, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 100, 6 DATA 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 117, 6, 0, 0, 212, 2, 0, 0, 5, 0, 0, 0, 2, 0, 0 DATA 0, 0, 0, 137, 6, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 148, 6, 0, 0, 64, 8, 0, 0, 1, 0 DATA 32, 0, 2, 0, 0, 0, 0, 0, 158, 6, 0, 0, 196, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 176, 6, 0, 0, 0 DATA 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 197, 6, 0, 0, 240, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0 DATA 211, 6, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 2, 0, 0, 0, 0, 0, 239, 6, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 2 DATA 0, 0, 0, 0, 0, 7, 7, 0, 0, 236, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 29, 7, 0, 0, 0, 9, 0, 0 DATA 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 42, 7, 0, 0, 240, 8, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 59, 7, 0 DATA 0, 0, 1, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 93, 7, 0, 0, 116, 2, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0 DATA 0, 0, 115, 7, 0, 0, 192, 8, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 135, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0 DATA 0, 2, 0, 151, 7, 0, 0, 95, 95, 103, 110, 117, 95, 101, 120, 99, 101, 112, 116, 105, 111, 110, 95, 104, 97, 110, 100, 108, 101, 114, 64 DATA 52, 0, 95, 95, 95, 109, 105, 110, 103, 119, 95, 67, 82, 84, 83, 116, 97, 114, 116, 117, 112, 0, 95, 109, 97, 105, 110, 67, 82, 84, 83 DATA 116, 97, 114, 116, 117, 112, 0, 95, 87, 105, 110, 77, 97, 105, 110, 67, 82, 84, 83, 116, 97, 114, 116, 117, 112, 0, 95, 95, 95, 100, 111 DATA 95, 115, 106, 108, 106, 95, 105, 110, 105, 116, 0, 95, 95, 112, 101, 105, 51, 56, 54, 95, 114, 117, 110, 116, 105, 109, 101, 95, 114, 101, 108 DATA 111, 99, 97, 116, 111, 114, 0, 95, 95, 102, 112, 114, 101, 115, 101, 116, 0, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 100, 0, 95 DATA 95, 95, 100, 111, 95, 103, 108, 111, 98, 97, 108, 95, 100, 116, 111, 114, 115, 0, 95, 95, 95, 100, 111, 95, 103, 108, 111, 98, 97, 108, 95 DATA 99, 116, 111, 114, 115, 0, 112, 115, 101, 117, 100, 111, 45, 114, 101, 108, 111, 99, 45, 108, 105, 115, 116, 46, 99, 0, 95, 119, 51, 50, 95 DATA 97, 116, 111, 109, 95, 115, 117, 102, 102, 105, 120, 0, 95, 95, 95, 119, 51, 50, 95, 115, 104, 97, 114, 101, 100, 112, 116, 114, 95, 100, 101 DATA 102, 97, 117, 108, 116, 95, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 0, 95, 95, 95, 119, 51, 50, 95, 115, 104, 97, 114, 101, 100, 112 DATA 116, 114, 95, 103, 101, 116, 0, 100, 119, 50, 95, 111, 98, 106, 101, 99, 116, 95, 109, 117, 116, 101, 120, 46, 48, 0, 100, 119, 50, 95, 111 DATA 110, 99, 101, 46, 49, 0, 115, 106, 108, 95, 102, 99, 95, 107, 101, 121, 46, 50, 0, 115, 106, 108, 95, 111, 110, 99, 101, 46, 51, 0, 95 DATA 95, 95, 119, 51, 50, 95, 115, 104, 97, 114, 101, 100, 112, 116, 114, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 0, 95, 95, 95, 101 DATA 112, 114, 105, 110, 116, 102, 0, 95, 95, 95, 115, 106, 108, 106, 95, 105, 110, 105, 116, 95, 99, 116, 111, 114, 0, 95, 95, 95, 82, 85, 78 DATA 84, 73, 77, 69, 95, 80, 83, 69, 85, 68, 79, 95, 82, 69, 76, 79, 67, 95, 76, 73, 83, 84, 95, 95, 0, 95, 95, 105, 109, 112, 95 DATA 95, 95, 115, 101, 116, 109, 111, 100, 101, 0, 95, 95, 100, 97, 116, 97, 95, 115, 116, 97, 114, 116, 95, 95, 0, 95, 95, 95, 68, 84, 79 DATA 82, 95, 76, 73, 83, 84, 95, 95, 0, 95, 95, 105, 109, 112, 95, 95, 95, 111, 110, 101, 120, 105, 116, 0, 95, 95, 95, 112, 95, 95, 102 DATA 109, 111, 100, 101, 0, 95, 83, 101, 116, 85, 110, 104, 97, 110, 100, 108, 101, 100, 69, 120, 99, 101, 112, 116, 105, 111, 110, 70, 105, 108, 116 DATA 101, 114, 64, 52, 0, 95, 95, 95, 119, 51, 50, 95, 115, 104, 97, 114, 101, 100, 112, 116, 114, 95, 116, 101, 114, 109, 105, 110, 97, 116, 101 DATA 0, 95, 95, 95, 116, 108, 115, 95, 115, 116, 97, 114, 116, 95, 95, 0, 95, 95, 108, 105, 98, 109, 115, 118, 99, 114, 116, 95, 97, 95, 105 DATA 110, 97, 109, 101, 0, 95, 95, 105, 109, 112, 95, 95, 70, 105, 110, 100, 65, 116, 111, 109, 65, 64, 52, 0, 95, 95, 105, 109, 112, 95, 95 DATA 97, 98, 111, 114, 116, 0, 95, 95, 115, 105, 122, 101, 95, 111, 102, 95, 115, 116, 97, 99, 107, 95, 99, 111, 109, 109, 105, 116, 95, 95, 0 DATA 95, 95, 115, 105, 122, 101, 95, 111, 102, 95, 115, 116, 97, 99, 107, 95, 114, 101, 115, 101, 114, 118, 101, 95, 95, 0, 95, 95, 109, 97, 106 DATA 111, 114, 95, 115, 117, 98, 115, 121, 115, 116, 101, 109, 95, 118, 101, 114, 115, 105, 111, 110, 95, 95, 0, 95, 95, 105, 109, 112, 95, 95, 71 DATA 101, 116, 65, 115, 121, 110, 99, 75, 101, 121, 83, 116, 97, 116, 101, 64, 52, 0, 95, 95, 95, 99, 114, 116, 95, 120, 108, 95, 115, 116, 97 DATA 114, 116, 95, 95, 0, 95, 65, 100, 100, 65, 116, 111, 109, 65, 64, 52, 0, 95, 95, 95, 99, 114, 116, 95, 120, 105, 95, 115, 116, 97, 114 DATA 116, 95, 95, 0, 95, 95, 95, 99, 104, 107, 115, 116, 107, 0, 95, 95, 95, 99, 114, 116, 95, 120, 105, 95, 101, 110, 100, 95, 95, 0, 95 DATA 95, 105, 109, 112, 95, 95, 95, 95, 112, 95, 95, 101, 110, 118, 105, 114, 111, 110, 0, 95, 95, 104, 101, 97, 100, 95, 108, 105, 98, 117, 115 DATA 101, 114, 51, 50, 95, 97, 0, 95, 95, 105, 109, 112, 95, 95, 95, 105, 111, 98, 0, 95, 95, 98, 115, 115, 95, 115, 116, 97, 114, 116, 95 DATA 95, 0, 95, 95, 95, 82, 85, 78, 84, 73, 77, 69, 95, 80, 83, 69, 85, 68, 79, 95, 82, 69, 76, 79, 67, 95, 76, 73, 83, 84, 95 DATA 69, 78, 68, 95, 95, 0, 95, 95, 115, 105, 122, 101, 95, 111, 102, 95, 104, 101, 97, 112, 95, 99, 111, 109, 109, 105, 116, 95, 95, 0, 95 DATA 95, 95, 112, 95, 95, 101, 110, 118, 105, 114, 111, 110, 0, 95, 95, 95, 99, 114, 116, 95, 120, 112, 95, 115, 116, 97, 114, 116, 95, 95, 0 DATA 95, 95, 95, 99, 114, 116, 95, 120, 112, 95, 101, 110, 100, 95, 95, 0, 95, 95, 105, 109, 112, 95, 95, 115, 105, 103, 110, 97, 108, 0, 95 DATA 95, 109, 105, 110, 111, 114, 95, 111, 115, 95, 118, 101, 114, 115, 105, 111, 110, 95, 95, 0, 95, 95, 105, 109, 112, 95, 95, 97, 116, 101, 120 DATA 105, 116, 0, 95, 95, 104, 101, 97, 100, 95, 108, 105, 98, 109, 115, 118, 99, 114, 116, 95, 97, 0, 95, 95, 105, 109, 97, 103, 101, 95, 98 DATA 97, 115, 101, 95, 95, 0, 95, 95, 115, 101, 99, 116, 105, 111, 110, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 95, 95, 0, 95, 95, 82 DATA 85, 78, 84, 73, 77, 69, 95, 80, 83, 69, 85, 68, 79, 95, 82, 69, 76, 79, 67, 95, 76, 73, 83, 84, 95, 95, 0, 95, 95, 105, 109 DATA 112, 95, 95, 95, 95, 112, 95, 95, 102, 109, 111, 100, 101, 0, 95, 69, 120, 105, 116, 80, 114, 111, 99, 101, 115, 115, 64, 52, 0, 95, 95 DATA 100, 97, 116, 97, 95, 101, 110, 100, 95, 95, 0, 95, 95, 95, 103, 101, 116, 109, 97, 105, 110, 97, 114, 103, 115, 0, 95, 95, 95, 119, 51 DATA 50, 95, 115, 104, 97, 114, 101, 100, 112, 116, 114, 0, 95, 95, 67, 84, 79, 82, 95, 76, 73, 83, 84, 95, 95, 0, 95, 95, 95, 115, 101 DATA 116, 95, 97, 112, 112, 95, 116, 121, 112, 101, 0, 95, 95, 98, 115, 115, 95, 101, 110, 100, 95, 95, 0, 95, 95, 67, 82, 84, 95, 102, 109 DATA 111, 100, 101, 0, 95, 95, 95, 99, 114, 116, 95, 120, 99, 95, 101, 110, 100, 95, 95, 0, 95, 95, 95, 99, 114, 116, 95, 120, 99, 95, 115 DATA 116, 97, 114, 116, 95, 95, 0, 95, 95, 95, 67, 84, 79, 82, 95, 76, 73, 83, 84, 95, 95, 0, 95, 95, 105, 109, 112, 95, 95, 71, 101 DATA 116, 65, 116, 111, 109, 78, 97, 109, 101, 65, 64, 49, 50, 0, 95, 95, 102, 105, 108, 101, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 95 DATA 95, 0, 95, 95, 105, 109, 112, 95, 95, 109, 97, 108, 108, 111, 99, 0, 95, 95, 109, 97, 106, 111, 114, 95, 111, 115, 95, 118, 101, 114, 115 DATA 105, 111, 110, 95, 95, 0, 95, 95, 68, 84, 79, 82, 95, 76, 73, 83, 84, 95, 95, 0, 95, 95, 105, 109, 112, 95, 95, 102, 112, 114, 105 DATA 110, 116, 102, 0, 95, 95, 115, 105, 122, 101, 95, 111, 102, 95, 104, 101, 97, 112, 95, 114, 101, 115, 101, 114, 118, 101, 95, 95, 0, 95, 95 DATA 95, 99, 114, 116, 95, 120, 116, 95, 115, 116, 97, 114, 116, 95, 95, 0, 95, 95, 115, 117, 98, 115, 121, 115, 116, 101, 109, 95, 95, 0, 95 DATA 95, 105, 109, 112, 95, 95, 102, 102, 108, 117, 115, 104, 0, 95, 95, 95, 119, 51, 50, 95, 115, 104, 97, 114, 101, 100, 112, 116, 114, 95, 117 DATA 110, 101, 120, 112, 101, 99, 116, 101, 100, 0, 95, 95, 105, 109, 112, 95, 95, 102, 111, 112, 101, 110, 0, 95, 95, 105, 109, 112, 95, 95, 95 DATA 95, 103, 101, 116, 109, 97, 105, 110, 97, 114, 103, 115, 0, 95, 95, 95, 116, 108, 115, 95, 101, 110, 100, 95, 95, 0, 95, 95, 105, 109, 112 DATA 95, 95, 69, 120, 105, 116, 80, 114, 111, 99, 101, 115, 115, 64, 52, 0, 95, 95, 105, 109, 112, 95, 95, 102, 114, 101, 101, 0, 95, 95, 105 DATA 109, 112, 95, 95, 83, 101, 116, 85, 110, 104, 97, 110, 100, 108, 101, 100, 69, 120, 99, 101, 112, 116, 105, 111, 110, 70, 105, 108, 116, 101, 114 DATA 64, 52, 0, 95, 95, 109, 97, 106, 111, 114, 95, 105, 109, 97, 103, 101, 95, 118, 101, 114, 115, 105, 111, 110, 95, 95, 0, 95, 95, 108, 111 DATA 97, 100, 101, 114, 95, 102, 108, 97, 103, 115, 95, 95, 0, 95, 95, 108, 105, 98, 117, 115, 101, 114, 51, 50, 95, 97, 95, 105, 110, 97, 109 DATA 101, 0, 95, 95, 67, 82, 84, 95, 103, 108, 111, 98, 0, 95, 95, 115, 101, 116, 109, 111, 100, 101, 0, 95, 95, 105, 109, 112, 95, 95, 65 DATA 100, 100, 65, 116, 111, 109, 65, 64, 52, 0, 95, 95, 104, 101, 97, 100, 95, 108, 105, 98, 107, 101, 114, 110, 101, 108, 51, 50, 95, 97, 0 DATA 95, 95, 105, 109, 112, 95, 95, 95, 99, 101, 120, 105, 116, 0, 95, 95, 109, 105, 110, 111, 114, 95, 115, 117, 98, 115, 121, 115, 116, 101, 109 DATA 95, 118, 101, 114, 115, 105, 111, 110, 95, 95, 0, 95, 95, 109, 105, 110, 111, 114, 95, 105, 109, 97, 103, 101, 95, 118, 101, 114, 115, 105, 111 DATA 110, 95, 95, 0, 95, 95, 105, 109, 112, 95, 95, 95, 95, 115, 101, 116, 95, 97, 112, 112, 95, 116, 121, 112, 101, 0, 95, 70, 105, 110, 100 DATA 65, 116, 111, 109, 65, 64, 52, 0, 95, 71, 101, 116, 65, 116, 111, 109, 78, 97, 109, 101, 65, 64, 49, 50, 0, 95, 95, 82, 85, 78, 84 DATA 73, 77, 69, 95, 80, 83, 69, 85, 68, 79, 95, 82, 69, 76, 79, 67, 95, 76, 73, 83, 84, 95, 69, 78, 68, 95, 95, 0, 95, 95, 108 DATA 105, 98, 107, 101, 114, 110, 101, 108, 51, 50, 95, 97, 95, 105, 110, 97, 109, 101, 0, 95, 71, 101, 116, 65, 115, 121, 110, 99, 75, 101, 121 DATA 83, 116, 97, 116, 101, 64, 52, 0, 95, 95, 95, 99, 114, 116, 95, 120, 116, 95, 101, 110, 100, 95, 95, 0
Tuo toimii muuten, mutta välillä tulee virheilmoitus, että "NT:n näennäinen DOS-kone kohtasi laittoman käskyn", ja "Parametri ei kelpaa". Onko tietoa, mistä tämä voisi johtua.
DATA-taulukon numerot ovat binäärikoodi C++ kielisestä Dev-C++:lla käännetystä koodista:
#include <windows.h> #include <stdio.h> int main(void) { short i; FILE *tiedosto; tiedosto = fopen("GETKOUT.TMP","w"); for(i=0;i<256;i++) { if (GetAsyncKeyState(i)==0) { fprintf(tiedosto,"0"); } else { fprintf(tiedosto,"1"); } } }
ps. Joo, tiedän että selitän liikaa.
Ohjelmassasi on aika paljon DATAa. :) Vaikea sanoa kyllä, mistä virheet johtuvat. Oletko kokeillut paikantaa tarkan virheen aiheuttavan koodin osan poistamalla koodista väliaikaisesti osia?
Siis meinaatko osan DATAsta poistamista? Uskoakseni se ei toimi niin, sillä on hyvin todennäköistä, että jokin komento menee poikki jostakin kohdasta ja tilanne vain pahenee :)
Nuo DATAt on siis tehty niin, että C++ koodi on käännetty EXEksi (GetKey.exe) ja sen jälkeen muunnettu ne DATAksi (tiedostoon tempdata.txt) seuraavalla koodilla:
OPEN "GetKey.exe" FOR INPUT AS #1 SHELL "echo No data > tempdata.txt" OPEN "tempdata.txt" FOR OUTPUT AS #2 CLS DO PRINT #2, "DATA"; FOR i% = 0 TO 30 tempStr$ = STR$(ASC(INPUT$(1, #1))) IF i% < 30 THEN tempStr$ = tempStr$ + "," PRINT #2, tempStr$; IF EOF(1) THEN CLOSE #1, #2: END NEXT i% PRINT #2, "" LOOP CLOSE #1, #2
Antti muuten, onko tämä systeemi tarpeeksi hyvä, että se kannattaisi pistää koodivinkkeihin?
Miksei se getkey.exe voi tulla vaan erillisenä tiedostona?
Kun tuo killukka on luonut tuon .exen noista datoista, niin voisit ajaa Comparella että eroaako se jotenkin alkuperäisestä Exestä. Luulisin että eroaa, koska luet sen tekstinä etkä binäärinä.
Juhko kirjoitti:
Siis meinaatko osan DATAsta poistamista? Uskoakseni se ei toimi niin, sillä on hyvin todennäköistä, että jokin komento menee poikki jostakin kohdasta ja tilanne vain pahenee :)
Olet oikeassa, tarkoitin QB-koodin muita osia. Esim. säilyvätkö virheet, jos poistat toisesta silmukasta kaiken SHELL-komentoa lukuun ottamatta?
Juhko kirjoitti:
Antti muuten, onko tämä systeemi tarpeeksi hyvä, että se kannattaisi pistää koodivinkkeihin?
Windows-ohjelman kutsuminen ei ehkä ole monen QB:n ystävän mieleen, mutta yleisemmin käyttämäsi keino tiedoston muodostukseen DATAn perusteella voisi olla esittelyn arvoinen. Mutta laita vinkkiin lyhyempi tiedosto: miten olisi pieni kuva tai assembly-ohjelma?
Antti Laaksonen kirjoitti:
Windows-ohjelman kutsuminen ei ehkä ole monen QB:n ystävän mieleen, mutta yleisemmin käyttämäsi keino tiedoston muodostukseen DATAn perusteella voisi olla esittelyn arvoinen. Mutta laita vinkkiin lyhyempi tiedosto: miten olisi pieni kuva tai assembly-ohjelma?
Jos se nyt koodivinkiksi laittaa, niin olisi ainakin hyvä muuttaa tuo lukutiedosto INPUTista BINARYksi (jossa tapauksessa täytyy muuttaa myös lukutapa).
Ihan sen takia, että jossakin tapauksessa tuo voi toimia, mutta binääritiedostojen lukeminen sisään luottaen ettei siellä esiinny EOF-merkkiä ( Chr$(26) ) on aikamoista lottoamista.
Melkein veikkaisin että montaa EXEä ei tule vastaan, josta saisi toimivan tuolla koodilla.
Eli mieluummin tyyliin
OPEN "jee.bin" FOR BINARY ACCESS READ AS #1 OPEN "tempdata.txt" FOR OUTPUT AS #2 DIM dat AS STRING * 1, i AS LONG, FileLen AS LONG FileLen = LOF(1) FOR i = 1 TO FileLen IF (i AND 15) = 1 THEN IF i<>1 THEN PRINT #2, PRINT #2, "DATA"; ELSE PRINT #2, ","; END IF GET #1, , dat PRINT #2, STR$(ASC(dat)); NEXT CLOSE #1, #2
Aihe on jo aika vanha, joten et voi enää vastata siihen.