Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 8428 → Rev 8429

/contrib/media/updf/apps/kolibri.c
0,0 → 1,485
#include "kolibri.h"
#include "string.h"
 
 
extern char KOL_PATH[256];
extern char KOL_PARAM[256];
extern char KOL_DIR[256];
 
 
void kol_exit()
{
asm volatile ("int $0x40"::"a"(-1));
}
 
 
void kol_sleep(unsigned d)
{
asm volatile ("int $0x40"::"a"(5), "b"(d));
}
 
 
// define a window
// x, y - position; w, h - size; cs - color and style; c - caption; b - boder
void kol_wnd_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned cs, unsigned b, char *t)
{
asm volatile ("int $0x40"::"a"(0), "b"(x*65536+w), "c"(y*65536+h), "d"(cs), "D"(t), "S"(b) );
}
 
 
void kol_wnd_move(unsigned x, unsigned y)
{
asm volatile ("int $0x40"::"a"(67), "b"(x), "c"(y), "d"(-1), "S"(-1));
}
 
 
void kol_event_mask(unsigned e)
{
asm volatile ("int $0x40"::"a"(40), "b"(e));
}
 
 
unsigned kol_event_wait()
{
asm volatile ("int $0x40"::"a"(10));
}
 
 
unsigned kol_event_wait_time(unsigned time)
{
asm volatile ("int $0x40"::"a"(23), "b"(time));
}
 
 
unsigned kol_event_check()
{
asm volatile ("int $0x40"::"a"(11));
}
 
 
inline void __attribute__((__always_inline__)) kol_paint_start()
{
asm volatile ("int $0x40"::"a"(12), "b"(1));
}
 
 
inline void __attribute__((__always_inline__)) kol_paint_end()
{
asm volatile ("int $0x40"::"a"(12), "b"(2));
}
 
 
void kol_paint_pixel(unsigned x, unsigned y, unsigned c)
{
asm volatile ("int $0x40"::"a"(1), "b"(x), "c"(y), "d"(c));
}
 
 
void kol_paint_bar(unsigned x, unsigned y, unsigned w, unsigned h, unsigned c)
{
asm volatile ("int $0x40"::"a"(13), "b"(x*65536+w), "c"(y*65536+h), "d"(c));
}
 
 
void kol_paint_line(unsigned x1, unsigned y1, unsigned x2, unsigned y2, unsigned c)
{
asm volatile ("int $0x40"::"a"(38), "b"(x1*65536+x2), "c"(y1*65536+y2), "d"(c));
}
 
 
void kol_paint_string(unsigned x, unsigned y, char *s, unsigned c)
{
asm volatile ("int $0x40"::"a"(4), "b"(x*65536+y), "c"(c), "d"(s));
}
 
 
void kol_paint_image(unsigned x, unsigned y, unsigned w, unsigned h, char *d)
{
asm volatile ("int $0x40"::"a"(7), "c"(w*65536+h), "d"(x*65536+y), "b"(d));
}
 
 
void kol_paint_image_24(unsigned x, unsigned y, unsigned w, unsigned h, char *d)
{
asm volatile ("int $0x40"::"a"(65), "b"(d), "c"(w*65536+h), "d"(x*65536+y), "S"(32));
}
 
 
unsigned kol_key_get()
{
asm volatile ("int $0x40"::"a"(2));
}
 
 
unsigned kol_key_control()
{
asm volatile ("int $0x40"::"a"(66), "b"(3));
}
 
 
void kol_key_lang_set(unsigned lang)
{
asm volatile ("int $0x40"::"a"(21), "b"(2), "c"(9), "d"(lang));
}
 
 
unsigned kol_key_lang_get()
{
asm volatile ("int $0x40"::"a"(26), "b"(2), "c"(9));
}
 
 
void kol_key_mode_set(unsigned mode)
{
asm volatile ("int $0x40"::"a"(66), "b"(1), "c"(mode));
}
 
 
unsigned kol_key_mode_get()
{
asm volatile ("int $0x40"::"a"(66), "b"(2));
}
 
 
unsigned kol_btn_get()
{
asm volatile ("int $0x40"::"a"(17));
}
 
 
void kol_btn_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned d, unsigned c)
{
asm volatile ("int $0x40"::"a"(8), "b"(x*65536+w), "c"(y*65536+h), "d"(d), "S"(c));
}
 
 
void kol_btn_type(unsigned t)
{
asm volatile ("int $0x40"::"a"(48), "b"(1), "c"(t));
}
 
 
void kol_wnd_caption(char *s)
{
asm volatile ("int $0x40"::"a"(71), "b"(1), "c"(s));
}
 
 
unsigned kol_mouse_pos()
{
asm volatile ("int $0x40"::"a"(37), "b"(0));
}
 
 
unsigned kol_mouse_posw()
{
asm volatile ("int $0x40"::"a"(37), "b"(1));
}
 
 
unsigned kol_mouse_btn()
{
asm volatile ("int $0x40"::"a"(37), "b"(2));
}
 
 
void kol_board_putc(char c)
{
asm volatile ("int $0x40"::"a"(63), "b"(1), "c"(c));
}
 
 
void kol_board_puts(char *s)
{
unsigned i;
i = 0;
while (*(s+i))
{
asm volatile ("int $0x40"::"a"(63), "b"(1), "c"(*(s+i)));
i++;
}
}
 
 
void kol_board_puti(int n)
{
char c;
 
if ( n > 1 )
kol_board_puti(n / 10);
 
c = n % 10 + '0';
asm volatile ("int $0x40"::"a"(63), "b"(1), "c"(c));
 
}
 
 
int kol_file_70(kol_struct70 *k)
{
asm volatile ("int $0x40"::"a"(70), "b"(k));
}
 
 
kol_struct_import* kol_cofflib_load(char *name)
{
asm volatile ("int $0x40"::"a"(68), "b"(19), "c"(name));
}
 
 
void* kol_cofflib_procload (kol_struct_import *imp, char *name)
{
int i;
for (i=0;;i++)
if ( NULL == ((imp+i) -> name))
break;
else
if ( 0 == strcmp(name, (imp+i)->name) )
return (imp+i)->data;
return NULL;
}
 
 
unsigned kol_cofflib_procnum (kol_struct_import *imp)
{
unsigned i, n;
 
for (i=n=0;;i++)
if ( NULL == ((imp+i) -> name))
break;
else
n++;
 
return n;
}
 
 
void kol_cofflib_procname (kol_struct_import *imp, char *name, unsigned n)
{
unsigned i;
*name = 0;
 
for (i=0;;i++)
if ( NULL == ((imp+i) -> name))
break;
else
if ( i == n )
{
strcpy(name, ((imp+i)->name));
break;
}
 
}
 
 
unsigned kol_system_cpufreq()
{
asm volatile ("int $0x40"::"a"(18), "b"(5));
}
 
 
unsigned kol_system_mem()
{
asm volatile ("int $0x40"::"a"(18), "b"(17));
}
 
 
unsigned kol_system_memfree()
{
asm volatile ("int $0x40"::"a"(18), "b"(16));
}
 
 
unsigned kol_system_time_get()
{
asm volatile ("int $0x40"::"a"(3));
}
 
 
unsigned kol_system_date_get()
{
asm volatile ("int $0x40"::"a"(29));
}
 
 
unsigned kol_system_end(unsigned param)
{
asm volatile ("int $0x40"::"a"(18), "b"(9), "c"(param));
}
 
 
void kol_path_file2dir(char *dir, char *fname)
{
unsigned i;
strcpy (dir, fname);
for ( i = strlen(dir);; --i)
if ( '/' == dir[i])
{
dir[i] = '\0';
return;
}
}
 
 
void kol_path_full(char *full, char *fname)
{
char temp[256];
 
switch (*fname)
{
 
case '/':
strncpy(temp, fname+1, 2);
temp[2]=0;
if ( (!strcmp("rd", temp)) || (!strcmp("hd", temp)) || (!strcmp("cd", temp)) )
strcpy (full, fname);
break;
 
case '.':
break;
 
default:
break;
 
};
 
}
 
 
 
inline void __attribute__((__always_inline__)) kol_screen_wait_rr()
{
asm volatile ("int $0x40"::"a"(18), "b"(14));
}
 
 
 
void kol_screen_get_size(unsigned *w, unsigned *h)
{
unsigned size;
asm volatile ("int $0x40":"=a"(size):"a"(14));
*w = size / 65536;
*h = size % 65536;
}
 
 
 
unsigned kol_skin_height()
{
asm volatile ("int $0x40"::"a"(48), "b"(4));
}
 
 
unsigned kol_thread_start(unsigned start, unsigned stack)
{
asm volatile ("int $0x40"::"a"(51), "b"(1), "c"(start), "d"(stack));
}
 
 
unsigned kol_time_tick()
{
asm volatile ("int $0x40"::"a"(26), "b"(9));
}
 
 
unsigned kol_sound_speaker(char data[])
{
asm volatile ("movl %0, %%esi"::"a"(data));
asm volatile ("int $0x40"::"a"(55), "b"(55));
}
 
 
unsigned kol_process_info(unsigned slot, char buf1k[])
{
asm volatile ("int $0x40"::"a"(9), "b"(buf1k), "c"(slot));
}
 
 
int kol_process_kill_pid(unsigned process)
{
asm volatile ("int $0x40"::"a"(18), "b"(18), "c"(process));
}
 
int kol_kill_process(unsigned process)
{
asm volatile ("int $0x40"::"a"(18), "b"(2), "c"(process));
}
 
void kol_get_kernel_ver(char buff16b[])
{
asm volatile ("int $0x40"::"a"(18), "b"(13), "c"(buff16b));
}
 
int kol_buffer_open(char name[], int mode, int size, char **buf)
{
int error;
asm volatile ("int $0x40":"=a"(*buf), "=d"(error):"a"(68), "b"(22), "c"(name), "d"(size), "S"(mode));
return error;
}
 
void kol_buffer_close(char name[])
{
asm volatile ("int $0x40"::"a"(68), "b"(23), "c"(name));
}
 
int kol_clip_num()
{
asm volatile ("int $0x40"::"a"(54), "b"(0));
}
 
char* kol_clip_get(int n)
{
asm volatile ("int $0x40"::"a"(54), "b"(1), "c"(n));
}
 
int kol_clip_set(int n, char buffer[])
{
asm volatile ("int $0x40"::"a"(54), "b"(2), "c"(n), "d"(buffer));
}
 
int kos_random(int num)
{
srand(kol_time_tick());
return rand() % num;
}
 
int kos_get_mouse_wheels(void)
{
int val;
asm ("int $0x40":"=a"(val):"a"(37),"b"(7));
return val;
};
 
 
struct blit_call
{
int dstx;
int dsty;
int w;
int h;
 
int srcx;
int srcy;
int srcw;
int srch;
 
unsigned char *d;
int stride;
};
 
void kos_blit(int dstx, int dsty, int w, int h, int srcx,
int srcy,int srcw, int srch, int stride, char *d)
{
struct blit_call image;
image.dstx=dstx;
image.dsty=dsty;
image.w=w;
image.h=h;
image.srcx=srcx;
image.srcy=srcy;
image.srcw=srcw;
image.srch=srch;
image.stride=stride;
image.d=d;
asm ("int $0x40"::"a"(73),"b"(0),"c"(&image));
}
 
/contrib/media/updf/apps/kolibri.h
0,0 → 1,145
 
#define NULL ((void*)0)
 
#define SHM_OPEN 0
#define SHM_OPEN_ALWAYS 0x04
#define SHM_CREATE 0x08
#define SHM_READ 0x00
#define SHM_WRITE 0x01
 
#define E_NOTFOUND 5
#define E_ACCESS 10
#define E_NOMEM 30
#define E_PARAM 33
 
#define FILENAME_MAX 1024
 
#define BT_DEL 0x80000000
#define BT_HIDE 0x40000000
#define BT_NOFRAME 0x20000000
 
#define evReDraw 1
#define evKey 2
#define evButton 3
#define evMouse 6
#define evNetwork 8
 
#define ASCII_KEY_LEFT 176
#define ASCII_KEY_RIGHT 179
#define ASCII_KEY_DOWN 177
#define ASCII_KEY_UP 178
#define ASCII_KEY_HOME 180
#define ASCII_KEY_END 181
#define ASCII_KEY_PGDN 183
#define ASCII_KEY_PGUP 184
 
#define ASCII_KEY_BS 8
#define ASCII_KEY_TAB 9
#define ASCII_KEY_ENTER 13
#define ASCII_KEY_ESC 27
#define ASCII_KEY_DEL 182
#define ASCII_KEY_INS 185
#define ASCII_KEY_SPACE 032
 
#pragma pack(push,1)
typedef struct
{
unsigned p00;
unsigned p04;
unsigned p08;
unsigned p12;
unsigned p16;
char p20;
char *p21;
} kol_struct70;
#pragma pack(pop)
 
 
#pragma pack(push,1)
typedef struct
{
unsigned p00;
char p04;
char p05[3];
unsigned p08;
unsigned p12;
unsigned p16;
unsigned p20;
unsigned p24;
unsigned p28;
unsigned long long p32;
unsigned p40;
} kol_struct_BDVK;
#pragma pack(pop)
 
 
#pragma pack(push,1)
typedef struct
{
char *name;
void *data;
} kol_struct_import;
#pragma pack(pop)
 
 
void kol_exit();
void kol_sleep(unsigned d);
void kol_wnd_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned cs, unsigned b, char *t);
void kol_wnd_move(unsigned x, unsigned y);
void kol_wnd_caption(char *s);
void kol_event_mask(unsigned e);
unsigned kol_event_wait();
unsigned kol_event_wait_time(unsigned time);
unsigned kol_event_check();
void kol_paint_start();
void kol_paint_end();
void kol_paint_pixel(unsigned x, unsigned y, unsigned c);
void kol_paint_bar(unsigned x, unsigned y, unsigned w, unsigned h, unsigned c);
void kol_paint_line(unsigned x1, unsigned y1, unsigned x2, unsigned y2, unsigned c);
void kol_paint_string(unsigned x, unsigned y, char *s, unsigned c);
void kol_paint_image(unsigned x, unsigned y, unsigned w, unsigned h, char *d);
void kol_paint_image_pal(unsigned x, unsigned y, unsigned w, unsigned h, char *buf, unsigned bits, unsigned palette);
unsigned kol_key_get();
unsigned kol_key_control();
void kol_key_lang_set(unsigned lang);
unsigned kol_key_lang_get();
void kol_key_mode_set(unsigned mode);
unsigned kol_key_mode_get();
void kol_paint_image_24(unsigned x, unsigned y, unsigned w, unsigned h, char *d);
unsigned kol_btn_get();
void kol_btn_type(unsigned t);
unsigned kol_mouse_pos();
unsigned kol_mouse_posw();
unsigned kol_mouse_btn();
void kol_board_putc(char c);
void kol_board_puts(char *s);
void kol_board_puti(int n);
int kol_file_70(kol_struct70 *k);
kol_struct_import* kol_cofflib_load(char *name);
void* kol_cofflib_procload (kol_struct_import *imp, char *name);
unsigned kol_cofflib_procnum (kol_struct_import *imp);
void kol_cofflib_procname (kol_struct_import *imp, char *name, unsigned n);
unsigned kol_system_end(unsigned param);
unsigned kol_system_cpufreq();
unsigned kol_system_mem();
unsigned kol_system_memfree();
unsigned kol_system_time_get();
unsigned kol_system_date_get();
void kol_path_file2dir(char *dir, char *fname);
void kol_path_full(char *full, char *fname);
void kol_screen_wait_rr();
void kol_screen_get_size(unsigned *w, unsigned *h);
unsigned kol_skin_height();
unsigned kol_thread_start(unsigned start, unsigned stack);
unsigned kol_time_tick();
unsigned kol_sound_speaker(char data[]);
unsigned kol_process_info(unsigned slot, char buf1k[]);
int kol_process_kill_pid(unsigned process);
void kol_get_kernel_ver(char buff16b[]);
int kol_kill_process(unsigned process);
int kol_buffer_open(char name[], int mode, int size, char **buf);
void kol_buffer_close(char name[]);
int kol_clip_num();
char* kol_clip_get(int n);
int kol_clip_set(int n, char buffer[]);
 
/contrib/media/updf/apps/kos_main.c
0,0 → 1,465
#include <menuet/os.h>
#define _WIN32
#include "fitz.h"
#include "mupdf.h"
#include "pdfapp.h"
#include "icons/allbtns.h"
#include "kolibri.c"
 
void run_app()
{
return;
}
 
/*==== DATA ====*/
 
static char Title[1024] = "uPDF";
static pdfapp_t gapp;
char debugstr[256];
char do_not_blit=0;
 
#define TOOLBAR_HEIGHT 34
struct process_table_entry Form;
 
#define DOCUMENT_BORDER 0x979797
#define DOCUMENT_BG 0xABABAB
 
#define SCROLL_H 25
 
short show_area_w = 65;
short show_area_x;
 
char key_mode_enter_page_number;
int new_page_number;
 
static short window_center, draw_h, draw_w;
 
const char *help[] = {
"Keys:",
" ",
"PageUp - go to previous page",
"PageDown - go to next page",
"Home - go to first page",
"End - go to last page",
"Down arrow - scroll current page down",
"Up arrow - scroll current page up",
"+/- - zoom in/out",
"[ or l - rotate page 90 deg to the left",
"] or r - rotate page 90 deg to the right",
"g - grayscale on/off",
" ",
"Press Escape to hide help",
0
};
 
/*==== CODE ====*/
 
 
// not implemented yet
void wincursor(pdfapp_t *app, int curs) { }
void winhelp(pdfapp_t *app) { }
void winresize(pdfapp_t *app, int w, int h) { }
void windocopy(pdfapp_t *app) { }
void winopenuri(pdfapp_t *app, char *buf) { }
void winrepaintsearch(pdfapp_t *app) { }
 
 
void winwarn(pdfapp_t *app, char *msg)
{
fprintf(stderr, "mupdf: %s\n", msg);
}
 
 
void winerror(pdfapp_t *app, fz_error error)
{
fz_catch(error, "aborting");
exit(1);
}
 
 
char *winpassword(pdfapp_t *app, char *filename)
{
char *r = "";
return r;
random();
}
 
 
void wintitle(pdfapp_t *app, char *s)
{
char* param = *(char**)0x1C;
sprintf(Title,"%s - uPDF", strrchr(param, '/') + 1 );
}
 
 
void winreloadfile(pdfapp_t *app)
{
//pdfapp_close(app);
//pdfapp_open(app, filename, 0, 1);
}
 
void winclose(pdfapp_t *app)
{
pdfapp_close(&gapp);
__menuet__sys_exit();
}
 
void RunOpenApp()
{
RunApp("/sys/lod", "*pdf* /kolibrios/media/updf");
}
 
 
void winrepaint(pdfapp_t *app)
{
winblit(&gapp);
}
 
 
void winblit(pdfapp_t *app)
{
 
if (do_not_blit) return;
 
if (key_mode_enter_page_number==1) HandleNewPageNumber(0); else DrawPagination();
 
if (Form.client_width > gapp.image->w) window_center = (Form.client_width - gapp.image->w) / 2; else window_center = 0;
 
gapp.panx = 0;
if (gapp.image->n == 4) {
kos_blit(window_center + Form.client_left,
Form.client_top + TOOLBAR_HEIGHT,
Form.client_width,
Form.client_height - TOOLBAR_HEIGHT,
gapp.panx,
gapp.pany,
gapp.image->w,
gapp.image->h,
gapp.image->w * gapp.image->n,
gapp.image->samples
);
}
else if (gapp.image->n == 2)
{
int i = gapp.image->w*gapp.image->h;
unsigned char *color = malloc(i*4);
if (color != NULL)
{
unsigned char *s = gapp.image->samples;
unsigned char *d = color;
for (; i > 0 ; i--)
{
d[2] = d[1] = d[0] = *s++;
d[3] = *s++;
d += 4;
}
kos_blit(window_center + Form.client_left,
Form.client_top + TOOLBAR_HEIGHT,
Form.client_width,
Form.client_height - TOOLBAR_HEIGHT,
gapp.panx,
gapp.pany,
gapp.image->w,
gapp.image->h,
gapp.image->w * 4,
color
);
free(color);
}
}
}
 
 
void DrawPageSides(void)
{
if (gapp.image->h < Form.client_height - TOOLBAR_HEIGHT) {
draw_h = gapp.image->h - gapp.pany;
} else {
draw_h = Form.client_height - TOOLBAR_HEIGHT;
}
if (gapp.image->w < Form.client_width) {
window_center = (Form.client_width - gapp.image->w) / 2;
draw_w = gapp.image->w + 2;
kol_paint_bar(0, TOOLBAR_HEIGHT, window_center-1, Form.client_height - TOOLBAR_HEIGHT, DOCUMENT_BG);
kol_paint_bar(window_center-1, TOOLBAR_HEIGHT, 1, draw_h, DOCUMENT_BORDER);
kol_paint_bar(window_center + gapp.image->w, TOOLBAR_HEIGHT, 1, draw_h, DOCUMENT_BORDER);
kol_paint_bar(window_center + gapp.image->w+1, TOOLBAR_HEIGHT, Form.client_width - window_center - gapp.image->w - 1, Form.client_height - TOOLBAR_HEIGHT, DOCUMENT_BG);
} else {
window_center = 1;
draw_w = Form.client_width;
}
kol_paint_bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT, draw_w, 1, DOCUMENT_BORDER);
kol_paint_bar(window_center - 1, gapp.image->h - gapp.pany + TOOLBAR_HEIGHT + 1,
draw_w, Form.client_height - gapp.image->h - TOOLBAR_HEIGHT + gapp.pany - 1, DOCUMENT_BG);
}
 
 
void GetNewPageNumber(void)
{
new_page_number = gapp.pageno;
key_mode_enter_page_number = 1;
HandleNewPageNumber(0);
}
 
void HandleNewPageNumber(unsigned char key)
{
char label_new_page[8];
 
if ((key >= '0') && (key <= '9'))
{
new_page_number = new_page_number * 10 + key - '0';
}
if (key == ASCII_KEY_BS)
{
new_page_number /= 10;
}
if (key == ASCII_KEY_ENTER)
{
ApplyNewPageNumber();
return;
}
if (key==ASCII_KEY_ESC)
{
key_mode_enter_page_number = 0;
DrawWindow();
return;
}
 
itoa(new_page_number, label_new_page, 10);
strcat(label_new_page, "_");
kol_paint_bar(show_area_x, 6, show_area_w, 22, 0xFDF88E);
__menuet__write_text(show_area_x + show_area_w/2 - strlen(label_new_page)*6/2, 14, 0x000000, label_new_page, strlen(label_new_page));
 
if (new_page_number > gapp.pagecount) ApplyNewPageNumber();
}
 
void ApplyNewPageNumber(void)
{
key_mode_enter_page_number = 0;
gapp.pageno = new_page_number -1;
pdfapp_onkey(&gapp, ']');
}
 
void DrawPagination(void)
{
char pages_display[12];
kol_paint_bar(show_area_x, 6, show_area_w, 22, 0xF4F4F4);
sprintf (pages_display, "%d/%d", gapp.pageno, gapp.pagecount);
__menuet__write_text(show_area_x + show_area_w/2 - strlen(pages_display)*6/2, 14, 0x000000, pages_display, strlen(pages_display));
}
 
void DrawToolbarButton(int x, char image_id)
{
__menuet__make_button(x, 5, 26-1, 24-1, 10 + image_id + BT_HIDE, 0);
__menuet__putimage(x, 5, 26, 24, image_id * 24 * 26 * 3 + toolbar_image);
}
 
void DrawWindow(void)
{
kol_paint_bar(0, 0, Form.client_width, TOOLBAR_HEIGHT - 1, 0xe1e1e1); // bar on the top (buttons holder)
kol_paint_bar(0, TOOLBAR_HEIGHT - 1, Form.client_width, 1, 0x7F7F7F);
DrawToolbarButton(8,0); //open_folder
DrawToolbarButton(42,1); //magnify -
DrawToolbarButton(67,2); //magnify +
DrawToolbarButton(101,6); //rotate left
DrawToolbarButton(126,7); //rotate right
DrawToolbarButton(Form.client_width - 160,3); //show help
show_area_x = Form.client_width - show_area_w - 34;
DrawToolbarButton(show_area_x - 26,4); //prev page
DrawToolbarButton(show_area_x + show_area_w,5); //nex page
__menuet__make_button(show_area_x-1, 5, show_area_w+1, 23, 20 + BT_HIDE, 0xA4A4A4);
kol_paint_bar(show_area_x, 5, show_area_w, 1, 0xA4A4A4);
kol_paint_bar(show_area_x, 28, show_area_w, 1, 0xA4A4A4);
winblit(&gapp);
DrawPageSides();
}
 
 
/* Actions */
 
void PageScrollDown(void)
{
//pdfapp_onkey(&gapp, 'k'); //move down
if (gapp.image->h - gapp.pany - SCROLL_H < Form.client_height - TOOLBAR_HEIGHT)
{
pdfapp_onkey(&gapp, '.');
}
else {
gapp.pany += SCROLL_H;
winblit(&gapp);
}
}
 
 
void PageScrollUp(void)
{
//pdfapp_onkey(&gapp, 'j'); //move up
if (gapp.pany >= SCROLL_H) {
gapp.pany -= SCROLL_H;
winblit(&gapp);
}
else {
//not very nice way of using do_not_blit, but it simple
if (gapp.pageno == 1) return;
do_not_blit = 1;
pdfapp_onkey(&gapp, ',');
do_not_blit = 0;
gapp.pany = gapp.image->h - SCROLL_H - Form.client_height + TOOLBAR_HEIGHT;
if (gapp.pany < 0) gapp.pany = 0;
//sprintf (debugstr, "gapp.pany: %d \n", gapp.pany);
//kol_board_puts(debugstr);
winblit(&gapp);
}
}
 
void RunApp(char app[], char param[])
{
kol_struct70 r;
r.p00 = 7;
r.p04 = 0;
r.p08 = param;
r.p12 = 0;
r.p16 = 0;
r.p20 = 0;
r.p21 = app;
kol_file_70(&r);
}
 
 
void PageZoomIn(void)
{
pdfapp_onkey(&gapp, '+');
DrawPageSides();
}
 
 
void PageZoomOut(void)
{
pdfapp_onkey(&gapp, '-');
DrawPageSides();
}
 
void PageRotateLeft(void)
{
pdfapp_onkey(&gapp, 'L');
DrawPageSides();
}
 
void PageRotateRight(void)
{
pdfapp_onkey(&gapp, 'R');
DrawPageSides();
}
 
int main (void)
{
char ii, mouse_wheels_state;
char* original_command_line = *(char**)0x1C;
if (*original_command_line == 0) {
kol_board_puts("uPDF: no param set, showing OpenDialog");
RunOpenApp();
__menuet__sys_exit();
}
 
kol_board_puts(original_command_line);
kol_board_puts("\n");
char buf[128];
int resolution = 72;
int pageno = 1;
fz_accelerate();
kol_board_puts("PDF init\n");
pdfapp_init(&gapp);
gapp.scrw = 600;
gapp.scrh = 400;
gapp.resolution = resolution;
gapp.pageno = pageno;
kol_board_puts("PDF Open\n");
pdfapp_open(&gapp, original_command_line, 0, 0);
kol_board_puts("PDF Opened\n");
wintitle(&gapp, 0);
kol_board_puts("Inital paint\n");
int butt, key, screen_max_x, screen_max_y;
__menuet__get_screen_max(&screen_max_x, &screen_max_y);
__menuet__set_bitfield_for_wanted_events(EVENT_REDRAW+EVENT_KEY+EVENT_BUTTON+EVENT_MOUSE_CHANGE);
 
for(;;)
{
 
switch(__menuet__wait_for_event())
{
case evReDraw:
// gapp.shrinkwrap = 2;
__menuet__window_redraw(1);
__menuet__define_window(screen_max_x / 2 - 350-50+kos_random(50),
screen_max_y / 2 - 300-50+kos_random(50),
700, 600, 0x73000000, 0x800000FF, Title);
__menuet__window_redraw(2);
__menuet__get_process_table(&Form, PID_WHOAMI);
if (Form.window_state > 2) continue; //fix rolled up
Form.client_width++; //fix for Menuet kernel bug
Form.client_height++; //fix for Menuet kernel bug
DrawWindow();
break;
 
case evKey:
key = __menuet__getkey();
if (key_mode_enter_page_number)
{
HandleNewPageNumber(key);
break;
}
if (key==ASCII_KEY_ESC) DrawWindow(); //close help
if (key==ASCII_KEY_PGDN) pdfapp_onkey(&gapp, ']');
if (key==ASCII_KEY_PGUP) pdfapp_onkey(&gapp, '[');
if (key==ASCII_KEY_HOME) pdfapp_onkey(&gapp, 'g');
if (key==ASCII_KEY_END ) pdfapp_onkey(&gapp, 'G');
if (key=='g' ) pdfapp_onkey(&gapp, 'c');
if ((key=='[' ) || (key=='l')) PageRotateLeft();
if ((key==']' ) || (key=='r')) PageRotateRight();
if (key==ASCII_KEY_DOWN ) PageScrollDown();
if (key==ASCII_KEY_UP ) PageScrollUp();
if (key=='-') PageZoomOut();
if ((key=='=') || (key=='+')) PageZoomIn();
break;
 
case evButton:
butt = __menuet__get_button_id();
if(butt==1) __menuet__sys_exit();
if(butt==10) RunOpenApp();
if(butt==11) PageZoomOut(); //magnify -
if(butt==12) PageZoomIn(); //magnify +
if(butt==13) //show help
{
kol_paint_bar(0, TOOLBAR_HEIGHT, Form.client_width, Form.client_height - TOOLBAR_HEIGHT, 0xF2F2F2);
__menuet__write_text(20, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0);
__menuet__write_text(21, TOOLBAR_HEIGHT + 20 , 0x90000000, "uPDF for KolibriOS v1.2", 0);
for (ii=0; help[ii]!=0; ii++) {
__menuet__write_text(20, TOOLBAR_HEIGHT + 60 + ii * 15, 0x80000000, help[ii], 0);
}
}
if(butt==14) pdfapp_onkey(&gapp, '['); //previous page
if(butt==15) pdfapp_onkey(&gapp, ']'); //next page
if(butt==16) PageRotateLeft();
if(butt==17) PageRotateRight();
if(butt==20) GetNewPageNumber();
break;
 
case evMouse:
if (mouse_wheels_state = kos_get_mouse_wheels())
{
if (mouse_wheels_state==1) { PageScrollDown(); PageScrollDown(); }
if (mouse_wheels_state==-1) { PageScrollUp(); PageScrollUp(); }
}
//sprintf (debugstr, "mouse_wheels_state: %d \n", mouse_wheels_state);
//kol_board_puts(debugstr);
//pdfapp_onmouse(&gapp, int x, int y, int btn, int modifiers, int state)
break;
}
}
}
/contrib/media/updf/apps/pdfapp.c
0,0 → 1,1171
#include "fitz.h"
#include "mupdf.h"
#include "pdfapp.h"
 
#include <ctype.h> /* for tolower() */
 
#define ZOOMSTEP 1.142857
#define BEYOND_THRESHHOLD 40
 
enum panning
{
DONT_PAN = 0,
PAN_TO_TOP,
PAN_TO_BOTTOM
};
 
static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage, int repaint);
 
static void pdfapp_warn(pdfapp_t *app, const char *fmt, ...)
{
char buf[1024];
va_list ap;
va_start(ap, fmt);
vsprintf(buf, fmt, ap);
va_end(ap);
winwarn(app, buf);
}
 
static void pdfapp_error(pdfapp_t *app, fz_error error)
{
winerror(app, error);
}
 
char *pdfapp_version(pdfapp_t *app)
{
return
"MuPDF 0.9\n"
"Copyright 2006-2011 Artifex Sofware, Inc.\n";
}
 
char *pdfapp_usage(pdfapp_t *app)
{
return " ";
/*
"L\t\t-- rotate left\n"
"R\t\t-- rotate right\n"
"h\t\t-- scroll left\n"
"j down\t\t-- scroll down\n"
"k up\t\t-- scroll up\n"
"l\t\t-- scroll right\n"
"+\t\t-- zoom in\n"
"-\t\t-- zoom out\n"
"w\t\t-- shrinkwrap\n"
"r\t\t-- reload file\n"
". pgdn right space\t-- next page\n"
", pgup left b\t-- previous page\n"
">\t\t-- next 10 pages\n"
"<\t\t-- back 10 pages\n"
"m\t\t-- mark page for snap back\n"
"t\t\t-- pop back to latest mark\n"
"1m\t\t-- mark page in register 1\n"
"1t\t\t-- go to page in register 1\n"
"123g\t\t-- go to page 123\n"
"/\t\t-- search for text\n"
"n\t\t-- find next search result\n"
"N\t\t-- find previous search result\n"
"c\t\t-- toggle between color and grayscale\n"
;
*/
}
 
void pdfapp_init(pdfapp_t *app)
{
memset(app, 0, sizeof(pdfapp_t));
app->scrw = 640;
app->scrh = 480;
app->resolution = 72;
}
 
void pdfapp_invert(pdfapp_t *app, fz_bbox rect)
{
unsigned char *p;
int x, y, n;
 
int x0 = CLAMP(rect.x0 - app->image->x, 0, app->image->w - 1);
int x1 = CLAMP(rect.x1 - app->image->x, 0, app->image->w - 1);
int y0 = CLAMP(rect.y0 - app->image->y, 0, app->image->h - 1);
int y1 = CLAMP(rect.y1 - app->image->y, 0, app->image->h - 1);
 
for (y = y0; y < y1; y++)
{
p = app->image->samples + (y * app->image->w + x0) * app->image->n;
for (x = x0; x < x1; x++)
{
for (n = app->image->n; n > 0; n--, p++)
*p = 255 - *p;
}
}
}
 
static void pdfapp_open_pdf(pdfapp_t *app, char *filename, int fd)
{
fz_error error;
fz_stream *file;
char *password = "";
fz_obj *obj;
fz_obj *info;
 
/*
* Open PDF and load xref table
*/
__menuet__debug_out("FZ OPEN\n");
//file = fz_open_fd(fd);
__menuet__debug_out("FZ ready\n");
error = pdf_open_xref(&app->xref, filename, NULL);
if (error){
__menuet__debug_out("FZ can't open\n");
pdfapp_error(app, fz_rethrow(error, "cannot open document '%s'", filename));}
fz_close(file);
 
/*
* Handle encrypted PDF files
*/
/*
if (pdf_needs_password(app->xref))
{
int okay = pdf_authenticate_password(app->xref, password);
while (!okay)
{
password = winpassword(app, filename);
if (!password)
exit(1);
okay = pdf_authenticate_password(app->xref, password);
if (!okay)
pdfapp_warn(app, "Invalid password.");
}
}
* */
 
/*
* Load meta information
*/
 
/*
app->outline = pdf_load_outline(app->xref);
 
app->doctitle = filename;
if (strrchr(app->doctitle, '\\'))
app->doctitle = strrchr(app->doctitle, '\\') + 1;
if (strrchr(app->doctitle, '/'))
app->doctitle = strrchr(app->doctitle, '/') + 1;
info = fz_dict_gets(app->xref->trailer, "Info");
if (info)
{
obj = fz_dict_gets(info, "Title");
if (obj)
app->doctitle = pdf_to_utf8(obj);
} */
 
/*
* Start at first page
*/
__menuet__debug_out("Start at first page\n");
 
error = pdf_load_page_tree(app->xref);
if (error) {
__menuet__debug_out("Can't load tree\n");
pdfapp_error(app, fz_rethrow(error, "cannot load page tree"));}
 
__menuet__debug_out("Page counter\n");
app->pagecount = pdf_count_pages(app->xref);
__menuet__debug_out("All is set!\n");
}
 
void pdfapp_open(pdfapp_t *app, char *filename, int fd, int reload)
{
pdfapp_open_pdf(app, filename, fd);
 
app->cache = fz_new_glyph_cache();
 
if (app->pageno < 1)
app->pageno = 1;
if (app->pageno > app->pagecount)
app->pageno = app->pagecount;
if (app->resolution < MINRES)
app->resolution = MINRES;
if (app->resolution > MAXRES)
app->resolution = MAXRES;
 
if (!reload)
{
app->shrinkwrap = 1;
app->rotate = 0;
app->panx = 0;
app->pany = 0;
}
 
pdfapp_showpage(app, 1, 1, 1);
}
 
void pdfapp_close(pdfapp_t *app)
{
if (app->cache)
fz_free_glyph_cache(app->cache);
app->cache = NULL;
 
if (app->image)
fz_drop_pixmap(app->image);
app->image = NULL;
 
if (app->outline)
pdf_free_outline(app->outline);
app->outline = NULL;
 
if (app->xref)
{
if (app->xref->store)
pdf_free_store(app->xref->store);
app->xref->store = NULL;
 
pdf_free_xref(app->xref);
app->xref = NULL;
}
 
fz_flush_warnings();
}
 
static fz_matrix pdfapp_viewctm(pdfapp_t *app)
{
fz_matrix ctm;
ctm = fz_identity;
ctm = fz_concat(ctm, fz_translate(0, -app->page_bbox.y1));
if (app->xref)
ctm = fz_concat(ctm, fz_scale(app->resolution/72.0f, -app->resolution/72.0f));
else
ctm = fz_concat(ctm, fz_scale(app->resolution/96.0f, app->resolution/96.0f));
ctm = fz_concat(ctm, fz_rotate(app->rotate + app->page_rotate));
return ctm;
}
 
static void pdfapp_panview(pdfapp_t *app, int newx, int newy)
{
if (newx < 0)
newx = 0;
if (newy < 0)
newy = 0;
 
if (newx + app->image->w < app->winw)
newx = app->winw - app->image->w;
if (newy + app->image->h < app->winh)
newy = app->winh - app->image->h;
 
if (app->winw >= app->image->w)
newx = (app->winw - app->image->w) / 2;
if (app->winh >= app->image->h)
newy = (app->winh - app->image->h) / 2;
 
if (newx != app->panx || newy != app->pany)
winrepaint(app);
if (newy > app->image->h) {
 
app->pageno++;
if (app->pageno > app->pagecount)
app->pageno = app->pagecount;
 
 
newy = 0;
app->pany = newy;
pdfapp_showpage(app, 1, 1, 1);
}
 
app->panx = newx;
app->pany = newy;
}
 
static void pdfapp_loadpage_pdf(pdfapp_t *app)
{
pdf_page *page;
fz_error error;
fz_device *mdev;
 
error = pdf_load_page(&page, app->xref, app->pageno - 1);
if (error)
pdfapp_error(app, error);
 
app->page_bbox = page->mediabox;
app->page_rotate = page->rotate;
app->page_links = page->links;
page->links = NULL;
 
/* Create display list */
app->page_list = fz_new_display_list();
mdev = fz_new_list_device(app->page_list);
error = pdf_run_page(app->xref, page, mdev, fz_identity);
if (error)
{
error = fz_rethrow(error, "cannot draw page %d in '%s'", app->pageno, app->doctitle);
pdfapp_error(app, error);
}
fz_free_device(mdev);
 
pdf_free_page(page);
 
pdf_age_store(app->xref->store, 3);
}
 
static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage, int repaint)
{
char buf[256];
fz_device *idev;
fz_device *tdev;
fz_colorspace *colorspace;
fz_matrix ctm;
fz_bbox bbox;
 
wincursor(app, WAIT);
 
if (loadpage)
{
if (app->page_list)
fz_free_display_list(app->page_list);
if (app->page_text)
fz_free_text_span(app->page_text);
if (app->page_links)
pdf_free_link(app->page_links);
 
if (app->xref)
pdfapp_loadpage_pdf(app);
 
/* Zero search hit position */
app->hit = -1;
app->hitlen = 0;
 
/* Extract text */
app->page_text = fz_new_text_span();
tdev = fz_new_text_device(app->page_text);
fz_execute_display_list(app->page_list, tdev, fz_identity, fz_infinite_bbox);
fz_free_device(tdev);
}
 
if (drawpage)
{
sprintf(buf, "%s - %d/%d (%d dpi)", app->doctitle,
app->pageno, app->pagecount, app->resolution);
wintitle(app, buf);
 
ctm = pdfapp_viewctm(app);
bbox = fz_round_rect(fz_transform_rect(ctm, app->page_bbox));
 
/* Draw */
if (app->image)
fz_drop_pixmap(app->image);
if (app->grayscale)
colorspace = fz_device_gray;
else
//#ifdef _WIN32
colorspace = fz_device_bgr;
//#else
// colorspace = fz_device_rgb;
//#endif
app->image = fz_new_pixmap_with_rect(colorspace, bbox);
fz_clear_pixmap_with_color(app->image, 255);
idev = fz_new_draw_device(app->cache, app->image);
fz_execute_display_list(app->page_list, idev, ctm, bbox);
fz_free_device(idev);
}
 
if (repaint)
{
pdfapp_panview(app, app->panx, app->pany);
 
if (app->shrinkwrap)
{
__menuet__debug_out ("SHRINK\n");
int w = app->image->w;
int h = app->image->h;
if (app->winw == w)
app->panx = 0;
if (app->winh == h)
app->pany = 0;
if (w > app->scrw * 90 / 100)
w = app->scrw * 90 / 100;
if (h > app->scrh * 90 / 100)
h = app->scrh * 90 / 100;
if (w != app->winw || h != app->winh)
winresize(app, w, h);
}
 
winrepaint(app);
 
wincursor(app, ARROW);
}
 
fz_flush_warnings();
}
 
static void pdfapp_gotouri(pdfapp_t *app, fz_obj *uri)
{
char *buf;
buf = fz_malloc(fz_to_str_len(uri) + 1);
memcpy(buf, fz_to_str_buf(uri), fz_to_str_len(uri));
buf[fz_to_str_len(uri)] = 0;
winopenuri(app, buf);
fz_free(buf);
}
 
static void pdfapp_gotopage(pdfapp_t *app, fz_obj *obj)
{
int number;
 
number = pdf_find_page_number(app->xref, obj);
if (number < 0)
return;
 
if (app->histlen + 1 == 256)
{
memmove(app->hist, app->hist + 1, sizeof(int) * 255);
app->histlen --;
}
app->hist[app->histlen++] = app->pageno;
app->pageno = number + 1;
pdfapp_showpage(app, 1, 1, 1);
}
 
static inline fz_bbox bboxcharat(fz_text_span *span, int idx)
{
int ofs = 0;
while (span)
{
if (idx < ofs + span->len)
return span->text[idx - ofs].bbox;
if (span->eol)
{
if (idx == ofs + span->len)
return fz_empty_bbox;
ofs ++;
}
ofs += span->len;
span = span->next;
}
return fz_empty_bbox;
}
 
void pdfapp_inverthit(pdfapp_t *app)
{
fz_bbox hitbox, bbox;
fz_matrix ctm;
int i;
 
if (app->hit < 0)
return;
 
hitbox = fz_empty_bbox;
ctm = pdfapp_viewctm(app);
 
for (i = app->hit; i < app->hit + app->hitlen; i++)
{
bbox = bboxcharat(app->page_text, i);
if (fz_is_empty_rect(bbox))
{
if (!fz_is_empty_rect(hitbox))
pdfapp_invert(app, fz_transform_bbox(ctm, hitbox));
hitbox = fz_empty_bbox;
}
else
{
hitbox = fz_union_bbox(hitbox, bbox);
}
}
 
if (!fz_is_empty_rect(hitbox))
pdfapp_invert(app, fz_transform_bbox(ctm, hitbox));
}
 
static inline int charat(fz_text_span *span, int idx)
{
int ofs = 0;
while (span)
{
if (idx < ofs + span->len)
return span->text[idx - ofs].c;
if (span->eol)
{
if (idx == ofs + span->len)
return ' ';
ofs ++;
}
ofs += span->len;
span = span->next;
}
return 0;
}
 
static int textlen(fz_text_span *span)
{
int len = 0;
while (span)
{
len += span->len;
if (span->eol)
len ++;
span = span->next;
}
return len;
}
 
static int match(char *s, fz_text_span *span, int n)
{
int orig = n;
int c;
while ((c = *s++))
{
if (c == ' ' && charat(span, n) == ' ')
{
while (charat(span, n) == ' ')
n++;
}
else
{
if (tolower(c) != tolower(charat(span, n)))
return 0;
n++;
}
}
return n - orig;
}
 
static void pdfapp_searchforward(pdfapp_t *app, enum panning *panto)
{
int matchlen;
int test;
int len;
int startpage;
 
wincursor(app, WAIT);
 
startpage = app->pageno;
 
do
{
len = textlen(app->page_text);
 
if (app->hit >= 0)
test = app->hit + strlen(app->search);
else
test = 0;
 
while (test < len)
{
matchlen = match(app->search, app->page_text, test);
if (matchlen)
{
app->hit = test;
app->hitlen = matchlen;
wincursor(app, HAND);
winrepaint(app);
return;
}
test++;
}
 
app->pageno++;
if (app->pageno > app->pagecount)
app->pageno = 1;
 
pdfapp_showpage(app, 1, 0, 0);
*panto = PAN_TO_TOP;
 
} while (app->pageno != startpage);
 
if (app->pageno == startpage)
{
pdfapp_warn(app, "String '%s' not found.", app->search);
winrepaintsearch(app);
}
else
winrepaint(app);
 
wincursor(app, HAND);
}
 
static void pdfapp_searchbackward(pdfapp_t *app, enum panning *panto)
{
int matchlen;
int test;
int len;
int startpage;
 
wincursor(app, WAIT);
 
startpage = app->pageno;
 
do
{
len = textlen(app->page_text);
 
if (app->hit >= 0)
test = app->hit - 1;
else
test = len;
 
while (test >= 0)
{
matchlen = match(app->search, app->page_text, test);
if (matchlen)
{
app->hit = test;
app->hitlen = matchlen;
wincursor(app, HAND);
winrepaint(app);
return;
}
test--;
}
 
app->pageno--;
if (app->pageno < 1)
app->pageno = app->pagecount;
 
pdfapp_showpage(app, 1, 0, 0);
*panto = PAN_TO_BOTTOM;
 
} while (app->pageno != startpage);
 
if (app->pageno == startpage)
{
pdfapp_warn(app, "String '%s' not found.", app->search);
winrepaintsearch(app);
}
else
winrepaint(app);
 
wincursor(app, HAND);
}
 
void pdfapp_onresize(pdfapp_t *app, int w, int h)
{
if (app->winw != w || app->winh != h)
{
app->winw = w;
app->winh = h;
pdfapp_panview(app, app->panx, app->pany);
winrepaint(app);
}
}
 
void pdfapp_onkey(pdfapp_t *app, int c)
{
int oldpage = app->pageno;
enum panning panto = PAN_TO_TOP;
int loadpage = 1;
 
if (app->isediting)
{
int n = strlen(app->search);
if (c < ' ')
{
if (c == '\b' && n > 0)
{
app->search[n - 1] = 0;
winrepaintsearch(app);
}
if (c == '\n' || c == '\r')
{
app->isediting = 0;
if (n > 0)
{
winrepaintsearch(app);
pdfapp_onkey(app, 'n');
}
else
winrepaint(app);
}
if (c == '\033')
{
app->isediting = 0;
winrepaint(app);
}
}
else
{
if (n + 2 < sizeof app->search)
{
app->search[n] = c;
app->search[n + 1] = 0;
winrepaintsearch(app);
}
}
return;
}
 
/*
* Save numbers typed for later
*/
 
if (c >= '0' && c <= '9')
{
app->number[app->numberlen++] = c;
app->number[app->numberlen] = '\0';
}
 
switch (c)
{
 
case '?':
winhelp(app);
break;
 
case 'q':
winclose(app);
break;
 
/*
* Zoom and rotate
*/
 
case '+':
case '=':
app->resolution *= ZOOMSTEP;
if (app->resolution > MAXRES)
app->resolution = MAXRES;
pdfapp_showpage(app, 0, 1, 1);
break;
case '-':
app->resolution /= ZOOMSTEP;
if (app->resolution < MINRES)
app->resolution = MINRES;
pdfapp_showpage(app, 0, 1, 1);
break;
 
case 'L':
app->rotate -= 90;
pdfapp_showpage(app, 0, 1, 1);
break;
case 'R':
app->rotate += 90;
pdfapp_showpage(app, 0, 1, 1);
break;
 
case 'c':
app->grayscale ^= 1;
pdfapp_showpage(app, 0, 1, 1);
break;
 
#ifndef NDEBUG
case 'a':
app->rotate -= 15;
pdfapp_showpage(app, 0, 1, 1);
break;
case 's':
app->rotate += 15;
pdfapp_showpage(app, 0, 1, 1);
break;
#endif
 
/*
* Pan view, but dont need to repaint image
*/
 
case 'w':
app->shrinkwrap = 1;
app->panx = app->pany = 0;
pdfapp_showpage(app, 0, 0, 1);
break;
 
case 'h':
app->panx += app->image->w / 10;
pdfapp_showpage(app, 0, 0, 1);
break;
 
case 'j':
app->pany -= app->image->h / 10;
pdfapp_showpage(app, 0, 0, 1);
break;
 
case 'k':
app->pany += app->image->h / 10;
pdfapp_showpage(app, 0, 0, 1);
break;
 
case 'l':
app->panx -= app->image->w / 10;
pdfapp_showpage(app, 0, 0, 1);
break;
 
/*
* Page navigation
*/
 
case 'g':
case '\n':
case '\r':
if (app->numberlen > 0)
app->pageno = atoi(app->number);
else
app->pageno = 1;
break;
 
case 'G':
app->pageno = app->pagecount;
break;
 
case 'm':
if (app->numberlen > 0)
{
int idx = atoi(app->number);
 
if (idx >= 0 && idx < nelem(app->marks))
app->marks[idx] = app->pageno;
}
else
{
if (app->histlen + 1 == 256)
{
memmove(app->hist, app->hist + 1, sizeof(int) * 255);
app->histlen --;
}
app->hist[app->histlen++] = app->pageno;
}
break;
 
case 't':
if (app->numberlen > 0)
{
int idx = atoi(app->number);
 
if (idx >= 0 && idx < nelem(app->marks))
if (app->marks[idx] > 0)
app->pageno = app->marks[idx];
}
else if (app->histlen > 0)
app->pageno = app->hist[--app->histlen];
break;
 
/*
* Back and forth ...
*/
 
case ',':
panto = PAN_TO_BOTTOM;
if (app->numberlen > 0)
app->pageno -= atoi(app->number);
else
app->pageno--;
break;
 
case '.':
panto = PAN_TO_TOP;
if (app->numberlen > 0)
app->pageno += atoi(app->number);
else
app->pageno++;
break;
 
case 'b':
panto = DONT_PAN;
if (app->numberlen > 0)
app->pageno -= atoi(app->number);
else
app->pageno--;
break;
 
case ' ':
panto = DONT_PAN;
if (app->numberlen > 0)
app->pageno += atoi(app->number);
else
app->pageno++;
break;
 
case ']':
panto = PAN_TO_TOP;
app->pageno++;
break;
case '[':
panto = PAN_TO_TOP;
app->pageno--;
break;
 
 
case '<':
panto = PAN_TO_TOP;
app->pageno -= 10;
break;
case '>':
panto = PAN_TO_TOP;
app->pageno += 10;
break;
 
/*
* Reloading the file...
*/
 
case 'r':
panto = DONT_PAN;
oldpage = -1;
winreloadfile(app);
break;
 
/*
* Searching
*/
 
case '/':
app->isediting = 1;
app->search[0] = 0;
app->hit = -1;
app->hitlen = 0;
winrepaintsearch(app);
break;
 
case 'n':
pdfapp_searchforward(app, &panto);
loadpage = 0;
break;
 
case 'N':
pdfapp_searchbackward(app, &panto);
loadpage = 0;
break;
 
}
 
if (c < '0' || c > '9')
app->numberlen = 0;
 
if (app->pageno < 1)
app->pageno = 1;
if (app->pageno > app->pagecount)
app->pageno = app->pagecount;
 
if (app->pageno != oldpage)
{
switch (panto)
{
case PAN_TO_TOP:
app->pany = 0;
break;
case PAN_TO_BOTTOM:
app->pany = -2000;
break;
case DONT_PAN:
break;
}
pdfapp_showpage(app, loadpage, 1, 1);
}
}
 
void pdfapp_onmouse(pdfapp_t *app, int x, int y, int btn, int modifiers, int state)
{
pdf_link *link;
fz_matrix ctm;
fz_point p;
 
p.x = x - app->panx + app->image->x;
p.y = y - app->pany + app->image->y;
 
ctm = pdfapp_viewctm(app);
ctm = fz_invert_matrix(ctm);
 
p = fz_transform_point(ctm, p);
 
for (link = app->page_links; link; link = link->next)
{
if (p.x >= link->rect.x0 && p.x <= link->rect.x1)
if (p.y >= link->rect.y0 && p.y <= link->rect.y1)
break;
}
 
if (link)
{
wincursor(app, HAND);
if (btn == 1 && state == 1)
{
if (link->kind == PDF_LINK_URI)
pdfapp_gotouri(app, link->dest);
else if (link->kind == PDF_LINK_GOTO)
pdfapp_gotopage(app, fz_array_get(link->dest, 0)); /* [ pageobj ... ] */
return;
}
}
else
{
wincursor(app, ARROW);
}
 
if (state == 1)
{
if (btn == 1 && !app->iscopying)
{
app->ispanning = 1;
app->selx = x;
app->sely = y;
app->beyondy = 0;
}
if (btn == 3 && !app->ispanning)
{
app->iscopying = 1;
app->selx = x;
app->sely = y;
app->selr.x0 = x;
app->selr.x1 = x;
app->selr.y0 = y;
app->selr.y1 = y;
}
if (btn == 4 || btn == 5) /* scroll wheel */
{
int dir = btn == 4 ? 1 : -1;
app->ispanning = app->iscopying = 0;
if (modifiers & (1<<2))
{
/* zoom in/out if ctrl is pressed */
if (dir > 0)
app->resolution *= ZOOMSTEP;
else
app->resolution /= ZOOMSTEP;
if (app->resolution > MAXRES)
app->resolution = MAXRES;
if (app->resolution < MINRES)
app->resolution = MINRES;
pdfapp_showpage(app, 0, 1, 1);
}
else
{
/* scroll up/down, or left/right if
shift is pressed */
int isx = (modifiers & (1<<0));
int xstep = isx ? 20 * dir : 0;
int ystep = !isx ? 20 * dir : 0;
pdfapp_panview(app, app->panx + xstep, app->pany + ystep);
}
}
}
 
else if (state == -1)
{
if (app->iscopying)
{
app->iscopying = 0;
app->selr.x0 = MIN(app->selx, x) - app->panx + app->image->x;
app->selr.x1 = MAX(app->selx, x) - app->panx + app->image->x;
app->selr.y0 = MIN(app->sely, y) - app->pany + app->image->y;
app->selr.y1 = MAX(app->sely, y) - app->pany + app->image->y;
winrepaint(app);
if (app->selr.x0 < app->selr.x1 && app->selr.y0 < app->selr.y1)
windocopy(app);
}
if (app->ispanning)
app->ispanning = 0;
}
 
else if (app->ispanning)
{
int newx = app->panx + x - app->selx;
int newy = app->pany + y - app->sely;
/* Scrolling beyond limits implies flipping pages */
/* Are we requested to scroll beyond limits? */
if (newy + app->image->h < app->winh || newy > 0)
{
/* Yes. We can assume that deltay != 0 */
int deltay = y - app->sely;
/* Check whether the panning has occured in the
* direction that we are already crossing the
* limit it. If not, we can conclude that we
* have switched ends of the page and will thus
* start over counting.
*/
if( app->beyondy == 0 || (app->beyondy ^ deltay) >= 0 )
{
/* Updating how far we are beyond and
* flipping pages if beyond threshhold
*/
app->beyondy += deltay;
if (app->beyondy > BEYOND_THRESHHOLD)
{
if( app->pageno > 1 )
{
app->pageno--;
pdfapp_showpage(app, 1, 1, 1);
newy = -app->image->h;
}
app->beyondy = 0;
}
else if (app->beyondy < -BEYOND_THRESHHOLD)
{
if( app->pageno < app->pagecount )
{
app->pageno++;
pdfapp_showpage(app, 1, 1, 1);
newy = 0;
}
app->beyondy = 0;
}
}
else
app->beyondy = 0;
}
/* Although at this point we've already determined that
* or that no scrolling will be performed in
* y-direction, the x-direction has not yet been taken
* care off. Therefore
*/
pdfapp_panview(app, newx, newy);
 
app->selx = x;
app->sely = y;
}
 
else if (app->iscopying)
{
app->selr.x0 = MIN(app->selx, x) - app->panx + app->image->x;
app->selr.x1 = MAX(app->selx, x) - app->panx + app->image->x;
app->selr.y0 = MIN(app->sely, y) - app->pany + app->image->y;
app->selr.y1 = MAX(app->sely, y) - app->pany + app->image->y;
winrepaint(app);
}
 
}
 
void pdfapp_oncopy(pdfapp_t *app, unsigned short *ucsbuf, int ucslen)
{
fz_bbox hitbox;
fz_matrix ctm;
fz_text_span *span;
int c, i, p;
int seen;
 
int x0 = app->selr.x0;
int x1 = app->selr.x1;
int y0 = app->selr.y0;
int y1 = app->selr.y1;
 
ctm = pdfapp_viewctm(app);
 
p = 0;
for (span = app->page_text; span; span = span->next)
{
seen = 0;
 
for (i = 0; i < span->len; i++)
{
hitbox = fz_transform_bbox(ctm, span->text[i].bbox);
c = span->text[i].c;
if (c < 32)
c = '?';
if (hitbox.x1 >= x0 && hitbox.x0 <= x1 && hitbox.y1 >= y0 && hitbox.y0 <= y1)
{
if (p < ucslen - 1)
ucsbuf[p++] = c;
seen = 1;
}
}
 
if (seen && span->eol)
{
#ifdef _WIN32
if (p < ucslen - 1)
ucsbuf[p++] = '\r';
#endif
if (p < ucslen - 1)
ucsbuf[p++] = '\n';
}
}
 
ucsbuf[p] = 0;
}
/contrib/media/updf/apps/pdfapp.h
0,0 → 1,104
/*
* Utility object for handling a pdf application / view
* Takes care of PDF loading and displaying and navigation,
* uses a number of callbacks to the GUI app.
*/
 
#define MINRES 54
#define MAXRES 300
 
typedef struct pdfapp_s pdfapp_t;
 
enum { ARROW, HAND, WAIT };
 
extern void winwarn(pdfapp_t*, char *s);
extern void winerror(pdfapp_t*, fz_error error);
extern void wintitle(pdfapp_t*, char *title);
extern void winresize(pdfapp_t*, int w, int h);
extern void winrepaint(pdfapp_t*);
extern void winrepaintsearch(pdfapp_t*);
extern char *winpassword(pdfapp_t*, char *filename);
extern void winopenuri(pdfapp_t*, char *s);
extern void wincursor(pdfapp_t*, int curs);
extern void windocopy(pdfapp_t*);
extern void winreloadfile(pdfapp_t*);
extern void windrawstring(pdfapp_t*, int x, int y, char *s);
extern void winclose(pdfapp_t*);
extern void winhelp(pdfapp_t*);
 
struct pdfapp_s
{
/* current document params */
char *doctitle;
pdf_xref *xref;
pdf_outline *outline;
 
int pagecount;
fz_glyph_cache *cache;
 
/* current view params */
int resolution;
int rotate;
fz_pixmap *image;
int grayscale;
 
/* current page params */
int pageno;
fz_rect page_bbox;
float page_rotate;
fz_display_list *page_list;
fz_text_span *page_text;
pdf_link *page_links;
 
/* snapback history */
int hist[256];
int histlen;
int marks[10];
 
/* window system sizes */
int winw, winh;
int scrw, scrh;
int shrinkwrap;
 
/* event handling state */
char number[256];
int numberlen;
 
int ispanning;
int panx, pany;
 
int iscopying;
int selx, sely;
/* TODO - While sely keeps track of the relative change in
* cursor position between two ticks/events, beyondy shall keep
* track of the relative change in cursor position from the
* point where the user hits a scrolling limit. This is ugly.
* Used in pdfapp.c:pdfapp_onmouse.
*/
int beyondy;
fz_bbox selr;
 
/* search state */
int isediting;
char search[512];
int hit;
int hitlen;
 
/* client context storage */
void *userdata;
};
 
void pdfapp_init(pdfapp_t *app);
void pdfapp_open(pdfapp_t *app, char *filename, int fd, int reload);
void pdfapp_close(pdfapp_t *app);
 
char *pdfapp_version(pdfapp_t *app);
char *pdfapp_usage(pdfapp_t *app);
 
void pdfapp_onkey(pdfapp_t *app, int c);
void pdfapp_onmouse(pdfapp_t *app, int x, int y, int btn, int modifiers, int state);
void pdfapp_oncopy(pdfapp_t *app, unsigned short *ucsbuf, int ucslen);
void pdfapp_onresize(pdfapp_t *app, int w, int h);
 
void pdfapp_invert(pdfapp_t *app, fz_bbox rect);
void pdfapp_inverthit(pdfapp_t *app);
/contrib/media/updf/apps/icons/allbtns.h
0,0 → 1,940
// 26x144
 
unsigned char toolbar_image[14976] = {
0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5,
0xA5, 0xEE, 0xEE, 0xEE, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xEE, 0xEE, 0xEE, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA5, 0xA5, 0xA5, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xB0, 0xB0, 0xB0, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xB0, 0xB0, 0xB0, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xA5, 0xA5,
0xA5, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA5, 0xA5, 0xA5,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xA5, 0xA5, 0xA5, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xE9, 0xE9, 0xE9, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xE9, 0xE9, 0xE9, 0xA5,
0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2,
0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5,
0xA5, 0xEE, 0xEE, 0xEE, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xEE, 0xEE, 0xEE, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x98, 0x98, 0x98, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x98, 0x98, 0x98, 0xC2, 0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEC, 0xEC, 0xEC, 0x87, 0x87,
0x87, 0x6E, 0x6E, 0x6E, 0x87, 0x87, 0x87, 0xB1, 0xB1, 0xB1, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
0xB1, 0xB1, 0xB1, 0x87, 0x87, 0x87, 0x6E, 0x6E, 0x6E, 0x87, 0x87, 0x87, 0xEC, 0xEC, 0xEC, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEC, 0xEC, 0xEC, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0xC2,
0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0xEC, 0xEC, 0xEC,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0x87, 0x87, 0x87, 0x76, 0x76, 0x76, 0xDB, 0xDB, 0xDB, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xDB, 0xDB, 0xDB, 0x76, 0x76, 0x76, 0x87, 0x87, 0x87, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xC2,
0xC2, 0xC2, 0x6E, 0x6E, 0x6E, 0xC2, 0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x6E, 0x6E, 0x6E, 0xC2, 0xC2, 0xC2, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x8F, 0x8F, 0x8F,
0x86, 0x86, 0x86, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x86, 0x86, 0x86, 0x8F, 0x8F, 0x8F, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xB0, 0xB0,
0xB0, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xB0, 0xB0, 0xB0, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xC9, 0xC9, 0xC9, 0xF3,
0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0xF3, 0xF3, 0xF3, 0xC9, 0xC9, 0xC9, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xC9, 0xC9, 0xC9, 0xF3, 0xF3, 0xF3,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3,
0xF3, 0xC9, 0xC9, 0xC9, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xB0, 0xB0, 0xB0, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xB0,
0xB0, 0xB0, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0x8F, 0x8F, 0x8F, 0x86, 0x86, 0x86, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x86, 0x86, 0x86,
0x8F, 0x8F, 0x8F, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xC1, 0xC1, 0xC1, 0x6E, 0x6E, 0x6E, 0xC1, 0xC1, 0xC1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xC1, 0xC1, 0xC1, 0x6E, 0x6E, 0x6E, 0xC1, 0xC1,
0xC1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0x86, 0x86, 0x86, 0x75, 0x75, 0x75, 0xD9, 0xD9, 0xD9, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xD9, 0xD9, 0xD9, 0x75, 0x75, 0x75, 0x86, 0x86, 0x86, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xEA, 0xEA, 0xEA, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0xC0, 0xC0, 0xC0, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xC0, 0xC0,
0xC0, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0xEA, 0xEA, 0xEA, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xEA, 0xEA, 0xEA, 0x86, 0x86, 0x86, 0x6D, 0x6D, 0x6D, 0x86, 0x86, 0x86, 0xAF, 0xAF, 0xAF,
0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xAF, 0xAF, 0xAF, 0x86, 0x86, 0x86, 0x6D, 0x6D, 0x6D, 0x86,
0x86, 0x86, 0xEA, 0xEA, 0xEA, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xC0, 0xC0, 0xC0, 0x97, 0x97, 0x97, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D,
0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x97, 0x97, 0x97, 0xC0, 0xC0, 0xC0, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xE9, 0xE9, 0xE9, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xE9, 0xE9, 0xE9, 0xA5,
0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5,
0xA5, 0xEE, 0xEE, 0xEE, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xEE, 0xEE, 0xEE, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x98, 0x98, 0x98, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x98, 0x98, 0x98, 0xC2, 0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEC, 0xEC, 0xEC, 0x87, 0x87,
0x87, 0x6E, 0x6E, 0x6E, 0x87, 0x87, 0x87, 0xB1, 0xB1, 0xB1, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
0xB1, 0xB1, 0xB1, 0x87, 0x87, 0x87, 0x6E, 0x6E, 0x6E, 0x87, 0x87, 0x87, 0xEC, 0xEC, 0xEC, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEC, 0xEC, 0xEC, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0xC2,
0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0xEC, 0xEC, 0xEC,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0x87, 0x87, 0x87, 0x76, 0x76, 0x76, 0xDB, 0xDB, 0xDB, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xDB, 0xDB, 0xDB, 0x76, 0x76, 0x76, 0x87, 0x87, 0x87, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xC2,
0xC2, 0xC2, 0x6E, 0x6E, 0x6E, 0xC2, 0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x6E, 0x6E, 0x6E, 0xC2, 0xC2, 0xC2, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x8F, 0x8F, 0x8F,
0x86, 0x86, 0x86, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x86, 0x86, 0x86, 0x8F, 0x8F, 0x8F, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xB0, 0xB0,
0xB0, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xB0, 0xB0, 0xB0, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xC9, 0xC9, 0xC9, 0xF3,
0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0xF3, 0xF3, 0xF3, 0xC9, 0xC9, 0xC9, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xC9, 0xC9, 0xC9, 0xF3, 0xF3, 0xF3,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3,
0xF3, 0xC9, 0xC9, 0xC9, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xB0, 0xB0, 0xB0, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xB0,
0xB0, 0xB0, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0x8F, 0x8F, 0x8F, 0x86, 0x86, 0x86, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x86, 0x86, 0x86,
0x8F, 0x8F, 0x8F, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xC1, 0xC1, 0xC1, 0x6E, 0x6E, 0x6E, 0xC1, 0xC1, 0xC1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xC1, 0xC1, 0xC1, 0x6E, 0x6E, 0x6E, 0xC1, 0xC1,
0xC1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0x86, 0x86, 0x86, 0x75, 0x75, 0x75, 0xD9, 0xD9, 0xD9, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xD9, 0xD9, 0xD9, 0x75, 0x75, 0x75, 0x86, 0x86, 0x86, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xEA, 0xEA, 0xEA, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0xC0, 0xC0, 0xC0, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xC0, 0xC0,
0xC0, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0xEA, 0xEA, 0xEA, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xEA, 0xEA, 0xEA, 0x86, 0x86, 0x86, 0x6D, 0x6D, 0x6D, 0x86, 0x86, 0x86, 0xAF, 0xAF, 0xAF,
0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xAF, 0xAF, 0xAF, 0x86, 0x86, 0x86, 0x6D, 0x6D, 0x6D, 0x86,
0x86, 0x86, 0xEA, 0xEA, 0xEA, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xC0, 0xC0, 0xC0, 0x97, 0x97, 0x97, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D,
0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x97, 0x97, 0x97, 0xC0, 0xC0, 0xC0, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xE9, 0xE9, 0xE9, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xE9, 0xE9, 0xE9, 0xA5,
0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2,
0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5,
0xA5, 0xEE, 0xEE, 0xEE, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xEE, 0xEE, 0xEE, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x98, 0x98, 0x98, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x98, 0x98, 0x98, 0xC2, 0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x87, 0x87,
0x87, 0x6E, 0x6E, 0x6E, 0x87, 0x87, 0x87, 0xB1, 0xB1, 0xB1, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
0xB1, 0xB1, 0xB1, 0x87, 0x87, 0x87, 0x6E, 0x6E, 0x6E, 0x87, 0x87, 0x87, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0xC2,
0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0x87, 0x87, 0x87, 0x76, 0x76, 0x76, 0xDB, 0xDB, 0xDB, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xDB, 0xDB, 0xDB, 0x76, 0x76, 0x76, 0x87, 0x87, 0x87, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xC2,
0xC2, 0xC2, 0x6E, 0x6E, 0x6E, 0xC2, 0xC2, 0xC2, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0x8F, 0x8F, 0x8F, 0x87, 0x87, 0x87, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xC2, 0xC2, 0xC2, 0x6E, 0x6E, 0x6E, 0xC2, 0xC2, 0xC2, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x8F, 0x8F, 0x8F,
0x86, 0x86, 0x86, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x86, 0x86, 0x86, 0x8F, 0x8F, 0x8F, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xB0, 0xB0,
0xB0, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xB0, 0xB0, 0xB0, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xC9, 0xC9, 0xC9, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E,
0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xC9, 0xC9, 0xC9, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xC9, 0xC9, 0xC9, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E,
0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xC9, 0xC9, 0xC9, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0xB0, 0xB0, 0xB0, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xB0,
0xB0, 0xB0, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0x8F, 0x8F, 0x8F, 0x86, 0x86, 0x86, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x86, 0x86, 0x86,
0x8F, 0x8F, 0x8F, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xC1, 0xC1, 0xC1, 0x6E, 0x6E, 0x6E, 0xC1, 0xC1, 0xC1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xC1, 0xC1, 0xC1, 0x6E, 0x6E, 0x6E, 0xC1, 0xC1,
0xC1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0x86, 0x86, 0x86, 0x75, 0x75, 0x75, 0xD9, 0xD9, 0xD9, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xD9, 0xD9, 0xD9, 0x75, 0x75, 0x75, 0x86, 0x86, 0x86, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0xC0, 0xC0, 0xC0, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xC0, 0xC0,
0xC0, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0x86, 0x86, 0x86, 0x6D, 0x6D, 0x6D, 0x86, 0x86, 0x86, 0xAF, 0xAF, 0xAF,
0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xAF, 0xAF, 0xAF, 0x86, 0x86, 0x86, 0x6D, 0x6D, 0x6D, 0x86,
0x86, 0x86, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xC0, 0xC0, 0xC0, 0x97, 0x97, 0x97, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D,
0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x97, 0x97, 0x97, 0xC0, 0xC0, 0xC0, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xE9, 0xE9, 0xE9, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xE9, 0xE9, 0xE9, 0xA5,
0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2,
0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5,
0xA5, 0xEE, 0xEE, 0xEE, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xEE, 0xEE, 0xEE, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA7, 0xA7, 0xA7, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0x94, 0x94, 0x94, 0x67, 0x67, 0x67, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEF, 0xEF, 0xEF, 0x83, 0x83, 0x83, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xE1, 0xE1, 0xE1, 0x77, 0x77, 0x77, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x72, 0x72, 0x72, 0x8C, 0x8C, 0x8C, 0xB7, 0xB7, 0xB7, 0xED, 0xED,
0xED, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xD1, 0xD1,
0xD1, 0x6F, 0x6F, 0x6F, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x6A, 0x6A, 0x6A, 0xAD,
0xAD, 0xAD, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xBD, 0xBD, 0xBD, 0x68, 0x68, 0x68, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x8E, 0x8E, 0x8E, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xBD, 0xBD, 0xBD, 0x68, 0x68, 0x68, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0xA2, 0xA2, 0xA2, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xD1, 0xD1, 0xD1, 0x6F, 0x6F, 0x6F, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0xE3, 0xE3, 0xE3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xE1, 0xE1, 0xE1, 0x77, 0x77, 0x77, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0xAB, 0xAB, 0xAB, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xEF, 0xEF, 0xEF, 0x83, 0x83, 0x83,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xEF, 0xEF, 0xEF, 0xD1, 0xD1, 0xD1, 0x9A, 0x9A, 0x9A, 0x67, 0x67, 0x67, 0x86, 0x86,
0x86, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0x94, 0x94,
0x94, 0x67, 0x67, 0x67, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xB9, 0xB9, 0xB9, 0x71, 0x71, 0x71, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA7,
0xA7, 0xA7, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0x8B, 0x8B, 0x8B, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xE9, 0xE9, 0xE9, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xE9, 0xE9, 0xE9, 0xA5,
0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5,
0xA5, 0xEE, 0xEE, 0xEE, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xEE, 0xEE, 0xEE, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA7, 0xA7,
0xA7, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x67, 0x67, 0x67, 0x94,
0x94, 0x94, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x83, 0x83, 0x83, 0xEF, 0xEF, 0xEF, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xED, 0xED, 0xED, 0xB7, 0xB7, 0xB7, 0x8C,
0x8C, 0x8C, 0x72, 0x72, 0x72, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x77, 0x77, 0x77, 0xE1, 0xE1, 0xE1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xAD, 0xAD, 0xAD, 0x6A, 0x6A, 0x6A, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x6F, 0x6F, 0x6F, 0xD1, 0xD1, 0xD1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x8E,
0x8E, 0x8E, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x68, 0x68, 0x68, 0xBD, 0xBD, 0xBD, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA2, 0xA2, 0xA2, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x68, 0x68, 0x68, 0xBD, 0xBD, 0xBD, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xE3, 0xE3, 0xE3, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x6F, 0x6F, 0x6F, 0xD1,
0xD1, 0xD1, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xAB, 0xAB, 0xAB, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x77, 0x77, 0x77, 0xE1, 0xE1, 0xE1, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0x86, 0x86, 0x86, 0x67, 0x67, 0x67, 0x9A, 0x9A, 0x9A, 0xD1, 0xD1, 0xD1, 0xEF, 0xEF, 0xEF,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0x67, 0x67, 0x67, 0x67,
0x67, 0x67, 0x83, 0x83, 0x83, 0xEF, 0xEF, 0xEF, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0x71,
0x71, 0x71, 0xB9, 0xB9, 0xB9, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0x67, 0x67, 0x67, 0x94, 0x94, 0x94,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0x8B, 0x8B, 0x8B,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA7, 0xA7, 0xA7, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xE9, 0xE9, 0xE9, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xE9, 0xE9, 0xE9, 0xA5,
0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2,
0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5,
0xA5, 0xEE, 0xEE, 0xEE, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xEE, 0xEE, 0xEE, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEF, 0xEF,
0xEF, 0xA0, 0xA0, 0xA0, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x8E,
0x8E, 0x8E, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEF, 0xEF, 0xEF, 0x73,
0x73, 0x73, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x83, 0x83, 0x83, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEF, 0xEF, 0xEF, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x83, 0x83, 0x83, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xEF, 0xEF, 0xEF, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x83, 0x83, 0x83, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xEF, 0xEF, 0xEF, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xDC, 0xDC, 0xDC, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xEF, 0xEF, 0xEF, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xEF, 0xEF, 0xEF, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xEF, 0xEF, 0xEF, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xDC, 0xDC, 0xDC, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
0xBE, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xBE, 0xBE, 0xBE,
0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xF5, 0xF5, 0xF5, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF5, 0xF5, 0xF5, 0x81, 0x81, 0x81, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0xB4, 0xB4, 0xB4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF5, 0xF5, 0xF5, 0x77, 0x77, 0x77, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xA0, 0xA0, 0xA0, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF5, 0xF5, 0xF5, 0x73, 0x73, 0x73, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x97, 0x97, 0x97, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF4, 0xF4, 0xF4, 0x6E, 0x6E, 0x6E, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x8A, 0x8A, 0x8A, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xEC, 0xEC, 0xEC, 0x6C, 0x6C, 0x6C, 0x81, 0x81, 0x81,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xD8, 0xD8, 0xD8, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xE9, 0xE9, 0xE9, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xE9, 0xE9, 0xE9, 0xA5,
0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2, 0xA5, 0xA5,
0xA5, 0xEE, 0xEE, 0xEE, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xEE, 0xEE, 0xEE, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x8E, 0x8E, 0x8E, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9C, 0x9C, 0x9C, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x83, 0x83, 0x83, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x73, 0x73, 0x73, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x83, 0x83, 0x83, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0x83, 0x83, 0x83, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xDA, 0xDA, 0xDA, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xEF, 0xEF, 0xEF, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xEF, 0xEF,
0xEF, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xEF, 0xEF, 0xEF, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xEB, 0xEB, 0xEB, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
0xBE, 0xBE, 0xF5, 0xF5, 0xF5, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF5,
0xF5, 0xF5, 0x81, 0x81, 0x81, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xB4, 0xB4, 0xB4,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF5, 0xF5, 0xF5, 0x77, 0x77, 0x77, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0xA0, 0xA0, 0xA0, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF5, 0xF5, 0xF5, 0x73, 0x73, 0x73, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x6C, 0x97, 0x97, 0x97, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF4, 0xF4, 0xF4, 0x6E, 0x6E, 0x6E, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x8A, 0x8A,
0x8A, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xEC, 0xEC, 0xEC, 0x6C, 0x6C, 0x6C, 0x81, 0x81, 0x81, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xD8, 0xD8, 0xD8, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
0xF2, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xE9, 0xE9, 0xE9, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xE9, 0xE9, 0xE9, 0xA5,
0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xC2, 0xC2, 0xC2
};
/contrib/media/updf/apps/icons/toolbar.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/contrib/media/updf/apps/icons/toolbar.raw
0,0 → 1,0
ÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂ¥¥¥îîî÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷îî¥¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôô¥¥¥nnnnnnnnnnnnnnnnnn°°°ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôônnnnnnnnnnnnnnnnnnnnnnnn°°°ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôônnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn¥¥¥ôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôônnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnôôôôôôôôôôôô¤¤¤¤¤¤óóóóóóóóóóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóóóóóóóóó󤤤¤¤¤òòòòòòòòòòòònnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòò¥¥¥nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn¥¥¥òòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¥¥¥éééììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììéé饥¥ÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¤¤¤¥¥¥îîî÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷îî¥¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôô˜˜˜nnnnnnnnnnnn˜˜˜ÂÂÂôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôìì쇇‡nnn‡‡‡±±±ÊÊÊÊÊʱ±±‡‡‡nnn‡‡‡ìììôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôìììvvvvvvÂÂÂôôôôôôôôôôôôôôôôôôÂÂÂvvvvvvìììôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôô‡‡‡vvvÛÛÛôôôôôôôôôôôôôôôôôôôôôôôôÛÛÛvvv‡‡‡ôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôÂÂÂnnnÂÂÂôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôÂÂÂnnnÂÂÂôôôôôôôôôôôô¤¤¤¤¤¤óóóóóóóóóóó󏏏†††óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó󆆆óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnn°°°óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó°°°nnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnÉÉÉóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóÉÉÉnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnÉÉÉóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóÉÉÉnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnn°°°óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó°°°nnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóó󏏏†††óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó󆆆óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóÁÁÁnnnÁÁÁóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóÁÁÁnnnÁÁÁóóóóóóóóóóó󤤤¤¤¤òòòòòòòòòòòòòòò†††uuuÙÙÙòòòòòòòòòòòòòòòòòòòòòòòòÙÙÙuuu†††òòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòêêêuuuuuuÀÀÀòòòòòòòòòòòòòòòòòòÀÀÀuuuuuuêêêòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòêêꆆ†mmm†††¯¯¯ÈÈÈÈÈȯ¯¯†††mmm†††êêêòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòÀÀÀ———mmmmmmmmmmmm———ÀÀÀòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¥¥¥éééììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììéé饥¥ÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¤¤¤¤¤¤¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂ¥¥¥îîî÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷îî¥¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôô˜˜˜nnnnnnnnnnnn˜˜˜ÂÂÂôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôìì쇇‡nnn‡‡‡±±±ÊÊÊÊÊʱ±±‡‡‡nnn‡‡‡ìììôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôìììvvvvvvÂÂÂôôôôôôôôôôôôôôôôôôÂÂÂvvvvvvìììôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôô‡‡‡vvvÛÛÛôôôôôôôôônnnnnnôôôôôôôôôÛÛÛvvv‡‡‡ôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôÂÂÂnnnÂÂÂôôôôôôôôôôôônnnnnnôôôôôôôôôôôôÂÂÂnnnÂÂÂôôôôôôôôôôôô¤¤¤¤¤¤óóóóóóóóóóó󏏏†††óóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóó󆆆óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnn°°°óóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóóó°°°nnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnÉÉÉóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóÉÉÉnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnÉÉÉóóónnnnnnnnnnnnnnnnnnnnnnnnnnnnnnóóóÉÉÉnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnn°°°óóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóóó°°°nnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóó󏏏†††óóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóó󆆆óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóÁÁÁnnnÁÁÁóóóóóóóóóóóónnnnnnóóóóóóóóóóóóÁÁÁnnnÁÁÁóóóóóóóóóóó󤤤¤¤¤òòòòòòòòòòòòòòò†††uuuÙÙÙòòòòòòòòònnnnnnòòòòòòòòòÙÙÙuuu†††òòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòêêêuuuuuuÀÀÀòòòòòòòòòòòòòòòòòòÀÀÀuuuuuuêêêòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòêêꆆ†mmm†††¯¯¯ÈÈÈÈÈȯ¯¯†††mmm†††êêêòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòÀÀÀ———mmmmmmmmmmmm———ÀÀÀòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¥¥¥éééììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììéé饥¥¤¤¤¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂ¥¥¥îîî÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷îî¥¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôô˜˜˜nnnnnnnnnnnn˜˜˜ÂÂÂôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôô‡‡‡nnn‡‡‡±±±ÊÊÊÊÊʱ±±‡‡‡nnn‡‡‡ôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôvvvvvvÂÂÂôôôôôôôôôôôôôôôôôôÂÂÂvvvvvvôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôô‡‡‡vvvÛÛÛôôôôôôôôôôôôôôôôôôôôôôôôÛÛÛvvv‡‡‡ôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôÂÂÂnnnÂÂÂôôôôôôôôôôôô‡‡‡ôôôôôôôôôôôôÂÂÂnnnÂÂÂôôôôôôôôôôôô¤¤¤¤¤¤óóóóóóóóóóó󏏏†††óóóóóóóóóóóóóóóÚÚÚÚÚÚóóóóóóóóóóóóóó󆆆óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnn°°°óóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóóó°°°nnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnÉÉÉóóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóóóÉÉÉnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnnÉÉÉóóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóóóÉÉÉnnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóónnn°°°óóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóóó°°°nnnóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóó󏏏†††óóóóóóóóóóóóóóónnnnnnóóóóóóóóóóóóóó󆆆óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóÁÁÁnnnÁÁÁóóóóóóóóóóóónnnnnnóóóóóóóóóóóóÁÁÁnnnÁÁÁóóóóóóóóóóó󤤤¤¤¤òòòòòòòòòòòòòòò†††uuuÙÙÙòòòòòòòòòòòòòòòòòòòòòòòòÙÙÙuuu†††òòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòuuuuuuÀÀÀòòòòòòòòòòòòòòòòòòÀÀÀuuuuuuòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòò†††mmm†††¯¯¯ÈÈÈÈÈȯ¯¯†††mmm†††òòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòÀÀÀ———mmmmmmmmmmmm———ÀÀÀòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¥¥¥éééììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììéé饥¥ÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¤¤¤¥¥¥îîî÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷îî¥¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô§§§ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôô”””gggôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôïïƒggggggôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤óóóóóóóóóóóóóóóóóóáááwwwggggggggggggrrrŒŒŒ···íííóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóÑÑÑoooggggggggggggggggggggggggjjj­­­óóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóó½½½hhhgggggggggggggggggggggggggggggggggŽŽŽóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóó½½½hhhgggggggggggggggggggggggggggggggggggg¢¢¢óóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóÑÑÑoooggggggggggggggggggggggggggggggggggggãããóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóáááwwwggggggggggggggggggggggggggggggggg«««óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóïïƒggggggóóóóóóóóóóóóïïïÑÑњššggg†††óóóóóóóóóóó󤤤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòò”””gggòòòòòòòòòòòòòòòòòòòòò¹¹¹qqqòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòò§§§òòòòòòòòòòòòòòòòòòòòòòòò‹‹‹òòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¥¥¥éééììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììéé饥¥ÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¤¤¤¤¤¤¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂ¥¥¥îîî÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷îî¥¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô§§§ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôggg”””ôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôggggggƒƒƒïïïôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤óóóóóóóóóóóóóóóóóóóóóóóóííí···ŒŒŒrrrggggggggggggwwwáááóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóó­­­jjjggggggggggggggggggggggggoooÑÑÑóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóó󎎎ggggggggggggggggggggggggggggggggghhh½½½óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóó¢¢¢gggggggggggggggggggggggggggggggggggghhh½½½óóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóãããggggggggggggggggggggggggggggggggggggoooÑÑÑóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóó«««gggggggggggggggggggggggggggggggggwwwáááóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóó󆆆gggšššÑÑÑïïïóóóóóóóóóóóóggggggƒƒƒïïïóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤òòòòòòòòòòòòqqq¹¹¹òòòòòòòòòòòòòòòòòòòòòggg”””òòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòò‹‹‹òòòòòòòòòòòòòòòòòòòòòòòò§§§òòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¥¥¥éééììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììéé饥¥¤¤¤¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¤¤¤¥¥¥îîî÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷îî¥¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôïïï   yyyyyyyyyyyyyyyyyyyyyyyyyyyŽŽŽôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôïïïsssllllllllllllllllllllllllƒƒƒôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôïïïllllllllllllllllllllllllƒƒƒôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôïïïlllllllllllllllllllllƒƒƒôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤óóóóóóóóóóóóóóóóóóóóóïïïllllllllllllÜÜÜóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóïïïllllllllllllóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóïïïllllllllllllóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóïïïllllllllllllóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóÜÜܾ¾¾¾¾¾¾¾¾llllllllllll¾¾¾¾¾¾¾¾¾õõõóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóõõõllllllllllllllllllllllll´´´óóóóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóõõõwwwllllllllllllllllll   óóóóóóóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤òòòòòòòòòòòòòòòòòòõõõsssllllllllllll———òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòôôônnnllllllŠŠŠòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòìììlllòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòØØØòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¥¥¥éééììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììéé饥¥ÂÂÂ¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥¤¤¤¤¤¤¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂ¥¥¥îîî÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷îî¥¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôŽŽŽyyyyyyyyyyyyyyyyyyyyyyyyyyyœœœôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôƒƒƒllllllllllllllllllllllllsssôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôƒƒƒllllllllllllllllllllllllôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤ôôôôôôôôôôôôôôôôôôôôôôôôƒƒƒlllllllllllllllllllllôôôôôôôôôôôôôôôôôôôôôôôô¤¤¤¤¤¤óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóÚÚÚllllllllllllóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóïïïllllllllllllóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóïïïllllllllllllóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóïïïllllllllllllóóóóóóóóóóóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóóóóëëë¾¾¾¾¾¾¾¾¾llllllllllll¾¾¾¾¾¾¾¾¾õõõóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóóóóõõõllllllllllllllllllllllll´´´óóóóóóóóóóóóóó󤤤¤¤¤óóóóóóóóóóóóóóóóóóóóóóóóóóóõõõwwwllllllllllllllllll   óóóóóóóóóóóóóóóóó󤤤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòõõõsssllllllllllll———òòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòôôônnnllllllŠŠŠòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòìììlllòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòØØØòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¤¤¤òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò¤¤¤¥¥¥éééììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììéé饥¥¤¤¤¥¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¥¥ÂÂÂ
/contrib/media/updf/apps/icons/updf.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/contrib/media/updf/apps/pdfdraw.c
0,0 → 1,405
/*
* pdfdraw -- command line tool for drawing pdf documents
*/
 
#include "fitz.h"
#include "mupdf.h"
 
#ifdef _MSC_VER
#include <winsock2.h>
#else
#include <sys/time.h>
#endif
 
char *output = NULL;
float resolution = 72;
float rotation = 0;
 
int showxml = 0;
int showtext = 0;
int showtime = 0;
int showmd5 = 0;
int savealpha = 0;
int uselist = 1;
int alphabits = 8;
float gamma_value = 1;
int invert = 0;
 
fz_colorspace *colorspace;
fz_glyph_cache *glyphcache;
char *filename;
 
struct {
int count, total;
int min, max;
int minpage, maxpage;
} timing;
 
static void die(fz_error error)
{
fz_catch(error, "aborting");
exit(1);
}
 
static void usage(void)
{
fprintf(stderr,
"usage: pdfdraw [options] input.pdf [pages]\n"
"\t-o -\toutput filename (%%d for page number)\n"
"\t\tsupported formats: pgm, ppm, pam, png, pbm\n"
"\t-p -\tpassword\n"
"\t-r -\tresolution in dpi (default: 72)\n"
"\t-A\tdisable accelerated functions\n"
"\t-a\tsave alpha channel (only pam and png)\n"
"\t-b -\tnumber of bits of antialiasing (0 to 8)\n"
"\t-g\trender in grayscale\n"
"\t-m\tshow timing information\n"
"\t-t\tshow text (-tt for xml)\n"
"\t-x\tshow display list\n"
"\t-d\tdisable use of display list\n"
"\t-5\tshow md5 checksums\n"
"\t-R -\trotate clockwise by given number of degrees\n"
"\t-G gamma\tgamma correct output\n"
"\t-I\tinvert output\n"
"\tpages\tcomma separated list of ranges\n");
exit(1);
}
 
static int gettime(void)
{
static struct timeval first;
static int once = 1;
struct timeval now;
if (once)
{
gettimeofday(&first, NULL);
once = 0;
}
gettimeofday(&now, NULL);
return (now.tv_sec - first.tv_sec) * 1000 + (now.tv_usec - first.tv_usec) / 1000;
}
 
static int isrange(char *s)
{
while (*s)
{
if ((*s < '0' || *s > '9') && *s != '-' && *s != ',')
return 0;
s++;
}
return 1;
}
 
static void drawpage(pdf_xref *xref, int pagenum)
{
fz_error error;
pdf_page *page;
fz_display_list *list;
fz_device *dev;
int start;
 
if (showtime)
{
start = gettime();
}
 
error = pdf_load_page(&page, xref, pagenum - 1);
if (error)
die(fz_rethrow(error, "cannot load page %d in file '%s'", pagenum, filename));
 
list = NULL;
 
if (uselist)
{
list = fz_new_display_list();
dev = fz_new_list_device(list);
error = pdf_run_page(xref, page, dev, fz_identity);
if (error)
die(fz_rethrow(error, "cannot draw page %d in file '%s'", pagenum, filename));
fz_free_device(dev);
}
 
if (showxml)
{
dev = fz_new_trace_device();
printf("<page number=\"%d\">\n", pagenum);
if (list)
fz_execute_display_list(list, dev, fz_identity, fz_infinite_bbox);
else
pdf_run_page(xref, page, dev, fz_identity);
printf("</page>\n");
fz_free_device(dev);
}
 
if (showtext)
{
fz_text_span *text = fz_new_text_span();
dev = fz_new_text_device(text);
if (list)
fz_execute_display_list(list, dev, fz_identity, fz_infinite_bbox);
else
pdf_run_page(xref, page, dev, fz_identity);
fz_free_device(dev);
printf("[Page %d]\n", pagenum);
if (showtext > 1)
fz_debug_text_span_xml(text);
else
fz_debug_text_span(text);
printf("\n");
fz_free_text_span(text);
}
 
if (showmd5 || showtime)
printf("page %s %d", filename, pagenum);
 
if (output || showmd5 || showtime)
{
float zoom;
fz_matrix ctm;
fz_bbox bbox;
fz_pixmap *pix;
 
zoom = resolution / 72;
ctm = fz_translate(0, -page->mediabox.y1);
ctm = fz_concat(ctm, fz_scale(zoom, -zoom));
ctm = fz_concat(ctm, fz_rotate(page->rotate));
ctm = fz_concat(ctm, fz_rotate(rotation));
bbox = fz_round_rect(fz_transform_rect(ctm, page->mediabox));
 
/* TODO: banded rendering and multi-page ppm */
 
pix = fz_new_pixmap_with_rect(colorspace, bbox);
 
if (savealpha)
fz_clear_pixmap(pix);
else
fz_clear_pixmap_with_color(pix, 255);
 
dev = fz_new_draw_device(glyphcache, pix);
if (list)
fz_execute_display_list(list, dev, ctm, bbox);
else
pdf_run_page(xref, page, dev, ctm);
fz_free_device(dev);
 
if (invert)
fz_invert_pixmap(pix);
if (gamma_value != 1)
fz_gamma_pixmap(pix, gamma_value);
 
if (output)
{
char buf[512];
sprintf(buf, output, pagenum);
if (strstr(output, ".pgm") || strstr(output, ".ppm") || strstr(output, ".pnm"))
fz_write_pnm(pix, buf);
else if (strstr(output, ".pam"))
fz_write_pam(pix, buf, savealpha);
else if (strstr(output, ".png"))
fz_write_png(pix, buf, savealpha);
else if (strstr(output, ".pbm")) {
fz_halftone *ht = fz_get_default_halftone(1);
fz_bitmap *bit = fz_halftone_pixmap(pix, ht);
fz_write_pbm(bit, buf);
fz_drop_bitmap(bit);
fz_drop_halftone(ht);
}
}
 
if (showmd5)
{
fz_md5 md5;
unsigned char digest[16];
int i;
 
fz_md5_init(&md5);
fz_md5_update(&md5, pix->samples, pix->w * pix->h * pix->n);
fz_md5_final(&md5, digest);
 
printf(" ");
for (i = 0; i < 16; i++)
printf("%02x", digest[i]);
}
 
fz_drop_pixmap(pix);
}
 
if (list)
fz_free_display_list(list);
 
pdf_free_page(page);
 
if (showtime)
{
int end = gettime();
int diff = end - start;
 
if (diff < timing.min)
{
timing.min = diff;
timing.minpage = pagenum;
}
if (diff > timing.max)
{
timing.max = diff;
timing.maxpage = pagenum;
}
timing.total += diff;
timing.count ++;
 
printf(" %dms", diff);
}
 
if (showmd5 || showtime)
printf("\n");
 
pdf_age_store(xref->store, 3);
 
fz_flush_warnings();
}
 
static void drawrange(pdf_xref *xref, char *range)
{
int page, spage, epage;
char *spec, *dash;
 
spec = fz_strsep(&range, ",");
while (spec)
{
dash = strchr(spec, '-');
 
if (dash == spec)
spage = epage = pdf_count_pages(xref);
else
spage = epage = atoi(spec);
 
if (dash)
{
if (strlen(dash) > 1)
epage = atoi(dash + 1);
else
epage = pdf_count_pages(xref);
}
 
spage = CLAMP(spage, 1, pdf_count_pages(xref));
epage = CLAMP(epage, 1, pdf_count_pages(xref));
 
if (spage < epage)
for (page = spage; page <= epage; page++)
drawpage(xref, page);
else
for (page = spage; page >= epage; page--)
drawpage(xref, page);
 
spec = fz_strsep(&range, ",");
}
}
 
int main(int argc, char **argv)
{
char *password = "";
int grayscale = 0;
int accelerate = 1;
pdf_xref *xref;
fz_error error;
int c;
 
while ((c = fz_getopt(argc, argv, "o:p:r:R:Aab:dgmtx5G:I")) != -1)
{
switch (c)
{
case 'o': output = fz_optarg; break;
case 'p': password = fz_optarg; break;
case 'r': resolution = atof(fz_optarg); break;
case 'R': rotation = atof(fz_optarg); break;
case 'A': accelerate = 0; break;
case 'a': savealpha = 1; break;
case 'b': alphabits = atoi(fz_optarg); break;
case 'm': showtime++; break;
case 't': showtext++; break;
case 'x': showxml++; break;
case '5': showmd5++; break;
case 'g': grayscale++; break;
case 'd': uselist = 0; break;
case 'G': gamma_value = atof(fz_optarg); break;
case 'I': invert++; break;
default: usage(); break;
}
}
 
fz_set_aa_level(alphabits);
 
if (fz_optind == argc)
usage();
 
if (!showtext && !showxml && !showtime && !showmd5 && !output)
{
printf("nothing to do\n");
exit(0);
}
 
if (accelerate)
fz_accelerate();
 
glyphcache = fz_new_glyph_cache();
 
colorspace = fz_device_rgb;
if (grayscale)
colorspace = fz_device_gray;
if (output && strstr(output, ".pgm"))
colorspace = fz_device_gray;
if (output && strstr(output, ".ppm"))
colorspace = fz_device_rgb;
if (output && strstr(output, ".pbm"))
colorspace = fz_device_gray;
 
timing.count = 0;
timing.total = 0;
timing.min = 1 << 30;
timing.max = 0;
timing.minpage = 0;
timing.maxpage = 0;
 
if (showxml)
printf("<?xml version=\"1.0\"?>\n");
 
while (fz_optind < argc)
{
filename = argv[fz_optind++];
 
error = pdf_open_xref(&xref, filename, password);
if (error)
die(fz_rethrow(error, "cannot open document: %s", filename));
 
error = pdf_load_page_tree(xref);
if (error)
die(fz_rethrow(error, "cannot load page tree: %s", filename));
 
if (showxml)
printf("<document name=\"%s\">\n", filename);
 
if (fz_optind == argc || !isrange(argv[fz_optind]))
drawrange(xref, "1-");
if (fz_optind < argc && isrange(argv[fz_optind]))
drawrange(xref, argv[fz_optind++]);
 
if (showxml)
printf("</document>\n");
 
pdf_free_xref(xref);
}
 
if (showtime)
{
printf("total %dms / %d pages for an average of %dms\n",
timing.total, timing.count, timing.total / timing.count);
printf("fastest page %d: %dms\n", timing.minpage, timing.min);
printf("slowest page %d: %dms\n", timing.maxpage, timing.max);
}
 
fz_free_glyph_cache(glyphcache);
 
fz_flush_warnings();
 
return 0;
}
/contrib/media/updf/apps/pdfextract.c
0,0 → 1,222
/*
* pdfextract -- the ultimate way to extract images and fonts from pdfs
*/
 
#include "fitz.h"
#include "mupdf.h"
 
static pdf_xref *xref = NULL;
static int dorgb = 0;
 
void die(fz_error error)
{
fz_catch(error, "aborting");
if (xref)
pdf_free_xref(xref);
exit(1);
}
 
static void usage(void)
{
fprintf(stderr, "usage: pdfextract [options] file.pdf [object numbers]\n");
fprintf(stderr, "\t-p\tpassword\n");
fprintf(stderr, "\t-r\tconvert images to rgb\n");
exit(1);
}
 
static int isimage(fz_obj *obj)
{
fz_obj *type = fz_dict_gets(obj, "Subtype");
return fz_is_name(type) && !strcmp(fz_to_name(type), "Image");
}
 
static int isfontdesc(fz_obj *obj)
{
fz_obj *type = fz_dict_gets(obj, "Type");
return fz_is_name(type) && !strcmp(fz_to_name(type), "FontDescriptor");
}
 
static void saveimage(int num)
{
fz_error error;
fz_pixmap *img;
fz_obj *ref;
char name[1024];
 
ref = fz_new_indirect(num, 0, xref);
 
/* TODO: detect DCTD and save as jpeg */
 
error = pdf_load_image(&img, xref, ref);
if (error)
die(error);
 
if (dorgb && img->colorspace && img->colorspace != fz_device_rgb)
{
fz_pixmap *temp;
temp = fz_new_pixmap_with_rect(fz_device_rgb, fz_bound_pixmap(img));
fz_convert_pixmap(img, temp);
fz_drop_pixmap(img);
img = temp;
}
 
if (img->n <= 4)
{
sprintf(name, "img-%04d.png", num);
printf("extracting image %s\n", name);
fz_write_png(img, name, 0);
}
else
{
sprintf(name, "img-%04d.pam", num);
printf("extracting image %s\n", name);
fz_write_pam(img, name, 0);
}
 
fz_drop_pixmap(img);
fz_drop_obj(ref);
}
 
static void savefont(fz_obj *dict, int num)
{
fz_error error;
char name[1024];
char *subtype;
fz_buffer *buf;
fz_obj *stream = NULL;
fz_obj *obj;
char *ext = "";
FILE *f;
char *fontname = "font";
int n;
 
obj = fz_dict_gets(dict, "FontName");
if (obj)
fontname = fz_to_name(obj);
 
obj = fz_dict_gets(dict, "FontFile");
if (obj)
{
stream = obj;
ext = "pfa";
}
 
obj = fz_dict_gets(dict, "FontFile2");
if (obj)
{
stream = obj;
ext = "ttf";
}
 
obj = fz_dict_gets(dict, "FontFile3");
if (obj)
{
stream = obj;
 
obj = fz_dict_gets(obj, "Subtype");
if (obj && !fz_is_name(obj))
die(fz_throw("Invalid font descriptor subtype"));
 
subtype = fz_to_name(obj);
if (!strcmp(subtype, "Type1C"))
ext = "cff";
else if (!strcmp(subtype, "CIDFontType0C"))
ext = "cid";
else
die(fz_throw("Unhandled font type '%s'", subtype));
}
 
if (!stream)
{
fz_warn("Unhandled font type");
return;
}
 
buf = fz_new_buffer(0);
 
error = pdf_load_stream(&buf, xref, fz_to_num(stream), fz_to_gen(stream));
if (error)
die(error);
 
sprintf(name, "%s-%04d.%s", fontname, num, ext);
printf("extracting font %s\n", name);
 
f = fopen(name, "wb");
if (f == NULL)
die(fz_throw("Error creating font file"));
 
n = fwrite(buf->data, 1, buf->len, f);
if (n < buf->len)
die(fz_throw("Error writing font file"));
 
if (fclose(f) < 0)
die(fz_throw("Error closing font file"));
 
fz_drop_buffer(buf);
}
 
static void showobject(int num)
{
fz_error error;
fz_obj *obj;
 
if (!xref)
die(fz_throw("no file specified"));
 
error = pdf_load_object(&obj, xref, num, 0);
if (error)
die(error);
 
if (isimage(obj))
saveimage(num);
else if (isfontdesc(obj))
savefont(obj, num);
 
fz_drop_obj(obj);
}
 
int main(int argc, char **argv)
{
fz_error error;
char *infile;
char *password = "";
int c, o;
 
while ((c = fz_getopt(argc, argv, "p:r")) != -1)
{
switch (c)
{
case 'p': password = fz_optarg; break;
case 'r': dorgb++; break;
default: usage(); break;
}
}
 
if (fz_optind == argc)
usage();
 
infile = argv[fz_optind++];
error = pdf_open_xref(&xref, infile, password);
if (error)
die(fz_rethrow(error, "cannot open input file '%s'", infile));
 
if (fz_optind == argc)
{
for (o = 0; o < xref->len; o++)
showobject(o);
}
else
{
while (fz_optind < argc)
{
showobject(atoi(argv[fz_optind]));
fz_optind++;
}
}
 
pdf_free_xref(xref);
 
fz_flush_warnings();
 
return 0;
}