1 #ifdef HAVE_DREAMBOX_HARDWARE
5 #define SAA_MODE_FBAS 1
6 #define SAA_MODE_SVIDEO 2
7 #define SAA_MODE_COMPONENT 3
10 inline static unsigned char make8color(unsigned char r
, unsigned char g
, unsigned char b
)
12 return ((((r
>> 5) & 7) << 5) | (((g
>> 5) & 7) << 2) | ((b
>> 6) & 3));
14 inline static unsigned short make15color(unsigned char r
, unsigned char g
, unsigned char b
)
16 return ((((r
>> 3) & 31) << 10) | (((g
>> 3) & 31) << 5) | ((b
>> 3) & 31));
18 inline static unsigned short make16color(unsigned char r
, unsigned char g
, unsigned char b
)
20 return ((((r
>> 3) & 31) << 11) | (((g
>> 2) & 63) << 5) | ((b
>> 3) & 31));
23 void* convertRGB2FB(int fh
, unsigned char *rgbbuff
, unsigned long count
, int bpp
, int *cpp
)
35 c_fbbuff
= (unsigned char *) malloc(count
* sizeof(unsigned char));
36 for(i
= 0; i
< count
; i
++)
37 c_fbbuff
[i
] = make8color(rgbbuff
[i
*3], rgbbuff
[i
*3+1], rgbbuff
[i
*3+2]);
38 fbbuff
= (void *) c_fbbuff
;
42 s_fbbuff
= (unsigned short *) malloc(count
* sizeof(unsigned short));
43 for(i
= 0; i
< count
; i
++)
44 s_fbbuff
[i
] = make15color(rgbbuff
[i
*3], rgbbuff
[i
*3+1], rgbbuff
[i
*3+2]);
45 fbbuff
= (void *) s_fbbuff
;
49 s_fbbuff
= (unsigned short *) malloc(count
* sizeof(unsigned short));
50 for(i
= 0; i
< count
; i
++)
51 s_fbbuff
[i
] = make16color(rgbbuff
[i
*3], rgbbuff
[i
*3+1], rgbbuff
[i
*3+2]);
52 fbbuff
= (void *) s_fbbuff
;
57 i_fbbuff
= (unsigned int *) malloc(count
* sizeof(unsigned int));
58 for(i
= 0; i
< count
; i
++)
59 i_fbbuff
[i
] = ((rgbbuff
[i
*3] << 16) & 0xFF0000) | ((rgbbuff
[i
*3+1] << 8) & 0xFF00) | (rgbbuff
[i
*3+2] & 0xFF);
60 fbbuff
= (void *) i_fbbuff
;
63 fprintf(stderr
, "Unsupported video mode! You've got: %dbpp\n", bpp
);
70 FT_Error
FB_FaceRequester(FTC_FaceID face_id
, FT_Library library
, FT_Pointer request_data
, FT_Face
*aface
)
72 return ((fbClass
*)request_data
)->FTC_Face_Requester(face_id
, aface
);
75 FT_Error
fbClass::FTC_Face_Requester(FTC_FaceID face_id
, FT_Face
* aface
)
78 if ((error
=FT_New_Face(library
, FONT
, 0, aface
)))
80 printf(" failed: %s", strerror(error
));
83 FT_Select_Charmap(*aface
, ft_encoding_unicode
);
88 fbClass
*fbClass::instance
;
90 fbClass
*fbClass::getInstance()
98 int maxbytes
=4*1024*1024;
101 fd
=open(FB_DEV
, O_RDWR
);
107 if (ioctl(fd
, FBIOGET_VSCREENINFO
, &screeninfo
)<0)
109 perror("FBIOGET_VSCREENINFO");
113 memcpy(&oldscreen
, &screeninfo
, sizeof(screeninfo
));
115 fb_fix_screeninfo fix
;
116 if (ioctl(fd
, FBIOGET_FSCREENINFO
, &fix
)<0)
118 perror("[Framebuffer] <FBIOGET_FSCREENINFO>");
122 available
=fix
.smem_len
;
123 //printf("[Framebuffer] %dk video memory\n", available/1024);
124 lfb
=(unsigned char*)mmap(0, available
, PROT_WRITE
|PROT_READ
, MAP_SHARED
, fd
, 0);
134 if (error
= FT_Init_FreeType(&library
))
136 printf("[FONT] <FT_Init_FreeType failed with Errorcode 0x%.2X>", error
);
137 munmap(lfb
, available
);
139 if((error
= FTC_Manager_New(library
, 10, 20, maxbytes
, FB_FaceRequester
, this, &manager
)))
141 printf("[FONT] <FTC_Manager_New failed with Errorcode 0x%.2X>\n", error
);
142 FT_Done_FreeType(library
);
143 munmap(lfb
, available
);
145 if((error
= FTC_SBitCache_New(manager
, &cache
)))
147 printf("[FONT] <FTC_SBitCache_New failed with Errorcode 0x%.2X>\n", error
);
148 FTC_Manager_Done(manager
);
149 FT_Done_FreeType(library
);
150 munmap(lfb
, available
);
153 if((FTC_Manager_Lookup_Face(manager
, (char*)FONT
, &face
)))
155 printf("[FONT] <FTC_Manager_Lookup_Face failed with Errorcode 0x%.2X>\n", error
);
156 FTC_Manager_Done(manager
);
157 FT_Done_FreeType(library
);
158 munmap(lfb
, available
);
161 use_kerning
= FT_HAS_KERNING(face
);
163 desc
.font
.face_id
= (char*)FONT
;
164 #if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0
165 desc
.type
= ftc_image_mono
;
167 desc
.flags
= FT_LOAD_MONOCHROME
;
169 #endif//USEFREETYPEFB
172 printf("[Framebuffer] available.\n");
176 printf("[Framebuffer] <not available>\n");
182 if(c_rect_buffer
!=NULL
) { free(c_rect_buffer
); c_rect_buffer
=NULL
; }
185 ioctl(fd
, FBIOPUT_VSCREENINFO
, &oldscreen
);
187 munmap(lfb
, available
);
190 FTC_Manager_Done(manager
);
191 FT_Done_FreeType(library
);
195 int fbClass::SetMode(unsigned int nxRes
, unsigned int nyRes
, unsigned int nbpp
)
197 screeninfo
.xres_virtual
=screeninfo
.xres
=nxRes
;
198 screeninfo
.yres_virtual
=screeninfo
.yres
=nyRes
;
201 screeninfo
.xoffset
=screeninfo
.yoffset
=0;
202 screeninfo
.bits_per_pixel
=nbpp
;
203 if (ioctl(fd
, FBIOPUT_VSCREENINFO
, &screeninfo
)<0)
205 perror("[FB-SET] <FBIOPUT_VSCREENINFO>");
209 if ((screeninfo
.xres
!=nxRes
) && (screeninfo
.yres
!=nyRes
) && (screeninfo
.bits_per_pixel
!=nbpp
))
211 printf("[FB-SET] <SetMode failed: wanted: %dx%dx%d, got %dx%dx%d>\n", nxRes
, nyRes
, nbpp
,
212 screeninfo
.xres
,screeninfo
.yres
, screeninfo
.bits_per_pixel
);
214 xRes
=screeninfo
.xres
;
215 yRes
=screeninfo
.yres
;
216 printf("[Framebuffer] xRes:%d yRes:%d bpp:%d\n", xRes
, yRes
, screeninfo
.bits_per_pixel
);
217 bpp
=screeninfo
.bits_per_pixel
;
218 fb_fix_screeninfo fix
;
219 if (ioctl(fd
, FBIOGET_FSCREENINFO
, &fix
)<0) perror("[FB-SET] <FBIOGET_FSCREENINFO>");
221 stride
=fix
.line_length
;
222 x_stride
= (fix
.line_length
*8)/screeninfo
.bits_per_pixel
;
223 memset(lfb
, 0, stride
*yRes
);
229 void fbClass::fb_display(unsigned char *rgbbuff
,unsigned char * alpha
,int x_size
,int y_size
,int x_pan
,int y_pan
,int x_offs
,int y_offs
)
231 /* correct panning */
232 if(x_pan
> x_size
- (int)x_stride
) x_pan
= 0;
233 if(y_pan
> y_size
- (int)yRes
) y_pan
= 0;
235 if(x_offs
+ x_size
> (int)x_stride
) x_offs
= 0;
236 if(y_offs
+ y_size
> (int)yRes
) y_offs
= 0;
238 /* blit buffer 2 fb */
240 unsigned short *fbbuff
= (unsigned short *) convertRGB2FB(fd
, rgbbuff
, x_size
* y_size
, screeninfo
.bits_per_pixel
, &cpp
);
241 if(fbbuff
==NULL
) return;
242 blit2FB(fbbuff
, alpha
, x_size
, y_size
, x_stride
, yRes
, x_pan
, y_pan
, x_offs
, y_offs
, cpp
);
246 void fbClass::blit2FB(void *fbbuff
,unsigned char *alpha
,unsigned int pic_xs
,unsigned int pic_ys
,unsigned int scr_xs
,unsigned int scr_ys
, unsigned int xp
, unsigned int yp
,unsigned int xoffs
, unsigned int yoffs
,int cpp
)
248 int xc
= (pic_xs
> scr_xs
) ? scr_xs
: pic_xs
;
249 int yc
= (pic_ys
> scr_ys
) ? scr_ys
: pic_ys
;
252 unsigned char *fb
= (unsigned char*) mmap(NULL
, scr_xs
* scr_ys
* cpp
, PROT_WRITE
| PROT_READ
, MAP_SHARED
, fd
, 0);
253 if(fb
== MAP_FAILED
) { perror("mmap"); return; }
255 if(cpp
== 1) make332map();
257 unsigned char *fbptr
= fb
+ (yoffs
* scr_xs
+ xoffs
) * cpp
;
258 unsigned char *imptr
= (unsigned char*) fbbuff
+ (yp
* pic_xs
+ xp
) * cpp
;
260 for(int i
= 0; i
< yc
; i
++, fbptr
+= scr_xs
* cpp
, imptr
+= pic_xs
* cpp
)
261 memcpy(fbptr
, imptr
, xc
* cpp
);
263 if(cpp
== 1) make8map();
265 munmap(fb
, scr_xs
* scr_ys
* cpp
);
268 void fbClass::make8map()
270 struct fb_cmap colormap
;
274 colormap
.green
=green
;
276 colormap
.transp
=trans
;
278 ioctl(fd
, FBIOPUTCMAP
, &colormap
);
281 void fbClass::make332map()
283 int r
= 8, g
= 8, b
= 4;
285 struct fb_cmap colormap
;
289 colormap
.green
= green
;
290 colormap
.blue
= blue
;
291 colormap
.transp
=trans
;
293 int rs
= 256 / (r
- 1);
294 int gs
= 256 / (g
- 1);
295 int bs
= 256 / (b
- 1);
297 for (int i
= 0; i
< 256; i
++) {
298 colormap
.red
[i
] = (rs
* ((i
/ (g
* b
)) % r
)) * 255;
299 colormap
.green
[i
] = (gs
* ((i
/ b
) % g
)) * 255;
300 colormap
.blue
[i
] = (bs
* ((i
) % b
)) * 255;
303 ioctl(fd
, FBIOPUTCMAP
, &colormap
);
306 //----------------------------------------------------------------------------------------
308 void fbClass::W_buffer(int sx
, int sy
, int width
, int height
)
310 if(c_rect_buffer
!=NULL
)
312 unsigned char* busy_buffer_wrk
= c_rect_buffer
;
314 for(int y
=sy
; y
< sy
+height
; y
++)
316 for(int x
=sx
; x
< sx
+width
; x
++)
318 memcpy(lfb
+ y
* stride
+ x
* c_rect_buffer_cpp
, busy_buffer_wrk
, c_rect_buffer_cpp
);
319 busy_buffer_wrk
+= c_rect_buffer_cpp
;
325 void fbClass::Fill_buffer(int sx
, int sy
, int width
, int height
)
327 unsigned char rgb_buffer
[3];
328 unsigned char* fbbuff
;
329 unsigned char* busy_buffer_wrk
;
336 fbbuff
= (unsigned char *) convertRGB2FB(fd
, rgb_buffer
, 1, screeninfo
.bits_per_pixel
, &cpp
);
337 if(fbbuff
==NULL
) { printf("malloc_1\n"); return; }
339 if(c_rect_buffer
!=NULL
) { free(c_rect_buffer
); c_rect_buffer
=NULL
; }
340 c_rect_buffer
= (unsigned char*) malloc(width
*width
*cpp
);
341 if(c_rect_buffer
==NULL
) { printf("malloc_2\n"); return; }
342 busy_buffer_wrk
= c_rect_buffer
;
344 for(int y
=sy
; y
< sy
+height
; y
++)
346 for(int x
=sx
; x
< sx
+width
; x
++)
348 memcpy(busy_buffer_wrk
, lfb
+ y
* stride
+ x
*cpp
, cpp
);
349 busy_buffer_wrk
+= cpp
;
354 c_rect_buffer_cpp
=cpp
;
357 void fbClass::palette()
359 unsigned char rgb_buffer
[3];
365 unsigned char* fbbuff
= (unsigned char *) convertRGB2FB(fd
, rgb_buffer
, 1, screeninfo
.bits_per_pixel
, &cpp
);
366 if(fbbuff
==NULL
) { printf("malloc\n"); return; }
367 blit2FB(fbbuff
, NULL
, 1, 1, x_stride
, yRes
, 0, 0, 0, 0, cpp
);
371 //----------------------------------------------------------------------------------------
374 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,
375 0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,
376 0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,
377 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
378 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
379 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
380 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
381 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
382 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
383 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
384 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
385 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
386 0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,
387 0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,
388 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0
391 void fbClass::RenderCircle(int sx
, int sy
, int r
, int g
, int b
)
394 unsigned char rgb_buffer
[3];
395 unsigned char* fbbuff
;
402 fbbuff
= (unsigned char *) convertRGB2FB(fd
, rgb_buffer
, 1, screeninfo
.bits_per_pixel
, &cpp
);
403 if(fbbuff
==NULL
) { printf("malloc\n"); return; }
405 for(int y
= 0; y
< 15; y
++)
406 for(int x
= 0; x
< 15; x
++)
408 memcpy(lfb
+ (sy
+y
) * stride
+ (sx
+x
)*cpp
, fbbuff
, cpp
);
413 void fbClass::FillRect(int sx
, int sy
, int width
, int height
, int r
, int g
, int b
)
415 unsigned char rgb_buffer
[3];
421 unsigned char* fbbuff
= (unsigned char *) convertRGB2FB(fd
, rgb_buffer
, 1, screeninfo
.bits_per_pixel
, &cpp
);
422 if(fbbuff
==NULL
) { printf("malloc\n"); return; }
424 for(int y
=sy
; y
< sy
+height
; y
++)
426 for(int x
=sx
; x
< sx
+width
; x
++)
428 memcpy(lfb
+ y
* stride
+ x
*cpp
, fbbuff
, cpp
);
435 void fbClass::PaintPixel(int x
, int y
, int r
, int g
, int b
)
437 unsigned char rgb_buffer
[3];
438 unsigned char* fbbuff
;
444 fbbuff
= (unsigned char *) convertRGB2FB(fd
, rgb_buffer
, 1, screeninfo
.bits_per_pixel
, &cpp
);
445 if(fbbuff
==NULL
) { printf("malloc\n"); return; }
447 memcpy(lfb
+ y
* stride
+ x
*cpp
, fbbuff
, cpp
);
451 void fbClass::DrawRect( int x
, int y
, int width
, int height
, int r
, int g
, int b
)
453 DrawHLine( x
, y
, width
, r
,g
,b
);
454 DrawHLine( x
, y
+height
, width
, r
,g
,b
);
455 DrawVLine( x
, y
, height
, r
,g
,b
);
456 DrawVLine( x
+width
, y
, height
, r
,g
,b
);
459 void fbClass::DrawVLine(int x
, int y
, int sy
, int r
, int g
, int b
)
462 PaintPixel(x
, y
+sy
, r
, g
, b
);
466 void fbClass::DrawHLine(int x
, int y
, int sx
, int r
, int g
, int b
)
469 PaintPixel(x
+sx
, y
, r
, g
, b
);
474 void fbClass::RenderString(std::string word
, int sx
, int sy
, int maxwidth
, int layout
, int size
, int r
, int g
, int b
)
476 int stringlen
, ex
, charwidth
;
477 unsigned char *string
= ((unsigned char*)word
.c_str());
479 desc
.font
.pix_width
= desc
.font
.pix_height
= size
;
483 stringlen
= GetStringLen(string
);
486 case CENTER
: if(stringlen
< maxwidth
) sx
+= (maxwidth
- stringlen
)/2;
489 case RIGHT
: if(stringlen
< maxwidth
) sx
+= maxwidth
- stringlen
;
497 while(*string
!= '\0')
499 if((charwidth
= RenderChar(*string
, sx
, sy
, ex
, r
,g
,b
)) == -1) return; /* string > maxwidth */
505 int fbClass::RenderChar(FT_ULong currentchar
, int sx
, int sy
, int ex
, int r
, int g
, int b
)
507 unsigned char rgb_buffer
[3];
508 unsigned char* fbbuff
;
514 fbbuff
= (unsigned char *) convertRGB2FB(fd
, rgb_buffer
, 1, screeninfo
.bits_per_pixel
, &cpp
);
515 if(fbbuff
==NULL
) { printf("malloc\n"); return 0; }
517 int row
, pitch
, bit
, x
= 0, y
= 0;
524 if(!(glyphindex
= FT_Get_Char_Index(face
, currentchar
)))
526 printf("TuxMail <FT_Get_Char_Index for Char \"%c\" failed: \"undefined character code\">\n", (int)currentchar
);return 0;
529 if((error
= FTC_SBitCache_Lookup(cache
, &desc
, glyphindex
, &sbit
, &anode
)))
531 printf("TuxMail <FTC_SBitCache_Lookup for Char \"%c\" failed with Errorcode 0x%.2X>\n", (int)currentchar
, error
);return 0;
536 FT_Get_Kerning(face
, prev_glyphindex
, glyphindex
, ft_kerning_default
, &kerning
);
537 prev_glyphindex
= glyphindex
;
545 if(sx
+ sbit
->xadvance
>= ex
) return -1; /* limit to maxwidth */
547 for(row
= 0; row
< sbit
->height
; row
++)
549 for(pitch
= 0; pitch
< sbit
->pitch
; pitch
++)
551 for(bit
= 7; bit
>= 0; bit
--)
553 if(pitch
*8 + 7-bit
>= sbit
->width
) break; /* render needed bits only */
555 if((sbit
->buffer
[row
* sbit
->pitch
+ pitch
]) & 1<<bit
)
557 memcpy(lfb
+ (sy
- sbit
->top
+ y
) * stride
+ (sx
+ sbit
->left
+ kerning
.x
+ x
)*cpp
, fbbuff
, cpp
);
568 return sbit
->xadvance
+ kerning
.x
;
571 int fbClass::GetStringLen(unsigned char *string
)
577 while(*string
!= '\0')
579 stringlen
+= RenderChar(*string
, -1, -1, -1, -1,-1,-1);
592 /* Pointers into data_table for each ASCII char */
593 const int asc_ptr
[NCHARS
] = {
594 0, 0, 0, 0, 0, 0, 0, 0,
595 0, 0, 0, 0, 0, 0, 0, 0,
596 0, 0, 0, 0, 0, 0, 0, 0,
597 0, 0, 0, 0, 0, 0, 0, 0,
598 1, 3, 50, 81, 104, 281, 483, 590,
599 621, 685, 749, 851, 862, 893, 898, 921,
600 1019, 1150, 1200, 1419, 1599, 1744, 1934, 2111,
601 2235, 2445, 2622, 2659, 0, 2708, 0, 2715,
602 2857, 3072, 3273, 3403, 3560, 3662, 3730, 3785,
603 3965, 4000, 4015, 4115, 4281, 4314, 4432, 4548,
604 4709, 4790, 4999, 5188, 5397, 5448, 5576, 5710,
605 5892, 6106, 6257, 0, 0, 0, 0, 0,
606 50, 6503, 6642, 6733, 6837, 6930, 7073, 7157,
607 7380, 7452, 7499, 7584, 7689, 7702, 7797, 7869,
608 7978, 8069, 8160, 8222, 8381, 8442, 8508, 8605,
609 8732, 8888, 9016, 0, 0, 0, 0, 0
612 const unsigned char data_table
[NBYTES
] = {
613 129, 227, 130, 34, 6, 90, 19, 129, 32, 10,
614 74, 40, 129, 31, 12, 64, 53, 129, 30, 14,
615 54, 65, 129, 30, 14, 53, 67, 129, 30, 14,
616 54, 65, 129, 31, 12, 64, 53, 129, 32, 10,
617 74, 40, 129, 34, 6, 90, 19, 129, 194, 130,
618 99, 9, 129, 97, 14, 129, 96, 18, 129, 95,
619 22, 129, 95, 16, 117, 2, 129, 95, 14, 129,
620 96, 11, 129, 97, 9, 129, 99, 6, 129, 194,
621 129, 87, 4, 101, 4, 131, 82, 28, 131, 87,
622 4, 101, 4, 133, 82, 28, 131, 87, 4, 101,
623 4, 131, 193, 129, 39, 1, 84, 27, 129, 38,
624 3, 81, 32, 129, 37, 5, 79, 35, 129, 36,
625 5, 77, 38, 129, 35, 5, 76, 40, 129, 34,
626 5, 75, 21, 103, 14, 129, 33, 5, 74, 19,
627 107, 11, 129, 32, 5, 73, 17, 110, 9, 129,
628 32, 4, 73, 16, 112, 7, 129, 31, 4, 72,
629 15, 114, 6, 129, 31, 4, 72, 14, 115, 5,
630 129, 30, 4, 71, 15, 116, 5, 129, 27, 97,
631 131, 30, 4, 69, 14, 117, 4, 129, 30, 4,
632 68, 15, 117, 4, 132, 30, 4, 68, 14, 117,
633 4, 129, 27, 97, 131, 30, 5, 65, 15, 116,
634 5, 129, 31, 4, 65, 14, 116, 4, 129, 31,
635 6, 64, 15, 116, 4, 129, 32, 7, 62, 16,
636 115, 4, 129, 32, 9, 61, 17, 114, 5, 129,
637 33, 11, 58, 19, 113, 5, 129, 34, 14, 55,
638 21, 112, 5, 129, 35, 40, 111, 5, 129, 36,
639 38, 110, 5, 129, 37, 35, 109, 5, 129, 38,
640 32, 110, 3, 129, 40, 27, 111, 1, 129, 193,
641 129, 30, 4, 103, 9, 129, 30, 7, 100, 15,
642 129, 30, 10, 99, 17, 129, 33, 10, 97, 6,
643 112, 6, 129, 36, 10, 96, 5, 114, 5, 129,
644 39, 10, 96, 4, 115, 4, 129, 42, 10, 95,
645 4, 116, 4, 129, 45, 10, 95, 3, 117, 3,
646 129, 48, 10, 95, 3, 117, 3, 129, 51, 10,
647 95, 4, 116, 4, 129, 54, 10, 96, 4, 115,
648 4, 129, 57, 10, 96, 5, 114, 5, 129, 60,
649 10, 97, 6, 112, 6, 129, 63, 10, 99, 17,
650 129, 66, 10, 100, 15, 129, 69, 10, 103, 9,
651 129, 39, 9, 72, 10, 129, 36, 15, 75, 10,
652 129, 35, 17, 78, 10, 129, 33, 6, 48, 6,
653 81, 10, 129, 32, 5, 50, 5, 84, 10, 129,
654 32, 4, 51, 4, 87, 10, 129, 31, 4, 52,
655 4, 90, 10, 129, 31, 3, 53, 3, 93, 10,
656 129, 31, 3, 53, 3, 96, 10, 129, 31, 4,
657 52, 4, 99, 10, 129, 32, 4, 51, 4, 102,
658 10, 129, 32, 5, 50, 5, 105, 10, 129, 33,
659 6, 48, 6, 108, 10, 129, 35, 17, 111, 10,
660 129, 36, 15, 114, 7, 129, 40, 9, 118, 4,
661 129, 193, 129, 48, 18, 129, 43, 28, 129, 41,
662 32, 129, 39, 36, 129, 37, 40, 129, 35, 44,
663 129, 34, 46, 129, 33, 13, 68, 13, 129, 32,
664 9, 73, 9, 129, 32, 7, 75, 7, 129, 31,
665 6, 77, 6, 129, 31, 5, 78, 5, 129, 30,
666 5, 79, 5, 129, 20, 74, 132, 30, 4, 80,
667 4, 129, 31, 3, 79, 4, 129, 31, 4, 79,
668 4, 129, 32, 3, 78, 4, 129, 32, 4, 76,
669 6, 129, 33, 4, 74, 7, 129, 34, 4, 72,
670 8, 129, 35, 5, 72, 7, 129, 37, 5, 73,
671 4, 129, 39, 4, 74, 1, 129, 129, 193, 130,
672 111, 6, 129, 109, 10, 129, 108, 12, 129, 107,
673 14, 129, 97, 2, 105, 16, 129, 99, 22, 129,
674 102, 18, 129, 105, 14, 129, 108, 9, 129, 194,
675 130, 63, 25, 129, 57, 37, 129, 52, 47, 129,
676 48, 55, 129, 44, 63, 129, 41, 69, 129, 38,
677 75, 129, 36, 79, 129, 34, 83, 129, 33, 28,
678 90, 28, 129, 32, 23, 96, 23, 129, 32, 17,
679 102, 17, 129, 31, 13, 107, 13, 129, 30, 9,
680 112, 9, 129, 30, 5, 116, 5, 129, 30, 1,
681 120, 1, 129, 194, 130, 30, 1, 120, 1, 129,
682 30, 5, 116, 5, 129, 30, 9, 112, 9, 129,
683 31, 13, 107, 13, 129, 32, 17, 102, 17, 129,
684 32, 23, 96, 23, 129, 33, 28, 90, 28, 129,
685 34, 83, 129, 36, 79, 129, 38, 75, 129, 41,
686 69, 129, 44, 63, 129, 48, 55, 129, 52, 47,
687 129, 57, 37, 129, 63, 25, 129, 194, 129, 80,
688 4, 130, 80, 4, 129, 68, 2, 80, 4, 94,
689 2, 129, 66, 6, 80, 4, 92, 6, 129, 67,
690 7, 80, 4, 90, 7, 129, 69, 7, 80, 4,
691 88, 7, 129, 71, 6, 80, 4, 87, 6, 129,
692 72, 20, 129, 74, 16, 129, 76, 12, 129, 62,
693 40, 131, 76, 12, 129, 74, 16, 129, 72, 20,
694 129, 71, 6, 80, 4, 87, 6, 129, 69, 7,
695 80, 4, 88, 7, 129, 67, 7, 80, 4, 90,
696 7, 129, 66, 6, 80, 4, 92, 6, 129, 68,
697 2, 80, 4, 94, 2, 129, 80, 4, 130, 193,
698 129, 60, 4, 139, 41, 42, 131, 60, 4, 139,
699 193, 130, 34, 6, 129, 32, 10, 129, 31, 12,
700 129, 30, 14, 129, 20, 2, 28, 16, 129, 22,
701 22, 129, 24, 19, 129, 27, 15, 129, 31, 9,
702 129, 194, 129, 60, 4, 152, 193, 130, 34, 6,
703 129, 32, 10, 129, 31, 12, 129, 30, 14, 131,
704 31, 12, 129, 32, 10, 129, 34, 6, 129, 194,
705 129, 30, 4, 129, 30, 7, 129, 30, 10, 129,
706 33, 10, 129, 36, 10, 129, 39, 10, 129, 42,
707 10, 129, 45, 10, 129, 48, 10, 129, 51, 10,
708 129, 54, 10, 129, 57, 10, 129, 60, 10, 129,
709 63, 10, 129, 66, 10, 129, 69, 10, 129, 72,
710 10, 129, 75, 10, 129, 78, 10, 129, 81, 10,
711 129, 84, 10, 129, 87, 10, 129, 90, 10, 129,
712 93, 10, 129, 96, 10, 129, 99, 10, 129, 102,
713 10, 129, 105, 10, 129, 108, 10, 129, 111, 10,
714 129, 114, 7, 129, 117, 4, 129, 193, 129, 60,
715 31, 129, 53, 45, 129, 49, 53, 129, 46, 59,
716 129, 43, 65, 129, 41, 69, 129, 39, 73, 129,
717 37, 77, 129, 36, 79, 129, 35, 15, 101, 15,
718 129, 34, 11, 106, 11, 129, 33, 9, 109, 9,
719 129, 32, 7, 112, 7, 129, 31, 6, 114, 6,
720 129, 31, 5, 115, 5, 129, 30, 5, 116, 5,
721 129, 30, 4, 117, 4, 132, 30, 5, 116, 5,
722 129, 31, 5, 115, 5, 129, 31, 6, 114, 6,
723 129, 32, 7, 112, 7, 129, 33, 9, 109, 9,
724 129, 34, 11, 106, 11, 129, 35, 15, 101, 15,
725 129, 36, 79, 129, 37, 77, 129, 39, 73, 129,
726 41, 69, 129, 43, 65, 129, 46, 59, 129, 49,
727 53, 129, 53, 45, 129, 60, 31, 129, 193, 129,
728 30, 4, 129, 30, 4, 100, 1, 129, 30, 4,
729 100, 3, 129, 30, 4, 100, 5, 129, 30, 76,
730 /* 1170 */ 129, 30, 78, 129, 30, 80, 129, 30, 82, 129,
731 /* 1180 */ 30, 83, 129, 30, 85, 129, 30, 87, 129, 30,
732 /* 1190 */ 89, 129, 30, 91, 129, 30, 4, 132, 193, 129,
733 /* 1200 */ 30, 3, 129, 30, 7, 129, 30, 10, 112, 1,
734 /* 1210 */ 129, 30, 13, 112, 2, 129, 30, 16, 112, 3,
735 /* 1220 */ 129, 30, 18, 111, 5, 129, 30, 21, 111, 6,
736 /* 1230 */ 129, 30, 23, 112, 6, 129, 30, 14, 47, 8,
737 /* 1240 */ 113, 6, 129, 30, 14, 49, 8, 114, 5, 129,
738 /* 1250 */ 30, 14, 51, 8, 115, 5, 129, 30, 14, 53,
739 /* 1260 */ 8, 116, 4, 129, 30, 14, 55, 8, 116, 5,
740 /* 1270 */ 129, 30, 14, 56, 9, 117, 4, 129, 30, 14,
741 /* 1280 */ 57, 9, 117, 4, 129, 30, 14, 58, 10, 117,
742 /* 1290 */ 4, 129, 30, 14, 59, 10, 117, 4, 129, 30,
743 /* 1300 */ 14, 60, 11, 117, 4, 129, 30, 14, 61, 11,
744 /* 1310 */ 116, 5, 129, 30, 14, 62, 11, 116, 5, 129,
745 /* 1320 */ 30, 14, 63, 12, 115, 6, 129, 30, 14, 64,
746 /* 1330 */ 13, 114, 7, 129, 30, 14, 65, 13, 113, 8,
747 /* 1340 */ 129, 30, 14, 65, 15, 111, 9, 129, 30, 14,
748 /* 1350 */ 66, 16, 109, 11, 129, 30, 14, 67, 17, 107,
749 /* 1360 */ 12, 129, 30, 14, 68, 20, 103, 16, 129, 30,
750 /* 1370 */ 14, 69, 49, 129, 30, 14, 70, 47, 129, 30,
751 /* 1380 */ 14, 71, 45, 129, 30, 14, 73, 42, 129, 30,
752 /* 1390 */ 15, 75, 38, 129, 33, 12, 77, 34, 129, 36,
753 /* 1400 */ 10, 79, 30, 129, 40, 6, 82, 23, 129, 44,
754 /* 1410 */ 3, 86, 15, 129, 47, 1, 129, 193, 129, 129,
755 /* 1420 */ 38, 3, 129, 37, 5, 111, 1, 129, 36, 7,
756 /* 1430 */ 111, 2, 129, 35, 9, 110, 5, 129, 34, 8,
757 /* 1440 */ 110, 6, 129, 33, 7, 109, 8, 129, 32, 7,
758 /* 1450 */ 110, 8, 129, 32, 6, 112, 7, 129, 31, 6,
759 /* 1460 */ 113, 6, 129, 31, 5, 114, 6, 129, 30, 5,
760 /* 1470 */ 115, 5, 129, 30, 5, 116, 4, 129, 30, 4,
761 /* 1480 */ 117, 4, 131, 30, 4, 117, 4, 129, 30, 4,
762 /* 1490 */ 79, 2, 117, 4, 129, 30, 5, 78, 4, 117,
763 /* 1500 */ 4, 129, 30, 5, 77, 6, 116, 5, 129, 30,
764 /* 1510 */ 6, 76, 8, 115, 6, 129, 30, 7, 75, 11,
765 /* 1520 */ 114, 6, 129, 30, 8, 73, 15, 112, 8, 129,
766 /* 1530 */ 31, 9, 71, 19, 110, 9, 129, 31, 11, 68,
767 /* 1540 */ 26, 107, 12, 129, 32, 13, 65, 14, 82, 36,
768 /* 1550 */ 129, 32, 16, 61, 17, 83, 34, 129, 33, 44,
769 /* 1560 */ 84, 32, 129, 34, 42, 85, 30, 129, 35, 40,
770 /* 1570 */ 87, 27, 129, 36, 38, 89, 23, 129, 38, 34,
771 /* 1580 */ 92, 17, 129, 40, 30, 95, 11, 129, 42, 26,
772 /* 1590 */ 129, 45, 20, 129, 49, 11, 129, 193, 129, 49,
773 /* 1600 */ 1, 129, 49, 4, 129, 49, 6, 129, 49, 8,
774 /* 1610 */ 129, 49, 10, 129, 49, 12, 129, 49, 14, 129,
775 /* 1620 */ 49, 17, 129, 49, 19, 129, 49, 21, 129, 49,
776 /* 1630 */ 23, 129, 49, 14, 65, 9, 129, 49, 14, 67,
777 /* 1640 */ 9, 129, 49, 14, 69, 9, 129, 49, 14, 71,
778 /* 1650 */ 10, 129, 49, 14, 74, 9, 129, 49, 14, 76,
779 /* 1660 */ 9, 129, 49, 14, 78, 9, 129, 49, 14, 80,
780 /* 1670 */ 9, 129, 49, 14, 82, 9, 129, 49, 14, 84,
781 /* 1680 */ 9, 129, 30, 4, 49, 14, 86, 10, 129, 30,
782 /* 1690 */ 4, 49, 14, 89, 9, 129, 30, 4, 49, 14,
783 /* 1700 */ 91, 9, 129, 30, 4, 49, 14, 93, 9, 129,
784 /* 1710 */ 30, 74, 129, 30, 76, 129, 30, 78, 129, 30,
785 /* 1720 */ 81, 129, 30, 83, 129, 30, 85, 129, 30, 87,
786 /* 1730 */ 129, 30, 89, 129, 30, 91, 129, 30, 4, 49,
787 /* 1740 */ 14, 132, 193, 129, 37, 1, 129, 36, 3, 77,
788 /* 1750 */ 3, 129, 35, 5, 78, 11, 129, 34, 7, 78,
789 /* 1760 */ 21, 129, 33, 7, 79, 29, 129, 32, 7, 79,
790 /* 1770 */ 38, 129, 32, 6, 80, 4, 92, 29, 129, 31,
791 /* 1780 */ 6, 80, 5, 102, 19, 129, 31, 5, 80, 6,
792 /* 1790 */ 107, 14, 129, 31, 4, 81, 5, 107, 14, 129,
793 /* 1800 */ 30, 5, 81, 6, 107, 14, 129, 30, 4, 81,
794 /* 1810 */ 6, 107, 14, 130, 30, 4, 81, 7, 107, 14,
795 /* 1820 */ 129, 30, 4, 80, 8, 107, 14, 130, 30, 5,
796 /* 1830 */ 80, 8, 107, 14, 129, 30, 5, 79, 9, 107,
797 /* 1840 */ 14, 129, 31, 5, 79, 9, 107, 14, 129, 31,
798 /* 1850 */ 6, 78, 10, 107, 14, 129, 32, 6, 76, 11,
799 /* 1860 */ 107, 14, 129, 32, 8, 74, 13, 107, 14, 129,
800 /* 1870 */ 33, 10, 71, 16, 107, 14, 129, 33, 15, 67,
801 /* 1880 */ 19, 107, 14, 129, 34, 51, 107, 14, 129, 35,
802 /* 1890 */ 49, 107, 14, 129, 36, 47, 107, 14, 129, 37,
803 /* 1900 */ 45, 107, 14, 129, 39, 41, 107, 14, 129, 41,
804 /* 1910 */ 37, 107, 14, 129, 44, 32, 107, 14, 129, 47,
805 /* 1920 */ 25, 111, 10, 129, 51, 16, 115, 6, 129, 119,
806 /* 1930 */ 2, 129, 193, 129, 56, 39, 129, 51, 49, 129,
807 /* 1940 */ 47, 57, 129, 44, 63, 129, 42, 67, 129, 40,
808 /* 1950 */ 71, 129, 38, 75, 129, 37, 77, 129, 35, 81,
809 /* 1960 */ 129, 34, 16, 74, 5, 101, 16, 129, 33, 11,
810 /* 1970 */ 76, 5, 107, 11, 129, 32, 9, 77, 5, 110,
811 /* 1980 */ 9, 129, 32, 7, 79, 4, 112, 7, 129, 31,
812 /* 1990 */ 6, 80, 4, 114, 6, 129, 31, 5, 81, 4,
813 /* 2000 */ 115, 5, 129, 30, 5, 82, 4, 116, 5, 129,
814 /* 2010 */ 30, 4, 82, 4, 116, 5, 129, 30, 4, 82,
815 /* 2020 */ 5, 117, 4, 131, 30, 5, 82, 5, 117, 4,
816 /* 2030 */ 129, 31, 5, 81, 6, 117, 4, 129, 31, 6,
817 /* 2040 */ 80, 7, 117, 4, 129, 32, 7, 79, 8, 117,
818 /* 2050 */ 4, 129, 32, 9, 77, 9, 116, 5, 129, 33,
819 /* 2060 */ 11, 75, 11, 116, 4, 129, 34, 16, 69, 16,
820 /* 2070 */ 115, 5, 129, 35, 49, 114, 5, 129, 37, 46,
821 /* 2080 */ 113, 5, 129, 38, 44, 112, 6, 129, 40, 41,
822 /* 2090 */ 112, 5, 129, 42, 37, 113, 3, 129, 44, 33,
823 /* 2100 */ 114, 1, 129, 47, 27, 129, 51, 17, 129, 193,
824 /* 2110 */ 129, 103, 2, 129, 103, 6, 129, 104, 9, 129,
825 /* 2120 */ 105, 12, 129, 106, 15, 129, 107, 14, 135, 30,
826 /* 2130 */ 10, 107, 14, 129, 30, 17, 107, 14, 129, 30,
827 /* 2140 */ 25, 107, 14, 129, 30, 31, 107, 14, 129, 30,
828 /* 2150 */ 37, 107, 14, 129, 30, 42, 107, 14, 129, 30,
829 /* 2160 */ 46, 107, 14, 129, 30, 50, 107, 14, 129, 30,
830 /* 2170 */ 54, 107, 14, 129, 30, 58, 107, 14, 129, 59,
831 /* 2180 */ 32, 107, 14, 129, 64, 30, 107, 14, 129, 74,
832 /* 2190 */ 23, 107, 14, 129, 81, 18, 107, 14, 129, 86,
833 /* 2200 */ 16, 107, 14, 129, 91, 14, 107, 14, 129, 96,
834 /* 2210 */ 25, 129, 100, 21, 129, 104, 17, 129, 107, 14,
835 /* 2220 */ 129, 111, 10, 129, 114, 7, 129, 117, 4, 129,
836 /* 2230 */ 120, 1, 129, 193, 129, 48, 13, 129, 44, 21,
837 /* 2240 */ 129, 42, 26, 129, 40, 30, 92, 12, 129, 38,
838 /* 2250 */ 34, 88, 20, 129, 36, 37, 86, 25, 129, 35,
839 /* 2260 */ 39, 84, 29, 129, 34, 13, 63, 12, 82, 33,
840 /* 2270 */ 129, 33, 11, 67, 9, 80, 36, 129, 32, 9,
841 /* 2280 */ 70, 7, 79, 38, 129, 31, 8, 72, 46, 129,
842 /* 2290 */ 30, 7, 74, 22, 108, 11, 129, 30, 6, 75,
843 /* 2300 */ 19, 111, 9, 129, 30, 5, 75, 17, 113, 7,
844 /* 2310 */ 129, 30, 5, 74, 16, 114, 6, 129, 30, 4,
845 /* 2320 */ 73, 16, 115, 6, 129, 30, 4, 72, 16, 116,
846 /* 2330 */ 5, 129, 30, 4, 72, 15, 117, 4, 129, 30,
847 /* 2340 */ 4, 71, 16, 117, 4, 129, 30, 5, 70, 16,
848 /* 2350 */ 117, 4, 129, 30, 5, 70, 15, 117, 4, 129,
849 /* 2360 */ 30, 6, 69, 15, 116, 5, 129, 30, 7, 68,
850 /* 2370 */ 17, 115, 5, 129, 30, 9, 67, 19, 114, 6,
851 /* 2380 */ 129, 30, 10, 65, 22, 113, 6, 129, 31, 12,
852 /* 2390 */ 63, 27, 110, 9, 129, 32, 14, 60, 21, 84,
853 /* 2400 */ 9, 106, 12, 129, 33, 47, 85, 32, 129, 34,
854 /* 2410 */ 45, 86, 30, 129, 35, 43, 88, 26, 129, 36,
855 /* 2420 */ 40, 90, 22, 129, 38, 36, 93, 17, 129, 40,
856 /* 2430 */ 32, 96, 10, 129, 42, 28, 129, 44, 23, 129,
857 /* 2440 */ 48, 15, 129, 193, 129, 83, 17, 129, 77, 27,
858 /* 2450 */ 129, 36, 1, 74, 33, 129, 35, 3, 72, 37,
859 /* 2460 */ 129, 34, 5, 70, 41, 129, 33, 6, 69, 44,
860 /* 2470 */ 129, 33, 5, 68, 46, 129, 32, 5, 67, 49,
861 /* 2480 */ 129, 31, 5, 66, 17, 101, 16, 129, 31, 5,
862 /* 2490 */ 66, 11, 108, 10, 129, 30, 4, 65, 9, 110,
863 /* 2500 */ 9, 129, 30, 4, 64, 8, 112, 7, 129, 30,
864 /* 2510 */ 4, 64, 7, 114, 6, 129, 30, 4, 64, 6,
865 /* 2520 */ 115, 5, 129, 30, 4, 64, 5, 116, 5, 129,
866 /* 2530 */ 30, 4, 64, 5, 117, 4, 131, 30, 4, 65,
867 /* 2540 */ 4, 117, 4, 129, 30, 5, 65, 4, 116, 5,
868 /* 2550 */ 129, 31, 5, 66, 4, 115, 5, 129, 31, 6,
869 /* 2560 */ 67, 4, 114, 6, 129, 32, 7, 68, 4, 112,
870 /* 2570 */ 7, 129, 32, 9, 69, 5, 110, 9, 129, 33,
871 /* 2580 */ 11, 70, 5, 107, 11, 129, 34, 16, 72, 5,
872 /* 2590 */ 101, 16, 129, 35, 81, 129, 37, 77, 129, 38,
873 /* 2600 */ 75, 129, 40, 71, 129, 42, 67, 129, 44, 63,
874 /* 2610 */ 129, 47, 57, 129, 51, 49, 129, 56, 39, 129,
875 /* 2620 */ 193, 130, 34, 6, 74, 6, 129, 32, 10, 72,
876 /* 2630 */ 10, 129, 31, 12, 71, 12, 129, 30, 14, 70,
877 /* 2640 */ 14, 131, 31, 12, 71, 12, 129, 32, 10, 72,
878 /* 2650 */ 10, 129, 34, 6, 74, 6, 129, 194, 130, 34,
879 /* 2660 */ 6, 74, 6, 129, 32, 10, 72, 10, 129, 31,
880 /* 2670 */ 12, 71, 12, 129, 30, 14, 70, 14, 129, 20,
881 /* 2680 */ 2, 28, 16, 70, 14, 129, 22, 22, 70, 14,
882 /* 2690 */ 129, 24, 19, 71, 12, 129, 27, 15, 72, 10,
883 /* 2700 */ 129, 31, 9, 74, 6, 129, 194, 129, 53, 4,
884 /* 2710 */ 63, 4, 152, 193, 130, 99, 7, 129, 97, 13,
885 /* 2720 */ 129, 96, 16, 129, 96, 18, 129, 96, 19, 129,
886 /* 2730 */ 97, 19, 129, 99, 6, 110, 7, 129, 112, 6,
887 /* 2740 */ 129, 114, 5, 129, 34, 6, 57, 5, 115, 4,
888 /* 2750 */ 129, 32, 10, 54, 12, 116, 4, 129, 31, 12,
889 /* 2760 */ 53, 16, 117, 3, 129, 30, 14, 52, 20, 117,
890 /* 2770 */ 4, 129, 30, 14, 52, 23, 117, 4, 129, 30,
891 /* 2780 */ 14, 52, 25, 117, 4, 129, 31, 12, 52, 27,
892 /* 2790 */ 117, 4, 129, 32, 10, 53, 10, 70, 11, 116,
893 /* 2800 */ 5, 129, 34, 6, 55, 5, 73, 10, 115, 6,
894 /* 2810 */ 129, 74, 11, 114, 7, 129, 75, 12, 112, 9,
895 /* 2820 */ 129, 76, 13, 110, 10, 129, 77, 16, 106, 14,
896 /* 2830 */ 129, 78, 41, 129, 80, 38, 129, 81, 36, 129,
897 /* 2840 */ 82, 34, 129, 84, 30, 129, 86, 26, 129, 88,
898 /* 2850 */ 22, 129, 92, 14, 129, 194, 129, 55, 15, 129,
899 /* 2860 */ 50, 25, 129, 47, 32, 129, 45, 13, 70, 12,
900 /* 2870 */ 129, 43, 9, 76, 10, 129, 42, 6, 79, 8,
901 /* 2880 */ 129, 41, 5, 81, 7, 129, 40, 4, 84, 6,
902 /* 2890 */ 129, 39, 4, 59, 12, 85, 6, 129, 38, 4,
903 /* 2900 */ 55, 19, 87, 5, 129, 37, 4, 53, 23, 88,
904 /* 2910 */ 4, 129, 36, 4, 51, 8, 71, 6, 89, 4,
905 /* 2920 */ 129, 36, 4, 51, 6, 73, 4, 89, 4, 129,
906 /* 2930 */ 36, 4, 50, 6, 74, 4, 90, 3, 129, 35,
907 /* 2940 */ 4, 50, 5, 75, 3, 90, 4, 129, 35, 4,
908 /* 2950 */ 50, 4, 75, 4, 90, 4, 131, 35, 4, 50,
909 /* 2960 */ 5, 75, 4, 90, 4, 129, 36, 4, 51, 5,
910 /* 2970 */ 75, 4, 90, 4, 129, 36, 4, 51, 6, 75,
911 /* 2980 */ 4, 90, 4, 129, 36, 4, 53, 26, 90, 4,
912 /* 2990 */ 129, 37, 4, 54, 25, 90, 4, 129, 37, 4,
913 /* 3000 */ 52, 27, 90, 3, 129, 38, 4, 52, 4, 89,
914 /* 3010 */ 4, 129, 39, 4, 51, 4, 88, 4, 129, 40,
915 /* 3020 */ 4, 50, 4, 87, 5, 129, 41, 4, 50, 4,
916 /* 3030 */ 86, 5, 129, 42, 4, 50, 4, 85, 5, 129,
917 /* 3040 */ 43, 3, 50, 4, 83, 6, 129, 44, 2, 51,
918 /* 3050 */ 5, 80, 7, 129, 46, 1, 52, 6, 76, 9,
919 /* 3060 */ 129, 54, 28, 129, 56, 23, 129, 60, 16, 129,
920 /* 3070 */ 193, 129, 30, 4, 132, 30, 5, 129, 30, 8,
921 /* 3080 */ 129, 30, 12, 129, 30, 16, 129, 30, 4, 37,
922 /* 3090 */ 12, 129, 30, 4, 41, 12, 129, 30, 4, 44,
923 /* 3100 */ 13, 129, 30, 4, 48, 13, 129, 52, 13, 129,
924 /* 3110 */ 56, 12, 129, 58, 14, 129, 58, 4, 64, 12,
925 /* 3120 */ 129, 58, 4, 68, 12, 129, 58, 4, 72, 12,
926 /* 3130 */ 129, 58, 4, 75, 13, 129, 58, 4, 79, 13,
927 /* 3140 */ 129, 58, 4, 83, 13, 129, 58, 4, 87, 13,
928 /* 3150 */ 129, 58, 4, 91, 12, 129, 58, 4, 95, 12,
929 /* 3160 */ 129, 58, 4, 96, 15, 129, 58, 4, 93, 22,
930 /* 3170 */ 129, 58, 4, 89, 30, 129, 58, 4, 85, 36,
931 /* 3180 */ 129, 58, 4, 81, 38, 129, 58, 4, 77, 38,
932 /* 3190 */ 129, 58, 4, 73, 38, 129, 58, 4, 70, 37,
933 /* 3200 */ 129, 58, 4, 66, 37, 129, 58, 41, 129, 58,
934 /* 3210 */ 37, 129, 54, 38, 129, 30, 4, 50, 38, 129,
935 /* 3220 */ 30, 4, 46, 38, 129, 30, 4, 42, 38, 129,
936 /* 3230 */ 30, 4, 38, 39, 129, 30, 43, 129, 30, 39,
937 /* 3240 */ 129, 30, 35, 129, 30, 31, 129, 30, 27, 129,
938 /* 3250 */ 30, 24, 129, 30, 20, 129, 30, 16, 129, 30,
939 /* 3260 */ 12, 129, 30, 8, 129, 30, 5, 129, 30, 4,
940 /* 3270 */ 132, 193, 129, 30, 4, 117, 4, 132, 30, 91,
941 /* 3280 */ 137, 30, 4, 80, 4, 117, 4, 138, 30, 4,
942 /* 3290 */ 80, 5, 116, 5, 129, 30, 5, 79, 6, 116,
943 /* 3300 */ 5, 130, 30, 6, 78, 8, 115, 6, 129, 31,
944 /* 3310 */ 6, 77, 9, 115, 6, 129, 31, 7, 76, 11,
945 /* 3320 */ 114, 6, 129, 31, 8, 75, 14, 112, 8, 129,
946 /* 3330 */ 32, 8, 74, 16, 111, 9, 129, 32, 9, 73,
947 /* 3340 */ 19, 109, 10, 129, 33, 10, 71, 24, 106, 13,
948 /* 3350 */ 129, 33, 13, 68, 12, 83, 35, 129, 34, 16,
949 /* 3360 */ 64, 15, 84, 33, 129, 35, 43, 85, 31, 129,
950 /* 3370 */ 36, 41, 86, 29, 129, 37, 39, 88, 25, 129,
951 /* 3380 */ 38, 37, 90, 21, 129, 40, 33, 93, 15, 129,
952 /* 3390 */ 42, 29, 96, 9, 129, 45, 24, 129, 49, 16,
953 /* 3400 */ 129, 193, 129, 63, 25, 129, 57, 37, 129, 53,
954 /* 3410 */ 45, 129, 50, 51, 129, 47, 57, 129, 45, 61,
955 /* 3420 */ 129, 43, 65, 129, 41, 69, 129, 39, 73, 129,
956 /* 3430 */ 38, 25, 92, 21, 129, 36, 21, 97, 18, 129,
957 /* 3440 */ 35, 18, 102, 14, 129, 34, 16, 106, 11, 129,
958 /* 3450 */ 33, 14, 108, 10, 129, 32, 12, 111, 8, 129,
959 /* 3460 */ 32, 10, 113, 6, 129, 31, 10, 114, 6, 129,
960 /* 3470 */ 31, 8, 115, 5, 129, 30, 8, 116, 5, 129,
961 /* 3480 */ 30, 7, 116, 5, 129, 30, 6, 117, 4, 130,
962 /* 3490 */ 30, 5, 117, 4, 131, 31, 4, 116, 5, 129,
963 /* 3500 */ 32, 4, 116, 4, 129, 32, 5, 115, 5, 129,
964 /* 3510 */ 33, 4, 114, 5, 129, 34, 4, 112, 6, 129,
965 /* 3520 */ 35, 4, 110, 7, 129, 37, 4, 107, 9, 129,
966 /* 3530 */ 39, 4, 103, 12, 129, 41, 4, 103, 18, 129,
967 /* 3540 */ 43, 4, 103, 18, 129, 45, 5, 103, 18, 129,
968 /* 3550 */ 48, 5, 103, 18, 129, 51, 1, 129, 193, 129,
969 /* 3560 */ 30, 4, 117, 4, 132, 30, 91, 137, 30, 4,
970 /* 3570 */ 117, 4, 135, 30, 5, 116, 5, 130, 30, 6,
971 /* 3580 */ 115, 6, 130, 31, 6, 114, 6, 129, 31, 7,
972 /* 3590 */ 113, 7, 129, 32, 7, 112, 7, 129, 32, 8,
973 /* 3600 */ 111, 8, 129, 33, 9, 109, 9, 129, 33, 12,
974 /* 3610 */ 106, 12, 129, 34, 13, 104, 13, 129, 35, 15,
975 /* 3620 */ 101, 15, 129, 36, 19, 96, 19, 129, 37, 24,
976 /* 3630 */ 90, 24, 129, 39, 73, 129, 40, 71, 129, 42,
977 /* 3640 */ 67, 129, 44, 63, 129, 46, 59, 129, 49, 53,
978 /* 3650 */ 129, 52, 47, 129, 56, 39, 129, 61, 29, 129,
979 /* 3660 */ 193, 129, 30, 4, 117, 4, 132, 30, 91, 137,
980 /* 3670 */ 30, 4, 80, 4, 117, 4, 140, 30, 4, 79,
981 /* 3680 */ 6, 117, 4, 129, 30, 4, 77, 10, 117, 4,
982 /* 3690 */ 129, 30, 4, 73, 18, 117, 4, 132, 30, 4,
983 /* 3700 */ 117, 4, 130, 30, 5, 116, 5, 130, 30, 7,
984 /* 3710 */ 114, 7, 129, 30, 8, 113, 8, 129, 30, 11,
985 /* 3720 */ 110, 11, 129, 30, 18, 103, 18, 132, 193, 129,
986 /* 3730 */ 30, 4, 117, 4, 132, 30, 91, 137, 30, 4,
987 /* 3740 */ 80, 4, 117, 4, 132, 80, 4, 117, 4, 136,
988 /* 3750 */ 79, 6, 117, 4, 129, 77, 10, 117, 4, 129,
989 /* 3760 */ 73, 18, 117, 4, 132, 117, 4, 130, 116, 5,
990 /* 3770 */ 130, 114, 7, 129, 113, 8, 129, 110, 11, 129,
991 /* 3780 */ 103, 18, 132, 193, 129, 63, 25, 129, 57, 37,
992 /* 3790 */ 129, 53, 45, 129, 50, 51, 129, 47, 57, 129,
993 /* 3800 */ 45, 61, 129, 43, 65, 129, 41, 69, 129, 39,
994 /* 3810 */ 73, 129, 38, 25, 92, 21, 129, 36, 21, 97,
995 /* 3820 */ 18, 129, 35, 18, 102, 14, 129, 34, 16, 106,
996 /* 3830 */ 11, 129, 33, 14, 108, 10, 129, 32, 12, 111,
997 /* 3840 */ 8, 129, 32, 10, 113, 6, 129, 31, 10, 114,
998 /* 3850 */ 6, 129, 31, 8, 115, 5, 129, 30, 8, 116,
999 /* 3860 */ 5, 129, 30, 7, 116, 5, 129, 30, 6, 117,
1000 /* 3870 */ 4, 130, 30, 5, 117, 4, 131, 30, 5, 75,
1001 /* 3880 */ 4, 116, 5, 129, 31, 5, 75, 4, 116, 4,
1002 /* 3890 */ 129, 31, 6, 75, 4, 115, 5, 129, 32, 7,
1003 /* 3900 */ 75, 4, 114, 5, 129, 32, 9, 75, 4, 112,
1004 /* 3910 */ 6, 129, 33, 11, 75, 4, 110, 7, 129, 34,
1005 /* 3920 */ 15, 75, 4, 107, 9, 129, 35, 44, 103, 12,
1006 /* 3930 */ 129, 36, 43, 103, 18, 129, 38, 41, 103, 18,
1007 /* 3940 */ 129, 39, 40, 103, 18, 129, 41, 38, 103, 18,
1008 /* 3950 */ 129, 44, 35, 129, 48, 31, 129, 52, 27, 129,
1009 /* 3960 */ 61, 18, 129, 193, 129, 30, 4, 117, 4, 132,
1010 /* 3970 */ 30, 91, 137, 30, 4, 80, 4, 117, 4, 132,
1011 /* 3980 */ 80, 4, 140, 30, 4, 80, 4, 117, 4, 132,
1012 /* 3990 */ 30, 91, 137, 30, 4, 117, 4, 132, 193, 129,
1013 /* 4000 */ 30, 4, 117, 4, 132, 30, 91, 137, 30, 4,
1014 /* 4010 */ 117, 4, 132, 193, 129, 44, 7, 129, 40, 13,
1015 /* 4020 */ 129, 37, 17, 129, 35, 20, 129, 34, 22, 129,
1016 /* 4030 */ 33, 23, 129, 32, 24, 129, 32, 23, 129, 31,
1017 /* 4040 */ 6, 41, 13, 129, 31, 5, 42, 11, 129, 30,
1018 /* 4050 */ 5, 44, 7, 129, 30, 4, 132, 30, 5, 130,
1019 /* 4060 */ 31, 5, 129, 31, 6, 117, 4, 129, 31, 8,
1020 /* 4070 */ 117, 4, 129, 32, 9, 117, 4, 129, 33, 11,
1021 /* 4080 */ 117, 4, 129, 34, 87, 129, 35, 86, 129, 36,
1022 /* 4090 */ 85, 129, 37, 84, 129, 38, 83, 129, 40, 81,
1023 /* 4100 */ 129, 42, 79, 129, 45, 76, 129, 50, 71, 129,
1024 /* 4110 */ 117, 4, 132, 193, 129, 30, 4, 117, 4, 132,
1025 /* 4120 */ 30, 91, 137, 30, 4, 76, 8, 117, 4, 129,
1026 /* 4130 */ 30, 4, 73, 13, 117, 4, 129, 30, 4, 70,
1027 /* 4140 */ 18, 117, 4, 129, 30, 4, 67, 23, 117, 4,
1028 /* 4150 */ 129, 65, 26, 129, 62, 31, 129, 59, 35, 129,
1029 /* 4160 */ 56, 29, 89, 7, 129, 53, 29, 91, 7, 129,
1030 /* 4170 */ 50, 29, 93, 7, 129, 47, 29, 95, 6, 129,
1031 /* 4180 */ 30, 4, 45, 29, 96, 7, 129, 30, 4, 42,
1032 /* 4190 */ 29, 98, 7, 129, 30, 4, 39, 30, 100, 6,
1033 /* 4200 */ 129, 30, 4, 36, 30, 101, 7, 129, 30, 33,
1034 /* 4210 */ 103, 7, 117, 4, 129, 30, 30, 105, 6, 117,
1035 /* 4220 */ 4, 129, 30, 27, 106, 7, 117, 4, 129, 30,
1036 /* 4230 */ 25, 108, 7, 117, 4, 129, 30, 22, 110, 11,
1037 /* 4240 */ 129, 30, 19, 111, 10, 129, 30, 16, 113, 8,
1038 /* 4250 */ 129, 30, 13, 115, 6, 129, 30, 11, 116, 5,
1039 /* 4260 */ 129, 30, 8, 117, 4, 129, 30, 5, 117, 4,
1040 /* 4270 */ 129, 30, 4, 117, 4, 130, 30, 4, 130, 193,
1041 /* 4280 */ 129, 30, 4, 117, 4, 132, 30, 91, 137, 30,
1042 /* 4290 */ 4, 117, 4, 132, 30, 4, 144, 30, 5, 130,
1043 /* 4300 */ 30, 7, 129, 30, 8, 129, 30, 11, 129, 30,
1044 /* 4310 */ 18, 132, 193, 129, 30, 4, 117, 4, 132, 30,
1045 /* 4320 */ 91, 132, 30, 4, 103, 18, 129, 30, 4, 97,
1046 /* 4330 */ 24, 129, 30, 4, 92, 29, 129, 30, 4, 87,
1047 /* 4340 */ 34, 129, 81, 40, 129, 76, 45, 129, 70, 49,
1048 /* 4350 */ 129, 65, 49, 129, 60, 49, 129, 55, 49, 129,
1049 /* 4360 */ 50, 48, 129, 44, 49, 129, 39, 48, 129, 33,
1050 /* 4370 */ 49, 129, 30, 47, 129, 34, 37, 129, 40, 26,
1051 /* 4380 */ 129, 46, 19, 129, 52, 19, 129, 58, 19, 129,
1052 /* 4390 */ 64, 19, 129, 70, 19, 129, 76, 19, 129, 82,
1053 /* 4400 */ 19, 129, 30, 4, 88, 18, 129, 30, 4, 94,
1054 /* 4410 */ 18, 129, 30, 4, 100, 18, 129, 30, 4, 106,
1055 /* 4420 */ 15, 129, 30, 91, 137, 30, 4, 117, 4, 132,
1056 /* 4430 */ 193, 129, 30, 4, 117, 4, 132, 30, 91, 132,
1057 /* 4440 */ 30, 4, 107, 14, 129, 30, 4, 104, 17, 129,
1058 /* 4450 */ 30, 4, 101, 20, 129, 30, 4, 99, 22, 129,
1059 /* 4460 */ 96, 25, 129, 93, 28, 129, 91, 28, 129, 88,
1060 /* 4470 */ 29, 129, 85, 29, 129, 82, 29, 129, 79, 29,
1061 /* 4480 */ 129, 76, 29, 129, 74, 29, 129, 71, 29, 129,
1062 /* 4490 */ 68, 29, 129, 65, 29, 129, 62, 29, 129, 60,
1063 /* 4500 */ 29, 129, 57, 29, 129, 54, 29, 129, 51, 29,
1064 /* 4510 */ 129, 49, 28, 129, 46, 29, 129, 43, 29, 129,
1065 /* 4520 */ 40, 29, 117, 4, 129, 37, 29, 117, 4, 129,
1066 /* 4530 */ 35, 29, 117, 4, 129, 32, 29, 117, 4, 129,
1067 /* 4540 */ 30, 91, 132, 117, 4, 132, 193, 129, 63, 25,
1068 /* 4550 */ 129, 57, 37, 129, 53, 45, 129, 50, 51, 129,
1069 /* 4560 */ 47, 57, 129, 45, 61, 129, 43, 65, 129, 41,
1070 /* 4570 */ 69, 129, 39, 73, 129, 38, 21, 92, 21, 129,
1071 /* 4580 */ 36, 18, 97, 18, 129, 35, 14, 102, 14, 129,
1072 /* 4590 */ 34, 11, 106, 11, 129, 33, 10, 108, 10, 129,
1073 /* 4600 */ 32, 8, 111, 8, 129, 32, 6, 113, 6, 129,
1074 /* 4610 */ 31, 6, 114, 6, 129, 31, 5, 115, 5, 129,
1075 /* 4620 */ 30, 5, 116, 5, 130, 30, 4, 117, 4, 132,
1076 /* 4630 */ 30, 5, 116, 5, 130, 31, 5, 115, 5, 129,
1077 /* 4640 */ 31, 6, 114, 6, 129, 32, 6, 113, 6, 129,
1078 /* 4650 */ 32, 8, 111, 8, 129, 33, 10, 108, 10, 129,
1079 /* 4660 */ 34, 11, 106, 11, 129, 35, 14, 102, 14, 129,
1080 /* 4670 */ 36, 18, 97, 18, 129, 38, 21, 92, 21, 129,
1081 /* 4680 */ 39, 73, 129, 41, 69, 129, 43, 65, 129, 45,
1082 /* 4690 */ 61, 129, 47, 57, 129, 50, 51, 129, 53, 45,
1083 /* 4700 */ 129, 57, 37, 129, 63, 25, 129, 193, 129, 30,
1084 /* 4710 */ 4, 117, 4, 132, 30, 91, 137, 30, 4, 80,
1085 /* 4720 */ 4, 117, 4, 132, 80, 4, 117, 4, 134, 80,
1086 /* 4730 */ 5, 116, 5, 131, 80, 6, 115, 6, 130, 81,
1087 /* 4740 */ 6, 114, 6, 129, 81, 8, 112, 8, 129, 81,
1088 /* 4750 */ 9, 111, 9, 129, 82, 10, 109, 10, 129, 82,
1089 /* 4760 */ 13, 106, 13, 129, 83, 35, 129, 84, 33, 129,
1090 /* 4770 */ 85, 31, 129, 86, 29, 129, 88, 25, 129, 90,
1091 /* 4780 */ 21, 129, 93, 15, 129, 96, 9, 129, 193, 129,
1092 /* 4790 */ 63, 25, 129, 57, 37, 129, 53, 45, 129, 50,
1093 /* 4800 */ 51, 129, 47, 57, 129, 45, 61, 129, 43, 65,
1094 /* 4810 */ 129, 41, 69, 129, 39, 73, 129, 38, 21, 92,
1095 /* 4820 */ 21, 129, 36, 18, 97, 18, 129, 35, 14, 102,
1096 /* 4830 */ 14, 129, 34, 11, 106, 11, 129, 33, 10, 108,
1097 /* 4840 */ 10, 129, 32, 8, 111, 8, 129, 32, 6, 113,
1098 /* 4850 */ 6, 129, 31, 6, 114, 6, 129, 31, 5, 115,
1099 /* 4860 */ 5, 129, 30, 5, 116, 5, 130, 30, 4, 39,
1100 /* 4870 */ 2, 117, 4, 129, 30, 4, 40, 4, 117, 4,
1101 /* 4880 */ 129, 30, 4, 41, 5, 117, 4, 129, 30, 4,
1102 /* 4890 */ 41, 6, 117, 4, 129, 30, 5, 40, 8, 116,
1103 /* 4900 */ 5, 129, 30, 5, 39, 10, 116, 5, 129, 31,
1104 /* 4910 */ 5, 38, 11, 115, 5, 129, 31, 18, 114, 6,
1105 /* 4920 */ 129, 32, 17, 113, 6, 129, 32, 16, 111, 8,
1106 /* 4930 */ 129, 33, 15, 108, 10, 129, 33, 14, 106, 11,
1107 /* 4940 */ 129, 32, 17, 102, 14, 129, 31, 23, 97, 18,
1108 /* 4950 */ 129, 31, 28, 92, 21, 129, 30, 82, 129, 30,
1109 /* 4960 */ 80, 129, 30, 11, 43, 65, 129, 30, 10, 45,
1110 /* 4970 */ 61, 129, 31, 8, 47, 57, 129, 32, 6, 50,
1111 /* 4980 */ 51, 129, 33, 5, 53, 45, 129, 35, 4, 57,
1112 /* 4990 */ 37, 129, 38, 2, 63, 25, 129, 193, 129, 30,
1113 /* 5000 */ 4, 117, 4, 132, 30, 91, 137, 30, 4, 76,
1114 /* 5010 */ 8, 117, 4, 129, 30, 4, 73, 11, 117, 4,
1115 /* 5020 */ 129, 30, 4, 70, 14, 117, 4, 129, 30, 4,
1116 /* 5030 */ 67, 17, 117, 4, 129, 65, 19, 117, 4, 129,
1117 /* 5040 */ 62, 22, 117, 4, 129, 59, 25, 117, 4, 129,
1118 /* 5050 */ 56, 28, 117, 4, 129, 53, 31, 117, 4, 129,
1119 /* 5060 */ 50, 34, 117, 4, 129, 47, 29, 80, 5, 116,
1120 /* 5070 */ 5, 129, 30, 4, 45, 29, 80, 5, 116, 5,
1121 /* 5080 */ 129, 30, 4, 42, 29, 80, 5, 116, 5, 129,
1122 /* 5090 */ 30, 4, 39, 30, 80, 6, 115, 6, 129, 30,
1123 /* 5100 */ 4, 36, 30, 80, 6, 115, 6, 129, 30, 33,
1124 /* 5110 */ 81, 6, 114, 6, 129, 30, 30, 81, 8, 112,
1125 /* 5120 */ 8, 129, 30, 27, 81, 9, 111, 9, 129, 30,
1126 /* 5130 */ 25, 82, 10, 109, 10, 129, 30, 22, 82, 13,
1127 /* 5140 */ 106, 13, 129, 30, 19, 83, 35, 129, 30, 16,
1128 /* 5150 */ 84, 33, 129, 30, 13, 85, 31, 129, 30, 11,
1129 /* 5160 */ 86, 29, 129, 30, 8, 88, 25, 129, 30, 5,
1130 /* 5170 */ 90, 21, 129, 30, 4, 93, 15, 129, 30, 4,
1131 /* 5180 */ 96, 9, 129, 30, 4, 130, 193, 129, 30, 18,
1132 /* 5190 */ 130, 30, 18, 89, 15, 129, 30, 18, 85, 23,
1133 /* 5200 */ 129, 34, 11, 83, 27, 129, 34, 9, 81, 31,
1134 /* 5210 */ 129, 33, 8, 79, 35, 129, 33, 6, 78, 16,
1135 /* 5220 */ 106, 9, 129, 32, 6, 77, 15, 109, 7, 129,
1136 /* 5230 */ 32, 5, 76, 14, 111, 6, 129, 31, 5, 75,
1137 /* 5240 */ 14, 113, 5, 129, 31, 4, 74, 15, 114, 5,
1138 /* 5250 */ 129, 31, 4, 74, 14, 115, 4, 129, 30, 4,
1139 /* 5260 */ 73, 15, 116, 4, 129, 30, 4, 73, 14, 116,
1140 /* 5270 */ 4, 129, 30, 4, 73, 14, 117, 4, 129, 30,
1141 /* 5280 */ 4, 72, 15, 117, 4, 130, 30, 4, 71, 15,
1142 /* 5290 */ 117, 4, 130, 30, 4, 70, 15, 117, 4, 129,
1143 /* 5300 */ 30, 5, 70, 15, 117, 4, 129, 30, 5, 69,
1144 /* 5310 */ 15, 116, 5, 129, 30, 6, 68, 16, 115, 5,
1145 /* 5320 */ 129, 31, 6, 67, 16, 114, 6, 129, 31, 7,
1146 /* 5330 */ 66, 17, 113, 6, 129, 32, 7, 64, 18, 111,
1147 /* 5340 */ 8, 129, 32, 8, 62, 19, 109, 9, 129, 33,
1148 /* 5350 */ 9, 60, 20, 107, 10, 129, 34, 11, 57, 22,
1149 /* 5360 */ 103, 13, 129, 35, 43, 103, 18, 129, 36, 41,
1150 /* 5370 */ 103, 18, 129, 38, 38, 103, 18, 129, 39, 35,
1151 /* 5380 */ 103, 18, 129, 41, 31, 129, 43, 27, 129, 46,
1152 /* 5390 */ 22, 129, 49, 14, 129, 193, 129, 103, 18, 132,
1153 /* 5400 */ 110, 11, 129, 113, 8, 129, 114, 7, 129, 116,
1154 /* 5410 */ 5, 130, 117, 4, 132, 30, 4, 117, 4, 132,
1155 /* 5420 */ 30, 91, 137, 30, 4, 117, 4, 132, 117, 4,
1156 /* 5430 */ 132, 116, 5, 130, 114, 7, 129, 113, 8, 129,
1157 /* 5440 */ 110, 11, 129, 103, 18, 132, 193, 129, 117, 4,
1158 /* 5450 */ 132, 56, 65, 129, 50, 71, 129, 46, 75, 129,
1159 /* 5460 */ 44, 77, 129, 42, 79, 129, 40, 81, 129, 38,
1160 /* 5470 */ 83, 129, 36, 85, 129, 35, 86, 129, 34, 20,
1161 /* 5480 */ 117, 4, 129, 33, 17, 117, 4, 129, 32, 15,
1162 /* 5490 */ 117, 4, 129, 32, 13, 117, 4, 129, 31, 12,
1163 /* 5500 */ 129, 31, 10, 129, 31, 9, 129, 30, 9, 129,
1164 /* 5510 */ 30, 8, 130, 30, 7, 132, 31, 6, 130, 31,
1165 /* 5520 */ 7, 129, 32, 6, 129, 32, 7, 129, 33, 7,
1166 /* 5530 */ 129, 34, 7, 129, 35, 8, 129, 36, 9, 117,
1167 /* 5540 */ 4, 129, 38, 9, 117, 4, 129, 40, 10, 117,
1168 /* 5550 */ 4, 129, 42, 12, 117, 4, 129, 44, 77, 129,
1169 /* 5560 */ 46, 75, 129, 50, 71, 129, 56, 43, 100, 21,
1170 /* 5570 */ 129, 117, 4, 132, 193, 129, 117, 4, 132, 115,
1171 /* 5580 */ 6, 129, 110, 11, 129, 105, 16, 129, 101, 20,
1172 /* 5590 */ 129, 96, 25, 129, 92, 29, 129, 87, 34, 129,
1173 /* 5600 */ 83, 38, 129, 78, 43, 129, 74, 47, 129, 70,
1174 /* 5610 */ 42, 117, 4, 129, 65, 42, 117, 4, 129, 60,
1175 /* 5620 */ 43, 117, 4, 129, 56, 42, 129, 51, 42, 129,
1176 /* 5630 */ 46, 43, 129, 42, 43, 129, 37, 44, 129, 33,
1177 /* 5640 */ 43, 129, 30, 42, 129, 33, 34, 129, 38, 25,
1178 /* 5650 */ 129, 42, 16, 129, 47, 15, 129, 52, 15, 129,
1179 /* 5660 */ 57, 15, 129, 61, 16, 129, 66, 16, 129, 71,
1180 /* 5670 */ 16, 129, 76, 16, 129, 80, 16, 129, 85, 16,
1181 /* 5680 */ 117, 4, 129, 90, 16, 117, 4, 129, 95, 16,
1182 /* 5690 */ 117, 4, 129, 100, 21, 129, 105, 16, 129, 110,
1183 /* 5700 */ 11, 129, 114, 7, 129, 117, 4, 132, 193, 129,
1184 /* 5710 */ 117, 4, 132, 115, 6, 129, 110, 11, 129, 105,
1185 /* 5720 */ 16, 129, 101, 20, 129, 96, 25, 129, 92, 29,
1186 /* 5730 */ 129, 87, 34, 129, 83, 38, 129, 78, 43, 129,
1187 /* 5740 */ 74, 47, 129, 70, 42, 117, 4, 129, 65, 42,
1188 /* 5750 */ 117, 4, 129, 60, 43, 117, 4, 129, 56, 42,
1189 /* 5760 */ 129, 51, 42, 129, 46, 43, 129, 42, 43, 129,
1190 /* 5770 */ 37, 44, 129, 33, 43, 129, 30, 42, 129, 33,
1191 /* 5780 */ 34, 129, 38, 25, 129, 42, 16, 129, 47, 15,
1192 /* 5790 */ 129, 52, 15, 129, 57, 15, 129, 61, 16, 129,
1193 /* 5800 */ 65, 17, 129, 60, 27, 129, 56, 36, 129, 51,
1194 /* 5810 */ 42, 129, 46, 43, 129, 42, 43, 129, 37, 44,
1195 /* 5820 */ 129, 33, 43, 129, 30, 42, 129, 33, 34, 129,
1196 /* 5830 */ 38, 25, 129, 42, 16, 129, 47, 15, 129, 52,
1197 /* 5840 */ 15, 129, 57, 15, 129, 61, 16, 129, 66, 16,
1198 /* 5850 */ 129, 71, 16, 129, 76, 16, 129, 80, 16, 129,
1199 /* 5860 */ 85, 16, 117, 4, 129, 90, 16, 117, 4, 129,
1200 /* 5870 */ 95, 16, 117, 4, 129, 100, 21, 129, 105, 16,
1201 /* 5880 */ 129, 110, 11, 129, 114, 7, 129, 117, 4, 132,
1202 /* 5890 */ 193, 129, 30, 4, 117, 4, 132, 30, 4, 115,
1203 /* 5900 */ 6, 129, 30, 4, 112, 9, 129, 30, 6, 109,
1204 /* 5910 */ 12, 129, 30, 9, 106, 15, 129, 30, 11, 103,
1205 /* 5920 */ 18, 129, 30, 14, 100, 21, 129, 30, 4, 38,
1206 /* 5930 */ 9, 98, 23, 129, 30, 4, 40, 10, 95, 26,
1207 /* 5940 */ 129, 30, 4, 43, 9, 92, 29, 129, 46, 9,
1208 /* 5950 */ 89, 32, 129, 49, 8, 86, 28, 117, 4, 129,
1209 /* 5960 */ 51, 9, 83, 28, 117, 4, 129, 54, 9, 80,
1210 /* 5970 */ 28, 117, 4, 129, 57, 8, 77, 28, 117, 4,
1211 /* 5980 */ 129, 59, 9, 74, 28, 129, 62, 37, 129, 64,
1212 /* 5990 */ 33, 129, 66, 28, 129, 63, 28, 129, 60, 28,
1213 /* 6000 */ 129, 57, 28, 129, 54, 33, 129, 51, 39, 129,
1214 /* 6010 */ 48, 29, 83, 9, 129, 30, 4, 45, 29, 86,
1215 /* 6020 */ 9, 129, 30, 4, 42, 29, 89, 9, 129, 30,
1216 /* 6030 */ 4, 39, 29, 92, 8, 129, 30, 4, 36, 29,
1217 /* 6040 */ 94, 9, 129, 30, 32, 97, 9, 129, 30, 29,
1218 /* 6050 */ 100, 8, 117, 4, 129, 30, 26, 103, 8, 117,
1219 /* 6060 */ 4, 129, 30, 23, 105, 9, 117, 4, 129, 30,
1220 /* 6070 */ 20, 108, 13, 129, 30, 18, 111, 10, 129, 30,
1221 /* 6080 */ 15, 113, 8, 129, 30, 12, 116, 5, 129, 30,
1222 /* 6090 */ 9, 117, 4, 129, 30, 6, 117, 4, 129, 30,
1223 /* 6100 */ 4, 117, 4, 132, 193, 129, 117, 4, 132, 114,
1224 /* 6110 */ 7, 129, 111, 10, 129, 108, 13, 129, 105, 16,
1225 /* 6120 */ 129, 102, 19, 129, 100, 21, 129, 96, 25, 129,
1226 /* 6130 */ 93, 28, 129, 90, 31, 129, 87, 34, 129, 84,
1227 /* 6140 */ 30, 117, 4, 129, 30, 4, 81, 30, 117, 4,
1228 /* 6150 */ 129, 30, 4, 78, 30, 117, 4, 129, 30, 4,
1229 /* 6160 */ 75, 30, 117, 4, 129, 30, 4, 72, 30, 129,
1230 /* 6170 */ 30, 69, 129, 30, 66, 129, 30, 63, 129, 30,
1231 /* 6180 */ 60, 129, 30, 57, 129, 30, 54, 129, 30, 51,
1232 /* 6190 */ 129, 30, 48, 129, 30, 51, 129, 30, 4, 73,
1233 /* 6200 */ 12, 129, 30, 4, 76, 12, 129, 30, 4, 80,
1234 /* 6210 */ 12, 129, 30, 4, 83, 12, 129, 87, 12, 129,
1235 /* 6220 */ 90, 12, 117, 4, 129, 94, 11, 117, 4, 129,
1236 /* 6230 */ 97, 12, 117, 4, 129, 101, 12, 117, 4, 129,
1237 /* 6240 */ 104, 17, 129, 108, 13, 129, 111, 10, 129, 115,
1238 /* 6250 */ 6, 129, 117, 4, 134, 193, 129, 30, 1, 103,
1239 /* 6260 */ 18, 129, 30, 4, 103, 18, 129, 30, 7, 103,
1240 /* 6270 */ 18, 129, 30, 9, 103, 18, 129, 30, 12, 110,
1241 /* 6280 */ 11, 129, 30, 15, 113, 8, 129, 30, 18, 114,
1242 /* 6290 */ 7, 129, 30, 21, 116, 5, 129, 30, 24, 116,
1243 /* 6300 */ 5, 129, 30, 27, 117, 4, 129, 30, 30, 117,
1244 /* 6310 */ 4, 129, 30, 33, 117, 4, 129, 30, 4, 37,
1245 /* 6320 */ 28, 117, 4, 129, 30, 4, 40, 28, 117, 4,
1246 /* 6330 */ 129, 30, 4, 42, 29, 117, 4, 129, 30, 4,
1247 /* 6340 */ 45, 29, 117, 4, 129, 30, 4, 48, 29, 117,
1248 /* 6350 */ 4, 129, 30, 4, 51, 29, 117, 4, 129, 30,
1249 /* 6360 */ 4, 54, 29, 117, 4, 129, 30, 4, 57, 29,
1250 /* 6370 */ 117, 4, 129, 30, 4, 59, 30, 117, 4, 129,
1251 /* 6380 */ 30, 4, 62, 30, 117, 4, 129, 30, 4, 65,
1252 /* 6390 */ 30, 117, 4, 129, 30, 4, 68, 30, 117, 4,
1253 /* 6400 */ 129, 30, 4, 71, 30, 117, 4, 129, 30, 4,
1254 /* 6410 */ 74, 30, 117, 4, 129, 30, 4, 77, 30, 117,
1255 /* 6420 */ 4, 129, 30, 4, 80, 30, 117, 4, 129, 30,
1256 /* 6430 */ 4, 83, 30, 117, 4, 129, 30, 4, 86, 35,
1257 /* 6440 */ 129, 30, 4, 89, 32, 129, 30, 4, 91, 30,
1258 /* 6450 */ 129, 30, 4, 94, 27, 129, 30, 5, 97, 24,
1259 /* 6460 */ 129, 30, 5, 100, 21, 129, 30, 7, 103, 18,
1260 /* 6470 */ 129, 30, 8, 106, 15, 129, 30, 11, 109, 12,
1261 /* 6480 */ 129, 30, 18, 112, 9, 129, 30, 18, 115, 6,
1262 /* 6490 */ 129, 30, 18, 117, 4, 129, 30, 18, 120, 1,
1263 /* 6500 */ 129, 193, 129, 42, 8, 129, 38, 16, 129, 36,
1264 /* 6510 */ 20, 129, 34, 24, 71, 5, 129, 33, 26, 69,
1265 /* 6520 */ 10, 129, 32, 28, 68, 13, 129, 31, 30, 68,
1266 /* 6530 */ 14, 129, 31, 9, 52, 9, 68, 15, 129, 30,
1267 /* 6540 */ 8, 54, 8, 69, 14, 129, 30, 7, 55, 7,
1268 /* 6550 */ 71, 4, 78, 6, 129, 30, 6, 56, 6, 79,
1269 /* 6560 */ 5, 129, 30, 6, 56, 6, 80, 4, 130, 31,
1270 /* 6570 */ 5, 56, 5, 80, 4, 129, 31, 5, 56, 5,
1271 /* 6580 */ 79, 5, 129, 32, 5, 55, 5, 78, 6, 129,
1272 /* 6590 */ 33, 5, 54, 5, 77, 7, 129, 34, 6, 52,
1273 /* 6600 */ 6, 74, 9, 129, 35, 48, 129, 33, 49, 129,
1274 /* 6610 */ 32, 49, 129, 31, 49, 129, 30, 49, 129, 30,
1275 /* 6620 */ 47, 129, 30, 45, 129, 30, 41, 129, 30, 6,
1276 /* 6630 */ 129, 30, 4, 129, 30, 3, 129, 30, 2, 129,
1277 /* 6640 */ 193, 129, 30, 4, 117, 4, 130, 31, 90, 136,
1278 /* 6650 */ 37, 5, 72, 5, 129, 35, 5, 74, 5, 129,
1279 /* 6660 */ 33, 5, 76, 5, 129, 32, 5, 77, 5, 129,
1280 /* 6670 */ 31, 5, 78, 5, 129, 31, 4, 79, 4, 129,
1281 /* 6680 */ 30, 5, 79, 5, 131, 30, 6, 78, 6, 129,
1282 /* 6690 */ 30, 7, 77, 7, 129, 31, 8, 75, 8, 129,
1283 /* 6700 */ 31, 11, 72, 11, 129, 32, 15, 67, 15, 129,
1284 /* 6710 */ 33, 48, 129, 34, 46, 129, 35, 44, 129, 37,
1285 /* 6720 */ 40, 129, 39, 36, 129, 42, 30, 129, 46, 22,
1286 /* 6730 */ 129, 193, 129, 48, 18, 129, 43, 28, 129, 41,
1287 /* 6740 */ 32, 129, 39, 36, 129, 37, 40, 129, 35, 44,
1288 /* 6750 */ 129, 34, 46, 129, 33, 13, 68, 13, 129, 32,
1289 /* 6760 */ 9, 73, 9, 129, 32, 7, 75, 7, 129, 31,
1290 /* 6770 */ 6, 77, 6, 129, 31, 5, 78, 5, 129, 30,
1291 /* 6780 */ 5, 79, 5, 129, 30, 4, 80, 4, 133, 31,
1292 /* 6790 */ 3, 79, 4, 129, 31, 4, 79, 4, 129, 32,
1293 /* 6800 */ 3, 78, 4, 129, 32, 4, 76, 6, 129, 33,
1294 /* 6810 */ 4, 74, 7, 129, 34, 4, 72, 8, 129, 35,
1295 /* 6820 */ 5, 72, 7, 129, 37, 5, 73, 4, 129, 39,
1296 /* 6830 */ 4, 74, 1, 129, 129, 193, 129, 46, 22, 129,
1297 /* 6840 */ 42, 30, 129, 39, 36, 129, 37, 40, 129, 35,
1298 /* 6850 */ 44, 129, 34, 46, 129, 33, 48, 129, 32, 15,
1299 /* 6860 */ 67, 15, 129, 31, 11, 72, 11, 129, 31, 8,
1300 /* 6870 */ 75, 8, 129, 30, 7, 77, 7, 129, 30, 6,
1301 /* 6880 */ 78, 6, 129, 30, 5, 79, 5, 131, 31, 4,
1302 /* 6890 */ 79, 4, 129, 31, 5, 78, 5, 129, 32, 5,
1303 /* 6900 */ 77, 5, 129, 33, 5, 76, 5, 129, 35, 5,
1304 /* 6910 */ 74, 5, 117, 4, 129, 37, 5, 72, 5, 117,
1305 /* 6920 */ 4, 129, 30, 91, 136, 30, 4, 130, 193, 129,
1306 /* 6930 */ 48, 18, 129, 43, 28, 129, 41, 32, 129, 39,
1307 /* 6940 */ 36, 129, 37, 40, 129, 35, 44, 129, 34, 46,
1308 /* 6950 */ 129, 33, 13, 55, 4, 68, 13, 129, 32, 9,
1309 /* 6960 */ 55, 4, 73, 9, 129, 32, 7, 55, 4, 75,
1310 /* 6970 */ 7, 129, 31, 6, 55, 4, 77, 6, 129, 31,
1311 /* 6980 */ 5, 55, 4, 78, 5, 129, 30, 5, 55, 4,
1312 /* 6990 */ 79, 5, 129, 30, 4, 55, 4, 80, 4, 132,
1313 /* 7000 */ 30, 4, 55, 4, 79, 5, 129, 31, 3, 55,
1314 /* 7010 */ 4, 78, 5, 129, 31, 4, 55, 4, 77, 6,
1315 /* 7020 */ 129, 32, 3, 55, 4, 75, 7, 129, 32, 4,
1316 /* 7030 */ 55, 4, 73, 9, 129, 33, 4, 55, 4, 68,
1317 /* 7040 */ 13, 129, 34, 4, 55, 25, 129, 35, 5, 55,
1318 /* 7050 */ 24, 129, 37, 5, 55, 22, 129, 39, 4, 55,
1319 /* 7060 */ 20, 129, 55, 18, 129, 55, 16, 129, 55, 11,
1320 /* 7070 */ 129, 193, 129, 80, 4, 129, 30, 4, 80, 4,
1321 /* 7080 */ 130, 30, 78, 129, 30, 82, 129, 30, 85, 129,
1322 /* 7090 */ 30, 87, 129, 30, 88, 129, 30, 89, 129, 30,
1323 /* 7100 */ 90, 130, 30, 4, 80, 4, 115, 6, 129, 30,
1324 /* 7110 */ 4, 80, 4, 117, 4, 129, 80, 4, 105, 6,
1325 /* 7120 */ 117, 4, 129, 80, 4, 103, 10, 116, 5, 129,
1326 /* 7130 */ 80, 4, 102, 19, 129, 80, 4, 101, 19, 129,
1327 /* 7140 */ 101, 19, 129, 101, 18, 129, 102, 16, 129, 103,
1328 /* 7150 */ 12, 129, 105, 6, 129, 193, 129, 12, 10, 59,
1329 /* 7160 */ 11, 129, 9, 16, 55, 19, 129, 7, 20, 53,
1330 /* 7170 */ 23, 129, 6, 7, 23, 5, 32, 6, 51, 27,
1331 /* 7180 */ 129, 4, 7, 25, 16, 50, 29, 129, 3, 6,
1332 /* 7190 */ 27, 16, 49, 31, 129, 2, 6, 28, 16, 48,
1333 /* 7200 */ 33, 129, 1, 6, 27, 18, 47, 35, 129, 1,
1334 /* 7210 */ 6, 27, 31, 71, 12, 129, 1, 5, 26, 15,
1335 /* 7220 */ 44, 10, 75, 8, 129, 1, 5, 25, 14, 45,
1336 /* 7230 */ 7, 77, 7, 129, 1, 5, 25, 13, 45, 5,
1337 /* 7240 */ 79, 5, 129, 1, 5, 24, 14, 45, 4, 80,
1338 /* 7250 */ 4, 129, 1, 5, 24, 13, 45, 4, 80, 4,
1339 /* 7260 */ 129, 1, 5, 23, 14, 45, 4, 80, 4, 129,
1340 /* 7270 */ 1, 5, 23, 13, 45, 4, 80, 4, 129, 1,
1341 /* 7280 */ 6, 22, 13, 45, 5, 79, 5, 129, 1, 6,
1342 /* 7290 */ 21, 14, 45, 7, 77, 7, 129, 1, 7, 21,
1343 /* 7300 */ 13, 46, 8, 75, 8, 129, 1, 8, 20, 13,
1344 /* 7310 */ 46, 12, 71, 12, 129, 1, 10, 18, 15, 47,
1345 /* 7320 */ 35, 129, 2, 30, 48, 33, 129, 3, 29, 49,
1346 /* 7330 */ 32, 129, 4, 27, 50, 31, 129, 5, 25, 51,
1347 /* 7340 */ 27, 80, 2, 86, 4, 129, 7, 21, 53, 23,
1348 /* 7350 */ 80, 3, 85, 6, 129, 9, 17, 55, 19, 80,
1349 /* 7360 */ 12, 129, 12, 12, 59, 11, 81, 11, 129, 82,
1350 /* 7370 */ 10, 129, 84, 7, 129, 86, 4, 129, 193, 129,
1351 /* 7380 */ 30, 4, 117, 4, 130, 30, 91, 136, 30, 4,
1352 /* 7390 */ 72, 5, 129, 30, 4, 74, 5, 129, 75, 5,
1353 /* 7400 */ 129, 76, 5, 129, 76, 6, 129, 77, 6, 130,
1354 /* 7410 */ 77, 7, 130, 76, 8, 129, 30, 4, 75, 9,
1355 /* 7420 */ 129, 30, 4, 72, 12, 129, 30, 54, 129, 30,
1356 /* 7430 */ 53, 130, 30, 52, 129, 30, 51, 129, 30, 49,
1357 /* 7440 */ 129, 30, 46, 129, 30, 42, 129, 30, 4, 130,
1358 /* 7450 */ 193, 129, 30, 4, 80, 4, 129, 30, 4, 80,
1359 /* 7460 */ 4, 100, 6, 129, 30, 54, 98, 10, 129, 30,
1360 /* 7470 */ 54, 97, 12, 129, 30, 54, 96, 14, 131, 30,
1361 /* 7480 */ 54, 97, 12, 129, 30, 54, 98, 10, 129, 30,
1362 /* 7490 */ 54, 100, 6, 129, 30, 4, 130, 193, 129, 7,
1363 /* 7500 */ 6, 129, 4, 11, 129, 3, 13, 129, 2, 14,
1364 /* 7510 */ 129, 1, 15, 130, 1, 3, 6, 9, 129, 1,
1365 /* 7520 */ 3, 7, 6, 129, 1, 3, 130, 1, 4, 129,
1366 /* 7530 */ 1, 5, 80, 4, 129, 1, 7, 80, 4, 100,
1367 /* 7540 */ 6, 129, 2, 82, 98, 10, 129, 3, 81, 97,
1368 /* 7550 */ 12, 129, 4, 80, 96, 14, 129, 5, 79, 96,
1369 /* 7560 */ 14, 129, 7, 77, 96, 14, 129, 10, 74, 97,
1370 /* 7570 */ 12, 129, 14, 70, 98, 10, 129, 19, 65, 100,
1371 /* 7580 */ 6, 129, 193, 129, 30, 4, 117, 4, 130, 30,
1372 /* 7590 */ 91, 136, 30, 4, 57, 9, 129, 30, 4, 55,
1373 /* 7600 */ 12, 129, 52, 17, 129, 50, 20, 129, 48, 24,
1374 /* 7610 */ 129, 46, 27, 129, 44, 21, 69, 6, 129, 41,
1375 /* 7620 */ 22, 70, 6, 80, 4, 129, 30, 4, 39, 21,
1376 /* 7630 */ 72, 6, 80, 4, 129, 30, 4, 36, 22, 73,
1377 /* 7640 */ 11, 129, 30, 26, 75, 9, 129, 30, 23, 76,
1378 /* 7650 */ 8, 129, 30, 21, 78, 6, 129, 30, 19, 79,
1379 /* 7660 */ 5, 129, 30, 16, 80, 4, 129, 30, 14, 80,
1380 /* 7670 */ 4, 129, 30, 12, 129, 30, 10, 129, 30, 7,
1381 /* 7680 */ 129, 30, 5, 129, 30, 4, 130, 193, 129, 30,
1382 /* 7690 */ 4, 117, 4, 130, 30, 91, 136, 30, 4, 130,
1383 /* 7700 */ 193, 129, 30, 4, 80, 4, 130, 30, 54, 136,
1384 /* 7710 */ 30, 4, 72, 5, 129, 30, 4, 74, 5, 129,
1385 /* 7720 */ 75, 5, 129, 76, 5, 129, 30, 4, 75, 7,
1386 /* 7730 */ 129, 30, 4, 74, 9, 129, 30, 54, 132, 30,
1387 /* 7740 */ 53, 129, 30, 52, 129, 30, 51, 129, 30, 48,
1388 /* 7750 */ 129, 30, 4, 72, 5, 129, 30, 4, 74, 5,
1389 /* 7760 */ 129, 75, 5, 129, 76, 5, 129, 30, 4, 75,
1390 /* 7770 */ 7, 129, 30, 4, 74, 9, 129, 30, 54, 132,
1391 /* 7780 */ 30, 53, 129, 30, 52, 129, 30, 51, 129, 30,
1392 /* 7790 */ 48, 129, 30, 4, 130, 193, 129, 30, 4, 80,
1393 /* 7800 */ 4, 130, 30, 54, 136, 30, 4, 72, 5, 129,
1394 /* 7810 */ 30, 4, 74, 5, 129, 75, 5, 129, 76, 5,
1395 /* 7820 */ 129, 76, 6, 129, 77, 6, 130, 77, 7, 130,
1396 /* 7830 */ 76, 8, 129, 30, 4, 75, 9, 129, 30, 4,
1397 /* 7840 */ 72, 12, 129, 30, 54, 129, 30, 53, 130, 30,
1398 /* 7850 */ 52, 129, 30, 51, 129, 30, 49, 129, 30, 46,
1399 /* 7860 */ 129, 30, 42, 129, 30, 4, 130, 193, 129, 48,
1400 /* 7870 */ 18, 129, 43, 28, 129, 41, 32, 129, 39, 36,
1401 /* 7880 */ 129, 37, 40, 129, 35, 44, 129, 34, 46, 129,
1402 /* 7890 */ 33, 13, 68, 13, 129, 32, 9, 73, 9, 129,
1403 /* 7900 */ 32, 7, 75, 7, 129, 31, 6, 77, 6, 129,
1404 /* 7910 */ 31, 5, 78, 5, 129, 30, 5, 79, 5, 129,
1405 /* 7920 */ 30, 4, 80, 4, 132, 30, 5, 79, 5, 130,
1406 /* 7930 */ 31, 5, 78, 5, 129, 31, 6, 77, 6, 129,
1407 /* 7940 */ 32, 7, 75, 7, 129, 32, 9, 73, 9, 129,
1408 /* 7950 */ 33, 13, 68, 13, 129, 34, 46, 129, 35, 44,
1409 /* 7960 */ 129, 37, 40, 129, 39, 36, 129, 41, 32, 129,
1410 /* 7970 */ 43, 28, 129, 48, 18, 129, 193, 129, 1, 3,
1411 /* 7980 */ 80, 4, 130, 1, 83, 137, 37, 5, 72, 5,
1412 /* 7990 */ 129, 35, 5, 74, 5, 129, 33, 5, 76, 5,
1413 /* 8000 */ 129, 32, 5, 77, 5, 129, 31, 5, 78, 5,
1414 /* 8010 */ 129, 31, 4, 79, 4, 129, 30, 5, 79, 5,
1415 /* 8020 */ 131, 30, 6, 78, 6, 129, 30, 7, 77, 7,
1416 /* 8030 */ 129, 31, 8, 75, 8, 129, 31, 11, 72, 11,
1417 /* 8040 */ 129, 32, 15, 67, 15, 129, 33, 48, 129, 34,
1418 /* 8050 */ 46, 129, 35, 44, 129, 37, 40, 129, 39, 36,
1419 /* 8060 */ 129, 42, 30, 129, 46, 22, 129, 193, 129, 46,
1420 /* 8070 */ 22, 129, 42, 30, 129, 39, 36, 129, 37, 40,
1421 /* 8080 */ 129, 35, 44, 129, 34, 46, 129, 33, 48, 129,
1422 /* 8090 */ 32, 15, 67, 15, 129, 31, 11, 72, 11, 129,
1423 /* 8100 */ 31, 8, 75, 8, 129, 30, 7, 77, 7, 129,
1424 /* 8110 */ 30, 6, 78, 6, 129, 30, 5, 79, 5, 131,
1425 /* 8120 */ 31, 4, 79, 4, 129, 31, 5, 78, 5, 129,
1426 /* 8130 */ 32, 5, 77, 5, 129, 33, 5, 76, 5, 129,
1427 /* 8140 */ 35, 5, 74, 5, 129, 37, 5, 72, 5, 129,
1428 /* 8150 */ 1, 83, 136, 1, 3, 80, 4, 130, 193, 129,
1429 /* 8160 */ 30, 4, 80, 4, 130, 30, 54, 136, 30, 4,
1430 /* 8170 */ 68, 6, 129, 30, 4, 70, 6, 129, 71, 7,
1431 /* 8180 */ 129, 72, 7, 129, 73, 7, 129, 74, 7, 129,
1432 /* 8190 */ 74, 8, 129, 75, 8, 130, 69, 15, 129, 67,
1433 /* 8200 */ 17, 129, 66, 18, 129, 65, 19, 130, 65, 18,
1434 /* 8210 */ 130, 66, 16, 129, 67, 13, 129, 69, 8, 129,
1435 /* 8220 */ 193, 129, 30, 13, 64, 8, 129, 30, 13, 61,
1436 /* 8230 */ 14, 129, 30, 13, 59, 18, 129, 30, 13, 57,
1437 /* 8240 */ 22, 129, 33, 8, 56, 24, 129, 32, 7, 55,
1438 /* 8250 */ 26, 129, 32, 6, 54, 28, 129, 31, 6, 53,
1439 /* 8260 */ 16, 77, 6, 129, 31, 5, 53, 14, 79, 4,
1440 /* 8270 */ 129, 30, 5, 52, 14, 80, 4, 129, 30, 5,
1441 /* 8280 */ 52, 13, 80, 4, 129, 30, 4, 52, 13, 80,
1442 /* 8290 */ 4, 129, 30, 4, 52, 12, 80, 4, 129, 30,
1443 /* 8300 */ 4, 51, 13, 80, 4, 130, 30, 4, 50, 13,
1444 /* 8310 */ 79, 5, 129, 30, 4, 50, 13, 78, 5, 129,
1445 /* 8320 */ 30, 5, 49, 14, 77, 6, 129, 31, 4, 49,
1446 /* 8330 */ 13, 76, 6, 129, 31, 5, 48, 14, 75, 7,
1447 /* 8340 */ 129, 32, 5, 47, 14, 73, 8, 129, 32, 6,
1448 /* 8350 */ 45, 16, 71, 13, 129, 33, 27, 71, 13, 129,
1449 /* 8360 */ 34, 26, 71, 13, 129, 35, 24, 71, 13, 129,
1450 /* 8370 */ 37, 20, 129, 39, 16, 129, 43, 9, 129, 193,
1451 /* 8380 */ 129, 80, 4, 131, 41, 56, 129, 37, 60, 129,
1452 /* 8390 */ 35, 62, 129, 33, 64, 129, 32, 65, 129, 31,
1453 /* 8400 */ 66, 129, 30, 67, 130, 30, 11, 80, 4, 129,
1454 /* 8410 */ 30, 9, 80, 4, 129, 30, 8, 80, 4, 129,
1455 /* 8420 */ 31, 7, 80, 4, 129, 31, 6, 129, 32, 5,
1456 /* 8430 */ 129, 33, 5, 129, 35, 4, 129, 38, 3, 129,
1457 /* 8440 */ 193, 129, 80, 4, 130, 42, 42, 129, 38, 46,
1458 /* 8450 */ 129, 35, 49, 129, 33, 51, 129, 32, 52, 129,
1459 /* 8460 */ 31, 53, 130, 30, 54, 129, 30, 12, 129, 30,
1460 /* 8470 */ 9, 129, 30, 8, 129, 30, 7, 130, 31, 6,
1461 /* 8480 */ 130, 32, 6, 129, 33, 5, 129, 34, 5, 129,
1462 /* 8490 */ 35, 5, 80, 4, 129, 37, 5, 80, 4, 129,
1463 /* 8500 */ 30, 54, 136, 30, 4, 130, 193, 129, 80, 4,
1464 /* 8510 */ 130, 77, 7, 129, 74, 10, 129, 70, 14, 129,
1465 /* 8520 */ 66, 18, 129, 62, 22, 129, 59, 25, 129, 55,
1466 /* 8530 */ 29, 129, 51, 33, 129, 47, 37, 129, 44, 32,
1467 /* 8540 */ 80, 4, 129, 40, 32, 80, 4, 129, 36, 32,
1468 /* 8550 */ 129, 32, 33, 129, 30, 31, 129, 33, 24, 129,
1469 /* 8560 */ 36, 17, 129, 40, 12, 129, 44, 12, 129, 48,
1470 /* 8570 */ 12, 129, 51, 13, 129, 55, 13, 129, 59, 13,
1471 /* 8580 */ 80, 4, 129, 63, 13, 80, 4, 129, 67, 17,
1472 /* 8590 */ 129, 71, 13, 129, 74, 10, 129, 78, 6, 129,
1473 /* 8600 */ 80, 4, 131, 193, 129, 80, 4, 130, 77, 7,
1474 /* 8610 */ 129, 74, 10, 129, 70, 14, 129, 66, 18, 129,
1475 /* 8620 */ 62, 22, 129, 59, 25, 129, 55, 29, 129, 51,
1476 /* 8630 */ 33, 129, 47, 37, 129, 44, 32, 80, 4, 129,
1477 /* 8640 */ 40, 32, 80, 4, 129, 36, 32, 129, 32, 33,
1478 /* 8650 */ 129, 30, 31, 129, 33, 24, 129, 36, 17, 129,
1479 /* 8660 */ 40, 12, 129, 44, 12, 129, 47, 13, 129, 44,
1480 /* 8670 */ 20, 129, 40, 28, 129, 36, 31, 129, 32, 32,
1481 /* 8680 */ 129, 30, 30, 129, 33, 24, 129, 36, 17, 129,
1482 /* 8690 */ 40, 12, 129, 44, 12, 129, 48, 12, 129, 51,
1483 /* 8700 */ 13, 129, 55, 13, 129, 59, 13, 80, 4, 129,
1484 /* 8710 */ 63, 13, 80, 4, 129, 67, 17, 129, 71, 13,
1485 /* 8720 */ 129, 74, 10, 129, 78, 6, 129, 80, 4, 131,
1486 /* 8730 */ 193, 129, 30, 4, 80, 4, 130, 30, 4, 79,
1487 /* 8740 */ 5, 129, 30, 5, 77, 7, 129, 30, 6, 74,
1488 /* 8750 */ 10, 129, 30, 8, 72, 12, 129, 30, 11, 69,
1489 /* 8760 */ 15, 129, 30, 13, 67, 17, 129, 30, 4, 37,
1490 /* 8770 */ 8, 64, 20, 129, 30, 4, 39, 8, 62, 22,
1491 /* 8780 */ 129, 41, 8, 59, 25, 129, 43, 8, 57, 27,
1492 /* 8790 */ 129, 45, 8, 55, 22, 80, 4, 129, 47, 27,
1493 /* 8800 */ 80, 4, 129, 49, 23, 129, 47, 22, 129, 44,
1494 /* 8810 */ 23, 129, 42, 22, 129, 30, 4, 39, 27, 129,
1495 /* 8820 */ 30, 4, 37, 31, 129, 30, 27, 62, 8, 129,
1496 /* 8830 */ 30, 25, 64, 8, 129, 30, 22, 66, 8, 80,
1497 /* 8840 */ 4, 129, 30, 20, 68, 8, 80, 4, 129, 30,
1498 /* 8850 */ 17, 70, 8, 80, 4, 129, 30, 15, 73, 11,
1499 /* 8860 */ 129, 30, 12, 75, 9, 129, 30, 10, 77, 7,
1500 /* 8870 */ 129, 30, 7, 79, 5, 129, 30, 5, 80, 4,
1501 /* 8880 */ 129, 30, 4, 80, 4, 130, 193, 129, 4, 5,
1502 80, 4, 129, 2, 9, 80, 4, 129, 1, 11,
1503 77, 7, 129, 1, 12, 74, 10, 129, 1, 12,
1504 70, 14, 129, 1, 12, 66, 18, 129, 1, 11,
1505 62, 22, 129, 2, 9, 59, 25, 129, 4, 11,
1506 55, 29, 129, 7, 12, 51, 33, 129, 10, 12,
1507 47, 37, 129, 14, 12, 44, 32, 80, 4, 129,
1508 17, 13, 40, 32, 80, 4, 129, 21, 13, 36,
1509 32, 129, 25, 40, 129, 29, 32, 129, 33, 24,
1510 129, 36, 17, 129, 40, 12, 129, 44, 12, 129,
1511 48, 12, 129, 51, 13, 129, 55, 13, 129, 59,
1512 13, 80, 4, 129, 63, 13, 80, 4, 129, 67,
1513 17, 129, 71, 13, 129, 74, 10, 129, 78, 6,
1514 129, 80, 4, 131, 193, 129, 30, 1, 71, 13,
1515 129, 30, 3, 71, 13, 129, 30, 6, 71, 13,
1516 129, 30, 9, 75, 9, 129, 30, 11, 77, 7,
1517 129, 30, 14, 79, 5, 129, 30, 17, 79, 5,
1518 129, 30, 19, 80, 4, 129, 30, 22, 80, 4,
1519 129, 30, 25, 80, 4, 129, 30, 27, 80, 4,
1520 129, 30, 4, 36, 24, 80, 4, 129, 30, 4,
1521 38, 25, 80, 4, 129, 30, 4, 41, 24, 80,
1522 4, 129, 30, 4, 44, 24, 80, 4, 129, 30,
1523 4, 46, 25, 80, 4, 129, 30, 4, 49, 25,
1524 80, 4, 129, 30, 4, 52, 24, 80, 4, 129,
1525 30, 4, 54, 30, 129, 30, 4, 57, 27, 129,
1526 30, 4, 59, 25, 129, 30, 4, 62, 22, 129,
1527 30, 4, 65, 19, 129, 30, 5, 67, 17, 129,
1528 30, 5, 70, 14, 129, 30, 7, 73, 11, 129,
1529 30, 9, 76, 8, 129, 30, 13, 78, 6, 129,
1530 30, 13, 81, 3, 129, 30, 13, 129, 193, 2,
1531 9, 59, 25, 129, 4, 11, 55, 29, 129, 7,
1532 12, 51, 33, 129, 10, 12, 47, 37, 129, 14,
1533 12, 44, 32, 80, 4, 129, 17, 13, 40, 32,
1534 80, 4, 129, 21, 13, 36, 32, 129, 25, 40,
1535 129, 29, 32, 129, 33, 24, 129, 36, 17, 129,
1536 40, 12, 129, 44, 12, 129, 48, 12, 129, 51,
1537 13, 129, 55, 13, 129, 59, 13, 80, 4, 129,
1538 63, 13, 80, 4, 129, 67, 17, 129, 71, 13,
1539 129, 74, 10, 129, 78, 6, 129, 80, 4, 131,
1543 int fbClass::DrawString( int xpos
, int ypos
, int height
, const char *msg
, int r
, int g
, int b
)
1546 char message
[MAXMSG
];
1548 int i
, j
, linen
, max
, nchars
, pc
, term
, x
, y
;
1550 int gy
= ypos
+ height
-1;
1552 strcpy(message
,msg
);
1554 memset(print
,0,DWIDTH
);
1556 for (i
= 0; i
< height
; i
++)
1558 j
= i
* 132 / height
;
1562 nchars
= strlen(message
);
1564 for (i
= 0; i
< nchars
; i
++)
1566 if ((u_char
) message
[i
] >= NCHARS
|| asc_ptr
[(u_char
) message
[i
]] == 0) return(gx
-xpos
);
1569 for (i
= 0; i
< nchars
; i
++)
1571 for (j
= 0; j
< DWIDTH
; j
++)
1573 pc
= asc_ptr
[(u_char
) message
[i
]];
1579 if (pc
< 0 || pc
> NBYTES
) return(gx
-xpos
);
1581 x
= data_table
[pc
] & 0377;
1590 for (j
=0; j
<= max
; j
++)
1594 if ( line
[j
] == '#' ) PaintPixel(gx
,gy
,r
,g
,b
);
1602 for (j
= 0; j
< DWIDTH
; j
++)
1608 y
= data_table
[pc
+1];
1610 while (x
< max
) line
[x
++] = '#';
1617 #endif //USEFREETYPEFB
1619 int fbClass::showConsole(int state
)
1621 int fd
=open("/dev/vc/0", O_RDWR
);
1624 if(ioctl(fd
, KDSETMODE
, state
?KD_TEXT
:KD_GRAPHICS
)<0)
1625 perror("[CONSOLE] <setting /dev/vc/0 status failed>");
1631 int fbClass::SetSAA(int value
)
1637 case 0: arg
=SAA_MODE_RGB
; break;
1638 case 1: arg
=SAA_MODE_FBAS
; break;
1639 case 2: arg
=SAA_MODE_SVIDEO
; break;
1640 case 3: arg
=SAA_MODE_COMPONENT
; break;
1643 if ((saafd
=open("/dev/dbox/saa0", O_RDWR
))<0)
1645 perror("[SAA-Set] saa open"); return 1;
1649 if((ioctl(saafd
, 5, &arg
))<0)
1651 perror("[SAA-Set] saa set"); close(saafd
); return 1;